LaTeX:带有两个参数的 newcommand

LaTeX:带有两个参数的 newcommand

我无法完成这项工作(请参阅下面的代码):它给出了一个错误“\xx在之前的行中未定义的控制序列\end{document}怎么了?我在Windows10下使用MikTex的pdflatex。它完美地编译了一个裸的“Hello world”文件,因此它安装正确。%motivation for the following code:我是一名教师,我需要一个宏来“纠正”我学生论文中的错误,就像小学老师用红笔做的那样,即Word用它的“跟踪变化特征”:宏应该显示“旧文本”和“新”的更正文本:旧文本应该被删除(稍后我会把它变成红色),新文本应该是hug;e下面它们被表示为Arg1和Arg2。

问题是不是关于如何配置 miktex 或如何使用删除线或颜色 --- 它是关于为什么命令 \xx 仍然未定义,即为什么不起作用\newcommand**:.? 日志文件说:


! Undefined control sequence. l.9 \xx {first}{second}

编辑:\xvs.\xx 已更正,感谢@David “\HUGE” 命令已更正”,感谢@rafaele,错误依旧


LaTeX 代码

`\documentclass{article}
\usepackage{soul}
\newcommand{\x}[2]{ARG1:(\st{#1})ARG2: ({\Huge #2})}

\begin{document}


test:
\xx{first}{second}
\end{document}`

答案1

这只是你的 LaTeX 程序中的一个拼写错误。

修改如下..

\documentclass{article}
\usepackage{soul}
\newcommand{\xx}[2]{ARG1:(\st{#1})ARG2: ({\Huge #2})}

\begin{document}


test:
\xx{first}{second}
\end{document}

它有效-我测试过了!

LaTeX 输出

答案2

如果你

\newcommand{\x}[2]{<whatever>}

您正在定义\x,不是吗?那么,您为什么会期望\xx被定义?

之后

\newcommand{\x}[2]{ARG1:(\st{#1})ARG2: ({\Huge #2})}

电话

\x{first}{second}

将按要求执行,但当然\xx会引发Undefined control sequence错误。

LaTeX 内核有

\newcommand{\setlength}[2]{<something irrelevant for the topic here>}

你称之为

\setlength{\mylen}{12cm}

不是\setlengthsetlength{\mylen}{12cm}

相关内容