我希望在正文和数学环境中使用衬线字体,并为 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 和类似数学字体的时间,例如像这样
\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}