biber - biblatex 问题

biber - biblatex 问题

我尝试使用biblatex后端biber,但一直遇到问题。我在 stackexchange 上看到了很多关于此问题的问题,大多数建议运行“pdflatex、biber、pdflatex”并检查 biber 和 biblatex 的兼容性。好吧,我使用 biber 版本 2.1 和 biblatex 版本 3.0,所以根据兼容性矩阵应该没问题。我也只使用命令行,具体运行:

pdflatex bibertest.tex
biber bibertest.bcf
pdflatex bibertest.tex

似乎不起作用。

这是我的最小工作示例:bibertest.tex

\documentclass{report}
\usepackage[backend=biber]{biblatex}
\addbibresource{test.bib}
\listfiles
\begin{document}
    a \cite{thebook}
    \printbibliography
\end{document}

test.bib

@book{thebook,
    author = "Me",
}

日志文件:bibertest.log

This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/TeX Live for SUSE Linux) (preloaded format=pdflatex 2016.12.14)  18 JUL 2017 10:34
entering extended mode
 restricted \write18 enabled.
 %&-line parsing enabled.
**bibertest.tex
(./bibertest.tex
LaTeX2e <2015/01/01> patch level 2
Babel <3.9m> and hyphenation patterns for 79 languages loaded.
(/usr/share/texmf/tex/latex/base/report.cls
Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
(/usr/share/texmf/tex/latex/base/size10.clo
File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
)
\c@part=\count79
\c@chapter=\count80
\c@section=\count81
\c@subsection=\count82
\c@subsubsection=\count83
\c@paragraph=\count84
\c@subparagraph=\count85
\c@figure=\count86
\c@table=\count87
\abovecaptionskip=\skip41
\belowcaptionskip=\skip42
\bibindent=\dimen102
)
(/usr/share/texmf/tex/latex/biblatex/biblatex.sty
Package: biblatex 2015/04/19 v3.0 programmable bibliographies (PK/JW/AB)

(/usr/share/texmf/tex/latex/biblatex/biblatex2.sty
Package: biblatex2 2015/04/19 v3.0 programmable bibliographies (biber) (PK/JW/A
B)

(/usr/share/texmf/tex/latex/etoolbox/etoolbox.sty
Package: etoolbox 2015/08/02 v2.2a e-TeX tools for LaTeX (JAW)
\etb@tempcnta=\count88
)
(/usr/share/texmf/tex/latex/graphics/keyval.sty
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
\KV@toks@=\toks14
)
(/usr/share/texmf/tex/latex/oberdiek/kvoptions.sty
Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO)

(/usr/share/texmf/tex/generic/oberdiek/ltxcmds.sty
Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
)
(/usr/share/texmf/tex/generic/oberdiek/kvsetkeys.sty
Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO)

(/usr/share/texmf/tex/generic/oberdiek/infwarerr.sty
Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO)
)
(/usr/share/texmf/tex/generic/oberdiek/etexcmds.sty
Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)

(/usr/share/texmf/tex/generic/oberdiek/ifluatex.sty
Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO)
Package ifluatex Info: LuaTeX not detected.
)
Package etexcmds Info: Could not find \expanded.
(etexcmds)             That can mean that you are not using pdfTeX 1.50 or
(etexcmds)             that some package has redefined \expanded.
(etexcmds)             In the latter case, load this package earlier.
)))
(/usr/share/texmf/tex/latex/logreq/logreq.sty
Package: logreq 2010/08/04 v1.0 xml request logger
\lrq@indent=\count89

(/usr/share/texmf/tex/latex/logreq/logreq.def
File: logreq.def 2010/08/04 v1.0 logreq spec v1.0
))
(/usr/share/texmf/tex/latex/base/ifthen.sty
Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC)
)
(/usr/share/texmf/tex/latex/url/url.sty
\Urlmuskip=\muskip10
Package: url 2013/09/16  ver 3.4  Verb mode for urls, etc.
)
\c@tabx@nest=\count90
\c@listtotal=\count91
\c@listcount=\count92
\c@liststart=\count93
\c@liststop=\count94
\c@citecount=\count95
\c@citetotal=\count96
\c@multicitecount=\count97
\c@multicitetotal=\count98
\c@instcount=\count99
\c@maxnames=\count100
\c@minnames=\count101
\c@maxitems=\count102
\c@minitems=\count103
\c@citecounter=\count104
\c@savedcitecounter=\count105
\c@uniquelist=\count106
\c@uniquename=\count107
\c@refsection=\count108
\c@refsegment=\count109
\c@maxextratitle=\count110
\c@maxextratitleyear=\count111
\c@maxextrayear=\count112
\c@maxextraalpha=\count113
\c@abbrvpenalty=\count114
\c@highnamepenalty=\count115
\c@lownamepenalty=\count116
\c@maxparens=\count117
\c@parenlevel=\count118
\blx@tempcnta=\count119
\blx@tempcntb=\count120
\blx@tempcntc=\count121
\blx@maxsection=\count122
\blx@maxsegment@0=\count123
\blx@notetype=\count124
\blx@parenlevel@text=\count125
\blx@parenlevel@foot=\count126
\blx@sectionciteorder@0=\count127
\labelnumberwidth=\skip43
\labelalphawidth=\skip44
\biblabelsep=\skip45
\bibitemsep=\skip46
\bibnamesep=\skip47
\bibinitsep=\skip48
\bibparsep=\skip49
\bibhang=\skip50
\blx@bcfin=\read1
\blx@bcfout=\write3
\c@mincomprange=\count128
\c@maxcomprange=\count129
\c@mincompwidth=\count130
Package biblatex Info: Trying to load biblatex default data model...
Package biblatex Info: ... file 'blx-dm.def' found.

(/usr/share/texmf/tex/latex/biblatex/blx-dm.def)
Package biblatex Info: Trying to load biblatex custom data model...
Package biblatex Info: ... file 'biblatex-dm.cfg' not found.
\c@afterword=\count131
\c@savedafterword=\count132
\c@annotator=\count133
\c@savedannotator=\count134
\c@author=\count135
\c@savedauthor=\count136
\c@bookauthor=\count137
\c@savedbookauthor=\count138
\c@commentator=\count139
\c@savedcommentator=\count140
\c@editor=\count141
\c@savededitor=\count142
\c@editora=\count143
\c@savededitora=\count144
\c@editorb=\count145
\c@savededitorb=\count146
\c@editorc=\count147
\c@savededitorc=\count148
\c@foreword=\count149
\c@savedforeword=\count150
\c@holder=\count151
\c@savedholder=\count152
\c@introduction=\count153
\c@savedintroduction=\count154
\c@namea=\count155
\c@savednamea=\count156
\c@nameb=\count157
\c@savednameb=\count158
\c@namec=\count159
\c@savednamec=\count160
\c@translator=\count161
\c@savedtranslator=\count162
\c@shortauthor=\count163
\c@savedshortauthor=\count164
\c@shorteditor=\count165
\c@savedshorteditor=\count166
\c@labelname=\count167
\c@savedlabelname=\count168
\c@institution=\count169
\c@savedinstitution=\count170
\c@lista=\count171
\c@savedlista=\count172
\c@listb=\count173
\c@savedlistb=\count174
\c@listc=\count175
\c@savedlistc=\count176
\c@listd=\count177
\c@savedlistd=\count178
\c@liste=\count179
\c@savedliste=\count180
\c@listf=\count181
\c@savedlistf=\count182
\c@location=\count183
\c@savedlocation=\count184
\c@organization=\count185
\c@savedorganization=\count186
\c@origlocation=\count187
\c@savedoriglocation=\count188
\c@origpublisher=\count189
\c@savedorigpublisher=\count190
\c@publisher=\count191
\c@savedpublisher=\count192
\c@language=\count193
\c@savedlanguage=\count194
\c@pageref=\count195
\c@savedpageref=\count196
\shorthandwidth=\skip51
\shortjournalwidth=\skip52
\shortserieswidth=\skip53
\shorttitlewidth=\skip54
\shortauthorwidth=\skip55
\shorteditorwidth=\skip56
Package biblatex Info: Trying to load compatibility code...
Package biblatex Info: ... file 'blx-compat.def' found.

(/usr/share/texmf/tex/latex/biblatex/blx-compat.def
File: blx-compat.def 2015/04/19 v3.0 biblatex compatibility (PK/JW/AB)
)
Package biblatex Info: Trying to load generic definitions...
Package biblatex Info: ... file 'biblatex.def' found.

(/usr/share/texmf/tex/latex/biblatex/biblatex.def
File: biblatex.def 
\c@textcitecount=\count197
\c@textcitetotal=\count198
\c@textcitemaxnames=\count199
\c@biburlnumpenalty=\count200
\c@biburlucpenalty=\count201
\c@biburllcpenalty=\count202
\c@smartand=\count203
)
Package biblatex Info: Trying to load bibliography style 'numeric'...
Package biblatex Info: ... file 'numeric.bbx' found.

(/usr/share/texmf/tex/latex/biblatex/bbx/numeric.bbx
File: numeric.bbx 2015/04/19 v3.0 biblatex bibliography style (PK/JW/AB)
Package biblatex Info: Trying to load bibliography style 'standard'...
Package biblatex Info: ... file 'standard.bbx' found.

(/usr/share/texmf/tex/latex/biblatex/bbx/standard.bbx
File: standard.bbx 2015/04/19 v3.0 biblatex bibliography style (PK/JW/AB)
\c@bbx:relatedcount=\count204
\c@bbx:relatedtotal=\count205
))
Package biblatex Info: Trying to load citation style 'numeric'...
Package biblatex Info: ... file 'numeric.cbx' found.

(/usr/share/texmf/tex/latex/biblatex/cbx/numeric.cbx
File: numeric.cbx 2015/04/19 v3.0 biblatex citation style (PK/JW/AB)
Package biblatex Info: Redefining '\cite'.
Package biblatex Info: Redefining '\parencite'.
Package biblatex Info: Redefining '\footcite'.
Package biblatex Info: Redefining '\footcitetext'.
Package biblatex Info: Redefining '\smartcite'.
Package biblatex Info: Redefining '\supercite'.
Package biblatex Info: Redefining '\textcite'.
Package biblatex Info: Redefining '\textcites'.
Package biblatex Info: Redefining '\cites'.
Package biblatex Info: Redefining '\parencites'.
Package biblatex Info: Redefining '\smartcites'.
)
Package biblatex Info: Trying to load configuration file...
Package biblatex Info: ... file 'biblatex.cfg' found.

(/usr/share/texmf/tex/latex/biblatex/biblatex.cfg
File: biblatex.cfg 
)))
Package biblatex Info: Trying to load language 'english'...
Package biblatex Info: ... file 'english.lbx' found.

(/usr/share/texmf/tex/latex/biblatex/lbx/english.lbx
File: english.lbx 2015/04/19 v3.0 biblatex localization (PK/JW/AB)
)
\@quotelevel=\count206
\@quotereset=\count207
 (./bibertest.aux)
\openout1 = `bibertest.aux'.

LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 5.
LaTeX Font Info:    ... okay on input line 5.
LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 5.
LaTeX Font Info:    ... okay on input line 5.
LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 5.
LaTeX Font Info:    ... okay on input line 5.
LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 5.
LaTeX Font Info:    ... okay on input line 5.
LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 5.
LaTeX Font Info:    ... okay on input line 5.
LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 5.
LaTeX Font Info:    ... okay on input line 5.
Package biblatex Info: No input encoding detected.
(biblatex)             Assuming 'ascii'.
Package biblatex Info: Automatic encoding selection.
(biblatex)             Assuming data encoding 'ascii'.
\openout3 = `bibertest.bcf'.

Package biblatex Info: Trying to load bibliographic data...
Package biblatex Info: ... file 'bibertest.bbl' found.

(./bibertest.bbl)
Package biblatex Info: Reference section=0 on input line 5.
Package biblatex Info: Reference segment=0 on input line 5.


LaTeX Warning: Citation 'thebook' on page 1 undefined on input line 6.


LaTeX Warning: Empty bibliography on input line 7.

[1

{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (./bibertest.aux)

 *File List*
  report.cls    2014/09/29 v1.4h Standard LaTeX document class
  size10.clo    2014/09/29 v1.4h Standard LaTeX file (size option)
biblatex.sty    2015/04/19 v3.0 programmable bibliographies (PK/JW/AB)
biblatex2.sty    2015/04/19 v3.0 programmable bibliographies (biber) (PK/JW/AB)

etoolbox.sty    2015/08/02 v2.2a e-TeX tools for LaTeX (JAW)
  keyval.sty    2014/10/28 v1.15 key=value parser (DPC)
kvoptions.sty    2011/06/30 v3.11 Key value format for package options (HO)
 ltxcmds.sty    2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
kvsetkeys.sty    2012/04/25 v1.16 Key value parser (HO)
infwarerr.sty    2010/04/08 v1.3 Providing info/warning/error messages (HO)
etexcmds.sty    2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
ifluatex.sty    2010/03/01 v1.3 Provides the ifluatex switch (HO)
  logreq.sty    2010/08/04 v1.0 xml request logger
  logreq.def    2010/08/04 v1.0 logreq spec v1.0
  ifthen.sty    2014/09/29 v1.1c Standard LaTeX ifthen package (DPC)
     url.sty    2013/09/16  ver 3.4  Verb mode for urls, etc.
  blx-dm.def
biblatex-dm.cfg
blx-compat.def    2015/04/19 v3.0 biblatex compatibility (PK/JW/AB)
biblatex.def    
standard.bbx    2015/04/19 v3.0 biblatex bibliography style (PK/JW/AB)
 numeric.bbx    2015/04/19 v3.0 biblatex bibliography style (PK/JW/AB)
 numeric.cbx    2015/04/19 v3.0 biblatex citation style (PK/JW/AB)
biblatex.cfg    
 english.lbx    2015/04/19 v3.0 biblatex localization (PK/JW/AB)
bibertest.bbl
 ***********


LaTeX Warning: There were undefined references.


Package biblatex Warning: Please (re)run Biber on the file:
(biblatex)                bibertest
(biblatex)                and rerun LaTeX afterwards.

Package logreq Info: Writing requests to 'bibertest.run.xml'.
\openout1 = `bibertest.run.xml'.

 ) 
Here is how much of TeX's memory you used:
 5954 strings out of 493091
 103235 string characters out of 6142991
 510990 words of memory out of 5000000
 9442 multiletter control sequences out of 15000+600000
 3948 words of font info for 15 fonts, out of 8000000 for 9000
 1141 hyphenation exceptions out of 8191
 44i,4n,32p,824b,729s stack positions out of 5000i,500n,10000p,200000b,80000s
</usr/share/texmf/fonts/type1/public/amsfonts/cm/cmbx10.pfb></usr/share/texmf
/fonts/type1/public/amsfonts/cm/cmr10.pfb>
Output written on bibertest.pdf (1 page, 19089 bytes).
PDF statistics:
 16 PDF objects out of 1000 (max. 8388607)
 10 compressed objects within 1 object stream
 0 named destinations out of 1000 (max. 500000)
 1 words of extra memory for PDF output out of 10000 (max. 10000000)

bibertest.blg:

[0] Config.pm:324> INFO - This is Biber 2.1
[0] Config.pm:327> INFO - Logfile is 'bibertest.blg'
[41] biber:295> INFO - === Di Jul 18, 2017, 10:34:05
[55] Biber.pm:333> INFO - Reading 'bibertest.bcf'
[140] Biber.pm:645> INFO - Found 1 citekeys in bib section 0
[151] Biber.pm:2977> INFO - Processing section 0
[172] Biber.pm:3115> INFO - Looking for bibtex format file 'test.bib' for section 0
[173] bibtex.pm:1021> INFO - Decoding LaTeX character macros into UTF-8
[173] bibtex.pm:895> INFO - Found BibTeX data source 'test.bib'
[197] UCollate.pm:66> INFO - Overriding locale 'en-US' defaults 'variable = shifted' with 'variable = non-ignorable'
[198] UCollate.pm:66> INFO - Overriding locale 'en-US' defaults 'normalization = NFD' with 'normalization = prenormalized'
[198] Biber.pm:2854> INFO - Sorting list 'nty' of type 'entry' with scheme 'nty' and locale 'en-US'
[198] Biber.pm:2858> INFO - No sort tailoring available for locale 'en-US'
[200] bbl.pm:506> INFO - Writing 'bibertest.bbl' with encoding 'ascii'
[200] bbl.pm:597> INFO - Output to bibertest.bbl

pdflatex 和 biber 这两个程序都返回退出代码 0,表示没有错误。但生成的 pdf 中仍然没有参考书目。我遗漏了什么?

编辑1

更改test.bib为(从维基百科复制):

@article{thebook,
   author  = {Shen Lin and Brian W. Kernighan},
   title   = {An Effective Heuristic Algorithm for the Travelling-Salesman Problem},
   journal = {Operations Research},
   volume  = {21},
   year    = {1973},
   pages   = {498--516},
}

则输出biber --debug bibertest为:

INFO - This is Biber 2.1
INFO - Logfile is 'bibertest.blg'
INFO - DEBUG mode: all messages are logged to 'bibertest.blg'
INFO - Reading 'bibertest.bcf'
INFO - Found 1 citekeys in bib section 0
INFO - Processing section 0
INFO - Looking for bibtex format file 'test.bib' for section 0
INFO - Decoding LaTeX character macros into UTF-8
INFO - Found BibTeX data source 'test.bib'
INFO - Overriding locale 'en-US' defaults 'variable = shifted' with 'variable = non-ignorable'
INFO - Overriding locale 'en-US' defaults 'normalization = NFD' with 'normalization = prenormalized'
INFO - Sorting list 'nty' of type 'entry' with scheme 'nty' and locale 'en-US'
INFO - No sort tailoring available for locale 'en-US'
INFO - Writing 'bibertest.bbl' with encoding 'ascii'
% $ biblatex auxiliary file $
% $ biblatex bbl format version 2.5 $
% Do not modify the above lines!
%
% This is an auxiliary file used by the 'biblatex' package.
% This file may safely be deleted. It will be recreated by
% biber as required.
%
\begingroup
\makeatletter
\@ifundefined{[email protected]}
  {\@latex@error
     {Missing 'biblatex' package}
     {The bibliography requires the 'biblatex' package.}
      \aftergroup\endinput}
  {}
\endgroup


\refsection{0}
  \sortlist{nty}{nty}
    \entry{thebook}{article}{}
      \name{author}{2}{}{%
        {{hash=ee5ad1086dab61efed0851b6802d25e4}{Lin}{L\bibinitperiod}{Shen}{S\bibinitperiod}{}{}{}{}}%
        {{hash=1052228cbdc74ef71d9c24c30ddc01ef}{Kernighan}{K\bibinitperiod}{Brian\bibnamedelima W.}{B\bibinitperiod\bibinitdelim W\bibinitperiod}{}{}{}{}}%
      }
      \strng{namehash}{8dbb7ca376d9c40a1b134cdb0104f283}
      \strng{fullhash}{8dbb7ca376d9c40a1b134cdb0104f283}
      \field{sortinit}{L}
      \field{sortinithash}{c5feef8b80fd09f214a253043f4de4ae}
      \field{labelnamesource}{author}
      \field{labeltitlesource}{title}
      \field{journaltitle}{Operations Research}
      \field{title}{An Effective Heuristic Algorithm for the Travelling-Salesman Problem}
      \field{volume}{21}
      \field{year}{1973}
      \field{pages}{498\bibrangedash 516}
      \range{pages}{19}
    \endentry
  \endsortlist
\endrefsection
\endinput

INFO - Output to bibertest.bbl

我刚刚注意到:bibertest.bbl 是一个空文件!

编辑2

将(相关部分)输出复制biber bibertest到空文件bibertest.bbl,然后pdflatex bibertest.tex再次运行,就会生成预期的 pdf!所以我猜问题在于来自出版:TeXLive已损坏。将尝试安装其他版本。

编辑3

解决了!删除 texlive 和 Publishing:TeXLive repo,然后重新安装 texlive 解决了问题。所以显然 Publishing:TeXLive repo 中的 biber 包已损坏。我不应该再忽略 openSUSE 的不稳定警告,而应该继续使用旧但稳定的软件。

答案1

问题解决了。Biber 2.1 版和 biblatex 3.0 版可以很好地协同工作,正如预期的那样。问题中的示例也可以工作,即使是 的简短原始版本test.bib

问题(显然)在于openSUSE 42.2 第三方仓库中损坏的软件包发布:TeXLive。降级到原始 openSUSE 42.2 软件包(biber 和 biblatex)解决了该问题。

如果有人遇到与 biber 类似的问题,请确保在运行 biber 后文件中写入了某些内容bibertest.bbl。示例如下:

bibertest.bbl

% $ biblatex auxiliary file $
% $ biblatex bbl format version 2.5 $
% Do not modify the above lines!
%
% This is an auxiliary file used by the 'biblatex' package.
% This file may safely be deleted. It will be recreated by
% biber as required.
%
\begingroup
\makeatletter
\@ifundefined{[email protected]}
  {\@latex@error
     {Missing 'biblatex' package}
     {The bibliography requires the 'biblatex' package.}
      \aftergroup\endinput}
  {}
\endgroup


\refsection{0}
  \sortlist{nty}{nty}
    \entry{thebook}{book}{}
      \name{author}{1}{}{%
        {{hash=318b2739ddc2c16c97b33c9b04b79f3e}{Me}{M\bibinitperiod}{}{}{}{}{}{}}%
      }
      \strng{namehash}{318b2739ddc2c16c97b33c9b04b79f3e}
      \strng{fullhash}{318b2739ddc2c16c97b33c9b04b79f3e}
      \field{sortinit}{M}
      \field{sortinithash}{adafae54b2ebf0512c2c60712fa62eec}
      \field{labelnamesource}{author}
    \endentry
  \endsortlist
\endrefsection
\endinput

相关内容