Подтвердить что ты не робот

Лайт-диаграмма 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 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.

4b9b3361

Ответ 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 (в\caption {}); если NULL или NA, это будет игнорируется, в противном случае для графиков в кусок (вывод в \begin {figure} и \end {figure})

Несмотря на то, что графическое руководство понятно, и рассуждения имеют смысл

Рисунок Caption

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

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