脚注:修复代码

脚注:修复代码

目的是在没有数字的情况下对某些内容进行脚注。这个想法就像

\newcommand\blfootnote[1]{\begingroup\renewcommand\thefootnote{}\footnote{#1}\addtocounter{footnote}{-1}}

鉴于底部的这段代码,我有两个问题:

  1. 脚注\blfootnote没有编号,但 hyperref 放了一些没有内容的红框。我不想要这个。

  2. 带有 的脚注\footnote已不再有数字。

    \documentclass{scrartcl}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[ngerman]{babel}
    \newcommand\blfootnote[1]{\begingroup\renewcommand\thefootnote{}\footnote{#1}\addtocounter{footnote}{-1}}
    \usepackage[ngerman]{varioref}
    \usepackage{hyperref}
    \usepackage[ngerman]{cleveref}
    \begin{document}
    \blfootnote{should be without number and is without number}
    \footnote{should be with number but is without number}
    \end{document}
    

如何修复此问题?

答案1

对于\footnote没有一个数字,只需\footnotetext对脚注编号的打印进行微小调整即可:

在此处输入图片描述

\documentclass{article}

\usepackage[paperheight=20\baselineskip]{geometry}% Just for this example

\newcommand{\blfootnote}[1]{{\renewcommand{\thefootnote}{\roman{footnote}}\footnotetext[0]{#1}}}

\usepackage{hyperref}

\begin{document}

\blfootnote{should be without number and is without number}
\footnote{should be with number}

\end{document}

\footnotetext[<num>]{<fn>}将脚注设置<fn>为数字<num>。如果没有指定数字,则使用当前脚注编号。 的定义\blfootnote将编号方案重置为\alph,并强制脚注编号为0。由于\alph数字0导致空白条目,因此不会打印脚注编号。

\blfootnote内部的改变\thefootnote是局部的,因此\thefootnote在宏调用后会恢复到原始定义。

相关内容