1

我对一些 csl 代码有疑问。

我正在尝试将通过 Zotero 提供的“自然”样式转换为注释样式,该样式通过引用“Extra”字段(类似于 APA 7th edition annotated)来获取注释。

我不熟悉 csl 中的编码,所以感谢 google,我发现我所要做的就是在 <text variable="note" display="block"/> 之前添加该行</layout> (在此处找到此信息:https ://forums.zotero.org/discussion/19552/annotated-bibliography-在-mla-or-chicago-style )

我这样做了,现在在 Zotero 的样式编辑器中生成样式时出现以下错误:

生成引文和参考书目时出错:citeproc-js 错误:级别不匹配错误:想要 bib_first 但找到 bib_other

我已经使用 CSL 样式和语言环境编辑器 ( https://validator.citationstyles.org/ ) 检查了我的代码,它没有给我任何错误。谷歌搜索此错误消息不会产生任何好的结果。一旦它工作,我试图在 Microsoft Word 中使用这种风格。

这是代码的最后几行(如果<text variable="note" display="block"/>删除该行,则错误消失):

        <text macro="editor"/>
        <text macro="volume"/>
        <text variable="page"/>
        <text macro="issuance"/>
        <text macro="access"/>
      </group>
      <text variable="note" display="block"/> 
    </layout>
  </bibliography>
</style>

如果有人能提供帮助,我将不胜感激。谢谢!

4

3 回答 3

2

我不认为这在规范中,但是您不能将second-field-align参考书目设置与display单个元素上的集合混合在一起(因为它们正在做相同类型的事情,所以 CSL 处理器不知道您真正想要什么去做)。

我看到您找到了解决方案,但这不会在新行上打印注释。如果您仍然想要那个,请返回

<text variable="note" display="block"/>

但是然后second-field-align从参考书目中删除,即对于Nature,将其变成

<bibliography et-al-min="6" et-al-use-first="1"  entry-spacing="0" line-spacing="2">
于 2020-12-27T04:14:13.453 回答
0

好的,我现在可以通过替换我添加的行来解决这个问题

<text variable="note" prefix=""/>

不再有错误消息,引用看起来很棒!我会留下这个问题,以防有人正在或将要解决同样的问题。

于 2020-12-26T13:18:12.113 回答
0

我没有对此进行测试,但我认为问题在于您仅display="block"<layout/>. 根据https://docs.citationstyles.org/en/1.0.1/specification.html#display,“显示属性......可用于将单个书目条目构造成一个或多个文本块。如果使用,所有呈现元素应该在显示属性的控制之下。

如果您希望注释出现在新行上,我会尝试引入一个新的<group display="block">...</group>,其中包含<layout/>参考书目部分中的原始内容,然后是<text variable="note" display="block"/>.

于 2020-12-26T13:53:43.367 回答