我想写一个类似表格的东西,其中包含状态和相应的方程式,但方程式应该是对齐的,如图所示。
不幸的是我还没有找到解决方案。我已经尝试过对齐,但文本没有居中。这是我尝试的代码:
\begin{align*}
\textit{State} && \textit{Rate leave} &= \textit{rate enter} \\
(0,0) && \lambda P_{0,0} &= \sum\limits_{n=1}^{\infty} \mu_n P_{0,n} \\
(0,n), n > 0 && (\lambda + \mu_n)P_{0,n} &= \sum\limits_{m=1}^{\infty} \mu_m P_{n,m} \\
(m,n), mn > 0 && (\lambda + \mu_n)P_{m,n} &= \lambda P_{m-1,n}
\end{align*}
有谁知道我应该用什么来使文本居中?
答案1
我也会使用,但我通过删除和插入来array
简化标题。此外,我添加了更好的行距。我同意@Sebastiano 的观点,使用更好。qquad
@{{}={}}
\renewcommand{\arraystretch}{1.3}
text
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
\renewcommand{\arraystretch}{1.3}
\begin{array} {c r @{{}={}} l}
\text{State} & \text{Rate leave} & \text{rate enter} \\
(0,0) & \lambda P_{0,0} & \sum_{n=1}^{\infty} \mu_n P_{0,n} \\
(0,n),\ n > 0 & (\lambda + \mu_n)P_{0,n} & \sum_{m=1}^{\infty} \mu_m P_{n,m} \\
(m,n),\ mn > 0 & \quad(\lambda + \mu_n)P_{m,n} & \lambda P_{m-1,n}
\end{array}
\]
\end{document}
答案2
使用array
,并运用一些小技巧来获得正确的间距(不,正确的间距不是\,
)。
\documentclass{article}
\usepackage{amsmath,array}
\begin{document}
\begin{equation*}
\begin{array}{@{} c @{\qquad} r @{} >{{}}l @{}}
\textit{State} & \textit{Rate leave} &= \textit{rate enter} \\[1ex]
(0,0) & \lambda P_{0,0} &= \sum_{n=1}^{\infty} \mu_n P_{0,n} \\[1ex]
(0,n),\ n > 0 & (\lambda + \mu_n)P_{0,n} &= \sum_{m=1}^{\infty} \mu_m P_{n,m} \\[1ex]
(m,n),\ mn > 0 & (\lambda + \mu_n)P_{m,n} &= \lambda P_{m-1,n}
\end{array}
\end{equation*}
\end{document}
我会避免\limits
,那会使整个事情失去平衡。
答案3
另一个解决方案是使用gathered
和一个aligned
环境,以及以下几个\vphantom{\sum...}
:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
\begin{gathered}[t]
\textit{State} \\
\vphantom{\sum\nolimits_{n=1}^{\infty}}(0,0)\\
\vphantom{\sum\nolimits_{n=1}^{\infty}}(0,n), n > 0 \\
(m,n), mn > 0
\end{gathered}
\hspace{4em}
\begin{aligned}[t]
\textit{Rate leave} &= \textit{rate enter} \\
\lambda P_{0,0} &= \sum\nolimits_{n=1}^{\infty} \mu_n P_{0,n} \\
(\lambda + \mu_n)P_{0,n} &= \sum\nolimits_{m=1}^{\infty} \mu_m P_{n,m} \\
\lambda + \mu_n)P_{m,n} &= \lambda P_{m-1,n}
\end{aligned}
\]
\vskip 4ex
\[
\begin{gathered}[t]
\textit{State} \\
\vphantom{\sum_{n=1}^{\infty}}(0,0)\\
\vphantom{\sum_{n=1}^{\infty}}(0,n), n > 0 \\
(m,n), mn > 0
\end{gathered}
\hspace{4em}
\begin{aligned}[t]
\textit{Rate leave} &= \textit{rate enter} \\
\lambda P_{0,0} &= \sum_{n=1}^{\infty} \mu_n P_{0,n} \\
(\lambda + \mu_n)P_{0,n} &= \sum_{m=1}^{\infty} \mu_m P_{n,m} \\
\lambda + \mu_n)P_{m,n} &= \lambda P_{m-1,n}
\end{aligned}
\]
\end{document}
答案4
如果你想坚持align
,eqparbox
's\eqmakebox[<tag>][<align>]{<stuff>}
将所有<stuff>
内容对齐<tag>
到中心。您可以将<align>
ment 更改为l
eft、c
entre(默认)或r
ight。
\documentclass{article}
\usepackage{amsmath,eqparbox}
\begin{document}
\begin{align*}
\eqmakebox[LHS]{ \textit{State} } && \textit{Rate leave} &= \textit{rate enter} \\[1ex]
\eqmakebox[LHS]{$ (0, 0) $} && \lambda P_{0, 0} &= \textstyle\sum_{n = 1}^\infty \mu_n P_{0, n} \\
\eqmakebox[LHS]{$ (0, n), n > 0 $} && (\lambda + \mu_n) P_{0, n} &= \textstyle\sum_{m = 1}^\infty \mu_m P_{n, m} \\
\eqmakebox[LHS]{$(m, n), m n > 0$} && (\lambda + \mu_n) P_{m, n} &= \lambda P_{m - 1, n}
\end{align*}
\end{document}
因为eqparbox
的宏使用辅助文件来存储与 相关的最大宽度<tag>
,所以每次 的内容发生变化时您都必须至少编译两次<stuff>
。