How to justify (to both sides) text in R Markdown when knitting in pdf output

帅比萌擦擦* 提交于 2020-01-13 09:39:29

问题


I have looked for ways to control the alignment of the text, however I could not find anything for PDF outputs.

There is an existing answer, but related to HTML output only: How to justify the text to both sides when knitting html in rmarkdown.


回答1:


R Markdown should default to using justified text. However, if you only want to export to PDF, we can directly use LaTeX commands within the document.using the standard arguments \centering \raggedright and \raggedleft, as explained here.

Here is a minimal example:

---
output: pdf_document
---

```{r, include = FALSE}
devtools::install_github("coolbutuseless/lipsum")
library(lipsum)
```

**Default**

`r lipsum[1]`

\centering

**Centered Text**

`r lipsum[1]`

\raggedright

**Ragged Right**

`r lipsum[1]`

\raggedleft

**Ragged Left**

`r lipsum[1]`

If you want to revert to justified text, you can use the ragged2e LaTeX package. You will need to load this within the YAML by adding:

---
output: pdf_document
header-includes:
  - \usepackage[document]{ragged2e}
---

\raggedleft

**Ragged Left**

`r lipsum[1]`



\justify

**Revert to Justified**

`r lipsum[1]`

Edit

If you are using the papaja template you need to include all the YAML. Not providing an author, shorttitle or another other field will cause it to crash.

---
title             : "The title"
shorttitle        : "Title"

author: 
  - name          : "First Author"
    affiliation   : "1"
    corresponding : yes    # Define only one corresponding author
    address       : "Postal address"
    email         : "my@email.com"
  - name          : "Ernst-August Doelle"
    affiliation   : "1,2"

affiliation:
  - id            : "1"
    institution   : "Wilhelm-Wundt-University"
  - id            : "2"
    institution   : "Konstanz Business School"

author_note: |
  Add complete departmental affiliations for each author here. Each new line herein must be indented, like this line.

  Enter author note here.

abstract: |
  Enter abstract here. Each new line herein must be indented, like this line.

keywords          : "keywords"
wordcount         : "X"

bibliography      : ["r-references.bib"]

figsintext        : no
figurelist        : no
tablelist         : no
footnotelist      : no
lineno            : yes
mask              : no

class             : "man"
output            : papaja::apa6_pdf
header-includes:
  - \usepackage[document]{ragged2e}
---

```{r load_packages, include = FALSE}

library(lipsum)
```
\justify

**Default**

`r lipsum[1]`



来源:https://stackoverflow.com/questions/50041549/how-to-justify-to-both-sides-text-in-r-markdown-when-knitting-in-pdf-output

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!