Jerarquía de encabezados en tex4ht

Jerarquía de encabezados en tex4ht

Parece que los títulos tex4ht comienzan en <h2>el título. El siguiente texto:

\documentclass{article}

\title{Testing headings}
\author{Alex Watson}
\date{\today}

\begin{document}

\maketitle

\section{Top level section}

\subsection{Next level section}

\end{document}

procesado con make4ht -uf html5 ht-headings.texproduce el siguiente HTML:

<!DOCTYPE html> 
<html lang='en-US' xml:lang='en-US'> 
<head><title>Testing headings</title> 
<meta charset='utf-8' /> 
<meta name='generator' content='TeX4ht (http://www.tug.org/tex4ht/)' /> 
<meta name='viewport' content='width=device-width,initial-scale=1' /> 
<link rel='stylesheet' type='text/css' href='ht-headings.css' /> 
<meta name='src' content='ht-headings.tex' /> 
</head><body>
   <div class='maketitle'>



<h2 class='titleHead'>Testing headings</h2>
<div class='author'><span class='cmr-12'>Alex Watson</span></div><br />
<div class='date'><span class='cmr-12'>September 19, 2020</span></div>
   </div>
   <h3 class='sectionHead'><span class='titlemark'>1   </span> <a id='x1-10001'></a>Top level section</h3>
<!-- l. 13 --><p class='noindent'>
</p>
   <h4 class='subsectionHead'><span class='titlemark'>1.1   </span> <a id='x1-20001.1'></a>Next level section</h4>
    
</body> 
</html>

Los encabezados comienzan con h2el título, luego h3la sección, etc.

Habría esperado que el título fuera h1.

Quizás lo más significativo es que si usa clases booky algunas \chaptermacros, el título sigue siendo, h2¡pero los capítulos también lo son h2!

¿Existe una manera fácil de mover los niveles de encabezado 'uno hacia arriba', para usarlos h1como título, h2para el siguiente nivel de sección, etc.? (¿Y es razonable desear esto?)

Una solución que funcione con diferentes clases (¡y tal vez incluso cuando se divida en varios archivos html!) sería ideal, pero me doy cuenta de que podría ser pedir demasiado.

Respuesta1

Sé que no es una estructura demasiado lógica, pero me temo que cambiarla rompería los documentos existentes. De todos modos, puedes probar este archivo de configuración:

\Preamble{xhtml}

\begin{document}
\catcode`\:=11
% configure all sections to use our sectioning configuration
\newcommand\:setlevel[2]{%
\Configure{#1}{}{}
   {\ifvmode \IgnorePar\fi \EndP\IgnorePar
    \HCode{<#2 class="#1Head"\a:LRdir>}\TitleMark\space\HtmlParOff}
   {\HCode{</#2>}\HtmlParOn\ShowPar \IgnoreIndent \par}
\Configure{like#1}{}{}
   {\ifvmode \IgnorePar\fi
    \EndP\IgnorePar\HCode{<#2 class="like#1Head"\a:LRdir>}\HtmlParOff}
   {\HCode{</#2>}\HtmlParOn \IgnoreIndent \ShowPar \par}
}

\ifdefined\chapter
\:setlevel{chapter}{h1}
\:setlevel{section}{h2}
\:setlevel{subsection}{h3}
\:setlevel{subsubsection}{h4}
\else
\:setlevel{section}{h1}
\:setlevel{subsection}{h2}
\:setlevel{subsubsection}{h3}
\fi


\catcode`\:=12
\EndPreamble

Define un nuevo comando, \:setlevelque toma dos parámetros, nivel de sección y elemento HTML que debe usarse para ese nivel.

ingrese la descripción de la imagen aquí

   <h1 class='chapterHead'><span class='titlemark'>Chapter 1</span> <a id='x1-10001'></a>my chapter</h1>
   <h2 class='sectionHead'><span class='titlemark'>1.1   </span> <a id='x1-20001.1'></a>Top level section</h2>
<!-- l. 15 --><p class='noindent'>
</p>
   <h3 class='subsectionHead'><span class='titlemark'>1.1.1   </span> <a id='x1-30001.1.1'></a>Next level section</h3>

información relacionada