
Auf die Quelldatei doc.tex
unten wende ich den Befehl an
make4ht doc.tex "3"
um eine HTML-Version zu erstellen, die für jeden Abschnitt eine separate Seite hat.
Wenn die resultierende doc.html
Datei in einem Browser geöffnet wird, wird die Titelseite angezeigt doc.html
.
Frage:Wie kann ich den make4ht
Aufruf ändern, eine Konfigurationsdatei verwenden oder die Quelle ändern, um auf dieser doc.html
Titelseite einen Navigationslink zu erhalten, der wie die Navigationslinks auf allen anderen Seiten auf das Inhaltsverzeichnis verweist?
\documentclass[oneside]{book}
\usepackage[parfill]{parskip}
\usepackage{blindtext}
\usepackage{hyperref}
\title{A Book}
\author{A. Non}
\begin{document}
\maketitle
\tableofcontents
\chapter{In the Beginning}
\section{Introduction}
\blindtext
\section{What's coming next}
\blindtext
\chapter{We Continue}
\blindtext
\chapter{In the End}
\blindtext
\end{document}
Antwort1
Die einfachste Lösung besteht darin, \tableofcontents
TeX4ht überhaupt nicht zu verwenden. In diesem Fall wird ein Inhaltsverzeichnis erstellt:
\documentclass[oneside]{book}
\usepackage[parfill]{parskip}
\usepackage{blindtext}
\usepackage{hyperref}
\title{A Book}
\author{A. Non}
\begin{document}
\maketitle
\ifdefined\HCode\else
\tableofcontents
\fi
\chapter{In the Beginning}
\section{Introduction}
\blindtext
\section{What's coming next}
\blindtext
\chapter{We Continue}
\blindtext
\chapter{In the End}
\blindtext
\end{document}
In diesem Fall habe ich den folgenden Code verwendet, um dies \tableofcontents
mit TeX4ht zu verhindern:
\ifdefined\HCode\else
\tableofcontents
\fi
Das Ergebnis ist diese Hauptseite:
Ich stimme jedoch zu, dass das ursprüngliche Verhalten nicht gut ist. Hier ist also eine korrigierte Version von book.4ht
, die das Inhaltsverzeichnis auch bei Vorhandensein von erstellen sollte \tableofcontents
. Beachten Sie, dass trotzdem eine separate Seite mit dem Inhaltsverzeichnis erstellt wird:
Der Code book.4ht
lautet wie folgt:
% book.4ht (2022-12-16-13:29), generated from tex4ht-4ht.tex
% Copyright 1997-2009 Eitan M. Gurari
% Copyright 2009-2022 TeX Users Group
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3c of this license or (at your option) any
% later version. The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions
% of LaTeX version 2005/12/01 or later.
%
% This work has the LPPL maintenance status "maintained".
%
% The Current Maintainer of this work
% is the TeX4ht Project <http://tug.org/tex4ht>.
%
% If you modify this program, changing the
% version identification would be appreciated.
\immediate\write-1{version 2022-12-16-13:29}
\Configure{UndefinedSec}{likepart}
\Configure{UndefinedSec}{likechapter}
\Configure{UndefinedSec}{likesection}
\Configure{UndefinedSec}{likesubsection}
\def\tableofcontents{%
\ifx\contentsname\empty \else
%
\chapter*{\contentsname}%
%
%
\fi
\:tableofcontents}
\let\:tempb\chapter
\Def:Section\chapter{\thechapter}{#1}
\let\:chapter\chapter
\let\chapter\:tempb
\def\@makechapterhead#1{}
\let\no@chapter\@chapter
\def\@chapter[#1]#2{%
\gHAdvance\:mpNum by 1
\HAssign\minipageNum=\:mpNum \relax
%
{\SkipRefstepAnchor \let\addcontentsline\:gobbleIII\no@chapter[#1]{}}%
\HtmlEnv \Toc:Title{#1}\:chapter{#2}}
\Def:Section\likechapter{}{#1}
\let\:likechapter\likechapter
\let\likechapter\:UnDef
\let\no@schapter\@schapter
\def\@schapter#1{%
\gdef\sch:ttl{#1}%
%
{\let\addcontentsline\:gobbleIII\no@schapter{}}%
\HtmlEnv \:likechapter{#1}}
\let\no@appendix\appendix
\Def:Section\appendix{\thechapter}{#1}
\let\:appendix\appendix
\def\appendix{%
\def\@chapter[##1]##2{%
\gHAdvance\:mpNum by 1
\HAssign\minipageNum=\:mpNum \relax
%
{\def\addcontentsline####1####2####3{}\no@chapter[##1]{}}%
\HtmlEnv \Toc:Title{##1}\:appendix{##2}}%
\no@appendix}
\edef\:TOC{%
\noexpand\ifx [\noexpand\:temp
\noexpand\expandafter\noexpand\:TableOfContents
\noexpand\else
\noexpand\Auto:ent{\ifnum \c@tocdepth >-2 part,\fi
\expandafter\ifx \csname @chapter\endcsname\relax
\ifnum \c@tocdepth >\z@ section,\fi
\else
\ifnum \c@tocdepth >\m@ne chapter,appendix,\fi
\ifnum \c@tocdepth>0 section,\fi
\fi
\ifnum \c@tocdepth>1 subsection,\fi
\ifnum \c@tocdepth>2 subsubsection,\fi
\ifnum \c@tocdepth>3 paragraph,\fi
\ifnum \c@tocdepth>4 subparagraph,\fi
UnDFexyz}%
\noexpand\fi}
\def\:tableofcontents{\futurelet\:temp\:TOC}
\def\Auto:ent#1{%
\edef\auto:toc{\noexpand\:TableOfContents[\ifx \auto:toc\:UnDef
#1\else \auto:toc \fi]} \auto:toc
\global\let\auto:toc\:UnDef }
\def\:tocs{\noexpand\:tableofcontents}
\pend:defIII\addcontentsline{%
\def\:temp{##1}\def\:tempa{toc}\ifx \:temp\:tempa
\gHAdvance\TitleCount 1 \fi }
\def\@dottedtocline#1#2#3#4#5{\hbox{\def\numberline##1{\e:listof
##1\f:listof}\c:listof#4\d:listof}\ignorespaces}
\def\@starttoc#1{%
\begingroup
\makeatletter \Configure{cite}{}{}{}{}%
\def\:temp{#1}\def\:tempa{toc}%
\a:listof\par
\@input{\jobname.\ifx \:temp\:tempa 4ct\else #1\fi}%
\b:listof
\if@filesw
\expandafter\expandafter\csname
newwrite\endcsname\csname tf@#1\endcsname
\immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
\fi
\global\@nobreakfalse
\endgroup}
\NewConfigure{tableofcontents*}[1]{%
\def\:tempa{#1}\ifx\empty\:tempa
\ifx \au:StartSec\:UnDef \else \gdef\:StartSec{\au:StartSec}\fi
\else
\edef\auto:toc{#1}%
\ifx \au:StartSec\:UnDef
\let\au:StartSec\:StartSec
\def\:StartSec{\:tableofcontents
%\global\let\auto:toc|=\:UnDef \:StartSec}%
\global\let\auto:toc\:UnDef \global\let\:StartSec\au:StartSec\:StartSec}%
%\pend:def\tableofcontents{\gdef\:StartSec{\au:StartSec}}%
\append:def\tableofcontents{\gdef\:StartSec{\au:StartSec}}%
\fi \fi
}
\ifx \@openbib@code\:UnDef \else
\pend:def\@openbib@code{\labelsep\z@}
\fi
\ifx \part\:UnDef\else
\def\@part[#1]#2{%
\ifnum \c@secnumdepth >-2\relax
\SkipRefstepAnchor \refstepcounter{part}%
\addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
\else
\addcontentsline{toc}{part}{#1}%
\fi
\csname @endpart\endcsname}
\let\:tempb\part
\Def:Section\part{\thepart}{#1}
\let\:part\part
\let\part\:tempb
\let\no@part\@part
\def\@part[#1]#2{%
{\let\addcontentsline\:gobbleIII\no@part[#1]{}}%
\HtmlEnv \Toc:Title{#1}\:part{#2}}
\Def:Section\likepart{}{#1}
\let\:likepart\likepart
\let\likepart\:UnDef
\let\no@spart\@spart
\def\@spart#1{%
{\let\addcontentsline\:gobbleIII\no@spart{}}%
\HtmlEnv \:likepart{#1}}
\fi
\ifx \section\:UnDef\else
\let\no@section\section
\Def:Section\section{\ifnum \c:secnumdepth>\c@secnumdepth \else
\thesection \fi}{#1}
\let\no:section\section
\def\section{\rdef:sec{section}}
\Def:Section\likesection{}{#1}
\let\:likesection\likesection
\let\likesection\:UnDef
\fi
\let\no@subsection\subsection
\Def:Section\subsection{\ifnum \c:secnumdepth>\c@secnumdepth \else
\thesubsection \fi}{#1}
\let\no:subsection\subsection
\def\subsection{\rdef:sec{subsection}}
\Def:Section\likesubsection{}{#1}
\let\:likesubsection\likesubsection
\let\likesubsection\:UnDef
\let\no@subsubsection\subsubsection
\Def:Section\subsubsection{\ifnum \c:secnumdepth>\c@secnumdepth \else
\thesubsubsection \fi}{#1}
\let\no:subsubsection\subsubsection
\def\subsubsection{\rdef:sec{subsubsection}}
\Def:Section\likesubsubsection{}{#1}
\let\:likesubsubsection\likesubsubsection
\let\likesubsubsection\:UnDef
\let\no@paragraph\paragraph
\Def:Section\paragraph{\ifnum \c:secnumdepth>\c@secnumdepth \else
\theparagraph \fi}{#1}
\let\no:paragraph\paragraph
\def\paragraph{\rdef:sec{paragraph}}
\Def:Section\likeparagraph{}{#1}
\let\:likeparagraph\likeparagraph
\let\likeparagraph\:UnDef
\let\no@subparagraph\subparagraph
\Def:Section\subparagraph{\ifnum \c:secnumdepth>\c@secnumdepth \else
\thesubparagraph \fi}{#1}
\let\no:subparagraph\subparagraph
\def\subparagraph{\rdef:sec{subparagraph}}
\Def:Section\likesubparagraph{}{#1}
\let\:likesubparagraph\likesubparagraph
\let\likesubparagraph\:UnDef
\let\:tempc\listoffigures
\pend:def\:tempc{\begingroup \a:listoffigures
\def\@starttoc{\:tableofcontents[lof]\:gobble}}
\append:def\:tempc{\b:listoffigures \endgroup}
\HLet\listoffigures\:tempc
\let\:tempc\listoftables
\pend:def\:tempc{\begingroup \a:listoftables
\def\@starttoc{\:tableofcontents[lot]\:gobble}}
\append:def\:tempc{\b:listoftables \endgroup}
\HLet\listoftables\:tempc
\NewConfigure{listoffigures}{2}
\NewConfigure{listoftables}{2}
\append:def\quote{\par\@totalleftmargin\z@}
\NewConfigure{caption}[4]{\c:def\cptA:{#1}\c:def\cptB:{#2}%
\c:def\cptC:{#3}\c:def\cptD:{#4}}
\long\def\@makecaption#1#2{%
{\cptA: \cap:ref{#1}%
\if :#1:\else\cptB:\fi}{\cptC:{#2}\cptD:}}
\pend:def\caption{\SkipRefstepAnchor}
\long\def\c:theindex:#1#2#3#4#5#6#7#8#9{%
\def\theindex{%
\def\idx:item{\SaveEverypar\ht:everypar{}#1}%
\def\endtheindex{\idx:item#2\RecallEverypar}%
\def\item{\idx:item\def\idx:item{#4}\let\index\@gobble #3}%
\def\subitem{\idx:item\def\idx:item{#6}\let\index\@gobble #5}%
\def\subsubitem{\idx:item\def\idx:item{#8}\let\index\@gobble #7}}%
\def\indexspace{\idx:item#9\let\idx:item\empty}}
\def\warn:idx#1{%
\expandafter\ifx \csname #1warn:idx\endcsname\relax
\expandafter\global
\expandafter\let \csname #1warn:idx\endcsname\def
\writesixteen
{---------------------------------------------------------}%
\:warning{If not done so, the index is to be processed by
^^J\space\space tex '\string\def\string\filename
{{#1}{idx}{4dx}{ind}} \noexpand\input\space idxmake.4ht'
^^J\space\space makeindex -o #1.ind #1.4dx
^^Jinstead of
^^J\space\space makeindex -o #1.ind #1.idx
^^JOn some platforms, the quotation marks ' should be
^^J replaced by double quotation marks " or eliminated.
^^J---------------------------------------------------------
}%
{\Configure{Needs}{File: #1.4idx}\Needs{}}%
\fi}
\ifOption{info}{\Log:Note{
A script of the form
^^Jtex '\def\string\filename{{\%\%1}{idx}{4dx}{ind}}
\string\input\space idxmake.4ht'
^^Jmakeindex -o \%\%1.ind \%\%1.4dx
^^Jin the env file, automatically calls to the revised makeindex
^^Jcommand. An extra compilation of the source LaTeX file is required,
^^Jto get the index correctly into the output.}}{}
\def\ind:defs{\let\LNKidx\empty
\def\LNK##1##2##3##4{\ifx\NewConfigure\:UnDef\else
\def\LNK:number{##4}%
\a:LNK[##1]{##2}{}\gHAdvance\:LNKno1
\def\:THIrd{##3}\ifx\:THIrd\empty
\LNKidx{\ifx\c:LNK\empty\:LNKno\else \c:LNK\fi}\else
\LNKidx{##3}\fi
\global\let\LNKidx\empty
\b:LNK
\fi}%
\def\:LNKno{0}}
\NewConfigure{LNK}{3}
\Configure{LNK}{\Link}{\EndLink}{}
\def\yhbLNK#1{\expandafter\let\expandafter\LNKidx\csname
#1\endcsname\LNK}
\Configure{@begin}{theindex}{\ind:defs}
\let\o:maketitle:\maketitle
\def\maketitle{\bgroup
\gHAdvance\:mpNum by 1
\HAssign\minipageNum=\:mpNum \relax
%
\ifx \EndPicture\:UnDef
\def\sec:typ{title}%
\Configure{HtmlPar}{}{}{}{}%
\Configure{newpage}{}%
\ConfigureEnv{center}{\empty}{}{\empty}{\empty}
\let\a:tabular:sv\a:tabular \let\b:tabular:sv\b:tabular
\let\c:tabular:sv\c:tabular \let\d:tabular:sv\d:tabular
\let\e:tabular:sv\e:tabular \let\f:tabular:sv\f:tabular
\let\before:begintabular:sv\before:begintabular
%
\Configure{HBorder}{}{}{}{}{}{}{}{}{}{}%
\Configure{tabular}{}{}{}{\e:mktl}
{\bgroup \let\a:tabular\a:tabular:sv \let\b:tabular\b:tabular:sv
\let\c:tabular\c:tabular:sv \let\d:tabular\d:tabular:sv
\let\e:tabular\e:tabular:sv \let\f:tabular\f:tabular:sv
\let\before:begintabular\before:begintabular:sv
}{\egroup}
\ConfigureEnv{tabular}{\empty}{}{}{}%
%
\pend:def\@title{\a:ttl}\append:def\@title{\b:ttl}%
\pend:def\@date{\a:date}\append:def\@date{\b:date}%
\pend:def\@author{\a:author}\append:def\@author{\b:author}%
\def\and{\a:and}
%
\fi
\pic:gobble\a:mktl \o:maketitle: \pic:gobble\b:mktl
\egroup \let\maketitle\empty}
\NewConfigure{maketitle}[4]{\c:def\a:mktl{#1}\c:def\b:mktl{#2}%
\c:def\a:ttl{#3}\c:def\b:ttl{#4}}
\NewConfigure{thanks author date and}[8]{%
\c:def\a:thanks{#1}\c:def\b:thanks{#2}\c:def\a:author{#3}\c:def\b:author{#4}%
\c:def\a:date{#5}\c:def\b:date{#6}\c:def\a:and{#7}\c:def\e:mktl{#8}}
\long\def\:tempc{\@roman \c@enumiii}
\ifx \theenumiii\:tempc
\def\:tempc{\a:enumiii\@roman\c@enumiii\b:enumiii}
\HLet\theenumiii\:tempc
\fi
\NewConfigure{enumiii}{2}
\append:def\quotation{\a:quotation\par\@totalleftmargin\z@}
\NewConfigure{quotation}{1}
\NewConfigure{listof}{6}
\ConfigureToc{likeparagraph} {}{\empty}{}{\newline}
\ConfigureToc{likepart} {}{\empty}{}{\newline}
\ConfigureToc{likesection} {}{\empty}{}{\newline}
\ConfigureToc{likesubparagraph} {}{\empty}{}{\newline}
\ConfigureToc{likesubsection} {}{\empty}{}{\newline}
\ConfigureToc{likesubsubsection} {}{\empty}{}{\newline}
\ConfigureToc{paragraph} {\empty}{\ }{}{\newline}
\ConfigureToc{part} {\empty}{\ }{}{\newline}
\ConfigureToc{section} {\empty}{\ }{}{\newline}
\ConfigureToc{subparagraph} {\empty}{\ }{}{\newline}
\ConfigureToc{subsection} {\empty}{\ }{}{\newline}
\ConfigureToc{subsubsection} {\empty}{\ }{}{\newline}
\ConfigureToc{appendix} {\empty}{\ }{}{\newline}
\ConfigureToc{chapter} {\empty}{\ }{}{\newline}
\ConfigureToc{likechapter} {}{\empty}{}{\newline}
\Hinput{book}
\endinput