希腊文本抑制了罗马数字?

希腊文本抑制了罗马数字?

我正在使用该类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

相关内容