Ярлык фигуры LaTeX из графика R с использованием KnitR?

Я не могу заставить R/KnitR создать LaTeX \label{} утверждение для фигуры. Руководство, кажется, указывает на то, что \label{} Оператор будет создан путем объединения строки в fig.lp (по умолчанию "fig:") с меткой для фрагмента R-кода. Однако я не смог заставить это работать. нет \label{} Заявление создается для первой фигуры, созданной вязанием MWE ниже. На второй фигуре добавлен ярлык с обнаруженным мною обходным решением, поместив блок R в среду фигуры и поместив \label тег после или внутри \caption тег.

\documentclass[12pt, english, oneside]{amsart}
\begin{document}

Figure \ref{fig:plot} doesn't have it's label.

<<plot>>=
plot(x=0, y=0)
@

Figure \ref{fig:plot2} has its label.

\begin{figure}
\caption{\label{fig:plot2}}
<<>>=
plot(x=1,y=1)
@
\end{figure}

\end{document}

Хорошо, я нашел обходной путь, положив кусок R в \begin{figure} . . .\end{figure} среда в LaTeX. Я могу создать ярлык в той же среде. Тем не менее, я хотел бы понять, как Yihui намеревается справиться с этим с KnitR.

1 ответ

Решение

Вам нужно установить fig.cap = '' (или все, что вы хотите), чтобы убедиться, что в latex документ. (Вы могли заметить, что \begin{figure} ... \end{figure} отсутствует вместе с \label{} составная часть

например

\documentclass[12pt, english, oneside]{amsart}
\begin{document}
See Figure \ref{fig:plot}.
<<plot, fig.lp="fig:", fig.cap = ''>>=
plot(x=0, y=0)
@
\end{document}

Я бы согласился с тем, что описание с веб-сайта не совсем понятно, как это необходимо.

  • fig.env: ('figure') среда LaTeX для рисунков, например, установите fig.env='marginfigure' для получения \ begin {marginfigure}

  • fig.cap: (NULL; символ) подпись к рисунку для использования в среде рисунка в LaTeX (in \caption{}); если NULL или NA, он будет игнорироваться, в противном случае для участков в чанке будет использоваться среда рисунка (выводится в \begin{figure} и \end{figure})

Хотя руководство по графике понятно, и аргументация имеет смысл

Подписи к рисунку

Если параметр чанга fig.cap не равен NULL или NA, графики будут помещены в графическое окружение, когда формат вывода - LATEX, и этот параметр используется для записи заголовка в этой среде с помощью \caption{}. Двумя другими связанными параметрами являются fig.scap и fig.lp, которые устанавливают краткую подпись и строку префикса для метки рисунка. Краткий заголовок по умолчанию извлекается из заголовка путем его усечения в первом периоде, двоеточии или точке с запятой. Метка представляет собой комбинацию fig.lp и метки чанка. Так как figure является плавающей средой, он может перемещаться из вывода чанка в другие места, такие как верх или низ страницы, когда компилируется документ TEX.

Если вы хотели бы воспроизвести R В результате сеанса вы не хотите, чтобы рисунки плавали за пределами строки кода, которая определяет, как они были созданы.

Другие вопросы по тегам