Обтекание фигур, созданных в трикотажном куске при вязании в pdf - PullRequest
0 голосов
/ 12 марта 2019

В документе .Rmd я генерирую несколько связанных фигур (из списка) в блоке knitr.

При вязании в html эти фигуры переносятся правильно и все видны.

При вязании в pdf все рисунки располагаются один за другим, и видны только первые два (и половина третьего).Вот некоторый код, который воспроизводит проблему:

---
title: "Example figure wrapping problem"
output:
    pdf_document:
        keep_tex: true
classoption:
    landscape
---

# SK-N-SH plex panel {.tabset .tabset-fade}

```{r, echo=FALSE, message=FALSE}
knitr::opts_chunk$set(fig.width=6, fig.height=9, fig.show="hold", hightligh=TRUE, warnings=TRUE, error=FALSE, cache=FALSE, echo=FALSE, dpi=100)
```

```{r}
for (ii in 1:6) {
    plot(1:3, 1:3, main=ii)
}
```

Я понял, что проблема связана с генерацией файла .tex, который содержит эту строку:

\includegraphics{figure/unnamed-chunk-2-1.png}\includegraphics{figure/unnamed-chunk-2-2.png}\includegraphics{figure/unnamed-chunk-2-3.png}\includegraphics{figure/unnamed-chunk-2-4.png}\includegraphics{figure/unnamed-chunk-2-5.png}\includegraphics{figure/unnamed-chunk-2-6.png}

Добавление разрывов строкикаждые два includegraphics решают проблемы:

\includegraphics{figure/unnamed-chunk-2-1.png}\includegraphics{figure/unnamed-chunk-2-2.png}
\includegraphics{figure/unnamed-chunk-2-3.png}\includegraphics{figure/unnamed-chunk-2-4.png}
\includegraphics{figure/unnamed-chunk-2-5.png}\includegraphics{figure/unnamed-chunk-2-6.png}

Однако это, очевидно, не практично, так как есть еще много цифр.Я мог бы также запустить sed 's/}\(\\includegraphics\)/}\r\1/g' для файла, но это бесполезно усложняет процесс компиляции.

Есть ли собственный knitr или rmarkdown способ решить мою проблему.

1 Ответ

1 голос
/ 12 марта 2019

Если вы укажете fig.align="center" и fig.show="asis" в блоке кода, похоже, он будет работать. Например

---
title: "Example figure wrapping problem"
output:
    pdf_document:
        keep_tex: true
classoption:
    landscape
---

# SK-N-SH plex panel {.tabset .tabset-fade}

```{r, echo=FALSE, message=FALSE}
knitr::opts_chunk$set(fig.width=6, fig.height=9, fig.show="hold", hightligh=TRUE, warnings=TRUE, error=FALSE, cache=FALSE, echo=FALSE, dpi=100)
```

```{r fig.align="center",fig.show="asis"}
for (ii in 1:6) {
    plot(1:3, 1:3, main=ii)
}
```

выглядит хорошо. Генерирует код LaTeX

\begin{center}\includegraphics{Untitled_files/figure-latex/unnamed-chunk-2-1} \end{center}

\begin{center}\includegraphics{Untitled_files/figure-latex/unnamed-chunk-2-2} \end{center}

etc.

, который разбивает цифры. Вместо этого вы можете использовать fig.align="right" или fig.align="left", но важно, чтобы вы не использовали fig.show="hold", или все фигуры были объединены, и вы вернулись к исходной проблеме.

...