答案1
类似的问题被问到如何使用 LuaLaTeX 让 `url` 包遵守 fontspec 字体选项 (stylisticset)和 egreg 的回答有以下评论也为此提供解决方案。
\documentclass{article}
\usepackage{url}
\urlstyle{same}
\usepackage{fontspec}
\setmainfont{Libertine Serif}[Numbers = {OldStyle, Proportional}]
\makeatletter
\g@addto@macro\UrlSpecials{%
\do\0{\mbox{\UrlFont\char`\0}}%
\do\1{\mbox{\UrlFont\char`\1}}%
\do\2{\mbox{\UrlFont\char`\2}}%
\do\3{\mbox{\UrlFont\char`\3}}%
\do\4{\mbox{\UrlFont\char`\4}}%
\do\5{\mbox{\UrlFont\char`\5}}%
\do\6{\mbox{\UrlFont\char`\6}}%
\do\7{\mbox{\UrlFont\char`\7}}%
\do\8{\mbox{\UrlFont\char`\8}}%
\do\9{\mbox{\UrlFont\char`\9}}%
}
\makeatother
\begin{document}
\url{http://example.com/1234567890}
\end{document}
无论如何,@egreg 认为这是一个错误。
答案2
这里有一个补丁,用于修改 使用的字体,使其配置为使用 lingua中url
所谓的模式。实际上,默认情况下,文本字体是使用模式声明的,(引用)不管它是什么意思。该补丁修改了字体名称,如果存在,则用 替换。base
LuaTeX+luaotfload
node
does not work in math mode
mode=node
mode=base
但是...在下面的例子中,我可以使用旧式图形来工作,但是tnum
(表格图形)功能却不行。
更多的实验表明,它可以单独针对一个功能起作用(无论是Numbers=OldStyle
还是Numbers=Monospaced
但Numbers=Proportional
不能同时使用两个;当然,我检查了在所有情况下字体名称是否正确准备)。
\documentclass{article}
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}[Numbers = {OldStyle, Monospaced}]
\usepackage{url}
\urlstyle{same}
\makeatletter
\ifx\directlua\undefined\else
\begingroup
\catcode`N 12
\catcode`O 12
\catcode`D 12
\catcode`E 12
\lowercase{\gdef\FixFontForMath@i #1=NODE;#2#3\relax #4\@empty}%
{%
\ifx#2\empty
\let\FixedFontForMath\font
\else\font\FixedFontForMath=#1=base;#2#3\relax\fi
}%
\lowercase{\gdef\FixFontForMath {\expandafter\FixFontForMath@i
\fontname\font\relax\relax=NODE;\empty\relax\@empty }}%
\endgroup
\def\Url@FormatString{%
\UrlFont \FixFontForMath \Url@MathSetup
$\fam\z@ \textfont\z@\FixedFontForMath
\expandafter\UrlLeft\Url@String\UrlRight
\m@th$%
% \if\urldebug \showlists \fi
}%
\fi
\makeatother
\begin{document}
http://www.0123456789.org (text)
\url{http://www.0123456789.org} (url)
\hsize 6cm
For some reason the `Tabular' feature is not obeyed in math. But the `Old Style'
feature now is.
\end{document}
% Local Variables:
% TeX-engine: luatex
% End: