ucs、CJKutf8、siunitx 软件包不兼容

ucs、CJKutf8、siunitx 软件包不兼容

我正在使用 pdftex 编写一本混合数学、中文和音译阿拉伯语的书。以下设置

\documentclass{article}
\usepackage{ucs}
\usepackage{CJKutf8}
\usepackage{siunitx}
\begin{document}
\inputencoding{utf8x}
Muḥammad
\inputencoding{utf8}

\begin{CJK*}{UTF8}{gkai}
张仪
\end{CJK*}
\end{document}

在 TeXLive 2017 上运行良好,但在 TeXLive 2018 和 2019 下会出现一个奇怪的错误:

(/usr/local/texlive/2019/texmf-dist/tex/latex/base/ts1enc.dfu
/usr/local/texlive/2019/texmf-dist/tex/latex/base/ts1enc.dfu:115: Missing numbe
r, treated as zero.
<to be read again> 
                   F
l.115 ...icodeCharacter{FEFF}{\ifhmode\nobreak\fi}

? 

不幸的是,诸如Ḫ和ḥ之类的字符迫使我使用utf8x。

我仍然可以使用 TeXLive 2017,但也许 unicode 专家可以找出问题所在。

答案1

您不必使用 ucs/utf8x,您可以自己添加缺少的声明。根据声明的数量,这可能意味着一些工作,但最终您将获得与标准 latex 不兼容的东西:

\documentclass{article}

\usepackage{CJKutf8}
\usepackage{siunitx}
\DeclareUnicodeCharacter{1E25}{\d{h}}
\begin{document}

Muḥammad

\begin{CJK*}{UTF8}{gkai}
张仪
\end{CJK*}
\end{document}

在此处输入图片描述

相关内容