XeLaTeX:使用 japanese.ldf 进行 babel 会导致无效字符错误

XeLaTeX:使用 japanese.ldf 进行 babel 会导致无效字符错误

我正在尝试用 LaTeX 排版一本日文书。

我想使用日语作为章节标题,因此我得到的不是“第 1 章 ジャン・バルジン”,而是“第 1 章 ジャン・バルジャン”。

我使用 TeX Live Manager 获得了 babel 的日语选项,其中包含一些文件,包括和japanese.ldf。我想我应该将其中一个文件放在我的 TeX 目录的 babel 文件夹中,那里有一堆文件,每个文件都有 babel 语言选项的名称。japanese.dtxjapanese.ins.sty

我尝试将其放入japanese.ldf文件夹中。然后我尝试了这个简单的例子:

\documentclass[a4paper, 10pt, twoside, draft]{memoir}

\usepackage[japanese]{babel}

\begin{document}

    \title{題}
    \author{作者}
    \date{日付}

    \maketitle
    \clearpage

    \tableofcontents
    \clearpage

    \chapter{章1}
    ウェルギリウスの作品。
    \clearpage
    \section{節1.1}
    事実両者を区別した。
    \clearpage
    \section{節1.2}
    キケロは上流の家柄の出。
    \clearpage

    \chapter{章2}2}
    事実両者を区別した。
    \clearpage
    \section{節2.1}
    キケロは上流の家柄の出。
    \clearpage
    \section{節2.2}
    ウェルギリウスの作品。
    \clearpage

    \chapter{章3}
    キケロは上流の家柄の出。
    \section{節3.1}
    ウェルギリウスの作品。
    \clearpage
    \section{節3.2}
    事実両者を区別した。
    \clearpage

\end{document}

然后我收到这个错误:

\l@japanese = a dialect from \language0
! Text line contains an invalid character.
l.35   \def\prepartname{^^[
                           $BBh^^[(B}%
? x

我认为的编码有问题japanese.ldf。当我用 Sublime Text 打开它时,在发生错误的地方出现了奇怪的字符:

ESC 字符

是否有某个地方分发的有效版本japanese.ldf?还是我在这里做错了什么?

答案1

目前 Polyglossia 还不支持日语(但是正在努力实现)。

您找到的文件japanese.ldf适用于platex(TeX 的日文版),与其他引擎不兼容。

这是一个最小的工作示例,可以使用

ptex2pdf -u -l <filename>

代码,注意memoir不支持。

\documentclass[a4paper, 10pt, twoside, draft]{ujbook}
\usepackage[japanese]{babel}

\begin{document}

\tableofcontents

\chapter{ジャン・バルジン}
ウェルギリウスの作品。

\end{document}

在此处输入图片描述

答案2

[更新 2016-12-18] 直到昨天,文件 japanese.ldf 仅适用于日文 pLaTeX/upLaTeX(因此采用 ISO-2022-JP 编码),这就是出现“无效字符”错误的原因。

昨天我(日本 TeX 开发社区的成员)提交了新版本的 japanese.ldf,它支持 LuaLaTeX/XeLaTeX 以及 pLaTeX/upLaTeX。开发地点是

CTAN 目录也从日本人babel-日语. 新版本已安装在 TeX Live 中r42738,因此很快就会推出。

但是,这个包并不完美:正如我在 README.md 中所说,日语的词序与大多数西方语言不同。标准类(文章、书籍等)\chap­ter­name在编号前面有顺序,但在编号后面没有顺序,因此无法将“第 1 章”和“第 1 部”替换为日语对应词“第 1 章”和“第 1 部”。替代方法是使用为日语开发的 bxjs... 文档类。


如果您想使用 xelatex 获取日文文档,最简单的方法是使用 bxjs... 文档类。在这种情况下,\usepackage[japanese]{babel}根本不需要。

bxjs 文档类系列(bxjsarticle、bxjsreport、bxjsbook、bxjsslide)由日本开发人员设计,几乎与 js 文档类系列(jsarticle 和 jsbook;仅支持 pTeX/upTeX)兼容。bxjs 类可以与几乎所有常见的 TeX 引擎一起使用,例如 pdflatex、lualatex,当然还有 xelatex。您必须将引擎指定为类选项。使用 xelatex\documentclass[xelatex,ja=standard]{bxjsbook}是最好的。

\documentclass[a4paper,10pt,twoside,draft,xelatex,ja=standard]{bxjsbook}

\begin{document}

\title{題}
\author{作者}
\date{日付}

\maketitle
\clearpage

\tableofcontents
\clearpage

\chapter{章1}
ウェルギリウスの作品。
\clearpage
\section{節1.1}
事実両者を区別した。
\clearpage
\section{節1.2}
キケロは上流の家柄の出。
\clearpage

\chapter{章2.2}
事実両者を区別した。
\clearpage
\section{節2.1}
キケロは上流の家柄の出。
\clearpage
\section{節2.2}
ウェルギリウスの作品。
\clearpage

\chapter{章3}
キケロは上流の家柄の出。
\section{節3.1}
ウェルギリウスの作品。
\clearpage
\section{節3.2}
事実両者を区別した。
\clearpage

\end{document}

使用 xelatex + bxjsbook 的日文文档示例

相关内容