doceqn
doceqn
Enrico Bertolazzi
Abstract
Contents
1
The package EASYEQN 2
\documentclass{article}
.
.
\usepackage[allnumber,warning, easyold,
fleqn,leqno,math]{easyeqn}
.
.
The package1 introduces the EQ and EQA environments. The package options
are:
allnumber Means that all of the EQ and EQA environments are numbered. Without that
option, only those EQ and EQA environments that are explicitly labeled and
referenced are numbered.
warning Causes the flagging of the equations that are labeled but not referenced.
easyold Produces obsolete environment EQS, EQS*, EQ*, EQA* for backward com-
patibilty.
Remark: When EASYEQN is used with HYPERREF the package EASYEQN must
be included after HYPERREF or cross referencing do not work.
\begin{EQ}\label{eq:1}
\frac{x}{y} = z
\end{EQ}
\begin{EQ}\label{eq:2}
\frac{a}{b} = c
\end{EQ}
I will refer only to \eqref{eq:1} or,
in the old style, \refeq{eq:1}.
x
=z (1)
y
a
=c
b
I will refer only to (1) or, in the old style, 1.
Note that the reference is done by \eqref or \refeq. The command \refeq
produces the same output as \ref, while \eqref uses ( ) for the output.
Remark: Due to the algorithm implementation, in order to obtain the right cross
reference, you need to recompile the file 3 times. The use of \label is not per-
mitted from within EQ* environments. If you use \ref to reference equations
results are unpredictable2 .
Here is another example:
\begin{EQ}[rcll]
\nabla\cdot(\rho\nabla u)&=&f \qquad
&\mbox{on $\Omega$} \\
u&=&u_{0}&\mbox{on $A\subset\partial\Omega$} \\
(\rho\nabla u)\cdot n&=&u_{1}
&\mbox{on $B\subset\partial\Omega$}
\end{EQ}
∇ · (ρ∇u) = f on Ω
u = u0 on A ⊂ ∂Ω
(ρ∇u) · n = u1 on B ⊂ ∂Ω
2
The previous release used the command
eqlabel for equation labelling, for backward compatibility this command is maintained but the
user should use the
label command
The package EASYEQN 4
Note that between [...] you can specify the column alignment in the same way
as in the array or tabular environment3 . The permitted alignment are l for left
alignment, r for right alignment and c for centering. There is also the character “.”
that if used between the definition of two columns, disables the spacing between
columns as in the following example, which is taken from the documentation of
EQNARRAY of Roland Winkler;
\begin{EQ}[rcl.l]
\phi & = & \sum \bigg( & \frac{xxxxxxxxxx}{\phi}\\
& & & + \frac{yyyyyyyyyy}{\phi} \bigg)\\
& = & \eqmulticol{2}{l}
{\frac{zzzzzzzzzz}{\phi}}
\end{EQ}
xxxxxxxxxx
φ=
φ
yyyyyyyyyy
+
φ
zzzzzzzzzz
=
φ
In the above example the command \eqmulticol has been introduced. Its syn-
tax is:
\eqmulticol{ncol}{align}{body}
where:
If may you want to number an equation without reference it. The \yesnumber
command does the work as this example shows:
In a previous release of EASYEQN multicolumn alignment was implemented in a EQS environ-
3
\begin{EQ}[rcl]\yesnumber
a & = & \frac{1}{23} \\
b & = & \sqrt{\frac{1}{23}}
\end{EQ}
1
a=
23
(2)
1
b=
23
\begin{EQA}[rcll]
\nabla\!\cdot\!(\rho\nabla u)&=&f \qquad
&\mbox{on $\Omega$}
\yesnumber \\
u&=&u_{0}&\mbox{on $A\subset\partial\Omega$}
\label{eq:3} \\
(\rho\nabla u)\!\cdot\!n&=&u_{1}
&\mbox{on $B\subset\partial\Omega$}
\label{eq:4}
\end{EQA}
it is referenced only \eqref{eq:4}!!
∇·(ρ∇u) = f on Ω (3)
u = u0 on A ⊂ ∂Ω
(ρ∇u)·n = u1 on B ⊂ ∂Ω (4)
Note that only the referenced lines or the lines with \yesnumber are numbered.
It is possible to use custom label by \label command. The syntax is one of the
following:
The package EASYEQN 6
\label{labelname}
\label[eqnum]
\label[eqnum]{labelname}
\label(eqnum)
\label(eqnum){labelname}
where [eqnum] is an optional argument that if defined, causes the equation dis-
plays eqnum instead of (equation number). The equation counter is not
advanced and labelname if present will refer to eqnum.
For example:
\begin{EQA}[c]
\nabla\cdot(\rho\nabla u) = 0
\label(eq.1){eq:custom:a} \\
\nabla\cdot(\rho\nabla u) = 0
\label[eq.2]{eq:custom:b} \\
\nabla\cdot(\rho\nabla u) = 0
\label[***1***]
\end{EQA}
I will refer to \eqref{eq:custom:a}
and \eqref{eq:custom:b}
∇ · (ρ∇u) = 0 (eq.1)
∇ · (ρ∇u) = 0 eq.2
∇ · (ρ∇u) = 0 ***1***
Note that custom label are always displayed even if not referenced.
6 Label positioning
• \eqlabeltop
• \eqlabelbot
• \eqlabelcenter
The package EASYEQN 7
For example:
\eqlabeltop
\begin{EQ}\label[TOP]
\nabla\cdot(\rho\nabla u) = 0 \\
\nabla\cdot(\rho\nabla u) = 0
\end{EQ}
***********************************
\eqlabelbot
\begin{EQ}\label[BOT]
\nabla\cdot(\rho\nabla u) = 0 \\
\nabla\cdot(\rho\nabla u) = 0
\end{EQ}
∇ · (ρ∇u) = 0 TOP
∇ · (ρ∇u) = 0
***********************************
∇ · (ρ∇u) = 0
∇ · (ρ∇u) = 0 BOT
7 Sub-numbering
\begin{subequations}
\begin{EQ}...
\end{EQ}
\end{subequations}
I prefer to use the \label command with the character ˜ as a shortcut for the
command \theequation. The following example shows the use:
The package EASYEQN 8
\begin{EQA}[c]\yesnumber
\nabla\cdot(\rho\nabla u) = 0 \label(˜.A) \\
\nabla\cdot(\rho\nabla u) = 0 \label(˜.B) \\
\nabla\cdot(\rho\nabla u) = 0 \label(˜.C)
\end{EQA}
∇ · (ρ∇u) = 0 (5.A)
∇ · (ρ∇u) = 0 (5.B)
∇ · (ρ∇u) = 0 (5.C)
You can use fleqn to left justify the equations or leqno to number equations on the
left. For example:
\documentclass{article}
.
.
\usepackage[fleqn,leqno]{easyeqn}
.
.
\begin{EQA}[rcll]
\nabla\cdot(\rho\nabla u)&=&f \qquad
&\mbox{on $\Omega$}\yesnumber \\
u&=&u_{0}&\mbox{on $A\subset\partial\Omega$}
\yesnumber\\
(\rho\nabla u)\!\cdot\!n&=&u_{1}
&\mbox{on $B\subset\partial\Omega$}
\label{eq:5}
\end{EQA}
it is referenced only \eqref{eq:5}!!
(6) ∇ · (ρ∇u) = f on Ω
(7) u = u0 on A ⊂ ∂Ω
(8) (ρ∇u)·n = u1 on B ⊂ ∂Ω
The same effect can be obtained everywhere using the commands \equationleft
and \numberleft before defining the equation. To restore the default values use
the commands \equationcenter and \numberright after the equation.
9 Cosmetic changes
It is possible to slighly modify the appearance of the equations. There are three
parameters that can be changed:
left indent Whenever equations are left justified, the left indent can be changed by the
command \eqleftmargin.
\eqleftmargin{new indent}
for example
\eqleftmargin{1cm}
equation spacing The spacing of a formula, (default 7pt) can be controlled by the command
The package EASYEQN 10
\eqspacing{new spacing}
for example
\eqspacing{4pt}
column spacing The spacing among columns (default value 4pt) can be changed by the
command
\eqcolumnsep{new spacing}
for example
\eqcolumnsep{10pt}
row spacing The spacing among rows in multiple equations (default value 7pt) can be
changed by the command
\eqrowsep{new spacing}
for example
\eqrowsep{10pt}
for example
The package EASYEQN 11
\eqrowsep{20pt}
\eqcolumnsep{10pt}
\eqspacing{1cm}
bla bla bla bla bla bla bla bla bla bla bla bla
\begin{EQ}[rcll]
\nabla\cdot(\rho\nabla u)&=&f \qquad
&\mbox{on $\Omega$} \\
u&=&u_{0}&\mbox{on $A\subset\partial\Omega$} \\
(\rho\nabla u)\cdot n&=&u_{1}
&\mbox{on $B\subset\partial\Omega$}
\end{EQ}
nonsense, nonsense, nonsense, monsense, nonsense
bla bla bla bla bla bla bla bla bla bla bla bla
∇ · (ρ∇u) = f on Ω
u = u0 on A ⊂ ∂Ω
(ρ∇u) · n = u1 on B ⊂ ∂Ω
10 Additional macros
\documentclass{article}
.
.
\usepackage[...,math]{easyeqn}
.
.
\begin{EQ}[rclrcl]
\frac[1pt]{\frac{1}{2}}{\frac{1}{2}}
& = & \frac{\frac{1}{2}}{\frac{1}{2}} \qquad &
\dfrac{\frac{1}{2}}{\frac{1}{2}}
& = & \dfrac{\frac[0pt]{1}{2}}{\frac{1}{2}} \\
\tfrac{1}{2} &=& \frac{1}{2}\qquad &
\binom{n-1}{n-k} && \boxed{a+b}
\end{EQ}
1 1 1 1
2 2 2 2
= 1 1 = 1
1
2 2 2 2
1 n−1
1
= a+b
2
2 n−k
\[
\eqbox{1+\dfrac{1}{2}} \qquad
\eqbox(1pt,20pt){1+\dfrac{1}{2}} \qquad
\eqbox(5pt,5pt){1+\dfrac{1}{2}}
\]
1 1 1
1+ 1+ 1+
2 2 2
A , |A|
\[
\ParDer[xyyz]{f(x,y,z)}, \qquad
\ParDer[{xˆ{2}}{xˆ{2}}{xˆ{2}}y\alpha]{f(x,y,z)}
\]
∂ 4 f (x, y, z) ∂ 5 f (x, y, z)
,
∂x∂y 2 ∂z ∂x2 3 ∂y∂α
Notice the single item of the derivatives must be a single letter (or a macro) or must
be inside a group { ... }. If you use \ParDer with package EASYVECTOR
remember to put macros in brace when use “[ ]” as follows:
\[ \xx,\xx[i,j] =
\ParDer[\xx\xx{\xx[i,j]}\yy]{f(x,y,z)} \]
∂ 4 f (x, y, z)
x, xi,j =
∂x2 ∂xi,j ∂y
\[ \ParDer[\xx\xx\xx[i,j]\yy]{f(x,y,z)} \]
∂7y
]f (x, y, z)
∂x3 ∂[∂i∂,∂j
Definition of the macros \DIV, \GRAD and \LAPLA and their effect:
∇ · A, ∇B, ΔC
\[
\SUM{i=1}{100}a_{i},\quad
\SUM[10]{i=1}{100}a_{i}
\]
100
100
(10)
ai , ai
i=1 i=1
\[
\PROD{i=1}{100}a_{i},\quad
\PROD[10]{i=1}{100}a_{i}
\]
100
100
(10)
ai , ai
i=1 i=1
\[
\left(\begin{array}{cc}
1 & \frac{1}{2} \\
\sqrt{3} & \frac{2}{\sqrt{3}}
\end{array}\right), \qquad
\left(\begin{ARRAY}{cc}
1 & \frac{1}{2} \\
\sqrt{3} & \frac{2}{\sqrt{3}}
\end{ARRAY}\right),
\]
⎛ 1 ⎞
1
1
√1 2
,
⎜ 2 ⎟
3 √2 ⎝√ 2 ⎠,
3 3 √
3
The package EASYEQN 15
\[
\matrix{
1 & \frac{1}{2} \cr
\sqrt{3} & \frac{2}{\sqrt{3}}
}, \qquad
\begin{MATRIX}
1 & \frac{1}{2} \cr
\sqrt{3} & \frac{2}{\sqrt{3}}
\end{MATRIX},
\]
1 1
1 1
√ 2
, √ 2
,
3 √2 3 √2
3 3
A file named easyeqn.perl is furnished for interfacing macros with perl pro-
gram latex2html. The effect is to generate better HTML images of equations.
For example the following equation has equation number always aligned on the
right of the page:
1
1 = (eqn)
2
The package EASYEQN 16
While equation array equations are also splitted in a table to maintain alignement
on resize:
1
1 = (A)
2
1 1
− = (B)
3 3
2
1 = (C)
3
2 4
= (D)
3 3