【问题标题】:Formatting pdf-output chunks of bookdown格式化 pdf 输出的 bookdown 块
【发布时间】:2023-03-09 06:43:01
【问题描述】:

我正在修改 bookdown 并生成 html 和 pdf 输出。

对于 html 输出,渲染的 R 输入和输出放置在灰色背景的块中。对于 pdf 输出,输入块被突出显示,但输出不是。比如下面的源码

Blah blah blah

```{r, message=FALSE}
library(mosaic)           # Load mosiac-pakken
tally(~ Smoke, data=fev)  # Optæl Smoke
```

Blah blah blah

在这个 tex 输出中的结果:

\begin{Shaded}
\begin{Highlighting}[]
\KeywordTok{library}\NormalTok{(mosaic)           }\CommentTok{# Load mosiac-pakken}
\KeywordTok{tally}\NormalTok{(}\OperatorTok{~}\StringTok{ }\NormalTok{Smoke, }\DataTypeTok{data=}\NormalTok{fev)  }\CommentTok{# Optæl Smoke}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
Smoke
  0   1 
589  65 
\end{verbatim}

输入包裹在ShadedHighlighting 中,可以在tex 文件的前导中进行修改。但是,输出仅包装在标准的verbatim 环境中,在文件中重新定义会出现问题(因为重新定义会弄乱其他部分)。如何设置我的配置以将输出包装在我可以重新定义的环境中?或者可能只是将输入和输出包装在同一个环境中?

我的_output.yml文件是这样的(多多少少是从易慧抄来的)

bookdown::pdf_book:
  highlight: zenburn
  includes:
    in_header: latex/preamble.tex
    before_body: latex/before_body.tex
    after_body: latex/after_body.tex
  keep_tex: yes
  dev: "cairo_pdf"
  latex_engine: xelatex
  citation_package: natbib
  template: null
  pandoc_args: --chapters
  toc_depth: 3
  toc_unnumbered: no
  toc_appendix: yes
  quote_footer: ["\\VA{", "}{}"]

如何更改代码以添加包装器或仅重新定义输出块的格式?

【问题讨论】:

    标签: r bookdown


    【解决方案1】:

    由于bookdown 0.4,您可以使用全局选项bookdown.post.latex 对LaTeX 输出进行后处理。在你的情况下,它会像:

    options(bookdown.post.latex = function(x) {
      # x is the content of the LaTeX output file
      gsub('^\\\\(begin|end)\\{verbatim\\}$', '\\\\\\1{YOUR_ENVIRONMENT}', x)
    })
    

    然后在您的 LaTeX 序言中定义自定义环境。

    【讨论】:

    • 这不会取代 all 逐字环境吗?我只想替换输出块而不是逐字环境的其他实例。例如,原始文本可以包含在 ``` 中,我不想为此使用相同的环境(尽管可以通过为此创建自定义块来修复)
    • 你是对的。那我没有更好的解决方案。挑战在于,无法为 Pandoc 的 Markdown 中的某些围栏代码块指定特定的 LaTeX 环境(否则您可以只修改 knitr 的输出挂钩并使用不同类型的围栏代码块从 R 块输出文本)。跨度>
    猜你喜欢
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    • 2021-05-25
    • 1970-01-01
    • 2019-09-29
    相关资源
    最近更新 更多