这是一个后续问题到一关于 book 类中章节名称的大写。现在我想将 book 类中书籍部分的名称设为大写。
第 1 部分 --> 第 1 部分
我将 ShareLaTeX 与 XeLaTeX 一起使用。
\documentclass{book}
\usepackage{fontspec}
\usepackage[english,greek]{babel}
\setmainfont
[
UprightFont = *,
BoldFont = *Bold,
ItalicFont = *It,
BoldItalicFont = *BoldIt,
Extension = .otf,
Ligatures = TeX,
Mapping = tex-text
]{GFSArtemisia}
\setsansfont[Mapping = tex-text]{GFSArtemisia.otf}
\setmathfont{latinmodern-math.otf}
\setmathfont[range = \varnothing]{Asana-Math.otf}
\setmathfont[range = \int]{latinmodern-math.otf}
\begin{document}
\end{document}
答案1
这应该适用于某些(但不是全部)语言。
\documentclass{book}
\let\oldpartname\partname
\renewcommand{\partname}{\MakeUppercase{\oldpartname}}
\begin{document}
\part{Foo}
\end{document}
这是一个babel
基础设置(针对某些任意语言,例如德语和西班牙语)
\MakeUppercase
对存储的副本进行操作\partname
——\let\oldpartname\partname
生成此副本。
\documentclass{book}
\usepackage[ngerman,spanish]{babel}
\addto\captionsspanish{\let\oldpartname\partname
\renewcommand{\partname}{\MakeUppercase{\oldpartname}}}
\addto\captionsngerman{\let\oldpartname\partname
\renewcommand{\partname}{\MakeUppercase{\oldpartname}}}
\begin{document}
\tableofcontents
\otherlanguage{ngerman}
\part{Foo}
\selectlanguage{spanish}
\part{Foobar}
\end{document}
答案2
这很简单:
\documentclass{book}
\usepackage{fontspec}
\usepackage[english,greek]{babel}
\setmainfont[
Extension = .otf,
UprightFont = *,
BoldFont = *Bold,
ItalicFont = *It,
BoldItalicFont = *BoldIt,
]{GFSArtemisia}
\setsansfont{GFSArtemisia.otf}
\makeatletter
\addto\captionsenglish{%
\protected@edef\partname{\MakeUppercase{\partname}}%
}
\addto\captionsgreek{%
\protected@edef\partname{\MakeUppercase{\partname}}%
}
\makeatother
\begin{document}
\part{Τίτλος}
\selectlanguage{english}
\part{Title}
\end{document}
当扫描\selectlanguage{<language>}
或时,LaTeX 将处理(例如)。在此阶段设置为一些语言相关的字符串。使用技巧\begin{otherlanguage}{<language>}
\captions<language>
\captionsgreek
\partname
\protected@edef\partname{\MakeUppercase{\partname}}
我们告诉 LaTeX 这\partname
是刚刚定义的字符串的大写版本。
注意\begin{document}
执行\selectlanguage{greek}
(因为这是最后选择的语言),所以一切都正确。