BibTeX 或 biblatex/Biber‘私人通信’条目

BibTeX 或 biblatex/Biber‘私人通信’条目

引用“私人通信”和类似似乎不属于 .bib 数据库的来源的正确方法是什么。

我正在使用 biber 和 biblatex 与 TL2016

答案1

条目类型misc可以用于私人通信,并使用字段howpublished="private communication"。最终,你可以将它们存储在不同的bib数据库中,然后bib使用多个命令加载不同的数据库\addbibresource

然而,正如 Roey Angel 和 egreg 所指出的,大多数期刊样式都要求将它们放在文本中,而不是引用它们(并将它们包括在参考文献/书目列表中)。在这种情况下,可以定义一个过滤器(或技术上是check),以从书目中删除个人通信。还可以自定义\autocite,以便在使用个人通信而不是“常规”引用时做出相应的行为。

\documentclass{article}
\usepackage[style=authoryear,autocite=inline]{biblatex}
\usepackage{xstring}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{test1,
  author = "Author, John",
  date = "2013-02-03",
  howpublished = "personal communication"
}
@misc{test2,
  author = "Author, John",
  title = "Untitled Manuscript",
  date = "2012",
  howpublished = "unpublished"
  }
@article{test3,
  author = "Author, John",
  title = "article",
  journal = "Journal Name",
  year = "2011"}
\end{filecontents}
\addbibresource{\jobname.bib}

\defbibcheck{pc}{
  \ifboolexpr{
    test { \ifentrytype{misc} }
    and
    test{ \IfStrEq{\thefield{howpublished}}{personal communication}}
    }
    {\skipentry}
    {}
}

\DeclareAutoCiteCommand{inline}{\mycite}{\cites}
\DeclareCiteCommand{\mycite}
  {}
  {\ifentrytype{misc}{%
    \IfStrEq{\thefield{howpublished}}{personal communication}
      {\printnames{labelname} \mkbibparens{personal communication, \printdate}}
      {\mkbibparens{\usebibmacro{cite}}}%
      }
    {\mkbibparens{\usebibmacro{cite}}}%
  }
  {}
  {}

\begin{document}

\autocite{test1} explained why the result in \autocite{test3} is outdated and why one should use those in \autocite{test2}.

\printbibliography[check=pc]

\end{document}

使用biber的最新版本biblatex,另一种方法是定义一种用于个人通信的新条目类型。

\documentclass{article}
\usepackage[style=authoryear,autocite=inline]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@personalcommunication{test1,
  author = "Author, John",
  date = "2013-02-03",
}
@misc{test2,
  author = "Author, John",
  title = "Untitled Manuscript",
  date = "2012",
  howpublished = "unpublished"
  }
@article{prova,
  author = "Author, John",
  title = "article",
  journal = "Journal Name",
  year = "2011"}
\end{filecontents}
\begin{filecontents}{biblatex-dm.cfg}
\DeclareDatamodelEntrytypes{personalcommunication}
\end{filecontents}
\addbibresource{\jobname.bib}

\DeclareAutoCiteCommand{inline}{\mycite}{\cites}
\DeclareCiteCommand{\mycite}
  {}
  {\ifentrytype{personalcommunication}
      {\printnames{labelname} \mkbibparens{personal communication, \printdate}}
      {\mkbibparens{\usebibmacro{cite}}}%
  }
  {}
  {}

\begin{document}

\autocite{test1} explained why the result in \autocite{prova} is outdated and why one should use those in \autocite{test2}.

\printbibliography[nottype=personalcommunication]

\end{document}

在此处输入图片描述

相关内容