我正在使用该类memoir
,并且正在用法语和希腊语编写文本(只有一些希腊语单词)。我在网上找到了一些片段,并设法使用命令运行了一些东西\textgreek{...}
。问题是现在我的书中各个部分的目录中没有罗马数字。以下是演示该问题的 MWE。
\documentclass[10pt]{memoir}
\usepackage{lipsum}
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage{polyglossia}
\usepackage{hyperref}
\setstocksize{190mm}{130mm}
\settrimmedsize{190mm}{130mm}{*}
\setlrmarginsandblock{20mm}{15mm}{*}
\setulmarginsandblock{20mm}{20mm}{*}
\checkandfixthelayout
\pretitle{\begin{center}\Huge\bfseries}
\title{Title}
\posttitle{\par\vskip1em{\normalfont\LARGE\scshape L'évolution\par\vfill}\end{center}}
\author{Name FamilyName}
\predate{\vfill\begin{center}\large}
\date{22 juin 2017}
% simple headers: only page number
\pagestyle{simple}
\setmainlanguage{french}
\setotherlanguage{greek}
\newfontfamily{\greekfont}{GFSDidot}[
Extension=.otf,
UprightFont=*,
ItalicFont=*Italic,
BoldFont=*Bold,
BoldItalicFont=*BoldItalic,
Scale=MatchLowercase,
]
\linespread{1.2}
\makeatletter
\@addtoreset{chapter}{part}
\makeatother
\begin{document}
\frontmatter
\begin{titlingpage}
\maketitle
\end{titlingpage}
\tableofcontents
\cleardoublepage
\chapter{Introduction}
\lipsum[1-3]
\mainmatter
\part{blah}
\chapter{blah blah}
Something in Greek: \textgreek{αττικόν}
\lipsum[1-3]
\chapter{blah}
\lipsum[1-3]
\part{blah}
\chapter{qwerty}
\lipsum[1-3]
\chapter{azerty}
\lipsum[1-3]
\end{document}
我怎么解决这个问题?
答案1
罪魁祸首是\setmainlanguage{french}
的法语语言定义文件polyglossia
,即gloss-french.ldf
,其中包含宏
\def\captionsfrench{%
\def\refname{Références}%
\def\abstractname{Résumé}%
\def\bibname{Bibliographie}%
\def\prefacename{Préface}%
\def\chaptername{Chapitre}%
\def\appendixname{Annexe}%
\def\contentsname{Table des matières}%
\def\listfigurename{Table des figures}%
\def\listtablename{Liste des tableaux}%
\def\indexname{Index}%
\def\figurename{\textsc{Fig.}}%
\def\tablename{\textsc{Tab.}}%
\def\@Fpt{\ifcase\value{part}\or Première\or Deuxième\or
Troisième\or Quatrième\or Cinquième\or Sixième\or
Septième\or Huitième\or Neuvième\or Dixième\or Onzième\or
Douzième\or Treizième\or Quatorzième\or Quinzième\or
Seizième\or Dix-septième\or Dix-huitième\or Dix-neuvième\or
Vingtième\fi\space}%
\def\thepart{}%%%%%%%%%%%%%%%%%
\def\partname{\protect\@Fpt partie}%
\def\pagename{page}%
\def\seename{\emph{voir}}%
\def\alsoname{\emph{voir aussi}}%
\def\enclname{P.~J. }%
\def\ccname{Copie à }%
\def\headtoname{}%
\def\proofname{Démonstration}%
}
其中\thepart
定义为空,即\Roman{part}
或的通常定义\@Roman \c@part
不再使用。
可以通过以下方式绕过
\AtBeginDocument{%
\renewcommand{\thepart}{\Roman{part}}
}
或者
\makeatletter
\AtBeginDocument{%
\renewcommand{\thepart}{\@Roman\c@part}
}
\makeatother
后\setmainlanguage{french}
以便允许设置后进行重新定义polyglossia
。
\documentclass[10pt]{memoir}
\usepackage{lipsum}
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\usepackage{polyglossia}
\setstocksize{190mm}{130mm}
\settrimmedsize{190mm}{130mm}{*}
\setlrmarginsandblock{20mm}{15mm}{*}
\setulmarginsandblock{20mm}{20mm}{*}
\checkandfixthelayout
\pretitle{\begin{center}\Huge\bfseries}
\title{Title}
\posttitle{\par\vskip1em{\normalfont\LARGE\scshape L'évolution\par\vfill}\end{center}}
\author{Name FamilyName}
\predate{\vfill\begin{center}\large}
\date{22 juin 2017}
% simple headers: only page number
\pagestyle{simple}
\setmainlanguage{french}
\setotherlanguage{greek}
\newfontfamily{\greekfont}{GFSDidot}[
Extension=.otf,
UprightFont=*,
ItalicFont=*Italic,
BoldFont=*Bold,
BoldItalicFont=*BoldItalic,
Scale=MatchLowercase,
]
\linespread{1.2}
\makeatletter
\@addtoreset{chapter}{part}
\AtBeginDocument{%
\renewcommand{\thepart}{\@Roman\c@part}
}
\makeatother
\begin{document}
\frontmatter
\begin{titlingpage}
\maketitle
\end{titlingpage}
\tableofcontents
\cleardoublepage
\chapter{Introduction}
\lipsum[1-3]
\mainmatter
\part{blah}
\chapter{blah blah}
Something in Greek: \textgreek{αττικόν}
\lipsum[1-3]
\chapter{blah}
\lipsum[1-3]
\part{blah}
\chapter{qwerty}
\lipsum[1-3]
\chapter{azerty}
\lipsum[1-3]
\end{document}
答案2
您应该删除\def\thepart{}
并\captionsfrench
重新定义\printpartnum
以便不打印任何内容和删除(不再打印的)数字前的空格。
\documentclass[10pt]{memoir}
\usepackage{lipsum}
\usepackage{polyglossia}
\usepackage{hyperref}
\setstocksize{190mm}{130mm}
\settrimmedsize{190mm}{130mm}{*}
\setlrmarginsandblock{20mm}{15mm}{*}
\setulmarginsandblock{20mm}{20mm}{*}
\checkandfixthelayout
\pretitle{\begin{center}\Huge\bfseries}
\title{Title}
\posttitle{\par\vskip1em{\normalfont\LARGE\scshape L'évolution\par\vfill}\end{center}}
\author{Name FamilyName}
\predate{\vfill\begin{center}\large}
\date{22 juin 2017}
% simple headers: only page number
\pagestyle{simple}
\setmainlanguage{french}
\setotherlanguage{greek}
\newfontfamily{\greekfont}{GFSDidot}[
Extension=.otf,
UprightFont=*,
ItalicFont=*Italic,
BoldFont=*Bold,
BoldItalicFont=*BoldItalic,
Scale=MatchLowercase,
]
\setSpacing{1.2}
\counterwithin{chapter}{part}
% fix the French setup of \def\thepart{}
\patchcmd{\captionsfrench}{\def\thepart{}}{}{}{}
\renewcommand{\printpartnum}{\unskip}
\begin{document}
\frontmatter
\begin{titlingpage}
\maketitle
\end{titlingpage}
\tableofcontents
\cleardoublepage
\chapter{Introduction}
\lipsum[1-3]
\mainmatter
\part{blah}
\chapter{blah blah}
Something in Greek: \textgreek{αττικόν}
\lipsum[1-3]
\chapter{blah}
\lipsum[1-3]
\part{blah}
\chapter{qwerty}
\lipsum[1-3]
\chapter{azerty}
\lipsum[1-3]
\end{document}
我已将其修复\linespread
为正确的memoir
命令\setSpacing
,并将\@addtoreset
其修复为\counterwithin
。如果您不想在章节编号前使用罗马数字,请使用
\counterwithin*{chapter}{part}
如果你想要“Partie I”,而\renewcommand{\printpartnum}{\unskip}
不是
\makeatletter
\patchcmd{\captionsfrench}
{\def\partname{\protect\@Fpt partie}}
{\def\partname{Partie}}
{}{}
\makeatother