假设我有一份如下的文档:
\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}