Kursivschrift für PDFlaTeX festlegen

Kursivschrift für PDFlaTeX festlegen

Für mein PDFlaTeX-Dokument möchte ich Roboto Slab Light für den Haupttext und Roboto in Überschriften verwenden. Ich habe dabei folgende Probleme:

  1. Wenn ich Roboto Slab Light als Hauptschriftart einstelle, weiß ich nicht, wie ich Roboto nur für Titel einstelle. Ich versuche das mit \sffamily, aber es funktioniert nicht. Was ich bekomme, ist ein Dokument, das vollständig in Roboto Slab Light geschrieben ist (inkl. Titel).
  2. Das Problem bei Roboto Slab Light besteht darin, dass es keine Kursivschrift hat. Wie kann ich eine andere Schriftart (z. B. Roboto) angeben, die mit \textit und \emph{} verwendet werden soll?

Hier ein Beispiel:

\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}

Antwort1

Laden Sie die Schriftdefinitionsdatei explizit, damit Sie später einige Deklarationen hinzufügen können.

Geben Sie für die Abschnittsüberschriften die Roboto-LFFamilie an.

\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}

Bildbeschreibung hier eingeben

Antwort2

Dies erfordert einen Wechsel zu LuaLaTeX und funktioniert möglicherweise nicht in jeder Situation. Es ist jedoch ausreichend mit der ursprünglichen Frage verknüpft:

Mithilfe fontspecder Syntax können Sie eine hybride Schriftfamilie erstellen. Die normale Schriftart kann eine Datei sein, die Fettschrift kann aus einer anderen Familie stammen und die Kursivschrift kann aus einer anderen Familie stammen. Sie richten dies ein, indem Sie die spezifischen Dateinamen anfordern (OpenType bevorzugt, TrueType zweite Wahl). So:

% !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}

Ich konnte es mit dem \titleformat*Befehl allerdings nicht zum Laufen bringen.

Sie verwenden keine Pakete fontencoder inputenc. In einigen Fällen (nicht allen) laden Sie die Schriftarten nicht über \usepackage{font}. Roboto-Text

verwandte Informationen