道路biblatex​

道路biblatex​

我正在使用phys biblatex我的博士论文参考书目采用了@Joseph Wright 的风格。在我们研究所,通常还会单独列出自己的出版物。所以我想我也可以用它来biblatex生成这个列表,但我不想在这里使用主要索引。我怎样才能只在出版物列表中省略索引。

这里是 MWE:

\documentclass{article}

\usepackage[natbib=true, backend=biber, %
            style=phys, articletitle=false,biblabel=brackets,%
            chaptertitle=false,pageranges=false, doi=false%
            ]{biblatex}

\begin{filecontents}{lit.bib}
@ARTICLE{Deal1980,
    author = {Deal, B.E.},
    journal = {IEEE Transactions on Electron Devices},
    year = {1980},
    volume = {27},
    pages = {606-608},
    number = {3},
    month = {Mar}
}
@BOOK{Sze1981,
    title = {Physics of Semiconductor Devices},
    publisher = {John Wiley and Sons (WIE)},
    year = {1981},
    author = {S.M. Sze}
}
\end{filecontents}
\begin{filecontents}{mypubs.bib}
@ARTICLE{Me2012,
    author = {Me, I and One, Some and Boss, My},
    journal = {Journal of Nice Physics},
    year = {2012},
    volume = {5},
    pages = {7-8},
    number = {5},
    month = {Jun}
}
\end{filecontents}

\addbibresource{lit.bib}
\addbibresource{mypubs.bib}

\begin{document}
    \textcite{Deal1980} \textcite{Sze1981}
    \printbibliography
    \begin{refsection}[mypubs.bib]
        \nocite{*}  
        \printbibliography[title=Publications]
    \end{refsection}
\end{document}

在此处输入图片描述

答案1

有两种方法可以做到这一点:一方面,您可以使用选项omitnumbers\printbibliographyGuidobiblatex在评论中提到的方式);另一方面,您可以定义自己的bibenvironment

道路biblatex

感谢 Guido 在评论中指出了这一点

biblatex为提供了一个omitnumbers可选参数\printbibliography,它省略了参考书目中的数字标签。它要求包选项defernumberstrue(分配数字标签

此选项仅适用于数字引用/参考书目样式,并要求defernumbers全局启用 § 3.1.2.1 中的选项。如果启用,biblatex 将不会为相应参考书目中的条目分配数字标签。当使用不同的方案将数字子书目与一个或多个子书目混合时,这很有用(例如,作者-标题或作者-年份)。(《1989 年宪法》第 3.6.2 节)文档,我的重点)

样式phys提供了两种选项来格式化labelnumber:superscriptbrackets,定义在:

\DeclareBibliographyOption{biblabel}{%
  \ifstrequal{#1}{brackets}
    {%
      \DeclareFieldFormat{labelnumberwidth}{\mkbibbrackets{##1}}%
      \setlength{\biblabelsep}{10 pt}%
    }
    {%
      \DeclareFieldFormat{labelnumberwidth}{\mkbibsuperscript{##1}}%
      \setlength{\biblabelsep}{0 pt}%
    }%
}

这将检查分配给选项的值biblabel,并更改labelnumberwidth字段格式。打印参考书目时,此格式已设置,并且将被打印在参考书目中,无论omitnumbers可选参数是什么bibliography(请参阅中默认 bib-environment的定义)。当选项设置numeric.bbx为时,它不会被注意到(或者几乎不会被注意到,因为它添加了一个小的水平跳跃),但否则我们得到的是一对空括号。biblabelsuperscript

因此,我们必须重新定义labelnumberwidth字段格式才能不做任何事情在我们的反思中

\DeclareFieldFormat{labelnumberwidth}{#1}

(不要介意这个争论:无论如何我们都会省略它omitnumbers=true

因此,整体refsection将打印为:

\begin{refsection}[mypubs.bib]
\DeclareFieldFormat{labelnumberwidth}{#1}
\nocite{*}
\printbibliography[omitnumbers=true,title={My Publications}]
\end{refsection}

道路bibenvironment

您还可以使用 定义自己的书目环境\defbibenvironment。我倾向于认为这是一种语义上更充分的方式。例如,我从样式中复制了定义authoryear,它没有放置labelnumber(所以我们不需要为此烦恼):

\defbibenvironment{mypubs}
 {\list
     {}
     {\setlength{\leftmargin}{\bibhang}%
      \setlength{\itemindent}{-\leftmargin}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}}
  {\endlist}
  {\item}

我们这样称呼它:

\printbibliography[env=mypubs]

该 MWE 展示了两种方法:

\documentclass{article}
\usepackage[backend=biber,style=phys,biblabel=brackets,defernumbers=true]{biblatex}
\begin{filecontents}{lit.bib}
@ARTICLE{Deal1980,
    author = {Deal, B.E.},
    journal = {IEEE Transactions on Electron Devices},
    year = {1980},
    volume = {27},
    pages = {606-608},
    number = {3},
    month = {Mar}
}
@BOOK{Sze1981,
    title = {Physics of Semiconductor Devices},
    publisher = {John Wiley and Sons (WIE)},
    year = {1981},
    author = {S.M. Sze}
}
\end{filecontents}
\begin{filecontents}{mypubs.bib}
@ARTICLE{Me2012,
    author = {Me, I and One, Some and Boss, My},
    journal = {Journal of Nice Physics},
    year = {2012},
    volume = {5},
    pages = {7-8},
    number = {5},
    month = {Jun}
}
\end{filecontents}
\addbibresource{lit.bib}
\addbibresource{mypubs.bib}
\defbibenvironment{mypubs}
 {\list
     {}
     {\setlength{\leftmargin}{\bibhang}%
      \setlength{\itemindent}{-\leftmargin}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}}
  {\endlist}
  {\item}
\begin{document}
\textcites{Deal1980,Sze1981,Me2012}
\printbibliography[title={Default Bibliography}]
\begin{refsection}[mypubs.bib]
\DeclareFieldFormat{labelnumberwidth}{}
\nocite{*}
\printbibliography[omitnumbers=true,title={My Publications, the \texttt{biblatex} way}]
\end{refsection}
\begin{refsection}[mypubs.bib]
\nocite{*}  
\printbibliography[env=mypubs,title={My Publications, the \texttt{bibenvironment} way}]
\end{refsection}
\end{document}

姆韦

相关内容