如何将零件环境使用的字体更改为 Opentype 字体?
(在下面的 MWE 中,我使用了 TrueType 字体,但方法应该相同)。
看来章节和节标题的标准 titlesec 方法不起作用。
引擎是LuaLaTeX。
M(n-)WE:
\documentclass[11pt, a4paper]{book}
\usepackage[raggedright]{titlesec}
\usepackage{fontspec}
\newfontfamily\partfont{Verdana.ttf}
\titleformat*{\part}{\partfont}
\newfontfamily\chapterfont{Verdana.ttf}
\titleformat*{\chapter}{\chapterfont}
\begin{document}
\part{Hello world.}
\chapter{Hello again, world.}
\end{document}
答案1
\part
无法使用“简单”模式更改命令。编译代码时会收到此错误:
! Package titlesec Error: Not allowed in `easy' settings.
See the titlesec package documentation for explanation.
Type H <return> for immediate help.
...
l.7 \titleformat*{\part}{\partfont}
? h % < I typed h<return> here
The sectiong command you are trying to redefine
is not handled by the starred variant (eg, \part)
?
您必须使用\titleformat
宏的一般形式(IE不带*
) 并复制\part
书籍类中的命令。使用这个\titleformat
:
\titleformat{\part}
{\filcenter\huge\bfseries} % Format of the section header
{\partname\nobreakspace\thepart} % Format of the “Part X” text
{0pt} % Horizontal space (none, we want vertical)
{\\\vspace{20pt}\Huge} % Commands before the title part (vertical space of 20 pt and increase in font size
该\chapter
命令允许您使用\titleformat*
,以便您的代码可以正常工作。
现在你只需要添加自定义字体。我使用了 TeX Gyre Termes,因为我没有Verdana.ttf
:
\documentclass[11pt, a4paper]{book}
\usepackage[raggedright]{titlesec}
\usepackage{fontspec}
\newfontfamily\partfont{Tex Gyre Termes}
\titleformat{\part}
{\filcenter\huge\bfseries\partfont}
{\partname\nobreakspace\thepart}
{0pt}
{\\\vspace{20pt}\Huge}
\titleformat{\chapter}[display]
{\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter}{20pt}{\Huge}
\newfontfamily\chapterfont{Tex Gyre Termes}
\titleformat*{\chapter}{\normalfont\huge\bfseries\chapterfont}
\begin{document}
\part{Hello world.}
\chapter{Hello again, world.}
\end{document}
部分标题:
章节标题: