我製作了一個.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
此後什麼事也沒有發生。
更奇怪的是,g).
從方程式 2 中省略了最後一項(從而防止了溢出\hbox
)做行為符合預期。
的內容如何\[ \]
以這種方式影響我的文件的運作?
注意:只有在載入\notready
選項時同時使用公式 2 和 時,才會發生錯誤。ready
否則一切都會如預期進行。