使用紧凑数字引用样式时显示所有使用的引用

问题描述 投票:4回答:1

我正在使用bookdown从Markdown渲染HTML,并使用紧凑的数字引用样式,例如1, 2, 3显示为1-3。我希望引用显示在每页的底部(link-citations: yes),但仅显示范围内的第一个和最后一个引用(仅显示参考1和3,请参见下面的屏幕截图)。有没有一种方法可以使所有引用的参考文献显示在每页上,但请注意,只有第一个和最后一个会被链接?

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

复制:

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

resulting 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
r r-markdown pandoc bookdown pandoc-citeproc
1个回答
0
投票

我的感觉是,您需要在nature.csl文件[第104-131行]中查看两个元素。

问题似乎是您在第112行的bibliography依赖于在第104行的citation定义。术语collapse与您的bibliography格式交互。

我的建议是您查看“引用样式语言”网站,并查看参考样式以更新您的特定格式。希望这将帮助您指出正确的方向。

  1. An Introduction to CSL
  2. Citation Styles Example
  3. IEEE Example

Citation

cs:citation元素描述了引文的格式,其格式包括对书目来源的一个或多个引用(“引文”)。引文以文本引文(在作者中(例如,“ [Doe]”),作者日期(“ [Doe 1999]”),标签(“ [doe99]”)或数字(“ [C0 ]”)格式)或注释。必需的cs:layout子元素描述了哪些书目数据以及如何将这些书目数据包括在引文中(请参见布局)。 cs:layout之前可能带有cs:sort元素,该元素可用于指定应如何对引用中的引用进行排序(请参阅排序)。 cs:citation元素可以包含“特定于引用”选项和“可继承名称选项”的属性。 cs:citation元素的示例:

1

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

书目

cs:bibliography元素描述了书目格式,其中列出了一个或多个书目来源。必需的cs:layout子元素描述如何格式化每个书目条目。 cs:layout可能在cs:sort元素之前,该元素可用于指定书目中的引用应如何排序(请参阅“排序”)。 cs:bibliography元素可以包含特定于书目的选项和可继承名称选项的属性。一个cs:bibliography元素的示例:

<citation>
  <sort>
    <key variable="citation-number"/>
  </sort>
  <layout>
    <text variable="citation-number"/>
  </layout>
</citation>
© www.soinside.com 2019 - 2024. All rights reserved.