Вопрос

Я пишу свой тезис в латекс, и потому что на мой вкус есть немного долго, я разделил его в несколько файлов. Давайте назовем их thesis.tex, intro.tex, mat_n_met.tex, rslts.tex и discsn.tex. Отказ Я связал intro.tex, mat_n_met.tex, rslts.tex и discsn.tex через thesis.tex с \include{intro} (и так далее...). Я также создал отдельный файл под названием r_crunching.Rnw (Что я прохожу через Sweave), который удерживает кусок, который управляет сценарием R с анализом данных и кусками, которые производят PDF-выходы графов, которые я встровою через \includegraphics (в наличии, rslts.tex). Все еще следуем?

Если я запускаю RNW (то есть я переименован в rslts.tex к rslts.Rnw) без «ссылки» в кусок с помощью сценария R, вы получите Sweave() Ошибка, сказав ссылку в \Sexpr{} не существует Есть ли способ, не сдерживая всех файлов в один .rnw, чтобы позвонить \Sexpr{} Секс rslts.Rnw?

Другие методы Как добиться этого приветствуются.

Это было полезно?

Решение

Забудьте на секунду, что вы имеете дело с Sweave и просто подумайте о латексной проблеме - для которой \include и \includeonly Предложить решения. Попробуйте это с несколькими простыми тестовыми файлами.

Как только вы выясните, сложите SWEAVE обратно в смесь, и она просто работала как Sweave, - это после «просто» стадия предварительного обработки, хотя и очень умным.

Другие советы

Я рекомендую использовать RSTUDIO (http://www.rstudio.com/ide/). Sweave красиво интегрирован в эту IDE и поддерживает многофакторные документы. Даже навигация журнала ошибок Synctex и Tex по-прежнему работает при работе с многофункциональными документами.

Из главного файла вы можете включить детские файлы, используя

\SweaveInput{Child.Rnw}

Вы можете связать файл ребенка обратно в основной файл, включая директиву

% !Rnw root = Master.Rnw

в дочернем файле. Таким образом, при работе над дочерним файлом и наборам его, Rstudio знают, чтобы набрать главный файл.

Детали объяснены в документации RSTUDIO в http://www.rstudio.com/ide/docs/authoring/multiple_rnw_files.

Расширить ответ Dirk и MJM, я бы предложил использовать \includeи мысли.

Предположим, у вас есть основной файл: master.tex. Отказ В этом файле вы включаете некоторые .tex и .Rnw Файлы, то есть

\include chapter1
\include chapter2
\include chapter3
....

Теперь следующие makefile предоставляет функции для создания .tex, .R и .pdf Файлы:

.SUFFIXES: .tex .pdf .Rnw .R

MAIN = master
##List your your .Rnw includes
RNWINCLUDES = chapter1 chapter2 chapter3
TEX = $(RNWINCLUDES:=.tex)
RFILES = $(RNWINCLUDES:=.R)
RNWFILES = $(INCLUDES:=.Rnw)

all: $(MAIN).pdf
    $(MAIN).pdf: $(TEX) $(MAIN).tex

R: $(RFILES)

.Rnw.R:
     R CMD Stangle $<

.Rnw.tex:
     R CMD Sweave $<

.tex.pdf:
     pdflatex $<
     bibtex $*
     pdflatex $<
     pdflatex $<

По сути, то .SUFFIXES Укажите набор правил для преобразования из одного формата файла в другое. Например, для преобразования из .Rnw к .R, мы используем команду

`R CMD Stangle $<`

Один довольно очевидный ответ - использовать makefile, возможно, использование пакета Cachesweave, для обработки соответствующих файлов в правильном порядке.

Мое решение для нескольких файловых проектов в SWEAVE (при Rstudio) следующее:

1) Создайте основной файл, скажите master.Rnw, в котором у вас есть звонки в субфайлы intro.Rnw, matmet.Rnw, и т.д:

\documentclass[11pt]{book}
% \usepackage{blah, blah} as you wish

\graphicspath{ {./figs/}

\begin{document}
\SweaveOpts{concordance=TRUE}

\include{intro} % a call to 'intro.Rnw'
\include{matmet} % a call to 'matmet.Rnw'
\include{results} % a call to 'results.Rnw'
\include{discuss} % a call to 'discuss.Rnw'

\end{document}

2) Создайте субки. Я даю здесь только первый, intro.Rnw. Отказ Обратите внимание, что в подпадах вы не использовать Команды преамбулы, такие как \documentclass или \begin{document}

\chapter{Introduction}\label{ch:intro}
\section{This is section 01}
In section 01 we are concerned about whether \texttt{Sexpr} could possibly work. The chunk below creates a variable \em{a} which will be referred to by this command later on.

<<>>=
a <- 1+2
@

Ok, if it is working, we shall see number 3 right here: \Sexpr{a}.

3) После сохранения модификаций в «Intro.rnw» просто перейдите в «Master.rnw» и составьте его с помощью Ctrl + Shift + K и ... Voilá:

Скриншот файла, созданного вышеуказанной командой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top