创建具有不同单元格大小的 tikz-cd 图

创建具有不同单元格大小的 tikz-cd 图

我正在尝试使用 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

相关内容