biblatex 文字和字符串之间有什么区别?

biblatex 文字和字符串之间有什么区别?

一些 biblatex 字段属于“文字”类型,一些属于“字符串”类型。这两种类型有什么区别?

鉴于 ID 使用“字符串”,如果字符串中不能有空格,那就说得通了。对吗?还有其他限制吗?

相关地,除了没有空间使用 biblatex 和/或 biber 时 ID 上的问题?

答案1

字段literal通常可以保存您在文档中写入的文本.tex%s 很危险,但其他大多数内容都应该没有问题。文档对于“字符串”字段是什么确实守口如瓶。在文档中标记为“字符串”的十几个字段中,biblatex只有少数与.bib文件中的输入相关,即使这些字段也以某种方式特殊。通常您不想打印任何这些字段的内容。

  • presort:由于它用于后端排序,所以理想情况下它不应该包含任何花哨的东西,如宏和命令序列(它们被接受,但仅仅被视为字符串)。
  • entrykey(以及idsclonesourcekeyids在圆括号方面限制稍少一些): 的可能值entrykey一方面受后端限制,另一方面受所用 TeX 引擎限制。后端施加限制,以便可以正确解析 .bib具有相应 的条目。entrykey
    • Biber 禁止" # % ' ( ) , = { }(见使用包含括号的 BibTeX 键和 Biber,同样有趣哪些字符可以用作 BibTeX 键的分隔符?)。同样禁止使用空格。
    • TeX/LaTeX 端也禁止使用某些字符,以便可以在 TeX 端处理条目。biblatex有时需要从entrykey(带有\csname... \endcsname)构建控制序列名称,因此它们不能包含不可扩展的控制序列。不应entrykey包含活动字符。对于 pdfLaTeX,这意味着非 ASCII 字符(例如äößé被排除在外,但 XeLaTeX 和 LuaLaTeX 可以接受非 ASCII 字符。
  • entrytype:当然,标准条目类型仅限于a-z。使用 Biber,您可以定义新类型,限制应该与 的限制类似entrykey

所有其他字符串均由后端本身生成,并且包含预定义列表 ( dateunspecified) 的一个值或某种哈希值 ( hash, namehash, fullhash, sortinithash)。您可以预期哈希值将返回字母数字值。

一些标记为“文字”的字段可能更类似于“字符串”:labeltitlesourcelabelnamesource并且extradatescope只返回字段的名称。labeldatesource非常相似,但也可能包含文字表达式(所以我不会将其归类labeldatesource为字符串)。

相关内容