![带有自动结束句号的脚注无法与 acro 包一起使用](https://linux22.com/image/449295/%E5%B8%A6%E6%9C%89%E8%87%AA%E5%8A%A8%E7%BB%93%E6%9D%9F%E5%8F%A5%E5%8F%B7%E7%9A%84%E8%84%9A%E6%B3%A8%E6%97%A0%E6%B3%95%E4%B8%8E%20acro%20%E5%8C%85%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8.png)
我的脚注有点问题。我使用一种解决方案,在每个脚注末尾添加一个句号\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}}