问题

问题

背景


在我正在排版的 Beamer Presentation 中,作者想要两件事:

  1. 作者希望既有脚注引用,又有演示文稿末尾的参考列表。
  2. 在脚注引用中,作者希望列出参考文献的作者和参考文献的出版信息,但不是标题或任何不必要的 URL。

到目前为止,我有解决方案。

  1. 我可以使用biblatex's\footfullcite\footcite命令来引用脚注。
  2. 对于脚注样式,chem-acs参考书目样式适用于标准参考书目项目。

MWE #1:工作案例

\documentclass{beamer}
\begin{filecontents}{test.bib}
@article{testArt,
 AUTHOR = {Author, Aa},
  TITLE = {A long title illustrating the need to remove the title from footnote citations, at least in Presentations},
JOURNAL = {Lorem Ipsum Stud.},
 VOLUME = {15},
  PAGES = {1--20},
   YEAR = {1999},
    URL = {https://math.stackexchange.com},
}
\end{filecontents}

\usepackage[backend=biber,style=chem-acs]{biblatex}
\addbibresource{test.bib}

\begin{document}
\begin{frame}
An important fact\footfullcite{testArt} is useful for the following results.  
\end{frame}

\begin{frame}{References}
\printbibliography
\end{frame}
\end{document}

脚注中包含 <code>chem-acs</code> 参考的幻灯片 <code>chem-acs</code> 样式的参考幻灯片

问题


问题是作者还想引用一篇arXiv文章,如果我使用类型@onlinebiblatex格式化arXiv参考文献,chem-acs我不知道该怎么做。它打印标题,而不是任何信息eprint

MWE #2:破案

\documentclass{beamer}
\begin{filecontents}{testAppend.bib}
@article{testArt,
 AUTHOR = {Author, Aa},
  TITLE = {A long title illustrating the need to remove the title from footnote citations, at least in Presentations},
JOURNAL = {Lorem Ipsum Stud.},
 VOLUME = {15},
  PAGES = {1--20},
   YEAR = {1999},
    URL = {https://math.stackexchange.com},
}
@online{fakearXiv,
     AUTHOR = {Buthor, Bb},
      TITLE = {Not a real arXiv article},
       DATE = {1950-05-01},
 EPRINTTYPE = {arXiv},
     EPRINT = {5005.01},
EPRINTCLASS = {math.GM},
}
\end{filecontents}

\usepackage[backend=biber,style=chem-acs]{biblatex}
\addbibresource{testAppend.bib}

\begin{document}
\begin{frame}
An important fact\footfullcite{testArt} is useful for the following results.

We also mention the following result.\footfullcite{fakearXiv}
\end{frame}

\begin{frame}{References}
\printbibliography
\end{frame}
\end{document}

新的第一张幻灯片,脚注中的 arXiv 输出不正确(包含标题,没有 arXiv 信息) 新的参考幻灯片,arXiv 输出再次不佳

chem-angew没有给出明显不同的结果——有一个日期,但仅此而已)。

我认为有两种可行但烦人的解决方案:

A。手动格式化所有脚注引用(\nocite适当使用),并使用标准参考书目样式来获取正确的演示文稿结尾引用。

B.创建一种新biblatex样式,其文内引用样式类似于所需的脚注样式(但允许@online),并且其参考书目样式是任何适当的样式。

问题

是否有其他解决方法,可以保留脚注的作者和出版物格式,但允许@online(以及可能的其他不寻常的格式)?

目标

全部需要的是@article,并且@online对于当前的任务来说也是如此;但是,我会尝试给出更通用的标准。(感谢评论者 moewe 的建议。)


A好的解决方案将包括以下字段,用于给定种类的脚注引用,并且不包括title。(对演示文稿末尾的参考书目没有格式要求;标点符号、格式和排序都很灵活。)

@article:作者、期刊、年份、卷(可选数字)、页码。

@book:作者、地点:出版商、(可选版本)、年份(可选卷/部分/等)

@collection:编辑、地点:出版商、(可选版本)、年份(可选卷/部分/等)

@incollection:作者,在:编辑,位置:出版商,(可选版本),年份,页数。(可选卷/部分/等)

@inproceedings:相同,但可以添加组织。

@online:作者、年份(可选)、EPrint。

@thesis:作者,(可选类型),机构,年份。

我认为这足以说明问题。作者/编辑,一些字段表明出版商和/或地点(或电子等价物),部分来源的页面,年份。

(注:在这一层次上,问题 233851可能就足够了。[感谢用户 moewe 提醒我注意这个问题。])


A伟大的解决方案将完成上述操作,除了每当文档中的两个来源具有相同的作者和年份时,就必须打印标题或简称(类似于authortitle-terse,但限制性更强)。


一个出色的解决方案将执行上述操作,并具有更具描述性的最终参考书目文件(特别是允许标题)。(如果不有效地制定新的参考书目样式,这可能是不可能的。)

答案1

由于脚注引用和最后的参考书目中的信息差别很大,我认为有必要完全重新实现独立于参考书目的引用,这实际上允许您将这种引用样式与几乎所有参考书目样式一起使用。

这个想法是为每种条目类型定义一个引用宏,然后打印您想要看到的简短引用。

optionallabeltitle如果同一作者列表中的同一年份有多个条目,则该宏会打印标题。目前,该宏仅针对@books 调用,因为它似乎只与此相关。但您当然可以扩展它。

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{testArt,
 AUTHOR = {Author, Aa},
  TITLE = {A long title illustrating the need to remove the title from footnote citations, at least in Presentations},
JOURNAL = {Lorem Ipsum Stud.},
 VOLUME = {15},
  PAGES = {1--20},
   YEAR = {1999},
    URL = {https://math.stackexchange.com},
}
@online{fakearXiv,
     AUTHOR = {Buthor, Bb},
      TITLE = {Not a real arXiv article},
       DATE = {1950-05-01},
 EPRINTTYPE = {arXiv},
     EPRINT = {5005.01},
EPRINTCLASS = {math.GM},
}
\end{filecontents}

\usepackage[backend=biber,style=chem-acs,labeldateparts,eprint=true]{biblatex}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\newbibmacro{cite:type:article}{%
  \usebibmacro{author/translator+others}%
  \newunit
  \usebibmacro{journal+issuetitle}%
  \setunit{\bibpagespunct}%
  \printfield{pages}}

\newbibmacro{cite:type:online}{%
  \usebibmacro{author/editor+others/translator+others}%
  \newunit
  \ifboolexpr{test {\iffieldequalstr{eprinttype}{arXiv}} or
              test {\iffieldequalstr{eprinttype}{arxiv}}}
    {}
    {\printlabeldate}%
  \newunit
  \iftoggle{bbx:eprint}
    {\usebibmacro{eprint}}
    {}%
  \newunit
  \iffieldundef{eprint}
    {\usebibmacro{url}}
    {}}

\newbibmacro{cite:type:book}{%
  \usebibmacro{author/translator+others}%
  \setunit{\printdelim{nametitledelim}}%
  \usebibmacro{optionallabeltitle}%
  \newunit
  \usebibmacro{cite:publisher+location+edition+date}}

\newbibmacro{cite:type:collection}{%
  \usebibmacro{editor+others}%
  \newunit
  \usebibmacro{cite:publisher+location+edition+date}}

\newbibmacro{cite:type:incollection}{%
  \usebibmacro{author/translator+others}%
  \newunit
  \usebibmacro{in:}%
  \usebibmacro{cite:type:collection}%
  \setunit{\bibpagespunct}%
  \printfield{pages}}

\newbibmacro{cite:type:proceedings}{%
  \usebibmacro{editor+others}%
  \newunit
  \printfield{organization}%
  \newunit
  \usebibmacro{cite:publisher+location+edition+date}}

\newbibmacro{cite:type:inproceedings}{%
  \usebibmacro{author/translator+others}%
  \newunit
  \usebibmacro{in:}%
  \usebibmacro{cite:type:proceedings}%
  \setunit{\bibpagespunct}%
  \printfield{pages}}

\newbibmacro{cite:type:thesis}{%
  \usebibmacro{author}%
  \newunit
  \printfield{type}%
  \newunit
  \printlist{institution}%
  \setunit*{\addcomma\space}%
  \printlabeldate
}

\newbibmacro*{optionallabeltitle}{%
  \iffieldundef{extradate}
    {}
    {\ifnumgreater{\thefield{extradate}}{0}
       {\printfield[citetitle]{labeltitle}}
       {}}}

\newbibmacro*{cite:publisher+location+edition+date}{%
  \printlist{location}%
  \setunit*{\addcolon\space}
  \printlist{publisher}%
  \setunit*{\addcomma\space}%
  \printfield{edition}%
  \setunit*{\addcomma\space}%
  \printlabeldate
  \newunit
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
}

\makeatletter
\DeclareCiteCommand{\foothalffullcite}[\mkbibfootnote]
  {\usebibmacro{prenote}}
  {\ifbibmacroundef{cite:type:\thefield{entrytype}}
     {\blx@warning{No cite macro for entry type '\thefield{entrytype}'.\MessageBreak
        Falling back to full bibldriver}%
      \usedriver{}{\thefield{entrytype}}}
     {\usebibmacro*{cite:type:\thefield{entrytype}}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}
\makeatother

\DeclareMultiCiteCommand{\foothalffullcites}[\mkbibfootnote]{\foothalffullcite}{\multicitedelim}
\DeclareAutoCiteCommand{foothalffullcite}{\foothalffullcite}{\foothalffullcites}
\ExecuteBibliographyOptions{autocite=foothalffullcite}

\begin{document}
An important fact\autocite{testArt} is useful for the following results.

We also mention\autocite{fakearXiv} the following result.\autocite{markey}

Dolor\autocite{knuth:ct:b} sit\autocite{knuth:ct:c} amet\autocite{companion}

Lorem\autocite{westfahl:space} ipsum \autocite{gaonkar:in}

Lorem\autocite{geer} ipsum \autocite{loh}

Lorem\autocite{pines} ipsum \autocite{brandt}

\printbibliography
\end{document}

《世界经济评论》的脚注

相关内容