根据文件名条件执行代码块

根据文件名条件执行代码块

在制作会议纪要时,我会使用两个 .tex 文件:议程文件和会议纪要文件。第一个文件包含在 pdfpages 包中的第二个文件中。

现在,虽然两个文件的结构相同,但会议记录文件添加了附加内容。

但是,当我更改每个文件的结构时,为了保持一致性,两个文件的结构也应该随之更改。

我正在寻找一种处理一个文件的方法,其中可以根据文件名执行“结构”和“内容” LaTeX 代码块;这样,我的工作流程就更高效了。(我只会保留同一个文件的两个副本)

最小工作示例

议程.tex

\documentclass[agenda]{meetingmins}

\begin{document}

\begin{enumerate}

\item{Agendapoint 1} % Always to be executed -- core structure

Content of agendapoint one 
%to be executed conditional on filename minutes.tex
More content of agendapoint one 


\item{Agendapoint 2}

...


\end{enumerate}

\end{document}

分钟.tex

\documentclass{meetingmins}

\usepackage{pdfpages}   

\begin{document}

\includepdf[pages=-]{agenda} % Conditional on filename minutes.tex

\begin{enumerate}

\item{Agendapoint 1} % Always to be executed -- core structure

Content of agendapoint one 
%to be executed conditional on filename minutes.tex
More content of agendapoint one 


\item{Agendapoint 2}

...


\end{enumerate}

\end{document}

答案1

以下是基于以下假设的建议:

  1. 你想列举议程项目;并且

  2. 有条件地打印列举的议程项目的摘要。

我们通过将议程项目写为\sections 来解决 (1)。您已经使用\item{...}(无论如何,它不接受强制参数)执行了此操作,因此我建议。 (2) 相当于编写一个\tableofcontents,它总结了列出的议程项目。

在此处输入图片描述

\documentclass{article}

\newcommand{\printagenda}{\tableofcontents}
\renewcommand{\contentsname}{Agenda}

\newcommand{\agendaitem}[1]{\section{#1}}

\begin{document}

\printagenda

\agendaitem{Agenda point one}

Content related to agenda item one.
More content related to agenda item one.

\agendaitem{Agenda point two}

Content related to agenda item two.
More content related to agenda item two.

\end{document}

使用上面的内容作为起点,您可以格式化议程使用类似的包tocloft并使用(例如)进行分段布局sectsty(或其他情况)。

我引入了与上下文相关的语法来复制您的意图。尽管宏相当简单,但它可以让您更清楚地理解代码。

相关内容