我通常对 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
可得到很好的对齐。但在取消注释注释行后,正文中不再有对齐。
这是一个错误还是我误解了LuaLaTeX
、KOMAscript
或fontspec
的某些功能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}