latexmk kann mit mpost kein Dokument erstellen

latexmk kann mit mpost kein Dokument erstellen

Ich verwende latexmk 4.77. Das Folgende ist meine .latexmkrc-Datei

$pdf_mode = 4;# specifies creation of pdf via lualatex 
$bibtex_use = "2";# to configure bibtex 

$cleanup_includes_cusdep_generated = 1;
push @generated_exts, "lol";
$clean_ext .= " %R.synctex.gz";


# graphics by metapost 
add_cus_dep('mp', 'mps', 0, 'mpost');


# sub mpost {
#     #return system("mptopdf $_[0].mp");
#     return system("mpost $_[0].mp");
# }

# metapost rule from http://tex.stackexchange.com/questions/37134
#add_cus_dep('mp', '1', 0, 'mpost');
sub mpost {
  my $file = $_[0];
  my ($name, $path) = fileparse($file);
  pushd($path);
  my $return = system("mpost $name");
  popd();
  return $return;
}

In meiner mp-Datei habe ich konfiguriert

prologues := 2;
outputtemplate := "%j.mps";

damit tatsächlich eine mps-Datei entsteht. In einer Tex-Datei habe ich die mps einfach mit \includegraphics eingebunden, aber das ist in diesem Kontext unerheblich.

Das Verhalten latexmkist ziemlich seltsam: Beim Ausführen latexmkwird direkt eine fehlende Grafikdatei bemängelt. Wenn ich dann aber latexmk -pvcden Befehl scrollmode und interrupt ausführe, werden die Dateien am Ende korrekt kompiliert.

Ich habe es auch versucht add_cus_dep('mp', '1', 1, 'mpost');, keine Änderung. Was mache ich falsch? Ist möglicherweise ein allgemeines Problem, dass latexmk nicht kompiliert werden kann, wenn vor dem ersten Latex-Lauf bereits einige Dateien generiert werden müssen???

Dies wäre eine erhebliche Lücke, da dies für verschiedene Arten von Grafiken gilt.

Antwort1

Dabei handelt es sich tatsächlich um eine geklaute Antwort: John Collins gab den entscheidenden Hinweis:

in .latexmkrc einfügen set_tex_cmds('-interaction=nonstopmode %O %S');

Wenn noch keine Grafikdatei vorhanden ist, wird eine Warnung ausgegeben und die Datei wird erstellt. Beim nächsten Latex-Lauf ist alles in Ordnung.

Eine Besonderheit gibt es bei Metapost allerdings:

mpost -interaction=nonstopmode -recorder -s prologues=2 

Der Prolog führt zur Erstellung einer mps-Datei. Ich habe festgestellt, dass beim Einbinden mit \includegraphicsdie Endung angegeben werden muss.

Auf diese Weise scheinen auch andere Grafikdateien zu funktionieren. Ich habe es mit Xfig-Dateien versucht, funktioniert gut.

verwandte Informationen