如何使用subcaption
包中的程序knitr
,而不是过时的subfig
和\subfloat
?
或者,也许用fig.env = 'subfigure'
? 指定其他选项。它需要类似这样的内容:
\begin{subfigure}[b]{0.3\textwidth}
<code>
\end{subfigure}
但仅使用fig.env
会产生,缺少{0.3\textwidth}
:
\begin{subfigure}[!htb]
\includegraphics[width=\maxwidth]{}
\caption[]{}
\label{}
\end{subfigure}
答案1
看看knitr 选项文档并跟随它到示例代码,似乎您只需重新定义 -command \subfloat
,如下所示:\newcommand{\subfloat}[2][need a sub-caption]{\subcaptionbox{#1}{#2}}
。
以下是一个例子:
\documentclass{article}
\usepackage{subcaption}
\newcommand{\subfloat}[2][need a sub-caption]{\subcaptionbox{#1}{#2}}
\begin{document}
<<someChunk,cache=T,echo=F,tidy=F, fig.subcap=c("Subfig1", "Subfig2") , fig.cap="TITLE", out.width='.49\\linewidth'>>=
x=seq(1:10)
plot(x,x)
plot(x,x^2)
@
\end{document}
尽管可能还有其他方法可以实际使用环境而不是命令来显示图形,但我还没有找到。
另请注意,fig.env
仅设置“父”环境,例如\begin{figure}
,因此如果您想使用fig.env
,则必须在单独的环境中执行此操作,就像是这:
\begin{figure}
<<someChunk,cache=T,echo=F,tidy=F, fig.subcap=c("Subfig1", "Subfig2") , fig.cap="TITLE", out.width='.49\\linewidth', fig.env=c('subfigure')>>=
x=seq(1:10)
plot(x,x)
@
<<someChunk,cache=T,echo=F,tidy=F, fig.subcap=c("Subfig1", "Subfig2") , fig.cap="TITLE", out.width='.49\\linewidth', fig.env=c('subfigure')>>=
x=seq(1:10)
plot(x,x^2)
@
\end{figure}
后一个例子不起作用,因为subfigure
需要一个参数,而我不太确定如何做到这一点。