我之前在这里找到过一个相关问题,但我还不能发表评论。链接如下:制作 \textcircled 数字的好方法?
我的问题是,我们如何才能在 TeX 文件的不同部分多次使用此命令而不产生错误。
示例代码:
\documentclass{article}
\usepackage{tikz}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,draw,inner sep=2pt] (char) {#1};}}
\begin{document}
Numbers aligned with the text: \circled{1} \circled{2} \circled{3} end.
\end{document}
错误信息如下:
! LaTeX Error: Command \circled already defined.
Or name \end... illegal, see p.192 of the manual.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
1.222 ...circle,draw,inner sep=2pt] (char) {#1};}}
删除时\newcommand*
会显示以下错误消息:
! You can't use 'macro parameter character #' in restricted horizontal mode.
<argument> ...ircle,draw,inner sep=2pt] (char {##
1}
有人能帮忙吗?非常感谢。
答案1
正如评论中提到的,您的示例代码编译得很好,但您不能\newcommand*\circled
多次使用。如果您想要更多带圆圈的数字,只需\circled{n}
对带圆圈的每个实例使用n
。
我猜你做了以下事情:你尝试了一些类似的代码
\documentclass{article}
\usepackage{tikz}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,draw,inner sep=2pt] (char) {#1};}}
\begin{document}
Numbers aligned with the text: \circled{1} \circled{2} \circled{3} end.
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,draw,inner sep=2pt] (char) {#1};}}
Numbers aligned with the text: \circled{1} \circled{2} \circled{3} end.
\end{document}
并得到! LaTeX Error: Command \circled already defined.
这是预期的行为;你应该\circled
在序言中只定义一次。然后你尝试删除第二个\newcommand*
,但你仅有的删除了它。然后你确实收到了错误消息
! You can't use `macro parameter character #' in restricted horizontal mode.
你需要做的是删除定义的完整两行即
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,draw,inner sep=2pt] (char) {#1};}}