我想在等宽文本中(例如\url{}
编码示例块)加宽每个字符之间的间距。我认为 fontspec 的 LetterSpace 和 WordSpace 选项是实现此目的最简单的方法,因此我尝试了以下方法:
\setmonofont{Latin Modern Mono}[Scale=0.8, LetterSpace=150, WordSpace=150]
(我在这里使用 150 这个值来使问题更加明显)
对于 来说,这似乎工作正常{\tt http://example.com}
,但却\url{}
给出了奇怪的结果:
这是怎么回事?LetterSpace 和 WordSpace 是不是适合这项工作的工具?有没有更好的方法或者我需要设置其他内容?
我正在使用 MacTeX 2016 和lualatex
,如果相关的话。
根据要求,这是 MWE:
\RequirePackage{luatex85}
\documentclass[oneside]{book}
\usepackage{fontspec}
\usepackage{hyperref}
\setmonofont{Latin Modern Mono}[Scale=0.8, LetterSpace=150, WordSpace=150]
\begin{document}
\url{http://apple.com/}
{\tt http://apple.com/}
\end{document}
答案1
URL 以数学模式排版,并带有数学间距。正斜杠和句号排版为二元运算符(“mathbin”),冒号排版为关系(“mathrel”)。前者归类为“Break”字符;后者归类为“BigBreak”字符。当然,这用于控制哪些字符后面可以跟换行符。
因此,要更改这些字符周围的间距,您必须更改在排版 URL 时处于活动状态的数学模式间距配置。为此,该url
包提供了一个\Urlmuskip
可以随意修改的尺寸。
例如,
\documentclass[oneside]{book}
\usepackage{fontspec}
\usepackage{hyperref}
\setmonofont{Latin Modern Mono}[Scale=0.8, LetterSpace=150, WordSpace=150]
\urlstyle{tt}
\pagestyle{empty}
\Urlmuskip = 22mu plus 10mu
\begin{document}
\nolinkurl{http://apple.com/}
\url{http://apple.com/}
\ttfamily{http://apple.com/}
\end{document}
生产