标签内的换行符 - tikzcd 包

标签内的换行符 - tikzcd 包

我正在使用tikzcd
我想在箭头的标签内使用换行符。我天真地以为

\begin{tikzcd}
  A \arrow[d, "label 1 \\ label 2"] \\
  B
\end{tikzcd}

可以。但它给了我

enter image description here

而是。如何解决这个问题?

答案1

使用\substack

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz-cd}

\begin{document}

\begin{tikzcd}[row sep=large]
  A \arrow[d, "\substack{a \\ a}"] & % good
  A \arrow[d,"a \\ a" align=left] &  % bad
  A \arrow[d,"\shortstack{a\\a}"]    % ugly
\\
  B & B & B
\end{tikzcd}

\end{document}

enter image description here

如果标签是文本,请使用\textinside \substack。代码与之前相同,但使用\substack{\text{a} \\ \text{a}}in 最左边的箭头

enter image description here

答案2

\documentclass{book}
\usepackage{tikz-cd,amsmath}
\begin{document}
    \begin{tikzcd}[row sep=3cm]
        A \arrow[d, "\shortstack{label 1\\label 2}"] \\
        B
    \end{tikzcd}
\end{document}

enter image description here

答案3

您只需要添加align=left(或类似的东西)。

\documentclass{article}
\usepackage{tikz-cd,amsmath}
\begin{document}
\begin{tikzcd}[row sep=3cm]
A \arrow[d,"label1\\ label2"align=left] \\
B
\end{tikzcd}
\end{document}

enter image description here

答案4

摘自指南第 13 页tikz-cd http://ctan.math.washington.edu/tex-archive/graphics/pgf/contrib/tikz-cd/tikz-cd-doc.pdf

enter image description here

我使用矩阵2x1(例如)来获得两个垂直标签。使用该选项,row sep=...cm您可以增加或减少箭头的长度。

enter image description here

\documentclass[a4paper,12pt,oneside]{book}
\usepackage{tikz-cd,amsmath}
\begin{document}
\begin{tikzcd}[row sep=2cm, ampersand replacement=\&]
A \arrow[d, "{\begin{matrix} \text{label1} \\ \text{label2} \end{matrix}}
"] \\
B
\end{tikzcd}
\end{document}

相关内容