我有一个精心设计的学术论文制作流程,使用 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
和包。它们是不需要的。xunicode
make4ht
本文档可以使用以下方式编译
make4ht -lm draft -e mybuild.mk4 test.tex
请注意,最新版本默认make4ht
使用utf-8
输出,因此无需使用该-e
选项。但需要使用该-l
选项来要求使用 LuaTeX 进行编译。这将启用对完整 Unicode 的支持。
结果如下: