我的项目有许多 (tex) 子文件需要创建。我希望 TeXstudio 自动将所有文件创建到我的文件夹中。
例子:
\input{datavd/[2D1-VD-2-1]}
\input{datatl/[2D1-BTTT-Y2-1]}
\input{datatl/[2D1-BTTT-B2-1]}
\input{datatl/[2D1-BTTT-K2-1]}
\input{datatl/[2D1-BTTT-G2-1]}
我的文件夹是空的。我不想使用 Ctrl + 单击来创建文件。我想自动创建它们。谢谢。
答案1
通过重新定义\input
和一次 TeX 运行,您可以创建所有这些文件(当然,前提是文件夹存在):
\documentclass[]{article}
\let\inputoriginal\input
\newwrite\tmpwrite
\makeatletter
\begingroup
\catcode`\%=12
\def\zz
{\endgroup
\newcommand*\input@WriteNote[1]
{\immediate\openout\tmpwrite=##1
\immediate\write\tmpwrite
{% automatically created by \string\input}\relax
\immediate\closeout\tmpwrite
}
}
\zz
\renewcommand*\input
{\@ifnextchar\bgroup{\input@Check}{\input@GrabUndelimited}}
\newcommand\input@GrabUndelimited{}
\long\def\input@GrabUndelimited#1 {\input@Check{#1}}
\newcommand\input@Check[1]
{\IfFileExists{#1}{\inputoriginal{#1}}{\input@WriteNote{#1}}}
\makeatother
\begin{document}
\input{sub/foo}
\input{sub/bar}
\input sub/baz
\end{document}
编辑:
允许无限\input
参数。