minitoc 和 tableof 包兼容吗?

minitoc 和 tableof 包兼容吗?

编辑:好的,我花了更多时间解决这个问题。我隔离了这个问题,并编写了一个非常小的代码来重现这个问题。

以下代码并未产生我想要的结果。

  • minitoc每章开头都应包含一个。
  • 每个部分都应以链接到其他部分的标签开始hyperref,并以包含该部分主标签的部分表格结束。例如,如果定义sec1标签“a”,则引用标签“a”的所有部分都应出现在最后一个表格中。

我制作了一个可以做到这一点的 latex 文档。但是,\tableof\minitoc一次调用后很长时间就不起作用了。

因此,左边是我想要的一个例子,右边是我拥有的一个例子: 左边是我想要的,右边是我拥有的

以下是新代码:

\documentclass[]{book}

\usepackage{lipsum}
\usepackage{etoolbox}
\usepackage{tableof}
\usepackage{hyperref}
\usepackage{import}
\usepackage{minitoc}

\newcommand{\sectionHead}[3]{
    %1 : title
    %2 : tags reference
    %3 : tags

    %tag the content
    \toftagthis{#3}
    \section[#1]{ \hypertarget{#2}{#1} }
    %for visual content
    \keywords{#3}
}

\newcommand{\sectionFoot}[1]{
    % Keyword of the section
    \subsection[Table of tags]{Table of tags}
    \tableof{#1}
    \newpage
}

\newcommand{\keywords}[1]{%
    \def\nextitem{\def\nextitem{, }}
    \renewcommand*{\do}[1]{\nextitem \hyperlink{##1}{##1} }
    \textbf{tags:} \docsvlist{ #1 }
}

\begin{document}

\dominitoc
\tableofcontents

\chapter{Ch 1}
\minitoc

    \sectionHead{Sec 1}{a}{a,b}

\lipsum[1]

    \sectionFoot{a}


    \sectionHead{Sec 2}{b}{a,b}

\lipsum[1]

    \sectionFoot{b}


    \sectionHead{Sec 3}{c}{c}

\lipsum[1]

    \sectionFoot{c}

\chapter{Ch 2}
\minitoc

    \sectionHead{Sec 4}{d}{a,d}

\lipsum[1]

    \sectionFoot{d}

    \sectionHead{Sec 5}{e}{e,f}

\lipsum[1]

    \sectionFoot{e}

    \sectionHead{Sec 6}{f}{f,b}

\lipsum[1]

    \sectionFoot{f}

\end{document}

你知道我该如何解决这个问题吗?

编辑:我尝试了命令

\setcounter{mtc}{*number of the chapter*}

没有成功。

答案1

更新答案(2018 年 10 月)

1.4b 版tableof已经发布以修复该问题的根本原因。(抱歉延迟了......)


原始答案

(摘自评论)

tableof先验地,与 不存在不兼容性minitoc。文档中的问题来自于一个事实,即前面的最后一项\end{document}\newpage(正如@touhami 指出的那样)。这意味着\end{document}会在最后一页已经发送出去时执行。这会导致命令tableof中放置的某些指令丢失\AtEndDocument。结果,主toc文件中缺少一个宏,您会得到缺少目录的综合症。最简单的方法是暂时避免以\newpage作为最后一项来结束文档正文。如果这是不可避免的,那么评论中已经指出了一种不完全通用的解决方法。

相关内容