Я пишу отчет в LaTeX, встраивая несколько R-скриптов, которые представлены в несмежных фрагментах Sweave.
Я нашел несколько довольно полезных комментариев к Stackoverflow о том, как настроить Sweave и списки для выделения кода и строк нумерации.
Я изменил исходный пакет sweave.sty следующим образом, чтобы воспользоваться списками , избегая при этом обременения моих документов LaTeX слишком большим количеством настроек.
В принципе, у меня проблемы с параметрами нумерации строк. В соответствии с настройкой (firstnumber = last) строки пронумерованы по всему документу.
Если я установлю firstnumber = auto, нумерация возобновляется с 1 для каждого фрагмента кода R.
\RequirePackage[T1]{fontenc}
\RequirePackage{graphicx,ae,fancyvrb}
\IfFileExists{upquote.sty}{\RequirePackage{upquote}}{}
\setkeys{Gin}{width=0.8\textwidth}
\DefineVerbatimEnvironment{Scode}{Verbatim}{fontshape=sl, fontsize=\small}
\newenvironment{Schunk}{}{}
\usepackage{listings}
\newcommand{\indexfonction}[1]{\index{#1@\texttt{#1}}}
\usepackage[usenames,dvipsnames]{color}
\definecolor{gris90}{gray}{0.95}
\lstdefinelanguage{Renhanced}[]{R}{%
sensitive,%
morecomment=[l]\#,%
morestring=[d][\color{RoyalPurple}]",%
morestring=[d][\color{RoyalPurple}]',
alsoletter={.\%_},
alsoother={:_\$}}
\lstset{language=Renhanced,extendedchars=false,
basicstyle=\small\ttfamily,
columns=flexible,
commentstyle=\textsl,
numbers=left,
numberstyle=\small \ttfamily,
keywordstyle=\mdseries,
showstringspaces=false,
index=[1][keywords],
indexstyle=\indexfonction}
\lstnewenvironment{Sinput}[1][]{
\lstset{%
language={Renhanced},
basicstyle=\small \ttfamily,
columns=flexible,
frame=single,
backgroundcolor=\color{gris90},
numbers=left,
numberstyle=\small \ttfamily,
firstnumber=last,
#1
}
}{}
\lstnewenvironment{Soutput}[1][]{
\lstset{%
language={Renhanced},
basicstyle=\small \ttfamily,
columns=flexible,
numbers=right,
numberstyle=\tiny,
firstnumber=last,
#1
}
}{}
Я хотел бы найти промежуточное решение, в котором нумерация выполняется по разным фрагментам одного и того же сценария, но перезапускает форму 1 в начале другого сценария (возможно, указав его вручную).
Проблема, я думаю, в том, что я не могу вручную указать название списков, потому что Sweave делает это в фоновом режиме.
Предложения приветствуются!