проблема в определении команды

проблема в определении команды

У меня эта команда определена в моей диссертации, и она отлично работает, но когда я пытаюсь включить ее в какой-то другой документ, она не работает (компилятор сообщает, что команда не определена). Что я забыл определить/включить?

\documentclass{article}
\usepackage[normalem]{ulem}
\usepackage{xcolor}

\def\revisionHighlight{True}
\def\revisionHighlightOld{True}

\newcommand{\correction}[2]{% old word, new word
\ifnum\pdfstrcmp{\revisionHighlight}{True}=0%
    \ifnum\pdfstrcmp{\revisionHighlightOld}{True}=0%
        \stkout{#1}\textcolor{red}{#2}%
    \else%
        \ifx&#2&%
            \ignorespaces
        \else
            \textcolor{red}{#2}%
        \fi
    \fi
\else%
    \ifx&#2&%
        \ignorespaces
    \else
        #2%
    \fi
\fi}

\begin{document}
\correction{a}{b}
\end{document}

решение1

Насколько мне известно, макрос для зачеркивания текста называется \sout, а не \stkout.

Обратите внимание, что у вас есть несколько ошибок %в конце строк, а именно после =0.

\documentclass{article}
\usepackage[normalem]{ulem}
\usepackage{xcolor}

\def\revisionHighlight{True}
\def\revisionHighlightOld{True}

\newcommand{\correction}[2]{% old word, new word
\ifnum\pdfstrcmp{\revisionHighlight}{True}=0
    \ifnum\pdfstrcmp{\revisionHighlightOld}{True}=0
        \sout{#1}\textcolor{red}{#2}%
    \else
        \ifx&#2&%
            \ignorespaces
        \else
            \textcolor{red}{#2}%
        \fi
    \fi
\else
    \ifx&#2&%
        \ignorespaces
    \else
        #2%
    \fi
\fi}

\begin{document}
\correction{a}{b}
\end{document}

введите описание изображения здесь

Хотя я бы предпочел подход \newif, основанный на .

\documentclass{article}
\usepackage[normalem]{ulem}
\usepackage{xcolor}

\newif\ifrevisionHighlight
\revisionHighlighttrue
\newif\ifrevisionHighlightOld
\revisionHighlightOldtrue


\newcommand{\correction}[2]{% old word, new word
  \ifrevisionHighlight
    \ifrevisionHighlightOld
        \sout{#1}\textcolor{red}{#2}%
    \else
        \if\relax\detokenize{#2}\relax
            \ignorespaces
        \else
            \textcolor{red}{#2}%
        \fi
    \fi
\else
    \if\relax\detokenize{#2}\relax
        \ignorespaces
    \else
        #2%
    \fi
\fi}

\begin{document}
\correction{a}{b}
\end{document}

Связанный контент