有没有我可以遵循的标准来对齐三列数学?LaTex 是做什么的?
如果没有标准,我该如何很好地格式化 3 列数学?例如
-1 \leq \sin(t) \leq 1
\int_0^x (-1) dt \leq \int_0^x \cos(t) dt \leq \int_0^x (1) dt
-x \leq \cos(x)-1 \leq x
我希望各列在等式上方对齐。左列向右对齐,右列向左对齐。中间列居中。
请注意,我已尝试使用“alignat”,但无法正确调整间距,因为它坚持将所有内容右/左/右/左对齐...,并且列之间的距离太远。
还尝试了“tabular”,但列太宽,并且它没有根据我的 documentclass 语句中的“fleqn,reqno”缩进。
答案1
对于居中的中间列,使用常规align*
并将中间列内容设置在类似大小的框中(使用eqparbox
的\eqmakebox
):
\documentclass{article}
\usepackage{amsmath,eqparbox}
\newcommand{\dt}{\,\mathrm{d}t}
\newcommand{\dint}{\displaystyle\int}
\begin{document}
\begin{align*}
-1 &\leq \eqmakebox[box]{$ \sin(t) $} \leq 1 \\
\dint_0^x (-1) \dt &\leq \eqmakebox[box]{$\dint_0^x \cos(t) \dt$} \leq \dint_0^x (1) \dt \\
-x &\leq \eqmakebox[box]{$ \cos(x) - 1 $} \leq x
\end{align*}
\[
\renewcommand{\arraystretch}{1.2}
\setlength{\arraycolsep}{0pt}
\begin{array}{ r c l }
-1 \leq {} & \sin(t) & {} \leq 1 \\
\dint_0^x (-1) \dt \leq {} & \dint_0^x \cos(t) \dt & {} \leq \dint_0^x (1) \dt \\
-x \leq {} & \cos(x) - 1 & {} \leq x
\end{array}
\]
\[
\renewcommand{\arraystretch}{1.2}
\setlength{\arraycolsep}{0pt}
\begin{array}{ r }
-1 \leq {} \\ \dint_0^x (-1) \dt \leq {} \\ -x \leq {}
\end{array}
\begin{array}{ c }
\sin(t) \\ \dint_0^x \cos(t) \dt \\ \cos(x) - 1
\end{array}
\begin{array}{ l }
{} \leq 1 \\ {} \leq \dint_0^x (1) \dt \\ {} \leq x
\end{array}
\]
\end{document}
第二个和第三个选项提供了使用array
s 堆叠内容的附加选项,但与amsmath
显示。
答案2
原则上,您不需要其中任何一个。
\documentclass{article}
\begin{document}
\[\begin{array}{rcccl}
-1 & \leq & \sin(t) & \leq & 1 \\
\displaystyle\int\limits_0^x (-1)\, \mathrm{d}t & \displaystyle\leq &
\displaystyle\int\limits_0^x \cos(t)\, \mathrm{d}t & \leq & \displaystyle\int\limits_0^x (1)\, \mathrm{d}t
\\
-x & \leq & \cos(x)-1 & \leq & x
\end{array}
\]
\end{document}
当然,你可能会觉得使用\displaystyle
很糟糕,在这种情况下考虑
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{alignat*}{3}
-1 & \leq & \sin(t) & \leq 1 \\
\int\limits_0^x (-1)\, \mathrm{d}t & \leq &
\int\limits_0^x \cos(t)\, \mathrm{d}t & \leq \int\limits_0^x (1)\, \mathrm{d}t
\\
-x & \leq & \cos(x)-1 & \leq x
\end{alignat*}
\end{document}
得出
当然,这里中间一列没有居中。
答案3
你也可以考虑排列某些物品之内三个列中的每一列,例如,-1
和-1
在-x
第一列。这可以使用\phantom
命令来完成。
您可以将此策略应用于任何其他解决方案,或使用\lefteqn
附加\phantom
命令来对齐 s 的第二列,\leq
如下面的代码所示。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
\phantom{\int_0^x (}{-1}\phantom{)\,\mathrm{d}t} & %
\leq \lefteqn{\phantom{\int_0^x} \sin(t)\phantom{\, \mathrm{d}t}}\phantom{\int_0^x 1-\cos(x)}%
\leq \phantom{\int_0^x (}1 \\
\int_0^x (-1)\,\mathrm{d}t &%
\leq \lefteqn{\int_0^x \sin(t)\, \mathrm{d}t}\phantom{\int_0^x 1-\cos(x)}%
\leq \int_0^x (1)\,\mathrm{d}t \\
\phantom{\int_0^x (}{-x}\phantom{)\,\mathrm{d}t} &%
\leq \phantom{\int_0^x}\,1-\cos(x)%
\leq \phantom{\int_0^x (}x \\
\end{align*}
\end{document}
最后,大家一致认为,\,
应在被积函数和微分之间插入一个细空格(),并且(也许共识较少)d
微分中的应采用罗马(直立)字体排版。
答案4
这是我能做的最好的事情:
标头
\usepackage{array} % Provides for a more flexible array and tabular environment
\usepackage{booktabs} % For fancy stuff in arrays and tables. Like the following column definitions
\newcolumntype{L}{>{\begin{math}}l<{\end{math}}}%
\newcolumntype{C}{>{\begin{math}}c<{\end{math}}}%
\newcolumntype{R}{>{\begin{math}}r<{\end{math}}}%
\usepackage{multicol,multirow}
\parindent0pt
\setlength{\parskip}{0.5\baselineskip}
\everymath{\displaystyle}
然后身体里的表格
{
\setlength{\tabcolsep}{01pt} % Default value: 6pt %Need to find how I set this as a universal constant
\renewcommand{\arraystretch}{2.3} % Default value: 1 %Need to find how I set this for each row
\begin{tabular}{RCCCL}
\sin(t) &\leq& t \\
\int_0^x \sin(t) \dif t &\leq& \int_0^x t \dif t \\
-\cos(x) + \cos(0) &\leq& \frac{x^2}{2} - 0 \\
-\cos(x) + 1 &\leq& \frac{x^2}{2} \\
1-\frac{x^2}{2} &\leq& \cos(x)
\end{tabular}
}