![使用 pdfx 在数学模式中显示西里尔字母](https://linux22.com/image/324751/%E4%BD%BF%E7%94%A8%20pdfx%20%E5%9C%A8%E6%95%B0%E5%AD%A6%E6%A8%A1%E5%BC%8F%E4%B8%AD%E6%98%BE%E7%A4%BA%E8%A5%BF%E9%87%8C%E5%B0%94%E5%AD%97%E6%AF%8D.png)
我想将 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
。