make4ht: フレーム化された HTML 出力を生成できますか?

make4ht: フレーム化された HTML 出力を生成できますか?

私は、make4ht執筆中の記事の HTML 出力を生成し、それをオンラインで投稿するために使用しています。 これまでのところ、順調です。 常に左側のペインにメニュー、右側のペインにコンテンツなどが表示されるように、フレーム化された HTML 出力を生成できるかどうかを知りたいです。

私は、左側に生成されたメイン HTML make4ht(基本的にはメニュー) を引き出し、右側のペインに初期コンテンツ ページを表示するフレーム化された index.html ページを設定できると考えていました。生成されたメイン ページをmake4ht(事後に) 変更して、すべてのリンクに別のフレームを設定することもできます (HTML でこれを行う方法を正しく覚えていれば)... しかし、そうする方"_target"がはるかに便利です。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リポジトリ私が使用した構成について。

フレームとは対照的に、目次は各ページに挿入されますが、最上位のセクション レベルへのリンクのみが含まれます。現在の章のセクションのみが表示されます。

特に、目次を挿入する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の外観は、スタイル.cssTOC処理の最後のコンポーネントはビルド.mk4フィルターcollapsetocにより目次がクリーンアップされ、現在のセクションのみが表示されます。

こんな感じです:

ここに画像の説明を入力してください

関連情報