6

我正在使用 Markdown 渲染 html bookdown,并使用紧凑的数字引用样式,例如,1, 2, 3显示为1-3. 我希望在每一页的底部显示link-citations: yes参考资料(有没有办法在每一页上显示所有引用的参考文献,但需要注意的是只有第一个和最后一个会被链接?

注意:所有参考文献都正确显示在最终参考书目中。

重现:

download.file('https://raw.githubusercontent.com/jgm/pandoc-citeproc/7d824e2e0d4698cf8a6d5e784aa0df27a0f2888a/tests/biblio.bib', 'ex.bib')
download.file('https://raw.githubusercontent.com/citation-style-language/styles/31187daa2c010df338c2bf9b7b30070c91b7af95/nature.csl', 'nature.csl')

并编织一个包含以下内容的降价文件:

---
title: A title
author: An author
bibliography: ex.bib
link-citations: yes
output:
  bookdown::gitbook:
    pandoc_args: [ "--csl", "nature.csl" ]
---

# Intro

baz [@item1; @item2; @пункт3]

# Refs

生成的 html


会话信息

> sessioninfo::session_info()
─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 setting  value                       
 version  R version 3.6.0 (2019-04-26)
 os       macOS Mojave 10.14.3        
 system   x86_64, darwin15.6.0        
 ui       RStudio                     
 language (EN)                        
 collate  en_AU.UTF-8                 
 ctype    en_AU.UTF-8                 
 tz       Australia/Melbourne         
 date     2020-03-29                  

─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 package     * version date       lib source        
 assertthat    0.2.1   2019-03-21 [2] CRAN (R 3.6.0)
 bookdown      0.17    2020-01-11 [1] CRAN (R 3.6.0)
 cli           2.0.2   2020-02-28 [1] CRAN (R 3.6.0)
 crayon        1.3.4   2017-09-16 [2] CRAN (R 3.6.0)
 digest        0.6.25  2020-02-23 [1] CRAN (R 3.6.0)
 evaluate      0.14    2019-05-28 [2] CRAN (R 3.6.0)
 fansi         0.4.1   2020-01-08 [1] CRAN (R 3.6.0)
 glue          1.3.2   2020-03-12 [1] CRAN (R 3.6.0)
 htmltools     0.4.0   2019-10-04 [1] CRAN (R 3.6.0)
 knitr         1.25    2019-09-18 [1] CRAN (R 3.6.0)
 packrat       0.5.0   2018-11-14 [2] CRAN (R 3.6.0)
 Rcpp          1.0.4   2020-03-17 [1] CRAN (R 3.6.0)
 rlang         0.4.5   2020-03-01 [1] CRAN (R 3.6.0)
 rmarkdown     1.16    2019-10-01 [1] CRAN (R 3.6.0)
 rsconnect     0.8.15  2019-07-22 [2] CRAN (R 3.6.0)
 rstudioapi    0.10    2019-03-19 [2] CRAN (R 3.6.0)
 sessioninfo   1.1.1   2018-11-05 [2] CRAN (R 3.6.0)
 withr         2.1.2   2018-03-15 [2] CRAN (R 3.6.0)
 xfun          0.10    2019-10-01 [1] CRAN (R 3.6.0)
 yaml          2.2.0   2018-07-25 [2] CRAN (R 3.6.0)
❯ pandoc --version
pandoc 2.9.2.1
Compiled with pandoc-types 1.20, texmath 0.12.0.1, skylighting 0.8.3.2
...
Copyright (C) 2006-2020 John MacFarlane
Web:  https://pandoc.org
This is free software; see the source for copying conditions.
There is no warranty, not even for merchantability or fitness
for a particular purpose.

❯ pandoc-citeproc --version
pandoc-citeproc 0.17
4

1 回答 1

3

我的感觉是您需要在nature.csl文件中查看两个元素

[第 104-131 行]。

问题似乎是您bibliography的第 112 行取决于citation第 104 行的定义。该术语collapse与您的格式相互作用bibliography

我的建议是您查看 Citation Style Language 网站并查看参考样式以更新您的特定格式。希望这将有助于为您指明正确的方向。

  1. CSL 简介
  2. 引文样式示例<- 超级有用
  3. IEEE 示例<- 匹配您描述的风格
  4. 可视化编辑器创建您选择和下载的样式

我的感觉是您需要cite-group-delimiter在文件中创建自定义定义,.csl而不是使用collapse. 可能很棘手,但感觉可行。

  1. http://docs.citationstyles.org/en/stable/specification.html#citation

<citation collapse="citation-number">
    <sort>
      <key variable="citation-number"/>
    </sort>
    <layout vertical-align="sup" delimiter=",">
      <text variable="citation-number"/>
    </layout>
  </citation>
  <bibliography et-al-min="6" et-al-use-first="1" second-field-align="flush" entry-spacing="0" line-spacing="2">
    <layout suffix=".">
      <text variable="citation-number" suffix="."/>
      <group delimiter=" ">
        <text macro="author" suffix="."/>
        <text macro="title" suffix="."/>
        <choose>
          <if type="chapter paper-conference" match="any">
            <text term="in"/>
          </if>
        </choose>
        <text macro="container-title"/>
        <text macro="editor"/>
        <text macro="volume"/>
        <text variable="page"/>
        <text macro="issuance"/>
        <text macro="access"/>
      </group>
    </layout>
  </bibliography>

引文

cs:citation 元素描述了引文的格式,它由一个或多个参考书目来源(“引文”)组成。引用以文本引用(在作者中(例如“[Doe]”)、作者日期(“[Doe 1999]”)、标签(“[doe99]”)或数字(“<a href="http://docs.citationstyles.org/en/1.0.1/primer.html" rel="nofollow noreferrer">1") 格式)或注释。所需的 cs:layout 子元素描述了应在引文中包含什么以及如何包含书目数据(请参阅布局)。cs:layout 前面可能有一个 cs:sort 元素,它可用于指定引用中的引用应如何排序(请参阅排序)。cs:citation 元素可以携带 Citation-specific Options 和 Inheritable Name Options 的属性。cs:citation 元素的示例:

<citation>
  <sort>
    <key variable="citation-number"/>
  </sort>
  <layout>
    <text variable="citation-number"/>
  </layout>
</citation>

给 CSL 处理器开发人员的注释 在注释样式中,引用通常是一个句子本身。因此,当注释中没有前面的文本时,引用的第一个字符最好是大写。在所有其他情况下(例如,将引文插入现有脚注的中间时),应按原样打印引文。

参考书目

cs:bibliography 元素描述了书目的格式,其中列出了一个或多个书目来源。所需的 cs:layout 子元素描述了每个书目条目的格式。cs:layout 前面可以有一个 cs:sort 元素,它可以用来指定参考书目中的参考文献应该如何排序(参见排序)。cs:bibliography 元素可以携带 Bibliography 特定选项和可继承名称选项的属性。cs:bibliography 元素的示例:

<bibliography>
  <sort>
    <key macro="author"/>
  </sort>
  <layout>
    <group delimiter=". ">
      <text macro="author"/>
      <text variable="title"/>
    </group>
  </layout>
</bibliography>
于 2020-04-03T19:50:59.233 回答