如何将 htlatex 生成的 HTML 的整个部分放入特殊的 div 中?

如何将 htlatex 生成的 HTML 的整个部分放入特殊的 div 中?

使用 TeX 文件,我从同一来源生成两个 pdf 可交付成果和一个网站。

我生成了我的html使用htxelatexconfig类似的文件,其内容如下:

\Css { .tableofcontents {
  float:left;
  top:20px;
  padding-left:2%;
  width:30%;
  background:#eee;
  font-size:1em;
  }
}
\Css { .container {
  float:left;
  top:20px;
  padding-left:15px;
  width:65\%;
  height:1024px;
  }
}

这是我使用脚本将以下内容添加到生成的 HTML 中

<div class="container">
   <--! The whole tex code except the tableofcontents -->
</div>

现在我有一个华丽的HTML屏幕,一半是目录,另一半是内容。

它有效我只是想知道是否有办法以某种方式从配置文件中自动将整个主体添加到 div 中。当我生成时html,它tableofcontents在主体内部,所以我不能使用body对象

答案1

你需要解决三个问题:

  1. 内容标题在.tableofcontentsdiv 之外,因此不会一起浮动

  2. 添加<div class="container">\tableofcontents

  3. 在元素</div>前添加结束符<body>

前两个问题可以通过如下配置文件轻松解决:

\edef\hash{\string#}
\Preamble{xhtml}

\Configure{tableofcontents}
   {\IgnorePar\EndP\HCode{<div class="tableofcontents"\csname a:LRdir\endcsname><h3 class="likesectionHead">Contents</h3>}\IgnorePar}
   {\ifTag{tex4ht-body}{\HCode{<br />}\Link{tex4ht-body}{}Home\EndLink}{}}
   {\IgnorePar\EndP\HCode{</div><div class="container">}\ShowPar}
   {\HCode{<br />}}   {}

\Css { .tableofcontents{ 
  float:left;
  top:20px;
  padding-left:2\%;
  width:30\%;
  background:\hash eee;
  font-size:1em;
  }
}
\Css { .container {
  float:left;
  top:20px;
  padding-left:15px;
  width:65\%;
  height:1024px;
  }
}
\begin{document}
\let\contentsname=\empty
\EndPreamble

通过\let\contentsname=\empty抑制打印内容标题,然后将其打印在.tableofcontentsdiv 内。我\Configure{tableofcontents}html4.4ht文件中复制并添加<h3 class="likesectionHead">Contents</h3><div class="container">正确的位置。

另请注意,我修改了您的css说明、字符%,并且#需要转义。

最后一项任务是最难的。您可以使用\Configure{BODY}{body start}{body end}插入结束</div>,但如果您查看文件BODY中的配置html4.4ht,您会发现那里发生了很多事情,如果您只是使用 ,可能会破坏某些东西\Configure{BODY}{\HCode{<body>}}{\HCode{</div></body>}}。我建议使用命令对 html 文件进行后处理tidy

tidy -m -utf8 filename.html

样本文件:

\documentclass{article}
\begin{document}
\tableofcontents

\section{Intro}

Just try some random paragraph

\section{Some environments}

\subsection{verbatim}

\begin{verbatim}
    echo "verbatim"
\end{verbatim}

\subsection{quotation}
\begin{quotation}
hello from quotation
\end{quotation}
\end{document}

在此处输入图片描述

相关内容