描述环境允许\item [<heading>] text
使用可选标题,例如。默认情况下,这会将文本<heading>
加粗。
我遇到的问题是,这种标题文本样式正在覆盖我的\textsc{}
。
为什么描述环境不尊重我的\textsc{}
?
这是一张图片:
还有一个 MWE:
\documentclass[12pt]{book}
\begin{document}
This is normal text. \textsc{This is in small caps.}
\begin{description}
\item [\textsc{Why not small caps?}] Why isn't the text at left in small caps?
\end{description}
\end{document}
答案1
您可以使用我的字体伪装成粗体小写字母\fauxsc{}
,最早描述于使用 XeTeX/fontspec 伪造小型大写字母?. 有三个参数用于调整 fauxsc 字体
\def\Hscale{.85}\def\Vscale{.72}\def\Cscale{1.10}
它定义了 lc 字母上的水平刻度、 lc 字母上的垂直刻度以及 uc 字母上的水平刻度。
\documentclass[12pt]{book}
\usepackage{graphicx}
\newcommand\fauxsc[1]{\fauxschelper#1 \relax\relax}
\def\fauxschelper#1 #2\relax{%
\fauxschelphelp#1\relax\relax%
\if\relax#2\relax\else\ \fauxschelper#2\relax\fi%
}
\def\Hscale{.85}\def\Vscale{.72}\def\Cscale{1.10}
\def\fauxschelphelp#1#2\relax{%
\ifnum`#1>``\ifnum`#1<`\{\scalebox{\Hscale}[\Vscale]{\uppercase{#1}}\else%
\scalebox{\Cscale}[1]{#1}\fi\else\scalebox{\Cscale}[1]{#1}\fi%
\ifx\relax#2\relax\else\fauxschelphelp#2\relax\fi}
\begin{document}
This is normal text. \textsc{This is in small caps.}
\begin{description}
\item [\fauxsc{Why not small caps?}] Why isn't the text at left in small caps?
\end{description}
\fauxsc{Why not small caps?} FAUX
\textsc{Why not small caps?} REAL
\end{document}
答案2
如果您想要将标签更改为description
使用小型大写字母,最简单的方法是使用enumitem
:
\documentclass[12pt]{book}
\usepackage{enumitem}
\setlist[description]{font=\normalfont\scshape}
\begin{document}
This is normal text. \textsc{This is in small caps.}
\begin{description}
\item [It's small caps] as you clearly see
\end{description}
\end{document}
你无法获得小写字母的原因是标准字体没有粗体小写字母,因此使用替代字体。\item[\textsc{x}]
只需使用添加 \scshape
默认字体为粗体。您可以这样做
\item[\normalfont\textsc{x}]
但最好的方法是更改默认字体。