我刚刚重新查看了参考书目,并尝试使用 Jabref 来管理它们。我似乎发现@string
s 存在问题(或者我对它们的理解存在问题)。在我的 Jabref 之前的.bib
文件中,我有:
@string{pok = "Poughkeepsie, NY"}
@Manual{dxcapa24,
...
location = pok,
...
}
在我的.bbl
文件中,得益于 biber 和 BibLaTeX,
\list{location}{1}{%
{Poughkeepsie, NY}%
}
现在,在 Jabref 之后,我的.bib
文件如下所示:
@STRING{pok = {Poughkeepsie, NY}}
@MANUAL{dxcapa24,
...
location = {#pok#},
...
}
它无法在我的文件中正确扩展.bbl
,嵌入时导致 LaTeX 错误:
\list{location}{1}{%
{#pok#}%
}
我的问题是:
- 我做错了什么吗?如果是,我该如何改正?
- 文件的权威
@string
语法和语义参考在哪里.bib
? - Jabref 和/或 biber 有问题吗?
笔记:我没有提供完整的 MWE,因为我相信这些片段已经充分说明了问题;但如果这些片段被认为不够充分,我很乐意提供一个。
更新:
使用引号时,可以使用 # 进行字符串连接,但使用括号时则不行。
哪个建议Jabref 可能有错误。SF Jabref 论坛中也提出了一种观点,即 Jabref 本身应该将 @strings 转换为其扩展值,并使用另一种 Jabref 特定的机制来处理缩写,这样就无需biber
这样做了。不过,我不确定我是否完全满意这一点。
感谢@Fran 提醒我:就我而言,
shorttitle
也搞乱了,而author
、title
和publisher
都处理正确。
@Fran 的回答解决了这个问题。对于对 Jabref 的任何过早的诽谤,我深表歉意。
答案1
在菜单中Options
-> Preferences
-> File
->
选择单选按钮“解析除以下字段之外的所有字段的字符串:”而不是“仅解析标准 BibTeX 字段的字符串”。