更改 xypic 中 *modifier{text} 内的字体样式

更改 xypic 中 *modifier{text} 内的字体样式

我正在尝试使用“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”。)

在此处输入图片描述

相关内容