Использование knit_child в RStudio для управления тезисами .Rnw глав в master .Rnw. \ ref и \ label теперь не работают - PullRequest
1 голос
/ 31 января 2020

Сказать, что я любитель LaTeX, - преуменьшение, хотя каким-то чудом мне удается написать в нем мой тезис. Я использую RStudio для написания и компиляции своей диссертации, так как весь мой анализ выполняется в R и мне нужна возможность вставлять динамические c графики и c.

Поскольку мой тезис увеличился в размере, я захотел разбить главы на файлы .Rnw, чтобы я мог работать над каждой главой независимо (так как мне требовался код R в каждой главе, исключающий использование .tex файлы). Единственный способ заставить это работать - использовать \ Sexpr {knit_child ('chapter.Rnw')}. Я переплетаю свои файлы, используя knitr, а не Sweave, как снова, это единственное, что я могу заставить его правильно скомпилировать. К сожалению, мне так и не удалось понять почему!

Тем не менее, это работает очень хорошо, намного проще в управлении, и мои графики и код R компилируются правильно, но мои ранее работавшие команды \ ref и \ label больше не работает. Ну, они работают внутри главы, но не между ними.

Я включаю здесь свой основной документ и латексные команды, которые, я думаю, имеют отношение к моему вопросу. Я гуглил это все утро, но никуда не денусь один.

\documentclass[12pt]{report} %What kind of document 
\usepackage{titlesec} %can actually name chapters rather than having "Chapter 1" etc
\usepackage[backend=bibtex,style=authoryear-comp,sorting=nyt,maxcitenames=2,url=false]{biblatex}
\bibliography{library}

% ----------- KNITR SETUP ------------------------
<<setup, include=FALSE, cache=FALSE, echo=FALSE>>=
opts_chunk$set(fig.path='figures/plots-', fig.align='center', fig.show='hold', eval=TRUE, echo=TRUE)
options(replace.assign=TRUE,width=80)
# setwd("C:/Users/cainswor/Box Sync/Imperial/Reports/Thesis")
setwd("D:/BoxSync/BoxSync/Reports/Thesis")
data_loc <- "D:/BoxSync/BoxSync/Reports/Thesis/Data for Thesis"
Sys.setenv(TEXINPUTS=getwd(),
           BIBINPUTS=getwd(),
           BSTINPUTS=getwd())

x <- c("shiny","flowViz","nls2","plyr","RColorBrewer","abind","MASS","gplots","hexbin",
       "data.table","fastmatch","stringr","hypergeo","rgl","mclust","knitr","dbscan")
lapply(x, require, character.only=T)
# Sweave2knitr('ThesisSecondDraft.Rnw')
@

\begin{document}

\Sexpr{knit_child('Th1_Introduction.Rnw')}

\part{The Experiment}

\Sexpr{knit_child('Th2_Characterisation.Rnw')}

\end{document}

1 Ответ

0 голосов
/ 31 января 2020

Вот пример, который работает с моими файлами.

В основном файле .Rnw:

\documentclass{article}

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

Hello world

\SweaveInput{child_test.Rnw}


\end{document}

В файле child_test.Rnw

 %!Rnw root = main.Rnw

\SweaveOpts{echo = TRUE, eval = TRUE}

\section{Analysis}
This is the analysis.

<<analysis, result = tex>>=
summary(cars)
@
...