Zotero使用之自定义参考文献格式

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>

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值