脚注编号未正确显示

脚注编号未正确显示

以下是我遇到的问题中最不可行的示例:

如果我使用以下代码:

\documentclass{article}
\usepackage[paperwidth=70mm,paperheight=100mm,margin=1mm]{geometry}


\usepackage{booktabs}
\usepackage{array}
\usepackage{longtable}

% \usepackage{pifont}
% \makeatletter
% \newcommand*{\circnum}[1]{%
%   \expandafter\@circnum\csname c@#1\endcsname
% }
% \newcommand*{\@circnum}[1]{%
%   \ifnum#1<1 %
%   \@ctrerr
%   \else
%   \ifnum#1>20 %
%   \@ctrerr
%   \else
%   \ding{\numexpr 181+(#1)\relax}%
%   \fi
%   \fi
% }
% \makeatother

% \renewcommand*{\thefootnote}{\circnum{footnote}}

\begin{document}
\begin{longtable}{|>{\centering}m{2em}|>{\centering}m{2em}|>{\centering}m{8.3em}|}
  \toprule
  A & B & C \tabularnewline
  \midrule
  A & B & \begin{enumerate}
    \tiny
  \item ASD\footnote{first}
  \item ASD\footnote{second}
  \end{enumerate} \tabularnewline
  \bottomrule
\end{longtable}

\end{document}

我可以获得良好的结果,但如果我取消注释上面的代码,如下所示:

\documentclass{article}
\usepackage[paperwidth=70mm,paperheight=100mm,margin=1mm]{geometry}


\usepackage{booktabs}
\usepackage{array}
\usepackage{longtable}

\usepackage{pifont}
\makeatletter
\newcommand*{\circnum}[1]{%
  \expandafter\@circnum\csname c@#1\endcsname
}
\newcommand*{\@circnum}[1]{%
  \ifnum#1<1 %
  \@ctrerr
  \else
  \ifnum#1>20 %
  \@ctrerr
  \else
  \ding{\numexpr 181+(#1)\relax}%
  \fi
  \fi
}
\makeatother

\renewcommand*{\thefootnote}{\circnum{footnote}}

\begin{document}
\begin{longtable}{|>{\centering}m{2em}|>{\centering}m{2em}|>{\centering}m{8.3em}|}
  \toprule
  A & B & C \tabularnewline
  \midrule
  A & B & \begin{enumerate}
    \tiny
  \item ASD\footnote{first}
  \item ASD\footnote{second}
  \end{enumerate} \tabularnewline
  \bottomrule
\end{longtable}

\end{document}

我将在图片底部得到相同的脚注编号:

在此处输入图片描述

请帮忙。我正在使用 TexLive2018 完整架构。

答案1

你缺少了一个\the

\newcommand*{\@circnum}[1]{%
  \ifnum#1<1
    \@ctrerr
  \else
    \ifnum#1>20
      \@ctrerr
    \else
      \ding{\the\numexpr 181+(#1)\relax}%
    \fi
  \fi
}

这将扩展到调用宏时的值。

在此处输入图片描述

相关内容