tex4ht/make4ht:配置章节标题,使其与 jekyll toc 兼容

tex4ht/make4ht:配置章节标题,使其与 jekyll toc 兼容

目前,章节标题\section{Connection} 将创建 HTML

<h3 class='sectionHead'><span class='titlemark'>1   </span> <a id='x1-10001'></a>Connection</h3>

我希望它是一个简单的格式,以便条目没有多余的垃圾jekyll-toc,所以理想情况下:

\section{Connection}
\section{Parallel Transport}

会变成

<h3 class='sectionHead' id='section-1'>1 Connection</h3>
<h3 class='sectionHead' id='section-2'>2 Parallel Transport</h3>

我尝试了几种配置

\Configure{section} 
   {}{} 
   {\HCode{<h2 id="section-">}\Title\space}    {\HCode{</h2>}} 
\ConfigureMark{section}{\thesection}

但没有成功。

答案1

尝试以下配置:

\Preamble{xhtml}
\Configure{section} 
   {}{} 
   {\ifvmode\IgnorePar\fi\EndP\HCode{<h2 id="section-\thesection">}\TitleMark\space}    {\HCode{</h2>}} 
\ConfigureMark{section}{\thesection}
\makeatletter
\Configure{toTocLink}{\@gobbletwo}{}
\makeatother
\begin{document}
\EndPreamble

您需要使用\ifvmode\IgnorePar\fi\EndP来关闭当前段落,否则您的部分将包含在其中。您可以使用\thesection来构造id。即使您不使用目录,也始终会有一个指向目录和来自目录的链接。您可以使用 来删除它\Configure{toTocLink}{\@gobbletwo}{}

这是最终的 HTML 代码:

---
meta:
- charset: 'utf-8'
- content: 'TeX4ht (https://tug.org/tex4ht/)'
  name: 'generator'
- content: 'width=device-width,initial-scale=1'
  name: 'viewport'
- content: '2022-12-03-sample.tex'
  name: 'src'
styles:
- '2022-12-03-sample.css'
time: 1670080935
title: ''
---

   <h2 id='section-1'>1 Connection</h2>
<!--   l. 5   --><p class='noindent'>
</p>
   <h2 id='section-2'>2 Parallel Transport</h2>
    

相关内容