可视化 biblatex 的书目录入过程

可视化 biblatex 的书目录入过程

我目前正在根据verbose biblatex自己的需要修改样式。为了找出发生了什么并找到我需要修改的定义,我一直在研究大量文件,在“层次结构”中爬得越来越高:从到verbose.bbxauthortitle.bbxstandard.bbxbiblatex.defbiblatex.sty由于找出并记住什么来自哪里非常麻烦,我一直在想是否有办法将参考书目的各个定义级别可视化。

我想到的是包含一些不同条目类型的条目的参考书目,但不是实际的书目信息,而是仅显示不同文件中不同字段的定义方式,可能使用不同的颜色,具体取决于哪个文件定义了当前位,例如最终在作者后输出逗号的变量。这样,希望更容易理解书目条目最终的样子,并找出可能需要更改的内容。我猜最后,它会与在多重编译过程中\printbibliography处理时所发生的事情完全一样:来自各个文件的所有变量(实际的书目信息除外)都被其定义替换,但不执行任何命令,只打印代码。

我希望我的 CS 愚昧描述能够让您清楚一些;如果不是,我可以尝试举一个例子来解释我的意思。

答案1

由于 的解析TeX只能由一个人合理地执行TeX,因此在合理的时间内开发出如您所描述的完整可视化调试器的可能性极小。但并非一切都失去。Biblatex在执行过程中会生成两个有用的文件,它们可以很好地指示出幕后发生的事情。

.log文件和一个XML提供有用信息的文件。该xml文件名为jobname.run.xml。部分列表如下所示:

 <requires type="static">
  <file>blx-compat.def</file>
  <file>biblatex.def</file>
  <file>debug.bbx</file>
  <file>debug.cbx</file>
  <file>biblatex.cfg</file>
  <file>american.lbx</file>
  <file>english.lbx</file>
</requires>

运行期间的所有文件和依赖项均在 XML 文件中描述。应用 XLST 样式表并在浏览器中查看它实际上并不困难。

文件.log始终是你的朋友。在这里,你可以查看所有依赖文件的重新定义和加载。

("C:\Program Files\MiKTeX 2.9\tex\latex\biblatex\cbx\debug.cbx"
File: debug.cbx 2011/07/29 v1.6 biblatex citation style
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 '\textcite'.
Package biblatex Info: Redefining '\supercite'.
Package biblatex Info: Redefining '\cites'.
Package biblatex Info: Redefining '\parencites'.
Package biblatex Info: Redefining '\footcites'.
Package biblatex Info: Redefining '\footcitetexts'.
Package biblatex Info: Redefining '\supercites'.
Package biblatex Info: Redefining '\textcites'.
)
Package biblatex Info: Trying to load configuration file...
Package biblatex Info: ... file 'biblatex.cfg' found.

最后,在许多情况下,使用调试选项运行文件非常有用biblatex

\usepackage[style=debug]{biblatex}

这将产生显示所有键的输出。在大多数情况下,这足以追踪问题的根源。

在此处输入图片描述

正如您所看到的,有很多可用的调试信息。这些信息不是放在漂亮的圆形框中,而是全部可用的,通过仔细研究其他人的代码可以收获很多。有用的编程技巧可以借鉴,尤其是从像 Philip Lehman 这样的程序员那里。

相关内容