我正在尝试使用 tex4ebook 从 LaTeX 项目中生成 epub 文件。原始项目针对 pdf,使用 XeLaTeX 和 xeCJK 包,运行良好。
使用 tex4ebook 时,如果包含包 xeCJK,则会出现以下错误:
tex4ht warning: package xeCJK was prevented from loading
! Undefined control sequence.
l.98 \DeclareDocumentCommand
\setCJKmainfont{o m o}{}
如果我删除 xeCJK,它似乎可以工作,电子书被生成并且一切都正常,只是所有日文文本都消失了。
我已将文件缩减为最小工作示例,它可以完美地生成预期的 pdf 文件。
.tex 文件如下:
\documentclass[a5paper,10pt,openright]{book}
%\usepackage{xeCJK}
\usepackage[portuguese]{babel}
\begin{document}
!!START JAPANESE TEXT!!
三里塚闘争は、千葉県成田市の農村地区名称である三里塚とその近辺で継続している成田市・芝山町の地元住民及び新左翼活動家らによる新東京国際空港(成田国際空港)の建設・存続に反対する闘争のことを指す。成田闘争とも呼ばれる。
!!END JAPANESE TEXT!!
\end{document}
我使用的命令如下:
tex4ebook -x -f epub 电子书测试.tex
我一直在寻找,但到目前为止我还没有找到让它发挥作用的方法。
答案1
看来您可能安装了较旧的版本。使用最新的 TeX Live 2023,它可以正常工作。即使使用较旧的版本,如果您不使用该xeCJK
软件包并使用 LuaTeX 而不是 XeTeX 编译文件,您也可以编译它并获取日文文本。使用 LuaTeX,TeX4ht 可以以比 XeTeX 更强大的方式保留文档中使用的所有 Unicode 字符。您修改后的示例可能如下所示:
\documentclass[a5paper,10pt,openright]{book}
\ifdefined\HCode\else
\usepackage{xeCJK}
\fi
\usepackage[portuguese]{babel}
\begin{document}
!!START JAPANESE TEXT!!
三里塚闘争は、千葉県成田市の農村地区名称である三里塚とその近辺で継続している成田市・芝山町の地元住民及び新左翼活動家らによる新東京国際空港(成田国際空港)の建設・存続に反対する闘争のことを指す。成田闘争とも呼ばれる。
!!END JAPANESE TEXT!!
\end{document}
使用此代码,xeCJK
TeX4ht 包将被忽略:
\ifdefined\HCode\else
\usepackage{xeCJK}
\fi
您现在可以使用以下命令进行编译:
$ tex4ebook -l ebooktest.tex
结果如下: