저는 .sty
다음과 같은 파일을 만들었습니다.
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{printready}[2017/04/19 Defines "ready" and "notready"]
%%%
\newif\if@ready
\DeclareOption{ready}{%
\@readytrue%
}
\ProcessOptions\relax
\def\ready#1{%
\if@ready
#1
\else
\fbox{Here goes a picture}
\fi
}
\def\notready#1{%
\if@ready
{\PackageError{printready}{Custom error message}{Custom error text}}
\else
\fbox{Here will be a picture; It's not ready yet.}
\fi
}
\endinput
이는 명령 \ready
과 를 정의합니다 \notready
. 이것이 어떻게 동작할지는 옵션이 ready
패키지와 함께 로드되는지 여부에 따라 달라집니다 .
이제 다음 MWE를 고려하십시오.
\documentclass[a4paper]{article}
\usepackage[ready]{printready}% Ready option activated
\usepackage{mathtools}
\begin{document}I found that this must mean that
%%% Let's call this Equation 1
\[waaaaaaaaaaaaaaaaaaaaaaaaaaaayyyyyyyyyyyyyyyyy toooooooooooooooooooooo loooooooooooooooooooooooooooooooooong\]
%
%%% Let's call this Equation 2
\[p= \frac{2q}{2-q}(1-2g) \implies p(2-q)=2q(1-2g) \implies p|2q(1-2g) \implies p \leq 2q(1-2g).\]
\begin{figure}[htbp]\centering
\notready%
{%
Picture1
}\caption{caption}
\end{figure}
\end{document}
방정식 1만 입력하고 방정식 2는 입력하지 않으면 모든 것이 예상대로 작동합니다. 즉, 사용자 정의 오류 메시지가 나타납니다.
방정식 2를 입력하면 가장 특이한 일이 발생합니다. 내 달리기는 표시되지 않고 그냥 멈춥니다.어느에러 메시지. TeXWorks의 콘솔 출력의 마지막 줄은 다음과 같습니다.
Overfull \hbox (4.37506pt too wide) detected at line 11 \OML/cmm/m/it/10 p \OT1/cmr/m/n/10 = [](1 \OMS/cmsy/m/n/10
이 이후에는 아무 일도 일어나지 않습니다.
더 이상한 점은 방정식 2에서 최종값을 빼는 것입니다 g).
(따라서 overfull을 방지함 \hbox
).하다예상대로 동작합니다.
\[ \]
이런 식으로 내 문서의 실행에 내용이 어떻게 영향을 미칠 수 있습니까 ?
\notready
주의 옵션이 ready
로드되는 동안 방정식 2와 를 함께 사용하는 경우에만 오류가 발생합니다 . 그렇지 않으면 모든 것이 예상대로 진행됩니다.