Difference between revisions of "From LaTeX to ConTeXt"

From Wiki
Jump to navigation Jump to search
(→‎Copy Paste text between Latex and Context: Text taken from Introduction, which is too general title for this kind of question)
m (Text replacement - "</cmd>" to "}}")
 
(25 intermediate revisions by 15 users not shown)
Line 1: Line 1:
< [[Main Page]] >
+
General hints for converting from LaTeX to Context can be found in
 +
* [http://www.berenddeboer.net/tex/LaTeX2ConTeXt.pdf LaTeX in proper ConTeXt] by [http://www.berenddeboer.net/ Berend de Boer]
 +
A Vietnamese version is available at [http://vnoss.org/docs/LaTeX2ConTeXt-vi.pdf VnOSS].
  
General hints for converting from LaTeX to Context can be found in the [http://www.berenddeboer.net/tex/LaTeX2ConTeXt.pdf LaTeX in proper ConTeXt] manual, by [http://www.berenddeboer.net/ Berend de Boer]
+
This page offers specific advice on a number of special things that you may be doing with LaTeX, but are not so obvious to do with ConTeXt.  
 
 
This page offers specific advice on a number of special things that you may be doing with LaTeX, but are not so obvious to do with ConTeXt.
 
  
 
=== Document and Page Layout ===
 
=== Document and Page Layout ===
 
* [[Document Titles]]: Title blocks, as in the standard LaTeX article.
 
* [[Document Titles]]: Title blocks, as in the standard LaTeX article.
* [[LaTeX Thanks|The thanks command]] adds footnoted information, usually to author blocks.
+
* [[LaTeX Thanks|\thanks{}]] adds footnoted information, usually to author blocks.
 
* [[Article Abstracts]]: Abstracts from the standard LaTeX article or report.
 
* [[Article Abstracts]]: Abstracts from the standard LaTeX article or report.
 
* [[KOMA-scrartcl Type Area]]: An interesting automated type-area setup.
 
* [[KOMA-scrartcl Type Area]]: An interesting automated type-area setup.
Line 20: Line 20:
 
* [[ISO-8859-15]]: Using the ISO Latin-9 (Western European) character encoding for input.
 
* [[ISO-8859-15]]: Using the ISO Latin-9 (Western European) character encoding for input.
 
* [[Description]]
 
* [[Description]]
 +
* The microtype package has its analogue in [[Protrusion]]
 +
* So-called (by plain TeX and LaTeX) [[French spacing]]
 +
 +
=== Idiomatic Differences Between ConTeXt and LaTeX ===
 +
==== Brackets and Braces ====
 +
 +
{| border="1" cellspacing="0" cellpadding="2"
 +
|-
 +
|  || {..} || [..]
 +
|-
 +
| LaTeX || command arguments  || optional arguments
 +
|-
 +
| ConTeXt || typeset material; scope or range of the command (the text acted upon) is placed between curly brackets || setups instructions and metadata (options)
 +
|-
 +
|}
 +
 +
==== Optional Arguments and Setups ====
 +
In ConTeXt, arguments may be either
 +
[[System Macros/Comma Separated Lists|comma separated lists]]
 +
or [[System Macros/Key_Value_Assignments|assignments]], but
 +
<em>not</em> both. The following example demonstrates that LaTeX
 +
allows either syntax in optional arguments:
 +
<pre>
 +
\documentclass[BCOR=12mm,DIV=calc,twoside]{scrartcl}
 +
</pre>
 +
(From the [http://mirrors.ctan.org/macros/latex/contrib/koma-script/scrguien.pdf KOMA-Script manual].)
 +
ConTeXt, however, distinguishes strictly between both types for
 +
processing them internally relies on two different
 +
mechanisms. Therefore, setups like {{cmd|itemize}} usually
 +
allow two sets of optional arguments
 +
[http://article.gmane.org/gmane.comp.tex.context/75276], the
 +
comma list preceding the assignment:
 +
 +
<texcode>
 +
\starttext
 +
 +
\startitemize [R,2*broad][
 +
  start=11,
 +
  before=\startlinecorrection,
 +
  after=\stoplinecorrection,
 +
]
 +
  \item Foo,
 +
  \item bar,
 +
  \item baz.
 +
\stopitemize
 +
 +
\stoptext
 +
</texcode>
 +
 +
The ConTeXt interface definitions
 +
(collected by Wolfgang in the [https://bitbucket.org/wolfs/commands/overview macro reference])
 +
use a special notation to indicate whether an argument
 +
expects assignment or list syntax:
 +
<pre>
 +
\defineframedtext [...] [...] [..,.=.,..]
 +
</pre>
 +
where <code>[...]</code> stands for the <em>list</em> type and
 +
<code>[..,.=.,..]</code> denotates an <em>assignment</em>.
  
 
=== Programming ===
 
=== Programming ===
 +
 
* [[Commands with optional arguments]]
 
* [[Commands with optional arguments]]
  
 
=== Document Metadata ===
 
=== Document Metadata ===
 
* [[PDF-strings]]
 
* [[PDF-strings]]
 
  
 
=== Math ===
 
=== Math ===
Line 34: Line 92:
 
=== Copy-Paste text between LaTeX and ConTeXt ===
 
=== Copy-Paste text between LaTeX and ConTeXt ===
  
It is sometimes useful to have the same source for a latex document and context presentation (or context document and latex presentation). However, the commands used by both are very different. Can someone describe some definations in context that implement the core functionality of latex commands like \section et al, \textbf et al, \bfseries et al and \begin \end pairs?
+
It is sometimes useful to have the same source for a LaTeX document and a ConTeXt presentation (or a ConTeXt document and a LaTeX presentation). However, the commands used by both are very different. Can someone describe some definitions in ConTeXt that implement the core functionality of LaTeX commands like \section et al, \textbf et al, \bfseries et al and \begin \end pairs?
{{Howto}}
 
 
 
''<code>\section</code> works the same way as in LaTeX, for mathematics take a look into [[LaTeX Math in ConTeXt]], use <code>\bf</code> instead of <code>\textbf</code> for both LaTeX and ConTeXt (or <code>\def\textbf#1{{\bf #1}}</code>) and as a general rule: use as many plain TeX macros as possible instead of LaTeX-specific macros. <code>\begin ... \end</code> only works for math as far as I know. See also other documents listed above  or ask on the mailing list.''
 
  
 +
''<code>\section</code> works the same way as in LaTeX, for mathematics take a look into [[LaTeX Math in ConTeXt]], use <code>\bf</code> instead of <code>\textbf</code> for both LaTeX and ConTeXt (or <code><nowiki>\def\textbf#1{{\bf #1}}</nowiki></code>) and as a general rule: use as many plain TeX macros as possible instead of LaTeX-specific macros. <code>\begin ... \end</code> only works for math as far as I know. See also other documents listed above  or ask on the mailing list.''
 
<!--
 
<!--
 
* [[LaTeX&ConTeXt/Introduction|Introduction]]
 
* [[LaTeX&ConTeXt/Introduction|Introduction]]
Line 45: Line 101:
 
Also, many of the macros on the [[LaTeX Math in ConTeXt]] page are equally useful in ConTeXt formulas.
 
Also, many of the macros on the [[LaTeX Math in ConTeXt]] page are equally useful in ConTeXt formulas.
 
-->
 
-->
 +
 +
== Functionality of Latex Packages in Context ==
 +
 +
* [[Latex Packages]]
 +
  
  
A Vietnamese version of <i>LaTeX in proper ConTeXt</i> is available at [http://vnoss.org/docs/LaTeX2ConTeXt-vi.pdf VnOSS].
+
[[Category:From LaTeX]]

Latest revision as of 13:18, 9 August 2020

General hints for converting from LaTeX to Context can be found in

A Vietnamese version is available at VnOSS.

This page offers specific advice on a number of special things that you may be doing with LaTeX, but are not so obvious to do with ConTeXt.

Document and Page Layout

Text Formatting

Idiomatic Differences Between ConTeXt and LaTeX

Brackets and Braces

{..} [..]
LaTeX command arguments optional arguments
ConTeXt typeset material; scope or range of the command (the text acted upon) is placed between curly brackets setups instructions and metadata (options)

Optional Arguments and Setups

In ConTeXt, arguments may be either comma separated lists or assignments, but not both. The following example demonstrates that LaTeX allows either syntax in optional arguments:

 \documentclass[BCOR=12mm,DIV=calc,twoside]{scrartcl}

(From the KOMA-Script manual.) ConTeXt, however, distinguishes strictly between both types for processing them internally relies on two different mechanisms. Therefore, setups like \itemize usually allow two sets of optional arguments [1], the comma list preceding the assignment:

\starttext

\startitemize [R,2*broad][
  start=11,
  before=\startlinecorrection,
  after=\stoplinecorrection,
]
  \item Foo,
  \item bar,
  \item baz.
\stopitemize

\stoptext

The ConTeXt interface definitions (collected by Wolfgang in the macro reference) use a special notation to indicate whether an argument expects assignment or list syntax:

\defineframedtext [...] [...] [..,.=.,..]

where [...] stands for the list type and [..,.=.,..] denotates an assignment.

Programming

Document Metadata

Math

Copy-Paste text between LaTeX and ConTeXt

It is sometimes useful to have the same source for a LaTeX document and a ConTeXt presentation (or a ConTeXt document and a LaTeX presentation). However, the commands used by both are very different. Can someone describe some definitions in ConTeXt that implement the core functionality of LaTeX commands like \section et al, \textbf et al, \bfseries et al and \begin \end pairs?

\section works the same way as in LaTeX, for mathematics take a look into LaTeX Math in ConTeXt, use \bf instead of \textbf for both LaTeX and ConTeXt (or \def\textbf#1{{\bf #1}}) and as a general rule: use as many plain TeX macros as possible instead of LaTeX-specific macros. \begin ... \end only works for math as far as I know. See also other documents listed above or ask on the mailing list.

Functionality of Latex Packages in Context