biblatex 创建引用命令(作者、年份、页码)

biblatex 创建引用命令(作者、年份、页码)

有没有一个命令可以引用,biblatex它可以做\citeauthor同样的事情,但还要多一点。我正在寻找类似的东西\cite[85-86][2017]{mehlich2017}。所以输出是这样的

(Mehlich,2017,第 85-86 页)

或者它可以从 eintry 中获取年份本身,biblatex所以它只是\cite[85-86]{mehlich2017}。我尝试查看文档,但不确定如何创建命令,因为我似乎找不到可以满足我需求的命令。

我正在使用biblatex这个memoir课程,目前正在使用这个基本设置(我已经用了很长时间了,我不认为是这个造成了问题)。提前致谢。

\documentclass[11pt,openright,oneside,british,a4paper]{memoir}

%  Packages
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{import}

\usepackage{amsmath}
\usepackage{graphicx}
\usepackage[colorlinks=true, allcolors=blue]{hyperref}

\usepackage[backend=biber,
  style=chem-acs,  % Citation style as (AUTHOR YEAR)
  sorting=none,            % Sort citations as YEAR-NAME-TITLE
  sortcites=true,
  %dashed=false,
  maxcitenames=3,         % Increase/decrease to include more/fewer authors in cites
  maxbibnames=5,          % As above, but in the bibliography
  uniquelist=false,
  uniquename=false,
  doi=false,
  isbn=false,
  eprint=false,
  autocite=superscript,
  biblabel=brackets,
  hyperref=true]{biblatex}

%\usepackage[backend=biber]{biblatex}
\addbibresource{bibliography.bib}




\title{Your Paper}
\author{Me}

%----------------------------------------------------------------------------------------
\begin{document}
\maketitle

Your introduction goes here! Simply start writing your document and use the Recompile button to view the updated PDF preview \parencite[85]{mehlich2017}

\end{document}

答案1

样式chem-acs(的biblatex-chem) 是一种数字样式。这意味着参考列表/参考书目中的作品由数字标签标识。因此,大多数“正常”\...cite命令都会生成具有这种样式的数字。当然,与样式无关的命令\citeauthor(参见 §3.9.5文本命令biblatex文档)还是会做他们通常会做的事情。

如果您想使用作者年份标签进行引用,我建议您使用作者年份样式,而不是使用带有数字样式的自定义命令。最简单的作者年份样式biblatex可能是authoryear

由于并非所有选项chem-acs都受支持authoryear,并且不清楚是否需要示例文档中加载的所有选项,因此我建议您简单地加载biblatex\usepackage[backend=biber, style=authoryear]{biblatex}根据需要添加更多选项。

对于引用,我建议你使用\autocite\textcite。对于专业用途,你可以尝试 §3.9 中列出的所有其他命令引文命令

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=authoryear]{biblatex}

\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite[380-381]{sigfridsson}
ipsum \autocite[12]{worman}
dolor \autocite{sigfridsson}
sit \autocite{nussbaum}

But then \textcite{sigfridsson} showed that \dots

\printbibliography
\end{document}

Lorem(Sigfridsson and Ryde 1998,第 380-381 页) ipsum(Worman 2002,第 12 页) dolor(Sigfridsson and Ryde 1998) sit(Nussbaum 1978)但随后 Sigfridsson 和 Ryde(1998)表明......


至于为什么biblatex仅加载\usepackage{biblatex}并不能让您获得更大的帮助:那是因为如果您不指定选项stylebiblatex则默认style=numeric,行为大致类似于chem-acs

答案2

在此处输入图片描述

一个答案更改作者年份 biblatex 引用样式可以根据你的目的进行调整

\documentclass[11pt,openright,oneside,british,a4paper]{memoir}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[colorlinks=true, allcolors=blue]{hyperref}

\usepackage[backend=biber,style=authoryear]{biblatex}
\addbibresource{biblatex-examples.bib}
    
% ===== Patch citation commands to include entire label in the citation link =====
% BEGIN_FOLD
    
    % Define the delimiter between name and year
    \renewcommand*{\nameyeardelim}{\addcomma\addspace}
    
    % Define new bib macro
    \newbibmacro*{cite_p}{%adapted from authoryear.cbx
        \iffieldundef{shorthand}
        {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}%
            {\usebibmacro{cite:label}%
                \setunit{\addspace}}%
            {\printnames[labelname_p]{labelname}%
                \setunit{\nameyeardelim}}%
            \usebibmacro{cite:labelyear+extrayear}%
            \iffieldundef{pages}%
            {}%
            {}%
        }
        {\usebibmacro{cite:shorthand}}}
    
    % Redefine \parencite
    \DeclareCiteCommand{\parencite}[\mkbibparens]%adapted from authoryear.cbx
    {\usebibmacro{prenote}}
    {\usebibmacro{citeindex}%
        \usebibmacro{cite_p}}
    {\multicitedelim}
    {\usebibmacro{postnote}}
    
    % Modify the string pp.
    \DefineBibliographyStrings{english}{%
        page={p\adddot},%
        pages={p\adddot},%
    }

% END_FOLD


\begin{document}
    
    \noindent This is sample citation label using \verb|\parencite| \parencite[85-86]{aksin}
    
    \printbibliography[heading=subbibliography]
    
\end{document}

相关内容