我正在制作一个相当大的文档,将由许多人处理。因此,我们决定通过单独导入每个部分来划分项目,如下所示。
\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}
这解决了这个问题,并且应该更容易让更多人学习。
需要注意的是,此修复不支持章节名称中的空格或下划线。