![コマンドの引数内のシンボルを基準に位置合わせするにはどうすればよいですか?](https://rvso.com/image/328440/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E5%BC%95%E6%95%B0%E5%86%85%E3%81%AE%E3%82%B7%E3%83%B3%E3%83%9C%E3%83%AB%E3%82%92%E5%9F%BA%E6%BA%96%E3%81%AB%E4%BD%8D%E7%BD%AE%E5%90%88%E3%82%8F%E3%81%9B%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
等号などの記号の上に何か他のものが書かれている場合 ( を使用\overset
)、その記号を基準にして複数の行を揃え、その記号の上に書かれている内容を考慮して間隔を調整したいと思います。次のようになります。
しかし、構文的に禁止されていると思われるため、 の引数に「&」を入れることはできません\overset
。 の隣に置くと\overset
、当然ながら等号を基準に行が揃いません。
を使用しようとしましたが\mathclap
、これで必要な配置が実現しましたが、間隔が狭くなりすぎてしまいます。
以下に私の最小限の動作例を示します。
\documentclass[a4paper,12pt,fleqn]{article}
\usepackage[fleqn]{amsmath}
\usepackage{amsmath, amssymb, graphics, setspace}
\usepackage{latexsym}
\usepackage{mathtools}
\begin{document}
Placing "\&" next to overset:
\begin{alignat*}{1}
\textrm{some expression} & \overset{(23.1)}{=}\textrm{other expression}\\
& \overset{(1.3)}{=}\textrm{other expression}\\
& \overset{(2.4,3.5)}{=}\textrm{other expression}
\end{alignat*}
Using mathclap:
\begin{alignat*}{1}
\textrm{some expression} & \overset{\mathclap{(23.1)}}{=}\textrm{other expression}\\
& \overset{\mathclap{(1.3)}}{=}\textrm{other expression}\\
& \overset{\mathclap{(2.4,3.5)}}{=}\textrm{other expression}
\end{alignat*}
How I want it to look like:
\begin{alignat*}{1}
\textrm{some expression} & \quad\overset{\mathclap{(23.1)}}{=}\quad\textrm{other expression}\\
& \quad\overset{\mathclap{(1.3)}}{=}\quad\textrm{other expression}\\
& \quad\overset{\mathclap{(2.4,3.5)}}{=}\quad\textrm{other expression}
\end{alignat*}
Of course, adding spaces manually as done here is not a satisfactory solution to the problem.
\end{document}
答え1
答え2
これは、パッケージ\tabularCenterstack
の を使用しますtabstackengine
。列間の幅は によって制御されます\setstacktabulargap{0pt}
。行間のベースラインスキップは によって制御されます\setstackgap{L}{1.4\baselineskip}
。
\documentclass[a4paper,12pt,fleqn]{article}
\usepackage[fleqn]{amsmath}
\usepackage{amsmath, amssymb, graphics, setspace}
\usepackage{latexsym}
\usepackage{mathtools}
\usepackage{tabstackengine}
\stackMath
\def\poverset{\protect\overset}
\setstackgap{L}{1.4\baselineskip}
\setstacktabulargap{0pt}
\begin{document}
Using \verb|\tabularCenterstack|:
\[
\tabularCenterstack{rcl}{
\textrm{some expression} & \poverset{(23.1)}{=}&\textrm{other expression}\\
& \poverset{(1.3)}{=}&\textrm{other expression}\\
& \poverset{(2.4,3.5)}{=}&\textrm{other expression}
}
\]
\end{document}