아주 적은 수의 패키지로 컴파일할 수 있는 라텍스 문서를 생성하고 싶습니다. 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}
를 사용하는 데 이상한 문제가 있었지만 내 경우에는 \providecommand
else 분기가 완벽한 장소입니다 .\newcommand