仅打印现有脚注/抑制空脚注

仅打印现有脚注/抑制空脚注

这是我之前问题的后续将单独的脚注合并到文本中

我现在有一个类似的情况,我需要检查是否真的存在与特定数字相关的脚注:

\documentclass[a4paper]{article}

\usepackage{lipsum}
\newcommand{\mylips}[1]{\printfootnote#1 \lipsum[#1]}

\def\printfootnote#1{\footnote{\csname extfootnote#1\endcsname}}
\def\definefootnote#1 #2\endfootnote{%
  \expandafter\def\csname extfootnote#1\endcsname{#2}}
\input{footnotefile}


\begin{document}
 \mylips{1}
 \mylips{2}
 \mylips{3}
 \mylips{4}
 \mylips{5}
 \mylips{6}
 \mylips{7}
\end{document}

footnotefile.tex将会

\definefootnote1 Some footnote\endfootnote
\definefootnote3 Another footnote\endfootnote
\definefootnote7 And another footnote\endfootnote 

挑战在于我根本不想出现空白的笔记。

我该如何编写测试来判断某个结果\printfootnote\arabic{somecounter}是否为空?

答案1

那么您\printfootnote应该检查脚注是否已定义:

\def\printfootnote#1{%
  \expandafter\ifx\csname extfootnote#1\endcsname\relax % by default \csname FOO\endcsname is \relax
 \stepcounter{footnote}\else % Even if we do not produce footnote, we step the number
 \footnote{\csname extfootnote#1\endcsname}\fi}

在您的示例中,这对我来说是有效的。

在此处输入图片描述

相关内容