在编写 bookdown::pdf_document2 时,在 biblio-style 中指定 .bst 文件不起作用
Specifing a `.bst` file in `biblio-style` does not work when knitting `bookdown::pdf_document2`
我想在使用 bookdown::pdf_document2
选项编写 .Rmd
文件时自定义引用样式,并在其 YAML 部分指定 biblio-style
。
我看到使用 .csl
文件而不是 .bst
已经解决了 bookdown
中关于格式化引文部分的一些以前的问题
(比如 or )。
但是,就我而言,我必须在 .Rmd
的 YAML 的 biblio-style
行中指定要使用哪个 .bst
文件,因为没有 .csl
文件满足我的引用风格...
我正在尝试使用 jecon-unicode.bst 生成我的引文部分(由于文件名中连字符的错误,我在我的工作目录中将文件名更改为 jeconunicode.bst
)。通过这个文件,我可以引用APA风格的英文发表的文件,同时,我也可以引用日本一些学术团体推荐的风格用日文写的文件。我打算制作如下所示的引文部分:
理想的结果
文内引用
Suzuki and Tanaka (2032)
鈴木・田中 (2021)
如您所见,在用日语编写的文档中,“・”在文内引用中分隔多个作者姓名。
参考部分
Suzuki, Ichiro, and Taro Tanaka (2032) “Our First Investigation: This
Is Not the First, but This Should Be the Last.” Journal of Something
Vol.23, No. 5, pp. 19–176.
鈴木一郎・田中太郎 (2021) 「われらの発見について:変貌を遂げつつある何とかの将来に関する過去・現在・未来」, 『何十華論考』, 第42巻, 第5号, 128–82頁.
在参考部分,jeconunicode.bst will also treat Japanese and English document differently, without creating different reference sections per language (i.e. the reference chapter I want to create is different from 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
和 .bib
文件在同一目录中。
当前不需要的结果
文内引用
Suzuki and Tanaka (2032)
鈴木 and 田中 (2021)
参考部分
Suzuki, Ichiro, and Taro Tanaka. 2032. “Our First Investigation: This
Is Not the First, but This Should Be the Last.” Journal of Something
23 (5): 19–176.
鈴木, 一郎, and 田中太郎 . 2021. “われらの発見について:変貌を遂げつつある何とかの将来に関する過去・現在・未来.” 何十華論考 42 (5): 128–82.
有没有什么好的方法可以像我上面指出的那样和谐地引用日语和英语(或任何带有拉丁字母的语言)?
我的会话信息
我在 RStudio 中使用 bookdown,如下所示,使用 TeXLive 2018,在 Windows 10:
>devtools::session_info(('bookdown'))
Session info ---------------------------------------------------------------------------------------
setting value
version R version 3.4.3 (2017-11-30)
system x86_64, mingw32
ui RStudio (1.1.453)
language (EN)
collate Japanese_Japan.932
tz Asia/Tokyo
date 2018-08-30
Packages -------------------------------------------------------------------------------------------
package * version date source
backports 1.1.2 2017-12-13 CRAN (R 3.4.3)
base64enc 0.1-3 2015-07-28 CRAN (R 3.4.1)
bookdown 0.7 2018-02-18 CRAN (R 3.4.4)
digest 0.6.15 2018-01-28 CRAN (R 3.4.3)
evaluate 0.10.1 2017-06-24 CRAN (R 3.4.3)
graphics * 3.4.3 2017-12-06 local
grDevices * 3.4.3 2017-12-06 local
highr 0.6 2016-05-09 CRAN (R 3.4.3)
htmltools 0.3.6 2017-04-28 CRAN (R 3.4.3)
jsonlite 1.5 2017-06-01 CRAN (R 3.4.3)
knitr 1.20 2018-02-20 CRAN (R 3.4.4)
magrittr 1.5 2014-11-22 CRAN (R 3.4.3)
markdown 0.8 2017-04-20 CRAN (R 3.4.3)
methods * 3.4.3 2017-12-06 local
mime 0.5 2016-07-07 CRAN (R 3.4.1)
Rcpp 0.12.18 2018-07-23 CRAN (R 3.4.4)
rmarkdown 1.10 2018-06-11 CRAN (R 3.4.4)
rprojroot 1.3-2 2018-01-03 CRAN (R 3.4.4)
stats * 3.4.3 2017-12-06 local
stringi 1.1.6 2017-11-17 CRAN (R 3.4.2)
stringr 1.2.0 2017-02-18 CRAN (R 3.4.3)
tinytex 0.6 2018-07-07 CRAN (R 3.4.4)
tools 3.4.3 2017-12-06 local
utils * 3.4.3 2017-12-06 local
xfun 0.3 2018-07-06 CRAN (R 3.4.4)
yaml 2.1.16 2017-12-12 CRAN (R 3.4.3)
我无法使用以下测试文件重现您的问题:
---
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}
我的 HD 没有产生不需要的输出,而是充满了来自 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
。实际上,使用 pbibtex
和 lualatex
手动处理生成的 tex
和 aux
文件效果很好。因为我找不到配置它的方法,所以我只是创建了一个符号 link:
ln -s /usr/bin/pbibtex ~/bin/bibtex
这样调用 bibtex
实际上会调用 pbibtex
。
之后文档编译完成,尽管在 RStudio 中多次调用 "Knit" 来解析引用:
对我来说,这看起来像所需的输出。我无法解释为什么您会看到不同的结果。
> 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)
我想在使用 bookdown::pdf_document2
选项编写 .Rmd
文件时自定义引用样式,并在其 YAML 部分指定 biblio-style
。
我看到使用 .csl
文件而不是 .bst
已经解决了 bookdown
中关于格式化引文部分的一些以前的问题
(比如 .Rmd
的 YAML 的 biblio-style
行中指定要使用哪个 .bst
文件,因为没有 .csl
文件满足我的引用风格...
我正在尝试使用 jecon-unicode.bst 生成我的引文部分(由于文件名中连字符的错误,我在我的工作目录中将文件名更改为 jeconunicode.bst
)。通过这个文件,我可以引用APA风格的英文发表的文件,同时,我也可以引用日本一些学术团体推荐的风格用日文写的文件。我打算制作如下所示的引文部分:
理想的结果
文内引用
Suzuki and Tanaka (2032)
鈴木・田中 (2021)
如您所见,在用日语编写的文档中,“・”在文内引用中分隔多个作者姓名。
参考部分
Suzuki, Ichiro, and Taro Tanaka (2032) “Our First Investigation: This Is Not the First, but This Should Be the Last.” Journal of Something Vol.23, No. 5, pp. 19–176.
鈴木一郎・田中太郎 (2021) 「われらの発見について:変貌を遂げつつある何とかの将来に関する過去・現在・未来」, 『何十華論考』, 第42巻, 第5号, 128–82頁.
在参考部分,jeconunicode.bst will also treat Japanese and English document differently, without creating different reference sections per language (i.e. the reference chapter I want to create is different from 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
和 .bib
文件在同一目录中。
当前不需要的结果
文内引用
Suzuki and Tanaka (2032)
鈴木 and 田中 (2021)
参考部分
Suzuki, Ichiro, and Taro Tanaka. 2032. “Our First Investigation: This Is Not the First, but This Should Be the Last.” Journal of Something 23 (5): 19–176.
鈴木, 一郎, and 田中太郎 . 2021. “われらの発見について:変貌を遂げつつある何とかの将来に関する過去・現在・未来.” 何十華論考 42 (5): 128–82.
有没有什么好的方法可以像我上面指出的那样和谐地引用日语和英语(或任何带有拉丁字母的语言)?
我的会话信息
我在 RStudio 中使用 bookdown,如下所示,使用 TeXLive 2018,在 Windows 10:
>devtools::session_info(('bookdown'))
Session info ---------------------------------------------------------------------------------------
setting value
version R version 3.4.3 (2017-11-30)
system x86_64, mingw32
ui RStudio (1.1.453)
language (EN)
collate Japanese_Japan.932
tz Asia/Tokyo
date 2018-08-30
Packages -------------------------------------------------------------------------------------------
package * version date source
backports 1.1.2 2017-12-13 CRAN (R 3.4.3)
base64enc 0.1-3 2015-07-28 CRAN (R 3.4.1)
bookdown 0.7 2018-02-18 CRAN (R 3.4.4)
digest 0.6.15 2018-01-28 CRAN (R 3.4.3)
evaluate 0.10.1 2017-06-24 CRAN (R 3.4.3)
graphics * 3.4.3 2017-12-06 local
grDevices * 3.4.3 2017-12-06 local
highr 0.6 2016-05-09 CRAN (R 3.4.3)
htmltools 0.3.6 2017-04-28 CRAN (R 3.4.3)
jsonlite 1.5 2017-06-01 CRAN (R 3.4.3)
knitr 1.20 2018-02-20 CRAN (R 3.4.4)
magrittr 1.5 2014-11-22 CRAN (R 3.4.3)
markdown 0.8 2017-04-20 CRAN (R 3.4.3)
methods * 3.4.3 2017-12-06 local
mime 0.5 2016-07-07 CRAN (R 3.4.1)
Rcpp 0.12.18 2018-07-23 CRAN (R 3.4.4)
rmarkdown 1.10 2018-06-11 CRAN (R 3.4.4)
rprojroot 1.3-2 2018-01-03 CRAN (R 3.4.4)
stats * 3.4.3 2017-12-06 local
stringi 1.1.6 2017-11-17 CRAN (R 3.4.2)
stringr 1.2.0 2017-02-18 CRAN (R 3.4.3)
tinytex 0.6 2018-07-07 CRAN (R 3.4.4)
tools 3.4.3 2017-12-06 local
utils * 3.4.3 2017-12-06 local
xfun 0.3 2018-07-06 CRAN (R 3.4.4)
yaml 2.1.16 2017-12-12 CRAN (R 3.4.3)
我无法使用以下测试文件重现您的问题:
---
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}
我的 HD 没有产生不需要的输出,而是充满了来自 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
。实际上,使用 pbibtex
和 lualatex
手动处理生成的 tex
和 aux
文件效果很好。因为我找不到配置它的方法,所以我只是创建了一个符号 link:
ln -s /usr/bin/pbibtex ~/bin/bibtex
这样调用 bibtex
实际上会调用 pbibtex
。
之后文档编译完成,尽管在 RStudio 中多次调用 "Knit" 来解析引用:
对我来说,这看起来像所需的输出。我无法解释为什么您会看到不同的结果。
> 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)