这是我当前的 MWE:(注意,您必须将文件保存为 lec-05.tex)
\documentclass{article}
\usepackage{currfile}
\usepackage{substr}
\def\fulllecnum{
\BehindSubString{lec-}{\scantokens\expandafter{\currfilebase\noexpand}}
}
\newcommand\lecnum{
\IfBehindSubStringEmpty{lec-0}{\scantokens\expandafter{\currfilebase\noexpand}}{
\BehindSubString{lec-}{\scantokens\expandafter{\currfilebase\noexpand}}
}{
\BehindSubString{lec-0}{\scantokens\expandafter{\currfilebase\noexpand}}
}
}
\setcounter{section}{\lecnum}
\begin{document}
\section{HI}
\end{document}
错误如下:
! Missing number, treated as zero.
<to be read again>
\let
l.17 \setcounter{section}{\lecnum}
?
我如何将其转换\lecnum
为整数然后将其传递给\setcounter{section}{}
?
答案1
感谢@David Carlisle 指出这一点。
\makeatletter
\def\@lecnum{}
\newcommand\lec[1]{%
\ifnum #1<10 %
\def\@lecnum{0#1}%
\else
\def\@lecnum{#1}%
\fi
%
\setcounter{section}{#1}%
\renewcommand\thesubsection{#1.\arabic{subsection}}%
%
\input{lectures/lec-\@lecnum.tex}%
}
\makeatother
lectures
我在名为lec-01.tex
、lec-02.tex
、的文件夹中有文件...
。然后,我可以像这样调用此命令\lec{1}
,它将节号设置为1
并输入lectures/lec-01.tex
文件。
我采用了复杂的方法,首先通过对文件名执行正则表达式来获取讲座编号,然后尝试将该字符串转换为数字来设置章节编号。