Невозможно использовать блок2 в Rmarkdown для pdf

#r #bookdown

#r #bookdown

Вопрос:

Я пытаюсь использовать block2 для создания блока, такого как warning или important .

 ```{block2, type='rmdimportant'}
Some text in the important block.

```
  

Я получаю следующую ошибку:

 output file: Report.knit.md

! Undefined control sequence.
kframe ...argin hskip columnwidth }MakeFramed 
                                                  {advance hsize -width ...
l.882 BeginKnitrBlock{rmdimportant}

Error: Failed to compile Report.tex. See Report.log for more info.
Execution halted
  

Нужно ли мне что-то устанавливать в R?

Контекст:

  • Я использовал значения по умолчанию style.css и preamble.tex , предоставленные bookdown (см. Ниже).
  • .rmdimportant определено в style.css .
  • preamble.tex содержит newenvironment{rmdimportant} .

Я использовал следующее preamble.tex (было запрошено):

 usepackage{booktabs}
usepackage{longtable}
usepackage{array}
usepackage{multirow}
usepackage[table]{xcolor}
usepackage{wrapfig}
usepackage{float}
usepackage{colortbl}
usepackage{pdflscape}
usepackage{tabu}
usepackage{threeparttable}
usepackage{threeparttablex}
usepackage[normalem]{ulem}
usepackage{makecell}
usepackage{graphicx}
usepackage{fancyhdr}
%usepackage[ngerman]{babel}

%%%%%%%%The footer on every page
pagestyle{fancy}
fancyfoot{centeringfootnotesizeupshape We reserve all rights in this document and in the information contained therein.  Reproduction, use or disclosure to third parties without express authority is strictly forbidden. * 2018 ABB Schweiz AG}
pagestyle{headings}

%%%%%%%%%Slect the font you want to use
%http://www.tug.dk/FontCatalogue/montserratlight/
%usepackage[defaultfam,light,tabular,lining]{montserrat} %% Option 'defaultfam'
%% only if the base font of the document is to be sans serig
%usepackage[T1]{fontenc}
%renewcommand*oldstylenums[1]{{fontfamily{Montserrat-TOsF}selectfont #1}}

%%%%%%%%The custom rmdnote, rmdinfo etc parts of the pdf.
makeatletter
newenvironment{kframe}{%
medskip{}
setlength{fboxsep}{.8em}
 defat@end@of@kframe{}%
 ifinnerifhmode%
  defat@end@of@kframe{end{minipage}}%
  begin{minipage}{columnwidth}%
 fifi%
 defFrameCommand##1{hskip@totalleftmargin hskip-fboxsep
 colorbox{shadecolor}{##1}hskip-fboxsep
     % There is no \@totalrightmargin, so:
     hskip-linewidth hskip-@totalleftmargin hskipcolumnwidth}%
 MakeFramed {advancehsize-width
   @totalleftmarginz@ linewidthhsize
   @setminipage}}%
 {parunskipendMakeFramed%
 at@end@of@kframe}
makeatother

makeatletter
@ifundefined{Shaded}{
}{renewenvironment{Shaded}{begin{kframe}}{end{kframe}}}
makeatother

newenvironment{rmdblock}[1]
  {
  begin{itemize}
  renewcommand{labelitemi}{
    raisebox{-.7height}[0pt][0pt]{
      {setkeys{Gin}{width=3em,keepaspectratio}includegraphics{images/#1}}
    }
  }
  setlength{fboxsep}{1em}
  begin{kframe}
  item
  }
  {
  end{kframe}
  end{itemize}
  }
newenvironment{rmdnote}
  {begin{rmdblock}{note}}
  {end{rmdblock}}
newenvironment{rmdcaution}
  {begin{rmdblock}{caution}}
  {end{rmdblock}}
newenvironment{rmdimportant}
  {begin{rmdblock}{important}}
  {end{rmdblock}}
newenvironment{rmdtip}
  {begin{rmdblock}{tip}}
  {end{rmdblock}}
newenvironment{rmdwarning}
  {begin{rmdblock}{warning}}
  {end{rmdblock}}
  

Комментарии:

1. Можете ли вы включить свой preamble.tex ? Файл CSS вам нужен только при компиляции в HTML; поскольку вы компилируете в PDF style.css и его содержимое игнорируется. Важно, что rmdimportant определено в preamble.tex .

2. Привет, Мауриц! Это файл по умолчанию, длиной в 88 строк. Как я должен это включить? Он содержит инструкцию как таковую: newenvironment{rmdimportant} {begin{rmdblock}{important}} {end{rmdblock}}

3. Я скопировал вставленную преамбулу в вопрос.