make4ht: может ли он генерировать фреймированный вывод HTML?

make4ht: может ли он генерировать фреймированный вывод HTML?

Я использую make4htдля генерации HTML-вывода для статьи, которую я пишу и размещаю в сети. Пока все хорошо. Я хотел бы узнать, возможно ли генерировать фреймовый HTML-вывод, чтобы у вас всегда было меню на левой панели, контент на правой панели и так далее.

Я думал, что я мог бы настроить страницу index.html с фреймами, которая тянет основной html, сгенерированный из make4ht(который в основном является меню) слева, а затем иметь некоторую начальную страницу контента на правой панели. Можно изменить главную страницу, сгенерированную из make4ht(по факту), чтобы настроить "_target"другой фрейм на всех ссылках (если я правильно помню, как это сделать в html)... но было бы намного лучше сделать make4htэтоавтоматическидля меня.

решение1

Вы можете попробоватьframesвариант, если действительно хотите использовать фреймы. Как в этом примере:

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

Скомпилируйте файл, используя

make4ht filename.tex "3,frames"

И он создает следующую HTML-страницу:

введите описание изображения здесь

Другой вариант — использовать метод, который я использую дляработа в процессе Tex4ht документация. СмотритеРепозиторий Githubдля конфигураций, которые я использовал.

В отличие от фреймов, TOC вставляется на каждой странице, но содержит ссылки только на верхние уровни секционирования. Отображаются только разделы текущей главы.

В частности, HTML-код, который вставляет оглавление, настроен в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>}}{}{}

Команды секционирования, входящие в TOC, выбираются с помощью \TableOfContentsкоманды. Внешний вид TOC оформляется с помощьюстиль.css. Последний компонент обработки TOC находится всборка.mk4Фильтр collapsetocочистит оглавление и покажет только текущие разделы.

Вот как это выглядит:

введите описание изображения здесь

Связанный контент