带有自动结束句号的脚注无法与 acro 包一起使用

带有自动结束句号的脚注无法与 acro 包一起使用

我的脚注有点问题。我使用一种解决方案,在每个脚注末尾添加一个句号\footnote{}(是的,我必须使用\footnote{}而不是\footcite{}因为我必须在脚注中添加一些文本),大多数时候它都能正常工作。但是当我\ac{}在脚注中使用句子末尾的首字母缩略词()时,它不起作用。我很确定这是因为\acdot规定句子末尾(在正文中)不会有两个点。但我不知道如何解决这个问题。希望有人能帮助我。

梅威瑟:

\documentclass[a4paper,12pt]{scrbook}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}

\usepackage[german=guillemets]{csquotes}
\usepackage[hidelinks]{hyperref}
\usepackage[style=german-legal-book]{biblatex}

\addbibresource{mylit.bib}

\bibliography{mylit}
\begin{filecontents}{mylit.bib}
@article{Smith,
Author={Smith, John},
Journal={ExamplePaper},
Title={Titel},
Year={2006},
Number={5},
Pages={1--10}
}
\end{filecontents}

\usepackage{acro}
\acsetup{
  list/template  = styleabbrev,
  list/heading   = chapter,
  list/name      = Abkürzungsverzeichnis
}

\DeclareAcronym{mwN}{
short = m.~w.~N\acdot ,
long = mit weiterem Nachweis ,
first-style = short
}


\let\orgfootnote\footnote
\newcommand\myautodot{%
\ifthenelse{\the\spacefactor>\sfcode`,}{}{.}%
}
\renewcommand\footnote[2][\empty]{%
\ifx#1\empty%
\orgfootnote{\normalsfcodes#2\myautodot}%
\else%
\orgfootnote[#1]{\normalsfcodes#2\myautodot}%
\fi%
}

\begin{document}

There are no two dots at the end of sentence \ac{mwN}.\footnote{And here in the footnote is a dot at the end of the sentence}

Some text.\footnote{No two dots at the end of the sentence.}

Some more text.\footnote{Some text \cite[2]{Smith}}

Different text.\footnote{I like \cite[4]{Smith}.}

Here is a dot.\footnote{But here, I only want one dot not two \ac{mwN}}


\end{document}

答案1

acro配置为查找文字.并吸收(如果存在),我们有一个类似的问题,只使用

\newcommand\mydot{.}
\ac{mwN}\mydot

在正文中。

为了被\myautodot吸收acro需要告知它是\acdot-type 宏可能希望吸收的尾随字符,并且应该允许使用register(错误地记录为define)和activate键。假设我们总是想\acdot吸收两者.\myautodot我们可以重新定义它,以便它查找dot(内部名称acro用途.)和autodot(这就是我们命名的\myautodot

\acsetup{
trailing/register = \myautodot {autodot},
trailing/activate = {autodot}
}
\renewcommand*\acdot{\aciftrailing{dot,autodot}{}{\abbrdot}}

相关内容