书籍类别中的大写部分名称

书籍类别中的大写部分名称

这是一个后续问题到一关于 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}(因为这是最后选择的语言),所以一切都正确。

在此处输入图片描述

在此处输入图片描述

相关内容