在脚注中指定引用样式(指向引用的末尾)

在脚注中指定引用样式(指向引用的末尾)

我正在尝试修改脚注中的引用样式,特别是在引用末尾添加一个要点。

我使用该biblatex-chicago包来编制我的参考书目,下面是我的文档设置的 MWE:

\documentclass{scrbook}

\usepackage[utf8]{inputenc}

\usepackage[main=british, ngerman]{babel}
\usepackage[babel]{csquotes}

\usepackage[backend=biber,
            bibencoding=inputenc,
            notes,
            isbn=false,
            noibid=true,
            doi=only,
            ]{biblatex-chicago}

\begin{filecontents}{bibliography.bib}
@article{url,
  url = {http://www.example.de},
  author = {Surname, Prename},
  title = {An article which has a URL},
  journaltitle = {Bibliography Styles in LaTeX},
  date = {2017}
}

@article{no_url_1,
  author = {Surname, Prename},
  title = {An article which has no URL},
  journaltitle = {Bibliography Styles in LaTeX},
  date = {2017}
}

@article{no_url_2,
  author = {Surname, Prename},
  title = {An article which has no URL},
  journaltitle = {Bibliography Styles in LaTeX},
  date = {2017}
}
\end{filecontents}

\addbibresource{bibliography.bib}


\begin{document}
Entry with url.\footnote{\cite{url}}
Entry without url.\footnote{\cite{no_url_1}}
Entry without url but page reference.\footnote{\cite[5]{no_url_2}}
\end{document}

结果如下: 在此处输入图片描述

我区分了带 URL 和不带 URL 的条目,因为您可以在第二条条目中看到尾随的逗号。此外,我还创建了两个不带 URL 的 bib 条目,因为在我第一次引用条目后,脚注中会有一个简短版本。

我的目标是在每个脚注引文的末尾添加一个点,因此也替换尾随的逗号。有没有办法更改样式并以编程方式执行此操作(无需自己编写样式)还是我必须在每个条目上手动插入点,如下所示:

\footnote{\cite{id}.}

提前感谢任何帮助。

[编辑]

给定的文档处于最后阶段,我正在尝试与作者协商以解决一些问题。有相当多的长脚注,其中有很多cites 与文本混合在一起。因此,像@gusbrs 建议的那样更改命令将非常困难(尽管可能)。我仍然希望还有其他方法。

答案1

当然最好的解决方案是使用\footcite

但是如果在脚注中调用它,我们也可以让其\cite以句号结束。

\DeclareCiteCommand{\cite}
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}\iffootnote{\addperiod}{}}

第二个脚注中有问题的逗号是由于cjournal+issue+year+pages未使用中的逗号造成的\setunit

\makeatletter
\renewbibmacro*{cjournal+issue+year+pages}{%
  \usebibmacro{cjournal+ser+vol+num}%
  \ifboolexpr{% 16th ed.
    test {\iffieldundef{issue}}%
    and
    test {\iffieldundef{year}}%
    and
    not togl {cms@switchdates}%
  }%
  {\iffieldundef{number}%
    {\ifthenelse{\iffieldundef{pagination}\AND%
        \iffieldundef{bookpagination}}%
      {\setunit{\postvolpunct}}%
      {\setunit{\addcolon\addspace}}}%
    {\setunit{\addcomma\addspace}}}%<--- HERE
  {\ifthenelse{\iffieldundef{volume}\AND\iffieldundef{number}}% 16th ed.
    {\newcunit%
      \iffieldundef{issue}%
      {\usebibmacro{number+or+month}}%
      {\printfield{issue}%
        \setunit{\addspace}%
        \usebibmacro{cmsyear}}%
      \setunit{\addcomma\addspace}}%<--- HERE
    {\setunit{\addspace}%
    \printtext[parens]{% parens is the default here
      \iffieldundef{issue}%
      {\usebibmacro{number+or+month}}%
      {\printfield{issue}%
        \setunit{\addspace}%
        \usebibmacro{cmsyear}}}}}}
\makeatother

这两项变化以 标记HERE

相关内容