编辑:

编辑:

我有以下 MWE:

\documentclass[a4paper,12pt, oneside, final, headsepline]{scrartcl}

\usepackage{endnotes}
\usepackage[perpage, multiple]{footmisc}
\renewcommand{\notesname}{Linkverzeichnis}
\usepackage{float}
\usepackage[bf]{caption}

\begin{document}
\section{Grundlagen}

Bla bla bla Link\endnote{url1}
\begin{figure}[h]
\centering
\caption[Short caption without endnote to avoid errors]{Blubber. (Quelle\endnote{url2})}
\end{figure}

Bla bla bla Link\endnote{url3}

\theendnotes
\end{document}

结果是:

错误端点计数器

而不是尾注计算

1. url1
2. url2
3. url3

我明白了

1. url1
3. url2
4. url3

或者:

1. url1
2. url2
3. url2
4. url3

在这种情况下,您可以通过注释掉该\usepackage[bf]{caption}行来触发最后一个,但我的文本中出现了这两个。我已经弄清楚如果浮点数中有尾注就会发生这种情况,但我真的不知道为什么。

我怎样才能解决这个问题?

编辑:

根据接受的答案中提供的解决方案,我构建了以下命令以供将来重复使用:

\newcommand{\endnoteouter}[1]{\sbox0{\endnotemark}\endnotetext{\sloppy#1}}
\newcommand{\endnoteinner}{\usebox0}

\endnoteouter{Text}在图前用 声明尾注,并\endnoteinner在正确位置用 调用它。如果图中有多个尾注,可以传递一个参数来指定框号。

答案1

答案已提供这里你可以像这样工作:

\documentclass[a4paper,12pt, oneside, final, headsepline]{scrartcl}

\usepackage{endnotes}
\usepackage[perpage, multiple]{footmisc}
\renewcommand{\notesname}{Linkverzeichnis}
\usepackage{float}
\usepackage[bf]{caption}

\begin{document}
\section{Grundlagen}

Bla bla bla Link\endnote{url1}
\sbox0{\endnotemark}
\begin{figure}[h]
\centering
\caption[Short caption without endnote to avoid errors]{Blubber.
    (Quelle\usebox0)}
\end{figure}
\endnotetext{url2}

Bla bla bla Link\endnote{url3}

\theendnotes
\end{document}

结果

对于为什么会发生这种情况的问题:的内容\endnote可能会被评估两次(因为\caption被评估了两次)导致endnote-counter 的额外增加。

编辑:根据要求,这里有一个(非常丑陋的)命令,可能会简化这个过程:

\documentclass[a4paper,12pt, oneside, final, headsepline]{scrartcl}

\usepackage{endnotes}
\usepackage[perpage, multiple]{footmisc}
\renewcommand{\notesname}{Linkverzeichnis}
\usepackage{float}
\usepackage[bf]{caption}

\newcommand\mycaption[4]{
    \sbox0{\endnotemark}
    \caption[#1]{#2\usebox0#3}
    \endnotetext{#4}
}

\begin{document}
\section{Grundlagen}

Bla bla bla Link\endnote{url1}
\sbox0{\endnotemark}
\begin{figure}[h]
\centering
\caption[Short caption without endnote to avoid errors]{Blubber.
    (Quelle\usebox0)}
\end{figure}
\endnotetext{url2}

Bla bla bla Link\endnote{url3}

\begin{figure}[h]
\centering
\mycaption{Short caption without endnote to avoid errors}{Blubber. (Quelle}{)}{url4}
\end{figure}

\theendnotes
\end{document}

该命令的语法为:

\mycaption[<short caption for lot/lof>]{<caption until the endnote-mark>}{<caption after the endnote-mark>}{<content of the endnotemark>}

编辑 2:如果应该endnotemark始终位于同一位置 (Quelle#),您可以将命令更改为:

\newcommand\mycaption[3][]{
    \sbox0{\endnotemark}
    \ifx&#1&
        \caption[#2]{#2 (Quelle\usebox0)}
    \else
        \caption[#1]{#2 (Quelle\usebox0)}
    \fi
    \endnotetext{#3}
}

并按以下方式使用它:\mycaption[<short caption>]{<caption>}{<endnote text>} 如果您省略<short caption>没有“(Quelle#)”的标题,则会在命令中显示\listof...

相关内容