我正在尝试使用“xypic”包创建一个树结构。一切都很好,除了当我在里面写一些东西时
*modifier{text}
不使用 xypic 中用于标记的默认字体。而是使用文档的默认字体。如何更改此设置?
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lucidabr}
\usepackage{xypic}
\begin{document}
\xymatrix{
& Start \ar[dl] \ar[d] \ar[dr] & &\\
Font & is & different \ar[dl] \ar[d] \ar[dr]\\
& E \ar[dl] \ar[dr] & F & G\\
G \ar[dr] & & {}\save[]+<1.5cm,-0.7cm>*\txt<10pc>{%
This is a very long text here. How to change this ?} \restore\\
& I & &\\
}
\end{document}
答案1
只要告诉 LaTeX 你想要什么字体:
\documentclass{article}
\usepackage[all,cmtip]{xy}
\begin{document}
\xymatrix{
& \textit{Start} \ar[dl] \ar[d] \ar[dr] & &\\
\textit{Font} & \textit{is} & \textit{different} \ar[dl] \ar[d] \ar[dr]\\
& E \ar[dl] \ar[dr] & F & G\\
G \ar[dr] & & {}\save[]+<1.5cm,-0.7cm>*\txt<10pc>{%
\normalfont\sffamily
This is a very long text here. How to change this?} \restore\\
& I & &\\
}
\end{document}
我使用了\sffamily
,但它可以是任何一组字体更改声明。确保\normalfont
处于“初始状态”。
还要注意\textit{...}
节点中的文本条目,以确保字体正确。您还可以使用类似
\textnormal{<font declarations>Start}
如果您使用 Lucida 字体,那么这可能就是您想要的:
\documentclass{article}
\usepackage{lucimatx}
\usepackage[all,cmtip]{xy}
\newcommand{\xtextit}[1]{\textnormal{\itshape #1}}
\newcommand{\xitshape}{\normalfont\itshape}
\begin{document}
\xymatrix{
& \xtextit{Start} \ar[dl] \ar[d] \ar[dr] & &\\
\xtextit{Font} & \xtextit{is} & \xtextit{different} \ar[dl] \ar[d] \ar[dr]\\
& E \ar[dl] \ar[dr] & F & G\\
G \ar[dr] & & {}\save[]+<1.5cm,-0.7cm>*\txt<10pc>{%
\linespread{1.1}\xitshape
This is a very long text here. How to change this?} \restore\\
& I & &\\
}
\end{document}
命令\xtextit
和\xitshape
只是为了确保所选字体被选中,与上下文无关。可能\textit
和\itshape
就足够了。\linespread{1.1}
如果您加载缩小的 Lucida 字体,则可能不需要。(我没有lucidabr.sty
,它很旧;我只拥有 Lucida 字体的最后一个 Type1 版本,它使用“lucimatx.sty”。)