Укажите курсивный шрифт для PDFlaTeX

Укажите курсивный шрифт для PDFlaTeX

Для моего документа PDFlaTeX я хотел бы использовать roboto slab light для основного текста и roboto в заголовках. У меня возникли следующие проблемы:

  1. если я устанавливаю roboto slab light как основной шрифт, то я не знаю, как установить roboto только для заголовков. Я пытаюсь сделать это с \sffamily, но это не работает. Я получаю документ, полностью написанный roboto slab light (включая заголовки)
  2. Недостатком roboto slab является то, что в нем нет курсива. Как указать другой шрифт (например, roboto) для использования с \textit и \emph{}?

Вот пример:

\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*командой.

Вы не используете пакеты fontencили inputenc. В некоторых случаях (не во всех) вы не загружаете шрифты через \usepackage{font}. робото текст

Связанный контент