htlatex 用于多语言文本并输出为 odt 格式

htlatex 用于多语言文本并输出为 odt 格式

我有一个精心设计的学术论文制作流程,使用 Biblatex-chicago 处理参考文献,生成 latex 文件。文本主要为英文,但偶尔我需要包含其他语言的摘录,包括中文。

我使用htlatex,因为我通常需要提供word格式的草稿。我使用make4ht创建odt文件,然后在word中打开并保存为docx格式,这是编辑和读者需要的。

当涉及到中文字符时,pdf 都可以正常工作,并且我现在还使用 htlatex/make4ht 为 html 文件正确地生成中文,方法是按照此问题答案中的说明进行操作:

如何使用 htlatex 创建多语言(英语、日语)html 文档

但是,我无法让该过程适用于 odt 格式。当我处理文件时,一切都很好,只是中文字符完全不存在。据我所知,它们没有产生任何未显示的输出,它们只是不存在。

这是我的 MWE:

\documentclass{article}
\usepackage{alternative4ht}
\altusepackage{fontspec}
\altusepackage{xeCJK}
\setCJKmainfont{STFangsong}
\setCJKsansfont{STFangsong}
\setCJKmonofont{STFangsong}
\setCJKmathfont{STFangsong}
\altusepackage{xunicode}
\begin{document}
中文\\
This section is in english.
\end{document}

我不太关心为此目的设置格式,因此为了简单起见,我只使用了一种字体。这是我用来编译的命令:

make4ht -f odt -m draft -ue mybuild.mk4 test.tex

如果有人能帮助我弄清楚如何实现这一点,我将不胜感激!我是个业余爱好者,所以可能会忽略一些显而易见的事情。谢谢!

答案1

您可以尝试以下操作:

\documentclass{article}
\usepackage{fontspec}
\ifdefined\HCode\else
\usepackage{xeCJK}
\setCJKmainfont{STFangsong}
\setCJKsansfont{STFangsong}
\setCJKmonofont{STFangsong}
\setCJKmathfont{STFangsong}
\altusepackage{xunicode}
\fi
\begin{document}
中文\\
This section is in english.
\end{document}

我习惯在使用 编译文档时\ifdefined\HCode禁止加载xeCJK和包。它们是不需要的。xunicodemake4ht

本文档可以使用以下方式编译

make4ht -lm draft -e mybuild.mk4 test.tex

请注意,最新版本默认make4ht使用utf-8输出,因此无需使用该-e选项。但需要使用该-l选项来要求使用 LuaTeX 进行编译。这将启用对完整 Unicode 的支持。

结果如下:

在此处输入图片描述

相关内容