tex4ebook,在目录中使用段落和子子节

tex4ebook,在目录中使用段落和子子节

@michal.h21 EDIT2:我更新了所有存储库https://github.com/michal-h21。它起作用了。我编辑了代码,但它不起作用

这是我做的。我复制你的cfg.cfg,我创建myfile.tex并运行

tex4ebook   -l -f epub -m -t myfile.tex

这是简单的代码

    \documentclass{article} 

\makeatletter
\def\subsubsubsection{%
\penalty-9999
\@startsection{paragraph}{4}{0em}{0.1\parskip}{1em}{%
\small\rmfamily\mdseries\itshape}
}
\makeatother


\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}

    \begin{document}
    \tableofcontents
    \section{first seciton}
    \subsection{first subsection}
    \subsubsection{first subSUBsection}
    \subsubsubsection{first subSUBsubsection}

    my subsubsubsection here

    \paragraph{first para}

    werfj

    \section{second section}
    \section{third seciton}
    \end{document}

现在运行良好。

答案1

要求相当多,我希望我没有忘记任何东西。我已将您的代码从 TeX 文件移至文件.cfg,这样更灵活。您还需要开发版本tex4ebook,因为发行版中的版本有固定级别的部分,这些部分会转到NCX文件(它在侧面菜单中使用)。

\Preamble{xhtml,sections+}

\NewSection\subsubsubsection{\theparagraph}

\Configure{subsubsubsection}
{\ifvmode\IgnorePar\fi\EndP\IgnorePar\Tg<subsubsubsection id="subsubsubsection.\theparagraph">}
{\ifvmode\IgnorePar\fi\EndP\IgnorePar\Tg</subsubsubsection>}
{\addtocounter{paragraph}{1}
 \HCode{<font size="+0">}%
 \NoFonts\HCode{<span class="it">}%
 \TitleMark%
 \HCode{\Hnewline}}%
{\HCode{</span>}\EndNoFonts%
 \HCode{</font>}%
 \HCode{\Hnewline}%
 \par\IgnoreIndent\ShowPar%
}

\Css{span.it{font-style:italic;}}
\ConfigureMark{subsubsubsection}{\theparagraph~@@@~}
\Configure{toToc}{subsubsubsection}{paragraph}


\ConfigureToc{paragraph}
{~~~\HCode{<span class="paragraphToc" >}}{~@@@~}{}{\HCode{</span>}\HCode{<br />\Hnewline}}

% \ConfigureToc{subsubsubsection}
% {~~~\HCode{<span class="subsubsubsectionToc" >}}{~@@@~}{}{\HCode{</span>}\HCode{<br />\Hnewline}}

\def\newncxtox#1#2{%
  \ConfigureToc{#1}%
  {\closelevels{#2}%
  \csname a:NavSection\endcsname\csname Ncx:Mark\endcsname}
  {\csname c:NavSection\endcsname~@@@~}
  {}
  {\csname b:NavSection\endcsname%
    \finishtoclevel{#1}%
  }
}

\begin{document}
\expandafter\def\csname ncx:title\endcsname{%
  \HCode{<docTitle>\Hnewline<text>}\Title\HCode{</text>\Hnewline</docTitle>\Hnewline}
  \newncxtox{paragraph}{paragraph}
}
\EndPreamble

让我们深入研究一下代码:

\Preamble{xhtml,sections+}

您将通过sections+选项获得部分链接。

\ConfigureMark{subsubsubsection}{\theparagraph~@@@~}
\Configure{toToc}{subsubsubsection}{paragraph}

第一个配置将在子子子节计数器后添加@@@,第二个配置将使用配置将其包含在目录中\paragraph。因此\ConfigureToc{paragraph}这两个命令都有效。

\def\newncxtox#1#2{%
  \ConfigureToc{#1}%
  {\closelevels{#2}%
  \typeout{konfigurujeme nxc title #1, - #2}
  \csname a:NavSection\endcsname\csname Ncx:Mark\endcsname}
  {\csname c:NavSection\endcsname~@@@~}
  {}
  {\csname b:NavSection\endcsname%
    \finishtoclevel{#1}%
  }
}

\begin{document}
\expandafter\def\csname ncx:title\endcsname{%
  \HCode{<docTitle>\Hnewline<text>}\Title\HCode{</text>\Hnewline</docTitle>\Hnewline}
  \newncxtox{paragraph}{paragraph}
}

@@@这是一个让你进入文件的卑鄙手段NCX,通常无法配置。该\newnctox命令模仿内部tex4ebook命令,负责确保NCX文件中条目的正确层次结构。它是与当前部分处于同一级别或较低级别的条目列表。由于\subsubsubsection配置为\paragraph并且因为它是层次结构的最低部分,因此结束列表中的唯一元素是它paragraph本身。

以下是一些结果:

在此处输入图片描述

以及文件:

在此处输入图片描述

最后,电子书查看器:

在此处输入图片描述

相关内容