R knitr:在标题中强制换行

R knitr: force linebreak in headline

我想在使用 knitr 编织到 PDF 和 HTML 输出的 R markdown 文件中的长标题中强制换行。充其量,标题的引用应该仍然有效。 针对相关问题提出的以下解决方案均未解决问题:\\n<br><br>(后两者仅对HTML有效)。

  ---
  title: "TEST"
  author: "Tester"
  output:
    pdf_document: default
    html_document:
      df_print: paged
  ---

  # Fancy long headline in R Markdown

  \newpage

  # Not working:

  ## Fancy long headline in \ R Markdown

  # Work in HTML only:

  ## Fancy long headline in <br> R Markdown

  ## Fancy long headline in <br /> R Markdown

  <!-- ## Fancy long headline in   \n R Markdown -->
  <!-- => `  \n` throws error in LaTex -->

  \newpage

  # Reference the headline

  Reference the [fancy long headline in r markdown] 
  or similarly in bookdown [fancy-long-headline-in-r-markdown] 
  or via [myref](fancy-long-headline-in-r-markdown).

非常感谢任何帮助。

实际上,您快到了。您需要将 Latex 代码放在 $...$ 中。使用此代码

---
title: "TEST"
author: "Tester"
output:
  pdf_document: default
html_document:
  df_print: paged
---

  # Fancy long headline in R Markdown

  \newpage

# Working!

## Fancy long headline in $\$ <br> R Markdown

给予

如果您想要可以在 PDF 中使用但不关心的内容 HTML,请定义一个新的 LaTeX 命令并使用它。例如,

\newcommand{\Linebreak}{\}

## Fancy long headline in \Linebreak R Markdown

如果您想让它在两者中都起作用,应该这样做:

\newcommand{\Linebreak}{\}
```{r include = FALSE}
Linebreak <- function()
  if (knitr::opts_knit$get("rmarkdown.pandoc.to") == "html")
    " <BR> " else " \Linebreak "
```

## Fancy long headline in `r Linebreak()` R Markdown

使引用在 PDF 中工作并不难,但在 HTML 中似乎很棘手;我会把它留给你或其他人解决。