25

Knitr を使用してサブフィギュア (関連するサブキャプション付き) を作成することは可能ですか? 最小限の作業例を次に示します。

\documentclass{article}

\begin{document}

<<echo = FALSE, fig.cap = c("Some numbers.", "Some more numbers."), out.width = "0.5\\textwidth", fig.align = "center">>=

plot(1:10)
plot(30:100)

@

\end{document}

これにより、図 1 と図 2 というラベルの付いた 2 つの図が作成され、キャプションは (それぞれ) 定義されています。しかし、LaTeX パッケージのサブキャプションでできるように、"Figure 1a" と "Figure 1b" というラベルを付けたいと思います。

Knitr オプション "fig.env" があることは知っていますが、これでは解決しません (少なくとも、たとえば "fig.env = 'subfigure'" を使用しないでください)。Sweave に関する同様の投稿がここにありますが、解決策は洗練されていないハックです: http://texblog.org/2011/12/01/sweave-subfig-controlling-figure-size-and-placement/

4

3 に答える 3

38

knitr(>= v1.5) サブフィギュアをサポートします。チャンク オプションを使用できますfig.subcap。これは最小限の例です。

\documentclass{article}
\usepackage{subfig}
\begin{document}

<<fig-sub, fig.cap='two plots', fig.subcap=c('one plot', 'the other one'), out.width='.49\\linewidth'>>=
plot(1:10)
plot(rnorm(10), pch=19)
@

\end{document}

ニットのサブフィギュア

于 2012-12-02T07:09:33.450 に答える
6

Latex のサブキャプションパッケージを使用できます。

\documentclass{article}
\usepackage{subcaption}

\begin{document}

\begin{figure}
\centering
\begin{subfigure}[b]{0.3\textwidth}
\centering
<<echo = FALSE, out.width = "0.5\\textwidth", fig.align = "center">>=
  plot(1:10)
@
\caption{text for first figure}
\label{fig:gull}
\end{subfigure}%

\begin{subfigure}[b]{0.3\textwidth}
\centering
<<echo = FALSE, out.width = "0.5\\textwidth", fig.align = "center">>=
  plot(30:100)
@
\caption{text for second figure}
\label{fig:tiger}
\end{subfigure}
\caption{Figure caption}
\end{figure}

\end{document}

ここに画像の説明を入力

于 2012-10-18T20:24:25.383 に答える