编织`bookdown :: pdf_document2`

时间:2018-08-30 15:49:23

标签: r r-markdown bookdown citations bibliography

当我使用.Rmd选项编织bookdown::pdf_document2文件并在其YAML部分中指定biblio-style时,我想自定义引用样式。 我看到使用.csl文件而不是.bst解决了以前有关格式化bookdown中引文部分的问题 (例如thisthis)。 但是,就我而言,我必须在.bst的YAML中的biblio-style行中指定要使用哪个.Rmd文件,因为没有.csl文件能满足我的引用风格...

我正在尝试使用jecon-unicode.bst来生成引文部分(由于文件名中的连字符错误,我在工作目录中将文件名更改为jeconunicode.bst)。通过该文件,我可以引用以APA格式英文出版的文档,同时,我也可以按照日本一些学术团体推荐的格式引用日文文档。我打算进行如下所示的引文部分:

理想的结果

文字引用

  

铃木和田中(2032)

     

铃木・田中(2021)

如您所见,当用日语编写的文档时,“ ・”以文本引用的形式分隔多个作者姓名。

参考部分

  

铃木,一郎和田中太郎(2032)“我们的首次调查:   不是第一个,但应该是最后一个。” 某事杂志   第23卷,第5期,第19–176页。

     

铃木一郎・田中太郎(2021)“われらの発见について:変貌を遂げつつある何とかの将来に关する过去・现在・未来”,『何十华论考』,第42巻,第5号,128–82页。

在参考部分中,jeconunicode.bst还将对日语和英语文档进行不同的处理,而无需为每种语言创建不同的参考部分(即,我要创建的参考章节与this不同)。例如,在同一参考书目部分,日语文档名称应使用“''『』,而英文文档名称则用“”和斜体表示。

为了激活jeconunicode.bst,我写了Test.Rmd,并在其中插入了myref.bib

Test.Rmd

---
title: "Title"
author: "Name"
date: "`r format(Sys.time(), '%Y年 %B %d日')`"
output:
  bookdown::pdf_document2:
    latex_engine: lualatex
    keep_tex: yes
    toc: TRUE
    toc_depth: 2
    number_sections: TRUE
    fig_caption: TRUE
    dev: cairo_pdf
    extra_dependencies: subfig
    citation_package: natbib
link-citations: yes    
always_allow_html: yes
documentclass: ltjsarticle
header-includes:
   - \RequirePackage{luatexja}
   - \usepackage{graphicx}
   - \usepackage{float}
   - \DeclareGraphicsExtensions{.pdf,.PNG}
   # You can unset Japanese font specification
   # - \usepackage{luatexja-fontspec}
   # - \setmainjfont{YuMincho}[UprightFont=YuMincho-Regular,BoldFont=YuMincho-Demibold]
   # - \setmainfont{TeX Gyre Termes}
   # - \setsansjfont{YuGothic-Medium}[BoldFont=YuGothic-Bold]
   # - \setsansfont{TeX Gyre Heros}
   - \setlength\parskip{0mm}
   - \setlength\parindent{1\Cwd}
   - \usepackage[japanese]{babel}
   - \captionsjapanese
   - \newdimen\bibindent
   - \setlength\bibindent{3\Cwd}
bibliography: myref.bib
biblio-style: jconunicode.bst
editor_options:
  chunk_output_type: console
---

# 何とかの考察に関する歴史

@ST-jp は、「なんとかとは何とかだ!」[@ST-jp]と述べた。
しかし、@ST-en では一転して、
「Something should be more significant than something!!」[@ST-en]と
主張している。



# 参考文献 {-}

\leftskip=3\Cwd

\setlength\parindent{-3\Cwd}

<div id="refs"></div>

\leftskip=0pt

\setlength\parindent{1\Cwd}

myref.bib

要使jeconunicode.bst识别用日语撰写的文章,必须添加language = {Ja}

@article{ST-jp,
title = {われらの発見について:変貌を遂げつつある何とかの将来に関する過去・現在・未来},
journal = {何十華論考},
volume = 42,
number = 5,
pages = {128 -- 182},
year = {2021},
author = {鈴木, 一郎 and 田中, 太郎},
language = {ja}
}

@article{ST-en,
title = {Our first investigation: this is not the first, but this should be the last},
journal = {Journal of Something},
volume = 23,
number = 5,
pages = {19 -- 176},
year = 2032,
author = {Suzuki, Ichiro and Tanaka, Taro}
}

但是,目前我只得到了不良的结果。 biblio-style选项中指定的jeconunicode.bst对输出没有任何影响,尽管使用了.Rmd.bst和{{1 }}文件放在同一目录中。

当前不需要的结果

文字引用

  

铃木和田中(2032)

     

铃木和田中(2021)

参考部分

  

铃木,一郎和田中太郎。 2032年。“我们的首次调查:   不是第一个,但应该是最后一个。” 某事杂志   23(5):19–176。

     

铃木,一郎和田中太郎。 2021.“われらの発见について:変貌を遂げつつある何とかの将来に关する过去・现在・未来。” 何十华论考 42(5):128–82。

如上所述,有什么好方法可以和谐地引用日语和英语(或任何带有拉丁字母的语言)?

我的会话信息

我在Windows 10下的TeXLive 2018中使用RStudio中的书本,如下所示:

.bib

1 个答案:

答案 0 :(得分:1)

我无法通过以下测试文件重现您的问题:

---
title: "Title"
author: "Name"
date: "`r format(Sys.time(), '%Y年 %B %d日')`"
output:
  bookdown::pdf_document2:
    latex_engine: lualatex
    keep_tex: yes
    toc: TRUE
    toc_depth: 2
    number_sections: TRUE
    fig_caption: TRUE
    dev: cairo_pdf
    extra_dependencies: subfig
    citation_package: natbib
link-citations: yes    
always_allow_html: yes
documentclass: ltjsarticle
header-includes:
   - \RequirePackage{luatexja}
   - \usepackage{graphicx}
   - \usepackage{float}
   - \DeclareGraphicsExtensions{.pdf,.PNG}
   - \usepackage{luatexja-fontspec}
   - \setmainfont{TeX Gyre Termes}
   - \setsansfont{TeX Gyre Heros}
   - \setlength\parskip{0mm}
   - \setlength\parindent{1\Cwd}
   - \usepackage[japanese]{babel}
   - \captionsjapanese
   - \newdimen\bibindent
   - \setlength\bibindent{3\Cwd}
bibliography: myref.bib
biblio-style: jeconunicode
editor_options:
  chunk_output_type: console
---

# 何とかの考察に関する歴史

@ST-jp は、「なんとかとは何とかだ!」[@ST-jp]と述べた。
しかし、@ST-en では一転して、
「Something should be more significant than something!!」[@ST-en]と
主張している。


# 参考文献 {-}

\leftskip=3\Cwd

\setlength\parindent{-3\Cwd}

<div id="refs"></div>

\leftskip=0pt

\setlength\parindent{1\Cwd}

我的高清硬盘没有产生不希望的输出,而是充满了来自bibtex的几GB错误消息。除其他外,还有:

is.kanji.str$ is an unknown function---line 1643 of file jeconunicode.bst
is.kanji.str$ is an unknown function---line 1644 of file jeconunicode.bst
is.kanji.str$ is an unknown function---line 1645 of file jeconunicode.bst
is.kanji.str$ is an unknown function---line 1646 of file jeconunicode.bst

我认为我应该使用pbibtex而不是bibtex。确实,使用texaux手动处理生成的pbibtexlualatex文件效果很好。由于找不到配置方法,因此我创建了一个符号链接:

ln -s /usr/bin/pbibtex ~/bin/bibtex

这样,对bibtex的呼叫实际上会呼叫pbibtex。 编译该文档之后,即使它在RStudio中花了几次调用“ Knit”来使引用解析:

enter image description here

对我来说,这看起来像所需的输出。我无法解释您为什么看到不同的结果。

> devtools::session_info(('bookdown'))
Session info -----------------------------------------------------------------------------------------
 setting  value                       
 version  R version 3.5.1 (2018-07-02)
 system   x86_64, linux-gnu           
 ui       RStudio (1.2.830)           
 language (EN)                        
 collate  de_DE.UTF-8                 
 tz       Europe/Berlin               
 date     2018-08-31                  

Packages ---------------------------------------------------------------------------------------------
 package   * version date       source                         
 backports   1.1.2   2017-12-13 CRAN (R 3.5.0)                 
 base64enc   0.1-3   2015-07-28 CRAN (R 3.5.0)                 
 bookdown    0.7     2018-02-18 CRAN (R 3.5.0)                 
 digest      0.6.16  2018-08-22 CRAN (R 3.5.1)                 
 evaluate    0.11    2018-07-17 CRAN (R 3.5.1)                 
 glue        1.3.0   2018-08-24 Github (tidyverse/glue@4e74901)
 graphics  * 3.5.1   2018-07-03 local                          
 grDevices * 3.5.1   2018-07-03 local                          
 highr       0.7     2018-06-09 CRAN (R 3.5.0)                 
 htmltools   0.3.6   2017-04-28 CRAN (R 3.5.0)                 
 jsonlite    1.5     2017-06-01 CRAN (R 3.5.0)                 
 knitr       1.20    2018-02-20 CRAN (R 3.5.0)                 
 magrittr    1.5     2014-11-22 CRAN (R 3.5.0)                 
 markdown    0.8     2017-04-20 CRAN (R 3.5.0)                 
 methods   * 3.5.1   2018-07-03 local                          
 mime        0.5     2016-07-07 CRAN (R 3.5.0)                 
 Rcpp        0.12.18 2018-07-23 CRAN (R 3.5.1)                 
 rmarkdown   1.10    2018-06-11 CRAN (R 3.5.0)                 
 rprojroot   1.3-2   2018-01-03 CRAN (R 3.5.0)                 
 stats     * 3.5.1   2018-07-03 local                          
 stringi     1.2.4   2018-07-20 CRAN (R 3.5.1)                 
 stringr     1.3.1   2018-05-10 CRAN (R 3.5.0)                 
 tinytex     0.8     2018-08-30 CRAN (R 3.5.1)                 
 tools       3.5.1   2018-07-03 local                          
 utils     * 3.5.1   2018-07-03 local                          
 xfun        0.3     2018-07-06 CRAN (R 3.5.1)                 
 yaml        2.2.0   2018-07-25 CRAN (R 3.5.1)