作为扫描使用 \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
更新后的问题的主要问题是
- 你仍然应该使用
xcolor
才能\color
工作,否则它会被忽略 \path
在其他命令的参数中使用可能会出现奇怪的行为。\path{...\}
在宏外部有效,但在宏内部无效。这是一个更简单的例子\newcommand\test[1]{#1} \test{\path{C:\Applications\}}
因同样的错误而失败。
\test{\path{C:\Applications\ }}
似乎有效。所以我猜想
\part
参数解析被难住了\}
,因此参数扫描永远不会结束。