【问题标题】:Trying to make annotated citation style, getting "Error generating citations and bibliography"尝试制作带注释的引文样式,得到“错误生成引文和参考书目”
【发布时间】:2020-12-26 13:07:17
【问题描述】:

我对一些 csl 代码有疑问。

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

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

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

【问题讨论】:

    标签: citations bibliography csl


    【解决方案1】:

    我不认为这在规范中,但是您不能将参考书目设置中的 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">
    

    【讨论】:

    • 非常感谢!这确实解决了问题。但是,引文末尾的句点现在换了一行(这意味着我现在有三行而不是两行)。有什么办法可以防止这种情况发生,或者保持引用和注释之间的时间间隔?
    • 我认为如果您从 &lt;layout&gt; 中删除 suffix="." 可能就足够了。然后,您可以将它添加到从头到右在 note 变量之前的组中和/或您可以将其添加到带有 &lt;text variable="note" 的行中,具体取决于您需要标点符号的外观
    • 成功了!我将 suffix=". " 添加到 中的某些位置,我认为它们会很好 ()。感谢您的所有帮助!
    【解决方案2】:

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

    &lt;text variable="note" prefix=""/&gt;

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 这实际上不是问题——例如CSL 存储库上的 APA 注释样式仅在一个元素上设置了显示,并且工作正常。特别是对于display="block",这通常也是获得所需行为的唯一方法。这是在实践中;当然,您对规格的看法是正确的,我们可能应该重新审视这一点。
      猜你喜欢
      • 1970-01-01
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多