초안 모드는 \input 명령을 따르지 않습니다.

초안 모드는 \input 명령을 따르지 않습니다.

elsarticle옵션이 활성화된 문서 클래스를 사용하고 있습니다 draft. 초안 모드에서는 명령으로 가져온 파일 \input{}도 건너뛸 것이라고 생각했지만 그렇지 않습니다. 나는 \input{}Ti에 대한 명령을 사용합니다케이Z 사진과 테이블은 별도의 파일에 저장됩니다.

패키지 를 사용하여 해결 방법을 찾았 ifdraft지만 초안 모드 \input{}도 자동으로 줄을 건너뛰어야 한다고 생각합니다.

이 동작은 버그입니까 아니면 기능입니까?

\ifdraft모든 명령 앞에 명령을 포함하는 것보다 더 쉬운 해결 방법이 있습니까 \input{}?

댓글 후 수정:

\input가져올 수 있는 파일이 없을 때 명령이 컴파일에 실패하지 않으면 충분합니다 . 즉, 오류를 경고로 줄이고 싶습니다. 가능합니까?

답변1

externalTi를 사용하세요케이대신 Z 라이브러리. 해당 라이브러리를 사용하면 각각이 tikzpicture별도의 LaTeX 실행에서 컴파일되고( 로 컴파일해야 함 -shell-escape) 해당 그림의 생성된 PDF 파일이 포함됩니다. 아래 예제 문서는 첫 번째 실행에서 2초가 걸리고 다음 실행에서는 0.3초가 걸립니다. 또한 draft옵션을 사용하고 그림이 외부 PDF 파일이므로 그림 포함을 생략하고 대신 일반 상자가 나타납니다.

없이 draft:

여기에 이미지 설명을 입력하세요

와 함께 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}

업데이트와 관련하여 LaTeX의 입력은 대략 다음과 같습니다.

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

그래서 당신은 다음을 정의할 수 있습니다 \myinput:

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

그리고 당신이 대담하다고 느끼고 \input그렇게 행동하고 싶다면 정의하는 대신 \myinput재정의할 수 있습니다 \@iinput(이를 처리하는 LaTeX 매크로).

관련 정보