文本变体与字体切换 - bfseries

文本变体与字体切换 - bfseries

我偶然发现了以下示例

\documentclass[a4paper,11pt]{article}
\usepackage[english, ngerman]{babel}
\begin{document}
Quick test - not yet bold

"\textbf{Bold text for test - part 2} 

Continue -without bold???

"{\bfseries Bold text for test} 

Now again - without bold???

\end{document}

能否简单解释一下为什么第一个语句 ( \textbf) 的粗体文本正确终止而第二个语句 ( \bfseries) 失败?我发现这与引用和语言设置有关。但我不知道它具体为什么会失败。

在此处输入图片描述

答案1

德语模块 forbabel变成"了简写。此简写被实现为一个单参数宏,因为需要知道接下来会发生什么并决定做什么:例如"a将产生“ä”,"s产生“ß”并"|禁用该位置的连字符。

对于"{...},括号内的所有内容都是参数,这显然不符合任何预定义的简写,因此 LaTeX 将提供一个标准双引号(准确地说是"当前字体中 ASCII 位置的字符)和作为参数抓取的标记,删除括号(这是一个低级 TeX 功能)。

因此,括号被解释为参数的分隔符,而不是组分隔符。由于它们被删除,粗体字样将永远存在。

如果你想要德国风格的引号,请使用

,,text``

或者

„text“

答案2

在了解了幕后发生的事情后,我首先想到的是

"\relax{\bfseries  Bold text for test} 

是一个很好的方法。由于我需要在不同场景中采用这种方法,我最终找到了

"\bgroup{}\bfseries Bold text for test\egroup{}"

这看起来很相似,但有利于解决我的其他问题也一样。

相关内容