65 lines
1.4 KiB
Text
65 lines
1.4 KiB
Text
|
#!/bin/sh -e
|
||
|
# converts markdown to latex, then uses latex to make a PDF
|
||
|
|
||
|
REQUIRED=pdflatex
|
||
|
|
||
|
### common.sh
|
||
|
|
||
|
outfile=
|
||
|
while getopts o:h opt; do
|
||
|
case $opt in
|
||
|
o) outfile="$OPTARG" ;;
|
||
|
h|?) usage "[-o output_file] [-h] [input_file]..."; exit 2 ;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
shift $(($OPTIND - 1))
|
||
|
|
||
|
### postopts.sh
|
||
|
|
||
|
### checkin.sh
|
||
|
|
||
|
if [ -z "$outfile" ]; then
|
||
|
if [ -n "$1" ]; then
|
||
|
outfile="${1%.*}"
|
||
|
else
|
||
|
outfile="stdin" # input is STDIN, since no argument given
|
||
|
fi
|
||
|
fi
|
||
|
case "$outfile" in
|
||
|
*.*) ;; # skip appending extension if one is already present
|
||
|
*) outfile="${outfile%.*}.pdf";;
|
||
|
esac
|
||
|
|
||
|
### tempdir.sh
|
||
|
|
||
|
# We should use a filename without white spaces for pdflatex.
|
||
|
TEXNAME=$THIS
|
||
|
|
||
|
to_utf8 "$@" | runpandoc -w latex -s >$THIS_TEMPDIR/$TEXNAME.tex
|
||
|
(
|
||
|
cd $THIS_TEMPDIR
|
||
|
if ! pdflatex -interaction=batchmode $TEXNAME.tex >/dev/null 2>&1; then
|
||
|
err "LaTeX errors:"
|
||
|
from_utf8 $TEXNAME.log | sed -ne '/^!/,/^ *$/p' >&2
|
||
|
if grep -q "File \`ucs.sty' not found" $TEXNAME.log; then
|
||
|
err "Please install the 'unicode' package from ctan.org."
|
||
|
fi
|
||
|
exit 1
|
||
|
fi
|
||
|
)
|
||
|
|
||
|
is_target_exists=
|
||
|
if [ -f "$outfile" ]; then
|
||
|
is_target_exists=1
|
||
|
mv -f "$outfile" "$outfile~"
|
||
|
fi
|
||
|
|
||
|
mv -f $THIS_TEMPDIR/$TEXNAME.pdf "$outfile"
|
||
|
|
||
|
errn "Created '$outfile'"
|
||
|
[ -z "$is_target_exists" ] || {
|
||
|
errn " (previous file has been backed up as '$outfile~')"
|
||
|
}
|
||
|
err .
|