Search code examples
rmarkdown

How do I make sure that all instances of blockquotes are single spaced in RMarkdown?


I was wondering if there's an easier way to ensure that all instances of blockquotes in a paper is set to single spaced even when the body of the paper is preceded by \doublespacing.

So for example:

\doublespacing

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi id ipsum velit. Ut vestibulum sollicitudin mattis. In felis leo, aliquet a luctus placerat, sodales vitae libero. Nam faucibus, odio ut pretium mollis, erat ligula vehicula massa, vel pretium odio libero a purus. Donec eleifend dolor id nunc laoreet convallis. In placerat suscipit nulla a suscipit. Quisque ac fermentum enim. Integer tristique ultrices lorem et posuere. Phasellus mattis augue blandit suscipit volutpat. Morbi at tortor augue. Aliquam vel accumsan felis, in sollicitudin justo. Aenean accumsan justo non fringilla aliquet. Donec ante eros, ornare in tempus ut, egestas at sem. Praesent finibus sollicitudin nibh at accumsan.

> Nulla malesuada varius euismod. Nullam erat leo, consequat eget elementum dignissim, lacinia sit amet lorem. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Morbi luctus convallis tortor, at tincidunt augue fringilla et. Aliquam erat augue, convallis ac est et, pharetra dapibus est. Sed quis nisl feugiat, consectetur lacus id, lobortis dolor. Mauris suscipit ligula a massa mattis porttitor. Proin justo purus, sagittis id laoreet vitae, cursus sit amet tortor. Phasellus vel lacus nunc. Vivamus magna massa, hendrerit eu gravida a, fringilla eu tortor.

Praesent tincidunt fringilla ligula, ut tempor enim cursus non. Etiam et leo ac est vehicula feugiat at id libero. In at mollis urna. Ut id interdum felis, in pharetra enim. Sed maximus lacinia nisl, eu sagittis orci sagittis at. Pellentesque pellentesque, velit aliquam efficitur dignissim, quam turpis ultricies ipsum, a sollicitudin mi augue porta orci. Aenean at porttitor dui, vel dapibus velit. Curabitur ut elit et enim vestibulum volutpat sed vel eros. Cras elementum et sem et varius. Nunc faucibus vehicula lobortis. In convallis ultrices tempus. Nunc vitae lacinia leo, eget porttitor diam. Phasellus eros leo, laoreet eget vestibulum viverra, tristique vel turpis. Quisque nec enim purus.

I would like the blockquote preceded by > to be singlespaced without having to add \singlespacing.

Is there something I can put in the YAML header to make this possible?

header-includes:
    - \usepackage{setspace}

Solution

  • R Markdown uses the quote environment in the LaTeX that it generates. So you can insert this to make that produce single spacing in PDF output:

    \renewenvironment{quote}
    {\list{}{\rightmargin\leftmargin}%
    \singlespacing\item\relax}%
    {\endlist}
    

    This relies on your use of the setspace package.

    If you want HTML output, you need to change the CSS for blockquote. You can do that by inserting this:

    ```{css, echo=FALSE}
    blockquote {
      line-height: 1;
    }
    ``` 
    

    Surprisingly enough, you can insert both of those. The CSS is ignored for PDF output, and the environment redefinition is ignored for HTML output.