Commit 85a0d339 authored by Bernhard Heinloth's avatar Bernhard Heinloth
Browse files

add Markdown support

parent c188aea9
Pipeline #28364 passed with stage
in 37 seconds
......@@ -5,6 +5,8 @@ FONTS_DIR = $(LOCAL_DIR)/fonts
CACHE_DIR = $(LOCAL_DIR)/.latex-cache
PDFPC_SIZE = 40000
PANDOC_TEMPLATE = $(LOCAL_DIR)/markdown.beamer
PACKAGE_SRC = $(wildcard $(PACKAGE_DIR)/*.dtx)
PACKAGE_STY = $(notdir $(PACKAGE_SRC:%.dtx=%.sty))
PACKAGE_TGT = $(addprefix $(LOCAL_DIR)/,$(PACKAGE_STY))
......@@ -45,13 +47,15 @@ $(CACHE_DIR):; @mkdir -p $(CACHE_DIR)
@cp $(CACHE_DIR)/$(notdir $*_handout.synctex.gz) $*_handout.synctex.gz
@test ! -f $@pc -a -f $(CACHE_DIR)/$(notdir $@)pc && ( /bin/echo "[file]"; /bin/echo "$@"; /bin/echo "[font_size]"; /bin/echo "$(PDFPC_SIZE)"; cat $(CACHE_DIR)/$(notdir $@)pc | sed 's/\\\\/\n/g' | sed 's/\\par/\n\n/g' ) > $@pc || echo "ignoring PDFPC file" && exit 0
%.pdf: %.tex $(wildcard *.bib) $(PACKAGE_TGT) $(CACHE_DIR)
@cd $(dir $< ) && $(COMPILE_TEX) $(notdir $<)
@cp $(CACHE_DIR)/$(notdir $@) $@
@cp $(CACHE_DIR)/$(notdir $*.synctex.gz) $*.synctex.gz
@test ! -f $@pc -a -f $(CACHE_DIR)/$(notdir $@)pc && ( /bin/echo "[file]"; /bin/echo "$@"; /bin/echo "[font_size]"; /bin/echo "$(PDFPC_SIZE)"; cat $(CACHE_DIR)/$(notdir $@)pc | sed 's/\\\\/\n/g' | sed 's/\\par/\n\n/g' ) > $@pc || echo "ignoring PDFPC file" && exit 0
%.tex: %.md $(PANDOC_TEMPLATE)
pandoc $< --natbib --slide-level=2 --to=beamer --template="$(PANDOC_TEMPLATE)" --to=beamer | sed -e "s/\\\\citep{/\\\\cite{/g" > $@
preview-%: %.tex $(wildcard *.bib) $(PACKAGE_TGT) $(CACHE_DIR)
@cd $(dir $< ) && $(COMPILE_TEX) $(notdir $<) -pvc -interaction=nonstopmode -view=pdf
......
# i4neo Beamertheme
**neo** soll ein einfacher und moderner Ersatz für das (optisch) bereits in die Jahre gekommene i4 Latex-Beamertheme werden.
Ziel ist eine gemeinsame Vorlage sowohl für Vorlesungs- und Übungsfolien als auch für externe (Konferenz-)Präsentationen, ohne unnötige oder redundante Störelemente.
**neo** ist ein einfacher und moderner Ersatz für das (optisch) bereits in die Jahre gekommene [i4 Latex-Beamertheme](https://gitlab.cs.fau.de/i4/tex/i4beamer).
Ziel war eine gemeinsame Vorlage sowohl für Vorlesungs- und Übungsfolien als auch für externe (Konferenz-)Präsentationen, ohne unnötige oder redundante Störelemente.
Die Vorlage ist eine Modifikation von [Matthias Vogelgesang](http://bloerg.net/2014/09/20/a-modern-beamer-theme.html)s [Metropolis](https://github.com/matze/mtheme) (auch als [CTAN-Paket](http://ctan.org/pkg/beamertheme-metropolis) verfügbar).
## Verwendung
Die `STY`-Paketdateien können mittels
......@@ -24,7 +25,8 @@ Eine Makefile im Präsentationsordner kann dazu die entsprechende Theme-Makefile
include theme/Makefile
### Minimales Beispiel
### Minimales Beispiel in LaTeX
```latex
\documentclass{beamer}
......@@ -44,10 +46,34 @@ Eine Makefile im Präsentationsordner kann dazu die entsprechende Theme-Makefile
Weiterführende Informationen über die Verwendung der Vorlage sind in der [Dokumentation](doc/neotheme.pdf) zu finden.
Ein ausführliches Beispiel wird in [i4neo Demo](https://gitlab.cs.fau.de/i4/tex/i4neo-demo) gezeigt.
### Minimales Beispiel in Markdown
Analog zum vorherigen Beispiel, hier wird jedoch die LaTeX aus Markdown mittels [Pandoc](https://pandoc.org/) generiert
```markdown
---
title: Ein kleines Beispiel
date: \today
author: Wolfgang Händler
institute: Friedrich-Alexander-Universität Erlangen-Nürnberg
---
# Erster Abschnitt
## Erste Folie
Hallo Welt
```
## Hinweise
* Die Verwendung von [XeTeX](https://de.wikipedia.org/wiki/XeTeX) wird wegen den besseren Schriftsatz der eingebetteten OpenType-[Fira-Schriftfamilie](http://mozilla.github.io/Fira/) empfohlen.
## Lizenz
Die Vorlage selbst ist unter der [Creative Commons Attribution-ShareAlike
......
\PassOptionsToPackage{unicode=true}{hyperref} % options for packages loaded elsewhere
\PassOptionsToPackage{hyphens}{url}
$if(colorlinks)$
\PassOptionsToPackage{dvipsnames,svgnames*,x11names*}{xcolor}
$endif$$if(dir)$$if(latex-dir-rtl)$
\PassOptionsToPackage{RTLdocument}{bidi}
$endif$$endif$%
\documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$babel-lang$,$endif$$if(papersize)$$papersize$paper,$endif$$if(beamer)$$if(handout)$handout,$endif$$if(aspectratio)$aspectratio=$aspectratio$,$endif$$endif$$for(classoption)$$classoption$$sep$,$endfor$]{$documentclass$}
$if(beamer)$
$if(background-image)$
\usebackgroundtemplate{%
\includegraphics[width=\paperwidth]{$background-image$}%
}
$endif$
\usepackage{pgfpages}
\setbeamertemplate{caption}[numbered]
\setbeamertemplate{caption label separator}{: }
\setbeamercolor{caption name}{fg=normal text.fg}
\beamertemplatenavigationsymbols$if(navigation)$$navigation$$else$empty$endif$
$for(beameroption)$
\setbeameroption{$beameroption$}
$endfor$
$endif$
$if(beamerarticle)$
\usepackage{beamerarticle} % needs to be loaded first
$endif$
$if(fontfamily)$
\usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$}
$else$
\usepackage{lmodern}
$endif$
$if(linestretch)$
\usepackage{setspace}
\setstretch{$linestretch$}
$endif$
\usepackage{amssymb,amsmath}
\usepackage{ifxetex,ifluatex}
\usepackage{fixltx2e} % provides \textsubscript
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
\usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{textcomp} % provides euro and other symbols
\else % if luatex or xelatex
$if(mathspec)$
\ifxetex
\usepackage{mathspec}
\else
\usepackage{unicode-math}
\fi
$else$
\usepackage{unicode-math}
$endif$
\defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
$for(fontfamilies)$
\newfontfamily{$fontfamilies.name$}[$fontfamilies.options$]{$fontfamilies.font$}
$endfor$
$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)$
$if(mathspec)$
\ifxetex
\setmathfont(Digits,Latin,Greek)[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
\else
\setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
\fi
$else$
\setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
$endif$
$endif$
$if(CJKmainfont)$
\ifxetex
\usepackage{xeCJK}
\setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
\fi
$endif$
$if(luatexjapresetoptions)$
\ifluatex
\usepackage[$for(luatexjapresetoptions)$$luatexjapresetoptions$$sep$,$endfor$]{luatexja-preset}
\fi
$endif$
$if(CJKmainfont)$
\ifluatex
\usepackage[$for(luatexjafontspecoptions)$$luatexjafontspecoptions$$sep$,$endfor$]{luatexja-fontspec}
\setmainjfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
\fi
$endif$
\fi
$if(beamer)$
\usetheme[$for(themeoptions)$$themeoptions$$sep$,$endfor$]{neo}
$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$
$endif$
% use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
% use microtype if available
\IfFileExists{microtype.sty}{%
\usepackage[$for(microtypeoptions)$$microtypeoptions$$sep$,$endfor$]{microtype}
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
$if(indent)$
$else$
\IfFileExists{parskip.sty}{%
\usepackage{parskip}
}{% else
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
}
$endif$
$if(verbatim-in-note)$
\usepackage{fancyvrb}
$endif$
$if(colorlinks)$
\usepackage{xcolor}
$endif$
\usepackage{hyperref}
\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(geometry)$
\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
$endif$
\newcommand{\nDarkRed}[1]{\textcolor{nDarkRed}{#1}}
\newcommand{\nDarkGreen}[1]{\textcolor{nDarkGreen}{#1}}
\newcommand{\nDarkBlue}[1]{\textcolor{nDarkBlue}{#1}}
\newcommand{\nDarkCyan}[1]{\textcolor{nDarkCyan}{#1}}
\newcommand{\nDarkYellow}[1]{\textcolor{nDarkYellow}{#1}}
\newcommand{\nDarkGrey}[1]{\textcolor{nDarkGrey}{#1}}
\newcommand{\nRed}[1]{\textcolor{nRed}{#1}}
\newcommand{\nGreen}[1]{\textcolor{nGreen}{#1}}
\newcommand{\nBlue}[1]{\textcolor{nBlue}{#1}}
\newcommand{\nCyan}[1]{\textcolor{nCyan}{#1}}
\newcommand{\nYellow}[1]{\textcolor{nYellow}{#1}}
\newcommand{\nGrey}[1]{\textcolor{nGrey}{#1}}
\newcommand{\nBlack}[1]{\textcolor{nBlack}{#1}}
\newcommand{\nWhite}[1]{\textcolor{nWhite}{#1}}
\newcommand{\nLightRed}[1]{\textcolor{nLightRed}{#1}}
\newcommand{\nLightGreen}[1]{\textcolor{nLightGreen}{#1}}
\newcommand{\nLightBlue}[1]{\textcolor{nLightBlue}{#1}}
\newcommand{\nLightCyan}[1]{\textcolor{nLightCyan}{#1}}
\newcommand{\nLightYellow}[1]{\textcolor{nLightYellow}{#1}}
\newcommand{\nLightGrey}[1]{\textcolor{nLightGrey}{#1}}
$if(listings)$
\usepackage{listings}
\newcommand{\passthrough}[1]{#1}
$endif$
$if(lhs)$
\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
$endif$
$if(highlighting-macros)$
$highlighting-macros$
$endif$
$if(tables)$
\usepackage{longtable,booktabs}
$if(beamer)$
\usepackage{caption}
% These lines are needed to make table captions work with longtable:
\makeatletter
\def\fnum@table{\tablename~\thetable}
\makeatother
$else$
% Fix footnotes in tables (requires footnote package)
\IfFileExists{footnote.sty}{\usepackage{footnote}\makesavenoteenv{longtable}}{}
$endif$
$endif$
$if(graphics)$
\usepackage{graphicx,grffile}
\setkeys{Gin}{keepaspectratio}
$endif$
$if(beamer)$
% Prevent slide breaks in the middle of a paragraph:
\widowpenalties 1 10000
\raggedbottom
$endif$
$if(links-as-notes)$
% Make links footnotes instead of hotlinks:
\DeclareRobustCommand{\href}[2]{#2\footnote{\url{#1}}}
$endif$
$if(strikeout)$
\usepackage[normalem]{ulem}
% avoid problems with \sout in headers with hyperref:
\pdfstringdefDisableCommands{\renewcommand{\sout}{}}
$endif$
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
$if(numbersections)$
\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$}
$else$
\setcounter{secnumdepth}{0}
$endif$
$if(beamer)$
$else$
$if(subparagraph)$
$else$
% Redefines (sub)paragraphs to behave more like sections
\ifx\paragraph\undefined\else
\let\oldparagraph\paragraph
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
\fi
\ifx\subparagraph\undefined\else
\let\oldsubparagraph\subparagraph
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
\fi
$endif$
$endif$
$if(pagestyle)$
\pagestyle{$pagestyle$}
$endif$
% set default figure placement to htbp
\makeatletter
\def\fps@figure{htbp}
\makeatother
$for(header-includes)$
$header-includes$
$endfor$
$if(lang)$
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
\usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel}
$if(babel-newcommands)$
$babel-newcommands$
$endif$
\else
% load polyglossia as late as possible as it *could* call bidi if RTL lang (e.g. Hebrew or Arabic)
\usepackage{polyglossia}
\setmainlanguage[$polyglossia-lang.options$]{$polyglossia-lang.name$}
$for(polyglossia-otherlangs)$
\setotherlanguage[$polyglossia-otherlangs.options$]{$polyglossia-otherlangs.name$}
$endfor$
\fi
$endif$
$if(dir)$
\ifxetex
% load bidi as late as possible as it modifies e.g. graphicx
\usepackage{bidi}
\fi
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
\TeXXeTstate=1
\newcommand{\RL}[1]{\beginR #1\endR}
\newcommand{\LR}[1]{\beginL #1\endL}
\newenvironment{RTL}{\beginR}{\endR}
\newenvironment{LTR}{\beginL}{\endL}
\fi
$endif$
$if(title)$
\title{$title$$if(thanks)$\thanks{$thanks$}$endif$}
$endif$
$if(subtitle)$
\providecommand{\subtitle}[1]{}
\subtitle{$subtitle$}
$endif$
$if(author)$
\author{$for(author)$$author$$sep$ \and $endfor$}
$endif$
$if(institute)$
\providecommand{\institute}[1]{}
\institute{$for(institute)$$institute$$sep$ \and $endfor$}
$endif$
\date{$date$}
$if(beamer)$
$if(titlegraphic)$
\titlegraphic{$for(titlegraphic)$\includegraphics[height=1.2cm]{$titlegraphic$}\hfill $endfor$}
$endif$
$if(logo)$
\logo{\includegraphics{$logo$}}
$endif$
$endif$
\begin{document}
$if(title)$
$if(titletype)$
\maketitle[$titletype$]
$else$
\maketitle
$endif$
$if(abstract)$
\begin{abstract}
$abstract$
\end{abstract}
$endif$
$endif$
$for(include-before)$
$include-before$
$endfor$
$if(toc)$
$if(beamer)$
\begin{frame}{Table of Contents}
\setbeamertemplate{section in toc}[sections numbered]
\tableofcontents[hideallsubsections]
\end{frame}
$else$
{
$if(colorlinks)$
\hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$$endif$}
$endif$
\setcounter{tocdepth}{$toc-depth$}
\tableofcontents
}
$endif$
$endif$
$if(lot)$
\listoftables
$endif$
$if(lof)$
\listoffigures
$endif$
$body$
$if(bibliography)$
$if(beamer)$
\begin{frame}[allowframebreaks]{$biblio-title$}
$if(biblio-style)$
\bibliographystyle{$biblio-style$}
$endif$
$endif$
\bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$}
$if(beamer)$
\end{frame}
$endif$
$endif$
$for(include-after)$
$include-after$
$endfor$
\end{document}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment