\[ \] 環境のコンテンツが、カスタムコマンドと組み合わせると、ドキュメントの実行に影響します。

\[ \] 環境のコンテンツが、カスタムコマンドと組み合わせると、ドキュメントの実行に影響します。

次のようなファイルを作成しました.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オプションreadyがロードされている状態で、式 2 と が一緒に使用された場合にのみ発生します。それ以外の場合は、すべてが予想どおりに動作します。

関連情報