是否有任何系统的方法可以让 pdf 输出命名以包含编辑日期并在多次编辑后保留在文件夹中?

是否有任何系统的方法可以让 pdf 输出命名以包含编辑日期并在多次编辑后保留在文件夹中?

使用时%pdflatex,每个 pdf 文件都有其编译文件的名称.tex。对于撰写简历的情况,简历可能会每月或每周定期更新。

有没有办法将 pdf 文件命名为类似的格式enthusiasticCV240915.pdf

我的意思是,pdf 输出的命名过程是这样的:

  • 如果 pdf 是在不同的日期编辑的,则其他日期生成的先前的 pdf 文件将保留在.tex文件夹中。因此,用户将拥有一系列以前的简历,这些简历的命名与编辑和生成的日期有关。因此,当他打开文件夹时,他会看到他以前和更新的简历列表,所有这些简历都通过系统文件命名按日期分隔。

  • 如果 pdf 是在同一天生成的,并且他已经多次运行和编辑过,那么文件夹中只会保留一个以当天名称命名的文件,因为 pdf 文件与在同一天生成的 pdf 文件同名。我的意思是,每天,用户只会有一个 pdf 文件输出,如果他在同一天多次运行他的 tex 文件,那么在当天结束时,他只会有一个以当天日期为名称的 pdf 文件输出。

我读过一些关于 tex 文件版本控制的问题,但这些问题没有涵盖我的问题。另外,我不知道 MWE 应该如何解决我的问题,所以如果它没有包括在内,我很抱歉。另外,我使用的是 Windows 操作系统。

答案1

设置作业名称

选项--jobname可用于设置作业的名称,包括.pdf.log.aux文件。日期可以通过dateLinux 中的命令自动生成:

$ 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

当然,这可以放在另一个批处理文件中,以方便调用。

相关内容