系统信息:

系统信息:

我遇到了一些缺少字体形状的问题。MWE:

\documentclass{article}

\usepackage[default]{lato}
\usepackage[T1]{fontenc}

\begin{document}

\section{Lato font}

\begin{itemize}
\item \textbackslash{}textsc \textsc{No Small Caps!}

\item \textbackslash{}emph \emph{works as expected}

\item \textbackslash{}itshape\textbackslash{}scshape
  {\itshape\scshape Normal font}

\item \textbackslash{}emph\{\textbackslash{}textsc{}\{\}\}
  \emph{\textsc{Also Generates Normal Font}}

\end{itemize}

\end{document}

得出的结果为:

在此处输入图片描述

使用默认字体会稍微好一些:

\documentclass{article}

\begin{document}

\section{Default font}

\begin{itemize}
\item \textbackslash{}textsc \textsc{Produces Small Caps}

\item \textbackslash{}emph \emph{works as expected}

\item \textbackslash{}itshape\textbackslash{}scshape
  {\itshape\scshape Generates Small Caps, No Italics}

\item \textbackslash{}emph\{\textbackslash{}textsc{}\{\}\}
  \emph{\textsc{Also Generates Small Caps, No Italics}}

\end{itemize}

\end{document}

在此处输入图片描述

几周前,我用相同样式的文件编译了一个文档,该文档可以使用 Lato 字体,并且可以毫无问题地组合斜体/小型大写字母:

在此处输入图片描述

如何才能让我的字体再次起作用?

系统信息:

  • Debian Linux(测试)
  • texlive 软件包 2017.20171128-1_all
  • texlive-fonts-extra 2017.20171128-1_all.deb
  • latex——版本

pdfTeX 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian)
kpathsea 版本 6.2.3
版权所有 2017 Han The Thanh (pdfTeX) 等。
使用 libpng 1.6.32 编译;使用 libpng 1.6.34
使用 zlib 1.2.8 编译;使用 zlib 1.2.8
使用 poppler 版本 0.57.0 编译

答案1

Lato 不再提供小写字母了。手册中

4.1.2 小型大写字母

由于 Lato 字体系列尚未提供“真正的”小型大写字母,因此该lato软件包的早期版本提供了伪造的小型大写字母(通过缩小大写字母),效果非常差。此外,没有方便的方法使用 XeTeX 或 LuaTeX 引擎和原生 OpenType 字体生成伪造的小型大写字母。

出于这些原因,从软件包 3.0 版开始,不再提供伪造的小型大写字母lato。无论如何,LaTeX 应该会自动用正常形状替换缺失的小型大写字母形状。

答案2

如果您加载同时包含小型大写字母和斜体小型大写字母的字体,它就会起作用。

例如,

\documentclass{article}
\usepackage{cfr-lm}
\begin{document}

\section{Latin Modern Roman}

\begin{itemize}
\item \textbackslash{}textsc \textsc{Produces Small Caps}

\item \textbackslash{}emph \emph{works as expected}

\item \textbackslash{}itshape\textbackslash{}scshape
  {\itshape\scshape Generates Italic Small Caps}

\item \textbackslash{}emph\{\textbackslash{}textsc{}\{\}\}
  \emph{\textsc{Also Generates Italic Small Caps}}

\end{itemize}

\end{document}

小型大写字母、斜体和斜体小型大写字母

至少,如果支持包适当地“扩展”NFSS,它就可以工作。lmodern例如,即使cfr-lmlmodern使用相同的字体,上述方法也无法与一起使用。

\documentclass{article}
\usepackage{lmodern}
\begin{document}

\section{Latin Modern Roman}

\begin{itemize}
\item \textbackslash{}textsc \textsc{Produces Small Caps}

\item \textbackslash{}emph \emph{works as expected}

\item \textbackslash{}itshape\textbackslash{}scshape
  {\itshape\scshape Generates Small Caps, No Italics}

\item \textbackslash{}emph\{\textbackslash{}textsc{}\{\}\}
  \emph{\textsc{Also Generates Small Caps, No Italics}}

\end{itemize}

\end{document}

无斜体小写字母

斜体小写字母缺失,因为 NFSS 不支持它们,并且lmodern将其对拉丁现代字体的支持限制在 NFSS 支持的字体尺寸范围内。这里的关键问题是小写字母和斜体都被编码为“字体形状”,因此在 NFSS 提供的框架内,它们无法组合在一起,除非使用一些技巧。

相关内容