![以优美的方式对齐方程式](https://linux22.com/image/310853/%E4%BB%A5%E4%BC%98%E7%BE%8E%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AF%B9%E9%BD%90%E6%96%B9%E7%A8%8B%E5%BC%8F.png)
这是我的代码:
\begin{alignat*}{5}
& \mathrm{B} &&{}+ \mathrm{R} &&{}\cdot \mathrm{t}_1 &&{}= \mathrm{R}_{\mathrm{max}}&&{}\cdot \mathrm{t}_1\\
&2\mathrm{MiB} &&{}+ 4\MiBs &&{}\cdot \mathrm{t}_1 &&{}= 20\MiBs &&{}\cdot \mathrm{t}_1\\
& &&{} &&{} \mathrm{t}_1 &&{}= 0,125\mathrm{s} &&{}
\end{alignat*}
结果如下:
现在我希望第一行中的 B、R 和 R_max 位于下方内容的上方。此外,我希望最后一行中的 t_1 与上面几行中的其他 t_1 对齐。我该如何实现这一点?
答案1
根据需要对齐内容的一种方法是使用\makebox
将文本置于所需的空间中央:
笔记:
- 我强烈建议你使用包裹
siunitx
以及排版任何带有单位的内容。
代码:
\documentclass{article}
\usepackage{mathtools}
\usepackage{siunitx}
\sisetup{output-decimal-marker={,}}
\newcommand*{\MiB}{\mathrm{MiB}}%
\newcommand*{\MiBs}{\frac{\mathrm{MiB}}{\mathrm{s}}}%
\newcommand*{\MyCenter}[2]{\makebox[\widthof{$#1$}]{$#2$}}
\begin{document}
\begin{alignat*}{5}
&\MyCenter{\MiB}{B} &&{}+ \MyCenter{4\MiBs}{R} &{}\cdot t_1 &{}= \MyCenter{20\MiBs}{R_{\max}} &&{}\cdot t_1\\
&2\MiB &&{}+ 4\MiBs &{}\cdot t_1 &{}= 20\MiBs &&{}\cdot t_1\\
& &&{} & t_1 &{}= \SI{0,125}{\second}
\end{alignat*}
\end{document}
答案2
您可以将方程式放在数组中,请参阅http://en.wikibooks.org/wiki/LaTeX/Mathematics#Matrices_and_arrays
例如
\begin{matrix}
-1 & 3 \\
2 & -4
\end{matrix}
=
\begin{matrix*}[r]
-1 & 3 \\
2 & -4
\end{matrix*}
将产生
答案3
\begin{tabular}{ccc}
1 & 2 & 3 \ \
6 & 7 & 8
\end{tabular}
你会得到
1 2 3
6 7 8
因此,您可以在第一行写下您说的和想要的 B、R 和 R_max,并在第二行写下其他内容。
答案4
这是一个使用array
环境来对齐各种术语的解决方案。
\documentclass{article}
\usepackage{amsmath,array}
\begin{document}
\[
\setlength\arraycolsep{0pt}
\begin{array}{c @{} >{{}}c<{{}} c >{{}}c<{{}} l @{{}={}} c @{} >{{}}c<{{}} l}
\mathrm{B} & + & \mathrm{R} & \cdot & \mathrm{t}_1 & \mathrm{R}_{\mathrm{max}} & \cdot & \mathrm{t}_1\\[1.5ex]
2\,\mathrm{MiB} & + & 4\, \dfrac{\mathrm{MiB}}{\mathrm{s}} & \cdot & \mathrm{t}_1 & 20 \,\dfrac{\mathrm{MiB}}{\mathrm{s}} & \cdot & \mathrm{t}_1\\[2ex]
& & & & \mathrm{t}_1 & 0{,}125\mathrm{s}\\
\end{array}
\]
\end{document}