我已经设置了一个文档以特定方式显示单词,我还使用了 times 包来设置文档字体,如下所示
\documentclass[a4paper,11pt,openany,oneside]{sphinxmanual}
\usepackage[T1}{fontenc}
\usepackage[english]{babel}
\usepackage{times}
\usepackage{color}
\definecolor{myred}{RGB}{165,0,33}
\DeclareRobustCommand\accuroam{%
\usefont{OT1}{cmr}{m}{n}Accu%
\usefont{OT1}{cmss}{m}{n}\textcolor{myred}{ROAM}
}%
\begin{document}
...
\end{document}
一切似乎都有效,直到遇到命令\accuroam
。然后它将后面的文本更改为 cmss 正常粗细(与 \accuroam 中的 ROAM 相同)。
我该如何修复此问题,以便只改变单词而不改变其余文本。
注意:我目前使用 pdflatex 作为构建器,还不能使用 xelatex。
任何帮助我都深表感谢。
答案1
我不确定您是否想切换到 Computer Modern,特别是当主文档字体是 Times 时。
问题是,正如已经说过的,这\usefont...
告诉 TeX 从那时起使用所选的字体(尊重分组)。
我的建议是
\DeclareRobustCommand\accuroam{%
\textnormal{Accu\color{myred}\sffamily ROAM}%
}
选择\textnormal
主文档字体(当前大小);在其中您可以更改颜色和字体系列;在结束括号处\sffamily
将结束其范围。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{mathptmx}
\usepackage{color}
\definecolor{myred}{RGB}{165,0,33}
\DeclareRobustCommand\accuroam{%
\textnormal{Accu\color{myred}\sffamily ROAM}%
}
\begin{document}
We describe \accuroam{} which is a very bright idea.
\end{document}
答案2
字体更改命令是转变命令。也就是说,它们将应用于所有后续内容,直到遇到另一个开关或组结束。
通过将每个特殊字体放在一个包含其要设置样式的文本的组中来纠正此问题。我还在%
包含红色文本的行后面添加了一个尾随行,以防止输出中出现虚假空格:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{mathptmx} % `times' is obsolete
\usepackage{color}
\definecolor{myred}{RGB}{165,0,33}
\DeclareRobustCommand\accuroam{%
{\usefont{OT1}{cmr}{m}{n}Accu}%
{\usefont{OT1}{cmss}{m}{n}\textcolor{myred}{ROAM}}%
}%
\begin{document}
Test\dots \accuroam{}\dots Test.
\end{document}
答案3
我认为没有理由切换回 OT1 编码,因为无论如何你都在使用 T1:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{mathptmx}% `times' is obsolete
\usepackage[scaled=.90]{helvet}
\usepackage{courier}
\usepackage{color}
\definecolor{myred}{RGB}{165,0,33}
\DeclareRobustCommand\accuroam{%
{%
\fontencoding{T1}%
\fontfamily{cmr}%
\fontseries{m}%
\fontshape{n}%
\selectfont Accu%
\fontfamily{cmss}%
\selectfont\textcolor{myred}{ROAM}%
}%
}%
\begin{document}
Test\dots \accuroam{}\dots Test.
\end{document}
我使用了较长的字体规范命令(而不是\usefont...
),只是为了清楚地说明发生了什么。请注意,第二个开关只需要指定系列,因为第一个开关已经确保编码、形状和系列正确。