为什么 \usepackage{times} 不适用于西里尔字符?

为什么 \usepackage{times} 不适用于西里尔字符?

我需要在我的 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}

在所有其他方法都失败后,它对我有用。

相关内容