我有一个由形式为 的图形包直接创建的 TikZ/PGF 文件\begin{tikzpicture}{dimensions} ... \end{tikzpicture}
。该文件用于\pgftext[...]{\selectfont{Some text here or \boldmath$math$}}
呈现文本。
默认情况下,当我将文件包含在文档中时,文本将以文档的默认字体 (Latin Modern Serif) 排版。但是,我希望所有图形/图表都以无衬线字体 (Latin Modern Sans) 排版。我该怎么做?
理想情况下,我希望在不必直接编辑文件的情况下完成此操作(因此只需更改我包含它的 LaTeX)。
更新:最小示例
\begin{tikzpicture}
\pgftext{\selectfont{Hello \boldmath$W \times orld$}}
\end{tikzpicture}
任何可以正确将该段文本设置为无衬线字体的方法都应该可以解决问题。
答案1
这里有两个问题。一个是将默认字体设为无衬线字体,以便\selectfont
选择它。另一个是让数学使用粗体无衬线字母。
首先,\renewcommand{\familydefault}{\sfdefault}
作品。参见“如何更改 LaTeX 中的文档字体?”来自 StackOverflow。
对于第二种情况,任何新设置的数学字体版本都将被取消选择\boldmath
。事实上,\boldmath
扩展为\mathversion{bold}
。所以我们需要覆盖bold
数学版本的字体选择以选择粗体、无衬线字母。这是通过以下方式实现的\SetSymbolFont{letters}{bold}{OML}{cmbr}{bx}{it}
(没有 Latern 现代数学字母表;电脑现代明亮是建议的替代方案)。
这是完整的工作示例。您只需要在前言中添加两行,而无需在自动生成的部分中添加任何内容。
\documentclass{article}
\usepackage{tikz}
\usepackage{lmodern}
\SetSymbolFont{letters}{bold}{OML}{cmbr}{bx}{it}
\renewcommand{\familydefault}{\sfdefault}
\begin{document}
\begin{tikzpicture}
\pgftext{\selectfont{Hello \boldmath$W \times orld$}}
\end{tikzpicture}
\end{document}
答案2
更多细节可能会很有帮助。要为您的图片选择某种字体样式,您只需为环境提供适当的选项即可tikzpicture
。
\begin{tikzpicture}[font=\sffamily]
% picture contents
\end{tikzpicture}
对于全局设置,您可以\tikzstyle{every picture}+=[font=\sffamily]
在序言中尝试。