针对不同期刊特定风格的条件声明

时间:2016-08-09 17:21:54

标签: xml csl

我正在为特定的年度会议期刊定制引文样式(CSL)。 existing citation style通常是正确的,但与所有其他期刊相比,会议需要针对其期刊的特定和不同风格。例如,现有的日记帐样式为所有日记帐提供以下内容:

  

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

虽然会议只需要以下日记的样式:

  

作者,F.,S。作者和T.作者。期刊文章标题。在   交通研究记录:交通研究杂志   国家交通研究委员会,第9999号委员会   Academies,Washington,D.C.,2013,pp.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>

我目前正在努力添加一个选择type="article-journal"的else-if语句,但也会识别变量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><otherwise>的示例(看起来不像被csl接受。当给定的引文在同一'类型'中需要不同的格式时,如何创建特定于日记的格式?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

感谢您添加一些示例。根据您的运输研究记录论文的例子,它根本不像期刊文章,更像是章节,报告或会议论文。期刊文章的参考文献很少打印出版商(&#34;美国国家科学院交通研究委员会,华盛顿特区&#34;)或使用&#34; In&#34;在出版物标题之前。

我会尝试更改您的TRR论文的项目类型(例如CSL&#39; s&#34;章&#34;,&#34;报告&#34;或&#34;论文会议&# 34;,并查看其中一个是否使您更接近您需要的东西。顺便说一句,CSL存储库中的当前样式已经定义了这三种项目类型的格式。如果您使用Zotero,请参阅{{ 3}}用于Zotero和CSL项目类型和字段之间的映射。