Ho un genitore e un figlio Rnw
documento. Il dottore del bambino si trova nella sottocartella children
, vale a direknitr: come utilizzare i documenti child .Rnw con i percorsi delle figure (relativi)?
+-- parent.Rnw
+-- children
+-- child.Rnw
+-- figure
+-- test.pdf
Ora voglio creare il (margine) figura test.pdf
dall'interno del doc figlio utilizzando la funzione pdf
e posizionarlo nella cartella figure
all'interno della cartella children
(cioè la cartella locale figure
per child.Rnw
).
parent.Rnw
\documentclass{article}
\begin{document}
I am the parent
<<child, child='children/child.Rnw'>>=
@
\end{document}
child.Rnw
<<parent, echo=FALSE, cache=FALSE>>=
knitr::set_parent("../parent.Rnw")
@
I am the child doc.
<<>>=
pdf("figure/test.pdf")
plot(1:10)
dev.off()
@
\marginpar{ \includegraphics[width=\marginparwidth]{figure/test.pdf} }
Quando si compila il child.Rnw
tutto funziona bene. Il percorso per figure/test.pdf
è corretto per il documento figlio ma non durante la compilazione del documento padre. Quindi dovrebbe essere children/figure/test.pdf
.
Domanda: Come posso avere un percorso corretto per la compilazione del bambino E il doc genitore?
I percorsi nei documenti figli sono stati per me un incubo e non penso che avrò mai il tempo o il coraggio per correggerli (o forse è semplicemente impossibile correggerli perché bisogna considerare sia LaTeX che R) . Quello che consiglierei è di mettere tutto in una struttura piatta, cioè genitori e figli nella stessa directory, ed evitare le directory annidate. –
@Yihui, c'è un modo che knitr può conoscere durante la comilizzazione se il documento attualmente compilato è un documento figlio o no? Cioè dall'interno del documento figlio, c'è un modo per R di vedere se questo è un documento figlio? Se è così, proverò a generare il percorso utilizzando un chunk knitr a seconda se il doc è un bambino o meno. –
Sì, esiste una funzione interna 'knitr ::: child_mode()'. –