我知道,这个问题很可能有据可查,以前也问过,所以我可能只是对这个问题的大量可用信息感到不知所措。我正在尝试安装 BibLaTeX 的开发版本(和 biber)。(从某种意义上说,这是我的先前的问题)。
环境
- 微特克斯
- Windows 10
我做了什么:
- 步骤 0:更新 MiKTeX(作为管理员和普通用户);刷新 FNDB。
步骤 1:关注这个答案,我通过创建文件
localtexmf
夹C:
并运行创建了一个本地 texmf 树initexmf --register-root=c:\localtexmf initexmf --update-fndb initexmf --update-fndb --admin % probably irrelevant
- 第 2 步:创建
C:\localtexmf\bin
并将其添加到我的PATH
(MiKTeX 安装文件夹之前),重新启动系统。 - 步骤 3:下载 biber 的二进制开发版本来自 Sourceforge并提取
biber.exe
至C:\localtexmf\bin
。(+更新了FNDB。)
这似乎已经成功了;当我在我的文档上运行 biber 时,它报告
信息 - 这是 Biber 2.7(测试版)
有问题的部分是让 BibLaTeX 的开发版本运行,这应该在这个答案。 但是,那BibLaTeX 的开发版本不能作为dtx
/ ins
bundle 使用,只能作为tgz
或 使用tds.tgz
。在链接的答案中, 上的说明tds.tgz
只是“检查 README 文件”和“将其提取到正确的位置”。我试图找到“正确的位置”,但没有任何成功:
- 步骤 4a:下载
biblatex-3.7.tds.tgz
并提取biblatex-3.7.tds.tgz/biblatex-3.7.tds.tar/
到新的本地树。更新了 FNDB。结果:无法识别新版本(仍使用版本 3.6) - 步骤 4b:尝试按照 README(包含在存档中)中的“半自动安装”部分进行操作
tgz
。这指的是一个.tds.zip
我认为与我的.tds.tar
文件相同的文件。然后,4b 归结为我在 4a 中所做的操作。 - 步骤 4c:尝试按照 README 中的“手动安装”部分进行操作。这指的是一个
.tar.gz
我认为与我的.tgz
文件相同的文件。按照 README 中所述提取文件(步骤 3-5 和 7)并更新 FNDB 具有与 4a 相同的效果。 - 步骤 4d:类似于步骤 4a,我尝试提取
biblatex-3.7.tgz/biblatex-3.7.tar
到本地树(带有和不带有封闭biblatex
文件夹),但没有效果。
每次我安装/尝试安装新版本的 BibLaTeX 时,我都会删除上次运行 LaTeX 时创建的所有中间文件(以避免使用旧bcf
文件)。我想我的目录结构有误,或者我下载了错误的档案。biber 抛出的完整错误消息是:
信息 - 正在读取“document.bcf”
错误 - 错误:发现 biblatex 控制文件版本 3.2,预期版本 3.3。这意味着您的 biber (2.7) 和 biblatex (3.6) 版本不兼容。
我知道版本不兼容,但是如何安装 BibLaTeX 3.7(当前开发版本)?
更新:非常有帮助Ulrike Fischer 的评论让我意识到我的根的排序方式有问题:kpsewhich --all biblatex.sty
将我的根作为第二个返回C:\localtexmf
,排在 MiKTeX 维护的根之后C:\Users\...
。但是,在 MiKTeX 选项中,我无法将本地树向上移动(按钮变灰)。根据错误 #1952这是设计使然,但我不明白如何使用本地树。(我以非管理员身份添加了树,并尝试以非管理员身份移动它。我还尝试以管理员身份移动它,或者以管理员身份添加然后移动它。)
答案1
总而言之,这是我的系统上所需的步骤:
创建本地 texmf 树要点是,创建文件夹
C:\localtexmf
和子文件夹tex
,然后运行initexmf --register-root=c:\localtexmf initexmf --update-fndb
打开 MiKTeX 选项并转到“Roots”选项卡。选中“显示 MiKTeX 维护的根目录”框。您的本地树应该是前“用户安装”。
- 如果您当地的树木是在“UserInstall”之前,您可以跳到下一个要点。
- 如果您可以使用“向上”按钮将本地树移动到“UserInstall”之前,那么请这样做。
- 否则,你的设置可能看起来像这样即“UserInstall”和“UserConfig”指向同一路径。在这种情况下,您需要分离“UserInstall”和“UserConfig”。为此,设置一个
MIKTEX_USERINSTALL
指向新“UserInstall”路径的环境变量。我选择了C:\Users\CL\AppData\Roaming\MiKTeX\2.9\install
。 - 运行
initexmf --update-fndb --verbose
。现在,本地 texmf 目录应该列在 UserInstall 之前,但在 UserConfig 和 UserData 之后。 - 运行
kpsewhich --all biblatex.sty
。这可能会指向 UserConfig 树中的一个文件(在我的情况下:C:\Users\CL\AppData\Roaming\MiKTeX\2.9\tex\latex\biblatex
)。我认为情况不应该如此,但这是事后分离 UserConfig 和 UserInstall 的产物。删除该biblatex
目录并更新 FNDB。
下载Sourceforge 的 BibLaTeX 开发版本. 选择带有扩展名的文件
tds.tgz
(例如biblatex-3.7.tds.tgz
)。- 打开
tds.tgz
文件。它包含一个tds.tar
文件。将文件内容复制tds.tar
到本地 texmf 目录: - 运行
initexmf --update-fndb --verbose
然后kpsewhich --all biblatex.sty
。这应该指向biblatex.sty
您本地的 texmf 目录。 - 不要忘记使用匹配(开发)版本的 biber。
第二个要点下第 5 步的备注。由于本地 texmf 树优先于 UserInstall(如果正确设置了 MiKTeX),因此在将新版本复制到本地 texmf 树之前,通常不需要删除包的旧/稳定版本。第biblatex
5 步需要删除目录的原因是因为在分离 UserInstall 和 UserConfig 后,文件(错误地?)仍保留在 UserConfig 中。分离树后安装的包最终会进入 UserInstall,当要使用本地树中的另一个版本时,无需手动删除。
Christian Schenk 建议在分离树时将 UserConfig 的内容移动到 UserInstall。这应该会使删除biblatex
文件夹变得过时。