描述标签中使用小型大写字母吗?

描述标签中使用小型大写字母吗?

描述环境允许\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}]

但最好的方法是更改​​默认字体。

相关内容