From 095e19700e067f2334d1fc36af8cb267193e9bdc Mon Sep 17 00:00:00 2001 From: "uni@bor.mac" Date: Wed, 2 Oct 2024 01:30:22 +0200 Subject: [PATCH] first draft mkparallel.sh --- mkparallel.sh | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++ parallel.conf | 13 ++++++ 2 files changed, 122 insertions(+) create mode 100755 mkparallel.sh create mode 100644 parallel.conf diff --git a/mkparallel.sh b/mkparallel.sh new file mode 100755 index 0000000..41cf1a2 --- /dev/null +++ b/mkparallel.sh @@ -0,0 +1,109 @@ +#!/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]{$DOCCLASS} +\usepackage[fontsize=${FONTSIZE}pt]{fontsize} +\usepackage[${PAGESIZE}paper]{geometry} +\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{csquotes} % \enquote +\usepackage{reledmac} % needed for repedpar +\usepackage{reledpar} % parallel text +\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} +\maketitle +\tableofcontents +""" +WRAPPER_END=""" +\end{document} +""" + +echo "$WRAPPER" > $PROJECT.tex +# INCLUDE INDIVIDUAL TEX FILE +first_lang="true" +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 + + fi + else + #is chapter + echo '\chapter' " { $input }" >> $PROJECT.tex + fi + echo '\clearpage' >> $PROJECT.tex +done +echo "$WRAPPER_END" >> $PROJECT.tex + +# CREATE PDF +$LATEX_ENGINE $PROJECT.tex 2&> /dev/null +$LATEX_ENGINE $PROJECT.tex 2&> /dev/null +# $LATEX_ENGINE $PROJECT.tex +popd > /dev/null +cp -r $TMPDIR $WD/$PROJECT +echo "File $PROJECT.pdf created at $WD/$PROJECT/" +rm -rf $TMPDIR diff --git a/parallel.conf b/parallel.conf new file mode 100644 index 0000000..bd7b088 --- /dev/null +++ b/parallel.conf @@ -0,0 +1,13 @@ +LATEX_ENGINE="pdflatex" +DOCCLASS="memoir" +DOCCLASS_EXTRA="twoside" +FONTSIZE="10" +PAGESIZE="a5" +PROJECT="asem" +TITLE="Nsɛm wɔ Twi ne Brɔfo\\\LARGE Texts in Twi and English" +AUTHOR="" +INFILES=""" +Anansesem - Ghanaian Folk Tales +testfiles/parallel-ak.md +testfiles/parallel-en.md +"""