You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSL样式开发疑问:如何实现符合作者数量规则的作者-日期文内引用

CSL文内作者-日期引用规则实现方案

你需要通过条件判断作者数量来实现需求,直接修改author_short宏即可,替换后代码如下:

<macro name="author_short">
  <choose>
    <!-- 作者数≤3时,显示所有作者短格式 -->
    <when test="count(author) &lt;= 3">
      <names variable="author">
        <name form="short" name-as-sort-order="all" sort-separator=" " delimiter=", " delimiter-precedes-last="always"/>
      </names>
    </when>
    <!-- 作者数>3或无作者时,显示标题 -->
    <else>
      <text variable="title"/>
    </else>
  </choose>
</macro>

关键说明:

  • 用<choose>分支结构替代原有的<substitute>,通过count(author) &lt;= 3精确判断作者数量
  • 符合数量条件时,保留原有的作者短格式输出逻辑
  • 作者数超过3时直接输出标题,这是suppress-max参数无法实现的(该参数仅控制是否显示“等/et al”)
  • 配合文内引用模板(通常是[<text macro="author_short"/>, <date variable="issued" form="numeric" date-parts="year"/>]),即可完全匹配你要的效果:
    • 1位作者:[Doe, 2022]
    • 2位作者:[Doe, Gogh, 2022]
    • 3位作者:[Doe, Gogh, Johnson, 2022]
    • 4位作者:[Climate change impacts, 2022]

内容的提问来源于stack exchange,提问作者Alexander Plesovskikh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 00:12:52