为 PDFlaTeX 指定斜体字体

为 PDFlaTeX 指定斜体字体

对于我的 PDFlaTeX 文档,我想在正文中使用 roboto slab light,在标题中使用 roboto。我遇到了以下问题:

  1. 如果我将 roboto slab light 设置为主要字体,那么我不知道如何将 roboto 设置为仅用于标题。我尝试使用 \sffamily 来做到这一点,但它不起作用。我得到的是一份完全用 roboto slab light 编写的文档(包括标题)
  2. roboto slab light 没有斜体 - 如何指定与 \textit 和 \emph{} 一起使用的不同字体(例如 roboto)?

下面是一个例子:

\documentclass[a4paper, 12pt, english]{report}
\usepackage[rm, light]{roboto} %this makes roboto slab light the main document font
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{titling}
\titleformat*{\section}{\sffamily\Large} %with sffamily I try to set roboto regular as section title font

\begin{document}
\section{I need to be in roboto font}
I am normal text and need to be in roboto slab light font.
\textit{I am in italics and need a different font, e.g. roboto}
\end{document}

答案1

明确加载字体定义文件,以便您之后能够添加一些声明。

对于章节标题,请指定Roboto-LF系列。

\documentclass{report}
\usepackage[T1]{fontenc}

\usepackage[rm,light]{roboto}
\usepackage{titlesec}

\makeatletter
\input{\encodingdefault RobotoSlab-TLF.fd}
\DeclareFontShape{\encodingdefault}{\familydefault}{l}{it}{
 <->ssub*Roboto-TLF/l/it
}{}
\makeatother

\titleformat*{\section}{\fontfamily{Roboto-LF}\fontseries{m}\Large}

\begin{document}

\section{I need to be in roboto font}


I am normal text and need to be in roboto slab light font.
\textit{I am in italics and need a different font, e.g. roboto}
\end{document}

在此处输入图片描述

答案2

这需要切换到 LuaLaTeX,并且可能不适用于每种情况。但这与原始问题足够相关:

使用fontspec语法,您可以创建混合字体系列。常规字体可以是一个文件,粗体可以来自不同的系列,斜体可以来自不同的系列。您可以通过请求特定的文件名来设置它(首选 Open Type,次选 TrueType)。如下所示:

% !TeX program = LuaLaTeX
% !TeX encoding = UTF-8
\documentclass{report}
\usepackage{fontspec}
% Note that \usepackage{roboto} is not used here.
% But you must the package installed, at least its TrueType fonts.
\setmainfont[ %
  ItalicFont=Roboto-LightItalic.ttf, % or whatever
  BoldFont=Roboto-Regular.ttf, % uses regular in place of bold
]{RobotoSlab-Light.ttf} % main font
%
\begin{document}
\section{\textbf{I need to be in roboto font}}
I am normal text and need to be in roboto slab light font.
\textit{I am in italics and need a different font, e.g. roboto}
\end{document}

但是,我无法让它使用该\titleformat*命令工作。

您不使用包fontencinputenc。在某些情况下(并非全部),您不会通过加载字体\usepackage{font}机器人文本

相关内容