我想知道为什么文本“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]{...}