使用 pdfx 在数学模式中显示西里尔字母

使用 pdfx 在数学模式中显示西里尔字母

我想将 latex 文档转换为 pdf/a 文档。latex 文档包含西里尔字母(如下例所示),无需使用包 {pdfx} 即可顺利编译。

\documentclass {amsbook} 
\usepackage{amsmath}
\usepackage{mathtext}
\usepackage[T1,T2A]{fontenc}
\DeclareSymbolFont{T2Aletters}{T2A}{cmr}{m}{it}
\usepackage[utf8]{inputenc}
\begin{document}
$\CYRI^2$
\end{document}

结果如下

正确的输出

但是,如果要使用 pdfx,如以下示例所示

\documentclass {amsbook} 
\usepackage{amsmath}
\usepackage{mathtext}
\usepackage[T1,T2A]{fontenc}
\DeclareSymbolFont{T2Aletters}{T2A}{cmr}{m}{it}
\usepackage[utf8]{inputenc}
\usepackage[a-1b]{pdfx}
\begin{document}
$\CYRI^2$
\end{document}

我收到了警告

pdfTeX warning: /usr/bin/pdflatex: fontmap entry for `dummy-space' already exists, duplicates ignored

LaTeX Warning: Command \CYRI invalid in math mode on input line 11.

错误输出

我知道在 pdflatex 中使用西里尔字母作为 unicode 是有问题的。但是,改用 xelatex 对我来说不是一个解决方案,因为它会改变很多我不想要的格式。

pdfx 版本是 1.5.3

答案1

mathtext在删除对符号的调用并定义正确的\MCI(数学西里尔字母 I)符号后,我没有收到 TeX Live 2015 的警告:

\documentclass{amsbook}
\usepackage{amsmath}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[a-1b]{pdfx}

\DeclareSymbolFont{T2Aletters}{T2A}{cmr}{m}{it}
\DeclareMathSymbol{\MCI}{\mathalpha}{T2Aletters}{"C8}

\begin{document}
$\MCI^2$
\end{document}

在此处输入图片描述

答案2

通过pdfx (v.1.5.8)你的例子如果您将包加载顺序更改为:

\documentclass {amsbook}
\usepackage[a-1b]{pdfx}%  ---- recommended to load it early
\usepackage{amsmath}
\usepackage{mathtext}
\usepackage[T1,T2A]{fontenc}
\DeclareSymbolFont{T2Aletters}{T2A}{cmr}{m}{it}
\usepackage[utf8]{inputenc}
\begin{document}
$\CYRI^2$
\end{document}

但是当包在序言的后期加载时,它仍然会失败,并出现一组不同的错误,这pdfx主要与使用有关mathtext.sty

这种由软件包顺序引起的不兼容性正是我在 的下一次更新中要解决的问题pdfx.sty。所以非常感谢这个有用的例子。

我做了一些探索。使用 mathtext 包可能会产生问题,这与 pdfx 无关,但与 无关\usepackage[unicode]{hyperref}。例如

\documentclass {amsbook} 
\usepackage{amsmath} 
\usepackage{mathtext} 
\usepackage[T1,T2A]{fontenc} 
\DeclareSymbolFont{T2Aletters}{T2A}{cmr}{m}{it} 
\usepackage[utf8]{inputenc} 
\usepackage[unicode]{hyperref}
\begin{document} 
$\CYRI^2$ 
\end{document}

失去\CYRI角色。该.log文件有以下启示:

LaTeX 警告:命令 \CYRI 在输入行 9 的数学模式下无效。

缺少字符:字体 cmr10 中没有 È!

解决方案:加载hyperref(或pdfx mathtext

相关内容