Changing citation style to number-letter in papaja Rmarkdown package - r-markdown

I'm writing a scientific manuscript in RMarkdown using the papaja package, which enables me to report my statistics beautifully. However, the journal now requires me to submit a Word document with number-letter referencing. Is it possible to change the referencing style to a number-letter style in Papaja?
I tried opening the LaTeX output from papaja, but it has the citations set out in the text in APA format (e.g. "Apthorp, Bolbecker, Bartolomeo, O'Donnell, \& Hetrick, 2018"), which is not useful to me.
Here's the code from the top of the manuscript:
bibliography : ["PD_sway-1.bib"]
floatsintext : no
figurelist : no
tablelist : no
footnotelist : no
linenumbers : yes
mask : no
draft : no
documentclass : "apa6"
classoption : "man"
output : papaja::apa6_pdf
It would be great if I could get a Word document with number-letter referencing that I could then edit, but a LaTeX file or PDF with the correct citation format would be fine too.

The references are already typed out in APA style in the LaTeX document because they are handled by pandoc-citeproc rather than LaTeX. This has the advantage that the automatic reference formatting also works when you output your document in Word format. To get a Word document all you need to do is change the output line in the YAML front matter:
output: papaja::apa6_docx
Note that the formatting of Word documents that pandoc supports is somewhat limited and you may have to fix some things manually. From the corresponding section in the papaja manual:
More over, rendered documents in DOCX format require some manual work before they fully comply with APA guidelines.
We, therefore, provide the following checklist of necessary changes:
Always,
add a header line with running head and page number
If necessary,
position author note at the bottom of page 1
move figures and tables to the end of the manuscript
add colon to level 3-headings
in figure captions,
add a colon following the figure numbers and italicize(e.g. "Figure 1. This is a caption.")
in tables,
add horizontal rules above the first and below the last row
add midrules
Changing the citation style works just as it does in any R Markdown document. The work-in-progress papaja manual has a section on this:
Other styles can be set in the YAML front matter by specifying a CSL, or Citations Style Language, file. You can use either one of the large number of existing CSL files, customize an existing CSL file, or create a new one entirely.
To change the citation style, download the CSL file and add the following to the YAML front matter:
csl: "path/to/mystyle.csl"
I'm not sure what style the journal requires but most likely a corresponding CSL file already exists.

Related

knitr: Add figure notes in .Rmd file

I have a series of .png images that I would like to add notes to in an Rmarkdown document that I am knitting to a .pdf. The basic code for each image looks like this:
```{r certs_coefplot, out.width="100%", fig.cap=fig.4_cap}
knitr::include_graphics("certs_coefplot.png")
```
With beamer slides, I have just inserted some basic latex like this:
\tiny \emph{Notes}: Put Notes here \normalsize
below each code chunk.
But if I try this in the context of a larger document, the notes do not appear below the figure.
A solution involving a custom hook was proposed to a similar question asked here about adding notes to figures in an .Rnw file. In particular, the version where you put the code for the hook at the beginning and then write:
notes = "Notes to explain the plot"
sources = "Explain the sources"
in each chunk seems really convenient.
Is it possible to apply a similar solution an RMarkdown file?

Dynamic footnote referencing in rmarkdown / bookdown

I am combining several .Rmd-files into one large document using bookdown. The individual files all contain footnotes, starting with ^[1]. This obviously leads to duplicate footnotes in the final document, with bookdown unable to assert which reference belongs to which footnote.
As a consequence, I am wondering whether there is a way to dynamically generate footnotes when the document is rendered, but I could not find anything related to that in the bookdown docs.
I have this working solution using a custom function:
---
title: "Untitled"
output:
html_document:
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
footnote.nr <- 0
footnote.counter <- function(){
footnote.nr <- footnote.nr + 1
.GlobalEnv$footnote.nr <- footnote.nr
return(footnote.nr)
}
```
Lorem ipsum.[^`r footnote.counter()`]
[^`r footnote.nr`]: Test
Lorem ipsum.[^`r footnote.counter()`]
[^`r footnote.nr`]: Test2
However, this would result in me having to retrofit the entire document which would be just as much manual labor as starting footnote numbering completely anew (though it is probably less error prone). Are there any other solutions? I would also be okay with footnotes being rendered for each individual chapter, meaning that the first footnote in each chapter starts with a 1.
In my humble opinion, #jtbayly's answer is only partially correct as using Rstudio's visual editing mode can indeed prompt it to make automatic changes to your text by adding a unique identifier before the citation (ex: [^love1]).
However, that did not initially work for me, and I had to add, for each child document the following option in the yaml header :
editor_options:
markdown:
references:
prefix: "[insert the unique identifier you want for this child document]"
This should then work, and would allow you to compile multiple .Rmd files into a single large document without RMarkdown/Pandoc messing with the citations. However, don't forget to go back to "Source" mode and "Visual" mode once after editing the yaml header for the editor to make the change.
Another option is to use Rstudio to edit your files, and turn on visual editing. If you do, it will make some automatic changes to your text, including giving your footnotes unique names.

papaja: Changing font sizes and faces for code listings and R output

Based on the answer to this question, I was able to get 2-column papaja with listings wrapping (rather than overflowing column width). But the listings package turns off various features that help code listings and R output stand out relative to the main text.
A simple solution would be if I could globally change the font faces and/or sizes selectively for code and R output. Is there a way to do that in papaja? I haven't been able to figure this out from papaja or Rmarkdown documentation. Thank you!
When you use the listings package in a papaja (or bookdown) document, what is technically happening is that all code is wrapped into an lstlisting LaTeX environment that comes with its own capabilities of customizing code appearance. Hence, you don't see the syntax highlighting that you would otherwise see if you would not use the listings package. The documentation of the listings package with instructions how to style your code can be found here.
To make use of this, you can extend the YAML header of your papaja document like this:
documentclass : "apa6"
classoption : "jou"
output :
papaja::apa6_pdf:
pandoc_args: --listings
header-includes:
- \lstset{breaklines=true,language=R,basicstyle=\tiny\ttfamily,frame=trB,commentstyle=\color{darkgray}\textit}
Here, I first specify the code's language, and use a tiny monospace font. With frame, I add a frame around the code block, and with commentstyle I set comments in italic and gray.

Chapter(s) before table of contents in Bookdown PDF output

I'd like for a chapter to appear before the table of contents (but after the title page) in the pdf_book output of Bookdown.
One way to do this is to add the chapter to a .tex file and and link it using before_body:. However, this means the chapter will not appear in gitbook (which I also need). I'd prefer not to keep both a .tex and .Rmd version of the same chapter.
An ideal solution would be if the chapter could be kept in a .Rmd file, and its contents extracted into the before_body for pdf_book. That way it's still available for gitbook. Though I'm not sure how I might do that, or indeed if it's possible?
Is there a solution? Or is it exceeding the limits of Bookdown's flexibility?
Any help would be greatly appreciated, thanks!
One can trigger ToC creation manually in the document, which gives more control over its placement. Of course, automatic table of contents creation should be disabled:
---
title: "MWE"
output:
bookdown::pdf_book:
toc: False
---
```{r child = 'file-you-want-to-include.Rmd'}
```
```{=latex}
% Trigger ToC creation in LaTeX
\tableofcontents
```
# Rest of your document starts here
The downside is that this only works with PDF output, not HTML.

Extract a portion of a docx into a new docx

I have a docx file with just text. I would like to create a new docx file containing just part of a page in the original docx. I am using python-docx for this.
So far I have been able to transverse the original docx document and copy each desired paragraph/run in the original to the new document as follows (this example should make an exact copy, I believe):
Doc = docx.Document('/tmp/input.docx')
OutDoc = docx.Document()
for para in Doc.paragraphs:
currentParagraph = OutDoc.add_paragraph(style=para.style)
for run in para.runs:
currentParagraph.add_run(run.text, style=run.style)
OutDoc.save('/tmp/output.docx')
Even though I am copying all style information, it seems that I am missing something, as the output lacks some of the formatting.
In Word, the style name applied to a paragraph or run (or any other content) is ignored if that style is not explicitly defined in the new document.
You can either parse through the styles in the source document and recreate each one in the new document, or create a blank "template" document for the new document that already contains the styles you want.
The "default" python-docx document template includes many of the built-in styles, but if your document uses any customized styles, that would explain the symptom you're seeing.
See these pages in the documentation for more:
http://python-docx.readthedocs.org/en/latest/user/styles-understanding.html
http://python-docx.readthedocs.org/en/latest/user/styles-using.html
http://python-docx.readthedocs.org/en/latest/api/document.html#docx.document.Document.styles
http://python-docx.readthedocs.org/en/latest/api/style.html