#!/bin/bash # CREATE PDF from markdown files # #set -x set -e if [ $# -eq 1 ] then CONF=$1 else CONF="parallel.conf" fi CONVERTER="md2parallel.sh" if ! [[ -f $CONF ]] ; then echo "$CONF not found! Exiting ..." && exit ; fi if ! [[ -f $CONVERTER ]] ; then echo "$CONVERTER not found! Exiting ..." && exit ; fi if ! [[ -x $CONVERTER ]] ; then echo "$CONVERTER not executable! Exiting ..." && exit ; fi . $CONF # SAVE WORKING DIR WD=$PWD TMPDIR=$(mktemp -d) PATH=$PATH:$WD pushd $TMPDIR > /dev/null # CONVERT MD TO TEX for tex in $( echo "$INFILES" | grep '.md$' ) do if [[ -f $WD/$tex ]] then # create parent dir if necassary mkdir -p $(dirname $tex) $CONVERTER $WD/$tex > $( echo $tex | sed "s/.md/.tex/" ) else if [[ $tex == *.md ]] then echo "$WD/$tex does not exist!!!" fi fi done # CREATE WRAPPER WRAPPER=""" \documentclass[twoside,${PAGESIZE}paper]{$DOCCLASS} \usepackage[fontsize=${FONTSIZE}pt]{fontsize} \usepackage{libertine} % also loads fontspec which is needed for ɔ and ɛ %\usepackage{minitoc} % make mini table of content for each chapter \usepackage{graphicx} % include graphics \usepackage{tcolorbox} % https://en.wikipedia.org/wiki/Colophon_(publishing) \usepackage{placeins} % https://tex.stackexchange.com/a/88659/264579 \usepackage{csquotes} % \enquote \usepackage{reledmac} % needed for repedpar \usepackage{reledpar} % parallel text \firstlinenum*{1000} \linenumincrement*{1000} \newcommand{\pagesinclude}[2]{ \begin{pages} \begin{Leftside} \beginnumbering \pstart\input{#1}\pend \endnumbering \end{Leftside} \begin{Rightside} \beginnumbering \pstart\input{#2}\pend \endnumbering \end{Rightside} \end{pages} \Pages } \title{$TITLE} \author{$AUTHOR} \begin{document} """ TITLE_PAGE=""" %\date{} %\maketitle %%% \begin{titlingpage} %This starts the title page \begin{center} % ~ \vspace{2cm} %put the distance you need. % ~ \begin{HUGE} \thetitle \\ \end{HUGE} \vspace{3cm} %put the distance you need. \begin{large} \theauthor\\ \end{large} %\thedate \begin{figure}[hb] \centering % \includegraphics[width=\adinkrawidth]{img/sankofa.jpeg} \end{figure} % \vspace{3cm} %put the distance you need. % \begin{figure}[hb] % \centering %% \includegraphics[width=.2\textwidth]{img/ghana_flag.jpeg} % \end{figure} \end{center} \end{titlingpage} %%% """ COLOPHON=""" \cleardoublepage \thispagestyle{empty} \begin{vplace}[0.7] \begin{centering} \begin{huge} \thetitle \end{huge} \\ \vspace{3cm} \begin{LARGE} \begin{tcolorbox}[width=.5\textwidth] \centering % \texttt{AQO}\\ % \texttt{ABA}\\ % \texttt{~\newline AQO\newline ABA\newline}%\\ \texttt{$PUBLISHER} \end{tcolorbox} \end{LARGE} % \includegraphics[width=.3\textwidth]{img/onipa_logo.png} \vspace{2cm} \par\noindent\rule{\textwidth}{0.4pt} \large { \the\year{} }\\ $EDITION\\ \end{centering} \end{vplace} \clearpage """ TOC=""" \cleardoublepage \tableofcontents """ WRAPPER_END=""" \end{document} """ echo "$WRAPPER" > $PROJECT.tex echo "$TITLE_PAGE" >> $PROJECT.tex echo "$COLOPHON" >> $PROJECT.tex echo "$TOC" >> $PROJECT.tex # INCLUDE INDIVIDUAL TEX FILE first_lang="true" IFS_OLD=$IFS IFS=$'\n' for input in $INFILES do if [[ $input == *.md ]] then if [[ $first_lang == "true" ]] ; then echo '\pagesinclude' "{ $( echo $input | sed 's/.md/.tex/' ) }" >> $PROJECT.tex first_lang="false" else echo "{ $( echo $input | sed 's/.md/.tex/' ) }" >> $PROJECT.tex echo '\clearpage' >> $PROJECT.tex fi else #is chapter echo '\chapter' " { $input }" >> $PROJECT.tex fi done IFS=$IFS_OLD echo "$WRAPPER_END" >> $PROJECT.tex # CREATE PDF echo $TMPDIR $LATEX_ENGINE $PROJECT.tex # 2&> /dev/null $LATEX_ENGINE $PROJECT.tex # 2&> /dev/null # $LATEX_ENGINE $PROJECT.tex popd > /dev/null rm -rf $WD/$PROJECT cp -r $TMPDIR $WD/$PROJECT/ echo "File $PROJECT.pdf created at $WD/$PROJECT/" rm -rf $TMPDIR