biblatex,完整引用和简短引用

biblatex,完整引用和简短引用

我有这个问题。 经过上次修改后,我的序言中出现了以下 Biblatex 部分:

\usepackage[style=verbose-    ibid,firstinits=true,sorting=nty,sortcites=true,useprefix=false,isbn=false,maxnames=6,backend=biber]{biblatex} % originally the style was verbose-ibid
%\usepackage[style=footnote-dw,namefont=smallcaps,firstinits=true,idembib=true,idembibformat=dash,nopublisher=false,edbyidem=false,backend=biber]{biblatex}
%%\DeclareFieldFormat{shorttitle}{\mkbibemph{#1}}
%\DeclareFieldFormat[article]{title}{\mkbibquote{#1}}
%\DeclareFieldFormat{journaltitle}{\mkbibemph{#1}}
%\DeclareFieldFormat{editor}{\mkbibnormal{#1}} %take off the uppercase from the editor, it does not work yet
\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}}
\renewcommand*{\newunitpunct}{\addcomma\space}%put commas instead of periods after some elements of the title
%\usepackage{biblatex}%remove �in� in journal articles
\renewbibmacro{in:}{%
\ifentrytype{article}{}{%
\printtext{\bibstring{in}\intitlepunct}}}
\renewcommand*{\labelnamepunct}{\addcomma\space}
\renewcommand*{\nametitledelim}{\addcomma\space}
\renewcommand*{\bibfont}{\small}

\renewbibmacro*{publisher+location+date}{%
\printtext[parens]{% ADDED
\printlist{location}%
\iflistundef{publisher}
  {\setunit*{\addcomma\space}}
  {\setunit*{\addcolon\space}}%
\printlist{publisher}%
\setunit*{\addcomma\space}%
\usebibmacro{date}%
}%\nopunct% ADDED
\newunit}
%for citing short forms
\renewbibmacro*{cite:short}{%
\printnames{labelname}%
\setunit*{\nametitledelim}%
% If article:
\ifentrytype{article}{%
    \usebibmacro{journal}%
    \setunit{\addspace}%
    \printfield{volume}}{%
% If incollection:
\ifentrytype{incollection}{%
    \usebibmacro{in:}%
    \printtext[booktitle]{\printfield[titlecase]{booktitle}}}{%
% Else:
\printtext[bibhyperlink]{\printfield[citetitle]{labeltitle}}}}}

%for defining shorthands
\defbibcheck{noshorthand}{%
\iffieldundef{shorthand}{}{\skipentry}%
}

\DeclareFieldFormat{postnote}{\mkcomprange[{\mkpageprefix[pagination]}]{#1}}
\DeclareFieldFormat{pages}{\mkcomprange{#1}}

\setcounter{mincomprange}{100}
\setcounter{maxcomprange}{100000}
\setcounter{mincompwidth}{10}

\makeatletter
\patchcmd{\blx@comprange@check}
{\blx@comprange@comp{#1}{#2}}
{\blx@tempcnta=#1
\divide\blx@tempcnta100
\multiply\blx@tempcnta100
\ifnumequal{\blx@tempcnta}{#1}
 {\blx@range@out@value{#1\bibrangedash#2}}
 {\blx@comprange@comp{#1}{#2}}}
{}{}
\makeatother

\DeclareFieldFormat{postnote}{#1}% no postnote prefix in "normal" citation commands
\DeclareFieldFormat{multipostnote}{#1}% no postnote prefix in "multicite" commands

我没有包括书目条目,因为无论如何这都是通常的做法。我没有找到相关信息,但我想知道 biblatex 中是否存在一个引用命令,用于对文章本身的第一个引用进行完整引用,并带有总页码范围,以及另一个命令,用于引用第一篇文章而无需总页码范围。

例如,第 1 号,J. Robinson,《消失的岛屿》,《自然》78(2008),123-135,第 2 号,J. Robinson,《消失的岛屿》,《自然》78(2008),[无页码范围]

例如,这也适用于引文。当您需要提及文章中的确切页码,而不必提及全部页码时,这将非常有用。无论如何,完整的引文都会在参考书目中。目前我唯一的解决方案是进行修改,以便整个页码范围根本不会出现,但这意味着我必须根据需要重新输入信息,而不是使用命令。

答案1

对于verbose-ibid您所使用的风格,您可以使用现成的选项“citepages”,它可以满足您的要求。

尝试使用以下命令加载包:citepages=suppress或者citepages=omit,如下所示这里

相关内容