Zotero使用之自定义参考文献格式
zotero中可能会自定义参考文献格式,可以自己编写一个csl文件实现对参考文献格式的自定义。
本文主要记录符合国标GBT7714-2015双语参考文献的自定义。zotero自定义参考文献格式也可以参考一下网站:
https://github.com/redleafnew/Chinese-std-GB-T-7714-related-csl
https://citationstyles.org/
https://zhuanlan.zhihu.com/p/31326415
https://blog.csdn.net/qq_24915933/article/details/123667916
https://editor.citationstyles.org/about/(一个在线编辑参考文献格式的网站)
https://www.zotero.org/styles
注意:csl文件实际上和xml文件的语法类似。因此知道xml语法格式和有一定编程基础的同学很容易修改出自己需要的格式。本文用于记录一种格式。
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" version="1.0" class="in-text" default-locale="zh-CN" delimiter-precedes-last="always" demote-non-dropping-particle="never" initialize-with=" " name-delimiter=", " names-delimiter=". " name-as-sort-order="all" sort-separator=" ">
<!-- This style was edited with the Visual CSL Editor (https://editor.citationstyles.org/visualEditor/) -->
<info>
<title>GXMZU-GB/T7714-2015-numeric-AuLower-BiLan</title>
<title-short>GB/T 7714-2015</title-short>
<id>http://www.zotero.org/styles/china-national-standard-gb-t-7714-2015-numeric-aulower-bilan</id>
<link href="http://www.zotero.org/styles/china-national-standard-gb-t-7714-2015-numeric-aulower-bilan" rel="self"/>
<author>
<name>RongGong</name>
<email>ronggong20@qq.com</email>
</author>
<category citation-format="numeric"/>
<category field="generic-base"/>
<summary>The Chinese GB/T7714-2015 numeric style</summary>
<updated>2022-05-29T23:56:46+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
<locale xml:lang="zh-CN">
<terms>
<term name="anonymous">佚名</term>
<term name="edition">版</term>
<term name="page" form="short">
<single>p.</single>
<multiple>pp.</multiple>
</term>
</terms>
</locale>
<macro name="accessed-date">
<date variable="accessed" delimiter="–" prefix="[" suffix="]">
<date-part name="year"/>
<date-part name="month" form="numeric-leading-zeros"/>
<date-part name="day" form="numeric-leading-zeros"/>
</date>
</macro>
<!--作者-->
<macro name="author">
<choose>
<if variable="author">
<names variable="author">
<name>
<name-part name="family" text-case="capitalize-all"/>
<name-part name="given" text-case="capitalize-all"/>
</name>
</names>
</if>
<else>
<text term="anonymous"/>
</else>
</choose>
</macro>
<macro name="container-author">
<names variable="container-author">
<name>
<name-part name="family" text-case="uppercase"/>
<name-part name="given"/>
</name>
</names>
</macro>
<macro name="edition">
<choose>
<if variable="edition">
<group delimiter=" ">
<text variable="edition"/>
<text term="edition"/>
</group>
</if>
</choose>
</macro>
<macro name="editor">
<names variable="editor translator">
<name>
<name-part name="family" text-case="capitalize-all"/>
<name-part name="given"/>
</name>
<label form="short" prefix=", "/>
</names>
</macro>
<macro name="issued-date">
<choose>
<if variable="issued">
<date variable="issued" delimiter="–">
<date-part name="year"/>
<date-part name="month" form="numeric-leading-zeros"/>
<date-part name="day" form="numeric-leading-zeros"/>
</date>
</if>
<else>
<text term="no date" prefix="[" suffix="]"/>
</else>
</choose>
</macro>
<macro name="issue-date-year">
<choose>
<if variable="issued">
<date variable="issued" date-parts="year" form="numeric"/>
</if>
<else>
<text term="no date" prefix="[" suffix="]"/>
</else>
</choose>
</macro>
<macro name="publishing">
<choose>
<if variable="publisher">
<group delimiter=": ">
<text variable="publisher-place"/>
<group delimiter=", ">
<text variable="publisher"/>
<text macro="issue-date-year"/>
</group>
</group>
<text variable="page" prefix=": "/>
</if>
</choose>
</macro>
<macro name="serial-information">
<!--判断是否存在网络首发-->
<if type="article-journal article-magazine" match="any">
<!-- 如果没有卷和期,认为是网络首发,文献类型为J/OL -->
<choose>
<if variable="volume issue" match='none'>
<text value=""/>
</if>
<else>
<group delimiter=", " prefix=", ">
<text macro="issue-date-year"/>
<text variable="volume"/>
</group>
</else>
</choose>
</if>
<!--判断是否存在网络首发end-->
<text variable="issue" prefix="(" suffix=")"/>
<text variable="page" prefix=": "/>
</macro>
<macro name="type-code">
<choose>
<!-- article-journal article-magazine 杂志 -->
<if type="article-journal article-magazine" match="any">
<!-- 如果没有卷和期,认为是网络首发,文献类型为J/OL -->
<choose>
<if variable="volume issue" match='none'>
<text value="J/OL"/>
</if>
<else>
<text value="J"/>
</else>
</choose>
</if>
<else-if type="article-newspaper">
<text value="N"/>
</else-if>
<else-if type="bill legislation" match="any">
<text value="S"/>
</else-if>
<else-if type="book">
<text value="M"/>
</else-if>
<else-if type="chapter">
<text value="M"/>
</else-if>
<else-if type="dataset">
<text value="DS"/>
</else-if>
<else-if type="paper-conference">
<text value="C"/>
</else-if>
<else-if type="patent">
<text value="P"/>
</else-if>
<else-if type="post-weblog webpage" match="any">
<text value="EB/OL"/>
</else-if>
<else-if type="report">
<text value="R"/>
</else-if>
<else-if type="thesis">
<text value="D"/>
</else-if>
<else>
<text value="Z"/>
</else>
</choose>
</macro>
<macro name="title">
<text variable="title" text-case="sentence"/>
<text variable="number" prefix=": "/>
<group delimiter="/" prefix="[" suffix="]">
<text macro="type-code"/>
<!--
<choose>
<if variable="URL">
<text value="OL"/>
</if>
</choose>
--><!--删除将文献文献类型加OL-->
</group>
</macro>
<citation collapse="citation-number" after-collapse-delimiter=",">
<sort>
<key variable="citation-number" sort="ascending"/>
</sort>
<layout vertical-align="sup" delimiter="," prefix="[" suffix="]">
<text variable="citation-number"/>
<group prefix="(" suffix=")">
<label variable="locator" suffix=". " form="short" strip-periods="true"/>
<text variable="locator"/>
</group>
</layout>
</citation>
<bibliography entry-spacing="0" et-al-min="4" et-al-use-first="3" line-spacing="1" second-field-align="flush">
<layout suffix="." locale="en">
<text variable="citation-number" prefix="[" suffix="]"/>
<text macro="author" suffix=". "/>
<text macro="title" text-case="title"/>
<choose>
<if type="book bill chapter legislation paper-conference report thesis" match="any">
<text macro="editor" prefix=". "/>
<choose>
<if variable="container-title">
<text value="//"/>
<text macro="container-author" suffix=". "/>
<text variable="container-title" suffix=". " text-case="title"/>
</if>
<else>
<text value=". "/>
</else>
</choose>
<text macro="edition" suffix=". "/>
<text macro="publishing"/>
</if>
<else-if type="article-journal article-magazine article-newspaper" match="any">
<group prefix=". ">
<choose>
<if variable="container-title">
<text variable="container-title" text-case="title"/>
<text macro="serial-information" />
</if>
<else>
<text macro="serial-information" suffix=". "/>
<text macro="publishing"/>
</else>
</choose>
</group>
</else-if>
<else-if type="patent">
<text macro="issued-date" prefix=". "/>
</else-if>
<else>
<text macro="publishing" prefix=". "/>
<text macro="issued-date" prefix="(" suffix=")"/>
</else>
</choose>
<!--<text macro="accessed-date"/>-->
<group delimiter=". " prefix=". ">
</group>
</layout>
<layout suffix=".">
<text variable="citation-number" prefix="[" suffix="]"/>
<text macro="author" suffix=". "/>
<text macro="title"/>
<choose>
<if type="book bill chapter legislation paper-conference report thesis" match="any">
<text macro="editor" prefix=". "/>
<choose>
<if variable="container-title">
<text value="//"/>
<text macro="container-author" suffix=". "/>
<text variable="container-title" suffix=". " text-case="title"/>
</if>
<else>
<text value=". "/>
</else>
</choose>
<text macro="edition" suffix=". "/>
<text macro="publishing"/>
</if>
<else-if type="article-journal article-magazine article-newspaper" match="any">
<group prefix=". ">
<choose>
<if variable="container-title">
<text variable="container-title" text-case="title"/>
<text macro="serial-information" />
<!-- 判断是否为网络首发start-->
<choose>
<!--根据期和卷来判断是否为网络首发-->
<if variable="volume issue" match='none'>
<!--如果有日期则添加(访问日期)-->
<text macro="accessed-date"/>
<choose>
<if variable="URL">
<text variable="URL" prefix=". " />
</if>
</choose><!--有网址则添加-->
</if>
</choose>
<!-- 判断是否为网络首发end-->
</if>
<else>
<text macro="serial-information" suffix=". "/>
<text macro="publishing"/>
</else>
</choose>
</group>
</else-if>
<else-if type="patent">
<text macro="issued-date" prefix=". "/>
</else-if>
<else>
<text macro="publishing" prefix=". "/>
<text macro="issued-date" prefix="(" suffix=")"/>
</else>
</choose>
<!--<text macro="accessed-date"/>-->
<group delimiter=". " prefix=". ">
</group>
</layout>
</bibliography>
</style>