Convert markdown to modern slide show or a4paper book. Combining the very light weight markdown language with all the power of LaTeX.
About The Project β’ Getting Started β’ License β’ Literature
Table of Contents
Formulating everything you need in markdown is very light weight and efficient.
This can be an enormous productivity bust for oneself. Nevertheless one would miss the power of LaTeX
with its unique ecosystem which is perfect for writing scientific content (paper, books, presentation).
This project is using the amazing pandoc library which is the exact right tool to combine both worlds.
You can immediately get started an use my customized templates for generating nice
looking books, papers or presentations. I provide detailed steps how to use it and
how to reproduce everything. The main environment is containerized thanks to Docker.
Therefore everything can much simpler be reproduced.
What is nicer than writing in pure, simple markdown?
No worries about latex but with all the power of it!
Feature | Implement Status |
---|---|
Docker image, make everything reproducible | βοΈ |
LaTeX templates | βοΈ |
Comprehensive python scripts | βοΈ |
This enumeration also includes submodules.
For my beamer latex project I use the following latex templates:
-
beamerthemeawesome theme from LukasPietzschmann as a starting point and customized it for my needs.
-
smile theme from LukasPietzschmann as a starting point and customized it for my needs.
-
Roboto font just a very nice font
For building my docker image I use sth. like this:
docker build . -t pandoc_all
Command works in powershell but not on cmd.
cd mdToPdf
docker run -it --rm -v ${PWD}/md2pdfLib:/md2pdfLib -v ${PWD}/data:/data --name mypandoc -h mypandoc pandoc_all
Tested on ubuntu. Fedora etc. might have little differences. Idk
cd mdToPdf
docker run -it --rm -v ${PWD}/md2pdfLib:/md2pdfLib -v ${PWD}/data:/data --name mypandoc -h mypandoc pandoc_all
Place all .md files in the data/presentation/chapters/ folder
Run following command at the very first time and whenever you change your .sty files (this updates the latex repo):
chmod +x md2pdfLib/presentation/scripts/update_own_sty.sh
./md2pdfLib/presentation/scripts/update_own_sty.sh
python3 md2pdfLib/presentation/scripts/md2beamerpdf.py 2>&1 | tee data/out/beamer.log
If no glossary is needed one can just run the following command:
OUTPUT_NAME=output.pdf
python3 md2pdfLib/book/scripts/md2pdf.py $OUTPUT_NAME 2>&1 | tee data/out/book.log
For now we must invoke lualatex by ourselves if we want to print latex gloassary entries. Therefore the workflow changes to the following: Execute the bash script for making life easy:
chmod +x md2pdfLib/book/scripts/compile_with_glossaries_and_nomenclature.sh
./md2pdfLib/book/scripts/compile_with_glossaries_and_nomenclature.sh
or run steps manually:
# CHANGE TO OUTPUT TO .tex in this script first
# then call this script to export a .tex file
python3 md2pdfLib/book/scripts/md2pdf.py 2>&1 | tee data/out/book.log
# assuming the output is named book_output.tex
lualatex data/out/book_output.tex
makeglossaries book_output
makeindex book_output.nlo -s nomencl.ist -o book_output.nls
lualatex data/out/book_output.tex
lualatex data/out/book_output.tex
cd data/cv
lualatex cv.tex
- Clone the repo
git clone --recurse-submodules [email protected]:Kataglyphis/mdToPdf.git
This project aims to provide an unique style for the pdf layouts. Therefore I had to produce my own pandoc template.latex file. The following steps are guiding you through the customization steps so you can reproduce everything:
I assume you already cloned the repo and the terminal points to the directory.
- export standart .latex file used by pandoc:
pandoc -D latex > md2pdfLib/presentation/pandoc/custom.tex
- Delete ignorenonframetext out of the \documentclass options.
- Add custom colors right before \usetheme (in my case my favorite \definecolor{myGreenAccent}{RGB}{105, 240, 174})
Upcoming :)
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Jonas Heinle - @Cataglyphis_ - [email protected]
Project Link: https://github.com/Kataglyphis/...
Huge shoutout to Lukas Pietzschmann for his latex template.
Some very helpful literature, tutorials, etc.
LaTeX
Pandoc