# How to align and center standalone amsmath equations?

I had this code produce the following document. I wanted to align a few things.
Particularly under the "degree sequence" heading:

\documentclass[varwidth,margin=2mm]{standalone}
\usepackage{amsmath,tikz}
\begin{document}
\begin{center}
\begin{tikzpicture}
%%%%% SNIP %%%%%
\end{tikzpicture}\\
\rule[0cm]{200pt}{0.5pt}\\
\begin{math}
$degree sequence$\\
$e=\{2,2,2,2,2\}\ \ \ \ \ \ \ \ \ \ \ \ c=\{2,2,2,2,2\}$\\
\delta(e)=2\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \delta(c)=2\\
\Delta(e)=2\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \Delta(c)=2\\
\rule[0cm]{200pt}{0.5pt}\\
\alpha(e_{1})=c_{1},\ \ \alpha(e_{2})=c_{3},\\
\alpha(e_{3})=c_{5},\ \ \alpha(e_{4})=c_{2},\\
\alpha(e_{5})=c_{4},\ \ \alpha(e_{1})=c_{1},\\
\rule[0cm]{200pt}{0.5pt}\\
$e_{1}\to{}e_{2}\to{} e_{3}\to{}e_{4}\to{} e_{5}\to{}e_{1}\\$c_{1}\to{}c_{3}\to{} c_{5}\to{}c_{2}\to{}
c_{4}\to{}c_{1}\\
\rule[0cm]{200pt}{0.5pt}\\
\end{math}
\end{center}
\end{document}


So I tried to use the align package to align it, butit kind of sent everything out of wack:

\documentclass[varwidth,margin=2mm]{standalone}
\usepackage{amsmath,tikz}
\begin{document}
\begin{center}
\begin{tikzpicture}
%%%%% SNIP %%%%%
\end{tikzpicture}\\
\rule[0cm]{200pt}{0.5pt}\\
degree sequence\\
e = \{2,2,2,2,2,2\} c = \{2,2,2,2,2,2\}\\
\begin{align*}
\delta(e) & = 2 & \delta(c) & = 2\\
\Delta(e) & = 2 & \Delta(c) & = 2\\
\end{align*}
\begin{math}
\rule[0cm]{200pt}{0.5pt}\\
\alpha(e_{1})=c_{1},\ \ \alpha(e_{2})=c_{3},\\
\alpha(e_{3})=c_{5},\ \ \alpha(e_{4})=c_{2},\\
\alpha(e_{5})=c_{4},\ \ \alpha(e_{1})=c_{1},\\
\rule[0cm]{200pt}{0.5pt}\\
$e_{1}\to{}e_{2}\to{} e_{3}\to{}e_{4}\to{} e_{5}\to{}e_{1}\\$c_{1}\to{}c_{3}\to{} c_{5}\to{}c_{2}\to{}
c_{4}\to{}c_{1}\\
\rule[0cm]{200pt}{0.5pt}\\
\end{math}
\end{center}
\end{document}


Is there a way around this or am I stuck with it. I know it's only a minor thing, but it would be nice to have more control.

• align is not a package and could you please elaborate on how you compile your codes? When I run pdflatex on the first one, I receive errors. – user121799 Mar 24 '19 at 20:54
• please make your mwe compilable. it has many errors (There's no line to end) – Zarko Mar 24 '19 at 20:54
• @mormot I used overleaf to compile it. Here's a read only link: overleaf.com/read/qprgxcqtmppf and here's one anybody can edit: overleaf.com/2177493499cghwsymwvdst – voices Mar 24 '19 at 21:10
• @Zarko If you see errors that you know how to fix, you're welcome to. I'm pretty new to LaTeX and I've done my best. If it has errors, I don't know how to fix them. – voices Mar 24 '19 at 21:14
• @DavidCarlisle It was the only way I could think of to do it, without ending and beginning and dropping the indent back and forth for two words seemed like an annoyance. But it works is the main thing. It's not really the issue I'm trying to solve. – voices Mar 24 '19 at 21:19

You want to use tabular:

\documentclass[margin=6]{standalone}
\usepackage{amsmath,tikz,booktabs}

\begin{document}

\begin{tabular}{cc}
\begin{tikzpicture}
\draw (0,0)--(1,1);
\end{tikzpicture}
&
\begin{tikzpicture}
\draw (0,0)--(1,1);
\end{tikzpicture}
\\
\midrule
\multicolumn{2}{c}{degree sequence}\\
\begin{aligned} & e=\{2,2,2,2,2\} \\ & \delta(e)=2 \\ & \Delta(e)=2 \\ \end{aligned} &
\begin{aligned} & c=\{2,2,2,2,2\} \\ & \delta(c)=2 \\ & \Delta(c)=2 \end{aligned} \\
\midrule
\multicolumn{2}{c}{%
\begin{aligned} \alpha(e_{1})&=c_{1}, & \alpha(e_{2})&=c_{3},\\ \alpha(e_{3})&=c_{5}, & \alpha(e_{4})&=c_{2},\\ \alpha(e_{5})&=c_{4}, & \alpha(e_{1})&=c_{1}, \end{aligned}%
} \\
\midrule
\multicolumn{2}{c}{%
$\begin{array}{@{} c *{5}{@{} >{{}}c<{{}} @{} c @{}} } e_{1} & \to & e_{2} & \to & e_{3} & \to & e_{4} & \to & e_{5} & \to & e_{1} \\ c_{1} & \to & c_{3} & \to & c_{5} & \to & c_{2} & \to & c_{4} & \to & c_{1} \end{array}$%
} \\
\bottomrule[\lightrulewidth]
\end{tabular}

\end{document}


With a different alignment for the “degree sequence” block:

\documentclass[margin=6]{standalone}
\usepackage{amsmath,tikz,booktabs,array}

\begin{document}

\begin{tabular}{cc}
\begin{tikzpicture}
\draw (0,0)--(1,1);
\end{tikzpicture}
&
\begin{tikzpicture}
\draw (0,0)--(1,1);
\end{tikzpicture}
\\
\midrule
\multicolumn{2}{c}{degree sequence}\\
\begin{gathered} e=\{2,2,2,2,2\} \\ \begin{aligned} \delta(e)&=2 \\ \Delta(e)&=2 \end{aligned} \end{gathered} &
\begin{gathered} c=\{2,2,2,2,2\} \\ \begin{aligned} \delta(c)&=2 \\ \Delta(c)&=2 \end{aligned} \end{gathered} \\
\midrule
\multicolumn{2}{c}{%
\begin{aligned} \alpha(e_{1})&=c_{1}, & \alpha(e_{2})&=c_{3},\\ \alpha(e_{3})&=c_{5}, & \alpha(e_{4})&=c_{2},\\ \alpha(e_{5})&=c_{4}, & \alpha(e_{1})&=c_{1}, \end{aligned}%
} \\
\midrule
\multicolumn{2}{c}{%
$\begin{array}{@{} c *{5}{@{} >{{}}c<{{}} @{} c @{}} } e_{1} & \to & e_{2} & \to & e_{3} & \to & e_{4} & \to & e_{5} & \to & e_{1} \\ c_{1} & \to & c_{3} & \to & c_{5} & \to & c_{2} & \to & c_{4} & \to & c_{1} \end{array}$%
} \\
\bottomrule[\lightrulewidth]
\end{tabular}

\end{document}


• thanks, i really appreciate having this alternative. i like how you reduced the whitespace too. – voices Mar 24 '19 at 21:25
• I just noticed it doesn't actually line it up perfectly. Probably because the glyphs aren't a fixed width. Still looks pretty good though. – voices Mar 24 '19 at 21:57
• @tjt263 I guess you were referring to the bottom lines: fixed. – egreg Mar 24 '19 at 22:18
• I didn't notice that one. I meant the δ(e)=2, Δ(e)=2, etc. That's the part I was trying to align mostly. It's still pretty good. Better looking than what I had. – voices Mar 24 '19 at 23:10
• @tjt263 I added a different version. – egreg Mar 24 '19 at 23:16

align and alignat allow you to align. And you can put things in a node which has the same width as the figure.

\documentclass[tikz,margin=2mm]{standalone}
\usetikzlibrary{positioning,calc}
\usepackage{amsmath}
\begin{document}
\begin{tikzpicture}[Bullet/.style={circle,draw,fill=black,scale=0.75}]
\begin{scope}[local bounding box=top]
\begin{scope}[local bounding box=left]
\node[Bullet,label=left :{$e_1$}] (E1) at (0,2) {} ;
\node[Bullet,label=above:{$e_2$}] (E2) at (1,3) {} ;
\node[Bullet,label=right:{$e_3$}] (E3) at (2,2) {} ;
\node[Bullet,label=right:{$e_4$}] (E4) at (2,0) {} ;
\node[Bullet,label=left :{$e_5$}] (E5) at (0,0) {} ;
\draw[thick] (E1)--(E2)--(E3)--(E4)--(E5)--(E1) {} ;
\end{scope}
\begin{scope}[local bounding box=right,xshift=4cm]
\node[Bullet,label=left :{$c_1$}] (C1) at (0,2) {} ;
\node[Bullet,label=above:{$c_2$}] (C2) at (1,3) {} ;
\node[Bullet,label=right:{$c_3$}] (C3) at (2,2) {} ;
\node[Bullet,label=right:{$c_4$}] (C4) at (2,0) {} ;
\node[Bullet,label=left :{$c_5$}] (C5) at (0,0) {} ;
\draw[thick] (C1)--(C3)--(C5)--(C2)--(C4)--(C1) {} ;
\end{scope}
\end{scope}
\path let \p1=($(top.east)-(top.west)$) in
node[below=of top,align=center,text width=\x1]{
\rule[0cm]{\x1}{0.5pt}
degree sequence
\begin{alignat*}{2}
e&=\{2,2,2,2,2\}& c&=\{2,2,2,2,2\}\\
\delta(e)&=2 &\delta(c)&=2\\
\Delta(e)&=2&\Delta(c)&=2
\end{alignat*}
\rule[0cm]{\x1}{0.5pt}
\begin{alignat*}{2}
\alpha(e_{3})&=c_{5},&\alpha(e_{4})&=c_{2},\\
\alpha(e_{5})&=c_{4},&\alpha(e_{1})&=c_{1},
\end{alignat*}
\rule[0cm]{\x1}{0.5pt}
\begin{align*}
e_{1}&\to{}e_{2}\to{} e_{3}\to{}e_{4}\to{}
e_{5}\to{}e_{1}\\
c_{1}&\to{}c_{3}\to{} c_{5}\to{}c_{2}\to{}
c_{4}\to{}c_{1}
\end{align*}
\rule[0cm]{\x1}{0.5pt}};
\end{tikzpicture}
\end{document}


• very nice, thankyou – voices Mar 24 '19 at 21:22

with use of nested array:

\documentclass[margin=2mm]{standalone}
\usepackage{amsmath,animate}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{tikz}

\begin{document}
$\begin{array}{@{}c @{}} \begin{array}{cc} \tikz\node[draw]{\includegraphics[width=31mm]{example-image-duck}}; & \tikz\node[draw]{\includegraphics[width=31mm]{example-image-duck}};\\ \midrule \multicolumn{2}{c}{$degree sequence$} \\[1ex] e =\{2,2,2,2,2\} & c =\{2,2,2,2,2\} \\ \delta(e)=2 & \delta(c)=2 \\ \Delta(e)=2 & \Delta(c)=2 \\ \end{array} \\ \midrule \alpha(e_{1})=c_{1},\quad \alpha(e_{2})=c_{3}, \\ \alpha(e_{3})=c_{5},\quad \alpha(e_{4})=c_{2}, \\ \alpha(e_{5})=c_{4},\quad \alpha(e_{1})=c_{1}, \\ \midrule e_{1}\to e_{2}\to e_{3}\to e_{4}\to e_{5}\to e_{1} \\ c_{1}\to c_{3}\to c_{5}\to c_{2}\to c_{4}\to c_{1} \\ \midrule \end{array}$
\end{document}


instead your tikzpicture code i use example image.

• +1 for a pretty good answer. +100 for the duck. – voices Mar 24 '19 at 23:16