笔记:

笔记:

我有一个测试文件,希望将其转换为 .odt。以下是 MWE:

\documentclass[a4paper,12pt]{article}
\title{Special media for rapid germination of \textit{Persea americana} seeds using vitamin B\textsubscript{12}}
\date{}
\begin{document}
\maketitle %This works without problems.
\section{Sections}
\subsection{B$_{12}$ in $Persea~americana$}% This works, but the formatting is incorrect.
\subsection{B\textsubscript{12} in \textit{Persea americana}}% This generates errors. Using \emph{} also doesn't help. Wrapping the offending pieces of text in \mbox{} doesn't help either.
\end{document}

生成的 PDF 如下所示:

make4ht_sectioning

但是,运行命令时:make4ht -c config.cfg -f odt Test.tex,我得到输出:

[STATUS]  make4ht: Conversion started
[STATUS]  make4ht: Input file: Test.tex
[ERROR]   htlatex: Compilation errors in the htlatex run
[ERROR]   htlatex: Filename Line    Message
[ERROR]   htlatex: ?    ?    Incomplete \iffalse; all text was ignored after line 8.
[ERROR]   htlatex: ?    ?    Emergency stop.
[FATAL]   make4ht-lib: Fatal error. Command htlatex returned exit code 1

我发现主文档标题中的格式(\textit{}\textsubscript{}等)似乎适用于make4ht。但是,章节和子章节中的格式会出现错误。使用数学模式可能会有所帮助,但这是不可取的,因为它限制了人们可以在原始文档中使用的字体。

此外,输出的格式不正确。使用\mbox{}不能保护格式。使用诸如\textit{}之类的替代方法\emph{}也无济于事。

笔记:

  1. 我使用的是 Linux Mint 21.3、TeX 3.141592653(TeX Live 2023)和 kpathsea 版本 6.3.5。
  2. 我正在使用make4htv0.3m 版本。
  3. 这是我的config.cfg文件:
\RequirePackage{color} 
\Preamble{xhtml}
\Configure{mhchemce}{}{}
\Configure{mhchemcf}{}{}
\begin{document}
\EndPreamble

.cfg但是,即使文件从命令中排除,我注意到的错误仍然可以重现,即: make4ht -f odt Manuscript.tex

答案1

这是 TeX4ht 的一个错误。我会在源代码中修复。与此同时,您可以使用这个配置文件:

\RequirePackage{color} 
\Preamble{xhtml}

\makeatletter
\catcode`\:=11
\def\:Ttle#1#2#3{%
   \html:addr
   \Get:SecAnchor{#1}{#2}{#3}%
%
   {\escapechar=`\\%
\protect:wrtoc
\csname Modify#1ToToc\endcsname
\protected@edef\:writetoc{\csname if:toc\endcsname{\the\:tokwrite
   {\string\doTocEntry
    \string\toc \expandafter\ifx\csname toToc:#1\endcsname\relax #1\else
       \csname toToc:#1\endcsname\fi
       {#2}{\html:tocsec{\ifx \TocTitle\:UnDef #3\else
       \TocTitle\fi}}{\the\:tokpage}\relax}}}%
 \:writetoc   \global\let\TocTitle\:UnDef
}%
{\csname #1:Href-\endcsname
% %
 \no:lbl:idx \csname Modify#1Title\endcsname
 \html:sectoc{#3}%
 }%
}
\catcode`\:=12
\makeatother
\Configure{mhchemce}{}{}
\Configure{mhchemcf}{}{}
\begin{document}
\EndPreamble

该代码来自 TeX4ht 源,变化在于我们使用\protected@edef而不是\edef:writetoc`,以防止此类错误。

关于_{12},您应该始终使用下标的基数,因此我将其写为:

\subsection{B${}_{12}$ in $Persea~americana$}

结果如下:

在此处输入图片描述

相关内容