交换图中的文本结束行

交换图中的文本结束行

请考虑下图:

\begin{tikzcd}
  \text{This is a sentence} \arrow[r, "\phi"] & x
\end{tikzcd}

我希望“这是”多于“一个句子”。我尝试使用\\来表示换行,但这只会导致错误。

答案1

你想使用tabular。如果是一次性的,那么

\begin{tikzcd}
  \begin{tabular}{@{}c@{}}This is \\ a sentence\end{tabular} \arrow[r, "\phi"] & x
\end{tikzcd}

就是你所需要的。对于其中几个,你可能需要个人命令,例如

\newcommand{\splitentry}[2][c]{%
  \begin{tabular}[#1]{@{}c@{}}#2\end{tabular}%
}

你的代码将变成

\begin{tikzcd}
  \splitentry{This is \\ a sentence} \arrow[r, "\phi"] & x
\end{tikzcd}

我添加了一个垂直对齐的可选参数(默认c)。尝试使用

\splitentry[t]{This is \\ a sentence}
\splitentry[b]{This is \\ a sentence}

看看有什么不同。

答案2

您还可以使用\makecell

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

\begin{document}
\[
\begin{tikzcd}
  \text{\makecell{This is\\a sentence}} \arrow[r, "\phi"] & x
\end{tikzcd}
\]
\end{document}

当然,你可以创建一个命令:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz-cd}
\usepackage{makecell}
\newcommand{\mycell}[1]{\text{\makecell{#1}}}

\begin{document}
\[
\begin{tikzcd}
  \mycell{This is\\ a sentence} \arrow[r, "\phi"] & x
\end{tikzcd}
\]
\end{document}

两种情况下的结果都是:

在此处输入图片描述

相关内容