【问题标题】:Interaction between \parskip and tikzDevice affecting plot margins in .Rnw\parskip 和 tikzDevice 之间的交互影响 .Rnw 中的绘图边距
【发布时间】:2020-11-28 10:41:41
【问题描述】:

我正在编织一个.Rnw 文件,但出乎意料的是,垂直空间从我的地块的底部内边距丢失并添加到顶部外边距。

这是一个最小的工作示例:

\documentclass{article}

\setlength{\parskip}{1em}

\begin{document}

<<mwe-plot, dev="tikz", dev.args=list(bg="grey95")>>=
par(mar=rep(2,4), oma=rep(0,4))
x <- seq(0, 2*pi, length.out=21)
plot(x, sin(x), type="l")
box("inner")
@

\end{document}

knit() 生成mwe-plot-1.pdf,如下所示:

,但我期望的是:

.

这个问题显然是由于 \parskip 和 tikzDevice 之间的交互,因为通过在序言中将 \parskip 设置为零或从 dev="tikz" 切换到默认的 dev="pdf" 来纠正它。虽然这些是可能的解决方案,但我正在寻找一个不需要这样做的修复。

请注意,我尝试在块之前(\begin{document} 之后)立即添加\setlength{\parskip}{0em},但这不会影响输出。

感谢任何提示...

【问题讨论】:

    标签: r plot latex knitr


    【解决方案1】:

    您的近端问题是 \setlength{\parskip}{1em} 语句包含在 tikz .tex 文件中,这会导致间距丢失。解决方案是将其从序言移到文档正文中,即

    \documentclass{article}
    \begin{document}
    \setlength{\parskip}{1em}
    ...
    

    我通过逐层下降来解决这个问题 - 首先查看 knit 创建的 .tex 输出(在 LaTeX -> PDF 转换之前),然后查看 figure/mwe-plot-1.pdf (并意识到,正如你所建议的,问题不在于 knitr 放入 LaTeX 文件的内容,而在于 tikzDevice 放入 tikz-.tex 文件的内容),然后查看 figure/mwe-plot-1.tex 并意识到它有 @987654330 @ 语句嵌入。我环顾四周寻找可以覆盖它的tikzDevice 选项,但后来意识到它可能只包括序言中的内容......

    【讨论】:

      猜你喜欢
      • 2017-03-19
      • 1970-01-01
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-09
      • 2021-12-02
      • 1970-01-01
      相关资源
      最近更新 更多