无法使用 lualatex 获取网址中的旧式数字

无法使用 lualatex 获取网址中的旧式数字

以下适用于xelatex

\documentclass{article}
\usepackage{url}
    \urlstyle{same}
\usepackage{fontspec}
    \setmainfont{Libertine Serif}[Numbers = {OldStyle, Proportional}]
\begin{document}
\url{http://example.com/1234567890}
\end{document}

在此处输入图片描述

但不适用于lualatex

在此处输入图片描述

可以修复吗?有缺陷吗?

答案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所谓的模式。实际上,默认情况下,文本字体是使用模式声明的,(引用)不管它是什么意思。该补丁修改了字体名称,如果存在,则用 替换。baseLuaTeX+luaotfloadnodedoes not work in math modemode=nodemode=base

但是...在下面的例子中,我可以使用旧式图形来工作,但是tnum(表格图形)功能却不行。

更多的实验表明,它可以单独针对一个功能起作用(无论是Numbers=OldStyle还是Numbers=MonospacedNumbers=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:

在此处输入图片描述

相关内容