Eu uso latexmk 4.77. A seguir está meu arquivo .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;
}
No meu arquivo mp eu configurei
prologues := 2;
outputtemplate := "%j.mps";
para que realmente um arquivo mps seja criado. Em um arquivo tex acabei de incluir os mps com \includegraphics, mas isso é irrelevante neste contexto.
O comportamento de latexmk
é bastante estranho: a execução latexmk
reclama diretamente da falta de arquivo gráfico. Mas então, se eu executar latexmk -pvc
e comandar scrollmode e interromper, no final, os arquivos serão compilados corretamente.
Eu também tentei add_cus_dep('mp', '1', 1, 'mpost');
, sem alteração. O que estou fazendo de errado? É possivelmente um problema geral que o latexmk não pode compilar em situações onde antes da primeira execução do latex alguns arquivos já devem ser gerados???
Esta seria uma lacuna considerável, uma vez que se aplica a vários tipos de gráficos.
Responder1
Esta é na verdade uma resposta roubada: John Collins deu a dica decisiva:
na inserção .latexmkrc
set_tex_cmds('-interaction=nonstopmode %O %S');
Se um arquivo gráfico ainda não estiver presente, um aviso será emitido e o arquivo será criado. Na próxima corrida de látex, está tudo bem.
No entanto, há um ponto especial com o metapost: use
mpost -interaction=nonstopmode -recorder -s prologues=2
O prólogo causará a criação de um arquivo mps. Descobri que ao incluir with \includegraphics
, o final deve ser fornecido.
Dessa forma também outros arquivos gráficos parecem funcionar. Eu tentei com arquivos xfig, funciona bem.