Beamer Rmarkdown,更改备份幻灯片的幻灯片计数 [英] Beamer Rmarkdown, changing slide count for backup slides

查看:26
本文介绍了Beamer Rmarkdown,更改备份幻灯片的幻灯片计数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试解决这个问题,但在 Rmarkdown beamer 演示文稿中:

I am trying to implement this question but in an Rmarkdown beamer presentation:

https://tex.stackexchange.com/questions/70448/dont-count-backup-幻灯片

谁能帮帮我?当我尝试将 TeX 放入 markdown 时,经常会遇到各种错误:

Can anyone help me out? When I try to put the TeX into the markdown, I get all kinds of errors, often:

    ! Missing endgroup inserted.
<inserted text> 
                endgroup 
l.437 end{frame}

pandoc: Error producing PDF
Error: pandoc document conversion failed with error 43
Execution halted

为了给出示例代码,我在乳胶序言中运行:

To give example code, I run this in the latex preamble:

usepackage{appendixnumberbeamer}

然后在Rmarkdown中:

Then in the Rmarkdown:

###Slide 1

Text here

###Slide 2

Text here

appendix

###First extension slide

Text here

####Second Extension Slide

Text here

推荐答案

appendixnumberbeamer 包破坏了默认的 pandoc 模板,特别是当节标题存在时,以下条件块中的节:

The package appendixnumberbeamer is breaking the default pandoc template, specifically the section in the following conditional block when section titles exist:

$if(section-titles)$
AtBeginPart{
  letinsertpartnumber
elax
  letpartname
elax
  frame{partpage}
}
AtBeginSection{
  ifbibliography
  else
    letinsertsectionnumber
elax
    letsectionname
elax
    frame{sectionpage}
  fi
}
AtBeginSubsection{
  letinsertsubsectionnumber
elax
  letsubsectionname
elax
  frame{subsectionpage}
}
$endif$

您可以选择修改模板以满足您的需要,您可以使用命令 pandoc -D beamer 找到一个副本.然后在 rmarkdown 文档的 YAML 中包含模板 (.tex).

You could choose to modify the template to suit your needs, you can find a copy with the command pandoc -D beamer. Then include the template (.tex) in the YAML of your rmarkdown document.

如果您不想过多地使用模板来满足您的特定需求,我会提供一个更简单的解决方案.即对模板进行微小的更改,并为最后一张正常"幻灯片和附录的第一张手动设置帧计数器.

I offer a more simple solution, if you do not want to muck around too much with the template to suit your specific needs. That is to make minor changes to the template and manually set the frame counter for the last 'normal' slide and first of your appendix.

我已经包含了lipsum,以使示例更完整,但不是必需的.

I've included lipsum to make the example more complete, though not required.

usepackage{appendixnumberbeamer}
usepackage{lipsum}

my_template.tex

documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$babel-lang$,$endif$$if(handout)$handout,$endif$$if(colorlinks)$dvipsnames,$endif$$if(beamer)$ignorenonframetext,$endif$$for(classoption)$$classoption$$sep$,$endfor$]{$documentclass$}
setbeamertemplate{caption}[numbered]
setbeamertemplate{caption label separator}{: }
setbeamercolor{caption name}{fg=normal text.fg}
eamertemplatenavigationsymbols$if(navigation)$$navigation$$else$empty$endif$
$if(fontfamily)$
usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$}
$else$
usepackage{lmodern}
$endif$
usepackage{amssymb,amsmath}
usepackage{ifxetex,ifluatex}
usepackage{fixltx2e} % provides 	extsubscript
ifnum 0ifxetex 1fiifluatex 1fi=0 % if pdftex
  usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc}
  usepackage[utf8]{inputenc}
$if(euro)$
  usepackage{eurosym}
$endif$
else % if luatex or xelatex
  ifxetex
    usepackage{mathspec}
  else
    usepackage{fontspec}
  fi
  defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
$for(fontfamilies)$
  
ewfontfamily{$fontfamilies.name$}[$fontfamilies.options$]{$fontfamilies.font$}
$endfor$
$if(euro)$
  
ewcommand{euro}{€}
$endif$
$if(mainfont)$
    setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$}
$endif$
$if(sansfont)$
    setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$]{$sansfont$}
$endif$
$if(monofont)$
    setmonofont[Mapping=tex-ansi$if(monofontoptions)$,$for(monofontoptions)$$monofontoptions$$sep$,$endfor$$endif$]{$monofont$}
$endif$
$if(mathfont)$
    setmathfont(Digits,Latin,Greek)[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
$endif$
$if(CJKmainfont)$
    usepackage{xeCJK}
    setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
$endif$
fi
$if(theme)$
usetheme[$for(themeoptions)$$themeoptions$$sep$,$endfor$]{$theme$}
$endif$
$if(colortheme)$
usecolortheme{$colortheme$}
$endif$
$if(fonttheme)$
usefonttheme{$fonttheme$}
$endif$
$if(mainfont)$
usefonttheme{serif} % use mainfont rather than sansfont for slide text
$endif$
$if(innertheme)$
useinnertheme{$innertheme$}
$endif$
$if(outertheme)$
useoutertheme{$outertheme$}
$endif$
% 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
}{}
$if(lang)$
ifnum 0ifxetex 1fiifluatex 1fi=0 % if pdftex
  usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel}
$if(babel-newcommands)$
  $babel-newcommands$
$endif$
else
  usepackage{polyglossia}
  setmainlanguage[$polyglossia-lang.options$]{$polyglossia-lang.name$}
$for(polyglossia-otherlangs)$
  setotherlanguage[$polyglossia-otherlangs.options$]{$polyglossia-otherlangs.name$}
$endfor$
fi
$endif$

ewififbibliography
$if(natbib)$
usepackage{natbib}
ibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$}
$endif$
$if(biblatex)$
usepackage[$if(biblio-style)$style=$biblio-style$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex}
$for(bibliography)$
addbibresource{$bibliography$}
$endfor$
$endif$
$if(verbatim-in-note)$
usepackage{fancyvrb}
$endif$
hypersetup{
$if(title-meta)$
            pdftitle={$title-meta$},
$endif$
$if(author-meta)$
            pdfauthor={$author-meta$},
$endif$
$if(keywords)$
            pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$},
$endif$
$if(colorlinks)$
            colorlinks=true,
            linkcolor=$if(linkcolor)$$linkcolor$$else$Maroon$endif$,
            citecolor=$if(citecolor)$$citecolor$$else$Blue$endif$,
            urlcolor=$if(urlcolor)$$urlcolor$$else$Blue$endif$,
$else$
            pdfborder={0 0 0},
$endif$
            breaklinks=true}
urlstyle{same}  % don't use monospace font for urls
$if(verbatim-in-note)$
VerbatimFootnotes % allows verbatim text in footnotes
$endif$
$if(listings)$
usepackage{listings}
$endif$
$if(lhs)$
lstnewenvironment{code}{lstset{language=Haskell,basicstyle=small	tfamily}}{}
$endif$
$if(highlighting-macros)$
$highlighting-macros$
$endif$
$if(tables)$
usepackage{longtable,booktabs}
usepackage{caption}
% These lines are needed to make table captions work with longtable:
makeatletter
deffnum@table{	ablename~	hetable}
makeatother
$endif$
$if(graphics)$
usepackage{graphicx,grffile}
makeatletter
defmaxwidth{ifdimGin@nat@width>linewidthlinewidthelseGin@nat@widthfi}
defmaxheight{ifdimGin@nat@height>	extheight0.8	extheightelseGin@nat@heightfi}
makeatother
% Scale images if necessary, so that they will not overflow the page
% margins by default, and it is still possible to overwrite the defaults
% using explicit options in includegraphics[width, height, ...]{}
setkeys{Gin}{width=maxwidth,height=maxheight,keepaspectratio}
$endif$

% Prevent slide breaks in the middle of a paragraph:
widowpenalties 1 10000

aggedbottom

% comment out the breaking section of the standard template
%$if(section-titles)$
%AtBeginPart{
%  letinsertpartnumber
elax
%  letpartname
elax
%  frame{partpage}
%}
%AtBeginSection{
%  ifbibliography
%  else
%    letinsertsectionnumber
elax
%    letsectionname
elax
%    frame{sectionpage}
%  fi
%}
%AtBeginSubsection{
%  letinsertsubsectionnumber
elax
%  letsubsectionname
elax
%  frame{subsectionpage}
%}
%$endif$

$if(links-as-notes)$
% Make links footnotes instead of hotlinks:

enewcommand{href}[2]{#2footnote{url{#1}}}
$endif$
$if(strikeout)$
usepackage[normalem]{ulem}
% avoid problems with sout in headers with hyperref:
pdfstringdefDisableCommands{
enewcommand{sout}{}}
$endif$
setlength{parindent}{0pt}
setlength{parskip}{6pt plus 2pt minus 1pt}
setlength{emergencystretch}{3em}  % prevent overfull lines
providecommand{	ightlist}{%
  setlength{itemsep}{0pt}setlength{parskip}{0pt}}
$if(numbersections)$
setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$}
$else$
setcounter{secnumdepth}{0}
$endif$
$if(dir)$
ifxetex
  % load bidi as late as possible as it modifies e.g. graphicx
  $if(latex-dir-rtl)$
  usepackage[RTLdocument]{bidi}
  $else$
  usepackage{bidi}
  $endif$
fi
ifnum 0ifxetex 1fiifluatex 1fi=0 % if pdftex
  TeXXeTstate=1
  
ewcommand{RL}[1]{eginR #1endR}
  
ewcommand{LR}[1]{eginL #1endL}
  
ewenvironment{RTL}{eginR}{endR}
  
ewenvironment{LTR}{eginL}{endL}
fi
$endif$
$for(header-includes)$
$header-includes$
$endfor$

$if(title)$
	itle{$title$}
$endif$
$if(subtitle)$
subtitle{$subtitle$}
$endif$
$if(author)$
author{$for(author)$$author$$sep$ and $endfor$}
$endif$
$if(institute)$
institute{$for(institute)$$institute$$sep$ and $endfor$}
$endif$
date{$date$}
$if(titlegraphic)$
	itlegraphic{includegraphics{$titlegraphic$}}
$endif$
$if(logo)$
logo{includegraphics{$logo$}}
$endif$

egin{document}
$if(title)$
frame{	itlepage}
$endif$

$for(include-before)$
$include-before$

$endfor$
$if(toc)$
egin{frame}
	ableofcontents[hideallsubsections]
end{frame}

$endif$
$body$

$if(natbib)$
$if(bibliography)$
$if(biblio-title)$
$if(book-class)$

enewcommandibname{$biblio-title$}
$else$

enewcommand
efname{$biblio-title$}
$endif$
$endif$
egin{frame}[allowframebreaks]{$biblio-title$}
ibliographytrue
ibliography{$for(bibliography)$$bibliography$$sep$,$endfor$}
end{frame}

$endif$
$endif$
$if(biblatex)$
egin{frame}[allowframebreaks]{$biblio-title$}
ibliographytrue
printbibliography[heading=none]
end{frame}

$endif$
$for(include-after)$
$include-after$

$endfor$
end{document}

my_rmarkdown.Rmd

---
output:
  beamer_presentation:
    theme: Madrid
    includes:
      in_header: my_header.tex
    template: my_template.tex
---

### Slide 1

lipsum[1]

### Slide 2

lipsum[2]
appendix
setcounter{framenumber}{2}

### First extension slide

setcounter{framenumber}{1}
lipsum[3]

### Second Extension Slide

lipsum[4]

这将为您提供页码 1/2、2/2、1/2、2/2.

This will give you page numbering 1/2, 2/2, 1/2, 2/2.

这篇关于Beamer Rmarkdown,更改备份幻灯片的幻灯片计数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆