我有一个 tex 文件编译,没有错误或警告。
但是当我添加这一行时:
\newcommand{\mag}{randomstr}
我收到此错误:
LaTeX Error: Command \mag already defined. [\newcommand{\mag}{randomstr}]
因此,我尝试将其改为:
\renewcommand{\mag}{randomstr}
但也会得到所有这些错误:
report.tex:32: Missing number, treated as zero. [\begin{document}]
report.tex:32: Missing = inserted for \ifnum. [\begin{document}]
report.tex:32: Missing number, treated as zero. [\begin{document}]
report.tex:32: Missing $ inserted. [\begin{document}]
report.tex:32: Missing number, treated as zero. [\begin{document}]
report.tex:32: Missing = inserted for \ifnum. [\begin{document}]
report.tex:32: Missing number, treated as zero. [\begin{document}]
report.tex:32: You can't use `the letter r' after \the. [\begin{document}]
report.tex:33: Missing $ inserted. []
我也尝试过该\def
指令,但没有结果。有办法解决这个问题吗?谢谢。
答案1
这是因为\mag
TeX原始用于设置字体的放大级别。虽然您可以更改它,但它会带来灾难性的后果,因为它使用的是您调整过的原始设置。用更通俗的话来说,这就像决定更换汽车使用的燃料,因为它更适合您的钱包。因此,您选择柴油而不是汽油(例如)。汽车仍然需要汽油无需进一步改造即可运行,无论你的偏好,从而造成重大问题(无论是立即的,还是将来的)。*
解决方案:不要重新定义 TeX 基元(通过\renewcommand
、\def
或类似方法)。您应该使用替代宏来定义randomstr
。例如,
\newcommand{\Mag}{randomstr}
应该可以工作,因为控制序列(宏)区分大小写。
*在上面的讨论中,汽车/发动机是 (La)TeX,汽油是,\mag
而柴油是“重新定义\mag
”。