我正在使用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
( \printbibliography
Guidobiblatex
在评论中提到的方式);另一方面,您可以定义自己的bibenvironment
。
道路biblatex
感谢 Guido 在评论中指出了这一点
biblatex
为提供了一个omitnumbers
可选参数\printbibliography
,它省略了参考书目中的数字标签。它要求包选项defernumbers
为true
(分配数字标签
此选项仅适用于数字引用/参考书目样式,并要求
defernumbers
全局启用 § 3.1.2.1 中的选项。如果启用,biblatex 将不会为相应参考书目中的条目分配数字标签。当使用不同的方案将数字子书目与一个或多个子书目混合时,这很有用(例如,作者-标题或作者-年份)。(《1989 年宪法》第 3.6.2 节)文档,我的重点)
样式phys
提供了两种选项来格式化labelnumber
:superscript
和brackets
,定义在:
\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
为时,它不会被注意到(或者几乎不会被注意到,因为它添加了一个小的水平跳跃),但否则我们得到的是一对空括号。biblabel
superscript
因此,我们必须重新定义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}