这是我的问题的后续这里并使用相同的 MWE 和 michal.h21 提供的配置文件。
梅威瑟:
\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}
配置文件:
\Preamble{xhtml}
\Css{h3.sectionHead{font-style:italic;font-weight:normal;}}
\begin{document}
\EndPreamble
使用 Texlive 2018 上当前版本的 tex4ebook 的电子书目录中缺少章节标题:
有办法解决这个问题吗?谢谢。
答案1
\chapter
我们最近修复了Memoir 配置文件中命令的可选参数处理问题。似乎此修复的副作用是没有可选参数的章节未保存在目录中。要修复此问题,需要测试可选参数是否为空,并在为空时tex4ht
使用主参数。\chapter
这是固定的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
重要的定义如下:
\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}}
修复包含在以下行中:
\ifx\f@rtoc\empty\gdef\f@rtoc{#2}\fi
ePub TOC 现在看起来没什么问题: