【问题标题】:Bookown' bibliography multiple languagesBookown' 参考书目多种语言
【发布时间】:2023-03-13 21:37:01
【问题描述】:

我需要放置两个参考部分。参考文献是相同的,但在第一部分它必须是俄文,第二部分是英文(参见 png 示例)。我应该如何使用 R+Bookdown+Zotero/Juris-M 创建多种语言的参考书目?

【问题讨论】:

  • 预期的输出格式是什么? HTML、PDF、...?
  • LaTeX/PDF 的类似问题:tex.stackexchange.com/questions/358254/…。可以调整它以使用bookdown
  • 美好的一天。输出格式是 *docx :-( 我想尽可能使格式独立文档。感谢您提供的 LaTeX 示例。
  • 好的,docx 不是我的专业领域。
  • 也许,您知道如何在 rmarkdown 中包含您的 LaTeX 解决方案吗?它可能会起作用。

标签: r r-markdown bookdown bibliography


【解决方案1】:

LaTeX/PDF 输出的部分解决方案。

  • 我从bookdown-start 的克隆开始
  • index.Rmd_output.yml 我删除了参考书目特定的东西
  • index.Rmd 中,我用西里尔字符定义了一个主字体
  • _output.yml 中,我为参考书目指定了after_body 包含
  • 我将 LaTeX 代码从 LaTeX solution 添加到 01-Introduction.Rmdpreamble.texbiblio.tex 以及两个 *.bib 文件

这里是相关的 git diff:

diff --git a/01-Introduction.Rmd b/01-Introduction.Rmd
index b94150e..372258d 100644
--- a/01-Introduction.Rmd
+++ b/01-Introduction.Rmd
@@ -2,3 +2,12 @@

 This is the first real chapter.

+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
+eiusmod \mycite{book1} tempor incididunt ut labore et dolore magna
+aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
+laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
+in reprehenderit \mycite{book1, article1} in voluptate velit esse
+cillum \mycite{article1} dolore eu fugiat nulla pariatur. Excepteur sint
+occaecat cupidatat non proident, sunt in culpa qui officia deserunt
+mollit anim id est laborum.
+
diff --git a/_output.yml b/_output.yml
index 112cf5b..a04dcf9 100644
--- a/_output.yml
+++ b/_output.yml
@@ -11,7 +11,8 @@ bookdown::gitbook:
 bookdown::pdf_book:
   includes:
     in_header: preamble.tex
+    after_body: biblio.tex
   latex_engine: xelatex
-  citation_package: natbib
+  keep_tex: yes
 bookdown::epub_book:
   stylesheet: style.css
diff --git a/biblio.tex b/biblio.tex
new file mode 100644
index 0000000..ea1eab8
--- /dev/null
+++ b/biblio.tex
@@ -0,0 +1,7 @@
+\chapter{Combined References}
+\bibliographystyle{ugost2008}
+\renewcommand{\bibsection}{\section{Список литературы}}
+\bibliography{biblio_ru}{}
+\bibliographystyleen{ugost2008}
+\renewcommand{\bibsection}{\section{References}}
+\bibliographyen{biblio_en}{}
diff --git a/index.Rmd b/index.Rmd
index ece36fe..e3bba35 100644
--- a/index.Rmd
+++ b/index.Rmd
@@ -4,8 +4,7 @@ author: "Sean Kross"
 date: "`r Sys.Date()`"
 site: bookdown::bookdown_site
 documentclass: book
-bibliography: [book.bib]
-biblio-style: apalike
+mainfont: Noto Serif
 link-citations: yes
 github-repo: seankross/bookdown-start
 url: 'http\://seankross.com/bookdown-start/'
diff --git a/preamble.tex b/preamble.tex
index dfd2e14..c522818 100644
--- a/preamble.tex
+++ b/preamble.tex
@@ -1 +1,8 @@
 \usepackage{booktabs}
+
+\usepackage[resetlabels]{multibib}
+\newcites{en}{english}
+\newcommand{\mycite}[1]{\cite{#1}\nociteen{#1}}
+
+\usepackage[square,numbers,sort&compress]{natbib}
+\renewcommand{\bibnumfmt}[1]{#1.\hfill}

不幸的是,当我使用build book 时,第二个参考书目被忽略了,这很可能是因为在附加的en.aux 文件上没有调用bibtex。我曾经能够通过设置RSTUDIO_PDFLATEX 将 RStudio 配置为使用latexmk,但这不再适合我。解决方法:

  • 使用keep_tex: yes
  • *.bib文件复制到输出目录
  • 在输出目录中手动调用latexmk -xelatex ...

结果:

【讨论】:

    【解决方案2】:

    我会使用multiple-bibliographies.lua 过滤器。目前我在linux中使用成功,已经安装:

    sudo apt install pandoc-citeproc
    

    在你的bookdown文件夹中(你可以测试克隆bookdown-demo),修改你的index.Rmd:

    --- 
    title: "book title"
    author: "name name"
    date: "`r Sys.Date()`"
    site: bookdown::bookdown_site
    always_allow_html: true
    output: 
       bookdown::word_document2:
        pandoc_args: --lua-filter=multiple-bibliographies.lua
    
    bibliography_english: [eng.bib]
    bibliography_russian: [rus.bib]
    
    documentclass: book
    csl: yourCslFileForFormattingCitesOptional.csl
    link-citations: yes
    description: "text"
    ---
    

    在最后一章添加:

    # English references {-}
    
    ::: {#refs_english}
    :::
    
    # Russian references {-}
    
    ::: {#refs_russian}
    :::
    

    注意:这将生成一个 html,但也会在文件夹 _book 中生成一个 .docx。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-24
      • 1970-01-01
      • 2017-10-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-26
      • 1970-01-01
      相关资源
      最近更新 更多