#!/bin/sh # # mmd2tex-xslt --- MultiMarkdown convenience script # # Copyright (c) 2010-2011 Fletcher T. Penney # # Pass arguments on to the binary to convert text to LaTeX # using XSLT files after first converting to XHTML # # Be sure to include multimarkdown in our PATH export PATH="/usr/local/bin:$PATH" # Locate XSLT directory xslt_path=`dirname "$0"` # Define subroutine to find proper XSLT to use chooseXsltForFilename() { # Is stylesheet defined for LaTeX? mode=`multimarkdown -e latexxslt "$1"` if [ "$mode" = "" ] then # If not, then look for LaTeX mode mode=`multimarkdown -e latexmode "$1"` if [ "$mode" = "memoir" ] then # Use memoir echo "memoir.xslt" else if [ "$mode" = "beamer" ] then # Use beamer echo "beamer.xslt" else # Use default latex echo "xhtml2latex.xslt" fi fi else # Trim extension if present mode=`echo $mode|cut -d. -f1 ` echo "$mode.xslt" fi } if [ $# = 0 ] then # No arguments, so use stdin/stdout # Need a temporary file rm mmdtempXXXX.txt 2> /dev/null file_name=`mktemp mmdtempXXXX.txt` cat > $file_name # Determine stylesheet to use mode=`chooseXsltForFilename "$file_name"` multimarkdown "$file_name" | xsltproc -nonet -novalid "$xslt_path/../XSLT/$mode" - shift rm $file_name else until [ "$*" = "" ] do # process each argument separately file_name=`echo $1| sed 's/\.[^.]*$//'` # Determine stylesheet to use mode=`chooseXsltForFilename "$1"` multimarkdown "$1" | xsltproc -nonet -novalid "$xslt_path/../XSLT/$mode" - > "$file_name.tex" shift done fi