Estou usando a elsarticle
classe document com a draft
opção habilitada. Achei que o modo rascunho \input{}
também ignoraria os arquivos importados com o comando, mas não é o caso. Eu uso o \input{}
comando para TikZ imagens e tabelas armazenadas em arquivos separados.
Encontrei uma solução alternativa usando o ifdraft
pacote, mas acho que o modo rascunho \input{}
também deve pular linhas automaticamente.
Esse comportamento é um bug ou recurso?
Existe uma solução mais fácil do que incluir o \ifdraft
comando antes de cada \input{}
comando?
Editar após comentários:
Seria suficiente para mim se o \input
comando não falhasse na compilação quando o arquivo importável não existisse. Ou seja, quero reduzir seu erro a um aviso. É possível?
Responder1
Use o external
TikBiblioteca Z em vez disso. Com essa biblioteca, cada um tikzpicture
é compilado em uma execução LaTeX separada (você precisa compilar com -shell-escape
) e então um arquivo PDF gerado dessa imagem é incluído. O documento de exemplo abaixo leva 2 s na primeira execução e 0,3 s nas próximas execuções. Além disso, como a draft
opção é usada e a imagem é um arquivo PDF externo, a inclusão da imagem é ignorada e a caixa usual aparece.
Sem draft
:
Com draft
:
\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}
Quanto à sua atualização, a entrada do LaTeX é aproximadamente:
\InputIfFileExists{file}%
{}% do nothing if the file exists
{\ERROR{file does not exist}}
então você pode apenas definir a \myinput
:
\newcommand\myinput[1]{%
\InputIfFileExists{#1}%
{}% do nothing if the file exists
{\PackageWarning{Mathiassa}{File '#1' not found.}}%
}
E se você está se sentindo ousado e quer \input
se comportar assim, em vez de definir \myinput
, você pode redefinir \@iinput
(a macro LaTeX que se encarrega de fazer isso).