latexmk не может создать документ с mpost

latexmk не может создать документ с mpost

Я использую latexmk 4.77. Ниже представлен мой файл .latexmkrc

$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;
}

В моем mp-файле я настроил

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

так что на самом деле создается файл mps. В файле tex я просто включил mps с помощью \includegraphics, но в данном контексте это несущественно.

Поведение latexmkдовольно странное: Запуск latexmkнапрямую жалуется на отсутствие графического файла. Но если я запущусь latexmk -pvcи дам команду scrollmode и interrupt, в конце файлы будут скомпилированы правильно.

Я тоже пробовал add_cus_dep('mp', '1', 1, 'mpost');, ничего не изменилось. Что я делаю не так? Возможно, это общая проблема, что latexmk не может скомпилировать в ситуациях, когда перед первым запуском latex уже должны быть сгенерированы некоторые файлы???

Это был бы значительный разрыв, поскольку это касается различных видов графики.

решение1

На самом деле это украденный ответ: Джон Коллинз дал решающий намек:

в .latexmkrc вставить set_tex_cmds('-interaction=nonstopmode %O %S');

Если графического файла еще нет, то выдается предупреждение и файл создается. В следующем запуске latex все в порядке.

Тем не менее, есть один особый момент с метапостом: использование

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

Пролог приведет к созданию файла mps. Я обнаружил, что при включении с \includegraphicsнеобходимо указать окончание.

Таким образом, похоже, работают и другие графические файлы. Я пробовал с файлами xfig, работает отлично.

Связанный контент