# All commands, alphabetic order; letter E

## \edef

You can say \edef\foo{bar}. The syntax is the same as \def, but the token list in the body is fully expanded (tokens that come from \the are not expanded).

You can put the prefix \global before \edef, note that \xdef is the same as \global\edef. In the example that follows, the \ifx is true.

{\catcode\A=12 \catcode\B=12\catcode\R=12\gdef\fooval{ABAR}}
{\escapechar=\A \edef\foo{\string\BAR}\ifx\foo\fooval\else \uerror\fi}


Another example is the following. The \meaning command returns a token list, of the form macro:#1#2->OK OK, and \strip@prefix removes everything before the > sign. What we put in \Bar is a list of five tokens, a space, and four letters of catcode 12.

\makeatletter
\def\strip@prefix#1>{}
\def\foo#1#2{OK OK}
\edef\Bar{\expandafter\strip@prefix\meaning\foo}


For a non-trivial example, see \aftergroup.

## \egroup

The \egroup command is a closing brace of catcode 2. For an example see here.

## \eject

Behaves like \par, but no page is ejected.

## \ell (math symbol)

The \ell command is valid only in math mode. It generates a miscellaneous symbol (calligraphic ell): <mi>&ell;</mi> (Unicode U+2113, ℓ). See description of the \ldots command.

## \else

The command \else is used in a case like \ifnum 0=0 \somethinguseful \else \whatever \fi. (See \if... for details).

## \em

The \em command changes the shape of the current font: if the shape is upright, it is replaced by italics, otherwise by upright. Note that this command is unaware of implicit font changes. Said otherwise, in the title of a section, it is inefficient, since it has no way of knowing in which font the title will be typeset.

## \emergencystretch (rigid length)

You can say \emergencystretch=5pt, as a result TeX will try a third pass in its hyphenation algorithm. Ignored by Tralics. (See scandimen for details of argument scanning).

## \emph

The \emph command is like \em, except that it takes an argument.

## \@empty, \empty

The \@empty command takes no argument, and does nothing. The \empty command is similar. You should not redefine the \@empty command.

## \emptyset (math symbol)

The \emptyset command is valid only in math mode. It generates a miscellaneous symbol (empty set): <mi>&emptyset;</mi> (Unicode U+2205, ∅). See description of the \ldots command.

## \end

This finishes an environment. See the \begin command. In principle \end{foo}: (1) calls \endfoo, (2) checks that the current environment is foo, (3) pops the save stack, and (4) executes additional code (for instance, ignore space that follows). This last step is not yet done by Tralics. The effect of (3) is to undo all changes that were local in the environment; in particular, this changes the name of the current environment. Let's consider the following code:

\def\foo{\begin{it}}\def\endfoo{\end{it}}
\begin{foo} ok \end{foo}  % example1

\def\endbar{\def\@currenvir{bar}}
\begin{it} \end{bar} % example2

\def\endfoo{}
\begin{foo} ok \end{foo} \end{it} % example 3

\def\endfoo#1{}
\begin{foo} ok \end{foo} % exemple 4

\def\endfoo{\show\endfoo}
\begin{foo}
\def\endfoo{\undefined}
\end{foo} % example 5


In the first case, when \end{foo} is seen, the current environment is it, and after execution of \endfoo it will be foo. This explains why (2) must come after (1). Note that \endit is undefined; it is set to \relax by the \end command, and reset to undefined by (3). The second example shows how to cheat; this is invalid in Tralics since the name of the current environment cannot be changed. You get a message cannot close environment bar , and the current environment is still it. Example 3 yields an error, of the form LaTeX Error: \begin{it} on input line 8 ended by \end{foo} followed by LaTeX Error: \begin{foo} on input line 8 ended by \end{it}. The Tralics message are a bit different: Environment 'it' started at line 8 ended by \endfoo (this message is also printed for lines 11 and 14) and Environment 'foo' started at line 8 ended by \endit. The next example is incorrect, as command \endfoo reads some random arguments used for (2) and (3). This is detected and provokes an error of the form Illegal end of environment. In the last example, \endfoo is locally redefined; but Tralics uses the definition that was active when \begin{foo} was seen. This means that you will see: \endfoo=macro: ->\undefined . Note: the stack contains three open environments: it, foo and foo. You can say \end{...}. If the argument is document this signifies the end of the job, if the argument is foo, then \endfoo is evaluated (this might provoke an error), if the argument is it, the stack is popped and an error is signaled, otherwise an error is signmed and the stack is not popped.

## \encodingdefault

This variable contains the default font encoding; its value is T1 in Tralics, but not used.

## \endcitation (tralics command)

This command is used to finish a citation, see \citation.

## \endcsname

The \endcsname command is a TeX primitive that marks the end of a \csname command (see \csname). Look at this example:

\def\cmd{csname} \csname foo\csname end\cmd\endcsname
\begin{csname}foo\end{csname}


The first \csname sees foo', then ask for the expansion of the second \csname. This one sees end', then the expansion of \cmd, then the \endcsname. The result of the expansion is \endcsname, and this stops the expansion of the first \csname. Hence the first line is the same as \foo.

The second line is equivalant to \begingroup\csname foo\endcsname\endgroup (whith some checks). In LaTeX, this works without problem. In Tralics, this does not work. because the \end token is not expanded, but evaluated. So \csname complains with Invalid token \end found between \csname and \endcsname, and evaluation of \end yields a Extra \endcsname error.

## \@@end

This command is not allowed in internal vertical mode. In regular vertical mode it terminates TeX if the main vertical list is empty and \deadcycles=0. Otherwise, TeX backs up the \end command so that it can be read again; then it exercises the page builder, after appending a box/glue/penalty combination that will force the output routine to act.

In Tralics, things are much easier: all open files are closed, and this should terminate everything. Note that \end is used to finish an environment, so that the TeX primitive is renamed to \@@end.

## \endgraf

The \endgraf command is a synonym for \par (note that LaTeX redefines sometimes \par, hence leaves a copy in \@@par. Both \@@par and \endgraf are equivalent to the original \par command).

## \endgroup

The \endgroup command is used to terminate a group opened by \begingroup. See \begingroup. If you say \def\foo{}\begin{foo}\endgroup, then LaTeX says nothing, but Tralics complains that something is wrong, because it uses a special token. If you try this


\def\foo{}\def\endfoo#1{\global\let\specialend#1#1}
\begin{foo}
\end{foo}
\show\specialend


you will see something like: \specialend=\endgroup (for env). In the current version of Tralics it is illegal to define \endfoo with an argument,

## \endinput

When Tralics evaluates the \endinput token, it closes the current file (this terminates the job if there is no other open file). For an example, see \InputIfFileExists.

## \endL, \endR

These commands are ε-TeX extensions that indicate the end of a left-to-right or right-to-left region; they are ignored by Tralics.

## \endline

This command is equivalent to \cr. The TeXbook justifies introducing this command by saying that it is often useful to redefine the meaning of \cr. In Tralics, outside a table, it may provoke the error bad \cr.

## \endlinechar (internal integer)

The \endlinechar command reads an integer (see scanint for details) that says what character Tralics should insert in the input stream for an end-of-line. The default value is a carriage return (ASCII 13). If the value if not between 0 and 255 (216-1 in the current version), no character is added at the end of a line. In the example below, the translation should give xy'.

Note that, if a line finishes with \endlinechar=something, TeX has a tendency to ignore one optional space after a number; this space is looked at before the assignment takes place, and could be searched on the line that follows the assignment. In the example below, there is a space after the -1 (without the comment, this space would have been removed.) In the case of \A, the situation is worse: TeX is in state S, so that spaces after \A are ignored. We inserted a \relax token as remedy.

%The command \testeq checks that its arguments are equal
{x\endlinechar=\A \relax % this \relax is useful
\def\foo{a
b}\testeq\foo{aAb}%
\def\foo{a
b}\testeq\foo{aAb}%
\endlinechar=\% %
\def\foo{a
b}\testeq\foo{ab}
\endlinechar=-1 % this comment is useful
\def\foo{a
b}\testeq\foo{ab}
y}


## \endsec (tralics command)

If you say \endsec{\section}, the effect is to end the current section. The argument can be one of: \part \chapter \section \subsection \subsubsection \paragraph \subparagraph, anything else (included an empty argument) is replaced by \part. No new section is started.

## \@endtheorem

Private Tralics command.

## \endv

This is a special command that prints as \endtemplate.

## \enspace

Same as \kern0.5em.

## \ensuremath

The \ensuremath command takes one argument, and typesets it in math mode. In the following example, the translation of \test is a calligraphic X with an index y. In both cases, the whole math formula uses the calligraphic font. Note that Tralics uses a normal y, while TeX will use whatever glyph is in the font at the position of a lower-case Y. The definition of \bad is wrong: the expansion of \ensuremath is done outside math mode, hence produces $\relax xx$, so that \bad is $$\relax xx$$.

\def\test{\ensuremath{\cal X_y}}
\test and $\test Z$
\edef\bad{$\ensuremath{xx}$}


Preview:

## enumerate (environment)

This is an environment in which you can puts items. Nesting such environments is possible, ten counters are reserved for that. See description of the \item command.

## enumi, enumii, enumiii, enumiv (counter)

These counters are described in the Latex book. There are twenty such counters in Tralics, enumi through enumx and Enumi through Enumx. Lowercase counters are used by the enumerate environment, the other counters by itemize or description. For each counter CTR, LaTeX defines \labelCTR as (\theCTR). This is done (for standard classes) by Tralics for lowercase counters. These quantities are used by Tralics for the label attribute. In the case of counters like Enumi, Enumii, etc, up to level 5, \theCTR is defined in such a way as top obtain 1.2, or 1.5.3.4, etc. The case of the four counters enumi, enumii, enumiii, enumiv is special: the standard classes use the same method as the book class, namely to define \theCTR as \@arabic\c@CTR, \@alph\c@CTR, \@roman\c@CTR and \@Alph\c@CTR, and use a non trivial \p@CTR. In the example below, the id-text of each item is obtained as \p@CTR\theCTR. The string 1(a)iA in the fourth item is what LaTeX typesets for \ref{d}.

\begin{enumerate}
\item a \label{a}
\begin{enumerate}
\item b \label{b}
\begin{enumerate}
\item c \label{c}
\begin{enumerate}
\item d \label{d}
\begin{itemize}
\item u
\begin{itemize}
\item u1
\item u2
\end{itemize}
\item v
\end{itemize}
\end{enumerate}
\end{enumerate}
\end{enumerate}
\end{enumerate}


Translation

<list type='ordered'>
<item id-text='1' id='uid1' label='(1)'><p noindent='true'>a</p>
<list type='ordered'>
<item id-text='1a' id='uid2' label='(a)'><p noindent='true'>b</p>
<list type='ordered'>
<item id-text='1(a)i' id='uid3' label='(i)'><p noindent='true'>c</p>
<list type='ordered'>
<item id-text='1(a)iA' id='uid4' label='(A)'><p noindent='true'>d</p>
<list type='simple'>
<item id-text='1' id='uid5'><p noindent='true'>u</p>
<list type='simple'>
<item id-text='1.1' id='uid6'><p noindent='true'>u1</p></item>
<item id-text='1.2' id='uid7'><p noindent='true'>u2</p></item>
</list>
</item>
<item id-text='2' id='uid8'><p noindent='true'>v</p></item>
</list>
</item></list>
</item></list>
</item></list>
</item></list>


## \epsfbox

If you say \epsfbox{foo}, the result is the same as if you had said \includegraphics [options] {foo}, where options is formed of width=xx and/or height=yy; here xx is the value of \epsfxsize and yy is the value of \epsfysize. If some value is zero, the corresponding slot is not added to the list. After execution of the command, both values are set to zero (local assignment). See the \includegraphics command for details on how images are processed. Example.

{
\setlength\epsfxsize{50pt}
\setlength\epsfysize{60pt}
\epsfbox{x.ps}
\setlength\epsfysize{70pt}
\epsfbox{x.eps}
\epsfbox{x.epsf}
}


Translation:


<figure height='60.0pt' width='50.0pt' rend='inline' file='x' extension='ps'/>
<figure height='70.0pt' rend='inline' file='x' extension='ps'/>
<figure rend='inline' file='x' extension='epsf'/>


## \epsffile

The \epsffile command is an alternate name of the \epsfbox command.

## \epsfig

Instead of saying \epsfig{file=x,width=1} you should say \includegraphics [width=1] {x}. See \includegraphics command. There no difference between \psfig and \epsfig.

## \epsfxsize

This is a reference to dimension register, used by the epsf package, initially set to 0. It indicates the width of the next image. It is reset to zero after usage. See \epsfbox.

## \epsfysize

This is a reference to dimension register, used by the epsf package, initially set to 0. It indicates the height of the next image. It is reset to zero after usage. See \epsfbox.

## \epsilon (math symbol)

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

## eqnarray, eqnarray* (environment)

If you say \begin{eqnarray} XX \end{eqnarray}, the result is more or less the same as if you say $$\begin{array}{rcl} XX \end{array}$$. Lamport says: An equation number is put on every line unless that line has a \nonumber command. In Tralics, a label (hence an equation number) is associated to the formula, and not the individual parts of it, so that \nonumber is useless. [Using the -multi-math-label option changes this behavior, see \multi@math@label ]. Example

\begin{eqnarray}
x & = &17y \\
y & > & a + b + c+d+e+f+g+h+i+j+ \nonumber\\
&   & k+l+m+n+o+p
\end{eqnarray}


This is the translation.

<formula id-text='mid1' id='uid1' type='display'>
<math mode='display' xmlns='http://www.w3.org/1998/Math/MathML'>
<mtable displaystyle='true'>
<mtr>
<mtd columnalign='right'><mi>x</mi></mtd>
<mtd><mo>=</mo></mtd>
<mtd columnalign='left'><mrow><mn>1</mn><mn>7</mn><mi>y</mi></mrow></mtd>
</mtr>
<mtr>
<mtd columnalign='right'><mi>y</mi></mtd>
<mtd><mo>&gt;</mo></mtd>
<mtd columnalign='left'>
<mrow><mi>a</mi><mo>+</mo><mi>b</mi><mo>+</mo><mi>c</mi><mo>+</mo>
<mi>d</mi><mo>+</mo><mi>e</mi><mo>+</mo><mi>f</mi><mo>+</mo><mi>g</mi>
<mo>+</mo><mi>h</mi><mo>+</mo><mi>i</mi><mo>+</mo><mi>j</mi>
<mo>+</mo></mrow>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd></mtd>
<mtd columnalign='left'>
<mrow><mi>k</mi><mo>+</mo><mi>l</mi><mo>+</mo><mi>m</mi><mo>+</mo>
<mi>n</mi><mo>+</mo><mi>o</mi><mo>+</mo><mi>p</mi></mrow>
</mtd>
</mtr>
</mtable>
[/itex]
</formula>


Preview

The eqnarray* is the same as eqnarray except it does not generate equation numbers. For Tralics, this means that there is no id. Example.

\begin{eqnarray*}
x & \ll & y_{1} + \cdots + y_{n} \\
& \leq &z
\end{eqnarray*}


Translation

<formula type='display'>
<math mode='display' xmlns='http://www.w3.org/1998/Math/MathML'>
<mtable displaystyle='true'>
<mtr>
<mtd columnalign='right'><mi>x</mi></mtd>
<mtd><mo>&ll;</mo></mtd>
<mtd columnalign='left'>
<mrow><msub><mi>y</mi> <mn>1</mn> </msub><mo>+</mo><mo>&ctdot;</mo>
<mo>+</mo><msub><mi>y</mi> <mi>n</mi> </msub></mrow>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd><mo>≤</mo></mtd>
<mtd columnalign='left'><mi>z</mi></mtd>
</mtr>
</mtable>
[/itex]
</formula>


## \eqcirc (math symbol)

The \eqcirc command is valid only in math mode. It generates <mi>&eqcirc;</mi> (Unicode U+2256, ≖).

## \eqno

In TeX, the \eqno or \leqno commands are allowed only in display math mode, and it enters non-display math mode for the equation number (which is preceded by the tokens of \everymath, and typeset in a group).

In Tralics, all tokens following \eqno or \leqno are read, and put in a list; the \tag* command is then applied to these tokens. See \tag.

## \eqsim (math symbol)

The \eqsim command is valid only in math mode. It generates <mi>&eqsim;</mi> (Unicode U+2242, ≂).

## \eqslantgtr (math symbol)

The \eqslantgtr command is valid only in math mode. It generates <mi>&eqslantgtr;</mi> (Unicode U+2A96, ⪖).

## \eqslantless (math symbol)

The \eqslantless command is valid only in math mode. It generates <mi>&eqslantless;</mi> (Unicode U+2A95, ⪕).

## \eqref

The \eqref{text} command is the same as (\ref{text}) (this is a very simplified form of the definition of amsmath).

## \equal

You can use the \equal command inside \ifthenelse in order to compare two token lists. See \ifthenelse for details. It is otherwise undefined.

## equation, equation* (environment)

In Tralics version 2.13.2, there is an equation number for equation, and none for the four other constructs shown here (they produce the same result):

$$0=0$$
\begin{equation*}$$0=0$$\end{equation*}
\begin{displaymath}$$0=0$$\end{displaymath}
$$$0=0$$$
$$0 = 0$$


The translation of the first two lines is as follows (the value of the id-text attribute is the translation of \theequation)


<formula id-text='2' id='uid2' type='display'>
<math mode='display' xmlns='http://www.w3.org/1998/Math/MathML'>
<mrow><mn>0</mn><mo>=</mo><mn>0</mn></mrow>
[/itex]
</formula>
<formula type='display'>
<math mode='display' xmlns='http://www.w3.org/1998/Math/MathML'>
<mrow><mn>0</mn><mo>=</mo><mn>0</mn></mrow>
[/itex]
</formula>


## \equiv (math symbol)

The \equiv command is valid only in math mode. It generates a relation symbol (triple bar equal).: <mo>&equiv;</mo> (Unicode U+2261, ≡). See description of the \le command.

## \errhelp

This is a token list, used by TeX in case of an error signalled by \errmessage when the user asks for help. Since Tralics works in batch mode, it does nothing with the list. (See scantoks for the syntax)

## \errmessage

This command takes one argument, and uses it to signal an error.

## \error

Command with one argument that signals an error.

## \errorcontextlines (internal integer)

When you say \errorcontextlines=909, TeX will show only the 909 first error context lines when an error is signaled. This is set to -1 by LaTeX, ignored by Tralics (contexts are not memorized). (See scanint for details of argument scanning).

## \errorstopmode

You can prefix the command \errorstopmode with \global. Nothing happens, since batch-mode is the only interaction mode.

## \escapechar (internal integer)

When you say \espacechar=72, then TeX will use character 72 instead of the backslash when printing commands. If the value is not between 1 and 255 (216-1 in the current version), no character will be used. (See scanint for details of argument scanning). Example: \def\foo{\bar}\show\foo. This will print Hfoo=macro: ->Hbar .. If you say \edef\gee{\string\bar}\escapechar=-1\show\gee, you will see gee=macro: ->Hbar., because the \string command uses the current \escapechar, and does not insert a space after command names.

## \eta (math symbol)

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

## \eth (math symbol)

The \eth command is valid only in math mode. It generates a foreign letter: <mi>&eth;</mi> (Unicode U+F0, ð)

## \eTeXrevision

The command \eTeXversion expands to a token list containing the current ε-TeX revison. The counter \eTeXversion returns ε-TeX's major version number. Thus \message{\number\eTeXversion\eTeXrevision} prints something like 2.0'.

## \evensidemargin (rigid length)

This is a dimension, defined by LaTeX, but unused by Tralics.

## \everybibitem (Tralics command)

When you say \everybibitem{\foo\bar}, the token list \foo\bar is inserted whenever Tralics produces a new bibliography item, namely after \bibitem and \citation.

## \everycr

You can say \everycr={foo}, but this has no effect. In TeX, this has as effect to insert the token list after every \cr (or non redundant \crcr). But \cr is not implemented. See scantoks for the syntax.



## \everyjob

There is a token list that TeX inserts at the start of the every job. Answer to exercise 24.5 of the TexBook explains how to set this list before the start of the job. This solution is not applicable to Tralics, so that you have to a line like that shown below in the configuration file. (each line overwrites the previous one). You can say \everyjob={foo} (see scantoks for the syntax), this modifies the list, but the new token list is ignored by Tralics.

  everyjob="\AtBeginDocument {foo}"
everyjob="\typeout{Hello Word!}"