改变 journal-specific 样式的条件语句

Conditional statement for varying journal-specific style

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

Author, F., S. Author, and T. Author. Journal Article Title. Transportation Research Record: Journal of the Transportation Research Board, No. 9999, 2013, pp. 107–117.

而会议仅要求其期刊采用以下样式:

Author, F., S. Author, and T. Author. Journal Article Title. In Transportation Research Record: Journal of the Transportation Research Board, No. 9999, Transportation Research Board of the National 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>

我目前正在努力添加一个 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><otherwise> 的示例(这似乎不被 csl 接受。当给定的引用在同一 'type' 中需要不同的格式时,如何创建 journal-specific 格式?

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

感谢您添加一些示例。根据您的运输研究记录论文示例,它看起来根本不像期刊文章,而更像是章节、报告或会议论文。期刊文章的参考文献很少打印出版商 ("Transportation Research Board of the National Academies, Washington, D.C.") 或在出版物标题前使用 "In"。

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