首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用数字和纳提布(作者-年份风格)的引用在rmarkdown。

使用数字和纳提布(作者-年份风格)的引用在rmarkdown。
EN

Stack Overflow用户
提问于 2022-09-08 02:19:13
回答 1查看 274关注 0票数 1

默认情况下,\usepackage{natbib}使用作者年样式进行引用,而我们可以将\setcitestyle{numbers}设置为在引用中使用数字样式:即,文本主体为作者年样式,引用为数字样式。下面给出了我的pure-latex-beamer玩具示例(test-pure.tex):

代码语言:javascript
复制
\documentclass{beamer}

\usepackage{natbib}\setcitestyle{round}
\usepackage{hyperref}\hypersetup{colorlinks=true}

\begin{document}

\begin{frame}{Packages}
\begin{itemize}
\item knitr \citet{knitr2015}
\item ggplot2 \citet{ggplot22016}
\item purrr \citet{R-purrr}
\item tibble \citet{R-tibble}
\item tidyr \citet{R-tidyr}
\item usethis \citet{R-usethis}
\end{itemize}
\end{frame}

\begin{frame}[allowframebreaks]{References}
\setcitestyle{numbers} %%%comment this to show (default) author-year style
\bibliographystyle{unsrtnat}
\bibliography{pkg.bib}
\end{frame}

\end{document} 

pkg.bib在哪里

代码语言:javascript
复制
@Book{knitr2015,
  title = {Dynamic Documents with {R} and knitr},
  author = {Yihui Xie},
  publisher = {Chapman and Hall/CRC},
  address = {Boca Raton, Florida},
  year = {2015},
  edition = {2nd},
  note = {ISBN 978-1498716963},
  url = {https://yihui.org/knitr/},
}

@Book{ggplot22016,
  author = {Hadley Wickham},
  title = {ggplot2: Elegant Graphics for Data Analysis},
  publisher = {Springer-Verlag New York},
  year = {2016},
  isbn = {978-3-319-24277-4},
  url = {https://ggplot2.tidyverse.org},
}

@Manual{R-purrr,
  title = {purrr: Functional Programming Tools},
  author = {Lionel Henry and Hadley Wickham},
  year = {2020},
  note = {R package version 0.3.4},
  url = {https://CRAN.R-project.org/package=purrr},
}

@Manual{R-tibble,
  title = {tibble: Simple Data Frames},
  author = {Kirill Müller and Hadley Wickham},
  year = {2020},
  note = {R package version 3.0.3},
  url = {https://CRAN.R-project.org/package=tibble},
}

@Manual{R-tidyr,
  title = {tidyr: Tidy Messy Data},
  author = {Hadley Wickham and Lionel Henry},
  year = {2020},
  note = {R package version 1.1.0},
  url = {https://CRAN.R-project.org/package=tidyr},
}

@Manual{R-usethis,
  title = {usethis: Automate Package and Project Setup},
  author = {Hadley Wickham and Jennifer Bryan},
  year = {2020},
  note = {R package version 1.6.1},
  url = {https://CRAN.R-project.org/package=usethis},
}

我们可以测试test-pure.tex运行的成功和良好。现在,我想复制使用rmarkdown-beamer (test.rmd)的test-pure.tex,并尝试

代码语言:javascript
复制
---
output: 
  beamer_presentation:
    latex_engine: xelatex
    keep_tex: yes
header-includes:
  - \usepackage{natbib}\setcitestyle{round}
  - \usepackage{hyperref}\hypersetup{colorlinks=true}
---

## Packages

- knitr @knitr2015
- ggplot2 @ggplot22016
- purrr @R-purrr
- tibble @R-tibble
- tidyr @R-tidyr
- usethis @R-usethis

## References {.allowframebreaks}

```{=latex}

setcitestyle{numbers}

文献分类法

书目{pkg.bib}

代码语言:javascript
复制

其中,{=latex}命令是从菜谱的6.11节中暗示出来的。

但是,尽管test.rmd可以在没有错误的情况下运行,但是在引用中没有什么可显示的!我错过了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-08 17:21:02

为了在Rmarkdown中创建参考书目,您不需要显式地使用\bibliography,如果您在yaml前端的bibliography yaml键中提供了一个bibliography文件,则会自动创建它。

现在,要将作者-年份风格作为文本的主体,将数字样式用于natbib引用,我们可以使用这是Tex StackExchange的答案

代码语言:javascript
复制
---
output: 
  beamer_presentation:
    keep_tex: yes
    citation_package: natbib
    includes:
      in_header: preamble.tex
bibliography: pkg.bib
citecolor: LimeGreen
urlcolor: Magenta
link-citations: true
link-bibliography: true
natbiboptions: round
biblio-style: unsrtnat
---


## Packages

- knitr [@knitr2015]
- ggplot2 [@ggplot22016]
- purrr [@R-purrr]
- tibble [@R-tibble]
- tidyr [@R-tidyr]
- usethis [@R-usethis]


# References

preamble.tex

代码语言:javascript
复制
\makeatletter
\AtBeginDocument{%
  \let\@biblabel\NAT@biblabelnum
  \let\@bibsetup\NAT@bibsetnum}
\makeatother

作为一种选择,我们也可以使用biblatex。因为biblatex提供了将citestyle设置为authoryear、and样式设置为numeric的选项。

代码语言:javascript
复制
---
output: 
  beamer_presentation:
    keep_tex: yes
    citation_package: biblatex
bibliography: pkg.bib
citecolor: LimeGreen
urlcolor: Magenta
link-citations: true
link-bibliography: true
biblatexoptions:
  - citestyle = authoryear
  - bibstyle = numeric
---

## Packages

- knitr [@knitr2015]
- ggplot2 [@ggplot22016]
- purrr [@R-purrr]
- tibble [@R-tibble]
- tidyr [@R-tidyr]
- usethis [@R-usethis]


# References

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73643122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档