如何修复 scrlayer-scrpage / microtype 字距调整问题?

如何修复 scrlayer-scrpage / microtype 字距调整问题?

scrlayer-scrpage我在 Koma Script 的包和自定义设置之间遇到了奇怪的交互microtype。我正在将scrartcl类与 Minion Pro 字体一起使用scrlayer-scrpage。我还用它microtype来增加撇号字形之间的字距,因为默认字距对我来说有点太窄了。

以下是 MWE:

\documentclass{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}


\usepackage[french]{babel}
\PassOptionsToPackage{babel, kerning=true}{microtype}
\usepackage[loosequotes]{MinionPro}

\usepackage{scrlayer-scrpage}

\SetExtraKerning[ name     = french-custom,
   context  = french,
   unit     = space   ]
   { encoding = *}
   {
   ' ={100,200},
   ’ ={100,200}
   }


\begin{document}

l'éléphant \textit{l'éléphant}

\newpage

l'éléphant \textit{l'éléphant}

\newpage

l'éléphant \textit{l'éléphant}

\newpage

l'éléphant \textit{l'éléphant}

\end{document}

这是我使用 pdfTex 得到的结果:在第一页中,常规字体和斜体字体的字距都是正确的。

第一页

然而,在接下来的页面中,尽管字距调整校正已应用于常规字体,但并未添加到斜体字体中。

后续页面

如果我删除该包,问题就会消失scrlayer-scrpage。但是我确实需要scrlayer-scrpage实现特定的布局,因此如果有办法使其与字距校正兼容,那就太好了。

我该如何解决这个问题?感谢您的帮助!

答案1

该问题不仅限于使用scrlayer-scrpage(或任何其他 KOMA-Script 包或 KOMA-Script 类)。 在任何临时使用 之后也会发生这种情况\slshape,例如:

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage[french]{babel}
\PassOptionsToPackage{babel, kerning=true}{microtype}
\usepackage[loosequotes]{MinionPro}

\SetExtraKerning[ name     = french-custom,
   context  = french,
   unit     = space   ]
   { encoding = *}
   {
   ' ={100,200},
   ’ ={100,200}
}

\begin{document}

l'éléphant \textit{l'éléphant}

\newpage

{\slshape}% temporary and local usage of \slshape
l'éléphant \textit{l'éléphant}

\newpage

l'éléphant \textit{l'éléphant}

\newpage

l'éléphant \textit{l'éléphant}

\end{document}

或者

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\PassOptionsToPackage{babel, kerning=true}{microtype}
\usepackage[loosequotes]{MinionPro}

\SetExtraKerning[ name     = french-custom,
   context  = french,
   unit     = space   ]
   { encoding = *}
   {
   ' ={100,200},
   ’ ={100,200}
   }

\pagestyle{headings}% for headings article also uses \slshape, which is replaced by an italic shape automatically
\begin{document}

l'éléphant \textit{l'éléphant}

\newpage
l'éléphant \textit{l'éléphant}

\newpage
l'éléphant \textit{l'éléphant}

\newpage
l'éléphant \textit{l'éléphant}

\end{document}

有同样的问题

字体问题

从第二页开始,但不要使用任何 KOMA-Script 包或类。这似乎与字体警告有关:

LaTeX Font Info:    Font shape `T1/MinionPro-OsF/m/sl' in size <10> not available   
(Font)              Font shape `T1/MinionPro-OsF/m/it' tried instead on input line 25.

scrlayer-scrpage\slshape作为页眉和页脚的默认使用(请参阅pageheadfoot手册中的元素)。但是,由于没有倾斜字体,您可以明确地使用斜体字体替换scrlayer-scrpage倾斜字体的使用:

\documentclass{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}


\usepackage[english]{babel}
\PassOptionsToPackage{babel, kerning=true}{microtype}
\usepackage[loosequotes]{MinionPro}

\usepackage{scrlayer-scrpage}

\setkomafont{pageheadfoot}{\normalcolor\itshape}

\SetExtraKerning[ name     = english-custom,
   context  = english,
   unit     = space   ]
   { encoding = *}
   {
   ' ={100,200},
   ’ ={100,200}
}

\begin{document}

l'éléphant \textit{l'éléphant}

\newpage

l'éléphant \textit{l'éléphant}

\newpage

l'éléphant \textit{l'éléphant}

\newpage

l'éléphant \textit{l'éléphant}

\end{document}

注意:这并不能真正解决\slshape一般问题,但可以解决使用过程中出现的问题scrlayer-scrpage,因为它避免了用斜体字体隐式替换倾斜字体。

相关内容