el modo borrador no respeta el comando \input

el modo borrador no respeta el comando \input

Estoy usando la elsarticleclase de documento con la draftopción habilitada. Pensé que el modo borrador \input{}también omitiría los archivos importados con el comando, pero no es el caso. Yo uso el\input{} comando para TikZ imágenes y tablas almacenadas en archivos separados.

Encontré una solución alternativa usando el ifdraftpaquete, pero creo que el modo borrador \input{}también debería omitir líneas automáticamente.

¿Es este comportamiento un error o una característica?

¿Existe una solución más sencilla que incluir el \ifdraftcomando antes de cada \input{}comando?

Editar después de los comentarios:

Me bastaría con que el \inputcomando no falle en la compilación cuando el archivo importable no existe. Es decir, quiero reducir su error a una advertencia. ¿Es posible?

Respuesta1

Utilizar elexternal TikBiblioteca Z en su lugar. Con esa biblioteca, cada uno tikzpicturese compila en una ejecución LaTeX separada (debe compilar con -shell-escape) y luego se incluye un archivo PDF generado de esa imagen. El documento de ejemplo siguiente tarda 2 s en la primera ejecución y luego 0,3 s en las siguientes ejecuciones. Además, dado que draftse utiliza la opción y la imagen es un archivo PDF externo, se omite la inclusión de la imagen y aparece el cuadro habitual.

Sin draft:

ingrese la descripción de la imagen aquí

Con draft:

ingrese la descripción de la imagen aquí

\documentclass[draft]{article}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize
\begin{document}

hello
\begin{tikzpicture}
  \foreach \i in {1,...,1000}
    \node at (0,0) {picture that takes a long time to compile};
\end{tikzpicture}
bye

\end{document}

En cuanto a su actualización, la entrada de LaTeX es aproximadamente:

\InputIfFileExists{file}%
  {}% do nothing if the file exists
  {\ERROR{file does not exist}}

entonces puedes definir un \myinput:

\newcommand\myinput[1]{%
  \InputIfFileExists{#1}%
    {}% do nothing if the file exists
    {\PackageWarning{Mathiassa}{File '#1' not found.}}%
  }

Y si te sientes audaz y quieres \inputcomportarte así, en lugar de definir \myinput, puedes redefinir \@iinput(la macro de LaTeX que se encarga de hacer eso).

información relacionada