我需要在我的 LaTeX 文档中添加一些文本,我需要使用Times New Roman
字体,并且该文本包含西里尔字符。
我尝试使用times
包:
\usepackage{times}
但这只是省略了西里尔字符。
我尝试使用 fontspec:
\usepackage{fontspec}
\setmainfont[Mapping=tex-text]{Times New Roman}
但这给了我错误:
kpathsea: Invalid fontname `Times New Roman', contains ' '
! Font EU1/TimesNewRoman(0)/m/n/24.88="Times New Roman:mapping=tex-text;" at 24
.88pt not loadable: Metric (TFM) file or installed font not found.
我做错了什么?我该如何解决?
答案1
正如其他人所建议的那样,首先更新你的 TeX 发行版至关重要(有些人甚至会说:在没有先更新你的发行版的情况下,就不要想着提问)。
由于您似乎正在使用 XeLaTeX,因此在大多数情况下,通过为 pdfTeX 制作的软件包加载字体并不是最佳选择。fontspec
在我看来,您确实应该使用。
我确信您的操作系统已包含 Times New Roman 字体 - 但不一定以该名称命名,也不一定是包含 Cyrillic 的版本。Windows 附带的版本肯定包含该字体。以下是如何安装它,以防它尚未在您的机器上可用。一旦安装,类似这样的操作应该可以正常工作(除非您的 TeX 系统存在更根本的问题):
\documentclass{scrartcl}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\listfiles
\begin{document}
Рома́н О́сипович Якобсо́н — российский и американский лингвист и литературовед,
один из крупнейших лингвистов XX века, оказавший влияние на развитие гуманитарных
наук не только своими новаторскими идеями, но и активной организаторской деятельностью.
\end{document}
fontspec
列出了一些其他可以使用的西里尔字体这里。
答案2
pdflatex
可以使用tempora
,它为拉丁、希腊和西里尔字母中的 Times 字体提供支持。
\documentclass{article}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\usepackage{tempora}% for text
\usepackage{newtxmath}% for math
\begin{document}
Роман Осипович Якобсон — российский и американский лингвист и литературовед,
один из крупнейших лингвистов XX века, оказавший влияние на развитие гуманитарных
наук не только своими новаторскими идеями, но и активной организаторской деятельностью.
\[
\int_{-\infty}^{\infty}\exp(-x^2)\,dx=\sqrt{\pi}
\]
\end{document}
答案3
使用 XeLaTeX,一段时间后我让一切正常运行。
主要思想是摆脱 babel 而使用 polyglossia。首先,删除这些行,因为它们不允许您充分使用 polyglossia:
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
然后配置 polyglossia。这比使用 babel 更冗长一些,但这是值得的:
\usepackage{polyglossia}
\setmainlanguage{russian} % change this if the order of languages is different
\setotherlanguage{english}
\setmainfont{Times New Roman}
\setromanfont{Times New Roman}
\newfontfamily{\cyrillicfont}{Times New Roman}[Ligatures=TeX] % this is needed for << to be converted into «
\newfontfamily{\cyrillicfontrm}{Times New Roman}
\newfontfamily{\cyrillicfonttt}{Courier New}
\newfontfamily{\cyrillicfontsf}{Arial}
\setkeys{russian}{babelshorthands=true}
在所有其他方法都失败后,它对我有用。