大多数或所有论文的引言中都有一个最后一段,描述其中的部分内容。我想自动生成它,我猜这应该是可能的,因为它很像一个索引,但实际上我不知道如何做到这一点(因此我无法提供 mwe,对此我深感抱歉)。
我的猜测是应该可以为每个部分添加一个描述,例如:
\section{Preliminaries}
\label{sec:preliminaries}
\description{we introduce the concepts that will be relevant along the paper}
我想在介绍的结尾插入这样的内容:
\descriptions{}
其应扩展为:
本文的结构如下:第 2 部分我们介绍了本文中涉及的概念。第 3 部分我们...
这很像任何书中的目录 (TOC),这是散文而不是表格,并且有一个附加字段,但简而言之,它们是相同的。似乎可行。
也欢迎大家指点我应该检查什么,我真的不知道。我也不知道那些目录是如何生成的。
PD:除此之外,我宁愿不破坏拥有常规目录的可能性,也就是说,我宁愿不修改目录的命令(但也许会重复其中一些命令)。
PD:我找到了这个包,但是出现了错误(\l@paragraph undefined
)http://texblog.org/2008/07/13/define-your-own-list-of/
答案1
使用已经提供的基础设施;我们使用补充的“目录”,它不会干扰标准目录。
只需初始化此“目录”的生成并添加一个命令\l@desc
,该命令将用于打印上次运行中收集的条目。当然,为了同步,需要两次运行。
\documentclass{article}
\makeatletter
\newcommand{\sectiondescriptions}{%
\par
The structure of the paper is as follows.
\par
\@starttoc{dsc}%
}
\newcommand{\sectiondescription}[1]{%
\addcontentsline{dsc}{desc}{In Section \thesection\space#1}%
}
\newcommand{\l@desc}[2]{#1\par}
\makeatother
\begin{document}
\section{Introduction}
We say something about the paper.
\sectiondescriptions
\section{Preliminaries}\label{sec:preliminaries}
\sectiondescription{we introduce the concepts that will be relevant along the
paper.}
\section{Conclusion}
\label{sec:conclusion}
\sectiondescription{we are done.}
\end{document}
答案2
编译两次即可达到您的要求。它有点脆弱。
编辑以使用@Dan的\InputIfFileExists
但仍然更喜欢明确关闭文件。
\documentclass{article}
\newcommand{\structure}{\InputIfFileExists{structure}{}}
\newcommand{\beginstructure}[1]{%
\newwrite\delayedtext
\immediate\openout\delayedtext=structure.tex
\immediate\write\delayedtext{#1}
}
\newcommand{\addtostructure}[1]{%
\immediate\write\delayedtext{%
In Section \arabic{section} #1}
In this section #1
}
\newcommand{\myendstructure}{%
\immediate\closeout\delayedtext
}
\begin{document}
\structure
\beginstructure{The structure of the paper is as follows.}
\section{Preliminaries}
\label{sec:preliminaries}
\addtostructure{we introduce the concepts that will be relevant along the
paper.}
\section{Conclusion}
\label{sec:conclusion}
\addtostructure{we are done.}
\myendstructure
\end{document}
编辑:如果你不喜欢辅助文件上的 tex 扩展名,你可以给它任何你喜欢的扩展名,并用 tex 源文件名命名 - 例如
\immediate\openout\delayedtext=\jobname.struct
...
\newcommand{\structure}{\InputIfFileExists{\jobname.struct}{}}