有关 BibLaTeX 自定义引用格式的帮助

有关 BibLaTeX 自定义引用格式的帮助

我正在使用基于 biblatex 的自定义引用格式:

\DeclareCiteCommand{\mycite}
      {\usebibmacro{prenote}}
      {\usebibmacro{author}
      \newunitpunct
        \usebibmacro{journal}
        \newunitpunct
        \usebibmacro{date}}
      {\multicitedelim}
      {\usebibmacro{postnote}}

这会导致诸如这样的条目(A. Einstein, Annalen der Physik, 1916)

不幸的是,如果 A. Einstein 在同一年在同一期刊上发表两篇论文,那么这并不是引用每篇论文的唯一方法。

如果可能的话,以优雅的方式获取(A. Einstein, Annalen der Physik, 1916a)和的最好方法是什么?(A. Einstein, Annalen der Physik, 1916b)

谢谢你!


我添加了一个 MNWE:

\documentclass{article}

\usepackage[backend=biber, sorting=ydnt, sortcites=true, defernumbers=true, maxbibnames=99, natbib=true, giveninits=true]{biblatex}

\usepackage{hyperref}

\DeclareCiteCommand{\mycite}
      {\usebibmacro{prenote}}
      {\usebibmacro{author}
      \newunitpunct
        \usebibmacro{journal}
        \newunitpunct
        \usebibmacro{date}}
      {\multicitedelim}
      {\usebibmacro{postnote}}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{einstein_Elektrodynamik,
  author  = {Albert Einstein},
  title   = {Zur Elektrodynamik bewegter Körper},
  journal = {Annalen der Physik},
  number = {322}, 
  issue = {10},
  pages = {891--921},
  date = {1905},
}
@article{einstein_Lichtes,
  author  = {Albert Einstein},
  title   = {Über einen die Erzeugung und Verwandlung des Lichtes betreffenden heuristischen Gesichtspunkt},
  journal = {Annalen der Physik},
  number = {322}, 
  issue = {6},
  pages = {132--148},
  date = {1905},
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}

\mycite{einstein_Elektrodynamik}
    
\mycite{einstein_Lichtes} 

\printbibliography
\end{document}

答案1

非常感谢@moewe!我想我现在明白了:

\usepackage[backend=biber, sorting=ydnt, sortcites=true, style=authoryear,%
 maxbibnames=99, maxnames=1, minnames=1, natbib=true, giveninits=true,%
 defernumbers=true, uniquelist=false]{biblatex}

\renewbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}}
       {\printnames[mynameformat]{labelname}}%
     \setunit{\addcomma\space}%
     \usebibmacro{journal}%
     \setunit{\addcomma\space}%
     \usebibmacro{cite:labeldate+extradate}}
    {\usebibmacro{cite:shorthand}}}

\renewbibmacro*{cite:labeldate+extradate}{%
  \iffieldundef{labelyear}
    {}
    {   \printtext[bibhyperref]{%
         \printlabeldateextra}}}

\renewcommand{\mkbibnamefamily}[1]{\textsc{#1}}

\DeclareNameFormat{mynameformat}{%
    \usebibmacro{name:given-family}
      {\namepartfamily}
      {\namepartgiveni}
      {\namepartprefix}
      {\namepartsuffix}%
    \usebibmacro{name:andothers}}

\renewcommand{\multicitedelim}{\addsemicolon\space}
\renewcommand{\newunitpunct}{\addcomma\addspace}

也使用这个帖子: biblatex 的作者-期刊-(年份)样式

相关内容