我想寫一個類似表格的東西,其中包含狀態和相應的方程,但方程應該是對齊的,如圖所示。
不幸的是我還沒有找到解決方案。我已經嘗試過對齊,但文字未居中。這是我嘗試過的程式碼:
\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
的所有內容都在中心\eqmakebox[<tag>][<align>]{<stuff>}
對齊。您可以將ment 變更為eft、entre(預設)或ight。<stuff>
<tag>
<align>
l
c
r
\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
的巨集使用輔助檔案來儲存與 a 相關的最大寬度<tag>
,因此每次變更 的內容時,您都必須至少編譯兩次<stuff>
。