`mathspec` では等幅環境のセリフ数字が使用できますが、`fontspec` では使用できません

`mathspec` では等幅環境のセリフ数字が使用できますが、`fontspec` では使用できません

テキストの本文と数学環境の両方にセリフ フォントを使用し、URL などには別の等幅フォントを使用したいと思います。

これをコンパイルするとfontspec:

\documentclass[12pt,a4paper]{article}
\usepackage[hidelinks]{hyperref}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\setmonofont{Courier New}
\begin{document}
\noindent See the following article on Wikipedia about the year AD 2017:

\url{https://en.wikipedia.org/wiki/2017}

$2000 + 17 = 2017$
\end{document}

次のような結果になります:

正しい数式フォントが使用されていません。当然ですが、次のように置き換えるだけで同じ結果が得られます。fontspecmathspec)。しかし\setmathsfont{Times New Roman}mathspec、それでも同じ結果になります。

コンパイルすると次のようになります:

\documentclass[12pt,a4paper]{article}
\usepackage[hidelinks]{hyperref}
\usepackage{mathspec}
\setallmainfonts{Times New Roman}
\setallmonofonts{Courier New}
\begin{document}
\noindent See the following article on Wikipedia about the year AD 2017:

\url{https://en.wikipedia.org/wiki/2017}

$2000 + 17 = 2017$
\end{document}

次のような結果になります:

これにより、数学環境が目的のフォントに変更されますが、指定された URL 内の数字が等幅フォントではなくセリフフォントに変更され、これは望ましくありません。

どこが間違っているのか、またどうすれば次のような結果になるのか、誰か分かる人はいませんか?

答え1

url数学を使用して URL をタイプセットしますが、mathspec数学コードを変更すると間違ったフォントが表示されます。次のようにリセットできます。

\documentclass[12pt,a4paper]{article}
\usepackage[hidelinks]{hyperref}
\usepackage{mathspec}
\setallmainfonts{Times New Roman}
\setallmonofonts{Courier New}

\makeatletter
\def\Url@FormatString{%
 \UrlFont
\Url@MathSetup
\mathcode"30=28720 %0
\mathcode"31=28721 %1
\mathcode"32=28722 %2
%...
\mathcode"37=28727 %7
 $\fam\z@ \textfont\z@\font
 \expandafter\UrlLeft\Url@String\UrlRight
 \m@th$%
}%
\begin{document}
\noindent See the following article on Wikipedia about the year AD 2017:

\url{https://en.wikipedia.org/wiki/2017}

$2000 + 17 = 2017$
\end{document}

ここに画像の説明を入力してください

しかし、私はUnicode-MathとTimes like Mathフォントを使用します。例えば、次のようになります。

\documentclass[12pt,a4paper]{article}
\usepackage[hidelinks]{hyperref}
\usepackage{unicode-math}
\setmainfont{Times New Roman}
\setmonofont{Courier New}
\setmathfont{TeX Gyre Termes Math}
\begin{document}
\noindent See the following article on Wikipedia about the year AD 2017:

\url{https://en.wikipedia.org/wiki/2017}

$2000 + 17 = 2017$
\end{document}

ここに画像の説明を入力してください

関連情報