隐藏一些文本但不将其从目录中隐藏?

隐藏一些文本但不将其从目录中隐藏?

我知道我试图做的事情可能听起来有些牵强。但是,我只是在写论文。这项工作才刚刚开始,所以我开始写下目录,以便为我的工作提供支架。

现在,虽然我希望我的目录能够完整显示,但下面却有大量的标题和副标题而没有任何内容,这确实很烦人。

我可以让一大堆标题和副标题消失,而不从目录中删除它们吗?我尝试将它们包装在 -couple 中\iffalse\fi但它们确实不再显示,但它们也从我的目录中消失了。

我该怎么办?我不在乎这个技巧是否肮脏,只是想在我仍在开发内容时让一切变得更整洁。

答案1

我建议\TODO为尚无内容的章节/部分/小节在命令中添加前缀:

\documentclass[a4paper]{book}

\usepackage{xparse}% for easier management of optional arguments

\ExplSyntaxOn
\NewDocumentCommand{\TODO}{msom}
 {
  \IfBooleanF{#1}% do nothing if it's starred
   {
    \cs_if_eq:NNT #1 \chapter { \cleardoublepage\mbox{} }
    \refstepcounter{\cs_to_str:N #1}
    \IfNoValueTF{#3}
     {
      \addcontentsline{toc}{\cs_to_str:N #1}{\protect\numberline{\use:c{the\cs_to_str:N #1}}#4}
     }
     {
      \addcontentsline{toc}{\cs_to_str:N #1}{\protect\numberline{\use:c{the\cs_to_str:N #1}}#3}
     }
   }
  \cs_if_eq:NNF #1 \chapter { \mbox{} }% allow page breaks after sections
 }
\ExplSyntaxOff

\begin{document}

\frontmatter

\tableofcontents

\mainmatter

\chapter{Introduction}

This has contents, which will be completed according
to the results in section~\ref{sec:procr}.

\chapter{Main thing}

\section{Whatever}

This has contents.

\TODO\section{Procrastination}\label{sec:procr}

\TODO\section[Short title for this one]
  {This section has a very very long title}

\TODO\chapter{Developments}

\end{document}

当您开始编写内容时,只需删除\TODO前缀。

在此处输入图片描述

答案2

不知道您的设置细节会很难给出最终答案。一种(相对)通用的方法是先建立一个开关,指示是否应显示标题(下面设置为 true):

\newif\ifshowheadings \showheadingstrue

这样,就可以定义一个“包装器”命令来评估每个标题,并显示是否\showheadingstrue如果\showheadingsfalse

\def\showheadings#1{\ifshowheadings#1\else\relax\fi}

然后,每个部分将作为此命令的参数放置,例如:

\showheadings{\chapter{Test}}
\showheadings{\section{Subsection Test}}

使用 运行文档时\showheadingstrue,所有标题都将包含在目录中,并将相应的\contentsline命令写入toc文件。根据类别,\tableofcontents可以使用以下命令复制命令:

\chapter*{Contents}
\input{\jobname.toc}

因此,要离婚实际的目录来自显示TOC,您可以更改\jobname为其他名称(例如schematictoc)。将此更改包装到命令中可能如下所示:

\def\switchedtableofcontents{\ifshowheadings\tableofcontents\else\chapter*{Contents}\input{schematictoc.toc}\fi}

因此,一种方法是按照 详细说明的那样布局您的论文\showheadingstrue。处理您的文档,生成toc与布局相对应的文件。然后,将文件的名称更改tocschematictoc.toc并设置\showheadingsfalse。此后,对文档的任何更改都不会反映在显示的目录中。

放在一起:

\documentclass{report}
\newif\ifshowheadings \showheadingstrue
\def\showheadings#1{\ifshowheadings#1\else\relax\fi}
\def\switchedtableofcontents{\ifshowheadings\tableofcontents\else\chapter*{Contents}\input{schematictoc.toc}\fi}
\begin{document}


\switchedtableofcontents

\showheadings{\chapter{Test}}
\showheadings{\section{Subsection Test}}
\showheadings{\chapter{Test}}
\showheadings{\section{Subsection Test}}
\showheadings{\chapter{Test}}
\showheadings{\section{Subsection Test}}
\showheadings{\chapter{Test}}
\showheadings{\section{Subsection Test}}
\end{document}

相关内容