由于 gb4e 导致在 LaTeX 中排版日文出现错误

由于 gb4e 导致在 LaTeX 中排版日文出现错误

我尝试在使用该软件包的同时将日语和英语文本包含在 LaTeX 文档的参考书目中,gb4e无论我输入什么日语文本,它都会在 pdf 中显示为“0123456789abcdef0123456789abcdef0123456789abcdef01234”。我使用的CJKutf8是 pdflatex (texlive2014),并且 wadalab安装CJK了必要的字体。我会使用 XeLaTeX,但我必须更改太多早期代码才能使其正常工作。有什么建议可以说明为什么它不能正常工作以及为什么gb4e会导致这些问题?我需要gb4e在文档中保留用于语言行间注释的软件包。

这是我的示例代码:

%!TeX encoding = UTF-8
%!TeX program = pdflatex
\documentclass{article}
\usepackage{CJKutf8}
\usepackage[TS3,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{gb4e}

\begin{document}

\begin{exe}
\ex Make sure that ^{super}_{sub}scripts in \texttt{gb4e} work fine.
\end{exe}

\begin{thebibliography}{99}
\bibitem{1} Inui, Hideyuki. 2005.
  \begin{CJK}{UTF8}{min} バスケト語の文法概観 \end{CJK}
  [A grammatical survey of the Basketo language]. \emph{Cushitic-Omotic Studies} 2004, 1--40.
\end{thebibliography}
\end{document}

以下是错误文本的简短摘录:

! Use of ^ doesn't match its definition.
<argument> ^^c
              0
l.16 ...ui, Hideyuki. 2005. \begin{CJK}{UTF8}{min}
                                                   バスケト語の文法�...

?

答案1

正如我在评论中解释的那样,更改字符和gb4e的类别代码,导致无法解码日语字符。^_CJK

正如文档中所建议的gb4e,您可以\noautomath在需要禁用_和的特殊效果的地方使用^。这是解决方案。

%!TeX encoding = UTF-8
%!TeX program = pdflatex
\documentclass{article}
\usepackage{CJKutf8}
\usepackage[TS3,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{gb4e}

\begin{document}

\begin{exe}
\ex Make sure that ^{super}_{sub}scripts in \texttt{gb4e} works fine.
\end{exe}

\noautomath % disable catcode changes from gb4e
\begin{thebibliography}{99}
\bibitem{1} Inui, Hideyuki. 2005.
  \begin{CJK}{UTF8}{min} バスケト語の文法概観 \end{CJK}
  [A grammatical survey of the Basketo language]. \emph{Cushitic-Omotic Studies} 2004, 1--40.
\end{thebibliography}
\end{document}

相关内容