latexmk no puede crear un documento con mpost

latexmk no puede crear un documento con mpost

Yo uso latexmk 4.77. El siguiente es mi archivo .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;
}

En mi archivo mp configuré

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

para que realmente se cree un archivo mps. En un archivo tex acabo de incluir los mps con \includegraphics, pero esto es irrelevante en este contexto.

El comportamiento de latexmkes bastante extraño: la ejecución latexmkse queja directamente de que falta un archivo gráfico. Pero luego, si ejecuto latexmk -pvcy comando el modo de desplazamiento e interrumpo, al final, los archivos se compilan correctamente.

También lo intenté add_cus_dep('mp', '1', 1, 'mpost');, sin cambios. ¿Qué estoy haciendo mal? ¿Es posiblemente un problema general que latexmk no pueda compilar en situaciones en las que antes de la primera ejecución de látex ya se deben generar algunos archivos?

Esta sería una brecha considerable ya que se aplica a varios tipos de gráficos.

Respuesta1

En realidad se trata de una respuesta robada: John Collins dio la pista decisiva:

en .latexmkrc insertar set_tex_cmds('-interaction=nonstopmode %O %S');

Si aún no hay un archivo gráfico presente, se emite una advertencia y se crea el archivo. En la próxima carrera de látex, todo estará bien.

Sin embargo, hay un punto especial con metapost: usar

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

El prólogo provocará la creación de un archivo mps. Descubrí que al incluir with \includegraphics, se debe dar el final.

De esta manera también parecen funcionar otros archivos gráficos. Lo intenté con archivos xfig, funciona bien.

información relacionada