这是一个半成品,但我不打算继续下去了,有以下几个缺陷:
- 借助
chemarr提供的\xrightleftharpoons箭头并非良策 - 上下的字符区域和箭头的距离不完全相同,修改很困难,参见这里
- 需要反复借助
\rotatebox[origin=c]{90}{...} - 左右间距调整纯靠随缘
\;以及\,并不准确,且难以和\Big\updownarrow做到精确同高 - 红温😡
\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{graphicx}
\DeclareMathOperator{\Inv}{Inv}
\DeclareMathOperator{\Gal}{Gal}
\usepackage{chemarr}%<---
\usepackage{lua-visual-debug}
\begin{document}
$X \xrightleftharpoons[o]{o} Y$
$X \xrightleftharpoons[{\;ooo}]{{ooo\;}} Y$
$X \xrightleftharpoons[{\rotatebox[origin=c]{-90}{$\Gal$}}]{{\rotatebox[origin=c]{-90}{$\,\Inv\,$}}} Y$
$X \xrightleftharpoons[\quad{\rotatebox[origin=c]{-90}{$\,\Gal\,$}}\quad]{\quad{\rotatebox[origin=c]{-90}{$\,\Inv\,$}}\quad} Y$
\bigskip
$X \rotatebox[origin=c]{90}{\xrightleftharpoons[\quad{\rotatebox[origin=c]{-90}{$\,\Gal\,$}}\quad]{\quad{\rotatebox[origin=c]{-90}{$\,\Inv\,$}}\quad}} Y$
\end{document}
下面是完整的半成品代码:
\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{graphicx}
\DeclareMathOperator{\Inv}{Inv}
\DeclareMathOperator{\Gal}{Gal}
\usepackage{chemarr}%<---
\begin{document}
\begin{equation*}
\begin{array}{*{3}{c}}
\Inv{H_2} & & \Inv{H_1}
\\[1mm]
\rotatebox{90}{$=$} & & \rotatebox{90}{$=$}
\\[1mm]
E_2 & \supseteq & E_1
\\[2mm]
\;\rotatebox[origin=c]{90}{$\xrightleftharpoons[\;\,{\rotatebox[origin=c]{-90}{$\;\Gal\;$}}\,\;]{{\rotatebox[origin=c]{-90}{$\;\Inv\;$}}}$} & & \Big\updownarrow
\\[2mm]
H_2 & \subseteq & H_1
\\[1mm]
\rotatebox{90}{$=$} & & \rotatebox{90}{$=$}
\\[1mm]
\Gal(K/E_2) & & \Gal(K/E_1)
\end{array}
\end{equation*}
\end{document}
最佳实践还应当是tikzcd...有更准确的位置设置和箭头支持:-[























问 如何排版这样的"交换图"的纵向可延伸双向箭头「\rightleftharpoons」?