2016-08-16 4 views
1

Я работаю над документом о программном обеспечении R, который в настоящее время хранится в файле Rnw, чтобы в конечном итоге обработать его с помощью Sweave. Документ содержит несколько R кусков кода, обычной формы:Добавление комментариев к R-коду в Sweave

<<>>= 
R Code 
@ 

Рядом с некоторыми строками коды, я хотел бы добавить конкретные замечания, которые я хотел бы, чтобы отображаться как обычный текст LaTeX (так что они легко узнаваемый как комментарии). Есть ли способ отобразить фрагменты кода R и соответствующие комментарии рядом друг с другом при использовании sweave или knitR?

Благодарим за помощь!

+0

Я думаю, вам нужно уточнить, что вы подразумеваете под «рядом друг с другом». Вы хотите, чтобы небольшой раздел страницы состоял из двух столбцов, с R-кодом в одном столбце и LaTeX рядом с ним? – Gregor

+1

Кроме того, я думаю, вы не должны называть эти «комментарии». Комментарии - это то, что вы добавили бы в R-код с символом '#'. Похоже, что вы * не хотите комментировать, вы хотите, чтобы стандартный LaTeX (содержание которого может или не может комментировать R-код, как вы пожелаете). – Gregor

+1

Тем не менее, если ваша главная проблема - это «так, чтобы они были легко узнаваемы как комментарии» *, вы должны просто использовать обычные комментарии R в своем блоке кода и позволить подсветке синтаксиса изменить цвет так, чтобы они выделялись. [Вы можете сделать это с помощью Sweave] (http://tex.stackexchange.com/q/5113/10371), или это будет сделано по умолчанию, если вы переключитесь на 'knitr'. – Gregor

ответ

0

Если вы хотите быть отформатирован как код (я предполагаю, что это то, что вы имеете в виду), вы можете использовать следующий код:

\begin{filecontents*}{my_r_code_test.r} 
R code 
@ 
|\includegraphics[width=0.5\textwidth]{example-image}| 
\end{filecontents*} 

\documentclass{article} 
\usepackage{xcolor} 
\usepackage{graphicx} 
\usepackage{listings,mdframed} 

\lstset{ 
    language=R, 
    backgroundcolor=\color{black!5}, % set backgroundcolor 
    basicstyle=\footnotesize\ttfamily,% basic font setting 
    columns=fullflexible, 
} 

\begin{document} 
\begin{mdframed}[backgroundcolor=black!5,linewidth=0pt,% 
    innerleftmargin=0pt,innertopmargin=0pt,innerbottommargin=0pt] 
\lstinputlisting[escapeinside=||]{my_r_code_test.r} 
\end{mdframed} 
\end{document} 

который производит

enter image description here

в верхней страницы.

Надеюсь, это поможет!

+0

Дорогая Хизер, спасибо, что указала мне на пакет объявлений. Я не использовал его для этой проблемы, потому что некоторые из кодовых блоков также должны содержать вывод mycode в R. На данный момент я использовал функции sweave (в R), чтобы это разрешить. Можно ли отображать два блока lstlisting в двух столбцах, то есть рядом друг с другом? – Llarian

+0

@ Llarian, я не уверен в двух столбцах. Хотя, если вы хотите включить вывод своего кода, не можете ли вы включить его в качестве изображения, используя пакет 'graphicx'? Здесь, позвольте мне проверить что-то реальное быстро. – heather

+0

@ Llarian, я обновил свой код, чтобы показать, как включить изображение. – heather

Смежные вопросы