4

I want to insert a knitr output file (created in RStudio as .rnw file, then I compiled, it creates the .tex file) into my main .tex file. But I got an error, how we can do this?

Knitter Tex file:

\documentclass{article}\usepackage[]{graphicx}\usepackage[]{color}
%% maxwidth is the original width if it is less than linewidth
%% otherwise use linewidth (to make sure the graphics do not exceed the margin)
\makeatletter
\def\maxwidth{ %
  \ifdim\Gin@nat@width>\linewidth
    \linewidth
  \else
    \Gin@nat@width
  \fi
}
\makeatother

\definecolor{fgcolor}{rgb}{0.345, 0.345, 0.345}
\newcommand{\hlnum}[1]{\textcolor[rgb]{0.686,0.059,0.569}{#1}}%
\newcommand{\hlstr}[1]{\textcolor[rgb]{0.192,0.494,0.8}{#1}}%
\newcommand{\hlcom}[1]{\textcolor[rgb]{0.678,0.584,0.686}{\textit{#1}}}%
\newcommand{\hlopt}[1]{\textcolor[rgb]{0,0,0}{#1}}%
\newcommand{\hlstd}[1]{\textcolor[rgb]{0.345,0.345,0.345}{#1}}%
\newcommand{\hlkwa}[1]{\textcolor[rgb]{0.161,0.373,0.58}{\textbf{#1}}}%
\newcommand{\hlkwb}[1]{\textcolor[rgb]{0.69,0.353,0.396}{#1}}%
\newcommand{\hlkwc}[1]{\textcolor[rgb]{0.333,0.667,0.333}{#1}}%
\newcommand{\hlkwd}[1]{\textcolor[rgb]{0.737,0.353,0.396}{\textbf{#1}}}%

\usepackage{framed}
\makeatletter
\newenvironment{kframe}{%
 \def\at@end@of@kframe{}%
 \ifinner\ifhmode%
  \def\at@end@of@kframe{\end{minipage}}%
  \begin{minipage}{\columnwidth}%
 \fi\fi%
 \def\FrameCommand##1{\hskip\@totalleftmargin \hskip-\fboxsep
 \colorbox{shadecolor}{##1}\hskip-\fboxsep
     % There is no \\@totalrightmargin, so:
     \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
 \MakeFramed {\advance\hsize-\width
   \@totalleftmargin\z@ \linewidth\hsize
   \@setminipage}}%
 {\par\unskip\endMakeFramed%
 \at@end@of@kframe}
\makeatother

\definecolor{shadecolor}{rgb}{.97, .97, .97}
\definecolor{messagecolor}{rgb}{0, 0, 0}
\definecolor{warningcolor}{rgb}{1, 0, 1}
\definecolor{errorcolor}{rgb}{1, 0, 0}
\newenvironment{knitrout}{}{} % an empty environment to be redefined in TeX

\usepackage{alltt}
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}

\begin{document}

The log returns are calculated from the theoritical distrbutions. Then we consider the autocorraltion of the entire series. 

\begin{knitrout}
\definecolor{shadecolor}{rgb}{0.969, 0.969, 0.969}\color{fgcolor}
\includegraphics[width=\maxwidth]{figure/acf} 

\end{knitrout}


The lag 1 significnat autocorrelation -0.5053 found. 

\end{document}

Main TeX file:

% edited by JG on 31/10/13 to 6/11/13
\documentclass[12pt,a4paper]{article}

\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{multirow} 
\usepackage{lscape}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{lettrine}
\usepackage{setspace}
\usepackage[authoryear]{natbib}
\usepackage{caption}
\usepackage{subcaption}

\doublespacing
% page layout
\addtolength{\topmargin}{-20mm}
\addtolength{\textheight}{35mm}
\setlength{\textwidth}{150mm}
\setlength{\oddsidemargin}{8mm}
\hyphenation{Shew-hart}

\begin{document}

\title{Applying quality improvement techniques to analyze the asymmetric behavior in stock returns}

\section{ACF}

\input{ThirdPaper_Autocorrelation} % name of the knitter file                       


\end{document}
Speravir
  • 19,491
Nadeeka
  • 41

1 Answers1

2

just move the preamble of the file to be included to the main document, and just leave the body of the document to be included in the file to be input:

\documentclass[12pt,a4paper]{article}

\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{multirow} 
\usepackage{lscape}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{lettrine}
\usepackage{setspace}
\usepackage[authoryear]{natbib}
\usepackage{caption}
\usepackage{subcaption}

\doublespacing
% page layout
\addtolength{\topmargin}{-20mm}
\addtolength{\textheight}{35mm}
\setlength{\textwidth}{150mm}
\setlength{\oddsidemargin}{8mm}
\hyphenation{Shew-hart}

%%%%
\usepackage[]{color}
%% maxwidth is the original width if it is less than linewidth
%% otherwise use linewidth (to make sure the graphics do not exceed the margin)
\makeatletter
\def\maxwidth{ %
  \ifdim\Gin@nat@width>\linewidth
    \linewidth
  \else
    \Gin@nat@width
  \fi
}
\makeatother

\definecolor{fgcolor}{rgb}{0.345, 0.345, 0.345}
\newcommand{\hlnum}[1]{\textcolor[rgb]{0.686,0.059,0.569}{#1}}%
\newcommand{\hlstr}[1]{\textcolor[rgb]{0.192,0.494,0.8}{#1}}%
\newcommand{\hlcom}[1]{\textcolor[rgb]{0.678,0.584,0.686}{\textit{#1}}}%
\newcommand{\hlopt}[1]{\textcolor[rgb]{0,0,0}{#1}}%
\newcommand{\hlstd}[1]{\textcolor[rgb]{0.345,0.345,0.345}{#1}}%
\newcommand{\hlkwa}[1]{\textcolor[rgb]{0.161,0.373,0.58}{\textbf{#1}}}%
\newcommand{\hlkwb}[1]{\textcolor[rgb]{0.69,0.353,0.396}{#1}}%
\newcommand{\hlkwc}[1]{\textcolor[rgb]{0.333,0.667,0.333}{#1}}%
\newcommand{\hlkwd}[1]{\textcolor[rgb]{0.737,0.353,0.396}{\textbf{#1}}}%

\usepackage{framed}
\makeatletter
\newenvironment{kframe}{%
 \def\at@end@of@kframe{}%
 \ifinner\ifhmode%
  \def\at@end@of@kframe{\end{minipage}}%
  \begin{minipage}{\columnwidth}%
 \fi\fi%
 \def\FrameCommand##1{\hskip\@totalleftmargin \hskip-\fboxsep
 \colorbox{shadecolor}{##1}\hskip-\fboxsep
     % There is no \\@totalrightmargin, so:
     \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
 \MakeFramed {\advance\hsize-\width
   \@totalleftmargin\z@ \linewidth\hsize
   \@setminipage}}%
 {\par\unskip\endMakeFramed%
 \at@end@of@kframe}
\makeatother

\definecolor{shadecolor}{rgb}{.97, .97, .97}
\definecolor{messagecolor}{rgb}{0, 0, 0}
\definecolor{warningcolor}{rgb}{1, 0, 1}
\definecolor{errorcolor}{rgb}{1, 0, 0}
\newenvironment{knitrout}{}{} % an empty environment to be redefined in TeX

\usepackage{alltt}
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}

%%%%

\begin{document}

\title{Applying quality improvement techniques to analyze the asymmetric behavior in stock returns}

\section{ACF}

\input{ThirdPaper_Autocorrelation} % name of the knitter file                       


\end{document}

The log returns are calculated from the theoritical distrbutions. Then we consider the autocorraltion of the entire series. 

\begin{knitrout}
\definecolor{shadecolor}{rgb}{0.969, 0.969, 0.969}\color{fgcolor}
\includegraphics[width=\maxwidth]{figure/acf} 

\end{knitrout}


The lag 1 significnat autocorrelation -0.5053 found.
David Carlisle
  • 757,742
  • Thanks.!Can we avoide preamble within RStudio? Otherwise, it is always needs to do manually . – Nadeeka Jan 08 '14 at 22:26
  • @Nadeeka sorry I don't know about R's latex interface – David Carlisle Jan 08 '14 at 22:34
  • @Nadeeka Perhaps \input only part of a file does help. – Speravir Jan 08 '14 at 22:56
  • @Nadeeka I don't think you can omit the preamble from the knitr output, but you could reorganize your files so that you included the 'main' document into the Rnw, rather than the other way around. That would save you having to manually edit the knitr output. – Tyler Feb 13 '14 at 23:19
  • knitr can solve this straightforwardly and thus provides a preferable solution that avoids having to manually chop out preambles. It can solve this problem via its knit_child() function or via the chunk option child. See here and here. – Adam Liter Apr 30 '14 at 20:46