我在文本的某些部分使用了一些小标记,我想将其中一个标记添加到标题为列表的段落中:
\newcommand{\hip}{{\color{BlueViolet}\framebox[1.1\width]{HIP}}}
\paragraph*{\hip{} Following that description, we can infer the following hypothesis:}
但是,失败了:
! Use of \reserved@a doesn't match its definition.
\@ifnextchar ... \reserved@d =#1\def \reserved@a {
#2}\def \reserved@b {#3}\f...
l.219 ..., we can infer the following hypothesis:}
! Use of \@framepicbox doesn't match its definition.
\@ifnextchar ...eserved@d =#1\def \reserved@a {#2}
\def \reserved@b {#3}\futu...
l.219 ..., we can infer the following hypothesis:}
这两个错误都带有这个解释,但对我来说毫无意义……“例如,如果你说‘\def\a1{...}’,那么你必须始终在‘\a’后面放置‘1’,因为控制序列名称仅由字母组成。这里的宏后面没有必需的内容,所以我忽略了它。”
这是什么意思?我该如何解决这个问题?
普通文本行中的命令示例:
答案1
在没有相反证据的情况下,这\hip
似乎是一个“脆弱”的命令。
在“移动参数”中的脆弱命令之前添加\protect
(这样的命令的参数\paragraph
也可能用于其他地方,例如在目录中)将避免该问题。所以这里,\protect\hip
。
有关这种情况的更多信息可以通过以下问题找到 脆弱命令和坚固命令之间有什么区别?
答案2
我使用以下命令没有出现任何错误:
\documentclass{article}
\usepackage{color}
\definecolor{BlueViolet}{rgb}{0.54, 0.17, 0.89}
\newcommand{\hip}{{\color{BlueViolet}\framebox[1.1\width]{HIP}}}
\begin{document}
\paragraph*{\hip{} Following that description, we can infer the following hypothesis:}
\end{document}
我有这个输出:
答案3
按照@barbarabeeton的建议,使用 解决了这个问题\protect
。如果她发布了答案,我会很乐意删除这个并接受她的答案:)
\paragraph*{\protect\hip{} Following...}
关于@qzx 的回答以及@cfr 和@Werner 的评论:
我没有添加序言,因为我的序言太大了,我认为这不是问题。这可能是 ABNTex2(一种汇集所有巴西格式模式的文档类)的默认命令和格式的问题,因为这是改变大多数内容的文档类。