为什么 setmonofont 会改变使用相同字体的普通文本的对齐方式?

为什么 setmonofont 会改变使用相同字体的普通文本的对齐方式?

我通常对 URL(例如电子邮件地址)使用不同的字体。今天,我尝试在一封信中将其更改为使用与普通文本相同的字体,结果取消了信件正文中的对齐。MWE 在此处:

\documentclass[fromemail=true]{scrlttr2}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{TeX Gyre Pagella}
% \setmonofont[Ligatures=TeX]{TeX Gyre Pagella}
\usepackage{url}
\setkomavar{fromname}{John Doe}
\setkomavar{fromaddress}{Some Place\\Somewhere}
\setkomavar{fromemail}{\url{[email protected]}}
\usepackage{lipsum}
\begin{document}

\begin{letter}{irgendwas}
\setkomavar{toname}{People, who understand \LaTeX{} better than me}
\setkomavar{toaddress}{Maybe on Stackexchange}
\setkomavar{subject}{Is this a bug?}

\opening{Dear,}

\lipsum[1]

\closing{Regards}
\end{letter}
\end{document}

用 编译此代码LuaLaTeX可得到很好的对齐。但在取消注释注释行后,正文中不再有对齐。

这是一个错误还是我误解了LuaLaTeXKOMAscriptfontspec的某些功能url

答案1

等宽字体被分配了固定的单词间空间,这当然使得对齐基本上不可能。

出于效率原因,字体仅加载一次,因此您的声明也会为主字体设置严格的单词间空间。

切换声明的顺序,因为具有灵活的单词间空间的“等宽”字体不应该成为问题。

\documentclass[fromemail=true]{scrlttr2}
\usepackage{fontspec}
\setmonofont[Ligatures=TeX]{TeX Gyre Pagella}
\setmainfont[Ligatures=TeX]{TeX Gyre Pagella}
\usepackage{url}
\setkomavar{fromname}{John Doe}
\setkomavar{fromaddress}{Some Place\\Somewhere}
\setkomavar{fromemail}{\url{[email protected]}}
\usepackage{lipsum}
\begin{document}

\begin{letter}{irgendwas}
\setkomavar{toname}{People, who understand \LaTeX{} better than me}
\setkomavar{toaddress}{Maybe on Stackexchange}
\setkomavar{subject}{Is this a bug?}

\opening{Dear,}

\lipsum[1]

\closing{Regards}
\end{letter}
\end{document}

在此处输入图片描述

另一方面,使用\urlstyle{rm}似乎容易得多。

\documentclass[fromemail=true]{scrlttr2}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{TeX Gyre Pagella}
\usepackage{url}
\setkomavar{fromname}{John Doe}
\setkomavar{fromaddress}{Some Place\\Somewhere}
\setkomavar{fromemail}{\url{[email protected]}}
\urlstyle{rm}

\usepackage{lipsum}
\begin{document}

\begin{letter}{irgendwas}
\setkomavar{toname}{People, who understand \LaTeX{} better than me}
\setkomavar{toaddress}{Maybe on Stackexchange}
\setkomavar{subject}{Is this a bug?}

\opening{Dear,}

\lipsum[1]

\closing{Regards}
\end{letter}
\end{document}

相关内容