编辑:Mac TeX 的升级解决了以下问题:
Package biblatex Warning: File 'testbib.bbl' is wrong format version - expected 2.8.
但现在我得到的却是:
! Package xkeyval Error: `family_i' undefined in families `blx@opt@namepart'.
当我尝试提交到 arXiv 时。有人知道我可以解决这个问题吗?我不知道该怎么办。非常感谢大家!我想我已经收集了要点:
%testbib.bbl
\documentclass[10pt, a4paper, centertags, openright, mathscr]{amsart}
\usepackage[left]{lineno}
\usepackage{etex}
\usepackage{amsmath, amsfonts, amsthm, amssymb, amsxtra, bbm, enumerate, stmaryrd}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[dvipsnames]{xcolor}
\usepackage[style=alphabetic,
backend=biber,
isbn=false,
doi=false,
url=false,
hyperref=true,
firstinits=true,
maxbibnames=99,
maxalphanames=99,
maxnames=99,
block=none]{biblatex}
\addbibresource{\string~/Documents/Latex/bibFile.bib}
\renewcommand*{\newunitpunct}{\addcomma\space}
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\setunit*{\addspace}%
\iffieldundef{series}
{}
{\newunit
\printfield{series}%
\setunit{\addspace}}%
\printfield{volume}%
\setunit{\addspace}%
\usebibmacro{issue+date}%
\setunit{\addcolon\space}%
\usebibmacro{issue}%
\setunit{\addcomma\space}%
\printfield{number}%
\newunit}
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}
\printfield{number}
}
\renewbibmacro*{date}{\setunit{\addspace}\printdate}
\DeclareFieldFormat*{title}{\mkbibemph{#1}}%\addperiod % italic title with period
\DeclareFieldFormat*{journaltitle}{#1} % title of journal article is printed as normal text
\DeclareFieldFormat[incollection]{booktitle}{\rm #1} % title of journal article is printed as normal text
\DeclareFieldFormat*{volume}{vol. \bf #1}
\DeclareFieldFormat[article]{date}{#1}
\DeclareFieldFormat[book,inbook,incollection,thesis,unpublished]{date}{(#1)}
\DeclareFieldFormat*{number}{no. #1}
\DeclareFieldFormat*{pages}{#1}
\renewbibmacro{in:}{}
\begin{document}
\title{Test Biblatex}
\author{Myself {\ae}{\o}{\aa}}
\maketitle
In \cite{lur-09} and \cite{mac-98}.
\printbibliography
\end{document}
什么时候
% $ biblatex auxiliary file $
% $ biblatex bbl format version 2.7 $
% 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[entry]{anyt/global/}
\entry{lur-09}{book}{}
\name{author}{1}{}{%
{{hash=760ea879284b1a6eeaad87a82be8d1d7}{%
family={Lurie},
family_i={L\bibinitperiod},
given={Jacob},
given_i={J\bibinitperiod}}}%
}
\list{location}{1}{%
{Princeton, NJ}%
}
\list{publisher}{1}{%
{Princeton University Press}%
}
\strng{namehash}{760ea879284b1a6eeaad87a82be8d1d7}
\strng{fullhash}{760ea879284b1a6eeaad87a82be8d1d7}
\field{labelalpha}{Lur09}
\field{sortinit}{L}
\field{sortinithash}{872351f18d0f736066eda0bf18bfa4f7}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{isbn}{978-0-691-14049-0; 0-691-14049-9}
\field{series}{Annals of Mathematics Studies}
\field{title}{Higher topos theory}
\field{volume}{170}
\field{year}{2009}
\field{pages}{xviii+925}
\range{pages}{-1}
\endentry
\entry{mac-98}{book}{}
\name{author}{1}{}{%
{{hash=412e255483e0d09fd0b0895d355a28a8}{%
family={Mac\bibnamedelima Lane},
family_i={M\bibinitperiod\bibinitdelim L\bibinitperiod},
given={Saunders},
given_i={S\bibinitperiod}}}%
}
\list{location}{1}{%
{New York}%
}
\list{publisher}{1}{%
{Springer-Verlag}%
}
\strng{namehash}{412e255483e0d09fd0b0895d355a28a8}
\strng{fullhash}{412e255483e0d09fd0b0895d355a28a8}
\field{labelalpha}{Mac98}
\field{sortinit}{M}
\field{sortinithash}{2684bec41e9697b92699b46491061da2}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{edition}{Second Edition}
\field{isbn}{0-387-98403-8}
\field{series}{Graduate Texts in Mathematics}
\field{title}{Categories for the working mathematician}
\field{volume}{5}
\field{year}{1998}
\field{pages}{xii+314}
\range{pages}{-1}
\endentry
\endsortlist
\endrefsection
\endinput
当我在计算机上运行“biber”时,我得到:
INFO - This is Biber 2.5
我尝试改成
backend=bibtex
但它给出了同样的错误。
答案1
如果你正在寻找biblatex
有关 arXiv 上传的 Biber 帮助,请查看https://github.com/plk/biblatex/wiki/biblatex-and-the-arXiv和让 arXiv 接受 BibTeX BBL(2018 年 5 月)也一样。
Overleaf 用户可能感兴趣https://www.overleaf.com/learn/how-to/LaTeX_checklist_for_arXiv_submissions。
简介和一些背景
(更多背景信息可参见https://github.com/plk/biblatex/wiki/biblatex-and-the-arXiv以及那里链接的帖子。
自 2017 年 2 月起,arXiv 开始运行 TeX live 2016(https://confluence.cornell.edu/display/arxivpub/2016+arXiv+Roadmap,https://arxiv.org/help/faq/texlive) - 如果我理解正确‘arXiv 现在在 TeXLive 2016 下运行,带有新的、更新和增强的本地插件树和对较新字体集的支持,以及标准发行版中包含的所有其他内容’ - 软件包在 TeX live 2016 首次发布后进行了一些更新。
然而,没有任何地方表明 arXiv 会从 CTAN 获得持续更新。事实上,这很可能是不可行的,因此可能性非常非常小。
由于工作方式的原因biblatex
,版本不匹配是致命错误。(即使没有检测到它们 - 就像旧版本的情况一样 - 它们仍然会对您的文档造成严重破坏。)因此,您可以使用biblatex
因为它们可以运行它,但前提是你的biblatex
Biber 版本与 arXiv 运行的版本相匹配。目前我相信他们正在运行biblatex
3.7 和 Biber 2.7,而 CTAN 上的当前版本是biblatex
3.14 和 Biber 2.14。
由于biblatex
仍在开发中,有时从一个版本到另一个版本会进行巨大的内部更改,因此biblatex
与出版界并不是最好的朋友,出版界重视稳定性,在某些情况下,LaTeX 版本的进展非常缓慢。另请参阅Biblatex:向期刊投稿。
也可以看看Biblatex:提交至 arXiv和使用 Biblatex-Biber 发布到 Arxiv
解决方案
本质上有两种解决方案,要么您使用 biblatex
arXiv 安装的 /Biber 版本在本地编译您的文档,要么您在将文章提交到 arXiv 时将您的版本biblatex
(可能包括其他依赖项)与您的文件一起上传。.tex
biblatex
使用arXiv 中的 /Biber 版本编译您的文档
.bbl
生成与 arXiv 兼容的文件的方法是使用biblatex
arXiv 上安装的和 Biber 版本编译您的文档。
虽然可以biblatex
从 SourceForge 安装某些版本的 Biber,但通常不建议仅降级这些软件包,因为这可能会导致与依赖项biblatex
或biblatex
样式不兼容。安装具有正确版本的完整系统更安全。
就目前情况而言,您需要安装历史性的 TeX live 2017 以获取biblatex
与 arXiv 版本相匹配的 Biber 版本。
历史 Tex 现场版本可从以下网址获取ftp://tug.org/texlive/historic/。由于可以同时安装多个 TeX live 版本(同时使用两个 texlive 安装),这并不应阻止您使用更新的 TeX 系统来处理尚未准备提交给 arXiv 的文档。你做不是需要(事实上你不应该)卸载你当前的 TeX 系统。
更多详细信息和一些有用的链接可以在https://github.com/plk/biblatex/wiki/biblatex-and-the-arXiv#getting-the-right-package-versions..例如,该解决方案在Biblatex v3.11 与 arXiv - 如何修复“错误格式版本”错误?。
上传你的版本biblatex
到 arXiv
biblatex
这里的想法不是获取与 arXiv相同的版本,而是将您的版本上传biblatex
到 arXiv。
有先例表明人们只需上传所有必要的biblatex
在提交时只上传所有必要的文件,请参阅https://arxiv.org/abs/1610.02077和https://arxiv.org/abs/1608.06539等等。如果biblatex
不依赖于另一个包中最近添加的功能,这种方法是可行的。在不久的将来,这将是一个可行的选择。在 2017 年的一篇论文中,其中一位作者指出,他们可以只提供非标准样式,因为本地版本bibliatex
和 arXiv 的版本是匹配的:https://arxiv.org/abs/1703.01152。
如果不知道不同biblatex
版本之间哪些文件发生了变化,那么要知道要上传哪些文件就有点棘手了。但是 Dougal Sutherland 编写了一个有用的脚本,可以自动上传所有必需的文件(这可能有点过头了,但通常会增加 arXiv 可以编译文件的变化),请参阅https://github.com/dougalsutherland/arxiv-collector。
biblatex
arXiv 的人们甚至在他们的帮助网站上提出了一些建议:https://arxiv.org/help/faq/texlive.html
以下是常见症状、错误和修复的不完整列表:
格式版本错误
biblatex
。如果您使用较旧的版本进行开发,biblatex
则需要重新生成.bbl
文件。Package biblatex Warning: File 'Constraints.bbl' is wrong format version - expected 2.7.
修复:作者需要重新生成他们的
.bbl
文件。
请注意,此建议仅当您在本地计算机上运行的 arXiv 版本相同时才有效biblatex
。一旦两个版本不同步,仅通过重新生成 无法解决问题.bbl
。
答案2
对我来说,解决方案是将我自己的biblatex.sty
[1] 和blx-compat.def
[2] 版本上传到 arXiv。
[1] /usr/share/texlive/texmf-dist/tex/latex/biblatex/biblatex.sty
[2] /usr/share/texlive/texmf-dist/tex/latex/biblatex/blx-compat.def
注意,问题在于 API 版本,而不是文件格式版本(BBL 文件是常规 TeX)
答案3
我知道问题已经更新,但我仍然收到版本错误,但那是因为我的版本较新。获取旧版本似乎很乏味。
我尝试编译我的代码背面然后我从生成的输出中复制了具有正确版本的.bbl 文件。
对我来说,上传这个版本且其他一切都不变是可行的;也可能对你有帮助。
编辑:此过程在 2019 年 12 月失败,因为 overleaf 似乎已升级其编译器。此工具挽救了局面:arxiv-收集器。
要安装,请使用pip install arxiv-collector
或conda install -c conda-forge arxiv-collector
。如果我的主文件是 paper.tex,我只需运行它arxiv-collector paper.tex
,它就会创建一个压缩目录,准备上传到 arXiv!
评论:在 Windows 上使用 LyX?好吧,我在 Windows 上使用 LyX 生成 .tex 文件,并在 Ubuntu 上运行该工具(在虚拟机上;还没有尝试过 WSL(适用于 Linux 的 Windows 子系统))并使用 git 进行同步。文件编码出现了一些问题,因此重音会被破坏。最后,我只是用 LyX 导出的文件替换了 arXiv-collector 生成的文件夹中的 .tex 文件。