make4ht: ¿puede generar una salida html enmarcada?

Sep 17 2020

Estoy usando make4htpara generar salida HTML para un artículo que estoy escribiendo y publíquelo en línea. Hasta aquí todo bien. Me gustaría saber si sería posible generar una salida HTML enmarcada para que siempre tenga el menú en el panel izquierdo, el contenido en el panel derecho y así sucesivamente.

Estaba pensando que podría configurar una página index.html enmarcada que extraiga el html principal generado make4ht(que es básicamente el menú) a la izquierda y luego tener una página de contenido inicial en el panel derecho. Puede modificar la página principal generada desde make4ht(después del hecho) para que se haya "_target"configurado en el otro marco en todos los enlaces (si recuerdo correctamente cómo hacer esto en html) ... pero sería mucho mejor make4hthacerlo que automágicamente para mí.

Respuestas

3 michal.h21 Sep 18 2020 at 01:03

Puedes probar la framesopción si realmente quieres usar marcos. Como en este ejemplo:

\documentclass{book}
\usepackage{kantlipsum}
\begin{document}
\chapter{Hello}
\kant[1-3]
\chapter{World}
\section{Section}
\kant[4-5]
\section{Another Section}
\kant[6-7]
\end{document}

Compile el archivo usando

make4ht filename.tex "3,frames"

Y produce la siguiente página HTML:

Otra opción es utilizar el método que utilizo para el trabajo en curso Tex4ht documentaton . Consulte el repositorio de Github para ver las configuraciones que utilicé.

A diferencia de los marcos, la tabla de contenido se inserta en cada página, pero contiene enlaces solo a los niveles de sección de nivel superior. Solo se muestran las secciones del capítulo actual.

En particular, el código HTML que inserta TOC se configura en config.cfg :

% Mini TOC
\Configure{crosslinks+}{%
  \bgroup
  % container for the page toc
  \Configure{tableofcontents}{\IgnorePar\EndP\HCode{<nav class="TOC">}\IgnorePar}
  {\HCode{\Hnewline}}{\IgnorePar\HCode{</nav>\Hnewline}\ShowPar}{}{}%
  \TableOfContents[chapter,section,subsection]% Print table of contents before crosslinks
  \egroup
  \ifvmode\IgnorePar\fi\EndP%
  \HCode{<main class="main-content">\Hnewline<nav class="crosslinks-top">} }
  {\HCode{</nav>\Hnewline}}
{\ifvmode\IgnorePar\fi\EndP%
  \HCode{<nav class="crosslinks-bottom">}}{\HCode{</nav>}}{}{}

Los comandos de seccionamiento que se incluyen en la tabla de contenido se seleccionan mediante el \TableOfContentscomando. La apariencia de TOC se diseña usando style.css . El último componente del manejo de TOC está en build.mk4 . El collapsetocfiltro limpiará el TOC y mostrará solo las secciones actuales.

Así es como se ve: