使用时%pdflatex
,每个 pdf 文件都有其编译文件的名称.tex
。对于撰写简历的情况,简历可能会每月或每周定期更新。
有没有办法将 pdf 文件命名为类似的格式enthusiasticCV240915.pdf
?
我的意思是,pdf 输出的命名过程是这样的:
如果 pdf 是在不同的日期编辑的,则其他日期生成的先前的 pdf 文件将保留在
.tex
文件夹中。因此,用户将拥有一系列以前的简历,这些简历的命名与编辑和生成的日期有关。因此,当他打开文件夹时,他会看到他以前和更新的简历列表,所有这些简历都通过系统文件命名按日期分隔。如果 pdf 是在同一天生成的,并且他已经多次运行和编辑过,那么文件夹中只会保留一个以当天名称命名的文件,因为 pdf 文件与在同一天生成的 pdf 文件同名。我的意思是,每天,用户只会有一个 pdf 文件输出,如果他在同一天多次运行他的 tex 文件,那么在当天结束时,他只会有一个以当天日期为名称的 pdf 文件输出。
我读过一些关于 tex 文件版本控制的问题,但这些问题没有涵盖我的问题。另外,我不知道 MWE 应该如何解决我的问题,所以如果它没有包括在内,我很抱歉。另外,我使用的是 Windows 操作系统。
答案1
设置作业名称
选项--jobname
可用于设置作业的名称,包括.pdf
、.log
或.aux
文件。日期可以通过date
Linux 中的命令自动生成:
$ pdflatex --jobname enthusiasticCV`date +%d%m%y` enthusiasticCV.tex
在 Windows 上,可以手动给出名称中的日期,例如 MiKTeX:
pdflatex --job-name enthusiaticCV240915 enthusiasticCV.tex
TeX 编写的批处理脚本
TeX 运行可以编写一个批处理脚本来重命名输出文件,之后调用该脚本,例如 Windows:
\makeatletter
\newwrite\batch
\immediate\openout\batch=\jobname-rename.txt
\immediate\write\batch{@echo off}
\immediate\write\batch{copy \jobname.pdf \jobname
\two@digits\day
\two@digits\month
\two@digits{\numexpr\year-2000\relax}%
.pdf%
}
\immediate\closeout\batch
\makeatother
.txt
写入文件而不是写入文件是为了避免安全问题,即可能不允许.bat
写入文件。调用顺序为:.bat
pdflatex enthusiasticCV
move enthusiaticCV-rename.txt enthusiaticCV-rename.bat
enthusiasticCV-rename.bat
当然,这可以放在另一个批处理文件中,以方便调用。