我正在尝试使用 LaTeX 中的 tikz-cd 创建此图表
但单元格的大小不适合。我希望第一、第二、第四和第五个单元格的高度很小,而第三个单元格的高度很大,以适应上下箭头。我该怎么做?
实际上,我可以在同一个单元格中放置两个高度吗?这样我将创建 3 个单元格而不是 5 个...
我很感激任何建议,我经常使用 LaTeX,但我刚开始使用 tikz-cd 包。如果有其他更适合这种图表的包,请告诉我。
先感谢您。
编辑:
我的代码是
\begin{tikzcd}
\makebox[\widthof{$x \mapsto e^{-\pi |x|^{2}}$}]{$\Phi$} & \arrow[r, hook,
"i_{\Phi}"] & \makebox[\widthof{$\varphi \mapsto \int_{\R^{d}}
\varphi(x)e^{-\pi |x|^{2}} dx$}]{$\Phi^{*}$} \\
x \mapsto e^{-\pi |x|^{2}} & & \varphi \mapsto \int_{\R^{d}} \varphi(x)e^{-\pi
|x|^{2}} dx \\
\end{tikzcd}
对我来说,它们有 5 行 3 列:第一行是 phi,第二行是映射,第三行是箭头,第四行是 H,最后是映射。列是 (H, Phi) 组、i 箭头和 (H*, Phi*) 组。
我希望现在清楚了。谢谢。
答案1
您可以使用\underset
,从而将每个角变成一个单元格。
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz-cd}
\newcommand{\mapdesc}[2]{\underset{#2}{#1}}
\begin{document}
\[
\begin{tikzcd}
\mapdesc{\Phi}{x\mapsto e^{-x^2}}
\arrow[r,hook,"i_{\Phi}"]
\arrow[d,hook',"i"'] &
\mapdesc{\Phi^*}{\varphi\mapsto \int\varphi e^{-x^2}}
\\
\mapdesc{H}{x\mapsto e^{-x^2}}
\arrow[r,tail,two heads,"i_{H}"] &
\mapdesc{H^*}{\Phi\mapsto \int\Phi e^{-x^2}}
\arrow[u,hook,swap,"i^*"]
\end{tikzcd}
\]
\end{document}
为什么\mapdesc
不直接\underset
用图表呢?有几个原因。首先,这样做更符合语义;其次,如果你把它改成
\newcommand{\mapdesc}[2]{\underset{\text{$\displaystyle#2$}}{#1}}
输出将是
这样,您可以将有关格式的决定推迟到最后一刻,并且对定义的一次更改将相应地修改每次的使用\mapdesc
。