首页>LaTeX>source

我正在运行 latexmk   在无声预览连续模式中。

latexmk -pdf -silent -pvc myfile.tex

然而,当我查看终端(具有简短的日志输出)时,我无法弄清楚文件编译的时间.换句话说,我想要一行

last compiled at Wed Sep 26 21:18:53 IST 2018

这对我来说非常有用,可以从备份集中跟踪工作版本(如果出现错误).

我可以编写一个小的bash脚本,它将查看该文件以进行更新,然后调用 pdflatex   在batchmode中,然后使用日期print输出. (Grep中的aux / log中的错误/警告并相应地print消息。)然而,除了重复 latexmk之外什么都不是 ?

- 迈克

最新回答
  • 2019-12-5
    1 #

    首次尝试失败:

    ~/.latexmkrc   文件:

    $latex = "date;latex --src-specials";
    

    不起作用: -


    第二次尝试失败(我在这里给出了,因为这可能会让人知道更简单/替代的解决方案!)

    latexmk -silent -pvc -e 'print "Last compiled at: ".localtime()."\n";' myfile.tex
    

    从联系手册:

     
     -e <code>
              Execute the specified initialization code before processing.  
              The code is Perl code of the same form as is  used  in  latexmk's
              initialization files.  For more details, see the information on the 
              -r option, and the section about "Configuration/initialization (RC)
              files".  The code is typically a sequence of assignment statements
              separated by semicolons.
    

    但是,这仅在开头print所需的字符串.我相信通过修改某些变量,比如 $latex ,人们可以实现所需.


    以下是 complete working solution .唯一的问题是它需要root权限(或者对脚本进行本地复制)。

    latexmk中插入以下代码   脚本:

    $datestring = localtime();
    print "Last compiled at: $datestring\n";
    

    这些行包含在实际调用 $latex的函数中 :

    sub rdb_primary_run
    

  • 2019-12-5
    2 #

    实际上,您不必修改 latexmk   获得此效果,但只需配置它. latexmkrc文件中的以下内容将完成工作

    $pdflatex = 'internal mylatex pdflatex %O %S';
    sub mylatex {
       my $ret = system @_;
       print "Last compilation at ", scalar(localtime()), "\n";
       return $ret;
    }
    

    您可以为 $latex制作类似的定义 , $lualatex   和 $xelatex   变量

  • LaTeX tikz pgf:将节点矩阵与网格对齐
  • 如何控制从标题标题(图或表)到标题标签(数字)的空间?