答案1
可以使用模拟\substack
并将array
多个下标左对齐到垂直条
\documentclass{article}
\usepackage{array}
\usepackage{amsmath}
\newcommand\xsubstack[1]{%
\renewcommand*{\arraystretch}{0.65}
\mathop{
\raisebox{\dimexpr-3pt+\arraystretch\baselineskip}{%
\begin{array}[t]{@{}|@{\,}>{\scriptstyle}l@{}}\\[3pt]#1\end{array}}}}
\begin{document}
\[
\hat{n}\xsubstack{x_1=\beta\\x_2=0}
\qquad\qquad
f(\mathbf{x}) \xsubstack{x_1=\alpha\\x_2=0\\\dots\\x_n=0}
\]
\end{document}
答案2
如果你不介意不同的垂直位置,你可以使用subarray
环境(amsmath
手册,第 21 页)来解决它,而无需定义任何新的宏(感谢@Celdor 的 MWE):
\documentclass{article}
\usepackage{array}
\usepackage{amsmath}
\begin{document}
\[
\hat{n}\Bigg\vert_{\begin{subarray}{l}
x_1=\beta\\x_2=0
\end{subarray}}
\qquad\qquad
f(\mathbf{x})\Bigg\vert_{\begin{subarray}{l}
x_1=\alpha\\x_2=0\\\dots\\x_n=0
\end{subarray}}
\]
\end{document}
答案3
取自这里
\documentclass{article}
\usepackage{amsmath} % for "\substack" macro
\begin{document}
\[
a=(b+c)\cdot 8 \Bigr|_{\substack{b=6\\c=2}}
=(b+c)\cdot 8\biggr|_{\substack{b=6\\c=2}}
=(b+c)\cdot 8\Biggr|_{\substack{b=6\\c=2}}
\]
\end{document}