未定义控制序列 \iftoggle

未定义控制序列 \iftoggle

作为扫描使用 \path 时文件结束,我尝试使用\iftoggle来自etoolbox包的路径。

以下是我收到的错误

扫描 \etb@tgl@BuildC 的使用情况时文件结束。

以下是 MWE:

\documentclass[oneside, a4paper, onecolumn]{memoir}
\usepackage{url}
\usepackage{etoolbox, xcolor}

\let\path\relax \DeclareUrlCommand\path{\color{black!70}\urlstyle{tt}}

\newtoggle{BuildC}

\settoggle{BuildC}{true}

\begin{document}
    \iftoggle{BuildC}%
    {%
        \begin{enumerate}
            \item ABC
            \begin{itemize}
                \item Copy to \path{C:\Applications\}
            \end{itemize}
        \end{enumerate}
}%
{
        \begin{itemize}
            \item DEF
            \begin{enumerate}
                \item Copy to \path{~/Applications/}
            \end{enumerate}
        \end{itemize}
}
\end{document}

仅当我\path在 内使用 时才会发生这种情况\iftoggle。如果我删除 ,文档编译时不会出现错误\path

编辑:

抱歉,这次编辑。它改变了很多东西。MWE 和错误已更新为包含文件路径。这次编辑还可以防止这个问题重复。

答案1

更新后的问题的主要问题是

  1. 你仍然应该使用xcolor才能\color工作,否则它会被忽略
  2. \path在其他命令的参数中使用可能会出现奇怪的行为。\path{...\}在宏外部有效,但在宏内部无效。这是一个更简单的例子

    \newcommand\test[1]{#1}
    \test{\path{C:\Applications\}}
    

    因同样的错误而失败。

     \test{\path{C:\Applications\ }}
    

    似乎有效。所以我猜想\part参数解析被难住了\},因此参数扫描永远不会结束。

相关内容