使用文件名命名部分

使用文件名命名部分

我正在制作一个相当大的文档,将由许多人处理。因此,我们决定通过单独导入每个部分来划分项目,如下所示。

\import{Sections/}{Test}
\import{Sections/}{Test2}

在每个文件(以及每个部分)中,我希望部分的名称与文件的名称相同(不带.tex)。

Test.tex 应该包含 Test 部分。Test2.tex 应该包含 Test2 部分等。以“手动”方式执行此操作应该没有问题。但是,如果是动态的,工作量会少很多。只需将一些代码复制到新文件中即可。

我已尝试以下操作。

\section{\currfilename} % Output: Test.tex

\section{\StrDel{\currfilename}{.tex}} % This either outputs "Test.tex" or a compilation error.

\section{\StrBefore{\currfilename}{.}} % This does the same as \StrDel

我也尝试过先将其定义为变量,然后将其用于如下所示的部分。但是,这也不起作用。

\def \filenametosection{\StrBefore{\currfilename}{.}}
\section{filenametosection}

因此,我的问题是,是否有人知道如何以不太复杂的方式将节名称(在每个文件的开头)设置为文件名(不带 .tex)。

答案1

我自嘲道我设法以一种更简单的方式解决了这个问题:D

通过为每个新部分创建一个新命令,我可以创建一个部分并导入具有相同名称的文件,就像这样。

\newcommand\newsection[1]{\section{#1}\import{Sections/}{#1}}

当创建一个新部分时,我只是创建一个新部分..

\newsection{Test}
\newsection{Test2}

这解决了这个问题,并且应该更容易让更多人学习。

需要注意的是,此修复不支持章节名称中的空格或下划线。

相关内容