This page contains the description characters of catcode 0, catcode 1, catcode 2, catcode 3, catcode 4, catcode 5, catcode 6, catcode 7, catcode 8, catcode 9, catcode 10, catcode 11, catcode 12, catcode 13, catcode 14, catcode 15, catcode 16.

It contains also the description of ~, \~, \$, \%, &, \&, \!, \,, \>, \;, \{, \}, \(, \), \_, \#, \|, \\, |, [ \[, ] \], (, ), <, >, ', \', \", \=, \., \^, \`, \ , - \-, \+, *, \@, \/.

The following definitions will be used here:

\def\testeq#1#2{\def\tmp{#2}\ifx#1\tmp\else \toks0={#1wantd: ->#2.} \typeout{\the\toks0}\show #1\uerror\fi} \def\xtesteq#1#2{\xdef\tmp{#2}\ifx#1\tmp\else \toks0={#1wantd: ->} \typeout{\the\toks0 #2.}\show #1\uerror\fi}

This can be used as

\def\foo{something} \testeq\foo{Something else}

and will produce no XML, but an error and two lines of message, like

\foo wantd: ->Something else. \foo=macro: ->something. Error signaled at line 352: Undefined command \uerror.

Note the following points. Both `\typeout` and `\show`
print the value on the tty as well as the transcript file. The token list of
`\typeout` is fully expanded, and for this reason, we put in a
token list the quantity `#1wantd: ->#2.` and inhibit expansion via
`\the`.

Unless stated otherwise, a category code (in short a catcode)
is an integer between 0 and 15. It is a property
of input characters, used by the scanner to convert the input stream into
a sequence of tokens. The character with ASCII code 37 is the character %,
and is normally of category 14, thus behaves like a start-of-comment.
You can insert such a character in the XML output via the sequence
`\char37` (However `\char60` produces
`<`,
see the `\char` command).
In most of the cases, a character of catcode *c* is read as a command
with command code *c*.

*Tralics* uses the same parsing rules as TeX, with the exception
of characters of category 16 (see below), and the fact that the character
range is not limited to 8bit characters but to 16 bits. A
construction like `^^^^^1d7e0` provides a character
without category code, see
the documentation on characters.

The only character with catcode 0 is the backslash. This character
is used to construct command names. The number 0 is not a command code.
The command name is created as follows: if the next character is not of
category 11, the name consists of the single character, and *Tralics*
goes into state *S* if the character is a space, state *M* otherwise;
if the character is of category 11, the name consists of all
characters category 11 starting with the current one,
and *Tralics* goes into state *S*. The first unused character
will be read again later, and a category code assigned to it. Normally,
spaces after command names are ignored because the current state *S*
and the category code of the space character is 10. But the command can change
the category code of the character that follows.

The following example
shows how to change the `\catcode` of the letter x, so that
x can be used like a backslash. In the second definition, there is no space
between the digit zero and the letter x. This letter is scanned, found to be
a non digit, and pushed back in the main token list; at this moment, the
catcode is still unchanged, `xfoo` is considered as a string of
four letters, and not a command.

{\def\foo{\gdef\bar{OK}} \catcode`x=0 xfoo} \testeq\bar{OK} {\def\foo{\gdef\bar{notOK}} \catcode`x=0xfoo} \testeq\bar{OK}

The next example shows that the token after a control sequence
like `\foo` can be of catcode letter (because when the character is
read again, its catcode is analysed again).

{\def\bar#1{\egroup\show#1} \def\foo{\bgroup\catcode32=11\catcode`\%=11 \bar}\foo \foo%\foo=\foo$\foo#}

In the *Tralics* output below, `the letter' means a
character of category 11, `the character' a character of category 12.

the letter . the letter %. the character =. math shift character $. macro parameter character #.

Initially, the only character of catcode 1 is the open brace. See below.

Initially, the only character of catcode 2 is the closing brace.

The following example shows that you can use other characters.
In *Tralics*, characters of catcode 1 and 2 serve two purposes: for grouping,
so that modifications are local to a group, and for delimiting arguments.

```
{\catcode`A1\catcode`B2
\def\fooA2B\testeq\fooA2B
\def\barA\bgroup\def\fooA3B\egroupB\bar% \bar modifies \foo locally
\testeq\foo{2}}
```

Note the following trick: `\uppercase \relax\bgroup}`.
After `\uppercase` and commands like that, you can have an
arbitrary sequence of spaces and `\relax` commands. The argument
is delimited on the left by an implicit left brace, on the right by an
explicit right brace.

Initially, the only character with catcode 3 is the dollar sign.
It is used to enter and exit math and display math mode. A construct like
`{\catcode `x=3 \catcode`y=3 xy \sinxy}` is the same
as `\[\sin\]`.

The only character with catcode 4 is the alignment tab character &.
(see description of *arrays*).

The only character with catcode 5 is the end-of-line character
(carriage return, ASCII code 13).
When TeX sees such a character, it throws away the remaining of the line.
If TeX is in state *N*, the result is a `\par` token;
if TeX is in state *M*, the result is a newline token of catcode 10, and
otherwise, the character is ignored. For *Tralics*, the newline token has
value 10 (line-feed), and not 32 (space) as in TeX. As a result, in most cases,
newline characters remain in the XML result, whenever they are equivalent to
space (the purpose is to make the output more readable).
Note that *Tralics* is in state *N* whenever it reads the first
character of a line. The number 5 is not a command code.

Whenever *Tralics* sees a new line, it inserts the character defined
by the `\endlinechar` command. This character is by default
the end of line character, see
`\endlinechar`.

The only character with catcode 6 is the sharp sign #.
This character is used as parameter delimiter or parameter reference
in macro definitions. It is also used in TeX table preambles
(but not in LaTeX not *Tralics*). In the definition
of `\xbar` below, the quantity `#1` refers to
the first argument of `\Ma`, `##1` refers to
the first argument of `\Mb` and `####1` could
be used to refer to the first argument of `\xbar`. As
you can see, the sharp character can be replaced by any character
of catcode 6. In order to put in a command a character of category code 6, it
suffices to precede it by any character of catcode 6;
The body of the `\xfoo` command is `#A#A`,
but the printer shows it as `##AA##AA`
Example

{\catcode`A6 \def\fooA1A2{\xdef\bar{A2A1}}\foo23 \testeq\bar{32}} \def\Ma#1{\def\Mb ##1{\xdef\xbar{#1##1}}}\Ma a\Mb b \testeq\xbar{ab} \def\foo{###AA#AA}\def\fooB{##AA##AA} \def\fooC{####AAAA} \ifx\foo\fooB\else\bad\fi \ifx\foo\fooC\bad\fi}

The only character with catcode 7 is the hat. This character
is used in math mode for superscripts. It is also used in the double hat
construct: if a character of catcode 7 appears twice in a row,
like in `^^13` and `^^ab`, and is followed by two digits
in base 16, it is as if the character with this code had been given
(here, code 19, and 171); note that only lowercase letters are allowed here.
In the case where a character of catcode 7 appears twice in a row, and is
followed by a 7bit character of code *c* (like `^^Z` or
`^^A` or `^^{`), it is as if TeX had seen a character
of code *c-64* or *c+64* (the one which is between 0 and 128). In
the example, the numbers are 26, 1 and 59. The catcode of this character is
examined again, for instance `^^5e` is the hat character, of
catcode 7.

Example.

{1^^{^^ab2^^5e^ab3^^5e^5e^ab4\def\Abc{ok}\def\bAc{OK}\^^41bc\b^^41c} {\catcode `\é=7 ééab $xé2$ %next line should produce M éé $1^è=^^^AééT$} %line contains hat, hat, control-A \def\msg{A message.^^J}

This is the XML translation

<p>1;« 2« 3« 4okOK « <formula type='inline'><math xmlns='http://www.w3.org/1998/Math/MathML'> <msup><mi>x</mi> <mn>2</mn> </msup></math></formula> M<formula type='inline'><math xmlns='http://www.w3.org/1998/Math/MathML'> <mrow><msup><mn>1</mn> <mo>è</mo> </msup><mo>=</mo><mi>A</mi> <mo></mo></mrow></math></formula> </p>

Note: The line that contains the two é characters
translates as capital M, because the last character on the line is
the newline character, control-M (even though on Unix, you would
expect control-J). The `\msg` command contains as last token a
newline character (control-J of catcode 12), and not an end-of-line character
of catcode 5. The character control-T, represented by  seems to be
illegal in XML. Without it, the preview is .

If you say `^^^^ABCD`, the result is a character whose
value is defined by the value ABCD (each letter must be a digit, or a lower
case letter between A and F). Such a construct is equivalent
to `\char &ABCD`, but it is one token, and spaces are not ignored
after it. (You can also use five hats, see
the documentation on characters). Example

\def\foo#1#2#3{#1=#2=#3=} \foo^^^^0153^^^^0152^^^^0178 ^^^^017b^^8?

œ=Œ=Ÿ= Żx?

Preview:

The only character with catcode 8 is the underscore character.
It is used for subscripts in math mode.
See the `\sp` command for an example of use.

Outside math mode, you will get an error. For instance, if you say

{\catcode`x7 \catcode`y=8 a^b_c xy\sp\sb}

then *Tralics* will complain (but not in the same fashion as TeX).

Error signaled at line 377: Missing dollar not inserted, token ignored: {Character ^ of catcode 7}. Error signaled at line 377: Missing dollar not inserted, token ignored: {Character _ of catcode 8}. Error signaled at line 377: Missing dollar not inserted, token ignored: {Character x of catcode 7}. Error signaled at line 377: Missing dollar not inserted, token ignored: {Character y of catcode 8}. Error signaled at line 377: Missing dollar not inserted, token ignored: \sp. Error signaled at line 377: Missing dollar not inserted, token ignored: \sb.

Characters of code 9 are ignored. Initially, no character has this category code.

A character of catcode 10 acts like a space. If TeX sees a character of
catcode 10, the action depends on the current state. If the state is *N*
or *S*, the character is ignored. Otherwise, TeX is in state *M*
and changes to state *S*, and the result is a space token (character 32,
category 10). Space, tabulation are of catcode 10.

Spaces are in general ignored at start of line, because TeX is in state
*M*. In verbatim mode, the catcode of the space is changed, and
thus spaces remain.

Characters of catcode letter can be used to make multiletter control
sequences (without using `\csname`). Only ASCII letter (between a
and z, or between A and Z) are by default of catcode 11.

Characters of catcode 12 cannot be used to make multiletter control sequences. All characters not liste elsewhere are of catcode 12 (especially, all 8-bit characters).

Characters of category 13 are active. They can be used only if a definition
is associated. In *Tralics* only the tilde character is of 13,
but the three characters `_#&` have a definition
(the translation is the character).
Note that, in PlainTeX, the tilde character expands to
`\penalty \@M \ ` (there is a space at the end of the command)
and in LaTeX to `\nobreakspace{}`, which is the same with a
`\leavevmode` in front, in *Tralics*, the expansion
is simply `\nobreakspace`.

Characters of catcode 14 act like an start-of-comment character. The only character with catcode 14 is the percent character.

Characters of catcode 15 are invalid. There is no invalid character in *Tralics*.

There is no character of catcode 16 in TeX . In *Tralics*, this code is reserved
for verbatim-like characters, defined by `\DefineShortVerb`.
These characters act is if they were preceded by `\verb`.
Note that the star character is not exceptional. You can use
`\fvset`, if you want to change the translation of a space.

Example:

\DefineShortVerb{\|} Test of |\DefineShortVerb| and |\UndefineShortVerb|. \DefineShortVerb{\+} test 1 |toto| +x+ |+x-| +|t|+ \UndefineShortVerb{\+} test 2 |toto| +x+ |+x-| +|t|+ espace: |+ +|\fvset{showspaces=true}|+ +|\fvset{showspaces=false}|+ +|. \DefineShortVerb{\*} Verbatimfoo: *+ foo +*\verb+*foo*+\verb*+foo*+ Verbatimfoo: \verb|+ foo +*foo*foo*|.

The XML output is the following

<p>Test of <hi rend='tt'>\DefineShortVerb</hi> and <hi rend='tt'>\UndefineShortVerb</hi>. test 1 <hi rend='tt'>toto</hi> <hi rend='tt'>x</hi> <hi rend='tt'>+x-​</hi> <hi rend='tt'>|t|</hi> test 2 <hi rend='tt'>toto</hi> +x+ <hi rend='tt'>+x-​</hi> +<hi rend='tt'>t</hi>+ espace: <hi rend='tt'>+ +</hi><hi rend='tt'>+␣+</hi><hi rend='tt'>+ +</hi>. Verbatimfoo: <hi rend='tt'>+ foo +</hi><hi rend='tt'>*foo*</hi><hi rend='tt'>foo*</hi> Verbatimfoo: <hi rend='tt'>+ foo +*foo*foo*</hi>. </p>

We can continue the example as follows. We show how to use
`\SaveVerb` and `\UseVerb`.

\SaveVerb{FE}|}|\def\FE{\UseVerb{FE}} \DefineShortVerb{\+} \SaveVerb{VE}+|+\def\VE{\UseVerb{VE}} \SaveVerb{DU}|$_|\def\DU{\UseVerb{DU}} %$ \UndefineShortVerb{\+} \UndefineShortVerb{\|} \UndefineShortVerb{\*} Test \FE,\VE, \DU.

<p>Test <hi rend='tt'>}</hi>,<hi rend='tt'>|</hi>, <hi rend='tt'>$_</hi>. </p>

Preview:

*(tralics version 1 description:
The ~ character is a normal character, but translates into a
non-breaking space. Of course, the result is a tilde in verbatim mode, and a
mathematical space in math mode.) *
Example:

Test tilde:~\verb=~=$a~b$. \href{\url{a~b\~c}}{some url}

The XML translation is

Test tilde: <hi rend='tt'>~</hi><formula type='inline'> <math xmlns='http://www.w3.org/1998/Math/MathML'> <mrow><mi>a</mi><mspace width='1em'/><mi>b</mi></mrow></math></formula>. <xref url='some url'>a~b~c</xref>

Note how `~` and `\~` are handled by the
`\url` command.

In the current version of *Tralics*, the tilde character is active
and defined as `\def~{\nobreakspace}`. The only purpose of the
change is to make the following example work (it is file xii by
David Carlisle).

\let~\catcode~`76~`A13~`F1~`j00~`P2jdefA71F~`7113jdefPALLF PA''FwPA;;FPAZZFLaLPA//71F71iPAHHFLPAzzFenPASSFthP;A$$FevP A@@FfPARR717273F737271P;ADDFRgniPAWW71FPATTFvePA**FstRsamP AGGFRruoPAqq71.72.F717271PAYY7172F727171PA??Fi*LmPA&&71jfi Fjfi71PAVVFjbigskipRPWGAUU71727374 75,76Fjpar71727375Djifx :76jelse&U76jfiPLAKK7172F71l7271PAXX71FVLnOSeL71SLRyadR@oL RrhC?yLRurtKFeLPFovPgaTLtReRomL;PABB71 72,73:Fjif.73.jelse B73:jfiXF71PU71 72,73:PWs;AMM71F71diPAJJFRdriPAQQFRsreLPAI I71Fo71dPA!!FRgiePBt'el@ lTLqdrYmu.Q.,Ke;vz vzLqpip.Q.,tz; ;Lql.IrsZ.eap,qn.i. i.eLlMaesLdRcna,;!;h htLqm.MRasZ.ilk,% s$;z zLqs'.ansZ.Ymi,/sx ;LYegseZRyal,@i;@ TLRlogdLrDsW,@;G LcYlaDLbJsW,SWXJW ree @rzchLhzsW,;WERcesInW qt.'oL.Rtrul;e doTsW,Wk;Rri@stW aHAHHFndZPpqar.tridgeLinZpe.LtYer.W,:jbye

The `\~` command allows you to put a tilde accent on a letter
(see also the `\tilde` command).
The possibilities are given here:

\~A \~a \~{\^A} \~{\^a} \~{\u A} \~{\u a} \~E \~e \~{\^E} \~{\^e} \~I \~i \~N \~n \~O \~o \~{\=O} \~{\=o} \~{\'O} \~{\'o} \~{\"O} \~{\"o} \~{\^O} \~{\^o} \~{\H O} \~{\H o} \~U \~u \~{\'U} \~{\'u} \~{\H U} \~{\H u} \~V \~v \~Y \~ y

the result is

Ã ã Ẫ ẫ Ẵ ẵ Ẽ ẽ Ễ ễ Ĩ ĩ Ñ ñ Õ õ Ȭ ȭ Ṍ ṍ Ṏ ṏ Ỗ ỗ Ỡ ỡ Ũ ũ Ṹ ṹ Ữ ữ Ṽ ṽ Ỹ ỹ

Preview

The `\$` command is valid in math mode and text mode.
It generates a dollar sign
(`<mi>$</mi>` in math mode).
See also the description of the
`\qquad` command.
Remember that the dollar sign by itself (using default category codes)
starts or finishes a math formula.

The `\%` command is valid in math mode and text mode.
It generates a percent sign
( `<mo>%</mo>` in math mode).
See also the description of the
`\qquad` command.
Remember that the percent sign by itself (using default category codes)
starts a comment.

The `\&` command is valid in math mode and text mode.
It generates a ampersand sign `&`
(or `<mo>&</mo>` in math mode).
See description of the
`\qquad` command.
Remember that
the `&` character is valid only inside arrays as a cell delimiter
(see description of *arrays*).

The `\!` command is valid in math mode and text mode.
It generates a negative space of -3/18em in math mode
`<mspace width='-0.166667em'/>` and
nothing in text mode.
See description of the
`\qquad` command.

The `\,` command is valid in math mode and text mode.
It generates a space of 3/18em in math mode,
`<mspace width='0.166667em'/>`, and
a ` ` otherwise
(this is ` `, as defined in isonum.ent).

See description of the
`\qquad` command
and `\AA` command.

The `\>` command is valid in math mode.
It generates a space of 4/18em.
See description of the
`\qquad` command.

The `\;` command is valid in math mode.
It generates a space of 5/18em.
See description of the
`\qquad` command.

The `\{` command is valid in math mode and text mode.
It generates an open brace, for instance `<mo>{</mo>` in math mode.
See description of the
`\qquad` command,
and `\AA` command.
It can be used as a math delimiter, see description of the
`\vert` command.

Note that a single brace (without backslash), assuming default catcodes, opens a group.

The `\}` command is valid in math mode and text mode.
It generates an close brace, for instance `<mo>}</mo>` in math mode.
See description of the
`\qquad` command,
and `\AA` command.
It can be used as a math delimiter, see description of the
`\vert` command.

Note that a single brace (withut backslash) (assuming default catcodes) closes a group.

This command is undefined in *Tralics*; it is part of the
unimplemented `\settabs` mechanism

The `\_` command is valid in math mode and text mode.
It generates an underscore, in math mode it is
`<mo>_</mo>`
See description of the
`\qquad` command
and `\AA` command.

With defaults catcodes, a simple underscore character is valid only in math mode, and starts a subscript.

The LaTeX kernel contains
`\def\-{\discretionary{-}{}{}}`. Since hyphenation is
not implemented in *Tralics*, `\-` produces no result.

The command is also redefined by the tabbing environment, which is not yet implemented.

Note that hyphens are ligatures:

a - b -- c --- d

<p>a - b – c — d</p>

preview

The `|` command
it is equivalent to `\vert` as a math delimiter.
See description of the
`\vert` command.

The `\|` command is valid only in math mode.
It is equivalent to `\Vert`. It produces the character U+2225,
∥.
See description of the
`\vert` command.

The character # has category 6, is
described here , and cannot be use to
produce a sharp sign, you must used `\#` instead.
It is valid in text and in math mode; you can also use
`\sharp`, that produces
the musical sign character U+266F, ♯.
See also description of the `\AA` command.

The `\\` command has three meanings, depending on whether it is
in text, in a text table, or in math table. It can be followed by a star
(which is ignored) and an optional argument in brackets, which is a dimension.
Inside a table, the `\\` indicates the end of the current row, and
the optional argument specifies additional space between rows.
This argument is currently ignored in math mode. Note that `\\`
finished the current cell, the current row, and starts a new row and a new
cell. If this is the last cell in the table, and if it is empty, then the row
is removed. Said otherwise, a `\\` is ignored at the end of a
table; it is however needed before a final `\hline` if you want
an horizontal rule at the end of the table.

Outside a table, a `\\` specifies the end
of a paragraph, and the start of a new one, which is not indented. The optional
argument indicates vertical space to be added
(see also the `\vskip` command).
In a title, the command with its arguments is replaced
by `\@headercr`, a command that produces a space by default.
We give here an example of `\\` outside a table.

text A \\* text B \\[3mm] text C \expandafter\def\csname @headercr\endcsname{; } \section{A\\[2mm]B} \begin{center} line one\\ this is the second line \end{center}

This is the XML translation. The `<p>` element has a
`noindent ` attribute only if it has no `rend` attribute.

<p>text A</p> <p noindent='true'>text B</p> <p noindent='true' spacebefore='8.53581'>text C</p> <div0 id='uid1'><head>A; B</head> <p rend='center'>line one</p> <p rend='center'>this is the second line</p> </div0>

Preview.

This is an example of math table.

\begin{equation} \begin{array}{lcl} \dot{x} & = & Ax+g(x,u)\\[2mm] y & = & Cx \\ \multicolumn{3}{l}{x\in R^n} \end{array} \end{equation}

This is the XML translation.

<formula type='display'> <math xmlns='http://www.w3.org/1998/Math/MathML'> <mtable> <mtr> <mtd columnalign='left'><mover accent='true'><mi>x</mi> <mo>˙</mo></mover></mtd> <mtd><mo>=</mo></mtd> <mtd columnalign='left'> <mrow><mi>A</mi><mi>x</mi><mo>+</mo><mi>g</mi><mo>(</mo><mi>x</mi> <mo>,</mo><mi>u</mi><mo>)</mo></mrow> </mtd> </mtr> <mtr> <mtd columnalign='left'><mi>y</mi></mtd> <mtd><mo>=</mo></mtd> <mtd columnalign='left'><mrow><mi>C</mi><mi>x</mi></mrow></mtd> </mtr> <mtr> <mtd columnalign='left' columnspan='3'><mrow><mi>x</mi><mo>∈</mo> <msup><mi>R</mi> <mi>n</mi> </msup></mrow> </mtd> </mtr> </mtable> </math> </formula>

This is a preview. Note that the `\multicolumn` is ignored in the
rendering. This has been corrected.

Other example.

\begin{tabular}{|ll|rr|cc|} \hline a&b&c&d&e&f\\ aaa&bbb&ccc&ddd&eee&fff\\ \hline A&\multicolumn{3}{l|}{BCD}&E&F\\ \multicolumn{2}{|l}{ab}&c&d&e&f\\ \cline{1-3}\cline{6-6} aaa&bbb&ccc&ddd&eee&fff\\\hline \end{tabular}

This is the XML translation.

<table rend='inline'> <row top-border='true'> <cell halign='left' left-border='true'>a</cell> <cell halign='left' right-border='true'>b</cell> <cell halign='right'>c</cell> <cell halign='right' right-border='true'>d</cell> <cell halign='center'>e</cell> <cell halign='center' right-border='true'>f</cell> </row> <row> <cell halign='left' left-border='true'>aaa</cell> <cell halign='left' right-border='true'>bbb</cell> <cell halign='right'>ccc</cell> <cell halign='right' right-border='true'>ddd</cell> <cell halign='center'>eee</cell> <cell halign='center' right-border='true'>fff</cell> </row> <row top-border='true'> <cell halign='left' left-border='true'>A</cell> <cell cols='3' halign='left' right-border='true'>BCD</cell> <cell halign='center'>E</cell> <cell halign='center' right-border='true'>F</cell> </row> <row> <cell bottom-border='true' cols='2' halign='left' left-border='true'>ab</cell> <cell bottom-border='true' halign='right'>c</cell> <cell halign='right' right-border='true'>d</cell> <cell halign='center'>e</cell> <cell bottom-border='true' halign='center' right-border='true'>f</cell> </row> <row bottom-border='true'> <cell halign='left' left-border='true'>aaa</cell> <cell halign='left' right-border='true'>bbb</cell> <cell halign='right'>ccc</cell> <cell halign='right' right-border='true'>ddd</cell> <cell halign='center'>eee</cell> <cell halign='center' right-border='true'>fff</cell> </row> </table>

The rendering of the
`tabular` is not good: first, the width of the table is the width
of the page (changed to 15cm in this example), and the width of each column is
defined by the number of characters in it (in this example, you do not see
a difference, but replacing `a` by
`$a$` would be catastrophic).

You should look at the *page on arrays*.
It contains an example similar to this one. You can see that we changed the
algorithm: a `\hline` implies a `bottom-border`
on the previous row.

The `[` command can be used as a math delimiter.
See description of the
`\vert` command.

The expansion of `\[` is `$$`. It means:
`begin display math' but *Tralics* does no check.

The `]` command can be used as a math delimiter.
See description of the
`\vert` command.

The expansion of `\]` is `$$`. It means:
`end display math' but *Tralics* does no check. Hence `$a\]b$`
and `\]x\[` are valid expressions.

The `(` command can be used as a math delimiter.
See description of the
`\vert` command.

The expansion of `\(` is `$`. It means:
`start inline math' but *Tralics* does no check. This command
is also used as an opening delimiter by
the *ifthen package*.

The `)` command can be used as a math delimiter.
See description of the
`\vert` command.

The expansion of `\)` is `$`. It means:
`end inline math' but *Tralics* does no check. In particular
`$$ a\(\)` is valid; note also that `\(\)` is an
empty math formula. This command
is also used as a closing delimiter by
the *ifthen package*.

The `<` command can be used as a math delimiter.
See description of the
`\vert` command.
Otherwise, it translates like a normal character, but is always
printed as `<` in the XML output. There is one exception:
the `rawxml` environment
prints the convent verbatim, and the
`\xmllatex`
command print

The `>` command can be used as a math delimiter.
See description of the
`\vert` command.

This character behaves normally in text mode; it has a special
meaning when *Tralics* reads a number (see
*scanint*); it has a
special meaning in math mode.
Plain TeX defines an active apostrophe character as follows

{\catcode`\'=\active \gdef'{^\bgroup\prim@s}} \def\prim@s{\prime\futurelet\next\pr@m@s} \def\pr@m@s{\ifx'\next\let\nxt\pr@@@s \else\ifx^\next\let\nxt\pr@@@t \else\let\nxt\egroup\fi\fi \nxt} \def\pr@@@s#1{\prim@s} \def\pr@@@t#1#2{#2\egroup}

The definition of LaTeX is similar, with `\expandafter` instead of
`\nxt`. In *Tralics*, these lines of TeX code are replaced by some
lines of C++. The effect can be seen on the following example.

{\tracingall $x' x'' x''' x'''' u_2' v'^3_4$}

The transcript file will hold

{math shift} +stack: level + 3 ... Math: $x^{\prime } x^{\prime \prime } x^{\prime \prime \prime } x^{\prime \prime \prime \prime } u_2^{\prime } v^{\prime 3}_4$

We have removed a bunch of lines of the form `+stack: level', because each opening and closing brace changes the current level (by the way, it is the dollar sign that increases the level first). The XML translation is the following.

<formula type='inline'> <math xmlns='http://www.w3.org/1998/Math/MathML'> <mrow> <msup><mi>x</mi> <mo>′</mo></msup> <msup><mi>x</mi> <mrow><mo>′</mo><mo>′</mo></mrow> </msup> <msup><mi>x</mi><mrow><mo>′</mo><mo>′</mo><mo>′</mo></mrow></msup> <msup><mi>x</mi> <mrow><mo>′</mo><mo>′</mo><mo>′</mo> <mo>′</mo></mrow></msup> <msubsup><mi>u</mi> <mn>2</mn> <mo>′</mo></msubsup> <msubsup><mi>v</mi> <mn>4</mn><mrow><mo>′</mo><mn>3</mn></mrow> </msubsup> </mrow> </math> </formula>

Preview

The single quote character behaves normally, but has a special
meaning when *Tralics* reads a number (see
*scanint*).
The `\'` command puts an acute accent over some letters.
Do not confuse with `\acute`, which is a math-only command. Example

\'A \'a \'{\AA} \'{\aa} \'{\AE} \'{\ae} \'{\^A} \'{\^a} \'{\u A} \'{\u a} \'C \'c \'{\c C} \'{\c c} \'E \'e \'{\=E} \'{\=e} \'{\^E} \'{\^e} \'G \'g \'I \'i \\\'{\"I} \'{\"i} \'K \'k \'L \'l \'M \'m \'N \'n \'O \'o \'{\O} \'{\o} \'{\~O} \'{\~o} \'{\=O} \'{\=o} \'{\^O} \'{\^o} \'{\H O} \'{\H o}\\ \'P \'p \'R \'r \' S \'s \'{\.S} \'{\.s} \'U \'u \'{\"U} \'{\"u} \'{\~U} \'{\~u} \'{\H U} \'{\H u} \'W \'w \'Y \'y \'Z \'z

gives

Á á Ǻ ǻ Ǽ ǽ Ấ ấ Ắ ắ Ć ć Ḉ ḉ É é Ḗ ḗ Ế ế Ǵ ǵ Í í Ḯ ḯ Ḱ ḱ Ĺ ĺ Ḿ ḿ Ń ń Ó ó Ǿ ǿ Ṍ ṍ Ṓ ṓ Ố ố Ớ ớ Ṕ ṕ Ŕ ŕ Ś ś Ṥ ṥ Ú ú Ǘ ǘ Ṹ ṹ Ứ ứ Ẃ ẃ Ý ý Ź ź

Preview

The double quote character behaves normally, but has a special
meaning when *Tralics* reads a number (see
*scanint*).
The `\"` command puts a umlaut or diaeresis accent over some letters. Example:

\"A \"a \"{\=A} \"{\=a} \"E \"e \"H \"h \"I \"i \"{\'I} \"{\'i} \"O \"o \"{\=O} \"{\=o} \"{\~O} \"{\~o} \"t\\ \"U \"u \"{\=U} \"{\=u} \"{\`U} \"{\`u} \"{\'U} \"{\'u} \"{\v U} \"{\v u} \"W \"w \"X \"x \"Y \"y

gives

Ä ä Ǟ ǟ Ë ë Ḧ ḧ Ï ï Ḯ ḯ Ö ö Ȫ ȫ Ṏ ṏ ẗ Ü ü Ṻ ṻ Ǜ ǜ Ǘ ǘ Ǚ ǚ Ẅ ẅ Ẍ ẍ Ÿ ÿ

Preview

The `\=` command generates a macro accent,
similar to the `\bar` (that works in math mode only).
The translation of

\=A \=a \={\"A} \={\"a} \={\.A} \={\.a} \=\AE \=\ae \=E \= e \={\'E} \={\'e} \={\`E} \={\`e} \=G \=g \=H \=h\\ \=I \=i \={\d L} \={\d l} \= O \=o \={\k O} \={\k o} \={\"O} \={\"o} \={\~O} \={\~o} \={\.O} \={\.o} \={\`O} \={\`o} \={\'O} \={\'o}\\ \={\d R} \={\d r} \=T \=t \=U \=u \={\"U} \={\"u} \=Y \=y

is

Ā ā Ǟ ǟ Ǡ ǡ ǢǣĒ ē Ḗ ḗ Ḕ ḕ Ḡ ḡ Ħ ħ Ī ī Ḹ ḹ Ō ō Ǭ ǭ Ȫ ȫ Ȭ ȭ Ȱ ȱ Ṑ ṑ Ṓ ṓ Ṝ ṝ Ŧ ŧ Ū ū Ṻ ṻ Ȳ ȳ

Preview

The `\.` command generates dot accent,
similar to the `\dot` (that works in math mode only).
The translation of

\.A \.a \.{\=A} \.{\=a} \.B \.b \.C \.c \.D \.d \.E \.e \.F \.f \.G \.g \.H \.h \.I \.L \.l \.M \.m \.N \.n \.O \.o \.{\=O} \.{\=o} \.P \.p \.R \.r \.S \.s \.{\d S} \.{\d s} \.{\v S} \.{\v s} \.{\'S} \.{\'s} \.T \.t \.W \.w \.X \.x \.Y \.y \.Z \.z

is

Ȧ ȧ Ǡ ǡ Ḃ ḃ Ċ ċ Ḋ ḋ Ė ė Ḟ ḟ Ġ ġ Ḣ ḣ İ Ŀ ŀ Ṁ ṁ Ṅ ṅ Ȯ ȯ Ȱ ȱ Ṗ ṗ Ṙ ṙ Ṡ ṡ Ṩ ṩ Ṧ ṧ Ṥ ṥ Ṫ ṫ Ẇ ẇ Ẋ ẋ Ẏ ẏ Ż ż

Preview

The `\^` command generates a circonflex accent,
similar to the `\hat` command (that works in math mode only).
The translation of

\^A \^a \^{\'A} \^{\'a} \^{\`A} \^{\`a} \^{\h A} \^{\h a} \^{\~A} \^{\~a} \^{\d A} \^{\d a} \^C \^c \^E \^e \^{\'E} \^{\'e} \^{\`E} \^{\`e} \^{\h E} \^{\h e} \^{\~E} \^{\~e} \^{\d E} \^{\d e} \^G \^g \^H \^h \^I \^i \^J \^j \^O \^o \^{\'O} \^{\'o} \^{\`O} \^{\`o} \^{\h O} \^{\h o} \^{\~O} \^{\~o} \^{\d O} \^{\d o} \^S \^ s \^U \^u \^W \^w \^Y \^y \^Z \^z

is

Â â Ấ ấ Ầ ầ Ẩ ẩ Ẫ ẫ Ậ ậ Ĉ ĉ Ê ê Ế ế Ề ề Ể ể Ễ ễ Ệ ệ Ĝ ĝ Ĥ ĥ Î î Ĵ ĵ Ô ô Ố ố Ồ ồ Ổ ổ Ỗ ỗ Ộ ộ Ŝ ŝ Û û Ŵ ŵ Ŷ ŷ Ẑ ẑ

Preview

The backquote character behaves normally, but has a special
meaning when *Tralics* reads a number (see
*scanint*).
The `\`` command generates a grave accent,
similar to the `\grave` command (that works in math mode only).
The translation of

\`A \`a \`{\^A} \`{\^a} \`{\u A} \`{\u a} \`E \`e \`{\=E} \`{\=e} \`{\^E} \`{\^e} \`I \`i \`N \`n \\\`O \`o \`{\=O} \`{\=o} \`{\^O} \`{\^o} \`{\H O} \`{\H o} \`U \`u \`{\"U} \`{\"u} \`{\H U} \`{\H u} \`W \`w \`Y\`y

is

À à Ầ ầ Ằ ằ È è Ḕ ḕ Ề ề Ì ì Ǹ ǹ Ò ò Ṑ ṑ Ồ ồ Ờ ờ Ù ù Ǜ ǜ Ừ ừ Ẁ ẁ Ỳỳ

Preview

The `\ ` command adds a space character to the XML tree.
The command name is formed of a backslash followed by a space,
a tabulation, a line-feed, or a carriage return. Since these characters
are of catcode 10 (space), spaces after them is ignored.
At the start of chapter 25 of the TeXbook, Knuth explains that the result of
this command is as if a space had been given in a context where
the space factor is 1000 (*Tralics* ignores `\spacefactor`
and other factors that modify the space factor). In math mode, the translation
is `<mspace width='4pt'/>`.

Note that `\space` produces a single space.

The `\/` command is assumed to insert a kern corresponding to
the italic correction, if the last item on the horizontal list is a character
or a ligature, or a kern of width zero in math mode.
However, *Tralics* ignores such subtleties,
so that this command does nothing.

This command is valid in math mode only, the translation
is a `<mo>⁢</mo>`.

The LaTeX kernel contains
`\def\@{\spacefactor\@m}`. However, *Tralics* ignores
currently space factors, so that this command does nothing.
If the at-sign character is of category `letter', then `\@ne`
is a single command; but if it is of category `other' (normal case), it is
`\@` followed by some characters, and this often gives an error in
LaTeX, since the `\spacefactor` command cannot be used everywhere.

The description of `\@makeactive` is found near that
of `\makeatletter`; there are som exceptions to this rule:
`\@ne` is described as if it were `\one`.

back to home page © INRIA 2005, 2006 Last modified $Date: 2015/08/05 17:05:50 $