# All commands, alphabetic order; letter S

## \S (constant)

The \S command translates to a section sign, §, Unicode U+A7. It is equivalent to \textsection. See description of the latin supplement characters.

## \samepage

Translation of \samepage is <samepage/>.

## \savebox, \sbox

The two commands \sbox and \savebox read a box number and a box content, and fill the box. The \savebox command takes some optional arguments.

\setlength{\unitlength}{1pt}
\sbox0{1A\bf b}
\savebox1{2A\bf b}
\savebox2(3,4){3A\bf b}
\savebox3(3,4)[c]{4A\bf b}
\savebox4[40pt]{5A\bf b}
\savebox{5}[40pt][c]{6A\bf b}
\newsavebox\Nsbox
\savebox\Nsbox[40pt][c]{7A\bf b}
\box0\box1\box2\box3\box4\box5\usebox\Nsbox


Translation, where bold face font is shown as BF.

<mbox>1A<BF>b</BF></mbox>
<mbox>2A<BF>b</BF></mbox>
<pic-framebox width='3' height='4'>3A<BF>b</BF></pic-framebox>
<pic-framebox width='3' height='4' position='c'>4A<BF>b</BF></pic-framebox>
<mbox width='40.0pt'>5A<BF>b</BF></mbox>
<mbox width='40.0pt' position='c'>6A<BF>b</BF></mbox>
<mbox width='40.0pt' position='c'>7A<BF>b</BF></mbox>


## \SaveVerb

There are cases where verbatim material is forbidden. The solution consists in reading the verbatim material and putting it in a command, then use it later. The \SaveVerb command takes as argument a name (a sequence of letters), and reads the verbatim material, delimited by a character of category code 16 (defined by \DefineShortVerb). This material is saved, and can be used by the \UseVerb command.
For an example, see catcode section

## \savingdiscards (internal integer, eTeX extension)

When TeX's page builder transfers material from the recent contribution to the page so far, it discards discardable items preceding the first box or rule on the page. When ε-TeX's parameter \savingdiscards is positive, these discarded items are stored in a special list; the command \pagediscards reinserts these items (and clears the list). The same holds for \vsplit, the command is then \splitdiscards. Not used in Tralics.

## \savinghyphcodes (internal integer, eTeX extension)

The integer quantity \savinghyphcodes, when positive, tells ε-TeX to store the current \lccode table together with the hyphenation table of the current language. See ε-TeX documentation for why it is useful to store such a table; not used in Tralics.

## \sb

The \sb command is a shorthand for an underscore character of category code 8.
See an example \sp.

## \sc

The \sc command is equivalent to \normalfont\scshape. In other words, it selects a font of normal (Roman) family, medium series and small-caps shape.
For an example of fonts, see \rm.

## \scalebox, \reflectbox

The \scalebox command takes three arguments, the first produces the attribute scale, the second is optional, it produces the attribute vscale, and the third argument is a box content (a priori paragraphs are not allowed). The command \reflectbox takes a single argument, the box content, the scale is -1 and the yscale is 1.
For an example, see \fbox. Note: \scalebox{.33}{\includegraphics{xx}} adds scale='.33' to the image and produces no box.

## \scaleput

The \scaleput command is defined by the curves package.
See \arc.

## Scanint (function)

First some definitions: one optional space is either empty or a space (implicit or explicit, see below), and optional spaces refers to a (possibly empty) sequence of such characters. An equals is optional spaces, maybe followed by an = character of category code 12. Such an object is ignored, it appears in the case of an assignment after the variable. Example: it appears after \everypar, \box25, \hyphenchar\myfont, \fontdimen3\myfont, or \setmathchar5 6. In most of the examples below, we shall use =, rather than nothing or a space.

Sometimes, an integer value is read by Tralics. The value is a signed 32bit integer number. When a number is read, tokens are expanded, in order to see if it is a space, a digit, or whatever. An integer is formed by optional signs followed by an unsigned number. A sign is a + or a - of category code 12; more than one sign can be given, as well as spaces between them.

In the example that follows, \count@ is a command that reads the integer 2 (preceded by optional signs). Commands on the first line yield the number two, commands on the second line yield the number minus two. The translation of the two lines is XX.

X\count@=2 \count@=+2 \count@= + + 2 \count@ = + + + 2
\count@=-2 \count@=+-2 \count@= -+ + 2 \count@ = + - + + 2 \count@=---2 X


An unsigned number can be a coerced integer, obtained by converting a dimension (in this case, the dimension is expressed in scaled point units), or by converting a glue (in this case, only the fixed part of the glue is considered). The TeXbook specifies internal dimen and internal glue; since in the case \count0=14pt no dimension is read. In the example that follows, the number assigned to \count@ is respectively -16384 and 8192.

\dimen0=.25pt \count@=-\dimen0
\skip0=-.125pt plus 4fill \count@=+-+\skip0


Otherwise, it is a normal integer. This can be an internal integer. This is the result of applying a command that produces an integer. For instance, the first line of the following example shows how to change the sign of \count@. Note that \inputlineno refers to the current input line number, this is a value that cannot be changed by the user. Note the last line. In the case where the year is 2004, this will put 2004 into \count@. After that, characters zero, comma, and space are translated. Then 20040 will be put into \count@, because the scanner sees the token list returned by \the, and merges it with the tokens that follow.

\count@=-\count@
\count@=-\count255
\count@=\catcode\A
\count@=\escapechar
\count@=\inputlineno
\count@=\year0, \count@\the\year0


Otherwise it is a constant. In this case it can be followed by one optional space. Constants are expressed in base ten, unless preceded by a single quote (base eight) or a double quote (base sixteen). It is also possible to use a backquote followed by a character (or a one-character command). In the following example, one thousand in put in \count@ on the first line, while the values are 65, 65 and 126 on the second line. The translation is XX.

X\count@=1000 \count@='1750 \count@="3E8 %"
\count@=A \count@=\A \count@ =\~ X


Note some special cases: the quotes in the example above should be of catcode 12, as well the plus or minus signs. Base ten digits should also be of catcode 12, while additional digits (A to F) must be upper case, of catcode 11 or 12. Example (lines marked Error provoke a missing number error)

{\catcode8=11 \count@=78}%counter holds 7
{\catcode A=12\catcodeB=11 \count@="AB }%counter holds 171
% Error{\catcode '=11 \count@='12}
% Error{\catcode =11 \count@=12}
% Error{\catcode "=11 \count@="12} %"
% Error{\catcode +=11 \count@=+12}
% Error{\catcode -=11 \count@=-12}


You have to remember that conditionals can be expanded. In the example that follows, \ifodd is called before the second assignment is done, the value is true and 21 is put in \count@.

\count@=3 \count@=2\ifodd\count@ 1 \else 2\fi


The following commands scan a 32bit number: \addtocounter, \alph (via \@alph), \Alph (via \@Alph), \ding, \penalty, \setlanguage, \romannumeral, \ifodd, \isodd, etc.

The following commands scan a 27 bit number: \accent, \char, \radical, \delimiter, etc.

The following commands scan a 15 bit number: \mathaccent, \mathchar, etc.

There are lots of tables indexed by a register code number (between 0 and 255 in TeX, 0 and 1023 in Tralics). The following commands use scanint to get the value: \box, \copy, \unhbox, \unvbox, \unhcopy, \unvcopy, \showbox, \toks, \toksdef, \count, \dimen, \skip, \muskip.

These commands read a character code, which is also a number between 0 and 255 in TeX (and 65535 in Tralics): \endlinechar, \catcode, \lccode, \uccode, \sfcode.

There are 16 input channels, numbered between 0 and 15. The following commands use scanint to get the value: \openin, \ifeof, \closein, \read, \openout, \closeout, \write.

## Scandimen (function)

In Tralics, there are quantities called dimensions. A dimension is an integral multiple of a scaled point; there are 65536 scaled points in a point. Hence a dimension is at most 16000pt in absolute value (this is over five meters). When you say \parindent2\parindent the \parindent command calls a routine that reads a dimension, which is 2\parindent, this replaces the current value of \parindent by twice its value. You can say \parindent= 2\parindent, the result is exactly the same.

A dimen is an unsigned dimen preceded by optional signs. We begin with a short example, it is like the example for integers, but \count@ is replaced by \dimen@ and 2 by 2pt. The translation of the example is XX.

X\dimen@=2pt \dimen@=+2pt \dimen@= + + 2pt \dimen@ = + + + 2pt
\dimen@=-2pt \dimen@=+-2 Pt \dimen@= -+ + 2pT
\dimen@ = + - + + 2PT \dimen@=---2 pt X


An unsigned dimen can be obtained from glue by skipping the variable part (the stretch and shrink part). The TeXbook specifies internal glue as above. Example

\skip0=2ptplus2fill \parskip=2pt minus 3pt
\dimen@=\skip0
\dimen@=\parskip


Otherwise it is a normal dimen. This can be an internal dimen, in other terms, the result of a command that returns a dimension. Here are some examples.

\dimen@=-\dimen@
\dimen@=-\dimen0
\dimen@=\hsize
\dimen@=\fontdimen0 \font


In all other cases, it is factor followed by a unit of measure. A factor is either a normal integer (see description above) or a decimal constant: a sequence of digits (in base ten), followed by a point or comma (of category code 12), followed by a sequence of digits. The value is 0 if both sequences are empty. In the example below, we use pt as unit of measure. The third line shows that a sequence of digits in base 10 is normal integer thus a factor; the last line shows that everything is expanded.

\dimen@=.10pt \dimen@=10.pt \dimen@=1.2pt \dimen@=.pt
\dimen@=,10pt \dimen@=10,pt \dimen@=1,2pt \dimen@=,pt
\dimen@=2pt \count@=5 \dimen@=\count@ pt \dimen@=\year pt
\dimen@=\the\year,\the\month pt


A unit of measure can be a physical unit (see the \setlength command for a list of them), preceded by the optional keyword true, followed by one optional space. Note that a keyword is case insensitive, and the category code of the characters is irrelevant (however, an active character cannot be part of the keyword, because it is expanded); it can be preceded by optional spaces. When true is present, the factor is multiplied by 1000 and divided by the \mag parameter (example: if \mag is \magstep1, i.e. 1200, then 500pt is equal to 600truept). This is a TeX hack not implemented in Tralics: the true keyword has no effect. The following example translates into XX; the value of \dimen@ will be 2pt. The meaning of the second line is left as an exercise.

X\dimen@=2truept \dimen@=2 TRUE PT \dimen@=2.0 True PtX
\dimen@="Ccc \dimen@=-,sp % TeXbook Exercise 10.3


There are two special keywords em and ex; the value of the unit of measure depends on the current font; as the magnification hack has already been applied, you cannot put true here (and the error message after scanning true will be: Missing unit (replaced by pt) e . In the current implementation of Tralics, one em is 10pt and one ex is 4.25pt.

A unit of measure can also be optional spaces followed by internal integer (converted to a dimension by multiplying by one scaled point) or internal dime or internal glue (converted to a dimension by ignoring the stretchability and shrinkability).

Example. In the case \ifdim\ifnum, the quantity \skip0 is converted into a dimension, by removing the stretch part. In the last line of the example, we have inserted a \the whose effect is to convert the value into a list of tokens. The stretch part had to be removed by hand. The result is 12cm.

\dimen0=2pt \count@=196608 \skip0=4pt plus 3fill
\dimen@=2\dimen0 \dimen@=2\count@ \dimen@=2\skip0
\dimen@=.2 \dimen0 \dimen@=.2 \count@ \dimen@= .2 \skip0
\ifdim \ifnum0=1 \count0 pt\else \skip 0\fi >1cm \errmessage{bad}\fi
\skip0 =1\skip0 % TeXbook Exercise 24.3
\dimen@ = 12c\ifdim \the\ifnum0=1 \count0 pt\else \skip 0\fi <1cmm\else c\fi


Here are the commands that read a dimension: \hfuzz, \vfuzz, \overfullrule, \emergencystretch, \hsize, \vsize, \maxdepth, \splitmaxdepth, \boxmaxdepth, \lineskiplimit, \delimitershortfall, \nulldelimiterspace, \scriptspace, \mathsurround, \predisplaysize, \displaywidth, \displayindent, \parindent, \hangindent, \hoffset, \voffset.

A mudimen is like a dimen, but the unit must be a math-unit. You can coerce internal muglue, but nothing else; the only unit is mu, it cannot be preceded by true. You say \mkern2mu instead of \kern2pt (there are 18 mu to an em, where the em is taken from family 2). Note that, if you say \def\xx{\mkern18mu }, then $a\xx_{b\xx_{c\xx d}}$, you will get three different values (for instance, with standard latex, 10, 8.2 and 7.4 pt, but 10pt for Tralics).

## Scanglue (function)

A glue is like a dimension, but it has two additional (optional) parts: a stretch part and a shrink part. You should read the description of scanint and scandimen above. Then the following example should not be a surprise.

\skip0=2pt
\skip0=-\skip0
\skip0=\parskip


A glue is either optional spaces followed by internal glue or a dimen followed by stretch followed by shrink. The stretch is introduced by the plus keyword, the stretch by the minus keyword, followed by a dimen or a fil dimen. These two quantities could also be optional spaces. Now, fil dimen is formed of optional signs, then factor, then fill, then optional spaces. In fill you can use one, two or three els. In order to gain a few bytes in the TeX binary, TeX reads the keyword fil followed by an arbitrary number of l keywords, and generates an error for every extra el. Hence the following (it translates to XX).

X\skip0 = 1pt plus 2 pt minus 3pt
\skip0 = 1pt PLUS -2 pt MINUS -3pt
\skip0 = 1pt
\skip0=.33\skip0 plus \count0fill minus \parskip
\skip0 = 1pt minus 2pt
\skip0 = 1ptplus 3Filll minus 4fil X


Here are the commands that read/write glue: \baselineskip, \lineskip, \parskip, \abovedisplayskip \abovedisplayshortskip, \belowdisplayskip, \belowdissplayshortskip, \leftskip, \rightskip, \topskip, \splittopskip, \tabskip, \spaceskip, \xspaceskip, \parfillskip.

## Scanmuglue (function)

There are three specialized register containing math glue: \thinmuskip, \medmuskip and \thickmuskip, and 1024 general purpose register \muskip NNN. In math mode, \lastskip yields math glue (always zero in Tralics). These quantities are called internal muglue.

A muglue is like glue, except that everything has to be math units. The rules are the same as above, except that dimen has to be replaced by mudimen and internal glue by internal muglue. Example \mskip 3mu plus 4 fil minus \muskip0. Here \muskip0 is an example of internal muglue coerced into mudimen by taking only the fixed part.

## Scantoks (function)

There are some commands that read a token list. For instance, the two unimplemented commands \insert and \vadjust read a filler, then a {, then vertical mode material and finally }. Here the braces are (explicit or implicit) characters of category code 1 and 2 respectively, for instance \bgroup and \egroup. Everything between these braces is evaluated; some commands may have side effects, but the braces trigger a new level of grouping, so that all local definitions are discarded when the closing brace is sensed. Commands may have global side effect, or add material to the box under construction. Some commands are valid only in horizontal mode or math mode; an error is then signaled. Similarly, a \hbox contains horizontal mode material; there are other restrictions here. There is no difference between horizontal and vertical mode in Tralics, so that there are less restrictions. However \hbox{\chapter foo} generates a error.

A filler is something you can put between a command that reads a box (or assimilated) and the {; it is ignored. Tokens are expanded if needed. It is formed of optional spaces or \relax tokens. Recall that in case of \setbox0, there is an equals; in the case of \advance0, this is replaced by an optional by; this is the by keyword or optional spaces.

After \let, there is a control sequence followed by equals followed by one optional space followed by token. The first item is either a control sequence or an active character. In the example that follows, the first closing brace marks the end of the definition. The space that follows is inserted in the XML tree. The space after \: is not ignored since, on one hand it follows a control symbol, and on the other hand, it is not at the end of a line, because of the comment. This space follows the one optional space that comes from the body of the macro, hence is the token assigned to \sptoken. Recall that a space in optional spaces is either a character of \catcode 10, or a token made equivalent to such a character. For instance \sptoken is such a space. Note that \space is expanded, and its expansion is space. On the last line, we give an example of a keyword; it could have been replaced by a space (and this space would have been read as part of the integer 0).

{\def\:{\global\let\sptoken= } \:  % this makes \sptoken a space token
\gdef\space{ }
}
\everymath \space \space \sptoken= \relax \space\relax\sptoken{foo}
\everydisplay\relax\sptoken\everymath


### hbox group (level 5) entered at line 12 (\hbox{)
### semi simple group (level 4) entered at line 12 (\begingroup)
### simple group (level 3) entered at line 11 ({)
### semi simple group (level 2) entered at line 10 (\begingroup)
### semi simple group (level 1) entered at line 9 (\begingroup)
### bottom level


or by Tralics

### cell group (level 5) entered at line 13
### environment group (level 4) entered at line 12
### brace group (level 3) entered at line 11
### semi simple group (level 2) entered at line 10
### environment group (level 1) entered at line 9
### bottom level


You may wonder why ε-TeX uses twice as many stack levels as Tralics. This is because tables are implemented in a different way. For instance, using math mode for tables is very strange; one might wonder what the current mode is, when \tracinggroups is seen; the answer is restricted horizontal mode, but why? If we insert a \showlists command, we see

### restricted horizontal mode entered at line 13 []
spacefactor 3000
### restricted horizontal mode entered at line 13 []
spacefactor 0
### internal vertical mode entered at line 12
prevdepth ignored
### internal vertical mode entered at line 12
prevdepth ignored
### math mode entered at line 12
### restricted horizontal mode entered at line 12
spacefactor 1000
### horizontal mode entered at line 12 []
spacefactor 1000
### vertical mode entered at line 0
### current page: []


In the same situation, you will see the following lines in the Tralics transcript file. Here, the level is an index in the XML stack, and you can see that the current mode is a' (for array).

level 0 entered at line 0, type document, mode_v:
<std>
<table rend='inline'><row><cell/></row></table></std>
level 1 entered at line 12, type tabular, mode_v:
<table rend='inline'><row><cell/></row></table>
level 2 entered at line 13, type row, mode_a:
<row><cell/></row>
level 3 entered at line 13, type cell, mode_a:
<cell/>


If you translate the following line in verbose mode

{\the\currentgrouplevel}


you will see the following in the transcript file. The current level outside the group is one, so that you see it increase to 2; but ε-TeX shows it as zero, so that the \the inside the group expands to one. The reason for this strange behavior is that a quantity defined at level zero is never defined; the level is never zero, so that the \the never returns a negative value.

[9] {\the\currentgrouplevel}
{begin-group character}
+stack: level + 2 for brace entered on line 9
{\the}
{\the \currentgrouplevel}
\the->1.
{end-group character}
+stack: level - 2 for brace from line 9


## \showhyphens

If you call this command in LaTeX, you will see a two-line warning message, where the first line is Underfull \hbox (badness 10000) detected at line 10. Quote from the TeXbook: The \showhyphens macro creates an hbox that is intentionally underfull, so you should ignore the warning about badness 10000'; this spurious message comes out because TeX displays hyphens in compact form only when it is displaying the contents of anomalous hboxes. The second line could be [] \OT1/cmr/m/n/10 ex-er-cise. Another quote: TeX wizards may enjoy studying the way \showhyphens is defined in Appendix B. The LaTeX definition is similar, but a bit more complicated (guess why). You can see the name of the default font, preceded by a space, and an empty box (then brackets, it corresponds to the paragraph indentation). For each hyphenation point, you will see the value of the \hyphenchar, normally a hyphen. Note that hyphenation depends on the language. Since hyphenation is not implemented in Tralics, this command just ignores its argument.

## \showifs

This command is introduced in ε-TeX; it should you the conditional stack on the transcript file. Example

$\iftrue\unless\iffalse \ifmmode \ifnum1=2 \else \ifdim\parskip=3pt \else \showifs\fi\fi\fi\fi\fi$


What you will see is the following:

### level 4 serial 6: \ifdim\else entered on line 13
### level 3 serial 5: \ifnum\else entered on line 12
### level 2 serial 4: \ifmmode entered on line 12
### level 1 serial 3: \unless\iffalse entered on line 12
### level 0 serial 2: \iftrue entered on line 12


## \showlists

The \showlists commands prints on the transcript file that status of the engine. Consider a file with the following lines

...
\def\foo{123}
\afterassignment\foo\setbox0=\hbox{4}
\showbox0

\write-1{HEY}\write17{hey}${\showlists}$


What you will see is the following:

### math mode entered at line 27
### math mode entered at line 27
\mathord
### horizontal mode entered at line 27
\hbox(0.0+0.0)x15.0
spacefactor 1000
### vertical mode entered at line 0
### current page:
\write-{}
\write-{HEY}
\write*{hey}

prevdepth 0.0

! OK.
l.27 \write-1{HEY}\write17{hey}${\showlists }$


You may wonder: what is the meaning of the first \write-{} ? It is because the current class calls \onecolumn that calls \clearpage that calls \newpage then \write with the comment: Part of hack to make sure no \write's get lost.

In Tralics, the \showlists above does not print anything useful. Thus assume that line 29 contains this:

\chapter{A}a\part{B}b\section{C}c\subsection{D}d\paragraph{E}e\showlists


Then \showlists will produce the following output (we removed all newline characters, and each line was truncated to 80 characters). It happens that the mode is always vertical mode: the current mode is horizontal mode (but this information is not printed) because a new paragraph was entered when the character e' was translated. This character is not yet in the XML tree (it is in a temporary buffer).

level 0 entered at line 0, type document, mode_v
<rr part='true'><p><formula type='inline'><math xmlns='http://www.w3.org/1...
level 1 entered at line 29, type div0, mode_v
level 2 entered at line 29, type div2, mode_v
level 3 entered at line 29, type div3, mode_v
level 4 entered at line 29, type div5, mode_v
level 5 entered at line 29, type p, mode_v
<p></p>


## \showoutput

This command is ignored by Tralics; in LaTeX it is like \loggingoutput, but information is also printed to the terminal. You should say \tracingall in Tralics.

## \showoverfull

In LaTeX \showoverfull shows overfull boxes by setting \tracingonline to one. Ignored by Tralics.

## \showthe

There are lots of internal quantities, some of them are read-only, some of them can be modified by the user. In Tralics, quantities like \badness are neither modified by the user nor the program. If \foo is an internal quantity, you say \foo=\bar if you want to modify \foo, and the value of \foo is used otherwise (for instance in \bar\=foo). If \foo is a count register, you can use its value for computations. If you want to typeset the number, you say \number\foo.

The \the command is part of the expand routine. It takes a token (unexpanded), and the expansion is the meaning of this token, provided that the token refers to an internal quantity. For instance \the\catcode\A is 11, this is a list of two tokens. All tokens produced by \the are of catcode 12 (except space, of catcode 10). There are two exceptions \the\font returns a font identifier, and \the\toks0 returns a copy of the token list.

The command \showthe\foo prints on the terminal and the transcript file all the tokens produced by \the\foo.

In the example below, the \relax is important: without it, the assignment to \leftskip will expand the \Show command (because it could start with an l, and produce filll'), hence the \the, and the typeset value would be the value before the assignment).

\def\Show#1{\relax\the#1\showthe#1}
%1) \the parameter
\widowpenalty=3 \Show\widowpenalty
\parindent1.5pt \Show\parindent
\leftskip = 1pt plus 2fil minus 4fill \Show\leftskip
\thinmuskip = 3mu plus -2fil minus 4fill \Show\thinmuskip
%2) \the register
\count0=17 \Show{\count0}
\dimen0=17pt \Show{\dimen0}
\skip0=17pt plus 1 pt minus 2pt \Show{\skip0}
\muskip0=17mu plus 1 mu minus 2mu \Show{\muskip0}
%3) \the codename 8bit-number
\Show{\catcode\A}
\Show{\lccode\B}
%4) \the special register
\Show\inputlineno
%5) \the\fontdimen number font
\font\xa=cmr10 at 11truept
\fontdimen6\xa = 11pt \hyphenchar\xa=\-
\Show{\fontdimen6\xa}
%6) \the\hyphenchar ...
\Show{\hyphenchar\xa}
%7) \the\lastpenalty...
%8)\the defined character
\chardef\foo25
\Show\foo
%9) \the font
\Show\xa
%10) \the token variable
\toks0={\foo = \foo} \def\foo{foo}
\Show{\toks0}


This is printed on the terminal and the transcript file

\show: 3
\show: 1.5pt
\show: 1.0pt plus 2.0fil minus 4.0fill
\show: 3.0mu plus -2.0fil minus 4.0fill
\show: 17
\show: 17.0pt
\show: 17.0pt plus 1.0pt minus 2.0pt
\show: 17.0mu plus 1.0mu minus 2.0mu
\show: 11
\show: 98
\show: 20
\show: 11.0pt
\show: 45
\show: 25
\show: cmr10
\show: \foo = \foo


And this is the translation:

3 1.5pt 1.0pt plus 2.0fil minus 4.0fill 3.0mu plus -2.0fil minus 4.0fill
1717.0pt17.0pt plus 1.0pt minus 2.0pt17.0mu plus 1.0mu minus 2.0mu119821
11.0pt 45 25 cmr10 foo= foo


## \showtokens

The command \showtokens reads a token list, and print it on the terminal, and transcript file. As the example below shows, the start of the token list is obtained by expanding tokens and ignoring \relax until a brace (implicit or explicit) is found. The last list should print something like \show: \tralicsversion 2.15.3.

\showtokens \relax \expandafter{\jobname}
\showtokens \expandafter{\expandafter\tralicsversion\tralicsversion  }


## \show@xmlA, \show@xmlB (Tralics commands)

These two commands show the value of certain inner quantities; see section manipulating the XML tree for examples.

## \sideset

The \sideset command takes three arguments, L, R, and S. Each quantity L and R defines a superscript and a subscript, they will be put on the left and right of the operator S. The quantity S should be an operator, it can have superscript and subscripts (placed above and below). In the first example below, L is empty, and R contains a superscript (remember that a prime sign is the same as ^{\prime}). The result is a sum sign, with the letter i below it, and a prime accent on the upper right. In the second example, we have a superscript and a subscript in L, R and S. (for the translatation, see here.

$\sideset{}{'}\sum_i x_i$
$\sideset{^{a}_b}{_{D}^c}\sum_x^yw$


Translation

<formula type='inline'>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
<mrow>
<munder>
<mmultiscripts><mo>&sum;</mo><none/><mo>&apos;</mo></mmultiscripts>
<mi>i</mi>
</munder>
<msub><mi>x</mi> <mi>i</mi> </msub>
</mrow>
[/itex]
</formula>
<formula type='inline'>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
<mrow>
<munderover>
<mmultiscripts>
<mo>&sum;</mo><mi>D</mi><mi>c</mi>
<mprescripts/><mi>b</mi><mi>a</mi>
</mmultiscripts>
<mi>x</mi>
<mi>y</mi>
</munderover>
<mi>w</mi>
</mrow>
[/itex]
</formula>


## \sigma (math symbol)

The \sigma command is valid only in math mode. It generates a Greek letter: <mi>&sigma;</mi> (Unicode U+3C3, σ). See description of the \alpha command.

## \Sigma (math symbol)

The \Sigma command is valid only in math mode. It generates an uppercase Greek letter: <mi>&Sigma;</mi> (Unicode U+3A3, Σ). See description of the \alpha command.

## \sim (math symbol)

The \sim command is valid only in math mode. It generates a relation symbol: <mo>&sim;</mo> (Unicode U+223C, ∼). See description of the \le command.

## \simeq (math symbol)

The \simeq command is valid only in math mode. It generates a relation symbol: <mo>&simeq;</mo> (Unicode U+2243, ≃). See description of the \le command.

## \sin (math symbol)

The \sin command is valid only in math mode. Its translation is a math operator of the same name: <mo form='prefix'>sin</mo>.
For an example see the \log command.

## \sinh (math symbol)

The \sinh command is valid only in math mode. Its translation is a math operator of the same name: <mo form='prefix'>sinh</mo>.
For an example see the \log command.

## \sixt@@n (constant)

The \sixt@@n command is defined to be the integer 16. Use it only when TeX expects a number, for instance, the piece of code below uses \tw@ (two), \z@ (zero) and \sixt@@n (sixteen). It computes in count0 and count2 the quotient and remainder of count) by 16.

   \count\tw@\count\z@
\divide\count\z@\sixt@@n
\count@\count\z@
\multiply\count@\sixt@@n


## \skewchar (internal integer)

If you say \the\skewchar\foo, you will get the skewchar of the font \foo. This is an integer. If you say \skewchar\foo=444, you set this to 444. This is explained in the TeXbook, appendix G, rule 12. Not used by Tralics.

## \skip

When you say \skip13 12pt, you change the value of the glue register number 13 to the value 12pt.
See scanint for details of how integers are read, and scanglue for glue. The integer must be a valid register number (between 0 and 255). After \skip13 there comes an optional equals sign and a glue. For instance skip1=\skip2 makes a copy of register number 2 into register number 1.

## \skip@ (rubber length)

The command \skip@ is a short-hand for \skip0.

## \skipdef

When you say \skipdef\foo=13, you make \foo an alias for \skip13.
See scanint for details of how the number 13 is read; it has to be a valid register number (between 0 and 255). The two commands \newskip and \newlength use \countdef for defining the command associated to the counter.
You can put the prefix \global before \skipdef.

## \sl

The \sl command is equivalent to \normalfont\slshape. In other words, it selects a font of Roman family, medium series and slanted shape.
For an example of fonts, see \rm.

## \slash

LaTeX contains the following definition \def\slash{/\penalty\exhyphenpenalty}. But Tralics ignores penalties, so that \slash produces a simple slash.

## \sloppy

In LaTeX, the \sloppy command modifies some internal quantities, like \tolerance, \emergencystretch, \hfuzz and \vfuzz, all quantities that Tralics ignores. Hence \sloppy is implemented as a no-op.

## sloppypar (environment)

The equivalent of \newenvironment{sloppypar} {\par\sloppy} {\par} is executed by the LaTeX kernel.

## \slshape

The \slshape command changes the shape of the current font to a slanted shape.
For an example of fonts, see \rm.

## \small

The \small command is a command that selects a small font.
For an example of fonts, see \rm.

## \smallbreak

In Tralics, the \smallbreak command is the same as \par. In LaTeX, it makes also sure that the space between the two paragraphs is at least \smallskipamount, by calling \smallskip if necessary; not implemented in Tralics.

## \smallint (math symbol)

The \smallint command should give a small integral sign. It gives a normal one. Here are some randomly chosen math symbols

$\smallint \int \land \wedge \lor \owns \ni \notin \neg \lnot \gets \leftarrow \to \rightarrow \gtrless \geqslant \leqslant \iff \backslash$


The XML result is

<formula type='inline'><math xmlns='http://www.w3.org/1998/Math/MathML'>
<mrow><mo>&int;</mo><mo>&int;</mo><mo>&wedge;</mo><mo>&wedge;</mo><mo>&vee;</mo>
<mo>&ni;</mo><mo>&ni;</mo><mo>&notin;</mo><mo>&not;</mo><mo>&not;</mo>
<mo>&leftarrow;</mo><mo>&leftarrow;</mo><mo>&rightarrow;</mo><mo>&rightarrow;</mo>
<mo>&gl;</mo><mo>&geqslant;</mo><mo>&leqslant;</mo><mo>&Longleftrightarrow;</mo>
<mo>&bsol;</mo></mrow>[/itex]</formula>


If you do not like entity names, you can use the -noentnames switch, and you get

<formula type='inline'>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
<mrow><mo>&#x0222B;</mo><mo>&#x0222B;</mo><mo>&#x02227;</mo><mo>&#x02227;</mo>
<mo>&#x02228;</mo><mo>&#x0220B;</mo><mo>&#x0220B;</mo><mo>&#x02209;</mo>
<mo>&#xAC;</mo><mo>&#xAC;</mo><mo>&#x02190;</mo><mo>&#x02190;</mo>
<mo>&#x02192;</mo><mo>&#x02192;</mo><mo>&#x02277;</mo>
<mo>&#x02A7E;</mo><mo>&#x02A7D;</mo><mo>&#x027FA;</mo><mo>&#x5C;</mo>
</mrow>[/itex]
</formula>


## \smallsetminus (math symbol)

The command \smallsetminus is an alias for \setminus. It is valid only in math mode, generates <mo>&setminus;</mo> (Unicode U+2216, ∖).

## \smallskip

In LaTeX, we have the following definitions:

\newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt
\newskip\medskipamount   \medskipamount  =6pt plus 2pt minus 2pt
\newskip\bigskipamount   \bigskipamount =12pt plus 4pt minus 4pt

\def\smallskip{\vspace\smallskipamount}
\def\medskip{\vspace\medskipamount}
\def\bigskip{\vspace\bigskipamount}


In plain TeX, definitions are similar, with \vskip instead of\vspace. In Tralics, the three glue registers are defined as above, but unsed; the three commands use a fixed dimension (3, 6 and 12 pt), and the \vskip by a change of paragraph, (see description of the \vskip command) so that \smallskip is like \\[3pt] (except that the new paragraph is indented). Example.

text A \bigskip text B \smallskip text C \medskip text D
\begin{center}
short line \bigskip a longer line \smallskip a still longer line \medskip
a very long line of text
\end{center}

<p>text A </p>
<p spacebefore='12.0pt'>text B </p>
<p spacebefore='3.0pt'>text C </p>
<p spacebefore='6.0pt'>text D</p>

<p rend='center'>short line </p>
<p spacebefore='12.0pt' rend='center'>a longer line </p>
<p spacebefore='3.0pt' rend='center'>a still longer line </p>
<p spacebefore='6.0pt' rend='center'>a very long line of text</p>


Preview .

See \smallskip

## \smash

The \smash command takes an argument, and modifies its height and depth to be zero. It takes an optional argument: h, d or w, case where the height, depth or width is set to zero. Example:

 $\smash{x} \smash[t]{x} \smash[b]{x} \smash[w]{x}$


Translation

<formula type='inline'>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
<mrow>
</mrow>
[/itex]
</formula.


## \smile (math symbol)

The \smile command is valid only in math mode. It generates a relation symbol: <mo>&smile;</mo> (Unicode U+2323, ⌣). See description of the \le command.

## \so

Command from the soul package, that takes an argument and behaves like \textit. For an example, see \ul.

## \sp

The \sp command is a shorthand for a hat character of catcode 7. The following two lines are equivalent

$a^c_b$
$a\sb b\sp c$


The XML result is

<formula type='inline'><math xmlns='http://www.w3.org/1998/Math/MathML'>
<msubsup><mi>a</mi> <mi>b</mi> <mi>c</mi> </msubsup>[/itex]</formula>
<formula type='inline'><math xmlns='http://www.w3.org/1998/Math/MathML'>
<msubsup><mi>a</mi> <mi>b</mi> <mi>c</mi> </msubsup>[/itex]</formula>


## \space

The expansion of the \space command is a space. Note that \space{ } \space produces four spaces. Note that spaces are ignored in math mode (use command like \mkern, \quad, ~, \,, and so on).

## \@spaces

Expansion of this command is \space\space\space\space.

## \spacefactor (internal integer)

TeX uses the value of \spacefactor for computing spaces between characters. In general, the spacefactor is obtained via the \sfcode of the current character, using some complicated rules. You can change the space factor, like any other integer, for instance \spacefactor=1234, however the value must be between 1 and 32767.

In Tralics, you can say \spacefactor-12345, and nothing happens. As a consequence, \showthe\spacefactor will always print 0.

## \spaceskip (rubber length)

You can say \spaceskip=10pt plus 2pt minus 3pt. This explains to TeX that it should put 10pt (maybe up to 2pt more, maybe up to 3pt less) of glue between words. Unused by Tralics. (See scanglue for details of argument scanning). In fact, if the spacefactor f is at least 2000, and \xspaceskip is not zero, then this quantity is used. Otherwise, if \spaceskip is not zero, the \spaceskip glue is used, with stretch and shrink components multiplied by f/1000 and 1000/f. Otherwise, the parameters of the current font are used.

The \spadesuit command is valid only in math mode. It generates a miscellaneous symbol: <mo>&spadesuit;</mo> (Unicode U+2660, ♠). See description of the \ldots command.

## \span

When \span appears in a preamble, it causes the next token to be expanded. Otherwise, it marks the end of a cell in a table, and the beginning of a new one. These two cells are merged.

This does not work in Tralics. You should use \multicolumn instead.

## \special

If you say \special{foo}, nothing special happens. If you want, you can say \renewcommand\special{\xmlelt{special}} so that the expression above translates to <special>foo</special>.

## \sphericalangle (math symbol)

The \sphericalangle command is valid only in math mode. It generates the symbol: <mo>&angsph;</mo> (Unicode U+2222, ∢).

## split (environment)

The split environment is used for splitting equations. \begin{split} XX \end{split} is equivalent to \begin{array}{rl} XX \end{array}. Example.

$$\begin{split} (a+b)^4 &= (a+b)^ 2 (a+b)^2 \\ &= (a^2+2ab+b^2)(a^2+2ab+b^2) \\ &= a^4+4a^3b+6a^2b^2+4ab^3+b^4 \\ \end{split}$$


Translation


<formula id-texrt='1' id='uid' type='display'>
<math mode='display' xmlns='http://www.w3.org/1998/Math/MathML'>
<mtable displaystyle='true'>
<mtr>
<mtd columnalign='right'>
<mrow><mrow><mo>(</mo><mi>a</mi><mo>+</mo><mi>b</mi></mrow>
<msup><mo>)</mo> <mn>4</mn> </msup></mrow>
</mtd>
<mtd columnalign='left'>
<mrow><mrow><mo>=</mo><mo>(</mo><mi>a</mi><mo>+</mo><mi>b</mi></mrow>
<msup><mo>)</mo> <mn>2</mn> </msup>
<mrow><mo>(</mo><mi>a</mi><mo>+</mo><mi>b</mi></mrow><msup><mo>)</mo>
<mn>2</mn> </msup></mrow>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd columnalign='left'>
<mrow><mrow><mo>=</mo><mo>(</mo></mrow><msup><mi>a</mi> <mn>2</mn></msup>
<mo>+</mo><mn>2</mn><mi>a</mi><mi>b</mi><mo>+</mo>
<msup><mi>b</mi> <mn>2</mn> </msup><mrow><mo>)</mo><mo>(</mo></mrow>
<msup><mi>a</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn>
<mi>a</mi><mi>b</mi><mo>+</mo><msup><mi>b</mi> <mn>2</mn> </msup>
<mrow><mo>)</mo></mrow></mrow>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd columnalign='left'>
<mrow><mo>=</mo><msup><mi>a</mi> <mn>4</mn> </msup>
<mo>+</mo><mn>4</mn><msup><mi>a</mi> <mn>3</mn> </msup><mi>b</mi>
<mo>+</mo><mn>6</mn><msup><mi>a</mi> <mn>2</mn> </msup><msup><mi>b</mi> <mn>2</mn> </msup>
<mo>+</mo><mn>4</mn><mi>a</mi><msup><mi>b</mi> <mn>3</mn> </msup>
<mo>+</mo><msup><mi>b</mi> <mn>4</mn> </msup>
</mrow>
</mtd>
</mtr>
</mtable>
[/itex]
</formula>


## \splitbotmark

The expansion of \splitbotmark is the mark text of the last mark that appears in the vertical list that was split off by the most recent \vsplit command. Since splitting is a no-op in Tralics, the expansion of \splitbotmark is empty. One extension of ε-TeX is to maintain a stack of marks. The six commands \marks, \firstmarks, \topmarks, \botmarks, \splitfirstmarks, and splitbotmarks generalise commands with the same name (without final s), they read an integer N, and set a mark at position N, or get the mark at position N. The value of the integer is ignored in Tralics.

## \splitbotmarks

This is an extension introduced by ε-TeX; an integer is read, expansion is empty. See \splitbotmark.

This is a no-op in Tralics. See \savingdiscards for explanations.

## \splitfirstmark

Expansion is empty (it is the first mark on a split box), see \splitbotmark.

## \splitfirstmarks

This is an extension introduced by ε-TeX; an integer is read, expansion is empty.

## \splitmaxdepth (rigid length)

You can say \splitmaxdepth=1.5in, as a result TeX will make sure that the last line (box) of a split box has a depth not exceeding 1.5in (by shifting it up if necessary). Ignored by Tralics, since \vsplit is not implemented.
(See scandimen for details of argument scanning).

## \splittopskip (rubber length)

You can say \splittopskip=10pt plus 2pt minus 3pt. This explains to TeX that it should put 10pt (maybe up to 2pt more, maybe up to 3pt less) of glue on the top of each split page. Unused by Tralics (you should use environments like quote or center instead).
(See scanglue for details of argument scanning).

## \sqcap (math symbol)

The \sqcap command is valid only in math mode. It generates a binary operator: <mo>&sqcap;</mo> (Unicode U+2293, ⊓). See description of the \pm command.

## \sqcup (math symbol)

The \sqcup command is valid only in math mode. It generates a binary operator: <mo>&sqcup;</mo> (Unicode U+2294, ⊔). See description of the \pm command.

## \sqrt

The \sqrt command puts a square root sign over its argument. It can take an optional argument, and \sqrt[x]{y} is equivalent to \root x \of{y}. It works only in math mode.

## \sqsubset (math symbol)

The \sqsubset command is valid only in math mode. It generates a relation symbol: <mo>&sqsubset;</mo> (Unicode U+228F, ⊏). See description of the \le command.

## \sqsubseteq (math symbol)

The \sqsubseteq command is valid only in math mode. It generates a relation symbol: <mo>&sqsubseteq;</mo> (Unicode U+2291, ⊑). See description of the \le command.

## \sqsupset (math symbol)

The \sqsupset command is valid only in math mode. It generates a relation symbol: <mo>&sqsupset;</mo> (Unicode U+2290, ⊐). See description of the \le command.

## \sqsupseteq (math symbol)

The \sqsupseteq command is valid only in math mode. It generates a relation symbol: <mo>&sqsupset;</mo> (Unicode U+2292, ⊒). See description of the \le command.

## \square (math symbol)

The \square command is valid only in math mode. It generates a miscellaneous symbol: <mo>&square;</mo> (Unicode U+25A1, □). See description of the \ldots command.

## \SS

The translation of \SS is SS. It is the uppercase version of \ss.

## \ss

The translation of \ss is ß or &#xDF; It is the lowercase version of \SS.

## \sslash (math symbol)

The \sslash command is valid only in math mode. It generates the operator: <mo>&#x2AFD;</mo>, Unicode U+2AFD, ⫽.

## \st

Command from the soul package, that takes an argument and behaves like \textit. For an example, see \ul.

## \stackrel

The \stackrel command takes two arguments A and B, it places A (superscript size) over B (that is expected to be a relation). It works only in math mode.

## \star (math symbol)

The \star command is valid only in math mode. It generates a binary operator: <mo>&star;</mo> (Unicode U+2606, ☆). See description of the \pm command.

## \stepcounter

The \stepcounter command increments a counter, and resets all dependent ones. This is an example:

> \newcounter{foo}
> \toks0=\expandafter{\stepcounter{foo}}
> \showthe\toks0
\show: \global \advance \c@foo \@one \let \@elt \@stpelt \cl@foo


In LaTeX, you would see a different form: \addtocounter {foo}\@ne \begingroup \let \@elt \@stpelt \csname cl@foo\endcsname \endgroup.

## \stop

The \stop command is equivalent to \@@end. This closes all files, forgets about all pending input, thus terminates the current job.

## \@stpelt

This command takes one argument, a counter name and sets it to zero.

## \stretch

You can say something like \hspace{\stretch{2.3}}. The effect is to add an horizontal space of natural width zero, but stretches like 2.3fill. Note that \stretch{1} is the same as \fill. The argument of \stretch should be (after expansion) a real number.

## \string

The \string command is a primitive, that reads a token, and whose expansion is a list of characters that represent that token. These characters are of \catcode 12, except for space, which has its usual catcode. For instance, \string{\string} is typeset in the same way as \char{\char}; the difference is that \char is evaluated, hence illegal in \csname. In the following example, we construct and use a command, whose name contains braces.

\expandafter\def\csname\string{\string}\endcsname#1#2{#2#1}
\expandafter\csname\string{\string}\endcsname XY


The expansion of \string\foo is a list of four tokens. The first token is not always a backslash: if you say \escapechar=A, it would be the letter A, and if \escapechar is out of range, it is omitted. After {\escapechar=-1 \xdef\foo{\string\}}}, the \foo macro expands to a closing brace character.

## \strip@prefix

The \strip@prefix strips the prefix produced by \meaning for a macro; said otherwise, all tokens up a greater-than sign. See an example at \@expandtwoargs

## \strip@pt

If you say \strip@pt\topmargin the expansion may be 18 or 18.3. The LaTeX definition is given here. The important point is that \the\topmargin is executed, and this should return a dimension, as in 18.3pt, after that, the final pt and the dot are removed. No error is signaled by Tralics if these characters are not found.

## \strut

This command is valid in math mode only; is translation is an invisible object (a <mphantom>) that has the same height and depth of a parenthesis (a <mpadded> element makes the width equal to zero).

## subequations (environment)

This is an environment provided by the amsmath package, but, for technical reasons, implemented directly in Tralics. You cannot nest this environment, the error message being Illegal nesting of subequations environment. The command \begin{subequations} finishes the current paragraph, adds an anchor, and calls \refstepcounter{equation}. Assume that the current equation counter is 6, \theequation is y\arabic{equation}, and \p@equation is X. This produces a <anchor id-text='Xy7' id='uid18'/> element, where uid18 is a unique identifier. A \label in this environment refers to this element. The counter parentequation is set to 7, and \theparentequation to the current value of the equation (in the example y7). Then the equation counter is set to zero, and \theequation to \theparentequation\alph{equation}. This means that the equation will be numbered (y7a) and the anchor will have a id-text='Xy7a' attribute. If you say \renewcommand\theequation{\theparentequation\roman{equation}} you will get id-text='Xy7i' instead. The command \end{subequations} sets the value of the equation counter to that of the parent equation counter (the value of \theequation is automatically restored).

## \subfigure

The subfigure command takes two arguments, an optional one, and a required one; translation is of the form <subfigure id='uid2'> <leg>optional</leg> <texte>mandatory</texte></subfigure>. An anchor is added to the element since version 2.11.3, this means that if you put a \label in the argument, a reference to the label will refer to the subfigure, via the ID, uid2 in the example.

In what follows, we describe what happens when a subfigure is in a figure. One of the main difficulties when using Tralics for the RA (Inria's Activity Report) is the conversion of XML figures into Pdf. Consider an author that puts four images A, B, C, D in a figure. There are various tricks that can be used to get a correct placement (normal space, fill glue, or even negative space). Assume that the author wants two rows of two images; this can be achieved via \\ or a \par; in some cases there is no need to insert such a command because there is a natural line break between A and B. Assume now that, when the XML produced by Tralics is converted into Pdf, the alignement is different; for instance if the text with is 13cm and each figure has a width of 6.75cm, these will be vertically aligned. If the caption refers to B as to the upper-right image, it is wrong. If images are square, this gives a total height of 27cm, hence overflow, and the caption will be below the bottom of the page, and invisible. For this reason, it is better to use a table; the total width exceeds the textwidth by 1cm, this is small enough that the whole table will be visible on the page. One could argue that the author should use something like .45\textwidth, this should leave enough space between the images, but Tralics converts this to the value 6.75cm shown above.

There is a post-process for the figure environment, it modifies the content, according to some complicated rules. The simple case is when the figure has a single image; another case is when the figure contains a table. If the figure has subfigures, a table is created for the reasons explained above; some people disagree, so that there is an alternative, but this assumes that the subfigure contains an image. In each case, Tralics uses the relevant elements discarding everything else. You may get a warning of the form Warning: junk in figure detected on line 17 of file foo.tex. In such a case discarded elements can be found in the XML file in a comment that starts with ignored_fig_contents.

We consider here the case where the figure contains a subfigure. Each paragraph is transformed into a table, each subfigure producing two cells, the mandatory argument (in general the image) on the first row, the optional argument (in general the caption) on the second row. When LaTeX typesets the whole thing, it inserts a prefix before each caption, for instance Figure 3 before the figure caption and (d) before the subfigure caption. This is not done by Tralics (figure numbers are added when the XML document is converted to HTML). A reference to the subfigure may be typeset by LaTeX as (3.d). Very often, people say: see part (d) of figure N, where N is obtained via a \ref to the figure. In old Tralics you cannot use a reference to the subfigure, so that (a), (b) and (c) are explicitly added.

Example. Here we have four \subfigures, containing as required argument, an image, the same in each case, with different scaling. In some cases the optional argument is given, in other cases it is not.

\begin{figure}
\def\IC#1{\includegraphics[width=#1pt]{Logo-INRIA-couleur}}
\subfigure[~one]{\IC{2}} \subfigure{\IC{3}} \par
\subfigure[~two]{\IC{4}} \subfigure{\IC{1.3}}
\caption{Caption of the figure}
\end{figure}


This is the XML output.

<figure rend='array' id-text='1.1' id='uid35'>
<p>
<table rend='inline'>
<row>
<cell id-text='1.1' id='uid36'>
<figure rend='inline' width='2.0pt' file='Logo-INRIA-couleur'/>
</cell>
<cell id-text='1.2' id='uid37'>
<figure rend='inline' width='3.0pt' file='Logo-INRIA-couleur'/>
</cell>
</row>
<row>
<cell>(a)&nbsp;one</cell>
<cell>(b)</cell>
</row>
</table>
</p>
<p>
<table rend='inline'>
<row>
<cell id-text='1.3' id='uid38'>
<figure rend='inline' width='4.0pt' file='Logo-INRIA-couleur'/>
</cell>
<cell id-text='1.4' id='uid39'>
<figure rend='inline' width='1.3pt' file='Logo-INRIA-couleur'/>
</cell>
</row>
<row>
<cell>(c)&nbsp;two</cell>
<cell>(d)</cell>
</row>
</table>
</p>
</figure>


Preview

Since version 2.11.3, you can change this behavior. It suffices to set the internal counter \tralics@use@subfigure to a non-zero value. This is done automatically when loading the subfigure package. No table is produced any more: translation of \subfigure is a <subfigure> element, that contains a single element <head> (containing the optional argument). Translation of the mandatory argument should be an inline figure (for instance \includegraphics{foo}), and all attributes from this figure are moved to the subfigure. The subfigure has two additional attributes; as mentioned above, it has an ID so that labels are allowed; it has also parid, that is the number of the paragraph (0 first the first paragraph, 1 for the second, etc). Example:

Reference to figure: \ref{fig:fig1}
Reference to first subfigure: \ref{fig:fig1a}
Reference to second subfigure: \ref{fig:fig1b}
\begin{figure}[htbp]
\centering
\subfigure[first subfigure caption]{
\includegraphics{figure1a.eps}
\label{fig:fig1a}
}
\hspace{2cm}
\subfigure[second subfigure caption]{
\includegraphics[width=3cm]{figure1b.eps}
\label{fig:fig1b}
}
\par
\subfigure{\includegraphics{figure1c}}
\caption{main figure caption}
\label{fig:fig1}
\end{figure}


Here is the translation. Note that the figure element has an attribute rend that indicates its type; it is inline' for a non-float image, case where the file attribute is present. It is array' if the figure contains one or more arrays of (in general) images, it is subfigure' if the figure contains subfigures. The example demonstrates how attributes can be added to the figure (you could use this to compensate the fact that Tralics ignores \centering).

<p noindent='true'>Reference to figure: <ref target='uid79'/>
Reference to first subfigure: <ref target='uid80'/>
Reference to second subfigure: <ref target='uid81'/></p>

<figure rend='subfigure' FOO='BAR' id-text='1' id='uid79' place='htbp'>
<subfigure file='figure1a' extension='eps' parid='0' id-text='1.2' id='uid80'>
</subfigure>
<subfigure width='85.35826pt' file='figure1b' extension='eps'  parid='0'
id-text='1.2' id='uid81'>
</subfigure>
<subfigure file='figure1c' parid='1' id-text=1.3' id='uid82'> <head/></subfigure>
</figure>


## \subitem

Implemented as a no-op in Tralics for historical reasons. This command is used for sub-items in an index.

## \subparagraph

The \subparagraph command is used to divide a text in smaller parts. There is also a counter subparagraph.
See the description of the \part command.

## \subparagraphmark

The \subparagraphmark command takes one argument and does nothing. You can redefine it. It is used to mark subparagraphs.
See \chaptermark for an explanation of page marks.

## \subsection

The \subsection command is used to divide a text in smaller parts. There is also a counter subsection.
See the description of the \part command.

## \subsectionmark

The \subsectionmark command takes one argument and does nothing. You can redefine it. It is used to mark subsections.
See \chaptermark for an explanation of page marks.

## \subset (math symbol)

The \subset command is valid only in math mode. It generates a relation symbol: <mo>&subset;</mo> (Unicode U+2282, ⊂). See description of the \le command.

## \Subset (math symbol)

The \Subset command is valid only in math mode. It generates a relation symbol: <mo>&Subset;</mo> (Unicode U+22D0, ⋐).

## \subseteq (math symbol)

The \subseteq command is valid only in math mode. It generates a relation symbol: <mo>&subseteq;</mo> (Unicode U+2286, ⊆). See description of the \le command.

## \subseteqq (math symbol)

The \subseteqq command is valid only in math mode. It generates a relation symbol: <mo>&subseteqq;</mo> (Unicode U+2AC5, ⫅).

## \subsetneq (math symbol)

The \subsetneq command is valid only in math mode. It generates a relation symbol: <mo>&subsetneq;</mo> (Unicode U+228A, ⊊).

## \subsetneqq (math symbol)

The \subsetneqq command is valid only in math mode. It generates a relation symbol: <mo>&subsetneqq;</mo> (Unicode U+2ACB, ⫋).

## \subsubsection

The \subsubsection command is used to divide a text in smaller parts. There is also a counter subsubsection.
See the description of the \part command.

## \subsubsectionmark

The \subsubsectionmark command takes one argument and does nothing. You can redefine it. It is used to mark subsubsections.
See \chaptermark for an explanation of page marks.

## \succ (math symbol)

The \succ command is valid only in math mode. It generates a relation symbol: <mo>&succ;</mo> (Unicode U+227B, ≻). See description of the \le command.

## \succapprox (math symbol)

The \succapprox command is valid only in math mode. It generates a relation symbol: <mo>&succapprox;</mo> (Unicode U+2AB8, ⪸)

## \succcurlyeq (math symbol)

The \succcurlyeq command is valid only in math mode. It generates a relation symbol: <mo>&succcurlyeq;</mo> (Unicode U+227D, ≽)

## \succeq (math symbol)

The \succeq command is valid only in math mode. It generates a relation symbol: <mo>&succeq;</mo> (Unicode U+2AB0, ⪰).

## \succnapprox (math symbol)

The \succnapprox command is valid only in math mode. It generates a relation symbol: <mo>&succnapprox;</mo> (Unicode U+2ABA, ⪺)

## \succneqq (math symbol)

The \succneqq command is valid only in math mode. It generates a relation symbol: <mo>&succneqq;</mo> (Unicode U+2AB6, ⪶)

## \succnsim (math symbol)

The \succnsim command is valid only in math mode. It generates a relation symbol: <mo>&succnsim;</mo> (Unicode U+22E9, ⋩).

## \succsim (math symbol)

The \succsim command is valid only in math mode. It generates a relation symbol: <mo>&succsim;</mo> (Unicode U+227F, ≿).

## \sum (math ssymbol)

The \sum command is valid only in math mode. Its translation is a variable-sized symbol: <mo>&sum;</mo> (Unicode U+2211, ∑). Here is the list of all these symbols:

$\coprod \bigvee \bigwedge \biguplus \bigcap \bigcup \int \sum \prod \bigotimes \bigoplus \oint \bigsqcup \bigodot$


The XML translation is

<formula type='inline'><math xmlns='http://www.w3.org/1998/Math/MathML'>
<mrow><mo>&coprod;</mo> <mo>&bigvee;</mo> <mo>&bigwedge;</mo> <mo>&biguplus;</mo>
<mo>&bigcap;</mo> <mo>&bigcup;</mo> <mo>&int;</mo> <mo>&sum;</mo> <mo>&prod;</mo>
<mo>&bigotimes;</mo> <mo>&bigoplus;</mo> <mo>&oint;</mo> <mo>&bigsqcup;</mo>
<mo>&bigodot;</mo> </mrow>[/itex]</formula>


If you do not like entity names, you can use the -noentnames switch, and you get

<formula type='inline'>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
<mrow><mo>&#x02210;</mo><mo>&#x022C1;</mo><mo>&#x022C0;</mo>
<mo>&#x02A04;</mo><mo>&#x022C2;</mo><mo>&#x022C3;</mo><mo>&#x0222B;</mo>
<mo>&#x02211;</mo><mo>&#x0220F;</mo><mo>&#x02A02;</mo><mo>&#x02A01;</mo>
<mo>&#x0222E;</mo><mo>&#x02A06;</mo><mo>&#x02A00;</mo></mrow>
[/itex]
</formula>
`

All commands are listed in Table 8.8 of the Latex Companion. . (see also here).

## \sup (math symbol)

The \sup command is valid only in math mode. Its translation is a math operator of the same name <mo form='prefix' movablelimits='true'>sup</mo>.
For an example see the \log command.

## \supset (math symbol)

The \supset command is valid only in math mode. It generates a relation symbol: <mo>&supset;</mo> (Unicode U+2283, ⊃). See description of the \le command.

## \Supset (math symbol)

The \Supset command is valid only in math mode. It generates a relation symbol: <mo>&Supset;</mo> (Unicode U+22D1, ⋑).

## \supseteq (math symbol)

The \supseteq command is valid only in math mode. It generates a relation symbol: <mo>&supseteq;</mo> (Unicode U+2287, ⊇). See description of the \le command.

## \supseteqq (math symbol)

The \supseteqq command is valid only in math mode. It generates a relation symbol: <mo>&supseteqq;</mo> (Unicode U+2AC6, ⫆).

## \supsetneq (math symbol)

The \supsetneq command is valid only in math mode. It generates a relation symbol: <mo>&supsetneq;</mo> (Unicode U+228B, ⊋).

## \supsetneqq (math symbol)

The \supsetneqq command is valid only in math mode. It generates a relation symbol: <mo>&supsetneqq;</mo> (Unicode U+2ACC, ⫌).

## \surd (constant)

The \surd command is valid only in math mode. It generates a miscellaneous symbol: <mi>&radic;</mi> (Unicode U+221A, √) that looks like .
See description of the \ldots command.

## \swarrow (constant)

The \swarrow command is valid only in math mode. It generates an arrow that points South-West: <mo>&swarrow;</mo> (Unicode U+2199, ↙). See description of the \leftarrow command.

## \symbol

This command is a wrapper around \char in that the expansion of \symbol{48} is \char 48\relax.

## \syntaxonly

The effect of this command is to inhibit dumping the XML tree at the end of the job.

back to home page © INRIA 2003-2005, 2006 Last modified $Date: 2015/12/01 17:24:43$