![如何在对齐环境中制作表格?](https://linux22.com/image/370146/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%AF%B9%E9%BD%90%E7%8E%AF%E5%A2%83%E4%B8%AD%E5%88%B6%E4%BD%9C%E8%A1%A8%E6%A0%BC%EF%BC%9F.png)
我在数组环境中写了几行代码,得到以下结果。我的问题是 (1) 出现在我标记的位置的很下方。
要添加标签,我使用以下宏(由本论坛的其他用户提供)
\newcommand{\numberthis}[1]{\addtocounter{equation}{1}\tag{\theequation}\label{#1}}
在以下代码的第一行。
\[
\begin{array}[]{c| c}
\delta'\left( (s', \gamma),\e \right) = & (\delta(q,0), \alpha) \cup (\delta(q,1), \beta) \numberthis{joe}\\
\hline
\delta'\left( (q, \gamma), 0 \right) = & (\delta(q,0), \gamma) \cup (\delta(q,1),\alpha) \\
\delta'\left( (q, \gamma), 1 \right) = & (\delta(q,1), \gamma) \cup (\delta(q,0), \beta) \\
\hline
\delta'\left( (q, \alpha), 1 \right) = & \emptyset \\
\delta'\left( (q, \alpha), 0 \right) = & (\delta(q,1), \alpha) \\
\hline
\delta'\left( (q, \beta), 1 \right) = & \emptyset \\
\delta'\left( (q, \beta), 0 \right) = & (\delta(q,1), \beta) \\
\hline
\delta'\left( (q, \beta), \e \right) = & \emptyset \\
\end{array}
\]
问题:为了能够将 (1) 显示到我想要的位置,我应该怎么做?我考虑过使用对齐环境而不是数组环境,但是我无法将我的数学表达为美观的表格:
答案1
主要修改的是 修改\begin{array}[]{...}
为\begin{array}[t]{...}
,并且移出\numberthis{joe}
数组。
单独的注释:如果您打算交叉引用此公式,请将其更改\addtocounter{equation}{1}
为\refstepcounter{equation}
。顺便说一句,\left
和\right
指令实际上并没有扩大相应的括号。要么将它们分别更改为\bigl
和\bigr
,要么完全删除它们。
\documentclass{article}
\usepackage{amsmath} % for "\tag" macro
\newcommand\e{\mathrm{e}} % ?
\newcommand{\numberthis}[1]{\refstepcounter{equation}\tag{\theequation}\label{#1}}
\begin{document}
\[
\renewcommand\arraystretch{1.25}
\numberthis{joe}
\begin{array}[t]{r|c}
\delta'\bigl( (s',\gamma),\e \bigr)= & (\delta(q,0), \alpha) \cup (\delta(q,1), \beta)\\
\hline
\delta'\bigl( (q,\gamma), 0 \bigr) = & (\delta(q,0), \gamma) \cup (\delta(q,1),\alpha)\\
\delta'\bigl( (q,\gamma), 1 \bigr) = & (\delta(q,1), \gamma) \cup (\delta(q,0), \beta)\\
\hline
\delta'\bigl( (q,\alpha), 1 \bigr) = & \emptyset \\
\delta'\bigl( (q,\alpha), 0 \bigr) = & (\delta(q,1), \alpha) \\
\hline
\delta'\bigl( (q,\beta), 1 \bigr) = & \emptyset \\
\delta'\bigl( (q,\beta), 0 \bigr) = & (\delta(q,1), \beta) \\
\hline
\delta'\bigl( (q,\beta), \e \bigr) = & \emptyset \\
\end{array}
\]
\end{document}
附录:垂直线似乎没有必要。恕我直言,类似下面的内容看起来不那么杂乱。
\documentclass{article}
\usepackage{amsmath,array}
\newcommand\e{\mathrm{e}} % ?
\newcommand{\numberthis}[1]{\refstepcounter{equation}\tag{\theequation}\label{#1}}
\begin{document}
\[
\renewcommand\arraystretch{1.25}
\numberthis{joe}
\begin{array}[t]{@{} c @{{}={}} c @{}} % automatically insert "=" between the columns
\delta'\bigl( (s',\gamma),\e \bigr)& (\delta(q,0), \alpha) \cup (\delta(q,1), \beta) \\
\hline
\delta'\bigl( (q,\gamma), 0 \bigr) & (\delta(q,0), \gamma) \cup (\delta(q,1),\alpha) \\
\delta'\bigl( (q,\gamma), 1 \bigr) & (\delta(q,1), \gamma) \cup (\delta(q,0), \beta) \\
\hline
\delta'\bigl( (q,\alpha), 1 \bigr) & \emptyset \\
\delta'\bigl( (q,\alpha), 0 \bigr) & (\delta(q,1), \alpha) \\
\hline
\delta'\bigl( (q,\beta), 1 \bigr) & \emptyset \\
\delta'\bigl( (q,\beta), 0 \bigr) & (\delta(q,1), \beta) \\
\hline
\delta'\bigl( (q,\beta), \e \bigr) & \emptyset \\
\end{array}
\]
\end{document}
第二附录,以解决 OP 的后续问题。为了能够\numberthis
插入右对齐方程标签任何地方在数组中,我建议 (a) 从 切换array
到align*
环境,以及 (b) 通过用更多空白替换所有指令来整理材料\hline
。(具体要增加多少空白取决于个人喜好;在下面的代码中,我使用了1ex
。您的喜好可能与我的不同。)
\documentclass{article}
\usepackage{amsmath,array}
\newcommand\e{\mathrm{e}} % ?
\newcommand{\numberthis}[1]{\refstepcounter{equation}\tag{\theequation}\label{#1}}
\begin{document}
\begin{align*}
\delta'( (s',\gamma),\e )&= (\delta(q,0), \alpha) \cup (\delta(q,1), \beta) \\[1ex]
\delta'( (q,\gamma), 0 ) &= (\delta(q,0), \gamma) \cup (\delta(q,1),\alpha) \numberthis{joe}\\
\delta'( (q,\gamma), 1 ) &= (\delta(q,1), \gamma) \cup (\delta(q,0), \beta) \\[1ex]
\delta'( (q,\alpha), 1 ) &= \emptyset \\
\delta'( (q,\alpha), 0 ) &= (\delta(q,1),\alpha)\\[1ex]
\delta'( (q,\beta), 1 ) &= \emptyset \\
\delta'( (q,\beta), 0 ) &= (\delta(q,1),\beta)\\[1ex]
\delta'( (q,\beta), \e ) &= \emptyset \numberthis{bob}
\end{align*}
A cross-reference to equations \eqref{joe} and \eqref{bob}.
\end{document}