Я хочу написать что-то вроде таблицы с состояниями и соответствующими уравнениями, но уравнения должны быть выровнены, как показано на рисунке.
К сожалению, я пока не нашел решения. Я уже пробовал align, но тогда текст не центрируется. Вот код, который я пробовал:
\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
too, но я упрощаю заголовок, удаляя qquad
и вставляя @{{}={}}
вместо этого. Также я добавляю \renewcommand{\arraystretch}{1.3}
для лучшего межстрочного интервала. И я согласен с @Sebastiano, что использование 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
макросы используют вспомогательный файл для хранения максимальных значений ширины, относящихся к a <tag>
, вам придется компилировать его как минимум дважды при каждом изменении содержимого <stuff>
.