简洁的 \fullcite 命令

简洁的 \fullcite 命令

我想在演示文稿中即时引用作者 + 缩写期刊 + 年份(在文本主体中或在 tikz 节点中)。这是一个 mwe,它针对非常有限的一组案例执行其应有的功能。我认为实现以下目标将很有用:

  1. \clearfield(例如指定不需要的信息)不同,我只想指定我们需要的几条信息。

  2. 缩写日记是最好的。

对于如何实现此功能的任何建议我们都将表示感谢。

\documentclass[9pt,t,unknownkeysallowed]{beamer}%
\usetheme{Montpellier}%
\usepackage[style=numeric, 
            backend=biber,
            firstinits=true]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Article{Doe2016,
  author  = {Doe, Jhon and Doe2, Jhon2},
  title   = {Some journal article},
  journal = {Fancy Journal},
  year    = {2016},
  volume  = {56},
  number  = {3},
  pages   = {1-99},
}
\end{filecontents}
\addbibresource{\jobname.bib}
% adjust style on the fly
\renewbibmacro{in:}{,}
\AtEveryCitekey{\clearfield{url}}
\AtEveryCitekey{\clearfield{note}}
\AtEveryCitekey{\clearfield{title}}
\AtEveryCitekey{\clearfield{doi}}
\AtEveryCitekey{\clearfield{eprint}}
\AtEveryCitekey{\clearfield{journal}}
\AtEveryCitekey{\clearfield{pages}}
\AtEveryCitekey{\clearfield{number}}
\AtEveryCitekey{\clearfield{volume}}

\begin{document}

\begin{frame}[c]
\fullcite{Doe2016}
\end{frame}

\end{document}

答案1

我可能会反其道而行之,定义一个引用命令,只从一开始就打印你想要的三位信息,而不是从其\fullcite大部分输出开始并删除它们。

\documentclass{beamer}
\usepackage[style=numeric, 
            backend=biber,
            giveninits=true]{biblatex}
\addbibresource{biblatex-examples.bib}


\DeclareFieldFormat{beamercolorauthor}{%
  \usebeamercolor[fg]{bibliography entry author}%
  #1}
\DeclareFieldFormat{beamercolortitle}{%
  \usebeamercolor[fg]{bibliography entry title}%
  #1}
\DeclareFieldFormat{beamercolornote}{%
  \usebeamercolor[fg]{bibliography entry note}%
  #1}

\DeclareCiteCommand{\ajycite}
  {\usebibmacro{prenote}}
  {\printtext[beamercolorauthor]{%
     \printnames[given-family]{labelname}%
     \setunit{\addcomma\space}}%
   \printtext[beamercolornote]{%
     \printfield{journaltitle}%
     \setunit{\addspace}%
     \printtext[parens]{%
       \printdate}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\begin{document}

\begin{frame}[c]
\ajycite{sigfridsson}
\end{frame}

\end{document}

E. Sigfridsson 和 U. Ryde,《计算化学杂志》(1998 年)


这不会缩写期刊名称。我不知道是否biblatex有通用的、基于 /Biber 的自动期刊名称缩写解决方案。使用 biblatex/biber 在参考文献列表中显示期刊缩写提出了一种解决方案,您必须手动给出每个相关期刊的缩写。另请参阅https://github.com/plk/biblatex/issues/795

JabRef 等外部工具对期刊缩写有广泛的支持,因此我建议使用它们。

相关内容