在 tex4ht 配置文件中,我有以下两行:
\Configure{$}{\PicMath}{\EndPicMath}{}
\Configure{PicMath}{}{}{}{class="math";align="absmiddle"}
这些已经是 .cfg 5 年或更长时间了。没问题。这些用于告诉 tex4ht 将内联数学转换为图像,否则不会。所以这两行非常基本,必须一直存在。
我刚刚发现,不知为何,当我使用时adjustbox
,HTML 页面上的输出全部损坏。原来,从 .cfg 文件中删除上述两行后,输出就恢复正常了。
我不知道为什么这两行会影响adjustbox
或导致 tex4ht 这样做。
这是 MWE
\documentclass[12pt]{book}%
\usepackage{listings}
\usepackage{adjustbox}
\begin{document}
\begin{adjustbox}{max width=0.8\textwidth,fbox=0.1pt,margin=2pt}
\begin{lstlisting}[basicstyle=\ttfamily,columns=fullflexible,keepspaces=true]
This is just some text
which is verbatim using listing
\end{lstlisting}
\end{adjustbox}
\end{document}
这是 MWE nma.cfg
文件,它应该与 .tex 文件位于同一文件夹中
\Preamble{ext=htm,charset="utf-8",p-width,pic-align}
\Configure{DOCTYPE}{\HCode{<!DOCTYPE html>\Hnewline}}
\Configure{HTML}{\HCode{<html>\Hnewline}}{\HCode{\Hnewline</html>}}
\Configure{@HEAD}{}
\Configure{@HEAD}{\HCode{<meta charset="utf-8"/>\Hnewline}}
\Configure{@HEAD}{\HCode{<link rel="stylesheet" type="text/css"
href="\expandafter\csname aa:CssFile\endcsname" />\Hnewline}}
\begin{document}
\Configure{$}{\PicMath}{\EndPicMath}{}
\Configure{PicMath}{}{}{}{class="math";align="absmiddle"}
\EndPreamble
使用以下方式编译htlatex foo7_1.tex "nma.cfg,htm"
HTML 页面是
删除 .cfg 文件并使用htlatex foo7_1.tex "htm"
输出进行编译时
出于某种原因,tex4ht 认为adjustbox
内容是数学,并试图将其变成图像?删除adjustbox
并保留 .cfg 也可以解决问题:
\documentclass[12pt]{book}%
\usepackage{listings}
\begin{document}
\begin{lstlisting}[basicstyle=\ttfamily,columns=fullflexible,keepspaces=true]
This is just some text
which is verbatim using listing
\end{lstlisting}
\end{document}
使用编译htlatex foo7_1.tex "nma.cfg,htm"
给出
所以问题是:可以保留 .cfg 原样并adjustbox
与 tex4ht 一起使用吗?
该问题发生在 TL 2015 和 TL 2016 上。
答案1
tex4ht
不认为adjustbox
使用数学模式。adjustbox
在内部使用数学模式,至少在您的选项中。没有用于adjustbox
的配置tex4ht
。一些基本配置,只是重置adjustbox
环境并打印一些可以使用CSS设置样式的基本HTML结构,可能看起来像这样:
% adjustbox.4ht
\renewenvironment{adjustbox}[1]{}{}
\ConfigureEnv{adjustbox}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="adjustbox">}}{\ifvmode\IgnorePar\fi\EndP\HCode{</div>}}{}{}
\endinput
生成的 HTML:
<div class="adjustbox"> <!--l. 6-->
<div class="lstlisting" id="listing-1"><span class="label"><a
id="x1-2r1"></a></span><span
class="cmtt-12"> </span><span
class="cmtt-12"> </span><span
class="cmtt-12">This</span><span
class="cmtt-12"> </span><span
class="cmtt-12">is</span><span
class="cmtt-12"> </span><span
class="cmtt-12">just</span><span
class="cmtt-12"> </span><span
class="cmtt-12">some</span><span
class="cmtt-12"> </span><span
class="cmtt-12">text</span><span
class="cmtt-12"> </span><br /><span class="label"><a
id="x1-3r2"></a></span><span
class="cmtt-12"> </span><span
class="cmtt-12"> </span><span
class="cmtt-12"> </span><span
class="cmtt-12"> </span><span
class="cmtt-12"> </span><span
class="cmtt-12">which</span><span
class="cmtt-12"> </span><span
class="cmtt-12">is</span><span
class="cmtt-12"> </span><span
class="cmtt-12">verbatim</span><span
class="cmtt-12"> </span><span
class="cmtt-12">using</span><span
class="cmtt-12"> </span><span
class="cmtt-12">listing</span>
</div>
</div>