在线资源的 biblatex 格式

在线资源的 biblatex 格式

科学编辑委员会姓名-年份引用格式规定了在线文档的以下格式:

作者。出版日期。标题 [媒体标识]。版本。出版地点:出版商;[更新日期;引用日期]。可从以下网址获取:URL。

这里的“介质标识符”可能是缩微胶片、CD-ROM、DVD 或互联网。

对于在线文档,适用媒体标识符“Internet”。

这是一个例子。

Kruse JS。2007 年。可持续土壤管理框架:文献综述与综合 [Internet]。安克尼 (IA):水土保持协会;[2008 年 8 月 3 日引用]。可从以下网址获取:http://www.swcs.org/documents/filelibrary/BeyondTliteraturereview.pdf

书目条目至少具有以下格式。

  1. 标题不是斜体且是句子格式。
  2. 作者姓名首字母后没有点。

整理了我在这个网站上找到的所有指南和一些帖子的答案,特别是自定义 biblatex 样式的指南,我有以下内容biblatex.cfg

\ProvidesFile{biblatex.cfg}

\ExecuteBibliographyOptions{
firstinits=true,
isbn=true,
dashed=false,
eprint=true,
maxbibnames=99,
alldates=long,
doi=true,
uniquename=init
}

\DefineBibliographyStrings{english}{%
  references = {Cited References},
}

\NewBibliographyString{available}
\NewBibliographyString{cited}

\DefineBibliographyStrings{english}{%
  available = {Available from},
}


% Redefined url+urldate macro

\DeclareFieldFormat{url}{\bibstring{available}\addcolon\space\url{#1}}
\DeclareFieldFormat{urldate}{#1}

\renewbibmacro*{url+urldate}{%
  \iffieldundef{urlyear}
    {}
    {\setunit*{\addspace}%
     }
  \printtext{[}%
  \printtext{cited}\addcolon\space%
    \printurldate
  \printtext{].}\space%
  \printfield{url}%
  }

% Change how the publisher, location and dates are printed

\renewbibmacro{publisher+location+date}{
  \iflistundef{publisher}
    {}
    {\printtext{}%
    \iflistundef{location}
        {}
        {\printlist{location}}%
        \printtext{\addcolon\space}%
     \printlist{publisher}%
            \printtext{\addsemicolon\space}
    }
}

% Remove parentheses around dates

\renewbibmacro*{date+extrayear}{%
    \iffieldundef{year}
      {}
      {\printtext{%
     \addperiod\space\printfield{labelyear}%
     \printfield{extrayear}}}}

% Print last name first before first name

\DeclareNameAlias{sortname}{last-first}
\DeclareNameAlias{default}{last-first} % for good measure, changes that of the editor and others

\DeclareFieldFormat{title}{#1}

\DeclareBibliographyDriver{online}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{bytranslator+others}%
  \newunit\newblock
  \printfield{version}%
  \newunit\newblock
    \usebibmacro{publisher+location+date}
    \newunit\newblock
    \usebibmacro{url+urldate}
  \usebibmacro{finentry}}

\endinput

这是一个最小工作.tex文件和一个输出。

\documentclass[10pt]{article}

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

\begin{filecontents}{\jobname.bib}
@online{kruse,
author = {John S. Kruse},
title = {Framework for Sustainable Soil Management: Literature Review and Synthesis},
year = {2007},
url = {http://www.swcs.org/documents/filelibrary/BeyondTliteraturereview.pdf},
publisher= {Soil and Water Conservation Society},
location={Ankeny (IA)},
urldate = {2008-08-03},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
\lipsum[1]
\nocite{*}
\printbibliography

\end{document}

现在回答我的问题。(在这种情况下,我无法将问题分开。请耐心等待。)

  1. 如何删除首字母后面的点;以及,
  2. 我怎样才能自动在标题之后、句号之前放置一个媒介指示符?
  3. 我怎样才能写成urldate2008 年 8 月 3 日?
  4. 我曾在某处看到过如何将标题设为句子大小写,但我再也找不到了。有人能告诉我吗?:)

答案可能不完整。但如果有人能给出完整的解决方案,当然更好。

笔记:这与之前的帖子相关:Biblatex 样式或科学编辑委员会引文格式包

在此处输入图片描述

答案1

对于 1. 首字母后面的句点可以通过以下方式删除:\renewcommand{\bibinitperiod}{}

对于 2,您可以mediumbibtex条目中引入一个新字段,并使用源映射(最近biber和支持biblatex

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldsource=medium, fieldtarget=usera]
    }
  }
}

然后添加适当的指令,例如

\iffieldundef{usera}
  {}
  {\printtext{[}\printfield{usera}\printtext{]}}

online在驱动程序中的正确位置

对于 3:要更改格式,urldate您可以\printurldateurl+urldatebibmacro 中将其替换为

\printfield{urlyear} \mkbibmonth{\thefield{urlmonth}} \stripzeros{\thefield{urlday}}

请注意,biblatex在月份缩写末尾添加一个句号。要删除它,必须声明

\DeclareBibliographyStrings{%
   january = {Jan}, 
   ...
}

对于 4:要将某些文本转换为“句子大小写”,可以使用\MakeSentenceCase{text}\MakeSentenceCase*{text}

相关内容