make4ht: può generare output HTML con cornice?

Sep 17 2020

Sto usando make4htper generare output HTML per un articolo che sto scrivendo e pubblicandolo online. Fin qui tutto bene. Vorrei sapere se sarebbe possibile generare output HTML con frame in modo da avere sempre il menu nel riquadro sinistro, il contenuto nel riquadro destro e così via.

Stavo pensando di poter impostare una pagina index.html incorniciata che estrae l'html principale generato da make4ht(che è fondamentalmente il menu) a sinistra e quindi avere una pagina di contenuto iniziale nel riquadro di destra. Posso modificare la pagina principale generata da make4ht(dopo il fatto) per aver "_target"impostato l'altro frame su tutti i link (se ricordo bene come fare questa cosa in html) ... ma sarebbe molto più bello averlo make4htfatto è automagicamente per me.

Risposte

3 michal.h21 Sep 18 2020 at 01:03

Puoi provare l' framesopzione se vuoi davvero usare i frame. Come in questo esempio:

\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}

Compila il file usando

make4ht filename.tex "3,frames"

E produce la seguente pagina HTML:

Un'altra opzione è quella di utilizzare il metodo che utilizzo per la documentazione del lavoro in corso Tex4ht . Vedi il repository Github per le configurazioni che ho usato.

A differenza dei frame, l'indice è inserito in ogni pagina, ma contiene solo collegamenti ai livelli di sezionamento di livello superiore. Vengono mostrate solo le sezioni del capitolo corrente.

In particolare, il codice HTML che inserisce l'indice è configurato in 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>}}{}{}

I comandi di sezionamento inclusi nell'indice vengono selezionati utilizzando il \TableOfContentscomando. L'aspetto del sommario è definito utilizzando style.css . L'ultimo componente della gestione del sommario è in build.mk4 . Il collapsetocfiltro ripulirà l'indice e mostrerà solo le sezioni correnti.

Ecco come appare: