制作第二个“目录”,其中包含每个部分的简短摘要

制作第二个“目录”,其中包含每个部分的简短摘要

假设我有一份如下的文档:

\documentclass{article}
\begin{document}

\tableofcontents

\section{A}
\subsection{A.A}    \subsection{A.B}
\section{B}
\subsection{B.A}    \subsection{B.B}

\end{document}

我想为每个部分添加一个简短的摘要,并在第一个目录之后生成第二个目录,其中包含此摘要。最终结果可能如下所示:

内容
[正常目录]

概括

本节讲的是内容。


本节内容涉及一切。

[文件其余部分]

显然我可以手动实现结果,但我宁愿不这样做。例如,如果我可以将摘要放在节的开头(在代码中),并自动将其放在正确位置的“摘要目录”中,那就太好了。

附加问题:我想通过 KOMA 脚本课程来实现所有这些。因此,如果可能的话,不要使用专门用于回忆录的魔法。

答案1

你可以用以下方式做这些事情埃托克


笔记: 有关该技术的详细说明(包括下面的评论),请参见我的答案扩展的类似目录的环境


评论:下面的代码定义了一个命令\sectionsummary,该命令最终将内容写入文件 .toc。因此,它与该命令一样,面临着脆弱命令的难题\section。要让作为参数给出的材料以\sectionsummary未展开的形式找到.toc文件,可以使用以下使用e-TeX原语的代码\unexpanded

\newcommand*{\sectionsummary}[1]%
        {\etoctoccontentsline{sectionsummary}{\unexpanded{\unexpanded{#1}}}}

对于这种变体,作为参数给出的材料只有在排版\sectionsummary时才会被扩展。Summary

摘要目录

\documentclass{scrartcl}
\usepackage{etoc}
\etocsetlevel {sectionsummary}{6}

\newcommand*{\sectionsummary}[1]{\etoctoccontentsline{sectionsummary}{#1}}

\begin{document}

\tableofcontents

\etocsettocstyle {\bigskip\noindent\bfseries\sffamily\Large 
                  Summary\par\normalfont\normalsize}{}

% section headings exactly as in the standard TOC
\makeatletter
    \let\original@l@section\l@section
    \etocsetstyle {section}{}{}% cf etoc manual, "Another compatibility mode"
       {\original@l@section{\numberline{\etocnumber}\etocname}{\etocpage}}{}
\makeatother

% now setting a style to print the summaries:
\etocsetlevel {sectionsummary}{2}
\etocsetstyle {sectionsummary}{\parindent1.5em\normalfont}
                              {\etocname}{\par}{\medskip}

% subsections a priori at level 2, need to be moved out of the way
\etocsetlevel {subsection}{6}

\etocsettocdepth {sectionsummary}
\tableofcontents
% can be located anywhere in the document. 
% (but if before the main TOC, or before some other TOC, put everything in a
% group, to limit the scope of our style changes)

\section{A}
\sectionsummary{This section is about stuff.}% one paragraph only please.
\sectionsummary{Oh, and I forgot to say that also.}% another paragraph.

Hello
\subsection{A.A}    
Hello

\subsection{A.B}
Hello

\section{B}
\sectionsummary{This section is about whatever.}

\subsection{B.A}    \subsection{B.B}

\end{document}

相关内容