第一次在这里发帖,如果我能让问题更清楚/更好,请告诉我。下面是我想实现的一个简单示例。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{alignat*}{2}
y_{ijk} \sim N(&\theta_{ijk}, se_{ijk}) \\
&\downarrow && \\
&\theta_{ijk} = &&\beta_{1ij} t_{ijk}^{p_1} \\
& &&\downarrow \\
& &&\beta_{1ij}
\end{alignat*}
\end{document}
我希望将\beta_{1ij} t_{ijk}^{p_1}
术语移至等号旁边的正常位置。这相当于将其与 上的下标对齐se_{ijk}
。我知道我可以将其与 对齐se
,但这会改变其自然间距,从而导致本质上相同的问题。即使可以使用 与下标对齐&&
,也必须花费大量时间来搜索要对齐的确切字母每一次一个人想从上面有文字的字母开始新的对齐。
有没有一种自然的方法来实现这样的事情?具体来说,
- 是否有可能在
alignat
环境中结束旧的排列并开始新的排列?(我怀疑这里的答案是否定的。)
或者
- 是否可以按某种“不规则数组”进行对齐,以便新对齐不必遵循旧对齐?也就是说,是否有办法开始新的对齐,使下方的文本对齐,但上方的文本不必对齐?
我花了很多时间研究 tikz,但我更喜欢垂直对齐对象,但最终它似乎又回到了这里提出的相同问题。谢谢大家的帮助!
答案1
我认为你最好和老伙计一起服务array
:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation*}
\setlength{\arraycolsep}{0pt}
\renewcommand{\arraystretch}{1.2}
\begin{array}{rclcl}
y_{ijk} \sim N( & \theta_{ijk} & \multicolumn{2}{l}{, se_{ijk})} \\
&\downarrow \\
&\theta_{ijk} & {}={} & \beta_{1ij} & t_{ijk}^{p_1} \\
&&&\downarrow \\
&&&\beta_{1ij}
\end{array}
\end{equation*}
\end{document}
为了获得垂直对齐的下标,还需要做更多的工作:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation*}
\setlength{\arraycolsep}{0pt}
\renewcommand{\arraystretch}{1.2}
\newcommand{\fs}{^{\vphantom{p_1}}}
\begin{array}{rclcl}
y\fs_{ijk} \sim N( & \theta\fs_{ijk} & \multicolumn{2}{l}{, se\fs_{ijk})} \\
&\downarrow \\
&\theta\fs_{ijk} & {}={} & \beta\fs_{1ij\vphantom{k}} & t_{ijk}^{p_1} \\
&&&\downarrow \\
&&&\beta\fs_{1ij}
\end{array}
\end{equation*}
\end{document}
答案2
\downarrow
这里有两个解决方案,由于包的原因,它们的对齐效果更好eqparbox
。一个解决方案使用alignat*
环境与\mathlap
来自的命令相结合mathtools
,另一个解决方案使用aligned
简单的嵌套环境align*
:
\documentclass{article}
\usepackage{mathtools}
\usepackage{eqparbox}
\newcommand\eqmathbox[2][M]{\eqmakebox[M#1]{$\displaystyle#2$}}
\begin{document}
\begin{align*}
y_{ijk} ∼ N(&\eqmathbox[1]{\theta_{ijk}}, se_{ijk}) \\
&\eqmathbox[1]{\downarrow} \\
& \theta_{ijk} =\! \begin{aligned}[t] & \eqmathbox[2]{\beta_{1ij}} t_{ijk}^{p₁} \\
&\eqmathbox[2]{\downarrow} \\
&\beta_{1ij}
\end{aligned}
\end{align*}
\begin{alignat*}{2}
y_{ijk} ∼ N(&\mathrlap{\eqmathbox[1]{\theta_{ijk}}, se_{ijk})} \\
& \eqmathbox[1]{\downarrow} & & \\
& \theta_{ijk} ={} & & \eqmathbox[2]{\beta_{1ij}} t_{ijk}^{p₁} \\
& & & \eqmathbox[2]{\downarrow} \\
& & & \beta_{1ij}
\end{alignat*}
\end{document}