我正在为特定的年度会议期刊定制引文样式(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接受。当给定的引文在同一'类型'中需要不同的格式时,如何创建特定于日记的格式?
答案 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项目类型和字段之间的映射。