请考虑下图:
\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}
两种情况下的结果都是: