首頁>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之外什麼都不是 ?

- 迈克

最新回復
  • 12月前
    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
    

  • 12月前
    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:將节點矩陣与網格對齐
  • 如何控製从標题標题(圖或表)到標题標簽(數字)的空間?