平均能量损失

平均能量损失

日记伊希斯:科学史学会期刊 使用引用样式这与《芝加哥》(作者标题)非常相似,但有几点不同:

  1. 页面总是用 p./pp 来引用。
  2. @article引用格式为

约翰·C·格林,《达尔文研究进展反思》生物学史杂志,1975年,8:243–273,https://doi.org/10.1007/BF00130440,第 270 页

斯蒂尔曼·德雷克,《音乐在伽利略实验中的作用》《科学美国人》,1975年6月,232(6):98–104

换句话说,长篇文章的格式需要进行调整,以便:

  • /紧接着year(用逗号标记)出现datejournal
  • 应该volume斜体
  • 当出现问题时number,它应该紧跟volume在圆括号中(而不是斜体)
  • 始终给出完整的页面范围(在volume+ 冒号后面)
  • 接下来是 DOI/URL
  • 具体页码引用(如果有)前面应该加上“on p./pp”。

短文引用如下:

格林,《反思》,第 272 页。

简短的书籍引用与芝加哥的唯一不同之处在于它们使用“p./pp.”:

库恩,结构,第 25 页。

有人已经实施了这种略有不同的引用样式吗?如果没有,进行这些更改的最佳方法是什么?

平均能量损失

在其他地方,@moewe 已经实现了一种方法始终包含文章的完整页面范围(该答案的改进版本这里),即使是在第一次引用特定页面时也是如此。我已将其包含在以下 MWE 中,但除此之外,它仍然缺少必要的更改:

\documentclass{article}

\usepackage[notes]{biblatex-chicago}

\begin{filecontents*}{\jobname.bib}
@article{greene1975,
    Author = {John C. Greene}, 
    Title = {Reflections on the Progress of Darwin Studies},
    Shorttitle = {Reflections},
    Journal = {Journal of the History of Biology}, 
    Year = {1975},
    Volume = {8},
    Pages = {243–273},
    Url = {https://doi.org/10.1007/BF00130440}}

@article{drake1975,
    Author = {Stillman Drake}, 
    Title = {The Role of Music in Galileo’s Experiments},
    Shorttitle = {Role},
    Journal = {Scientific American},
    Month = jun, 
    Year = {1975},
    Volume = {232},
    Number = {6},
    Pages = {98–104}}

@book{kuhn:structure3,
    address = {Chicago},
    author = {Kuhn, Thomas S.},
    edition = {3},
    publisher = {University of Chicago Press},
    title = {The Structure of Scientific Revolutions},
    year = {1996},
    shorttitle = {Structure}}
\end{filecontents*}
\addbibresource{\jobname.bib}

\DefineBibliographyStrings{english}{
  thiscite = {on},
}

% moewe's method for including full page range even when a specific page is cited

\newtoggle{cbxchic:hadpages}


\renewbibmacro*{fullpostnote}{%
  \global\toggletrue{cbxchic:hadpages}%
  \iffieldundef{chapter}%
   {\iffieldundef{pages}%
      {\global\togglefalse{cbxchic:hadpages}}%
      {\postnotedelim%
        \printfield{pages}}}%
   {\postnotedelim%
    \printfield{chapter}}%
  \ifboolexpr{
      test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
      and
      test {\iffieldpages{postnote}}
      and
      togl {cbxchic:hadpages}
    }
    {\setunit{\addcomma\space}%
     \bibstring{thiscite}%
     \setunit{\addspace}}
    {\iffieldundef{postnote}{}{\postnotewrapper}}%
  \usebibmacro{semel:postnote}}

\renewbibmacro*{eid+fullpostnote}{%
  \global\toggletrue{cbxchic:hadpages}%
  \iffieldundef{chapter}%
    {\iffieldundef{pages}%
      {\iffieldundef{eid}%
        {\global\togglefalse{cbxchic:hadpages}}%
        {\postnotedelim%
          \printfield{eid}%
          \clearfield{eid}}}%
      {\postnotedelim%
        \printfield{pages}}}%
    {\postnotedelim%
      \printfield{chapter}}%
  \ifboolexpr{
      test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
      and
      test {\iffieldpages{postnote}}
      and
      togl {cbxchic:hadpages}
    }
    {\setunit{\addcomma\space}%
     \bibstring{thiscite}%
     \setunit{\addspace}}
    {\iffieldundef{postnote}{}{\postnotewrapper}}%
  \usebibmacro{semel:postnote}}


\begin{document}
\cite[270]{greene1975}.

\cite[]{drake1975}.

\cite[272]{greene1975}.

\cite{kuhn:structure3}.

\mancite

\cite[25]{kuhn:structure3}.
\end{document}

电流输出:

在此处输入图片描述

答案1

biblatex-chicago并不适合大规模定制。它是专门为实现所有复杂的需求而编写的芝加哥格式手册。这意味着代码有时非常复杂,才能捕捉到 CMoS 风格的所有细微差别。

postnote这是实现您的要求的尝试。一个主要的麻烦是.的位置,biblatex-chicago投入大量代码使其出现在 URL 之前(条目“内部”),将其移回末尾(标准样式中的位置)需要一些技巧。

\documentclass{article}

\usepackage[notes]{biblatex-chicago}

\DeclareFieldFormat{jourvol}{\mkbibitalic{#1}}
\DeclareFieldFormat{journum}{\mkbibparens{#1}}%

\renewbibmacro*{cjournal+issue+year+pages}{%
  \ifentrytype{periodical}%
  {\usebibmacro{cperiodical+ser+vol+num}}%
  {\usebibmacro{cjournal+ser+vol+num}}}

\renewbibmacro*{cjournal+ser+vol+num}{%
  \usebibmacro{journal+sub}{in}%
  \setunit*{\addspace}%
  \printlist[periodplace]{location}%
  \setunit*{\addspace}%
  \iffieldundef{series}%
    {}%
    {\newcunit%
      \printfield[jourser]{series}%
      \newcunit}%\setunit*{\addspace}?
  \newcunit
  \iffieldundef{issue}%
    {\usebibmacro{number+or+month}}%
    {\printfield{issue}%
     \setunit{\addspace}%
     \usebibmacro{cmsyear}}%
  \newcunit
  \printfield[jourvol]{volume}%
  \printfield[journum]{number}%
  \setunit{\postvolpunct}}% Moved eid for 17th ed.

\DefineBibliographyStrings{english}{
  thiscite = {on},
}

\AtEveryCitekey{\savefield{postnote}{\cbxsavepostnote}\clearfield{postnote}}

\DeclareFieldFormat{pages}{%
  \ifboolexpr{%
    togl {cms@comprange}%
    and
    test {\ifpages{#1}}%
  }%
  {\mkpageprefix[bookpagination][\mkcomprange]{#1}}%
  {\mkpageprefix[bookpagination][\mknormrange]{#1}}}
\DeclareFieldFormat[article,periodical]{pages}{%
  \ifboolexpr{%
    togl {cms@comprange}%
    and
    test {\ifpages{#1}}%
  }%
  {\mkcomprange{#1}}%
  {\mknormrange{#1}}}

\DeclareFieldFormat{postnote}{%
  \ifboolexpr{%
    togl {cms@comprange}%
    and
    test {\ifpages{#1}}%
  }%
  {\mkpageprefix[pagination][\mkcomprange]{#1}}%
  {\mkpageprefix[pagination][\mknormrange]{#1}}}

\renewbibmacro*{postnote}{%
  \restorefield{postnote}{\cbxsavepostnote}%
  \iffieldundef{postnote}
    {}
    {\setunit{\addcomma\space}%
     \iftoggle{cms@fullnote}
       {\iffieldundef{pages}
          {}
          {\iffieldpages{postnote}
             {\bibstring{thiscite}%
              \setunit{\addspace}}
             {}}}
       {}%
     \printfield{postnote}}}

\begin{filecontents*}{\jobname.bib}
@article{greene1975,
  author     = {John C. Greene}, 
  title      = {Reflections on the Progress of Darwin Studies},
  shorttitle = {Reflections},
  journal    = {Journal of the History of Biology}, 
  year       = {1975},
  volume     = {8},
  pages      = {243–273},
  doi        = {10.1007/BF00130440},
}
@article{drake1975,
  author     = {Stillman Drake}, 
  title      = {The Role of Music in Galileo’s Experiments},
  shorttitle = {Role},
  journal    = {Scientific American},
  month      = jun, 
  year       = {1975},
  volume     = {232},
  number     = {6},
  pages      = {98–104},
}
@book{kuhn:structure3,
  address    = {Chicago},
  author     = {Kuhn, Thomas S.},
  edition    = {3},
  publisher  = {University of Chicago Press},
  title      = {The Structure of Scientific Revolutions},
  year       = {1996},
  shorttitle = {Structure},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
\cite[56]{westfahl:space}

\cite[270]{greene1975}.

\cite[]{drake1975}.

\cite[272]{greene1975}.

\cite{kuhn:structure3}.

\mancite

\cite[25]{kuhn:structure3}.
\end{document}

Gary Westfahl,《真正的边疆:美国科幻电影中太空现实的面对与回避》,摘自《太空及其他:科幻小说中的边疆主题》,Gary Westfahl 主编(康涅狄格州韦斯特波特和伦敦:Greenwood,2000 年),第 55-65 页,上接第 56 页//John C. Greene,《对达尔文研究进展的反思》,《生物学史杂志》,1975 年,第 8 期:243-273,https://doi.org/10.1007/BF00130440,上接第 270 页。//Stillman Drake,《音乐在伽利略实验中的作用》,《科学美国人》,1975 年 6 月,第 232(6) 页:98-104。Greene,《反思》,第 56 页。 272.//Thomas S. Kuhn,《科学革命的结构》,第 3 版。(芝加哥:芝加哥大学出版社,1996 年)。//Kuhn,《结构》,第 25 页。

这里尝试以一种biblatex-ext风格重现相同的行为,以便将来更容易定制。

\documentclass[american]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=ext-verbose, articlein=false, citepages=separate]{biblatex}

\renewcommand*{\newunitpunct}{\addcomma\space}

\renewcommand*{\volnumdelim}{}
\DeclareFieldFormat[article,periodical]{volume}{\mkbibitalic{#1}}
\DeclareFieldFormat[article,periodical]{number}{\mkbibparens{#1}}

\DeclareFieldFormat{issuedate}{#1}

\newcommand*{\jourdatedelim}{\addcomma\space}
\newcommand*{\serdatedelim}{\jourdatedelim}
\renewcommand*{\volnumdatedelim}{\addcomma\space}

\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \setunit*{\jourdatedelim}%
  \iffieldundef{series}
    {}
    {\setunit*{\jourserdelim}%
     \printfield{series}%
     \setunit{\seryeardelim}}%
  \usebibmacro{issue+date}%
  \setunit{\addcolon\space}%
  \usebibmacro{issue}%
  \setunit{\volnumdatedelim}%
  \usebibmacro{volume+number+eid}%
  \newunit}

\renewcommand*{\bibpagespunct}{%
  \ifentrytype{article}
    {\addcolon}
    {\addcomma\space}}
\DeclareFieldFormat{pages}{#1}

\newbibmacro*{pubinstorg+location+date}[1]{%
  \ifboolexpr{
    not test {\iflistundef{location}}
    or
    not test {\iflistundef{#1}}
    or
    not test {\iffieldundef{year}}}
    {\setunit{\addspace}%
     \printtext[parens]{%
       \printlist{location}%
       \iflistundef{#1}
         {\setunit*{\locdatedelim}}
         {\setunit*{\locpubdelim}}%
       \printlist{#1}%
       \setunit*{\pubdatedelim}%
       \usebibmacro{date}}%
       \newunit}
    {}}

%\urlstyle{same}
\DeclareFieldFormat{doi}{\url{https://doi.org/#1}}

\DefineBibliographyStrings{english}{
  thiscite = {on},
}

\begin{filecontents*}{\jobname.bib}
@article{greene1975,
  author     = {John C. Greene}, 
  title      = {Reflections on the Progress of Darwin Studies},
  shorttitle = {Reflections},
  journal    = {Journal of the History of Biology}, 
  year       = {1975},
  volume     = {8},
  pages      = {243–273},
  doi        = {10.1007/BF00130440},
}
@article{drake1975,
  author     = {Stillman Drake}, 
  title      = {The Role of Music in Galileo’s Experiments},
  shorttitle = {Role},
  journal    = {Scientific American},
  month      = jun, 
  year       = {1975},
  volume     = {232},
  number     = {6},
  pages      = {98–104},
}
@book{kuhn:structure3,
  address    = {Chicago},
  author     = {Kuhn, Thomas S.},
  edition    = {3},
  publisher  = {University of Chicago Press},
  title      = {The Structure of Scientific Revolutions},
  year       = {1996},
  shorttitle = {Structure},
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}
\cite[270]{greene1975}.

\cite[]{drake1975}.

\cite[272]{greene1975}.

\cite{kuhn:structure3}.

\mancite

\cite[25]{kuhn:structure3}.
\end{document}

相关内容