使用 biblatex-gost 引用

使用 biblatex-gost 引用

我正在使用biblatex-gostpackage, gost-footnotestyle。我有两个无法解决的问题:

  1. 根据 GOST,如果某个书目条目连续被引用两次或两次以上,则第二次、第三次等引用应替换为“Ibid”。但是,如果其中一个引用恰好是该页面上的第一个引用,则应指定整个书目条目数据。正如您在 MWE 中看到的那样,情况并非如此。

  2. 如果我引用某个项目,比如一篇文章,超过两次(不是连续的),脚注中的参考就会缩短。opcittracker=false设置有助于将其延长到文章标题,但期刊名称、年份等仍然没有指定。

梅威瑟:

\documentclass[12pt,a4paper]{extreport}

\usepackage{cmap}                           
\usepackage[T2A]{fontenc}       
\usepackage[utf8]{inputenc}         
\usepackage[english,russian]{babel} 
\usepackage{hyperref}
\frenchspacing
\usepackage[backend=biber,bibencoding=utf8,sorting=nyt,maxcitenames=2,maxbibnames=999,style=gost-footnote,language=auto,autolang=other,bibstyle=gost-numeric,opcittracker=false]{biblatex}
\addbibresource{biblio.bib}
\usepackage[autostyle]{csquotes}

\usepackage{lipsum}

\begin{document}

some text some text some text some text some text some\footcite{cummings2004argument} text some text some text some\footcite[P.~335]{cummings2004argument} text some text some text some text

\lipsum

some text some text some text some text some text\footcite{cummings2004argument} some text some text some text some text some text some text some text\footcite{hample1982modeling}

\lipsum

some text some text some text some text some text\footcite{cummings2004argument} some text

\printbibliography

\end{document}

.bib 文件:

@article{hample1982modeling,
    langid = {english},
    title={Modeling argument},
    author={Hample, Dale},
    journal={Advances in argumentation theory and research},
    pages={259--284},
    year={1982},
    publisher={Southern Illinois University Press Carbondale}
}


@article{cummings2004argument,
    langid = {english},
    title={Argument as Cognition: A Putnamian Criticism of Dale Hample’s Cognitive Conception of Argument},
    author={Cummings, Louise},
    journal={Argumentation},
    volume={18},
    number={3},
    pages={331--348},
    year={2004},
    publisher={Springer}
}

编辑。还有一个问题,而且相当令人惊讶(这就是我之前没有注意到的原因)。如果我引用了某个已pages填写字段的书目项目(通常是文章、书籍章节、会议论文集材料……),同时指定特定页面作为后注参数,则脚注中的引用既包括期刊中文章(或其他类型的项目)的页面范围,也包括我指定的页面。根据 GOST,在这种情况下,页面范围应该被隐藏。换句话说,我想得到

Author Name. Article Title // Journal name. Year. Vol. 1, no 2. P. 10

代替

Author Name. Article Title // Journal name. Year. Vol. 1, no 2. Pp. 5-15. P. 10.

MWE(包括以前的解决方案):

\documentclass[12pt,a4paper]{extreport}

\usepackage{cmap}                           
\usepackage[T2A]{fontenc}       
\usepackage[utf8]{inputenc}         
\usepackage[english,russian]{babel} 
\usepackage{hyperref}
\frenchspacing
\usepackage[backend=biber,bibencoding=utf8,sorting=nyt,maxcitenames=2,maxbibnames=999,style=gost-footnote,language=auto,autolang=other,bibstyle=gost-numeric,opcittracker=false,pagetracker]{biblatex}
\addbibresource{biblio.bib}
\usepackage[autostyle]{csquotes}

\renewbibmacro*{cite:seen}{%  the same for cite and footcite
    \iffirstonpage
    {\iffieldundef{shorthand}
        {\usebibmacro{cite:short}}
        {\usebibmacro{cite:shorthand}}}
    {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
        {\usebibmacro{cite:ibid}}
        {\ifopcit
            {\usebibmacro{cite:opcit}}
            {\iffieldundef{shorthand}
                {\usebibmacro{cite:short}}
                {\usebibmacro{cite:shorthand}}}}}}

\renewbibmacro*{cite:seen}{%  the same for cite and footcite
    \iffirstonpage
    {\iffieldundef{shorthand}
        {\usebibmacro{cite:full}}
        {\usebibmacro{cite:shorthand}}}
    {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
        {\usebibmacro{cite:ibid}}
        {\ifopcit
            {\usebibmacro{cite:opcit}}
            {\iffieldundef{shorthand}
                {\usebibmacro{cite:full}}
                {\usebibmacro{cite:shorthand}}}}}}

\usepackage{lipsum}

\begin{document}

some text some text some\footcite[P.~335]{cummings2004argument} text some text some text some text


\printbibliography

\end{document}

答案1

对于第一个问题,您需要将实例更改为\ifciteibid\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}您还必须启用该pagetracker选项)

\usepackage[backend=biber,sorting=nyt,style=gost-footnote,bibstyle=gost-numeric,opcittracker=false,pagetracker]{biblatex}

据我所知你只需要改变

\renewbibmacro*{cite:seen}{%  the same for cite and footcite
  \iffirstonpage
    {\iffieldundef{shorthand}
      {\usebibmacro{cite:short}}
      {\usebibmacro{cite:shorthand}}}
    {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
      {\usebibmacro{cite:ibid}}
      {\ifopcit
        {\usebibmacro{cite:opcit}}
        {\iffieldundef{shorthand}
          {\usebibmacro{cite:short}}
          {\usebibmacro{cite:shorthand}}}}}}

如果你的第二点是想看到后续引用的完整引用,那么你需要将cite:short上述代码中的所有 s 更改为cite:full

\renewbibmacro*{cite:seen}{%  the same for cite and footcite
  \iffirstonpage
    {\iffieldundef{shorthand}
      {\usebibmacro{cite:full}}
      {\usebibmacro{cite:shorthand}}}
    {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
      {\usebibmacro{cite:ibid}}
      {\ifopcit
        {\usebibmacro{cite:opcit}}
        {\iffieldundef{shorthand}
          {\usebibmacro{cite:full}}
          {\usebibmacro{cite:shorthand}}}}}}

相关内容