use csl-file for pdf-output in bookdown
Asked Answered
B

1

9

I would like to use a .csl-file for formatting references with bookdown. Adding csl: some-style.csl to index.Rmd affects the output to gitbook, but not to pdf_book. I know that I can specify biblio-style, but this only accepts some standard styles and not csl-files. Is there a proper workaround?

Steps to reproduce:

  1. Create new project with RStudio and choose "Book Project using bookdown" as option.
  2. Download some .csl file from https://www.zotero.org/styles and copy to root of project.
  3. Add csl: my_csl_file.csl to the header in index.Rmd.
  4. Build the book to pdf and html, and observe the differences in the references (either in the references section, or in the introduction)

Header in index.Rmd:

--- 
title: "A Minimal Book Example"
author: "Yihui Xie"
date: "`r Sys.Date()`"
site: bookdown::bookdown_site
documentclass: book
bibliography: [book.bib, packages.bib]
csl: american-sociological-review.csl
link-citations: yes
description: "This is a minimal example of using the bookdown package to write a book. The output format for this example is bookdown::gitbook."
---

HTML output (correct): enter image description here


PDF output (incorrect): enter image description here

enter image description here

Bitternut answered 24/2, 2018 at 16:53 Comment(0)
U
12

I had the same problem. The following procedure worked for me:

  1. Create new project with RStudio and choose "Book Project using bookdown" as option.
  2. Download some .csl file from https://www.zotero.org/styles and copy to root of project. In my case: chicago-author-date-de.csl
  3. Set in _output.yml citation_package: none
  4. Add in all formats (gitbook, pdf_book, epub_book) in _output.yml the line pandoc_args: [ "--csl", "chicago-author-date-de.csl" ]
  5. Delete or comment out in index.Rmd the line biblio-style: apalike
  6. Replace the content of 06-references.Rmd with # References {-}

Here is my _output.yml file:

bookdown::gitbook:
  css: style.css
  pandoc_args: [ "--csl", "chicago-author-date-de.csl" ]
  config:
    toc:
      before: |
        <li><a href="./">A Minimal Book Example</a></li>
      after: |
        <li><a href="https://github.com/rstudio/bookdown" target="blank">Published with bookdown</a></li>
    download: ["pdf", "epub"]
bookdown::pdf_book:
  includes:
    in_header: preamble.tex
  latex_engine: xelatex
  citation_package: none
  pandoc_args: [ "--csl", "chicago-author-date-de.csl" ]
  keep_tex: yes
bookdown::epub_book:
  pandoc_args: [ "--csl", "chicago-author-date-de.csl" ]
Upmost answered 7/3, 2018 at 6:40 Comment(4)
Thanks ! I am using this solution in writing my thesis. However, special characters (such as \oe) do not appear in the references section... (although it works in regular rmarkdown documents). Do you have an idea why ?Swope
Maybe the .csl file cannot work with these special characters? Try to use the HTML Code (for \oe it is &oelig;) in your R markdown file.Upmost
Thank you for your help. The .csl file works properly when I use it in regular (single) RMardown documents, but it does not work as intended when used within a book... Also, special characters appear correctly in the text, but not in the references section, so it is not a font problem and it seems specific to reference management, and to bookdown...Swope
(See this SO issue for more details: #55343338)Swope

© 2022 - 2024 — McMap. All rights reserved.