我正在用英语写一篇文章,其中有几页是俄语的。
\documentclass[12pt]{article}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}
\usepackage{newtxmath}
\usepackage{newtxtext}
\begin{document}
hello \textbf{hello}
\selectlanguage{russian} привет \textbf{привет}
\end{document}
输出:
你好你好預告 預告
我\selectlanguage{}
在需要时用它来切换语言。
但是,我注意到,当我尝试\textbf{}
在俄语模式下使用时,由于 newtxttext(我将其用于数学公式),它不起作用。
有谁知道如何解决这个问题?
谢谢。
答案1
您会收到两个警告:
LaTeX Font Warning: Font shape `T2A/ntxtlf/m/n' undefined
(Font) using `T2A/cmr/m/n' instead on input line 12.
LaTeX Font Warning: Font shape `T2A/ntxtlf/bx/n' undefined
(Font) using `T2A/ntxtlf/m/n' instead on input line 12.
因为newtxtext
不支持西里尔文。因此,标准字体系列被替换(第一个警告),但第二个替换指向相同的字体,因为 LaTeX 对ntxtlf
T2A 编码一无所知。
解决方案:用 Times 字体系列替代,但支持西里尔字母。
\documentclass[12pt]{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}
%\usepackage{newtxtext}
\usepackage{tempora} % this supports Cyrillic
\usepackage{newtxmath}
\begin{document}
English: hello \textbf{hello}
Russian: \foreignlanguage{russian}{привет \textbf{привет}}
\end{document}
请注意,无论如何,newtxmath
必须在文本的字体包之后加载,无论是tempora
还是newtxtext
。
newtxtext
但是,只要您将 Tempora 设置为西里尔文,您就可以使用。
\documentclass[12pt]{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}
\usepackage{newtxtext}
\usepackage{newtxmath}
\usepackage{substitutefont}
\substitutefont{T2A}{\rmdefault}{Tempora-TLF}
\begin{document}
English: hello \textbf{hello}
Russian: \foreignlanguage{russian}{привет \textbf{привет}}
\end{document}