テキストの本文と数学環境の両方にセリフ フォントを使用し、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}
次のような結果になります:
正しい数式フォントが使用されていません。当然ですが、次のように置き換えるだけで同じ結果が得られます。fontspec
とmathspec
)。しかし\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}