2

This is a followup of my question here and uses the same MWE and the config file provided by michal.h21.

MWE:

\documentclass[ebook,12pt,oneside,openany]{memoir}

\usepackage{lipsum}

\setsecheadstyle{\normalsize\itshape\raggedright}

\title{Book}
\author{Author}
\date{}

\begin{document}

\maketitle

\frontmatter

\tableofcontents \newpage

\mainmatter

\chapter{C1}

\section{S1}

\lipsum[1]

\end{document}

Config file:

\Preamble{xhtml}
\Css{h3.sectionHead{font-style:italic;font-weight:normal;}}
\begin{document}

\EndPreamble

The chapter header is missing in the table of contents in the ebook with the current version of tex4ebook on Texlive 2018:

picture

Is there a way to fix this? Thanks.

  • 1
    The chapter format? You are defining the style for a HTML header of level 3 (h3), that not change the chapter titles, but changed the section titles ... Have not you thought that therefore, maybe, for chapters it should be h2.chapterHead instead of h3.sectionHead ? I cannot test it now. Try yourself! – Fran Jan 16 at 10:26
  • @Fran The chapter headings were ok previously with the same setup in the linked question. – user41974 Jan 16 at 12:38
2

We recently fixed handling of the optional parameter for \chapter command in Memoir configuration file for tex4ht. It seems that side effect of this fix was that the chapters without optional parameter aren't saved in the table of contents. To fix that, it is necessary to test for if the optional parameter is empty and use the main argument of \chapter when it is.

This is the fixed memoir.4ht:

% memoir.4ht (2019-01-16-14:27), generated from tex4ht-4ht.tex
% Copyright 2003-2009 Eitan M. Gurari
% Copyright 2009-2019 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 2019-01-16-14:27}

\input book.4ht
\input verse.4ht
% Table handling:
\input array.4ht
\input dcolumn.4ht
\input tabularx.4ht
\input booktabs.4ht
\let\columnlines\empty

\let\rm\empty
\let\sf\empty
\let\tt\empty
\let\bf\empty
\let\it\empty

\def\@chapter[#1]#2{%
   \gHAdvance\:mpNum by 1
\HAssign\minipageNum=\:mpNum \relax
%
   {\SkipRefstepAnchor \let\addcontentsline\:gobbleIII\no@chapter[#1]{}%
    \global\let\f@rtoc\f@rtoc
    \ifx\f@rtoc\empty\gdef\f@rtoc{#2}\fi
    \global\let\f@rhdr\f@rhdr  }%
   \HtmlEnv   \Toc:Title{\f@rtoc}\:chapter{#2}}
\def\:tempc{\@ifstar\o:tableofcontents:\o:tableofcontents:}
\HLet\tableofcontents\:tempc
\NewConfigure{poemline}{2}
\NewConfigure{legend}{2}
\renewcommand\legend[1]{\a:legend #1\b:legend}

\ifx \memgobble\:UnDef
   \pend:defI\getthelinenumber{%
   \let\sv:thepoemline\thepoemline
   \pend:def\thepoemline{\a:poemline}%
   \append:def\thepoemline{\b:poemline}}
\append:defI\getthelinenumber{\let\thepoemline\sv:thepoemline}

\else
   \pend:defII\getthelinenumber{%
   \let\sv:thepoemline\thepoemline
   \pend:def\thepoemline{\a:poemline}%
   \append:def\thepoemline{\b:poemline}}
\append:defII\getthelinenumber{\let\thepoemline\sv:thepoemline}

   \let\no@Msect\M@sect
\NewConfigure{@sec @ssect}[1]{%
   \def\rdef:sec##1{#1\csname no@##1\endcsname}}
\:CheckOption{sections-}     \if:Option
   \Configure{@sec @ssect}{}
\else
   \Configure{@sec @ssect}{%
      \let\sv:Sc\:Sc \let\sv:sect\@sect \let\sv:ssect\@ssect
\let\sv:Msect\M@sect
\let\:Sc\:gobble
      \def\M@sect##1##2##3##4##5##6[##7][##8]##9{%
   \ifx \o:@seccntformat:\:UnDef
  \let\o:@seccntformat:\@seccntformat
\fi
\let\@seccntformat\:gobble
%
   \let\M@sect\no@Msect   \xdef\c:secnumdepth{##2}%
   {\SkipRefstepAnchor \let\addcontentsline\:gobbleIII \let\mark\:gobble
    \no@Msect{##1}{##2}{##3}{##4}{##5}{##6}[{##7}][{##8}]{}}%
   \let\:Sc\sv:Sc \let\@sect\sv:sect \let\@ssect\sv:ssect
\let\M@sect\sv:Msect
%
   \let\@seccntformat=\o:@seccntformat:
%
   \HtmlEnv    \Toc:Title{##8}\csname no:#1\endcsname{##9}}%
%
      \def\@sect##1##2##3##4##5##6[##7]##8{%
   \ifx \o:@seccntformat:\:UnDef
  \let\o:@seccntformat:\@seccntformat
\fi
\let\@seccntformat\:gobble
%
   \let\@sect\no@sect   \xdef\c:secnumdepth{##2}%
   {\SkipRefstepAnchor \let\addcontentsline\:gobbleIII \let\mark\:gobble
    \no@sect{##1}{##2}{##3}{##4}{##5}{##6}[{##7}]{}}%
   \let\:Sc\sv:Sc \let\@sect\sv:sect \let\@ssect\sv:ssect
\let\M@sect\sv:Msect
%
   \let\@seccntformat=\o:@seccntformat:
%
   \HtmlEnv    \Toc:Title{##7}\csname no:#1\endcsname{##8}}%
%
      \def\@ssect##1##2##3##4##5{%
   \gdef\ssect:ttl{##5}%
%
   \let\@ssect\no@ssect
   {\def\addcontentsline####1####2####3{}%
    \no@ssect{##1}{##2}{##3}{##4}{}}%
   \let\:Sc\sv:Sc \let\@sect\sv:sect \let\@ssect\sv:ssect
\let\M@sect\sv:Msect
%
   \HtmlEnv   \csname :like#1\endcsname{##5}}%
\IgnorePar}
\fi

\fi
\Hinput{memoir}
\endinput

The important definition is the following:

\def\@chapter[#1]#2{%
   \gHAdvance\:mpNum by 1
\HAssign\minipageNum=\:mpNum \relax
%
   {\SkipRefstepAnchor \let\addcontentsline\:gobbleIII\no@chapter[#1]{}%
    \global\let\f@rtoc\f@rtoc
    \ifx\f@rtoc\empty\gdef\f@rtoc{#2}\fi
    \global\let\f@rhdr\f@rhdr  }%
   \HtmlEnv   \Toc:Title{\f@rtoc}\:chapter{#2}}

The fix is contained in the following line:

    \ifx\f@rtoc\empty\gdef\f@rtoc{#2}\fi

The ePub TOC now seems to be fine:

enter image description here

  • Many thanks for the fix. – user41974 Jan 17 at 0:20

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.