直線上の線の間の垂直矢印の水平方向の配置

直線上の線の間の垂直矢印の水平方向の配置

私は次のような構造にしようとしています

\documentclass{article}
\usepackage{amsmath,mathtools}

\begin{document}
\begin{align*}
  a &= b \\
    &\Downarrow \\
  a &= c
\end{align*}
\end{document}

ここに画像の説明を入力してください

\Downarrow見栄えを良くするために、 を水平方向に中央揃えにする必要があります=。 が記号の間で中央揃えになっていないことが問題です。 なぜこのようなことが起こるのか\mathrel{\Downarrow}、 が役に立たない理由は理解していますが、修正方法がわかりません。 の\ArrowBetweenLines[\Downarrow]関数は知ってmathtoolsいますが、これは矢印を整列した線の左側に配置するためのものです。 と同じように機能するもの\vdotswithin{=}( から) が理想的です。 はどこかにありますか? それとも、手動で「 に対応するボックスを作成し、 をその中央に配置する」mathtoolsのは難しいでしょうか?{}={}\Downarrow

答え1

\vdotswithinfromの定義は次のとおりですmathtools:

\newcommand\vdotswithin[1]{%
  {\mathmakebox[\widthof{\ensuremath{{}#1{}}}][c]{{\vdots}}}}

これを次のように更新することができます\symbolwithin{<symbol>}{<within symbol>}:

ここに画像の説明を入力してください

\documentclass{article}

\usepackage{mathtools}

\newcommand\symbolwithin[2]{%
  {\mathmakebox[\widthof{\ensuremath{{}#2{}}}][c]{{#1}}}}

\begin{document}

\begin{align*}
  a &= b \\
    &\symbolwithin{\Downarrow}{=} \\
  a &= c
\end{align*}

\end{document}

答え2

ここでは、等号の大きさのボックス内に下矢印を配置しました

\documentclass{article}
\usepackage{amsmath,mathtools,calc}
\begin{document}
\begin{align*}
  a &= b \\
    &\makebox[\widthof{${}={}$}]{$\Downarrow$} \\
  a &= c
\end{align*}
\end{document}

ここに画像の説明を入力してください

関連情報