我想使用 pdfLaTeX 编写一份英文文档和一些中文文字。
这里是 MWE:
\documentclass{article}
\usepackage[UTF8]{ctex}
\begin{document}
nǔrén\v{a}amùtūou
\end{document}
如下图所示:
如您所见,在ǔ
或之后ū
,LaTeX 会自动放置一个自由空格,即使它没有写在代码中,但在 之后则不会\v{a}
。
1)为什么会发生这种情况?
2)我该如何避免这个问题?(你可以想象每次做出改变并不容易)
感谢您的任何建议。
答案1
ctex
包CJKutf8
使用 pdfLaTeX 加载包。CJKutf8
包inputenc
使用utf8
选项加载。但是,unicode 字符(如)ǔ
未在 中定义utf8.def
,因此CJK
包将这些字符视为 CJK 宽符号,使用 CJK 字体。这就是问题所在。
为了解决这个问题,你可以自己定义这些unicode字符:
% pdfLaTeX
\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{newunicodechar}
\newunicodechar{ǚ}{\v{\"u}} % or: \DeclareUnicodeCharacter{01DA}{\v{\"u}}
\newunicodechar{ū}{\={u}}
\newunicodechar{ǎ}{\v{a}}
\usepackage[T1]{fontenc} % necessary for \v{\"u}
\begin{document}
女人nǚrén
奶奶nǎinai
秃头tūtóu
\end{document}
更好的解决方案是使用 XeLaTeX 而不是 pdfLaTeX。在 XeTeX 中处理 unicode 字符要容易得多。
% XeLaTeX
\documentclass{article}
\usepackage[UTF8]{ctex}
\begin{document}
女人nǚrén
奶奶nǎinai
秃头tūtóu
\end{document}
也可以看看xpinyin
使拼音输入更加容易。
相关问题: