コンパイル時にコマンド/パッケージが使用可能かどうかを安全に確認するにはどうすればよいですか?

コンパイル時にコマンド/パッケージが使用可能かどうかを安全に確認するにはどうすればよいですか?

非常に少ないパッケージでコンパイルできる LaTeX ドキュメントを作成したいのですが、たとえば、xcolorパッケージが不足している可能性があります (上司がコンパイルするドキュメントで、インストールされているパッケージを制御できず、コンパイル エラーを回避する必要があると仮定します)。ただし、パッケージが使用可能な場合は、コマンドを安全に使用したいと思います\color。可能であれば、新しいパッケージをインストールしないソリューションを希望します。

もっと正確に言うと、私はこのような文書を書きたいのです

\documentclass{article}

%%%%%% 
%%% Huge blobs of definitions 
%%% for \useIFpackage
%%% and \IFundefcommand
%%%%%%

\useIFpackage{xcolor}
\IFundefcommand{\color}[1]{}

\begin{document}
{
 \color{red} This package always
 compiles and if \emph{xcolor}
 is available this text should be red
}
\end{document}

が利用できない\useIFpackage{xcolor}場合は何も行わず、まだ定義されていない場合にのみコマンドを定義します。xcolor\IFundefcommand{\color}[1]{}\color

この特定の動作は不可能かもしれないと思うので、その場合は追加のリソースを教えていただければ幸いです。かもしれない同様のことに役立つ/興味深い。

答え1

この解決策を見つけるのに役立つ十分な情報をコメントで提供してくれた @moewe に感謝します。

質問の例では、このドキュメントが私のユースケースをカバーするはずだと私は考えています。

\documentclass{article}
\IfFileExists{xcolor.sty}
  {\usepackage{xcolor}}
  {\newcommand{\color}[1]{}}

\begin{document}
  {\color{red} This package always compiles and if \emph{xcolor} is available this text should be red }
\end{document}

を使用すると奇妙な問題が発生しましたが、私の場合、\providecommandelse ブランチは に最適な場所です。\newcommand

関連情報