Polyglossia v1.46 修改了标题中的字体系列

Polyglossia v1.46 修改了标题中的字体系列

这是我的第一个问题,如果我做错了什么,请告诉我!

更新polyglossia到版本后v1.46(从 2019/11/15 开始)似乎与memoir版本发生冲突2019/11/15 v3.7i。我正在使用 LuaTeX 版本 1.10.0。

编辑:只是为了澄清,它曾经起作用(memoir: 2018/12/12 v3.7hpolyglossia v1.45)。

我正在使用memoir内置系统来处理页眉和页脚中的内容。但是,更新后,对(或对)\sffamily没有影响。但是其他字体命令(如或)可以工作。页码不受影响,并且可以按预期工作。\leftmark\rightmark\bfseries\color{red}

在我逐一删除序言中的内容后,罪魁祸首竟然是polyglossia。标记中的文本设置为标准字体,而不是 sans 字体(尽管如预期的那样为红色)。但是,如果我注释掉这两polyglossia行,一切都会按预期运行。

梅威瑟:

\documentclass[12pt,twoside,a4paper]{memoir}

% THIS SEEMS TO BE THE ISSUE
\usepackage{polyglossia}
\setdefaultlanguage{english}

% Pagestyle
\usepackage{xcolor}
\newcommand{\headerfontX}{\color{red}\sffamily}
\makepagestyle{jtest}
\makeevenhead{jtest}{\headerfontX\leftmark}{}{}
\makeevenfoot{jtest}{}{\headerfontX\thepage{} of \thelastpage}{}
\makeatletter
\makepsmarks {jtest}{
  \createmark{chapter}{both}{nonumber}{}{}
}
\makeatother
\nouppercaseheads
\pagestyle{jtest}

% Dummy text
\usepackage{lipsum}

\begin{document}
\chapter{The Title of the Chapter}
\lipsum

\end{document}

以下是编译的结果(左边是有polyglossia,右边没有):

左边是有多语能力,右边是不多语能力

编辑:这是编译完全相同的 MWE 的结果(即 polyglossia) 旧版本 (左) 和新版本 (右):

左边是旧包装,右边是新包装

因此更新之前它可以按预期工作。

为什么是多语影响字体完全没有标记?为什么可以\bfseries工作,但不能\sffamily

memoir这是and/or新版本中的错误吗polyglossia

谢谢!

(附注:可以采取一种变通方法。删除并改为通过修复字体\createmark{chapter}...重新定义章节标记。如果标记已编号,则可以通过在中添加字体作为前缀来修复。)\renewcommand\chaptermarksn[1]{\headerfontX}\leftmark\createmark


更新:这与 无关。正如评论中memoir指出的那样,如果使用该类,也会出现此错误。daleifbook

答案1

polyglossia\foreignlanguage使用时重置字体系列:

\documentclass[12pt,twoside,a4paper]{memoir}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\usepackage{xcolor}
\begin{document}
{\color{red}\sffamily Abc  \foreignlanguage{english}{Abc}} 
\end{document}

在此处输入图片描述

正如polyglossia用这样的内容包围标题,\foreignlanguage您就得到了输出。

有了babel它,工作正常:

\documentclass[12pt,twoside,a4paper]{memoir}
\usepackage[english]{babel}
\usepackage{xcolor}
\begin{document}
{\color{red}\sffamily Abc  \foreignlanguage{english}{Abc}} 
\end{document}

在此处输入图片描述

答案2

已确认这是polyglossia v1.46另一次修复的一个副作用,是一个错误。

https://github.com/reutenauer/polyglossia/issues/355


解决方法 1

如果只需要章节标题。则替换

\makeatletter
\makepsmarks {jtest}{
  \createmark{chapter}{both}{nonumber}{}{}
}
\makeatother

经过

\renewcommand\chaptermarksn[1]{\headerfontX}

解决方法 2

如果章节号包含在页眉中。现在,只需使用标记memoir并添加字体命令作为前缀即可完成:

\makeatletter
\makepsmarks {jtest}{
  \createmark{chapter}{both}{shownumber}{\headerfontX}{:~}
}
\makeatother

这当然也适用于其他编号标记。


解决方法 3

正如@UlrikeFischer 所建议的,使用babel而不是polyglossia

相关内容