我遇到了此堆栈的一些小间距故障,我想知道解决此问题的最佳方法:
\documentclass[11pt,letterpaper,twoside]{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage{microtype}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{mathtools}
\usepackage{tensor}
\begin{document}
\begin{equation}
A_{\mu \nu \lambda} +
\left[ \: \substack{
\mu \; \rightarrow \; \lambda \\
\nu \; \rightarrow \; \mu \\
\lambda \; \rightarrow \; \nu
} \: \right] +
\left[ \: \substack{
\mathstrut \smash{\mu \; \rightarrow \; \nu} \\
\mathstrut \smash{\nu \; \rightarrow \; \lambda} \\
\mathstrut \smash{\lambda \; \rightarrow \; \mu}
} \: \right]
\end{equation}
\end{document}
预览:
正如您在预览中看到的,第二部分具有可变的垂直间距(主要是因为拉姆达符号),我觉得它非常丑陋。我通过粉碎所有内容并添加幻影垂直空间(使用\mathstrut
)来破解它(最后一部分)。但是有没有更好或更简单的方法来做到这一点?我怎样才能获得更好的结果?
答案1
我认为你滥用\substack
机器,将它用在显然不适合使用的地方。
我建议您使用bmatrix
环境或bsmallmatrix
环境;如果您选择后者,请确保\mathstrut
在所有行中也使用指令。
\documentclass[11pt,letterpaper,twoside]{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[total={6in,10in},
left=1.5in,top=0.5in,
includehead,includefoot]{geometry}
\usepackage{microtype}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{mathtools}% for 'bsmallmatrix' env.
\usepackage{tensor}
\begin{document}
\begin{gather*}
%% Row 1: \left[ \substac{ ... } \right]
A_{\mu \nu \lambda} +
\left[ \: \substack{
\mu \; \rightarrow \; \lambda \\
\nu \; \rightarrow \; \mu \\
\lambda \; \rightarrow \; \nu
} \: \right] +
\left[ \: \substack{
\mathstrut \smash{\mu \; \rightarrow \; \nu} \\
\mathstrut \smash{\nu \; \rightarrow \; \lambda} \\
\mathstrut \smash{\lambda \; \rightarrow \; \mu}
} \: \right]\\
%% Row 2: bmatrix environment
A_{\mu \nu \lambda} +
\begin{bmatrix}
\mu \to \lambda \\
\nu \to \mu \\
\lambda \to \nu
\end{bmatrix} +
\begin{bmatrix}
\mu \to \nu \\
\nu \to \lambda \\
\lambda \to \mu
\end{bmatrix}\\
%% Row 3: bsmallmatrix environment
A_{\mu \nu \lambda} +
\begin{bsmallmatrix}
\mu \to \lambda \mathstrut\\
\nu \to \mu \mathstrut\\
\lambda \to \nu\mathstrut
\end{bsmallmatrix} +
\begin{bsmallmatrix}
\mu \to \nu \mathstrut\\
\nu \to \lambda \mathstrut\\
\lambda \to \mu \mathstrut
\end{bsmallmatrix}
\end{gather*}
\end{document}
答案2
您可以使用array
条目所在的位置\scriptstyle
。
\documentclass[11pt]{article}
\usepackage{lmodern}
\usepackage{mathtools}
\usepackage{array}
\begin{document}
\[
\renewcommand{\arraystretch}{0.55}
A_{\mu \nu \lambda} +
\biggl[ \begin{array}{@{\,}>{\scriptstyle}c@{\,}}
\mu \; \rightarrow \; \lambda \\
\nu \; \rightarrow \; \mu \\
\lambda \; \rightarrow \; \nu
\end{array} \biggr]
\]
\end{document}
答案3
您可以使用array
in \scriptsize
。
\documentclass[11pt,letterpaper,twoside]{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage{microtype}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{mathtools}
\usepackage{tensor}
\newenvironment{scriptarray}[2][c]
{%
\mathord{}% just to ensure this is used in math
\hbox\bgroup\scriptsize$\begin{array}[#1]{#2}%
}
{%
\end{array}$\egroup
}
\begin{document}
\begin{equation}
A_{\mu \nu \lambda} +
\left[ \begin{scriptarray}{@{}c@{}}
\mu \rightarrow \lambda \\
\nu \rightarrow \mu \\
\lambda \rightarrow \nu
\end{scriptarray} \right]
\end{equation}
\end{document}