我正在使用\renewcommand{\familydefault}{\sfdefault}
无衬线字体,所以我的整个文档都是无衬线字体,但是在格式方面我得到了奇怪的结果。
我是一个相当稀少的 LaTeX 用户,但过去我总是使用\textbf{Super Important Text!}
粗体文本而不是我被告知已经过时的文本;{\bf Important Junk}
(这是我首先学到的)。
\sfdefault
虽然我在序言中写了那一行,\textbf{}
但 完全忽略了 而{\bf }
不是。我想如果答案是我必须使用 ,那也不会是世界末日{\bf }
,但我假设你不应该这样做是有原因的。
我能找到的最接近的解决方案是LaTeX 中的粗体无衬线字体,但它处理的是章节名称而不是文本格式。
编辑:抱歉,我一点一点地重建了文档,结果发现\usepackage{charter}
是它导致了这个问题。令人困惑的是如果我删除了\renewcommand{\familydefault}{\sfdefault}
,然后恢复了正常的粗体功能。事实证明\textbf
,如果这两行都在序言中,它就不会起作用。虽然我很好奇为什么会这样,但我charter
目前从事的项目不需要它,所以从实际目的来看,这个问题已经解决了。
\documentclass{article}
\usepackage{charter} % If either of these two are removed
\renewcommand{\familydefault}{\sfdefault} % There is no issue
\begin{document}
\textbf{Not bold.}
{\bf Quite Bold.}
Also Not Bold.
\end{document}
不粗体。相当大胆。也不粗体。
答案1
问题的根源在于命名问题:Computer Modern 的粗体系列实际上是粗体/扩展,代码为 bx,而大多数其他字体都有普通粗体,代码为 b。您的日志文件应该会告诉您类似以下内容:
LaTeX Font Warning: Font shape `OT1/cmss/b/n' undefined
(Font) using `OT1/cmss/m/n' instead on input line 6.
翻译成可读的意思就是:“我没有 Computer Modern Sans in Bold Upright,所以我改用 Computer Modern Sans in Medium Upright”。 (charter
将粗体重新定义为粗体,而不是粗体扩展,以便其粗体可以正常工作。)
最简单的修复方法可能是使用,\usepackage{lmodern,charter}
因为lmodern
虽然从视觉上看与默认的 Computer Modern 字体非常相似,但其无衬线字体却具有 b-not-bx-bold。
答案2
提供一份完整的小文档来说明问题总是有帮助的。如果我尝试:
\documentclass{article}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{array}
\begin{document}
\showoutput
aaa \textbf{bbb} {\bf ccc}
\end{document}
然后日志(和 pdf 结果)显示 bbb 和 ccc 都是粗体无衬线字体,使用相同的字体:
....\OT1/cmss/m/n/10 a
....\OT1/cmss/m/n/10 a
....\OT1/cmss/m/n/10 a
....\kern 0.0
....\glue 3.33333 plus 1.66666 minus 1.11111
....\OT1/cmss/bx/n/10 b
....\OT1/cmss/bx/n/10 b
....\OT1/cmss/bx/n/10 b
....\kern 0.0
....\glue 3.33333 plus 1.66666 minus 1.11111
....\OT1/cmss/bx/n/10 c
....\OT1/cmss/bx/n/10 c
....\OT1/cmss/bx/n/10 c