默认情况下,\usepackage{natbib}使用作者年样式进行引用,而我们可以将\setcitestyle{numbers}设置为在引用中使用数字样式:即,文本主体为作者年样式,引用为数字样式。下面给出了我的pure-latex-beamer玩具示例(test-pure.tex):
\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在哪里
@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,并尝试
---
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}
其中,{=latex}命令是从菜谱的6.11节中暗示出来的。
但是,尽管test.rmd可以在没有错误的情况下运行,但是在引用中没有什么可显示的!我错过了什么吗?
发布于 2022-09-08 17:21:02
为了在Rmarkdown中创建参考书目,您不需要显式地使用\bibliography,如果您在yaml前端的bibliography yaml键中提供了一个bibliography文件,则会自动创建它。
现在,要将作者-年份风格作为文本的主体,将数字样式用于natbib引用,我们可以使用这是Tex StackExchange的答案。
---
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]
# Referencespreamble.tex
\makeatletter
\AtBeginDocument{%
\let\@biblabel\NAT@biblabelnum
\let\@bibsetup\NAT@bibsetnum}
\makeatother

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

https://stackoverflow.com/questions/73643122
复制相似问题