【问题标题】:Include latex package option before documentclass in RMarkdown beamer presentation在 RMarkdown 投影仪演示文稿中的文档类之前包含乳胶包选项
【发布时间】:2019-07-30 06:53:29
【问题描述】:

我正在尝试在rmarkdown 中编译以下beamer 演示文稿。但是当它尝试渲染 rmarkdown 文档时会发生错误

! LaTeX Error: Option clash for package xcolor. 

我在网上搜索,发现我需要在\documentclass 行之前包含\PassOptionsToPackage{table}{xcolor}Applying options to already loaded package,另见here

如何在 RMarkdown 中做到这一点?

    ---
    title: "My report"
    output: 
    beamer_presentation:
        keep_tex: true
    header-includes: 
    - \usepackage{booktabs}
    - \usepackage{tabu}
    - \usepackage{threeparttable}
    - \usepackage{threeparttablex}
    - \usepackage[normalem]{ulem}  
    - \usepackage[table]{xcolor}
    ---


    ```{r setup, include=FALSE}
    library(knitr)
    library(kableExtra)
    knitr::opts_chunk$set(echo = FALSE)
    ```

    ```{r positioned_table}
    dt <- mtcars[1:5, 1:6]
    kable(dt) %>%
    kable_styling("striped", full_width = F) %>%
    column_spec(5:7, bold = T) %>%
    row_spec(3:5, bold = T, color = "white", background = "#D7261E")
    ```

生成的.tex 文件是

    \PassOptionsToPackage{unicode=true}{hyperref} % options for packages loaded elsewhere
    \PassOptionsToPackage{hyphens}{url}
    %
    \documentclass[ignorenonframetext,]{beamer}
    \usepackage{pgfpages}
    \setbeamertemplate{caption}[numbered]
    \setbeamertemplate{caption label separator}{: }
    \setbeamercolor{caption name}{fg=normal text.fg}
    \beamertemplatenavigationsymbolsempty
    % Prevent slide breaks in the middle of a paragraph:
    \widowpenalties 1 10000
    \raggedbottom
    \setbeamertemplate{part page}{
    \centering
    \begin{beamercolorbox}[sep=16pt,center]{part title}
      \usebeamerfont{part title}\insertpart\par
    \end{beamercolorbox}
    }
    \setbeamertemplate{section page}{
    \centering
    \begin{beamercolorbox}[sep=12pt,center]{part title}
      \usebeamerfont{section title}\insertsection\par
    \end{beamercolorbox}
    }
    \setbeamertemplate{subsection page}{
    \centering
    \begin{beamercolorbox}[sep=8pt,center]{part title}
      \usebeamerfont{subsection title}\insertsubsection\par
    \end{beamercolorbox}
    }
    \AtBeginPart{
      \frame{\partpage}
    }
    \AtBeginSection{
      \ifbibliography
      \else
        \frame{\sectionpage}
      \fi
    }
    \AtBeginSubsection{
      \frame{\subsectionpage}
    }
    \usepackage{lmodern}
    \usepackage{amssymb,amsmath}
    \usepackage{ifxetex,ifluatex}
    \usepackage{fixltx2e} % provides \textsubscript
    \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
      \usepackage[T1]{fontenc}
      \usepackage[utf8]{inputenc}
      \usepackage{textcomp} % provides euro and other symbols
    \else % if luatex or xelatex
      \usepackage{unicode-math}
      \defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
    \fi
    % use upquote if available, for straight quotes in verbatim environments
    \IfFileExists{upquote.sty}{\usepackage{upquote}}{}
    % use microtype if available
    \IfFileExists{microtype.sty}{%
    \usepackage[]{microtype}
    \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
    }{}
    \IfFileExists{parskip.sty}{%
    \usepackage{parskip}
    }{% else
    \setlength{\parindent}{0pt}
    \setlength{\parskip}{6pt plus 2pt minus 1pt}
    }
    \usepackage{hyperref}
    \hypersetup{
                pdftitle={My report},
                pdfborder={0 0 0},
                breaklinks=true}
    \urlstyle{same}  % don't use monospace font for urls
    \newif\ifbibliography
    \setlength{\emergencystretch}{3em}  % prevent overfull lines
    \providecommand{\tightlist}{%
      \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
    \setcounter{secnumdepth}{0}

    % set default figure placement to htbp
    \makeatletter
    \def\fps@figure{htbp}
    \makeatother

    \usepackage{booktabs}
    \usepackage{tabu}
    \usepackage{threeparttable}
    \usepackage{threeparttablex}
    \usepackage[normalem]{ulem}
    \usepackage[table]{xcolor}

    \title{My report}
    \date{}

    \begin{document}
    \frame{\titlepage}

    \begin{frame}

    \begin{table}[H]
    \centering
    \begin{tabular}{l|r|r|r|>{\bfseries}r|>{\bfseries}r|>{\bfseries}r}
    \hline
      & mpg & cyl & disp & hp & drat & wt\\
    \hline
    Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
    \hline
    Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
    \hline
    \rowcolor[HTML]{D7261E}  \textcolor{white}{\textbf{Datsun 710}} & \textcolor{white}{\textbf{22.8}} & \textcolor{white}{\textbf{4}} & \textcolor{white}{\textbf{108}} & \textcolor{white}{\textbf{93}} & \textcolor{white}{\textbf{3.85}} & \textcolor{white}{\textbf{2.320}}\\
    \hline
    \rowcolor[HTML]{D7261E}  \textcolor{white}{\textbf{Hornet 4 Drive}} & \textcolor{white}{\textbf{21.4}} & \textcolor{white}{\textbf{6}} & \textcolor{white}{\textbf{258}} & \textcolor{white}{\textbf{110}} & \textcolor{white}{\textbf{3.08}} & \textcolor{white}{\textbf{3.215}}\\
    \hline
    \rowcolor[HTML]{D7261E}  \textcolor{white}{\textbf{Hornet Sportabout}} & \textcolor{white}{\textbf{18.7}} & \textcolor{white}{\textbf{8}} & \textcolor{white}{\textbf{360}} & \textcolor{white}{\textbf{175}} & \textcolor{white}{\textbf{3.15}} & \textcolor{white}{\textbf{3.440}}\\
    \hline
    \end{tabular}
    \end{table}

    \end{frame}

    \end{document}


【问题讨论】:

  • 你可以试试classoption: xcolor={table}
  • 你能显示生成的 .tex 文件吗?
  • 正确用法是classoption: xcolor=table #(不需要花括号)
  • {} 以防您想将更多选项传递给 xcolor,例如xcolor={table,svgnames},只有一个选项确实不需要它们

标签: r-markdown beamer


【解决方案1】:

使用来自@samcarter 的非常有用的评论,我找到了确切的答案。我所需要的只是我的 rmarkdown 文档中的以下 yaml 标头:

    ---
    title: "My report"
    output: 
      beamer_presentation:
        keep_tex: true
    classoption: xcolor=table
    header-includes:
      - \usepackage{booktabs}
      - \usepackage{tabu}
      - \usepackage{threeparttable}
      - \usepackage{threeparttablex}
      - \usepackage[normalem]{ulem}
    ---

【讨论】:

    【解决方案2】:

    要使用 table xcolor 选项并打开投影仪,可以将其传递给文档类。在传统乳胶中

    \documentclass[xcolor={table}]{beamer}
    

    对于markdownhttps://bookdown.org/yihui/rmarkdown/pdf-document.html#latex-options建议on可以使用

     classoption: xcolor={table}
    

    【讨论】:

      猜你喜欢
      • 2010-12-13
      • 2017-12-07
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多