Fiz um .sty
arquivo assim:
\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
Ele define os comandos \ready
e \notready
. O comportamento deles dependerá se a opção ready
está ou não carregada com o pacote.
Agora considere o seguinte 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}
Se eu digitar apenas a Equação 1 (e não a Equação 2), tudo se comportará conforme o esperado, ou seja: vejo minha mensagem de erro personalizada aparecer.
Se eu digitar a Equação 2, então acontece a coisa mais incomum: minha corrida simplesmente para, sem mostrarqualquermensagem de erro. As últimas linhas da Saída do Console (no TeXWorks) são
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
Nada acontece depois disso.
O que é ainda mais estranho é que deixar de fora o final g).
da Equação 2 (e assim evitar um overfull \hbox
)fazse comporta conforme o esperado.
Como o conteúdo de pode \[ \]
influenciar a execução do meu documento dessa maneira?
NB O erro só acontece se a Equação 2 e \notready
forem usadas juntas, enquanto a opção ready
estiver carregada. Caso contrário, tudo correrá conforme o esperado.