重新分组 Latex 文档中所有粗体短语

重新分组 Latex 文档中所有粗体短语

我必须写很多篇幅很长的报告,在每篇报告的末尾,我都会用一页纸来总结这份文件的所有结果/主线。在撰写所有章节的阶段,我都会将这些相关信息用粗体标出。

我的问题是:有没有办法实现一个函数, 将整个文档中的grep所有\textbf{}内容保存到文档末尾的单个页面中?类似于\listoffigures,但更像\listofmyimportantinformation- 之类的东西?

答案1

这个想法是创建一个在最后(自动)包含的外部文件。

如果您不想自动包含,您需要注释掉该\AtEndDocument部分并创建类似的命令 \def\listofmyimportantinformation{\@input{"\jobname.bflist.tex"}}


解决方案 1

使用专用命令

以下解决方案使用专用命令来\textbf 标记重要内容。

\documentclass{article}

\usepackage{newfile}
\makeatletter
\AtBeginDocument{%
  \newoutputstream{importantlist}
  \openoutputfile{"\jobname.importantlist.tex"}{importantlist}}

\def\listofmyimportantstuff{%
  \closeoutputstream{importantlist}
  \section{The Following Stuffs are Important}
  \@input{"\jobname.importantlist.tex"}}
\makeatother  

\def\importantstuff#1{%
  \textbf{#1}
  \addtostream{importantlist}{\textbf{#1}}}

\usepackage{lipsum}

\begin{document}

\lipsum[1]

\importantstuff{This is important}

\lipsum[2]

\importantstuff{\textsf{Also this one is}}

\listofmyimportantstuff

\end{document}

解决方案 2

使用\textbf命令

请注意,此解决方案与最佳实践不同。一旦您重新定义该\textbf命令,可能会产生意想不到的后果,因为该命令最有可能在内部使用,或者在您不希望它出现在重要内容列表中的地方使用。

\documentclass{article}

\usepackage{newfile}
\makeatletter
\AtBeginDocument{%
  \newoutputstream{bflist}
  \openoutputfile{"\jobname.bflist.tex"}{bflist}}
\AtEndDocument{%
  \closeoutputstream{bflist}
  \@input{"\jobname.bflist.tex"}}
\makeatother  


\renewcommand{\textbf}[1]{{\bfseries#1}\addtostream{bflist}{{\bfseries#1}}}

\usepackage{lipsum}

\begin{document}

\lipsum[1]

\textbf{This text is in bold.}

\lipsum[2]

\textbf{\textsf{Another text in bold.}}


\end{document}

相关内容