在没有 ifcase 语句的情况下,我如何才能更简洁地编写以下代码?请假设该命令只会使用 1 到 8 之间的整数参数调用。很抱歉问了这么基本的问题——我对宏还不熟悉。
\renewcommand{\@fnsymbol}[1]{\ifcase#1\or ^0 \or ^1\or ^2\or
^3\or ^4\or ^5\or ^6\or ^7 \or ^8 \fi\relax}
答案1
\let\@fnsymbol^
作为问题的答案,这可能是最简洁的,虽然给出了你使用的命令名称,但你需要更多,因为它需要与计数寄存器一起工作,而不仅仅是文字数字\@fnsymbol{33}
会起作用,但不是\@fnsymbol\c@footnote
,它需要在数学模式下工作,所以你需要
\def\@fnsymbol#1{\ensuremath{^{\number#1}}}
但这\textsuperscript
是一个更好的选择,因为它使用文本字体而不是数学字体。