为什么 \xymatrix 的 \txt 元素向下移动?

为什么 \xymatrix 的 \txt 元素向下移动?

我想知道为什么文本“A”向下\xymatrix{A \ar[r] & \txt{A}}移动了。我想要的只是在xymatrix元素内部有换行符的文本元素。我以为\txt是为了这个,但定位对我来说似乎很奇怪。

编辑: 感谢您的回答。我找到了以下解决方案:只需将 放在那里,*\txt{}而不是\txt{}。实际上,这样文本周围就没有空格了,所以*+\txt{}看起来更好。我只是想知道这是否是标准方法。在我看来,应该有一种标准方法来做到这一点,因为它看起来像是具有文本多行条目的标准要求,但您的两个答案看起来都像是变通方法。

答案1

里面文字的定位\txt真的很奇怪...

解决方法是,在序言中添加以下几行

\makeatletter
\xydef@\txt@ii#1{\vbox{\vspace*{-7pt}%
 \let\\=\cr
 \tabskip=\z@skip \halign{\relax\hfil\txtline@@{##}\hfil\cr\leavevmode#1\crcr}}}
\makeatother

梅威瑟:

\documentclass{article}
\usepackage[all]{xy}

\makeatletter
\xydef@\txt@ii#1{\vbox{\vspace*{-7pt}%
 \let\\=\cr
 \tabskip=\z@skip \halign{\relax\hfil\txtline@@{##}\hfil\cr\leavevmode#1\crcr}}}
\makeatother

\begin{document}

\xymatrix{A \ar[r] & \txt{A}}

\bigskip

\xymatrix{A \ar[r] & \txt{A\\B}}

\bigskip

\xymatrix{A \ar[r] & \txt{A\\B\\C}}

\end{document} 

输出:

在此处输入图片描述

答案2

默认情况下,它设置为数学模式并\txt使用文本模式。如果您想要直立A使用:

\documentclass{article}
\usepackage[all]{xy}

\begin{document}
\xymatrix{A \ar[r] & \mathrm{A}}

\end{document}

如果你想要真正的文字,那么使用

\documentclass{article}
\usepackage[all]{xy}
\newcommand\TXT[2][t]{\tabular[#1]{l}#2\endtabular}

\begin{document}
\xymatrix{A \ar[r] & \TXT{name of \\ class of spaces}}

\xymatrix{A \ar[r] & \TXT[b]{name of \\ class of spaces}}

\xymatrix{A \ar[r] & \TXT[c]{name of \\ class of spaces}}
\end{document}

在此处输入图片描述

也可以覆盖现有的\txt

\renewcommand\txt[2][t]{...}

相关内容