我有一个“方程”,我只想给出一些常数值。我正在对齐方程符号,但由于数字的位数不同,我还想将数字向右对齐:
LaTeX 当前看起来如下:
\documentclass[ngerman]{scrbook}
\usepackage{amssymb,amsmath,amsthm}
\begin{document}
\begin{equation*}
\begin{aligned}
\text{first value} &= 12 & \\
\text{second value} &= 1234 & \\
\text{third one} &= 1234567 &
\end{aligned}
\end{equation*}
\end{document}
是否可以使用 右对齐aligned
?是否有其他软件包可以实现此目的(出于一致性的原因,如果可能的话,我想坚持使用等式)。
答案1
像这样?
\documentclass{scrbook}
\usepackage{amssymb,amsmath,amsthm}
\begin{document}
\begin{equation*}
\begin{alignedat}{2}
\text{first value} &={}& 12 \\
\text{second value} &={}& 1234 \\
\text{third one} &={}& 1234567
\end{alignedat}
\end{equation*}
\end{document}
我刚刚将其移到&
数字前面并使用了alignedat
(感谢 egreg)。
这是\makebox
:
\documentclass{scrbook}
\usepackage{mathtools}
\newcommand\mybox[1]{\makebox[1.5cm][r]{$#1$}} %% change 1.5cm to fit in the largest integer
\begin{document}
\begin{equation*}
\begin{aligned}
\text{first value} &= \mybox{12} \\
\text{second value} &= \mybox{1234} \\
\text{third one} &= \mybox{1234567}
\end{aligned}
\end{equation*}
\end{document}
另一个选项是tabular
:
\documentclass{scrbook}
\usepackage{amsmath,array}
\begin{document}
\begin{equation*} %% or \begin{center}
\begin{tabular}{r!{$=$}r}
first value & 12 \\
second value & 1234 \\
third one & 1234567
\end{tabular} %% or \end{center}
\end{equation*}
\end{document}
这里可以使用begin{center}
或\centering
(在组内) 代替\begin{equation*}
。
答案2
您可以在环境array
中使用环境equation*
并自动生成=
符号。
\documentclass{scrbook}
\usepackage{amsmath} % for "\text" macro and "equation*" environment
\begin{document}
\begin{equation*}
\begin{array}{r@{{}={}}r} % "@{{}={}}" inserts correctly-spaced equal sign between the columns
\text{first value} & 12 \\
\text{second value} & 1234 \\
\text{third one} & 1234567
\end{array}
\end{equation*}
\end{document}
答案3
最简单的方法是使用align*
。为了在 = 符号周围有正确的间距,您需要{}
在包含最长数字的行中至少插入一对。
我加载了 empheq
以便有一种在方程式右侧添加垂直线的简单方法。Ot 加载 mathtools
,这反过来又加载了 (并纠正了 2 个错误)amsmath
。
\documentclass[ngerman]{scrbook}
\usepackage{amssymb, amsthm}
\usepackage[overload]{empheq}
\usepackage[svgnames, x11names]{xcolor}
\usepackage{bm}
\begin{document}
\begin{alignat*}{2}[right =\color{IndianRed1}\vrule width1pt]
\text{first value} &= &12 \\
\text{second value} & ={} & 1234 \\
\text{third one} &= & 1234567
\end{alignat*}
\end{document}