更新至最新 TL 2022 后,使用分层时 tex4ht 不再显示目录

更新至最新 TL 2022 后,使用分层时 tex4ht 不再显示目录

2 小时前我刚刚更新到最新的 TL 2022 后,发现了两个大问题。

因此,我将针对这些问题发布两个单独的问题。如果我发现更多问题,将添加单独的问题。

我发现使用分层时,目录不再显示在网页上。index.htm 基本上是空的。

如果我不使用分层,它确实会显示。但这不是它应该的样子。

这是 MWE

\documentclass[12pt]{book}%
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{hyperref}

\begin{document}

\frontmatter
\title{my book title}
\author{me}
\date{\today}
\maketitle

\ifdefined\HCode 
\Configure{tableofcontents*}{chapter}   
\TocAt{chapter,section}
\TocAt{section,subsection}
\TocAt{subsection,subsubsection}
\TocAt{subsubsection,paragraph}
\fi 

\tableofcontents
\mainmatter

\chapter{First order ode $F\left(  x,y,y^{\prime}\right)  =0$}%
data
\section{First order linear in derivative $F\left(  x,y,y^{\prime}\right)=0$}%
These are first order ode's which are linear in $y^{\prime}$.
\subsection{Quadrature ode $y^{\prime}=f\left(  x\right)  $}
data
\subsubsection{Introduction}
data
\end{document}

使用编译

 make4ht -ulm default -a debug  index.tex 'mathjax,htm,4'

这是生成的 HTML

在此处输入图片描述

这是原始的 html

<!DOCTYPE html> 
<html lang='en-US' xml:lang='en-US'> 
<head><title>my book title</title> 
<meta charset='utf-8' /> 
<meta content='TeX4ht (https://tug.org/tex4ht/)' name='generator' /> 
<meta content='width=device-width,initial-scale=1' name='viewport' /> 
<link href='index.css' rel='stylesheet' type='text/css' /> 
<meta content='index.tex' name='src' /> 
<script>window.MathJax = { tex: { tags: "ams", }, }; </script> 
 <script async='async' id='MathJax-script' src='https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js' type='text/javascript'></script>  
</head><body>
<!-- l. 10 --><p class='indent'>
</p>   
<div class='maketitle'>
<h2 class='titleHead'>my book title</h2>
<div class='author'><span class='ec-lmr-12x-x-120'>me</span></div><br />
<div class='date'><span class='ec-lmr-12x-x-120'>December 26, 2022</span></div>
                                                                          
</div>
</body> 
</html>

您可以看到,空主体。当请求分层时会发生这种情况。在命令中更改432

 make4ht -ulm default -a debug  index.tex 'mathjax,htm,4'

没什么区别。主页是空的。所以某个地方出了什么严重问题。

>which tex4ht
/usr/local/texlive/2022/bin/x86_64-linux/tex4ht
>make4ht --version
make4ht version v0.3l

https://puszcza.gnu.org.ua/bugs/?588

更新

找到问题了!!

已更改

\ifdefined\HCode 
\Configure{tableofcontents*}{chapter}   
\TocAt{chapter,section}
\TocAt{section,subsection}
\TocAt{subsection,subsubsection}
\TocAt{subsubsection,paragraph}
\fi

\tableofcontents

\ifdefined\HCode 
\Configure{tableofcontents*}{chapter}   
\TocAt{chapter,section}
\TocAt{section,subsection}
\TocAt{subsection,subsubsection}
\TocAt{subsubsection,paragraph}
\else 
\tableofcontents
\fi 

基本上,不应该\tableofcontents在 tex4ht 模式下发出。

现在使用命令显示目录

make4ht -ulm default -a debug foo.tex 'mathjax,htm,4'

原始 HTML 现在显示目录

</p>   
<div class='tableofcontents'>
<span class='chapterToc'>1 <a href='foch1.htm#first-order-ode-fleft-xyy-right-' id='QQ2-2-1'>First order ode \(F\o:left: ( x,y,y^{\prime }\o:right: ) =0\)</a></span>
</div> 
</body> 
</html>

这是在 tex4ht 中发出的\tableofcontents,导致它不显示目录!

顺便问一下,这可能与这个变化有关吗? tex4ht 中的目录问题。子部分级别缺少编号,并且对齐不正确

我还必须修复 \NewConfigure{tableofcontetns*},因为否则它会打印两次目录。

我不知道。但目前来说,我没问题,只是确保不在\tableofcontentstex4ht 模式下使用。

答案1

这里的问题是,当您使用\tableofcontents分成多个文件的文档时,目录本身将保存到单独的文件中,因为目录标题被打印为一个部分。当您删除目录标题时可以修复此问题,例如使用此配置文件:

\Preamble{xhtml}
\begin{document}
\let\contentsname\empty
\EndPreamble

结果如下:

在此处输入图片描述

相关内容