代码之家  ›  专栏  ›  技术社区  ›  Daniela Rodrigues

如何从RMarkdown调用.tex中的特定代码段?

  •  0
  • Daniela Rodrigues  · 技术社区  · 4 年前

    我在RMarkdown中创建一个演示文稿,我有以下生成图形的LaTeX代码:

    \begin{picturegraph}[>=triangle 45, font=\footnotesize]
    \node[fill,rectangle,inner sep=0pt,minimum size=5pt,label={right:{S}}] (S) at (4,2.66) {};
    \node[fill,circle,inner sep=0pt,minimum size=5pt,label={below:{X}}] (X) at (0,0) {};
    \node[fill,circle,inner sep=0pt,minimum size=5pt,label={below:{Y}}] (Y) at (6,0) {};
    \node[fill,circle,inner sep=0pt,minimum size=5pt,label={above:{Z}}] (Z) at (3,2) {};
    \draw[->,shorten >= 1pt] (X)--(Y);
    \draw[->,shorten >= 1pt] (Z)--(X);
    \draw[->,shorten >= 1pt] (Z)--(Y);
    \draw[->,shorten >= 1pt] (S)--(Z);
    \draw[<->,dashed,shorten >= 1pt] (X) to[bend left=45] (Z);
    \draw[<->,dashed,shorten >= 1pt] (X) to[bend left=30] (Y);
    \end{picturegraph}
    

    如果我把这段代码放在我想要的区域中的RMarkdown脚本中,它就不起作用了。

    我想我可以把这段代码放在.tex文件中,然后从RMarkdown脚本调用这些代码。我如何做到这一点,同时确保它进入我想要的特定部分?

    ---
    title: |
        | ##title**
    
    author: |
            | name
            | email
            |
            
    date: "`r format(Sys.time(), '%d %B %Y')`"
    
    output:
      beamer_presentation:
        theme: Szeged
        slide_level: 2
        includes:
          in_header: header.tex
    
    linkcolor: false
    ---
    
    ```{r setup, include=FALSE}
    knitr::opts_chunk$set(echo = FALSE)
    ```
    
    
    # Outline
    
    ## Outline
    
    1. Item 1
    2. Item 2
    3. Item 3
    
    # Introduction
    
    ## First subsection
    
    This is an example of a graph:
    
    (I want to insert the graph here)
    
    
    ## Second subsection
    
    Text
    

    还有我的页眉.tex:

    \definecolor{mycolorlightblue}{RGB}{103,153,200}
    \definecolor{mycolordarkblue}{RGB}{0,70,127}
    % remove 2nd section from header
    \makeatletter
    \beamer@theme@subsectionfalse
    \makeatother
    % change colour of lines
    \setbeamercolor{separation line}{bg=mycolorlightblue}
    % text title
    \setbeamercolor{title}{fg=mycolordarkblue}
    \setbeamercolor{frametitle}{fg=mycolordarkblue}
    % text colour
    \setbeamercolor{frametitle}{fg=mycolordarkblue}
    % item colour
    \setbeamercolor{structure}{fg=mycolordarkblue}
    % no header or footer on first page
    \thispagestyle{empty}
    % remove title slides at beginning of sections
    \AtBeginSection{}
    % add page counter to the footer
    \setbeamertemplate{footline}[frame number]
    % logo of my university
    \titlegraphic{%
      \begin{picture}(0,0)
        \put(155,0){\makebox(0,0)[rt]{\includegraphics[]{ALL-ICONS.png}}}
      \end{picture}}
    
    0 回复  |  直到 4 年前
        1
  •  0
  •   samcarter_is_at_topanswers.xyz    4 年前

    几个问题:

    • picturegraph 具有 tikzpicture
    • 缺少加载 tikz 包裹
    • arrows 图书馆
    ---
    title: |
        | ##title**
    
    author: |
            | name
            | email
            |
            
    date: "`r format(Sys.time(), '%d %B %Y')`"
    
    output:
      beamer_presentation:
        theme: Szeged
        slide_level: 2
        includes:
          in_header: header.tex
        keep_tex: true
    
    linkcolor: false
    ---
    
    ```{r setup, include=FALSE}
    knitr::opts_chunk$set(echo = FALSE)
    ```
    
    
    # Outline
    
    ## Outline
    
    1. Item 1
    2. Item 2
    3. Item 3
    
    # Introduction
    
    ## First subsection
    
    This is an example of a graph:
    
    (I want to insert the graph here)
    
    
    ## Second subsection
    
    Text
    
    \begin{tikzpicture}[>=triangle 45, font=\footnotesize]
    \node[fill,rectangle,inner sep=0pt,minimum size=5pt,label={right:{S}}] (S) at (4,2.66) {};
    \node[fill,circle,inner sep=0pt,minimum size=5pt,label={below:{X}}] (X) at (0,0) {};
    \node[fill,circle,inner sep=0pt,minimum size=5pt,label={below:{Y}}] (Y) at (6,0) {};
    \node[fill,circle,inner sep=0pt,minimum size=5pt,label={above:{Z}}] (Z) at (3,2) {};
    \draw[->,shorten >= 1pt] (X)--(Y);
    \draw[->,shorten >= 1pt] (Z)--(X);
    \draw[->,shorten >= 1pt] (Z)--(Y);
    \draw[->,shorten >= 1pt] (S)--(Z);
    \draw[<->,dashed,shorten >= 1pt] (X) to[bend left=45] (Z);
    \draw[<->,dashed,shorten >= 1pt] (X) to[bend left=30] (Y);
    \end{tikzpicture}
    

    增加 header.tex

    \usepackage{tikz}
    \usetikzlibrary{arrows}
    

    enter image description here