0

我正在为特定的年会期刊定制引文样式 (CSL)。现有的引用风格通常是正确的,但与所有其他期刊相比,会议要求他们的期刊采用特定且不同的风格。例如,现有期刊样式为所有期刊提供以下内容:

作者、F.、S. Author 和 T. Author。期刊文章标题。 交通研究记录:交通研究委员会杂志,第 9999 期,2013 年,第 107-117 页。

而会议只要求他们的期刊采用以下风格:

作者、F.、S. Author 和 T. Author。期刊文章标题。交通研究记录:交通研究委员会杂志,第 9999 号,国家科学院交通研究委员会,华盛顿特区, 2013 年,第 107-117 页。

我的主要问题是:如何更改期刊的引文样式,但仅当标题与特定期刊标题匹配时?

期刊的一般引用风格如下所示:

<else-if type="article-journal article-newspaper" match="any">
  <group delimiter=". ">
    <text macro="title"/>
    <group delimiter=", ">
      <text variable="container-title" font-style="italic" form="long"/>
      <text variable="volume" prefix="Vol. "/>
      <text variable="issue" prefix="No. "/>
      <text macro="issued"/>
      <text macro="page"/>
    </group>
  </group>
</else-if>

我目前正在添加一个 else-if 语句,该语句可以选择type="article-journal",但也可以识别何时将变量title="specific journal title"合并到会议要求的样式中。见下文:

<else-if type="article-journal article-newspaper" match="any">
  <choose>
    <if match=".[title='specific journal title']">
      <!--   SPECIFIC JOURNAL CITATION   -->
    </if>
    <else>
      <!--   GENERAL JOURNAL CITATION   -->
    </else>
  </choose>
</else-if>

我相信这个新代码不起作用,因为使用的匹配没有在 csl 中指定,但是我在 xml 中看到了使用<when>and的示例<otherwise>(这似乎不被 csl 接受。如何创建特定于期刊的当给定的引文在同一“类型”中需要不同的格式时格式化?

4

2 回答 2

0

不幸的是,这是不可能的。match( )上设置的值在CSL 1.0.1 架构.[title='specific journal title']下无效。该模式不提供测试可变内容的方法,这是设计使然,特别是通过防止样式代码中的这种特殊情况来防止复杂性。

于 2016-08-09T22:03:26.493 回答
0

感谢您添加一些示例。根据您的交通研究记录论文示例,它看起来根本不像期刊文章,而更像是章节、报告或会议论文。期刊文章的参考文献很少印刷出版商(“华盛顿特区国家科学院交通研究委员会”)或在出版物标题前使用“In”。

我会尝试更改您的 TRR 论文的项目类型(例如 CSL 的“章节”、“报告”或“论文会议”,看看其中一个是否能让您更接近您的需要。当前样式在顺便说一下,CSL 存储库已经定义了这三种项目类型的格式。如果您使用的是 Zotero,请参阅https://aurimasv.github.io/z2csl/typeMap.xml了解 Zotero 和 CSL 项目类型和字段之间的映射.

于 2016-08-18T18:48:36.637 回答