我已經設定了一個文檔以特定方式顯示單詞,我還使用 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...
)只是為了弄清楚發生了什麼。請注意,第二個開關僅需要係列規範,因為第一個開關已經確保編碼、形狀和系列正確。