我似乎无法在一行中同时使用小型大写字母和粗体字体:
\huge\sc\bf Hello
这将生成粗体文本,如果将\sc
放在后面,它将生成小写字母文本但不加粗。它们似乎互相覆盖,那么有什么方法可以同时应用它们吗?
答案1
您的问题需要分为两部分来回答。
\sc
和\bf
(和\it
)已被弃用,因为正如您所注意到的,它们会相互覆盖。使用
\textit{...}
\textbf{...}
\textsc{...}
或者
{\itshape ...}
{\bfseries ...}
{\scshape ...}
反而。
但是,并非所有字体都包含斜体和/或粗体小型大写字母(即使它们包含小型大写字母)。
(此外,斜体和小型大写字母通常默认根本不会组合,因此需\usepackage{slantsc}
要这样做。)
加载T1
字体编码时,您将用 CM-Super 替换默认的 Computer Modern 字体,CM-Super 是一组更大但质量更低的字体,它们看起来大致相同,但包含更多字形。在较旧的 TeX 发行版中,您甚至可能会在输出中看到位图字体。
拉丁现代字体是一个更好的选择(\usepackage{lmodern}
),但不幸的是它们不包含粗体小型大写字母。
答案2
对于后人而言,有一个更简单、更好的选择。只需添加
\usepackage{bold-extra}
以及其他包含的内容。这样您就可以继续使用默认的高质量 Computer Modern 字体来处理普通文本。它的工作原理是动态构建粗体 Computer Modern 小型大写字体并将其包含在内。现在可以{\bfseries\scshape Foo}
按预期工作!
答案3
好的,您需要添加
\usepackage[T1]{fontenc}
和这个更新命令应该可以解决问题
\huge \textbf{\textsc{Hello}}
解释一下,LaTeX 使用花括号{}
来指示格式化命令的范围。因此,如果你输入
\textbf{ ... }
然后大括号之间的所有文本将以粗体格式显示,包括
\textsc{Hello}
结果
小型大写字母粗体
与常规小写字母相比
答案4
在没有粗体字型的字体中,获得粗体字符的一种相当粗糙的方法是反复套印一个略有变化的字符。这是由contour
包裹:
\documentclass{article}
\usepackage{contour}% http://ctan.org/pkg/contour
\setlength{\parindent}{0pt}% Just for this example
\begin{document}
% Default
Hello
% Bold
\textbf{Hello}
% Small-caps
\textsc{Hello}
% Combined
\textbf{\textsc{Hello}}
% Default \contourlength (0.03em)
\contour{black}{\textsc{Hello}}
\contourlength{0.01em}% Smaller radius
\contour{black}{\textsc{Hello}}
\contour*{black}{\textsc{Hello}}% 32 copies (default is 16)
\contour[100]{black}{\textsc{Hello}}% 100 copies
% Just for reference
\contourlength{0.05em}
\contour[5]{red}{\textsc{Hello}}
\end{document}