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 ~, \~, \$, \%, &, \&, \!, \,, \>, \;, \{, \}, \(, \), \_, \#, \|, \\, |, [ \[, ] \], (, ), <, >, ', \', \", \=, \., \^, \`, \ , - \-, *, \@, \/.
It contains the description of the following commands: \@mathbb, \@mathbf, \@mathcal, \@mathit, \@mathrm, \@mathsf, \@mathtt.
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 a command name can contain only iso-8859-1 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. than the TeX output:
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. 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). Example
{\catcode`A6 \def\fooA1A2{\xdef\bar{A2A1}}\foo23 \testeq\bar{32}}
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. Such a construct cannot be used inside a command name. 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 preceeded 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, a simple dollar or this element in math mode: <mi>$</mi>. See description of the \qquad command and \AA 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, a simple percent or this element in math mode: <mo>%</mo>. See description of the \qquad command and \AA command.
Remember that the percent sign by itself (using default category codes) starts a comment.
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 ampersand sign & or this element in math mode: <mo>&</mo>. See description of the \qquad command and \AA command.
Remember that the ampersand sign by itself (using default category codes) is a cell delimiter in a table. The & entity should be known by every XML application.
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.
You can say something like \ifthenelse{\not \( ... \)}{...}{...}. See \ifthenelse.
On the other hand, \(a=b\) is the same as $a=b$.
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 \# command produces a # character. It is valid in text and in math mode; you can also use \sharp, that produces the musical siggn character U+266F, ♯. Note that a sharp sign by itself (using default catcodes), is used as a parameter delimiter in tables, or in macro definitions. See 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). The \cline command produces a row of empty cells, that should be of height 0. In the example, such a row is not needed, but it depends on the spans of the previous cells.
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.
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.
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.
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, and acts as a prime operator 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 \' 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 \" command puts a unmlaut or dieresis 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 \` 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 has 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 a mspace element of 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> element containing the invisible character ⁢ (Unicode U+2062).
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 \@mathit is a single commad; but it is 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 commands listed above are internal commands used by Tralics for font switching in math mode. The name of these were changed in version 2.9.4, and there are 15 such commands, see \mml@font@bold.
back to home page
© INRIA 2005, 2006
Last modified $Date: 2008/12/05 18:19:42 $