【问题标题】:R Markdown: suppress parentheses in specific citationsR Markdown:抑制特定引用中的括号
【发布时间】:2020-10-05 13:01:08
【问题描述】:

我有一个包含一些引用的 R Markdown 文档。我使用的是默认引用样式,这通常对我很有效。但是我有一些放在括号内的句子,在这些句子中,我想引用作品而不添加第二组括号。也就是说,我想取消引用中通常出现在出版年份左右的括号。这是我尝试创建的输出示例:

Lorem ipsum dolor. (Fourscore and seven years ago: see Smith 2020.)

Smith 2020 是使用 R Markdown 引用生成的,例如 @Smith_2020。在 LaTeX 中,这种事情可以通过“natbib”包中的\citealp 宏来完成。也可以使用该包的\citeauthor\citeyear 宏来完成,它们分别列出了作者的姓名和出版年份。 R Markdown 中是否有等效功能?


为了进一步说明问题,这里有一个最小的工作示例。假设“myBib.bib”是

@BOOK{Smith_2020,
  AUTHOR       = {John Smith},
  TITLE        = {Some Title},
  YEAR         = {2020},
  PUBLISHER    = {Knopf},
  address      = {New York, NY},
}

我有这个 Rmd 文件:

---
output: html_document
bibliography: 'myBib.bib'
---

(See @Smith_2020 for details.)

输出是(See Smith (2020) for details.) 我想去掉2020 周围的括号。一种方法是将整个句子放在括号内:例如,[See @Smith_2020 for details.]。但是这种方法有点笨拙,尤其是当括号内的段落很大时。还有其他方法吗?

我不认为更改默认引用样式会有所帮助,因为该引用样式通常是我想要的。当引用位于本身带括号的段落中时,我只想禁止引用中的括号。

我查看了bookdown bookR Markdown cookbook,但我看不出他们提供了解决方案。我还搜索了 Stack Overflow 和 tex.stackexchange.com 的相关问题,但我没有找到任何与此问题相关的内容。

【问题讨论】:

    标签: r r-markdown citations pandoc-citeproc


    【解决方案1】:

    正确的答案是将整个句子放在方括号之间:

    [See Smith -@Smith_2020 for details.]
    

    它遵循引用语法部分 Rstudio 的官方文档中的第一个示例(上一个答案中提供了链接)。

    Blah blah [see @doe99, pp. 33-35; also @smith04, ch. 1].
    

    【讨论】:

    • 谢谢——我看到这种方法有效。但正如我在帖子中提到的,这是一种繁琐的方法,尤其是当句子很长的时候。这就是为什么我希望有一个更清洁的解决方案。
    • 抱歉,我试图以编程方式将一堆 TeX 文件 \citealp{} 转换为 Rmd 语法,结果发现了这篇文章。我同意你的观点,这个解决方案不适合长句子,就我而言,不适合从 TeX 转换。如果我没有弄错 [-@smith04]-@smith04 都只输出年份和括号之间的内容,那么建议 Rmarkdown 人员重新编程 -@smith04 以不使用括号会很好。您是否尝试在 github 上与他们联系?
    • 您还需要转义分号,例如将缩写与引文结合使用时的 APA 样式the Fun of Obfuscated Onions [FOO\; Smith et al., -@smith2006; Jones et al., -@Jones2008]
    • @Paul 您是否找到了一种无需手动输入作者姓名的方法(当括号内有分号时)?虽然此方法有效,但在链接引文时,只会链接日期,这会从文档中的其余引文中脱颖而出。
    【解决方案2】:

    (See Smith -@Smith_2020 for details.) 将显示:

    (有关详细信息,请参阅 Smith 2020。)

    另请参阅 a previous questionRStudio's official documentation

    【讨论】:

    • 谢谢。但是当我使用那条线时,我得到 (See Smith (2020) for details.) 一年左右的括号没有被抑制。并且您链接到的 RStudio 文档表明我得到的结果是预期的结果:“@ 之前的减号 (-) 将禁止在引文中提及作者”,但它不会抑制括号周围的括号年。 (我在原始帖子中链接到的文档也表达了同样的观点。)
    猜你喜欢
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 2019-07-10
    相关资源
    最近更新 更多