diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/pgfplots/pgf2pdf.sh')
-rw-r--r-- | Master/texmf-dist/doc/latex/pgfplots/pgf2pdf.sh | 282 |
1 files changed, 0 insertions, 282 deletions
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgf2pdf.sh b/Master/texmf-dist/doc/latex/pgfplots/pgf2pdf.sh deleted file mode 100644 index 027a6157b77..00000000000 --- a/Master/texmf-dist/doc/latex/pgfplots/pgf2pdf.sh +++ /dev/null @@ -1,282 +0,0 @@ -#!/bin/sh - -TEX_FILE="" -TEX_LOG_FILE="" - -TEX_DEFINES="" - -OLD_DIR=`pwd` - -DRIVER="pdftex" - -ALSO_EPS_OUTPUT=0 -WARN_ONLY_IF_TEXFILE_DOESNOT_INCLUDE_TARGET=0 -VERBOSE_LEVEL=0 - -function dumpHelp() { - echo -e \ - "`basename $0` [OPTIONS] [--texdefs <defsfile> | --mainfile <latexmainfile>.tex ] [plot1.pgf plot2.pgf .... plotn.pgf]\n"\ - "converts each plot*.pgf to plot*.pdf.\n"\ - "This is done by running \n"\ - " latex --jobname plot1 latexmainfile\n"\ - "for each single plot. See the pgfmanual section \"Externalizing graphics\".\n"\ - "Options:\n"\ - "--eps\n"\ - " will also produce eps output files.\n"\ - "--driver D\n"\ - " will use either \"dvipdfm\", \"dvips\" or \"pdflatex\"\n"\ - " please note that only pdflatex works without additional\n"\ - " work.\n"\ - "--mainfile FILE\n"\ - " A tex-file which has been configured for externalized graphics.\n"\ - " Two conditions must be met to perform the conversion of\n"\ - " \"plot.pgf\" -> \"plot.pdf\":\n"\ - " 1. FILE needs the command\n"\ - " \pgfrealjobname{FILE}\n"\ - " (see the pgf manual for details)\n"\ - " 2. It needs to include \"plot.pgf\" somewhere (using \input{plot.pgf})\n"\ - "\n"\ - "--warnonly\n"\ - " Use this flag if the argument of --mainfile does not contain\n"\ - " \input{TARGET.pgf},\n"\ - " i.e. if (2.) is not fulfilled. In this case, the conversion for this\n"\ - " input file will be skipped.\n"\ - "\n"\ - "--texdefs FILE\n"\ - " Generates a temporary tex-file\n"\ - " \documentclass{article}\n"\ - " \input{FILE}\n"\ - " \begin{document}\n"\ - " \input{plot1.pgf}\n"\ - " \end{document}\n"\ - " and converts this one to pdf.\n"\ - " If FILE is '-', the input step is omitted.\n" - "-v\n"\ - " each -v option increases the verbosity.\n"\ - "" - exit 0; -} - - -LONGOPTS="mainfile:,eps,driver:,texdefs:,warnonly" -SHORTOPTS="f:t:v" -ARGS=`getopt -l "$LONGOPTS" "$SHORTOPTS" "$@"` -if [ $? -ne 0 ]; then - echo "`basename $0`: Could not process command line arguments. Use the '--help' option for documentation." - exit 1 -fi - -eval set -- "$ARGS" -while [ $# -gt 0 ]; do - ARG=$1 - # echo "PROCESSING OPTION '$ARG' (next = $@)" - case "$ARG" in - --texdefs|-t) shift; TEX_DEFINES="$1"; shift;; - --driver) shift; DRIVER="$1"; shift;; - --mainfile|-f) shift; TEX_FILE="$1"; TEX_LOG_FILE="${1%%.tex}.log"; shift;; - --eps) shift; ALSO_EPS_OUTPUT=1;; - --warnonly) shift; WARN_ONLY_IF_TEXFILE_DOESNOT_INCLUDE_TARGET=1;; - -v) shift; VERBOSE_LEVEL=$((VERBOSE_LEVEL+1));; - --) shift; break;; - *) break; - esac -done -if [ -n "${TEX_DEFINES}" ]; then - if [ "${TEX_DEFINES:0:1}" != "/" ]; then - TEX_DEFINES=`pwd`/${TEX_DEFINES} - fi -fi - - -if [ $# -ne 0 ]; then - PGF_FILES=("$@") -elif [ -n "${TEX_LOG_FILE}" ]; then - # search for lines with - # (XXXX.pgf - PGF_FILES=(`sed -n '{s/.*(\([a-zA-Z0-9._-+^~]\+\.pgf\).*/\1/g;T ende;p};: ende' < $TEX_LOG_FILE`) - #PGF_FILES=(./errplot_L2.pgf) -else - echo "No input files." 1>&2 - exit 1 -fi - -for A in "${PGF_FILES[@]}"; do - if [ ! -f "$A" ]; then - echo "$A not found: no such file" 1>&2 - exit 1 - fi - - CONTINUE_ON_ERROR=0 - - TARGET_FILE=$(sed -n '{s/.*\\beginpgfgraphicnamed{\(.*\)}.*/\1/g;T ende;p};: ende' < "$A") - if [ $? -ne 0 -o -z "$TARGET_FILE" ]; then - echo "There is no valid \\beginpgfgraphicnamed{TARGET}...\\endpgfgraphicnamed command in $A. Can't be exported to pdf. Please see the PGF manual for details." 1>&2 - exit 1 - fi - echo "processing \"$A\"" 1>&2 - - CMD="latex" - case $DRIVER in - pdftex|pdflatex) - CMD="pdflatex" - ;; - esac - - if [ -z "${TEX_DEFINES}" ]; then - # LaTeX cannot write into a \jobname in another directory. - # But the TEX_FILE and $A may not necessarily be in the same directory! - # - # So, we have to build a work-around which simulates a \jobname in the directory of TEX_FILE - # which does not fool \beginpgfgraphicnamed - - # modify the input file A: - ORIGINAL_FILE="$A.orig" - mv "$A" "$ORIGINAL_FILE" || exit 1 - cat - "$ORIGINAL_FILE" >"$A" <<-EOF - \let\tmpXXXXXZEUGoldjobname=\jobname - \def\jobname{${TARGET_FILE}}% - \message{PGF2PDF: TEX HAS ENTERED THE TARGET FILE...}% - EOF - cat >> "$A" <<-EOF - \let\jobname=\tmpXXXXXZEUGoldjobname - EOF - - cd `dirname "${TEX_FILE}"` - - # generate a temp \jobname in the current directory: - TMP_JOB_FILE=`mktemp ./tmppgf2pdfXXXXXX` - if [ $? -ne 0 ]; then exit 1; fi - rm -f "$TMP_JOB_FILE" - - $CMD --interaction nonstopmode --jobname "$TMP_JOB_FILE" "${TEX_FILE}" 1>/dev/null - CODE=$? - - INTERM_EXTENSION="dvi" - case $DRIVER in - pdftex|pdflatex) - INTERM_EXTENSION="pdf" - ;; - dvipdfm) - INTERM_EXTENSION="dvi" - ;; - dvips) - INTERM_EXTENSION="dvi" - ;; - esac - if [ ! -s "$TMP_JOB_FILE.$INTERM_EXTENSION" ]; then - if [ $VERBOSE_LEVEL -ge 1 ]; then - if [ $WARN_ONLY_IF_TEXFILE_DOESNOT_INCLUDE_TARGET -eq 1 ]; then - echo -n "WARNING: "; - else - echo -n "ERROR: "; - fi - echo -e "running\n"\ - " '$CMD --jobname $TMP_JOB_FILE $TEX_FILE'\n"\ - "resulted in a zero-size file \"$TMP_JOB_FILE.$INTERM_EXTENSION\"!\n"\ - "Please check\n"\ - "- if $TEX_FILE contains\n"\ - " \pgfrealjobname{`basename ${TEX_FILE%%.tex}`}\n"\ - "- if $TEX_FILE contains\n"\ - " \input{$A}\n"\ - "\n"\ - "You may take a look at\n\t$TARGET_FILE.log\n for more information.\n"\ - "Maybe `basename $0` --texdefs is more appropriate for this application?\n"\ - "It doesn't need \input{}...\n"\ - 1>&2 - fi - - CODE=1 - if [ $WARN_ONLY_IF_TEXFILE_DOESNOT_INCLUDE_TARGET -eq 1 ]; then - CONTINUE_ON_ERROR=1 - fi - rm -f $TMP_JOB_FILE.{$INTERM_EXTENSION,pdf} - fi - - - # FIXME: this here may clash if A and TARGET_FILE have inconsistent paths! - mv "$ORIGINAL_FILE" "$A" || exit 1 - for QQ in $TMP_JOB_FILE.*; do - if [ "$TARGET_FILE.${QQ##*.}" != "$A" ]; then - mv "$QQ" "$TARGET_FILE.${QQ##*.}" || exit 1 - fi - done - - cd "$OLD_DIR" - else - # Die Idee hier ist wie folgt: - # - Erstelle ein fast leeres Tex-File - # - darin steht NUR - # \input $TEX_DEFINES - # und - # \input $A - # - das TeX-file wird mit pgflatex uebersetzt - # - die ausgabe wird nach $TARGET_FILE geschrieben - # - fertig. - # - # BUGS: - # - TARGET_FILE != A wird nicht funktionieren (nur die endungen natuerlich) - DRIVER="pdftex" - cd `dirname "$A"` - BASE=`basename $TARGET_FILE` - TMP_TEX_FILE=`mktemp tmp_${BASE}_XXXXXX` - mv "$TMP_TEX_FILE" "${TMP_TEX_FILE}.tex" - TMP_TEX_FILE="$TMP_TEX_FILE.tex" - rm -f "${BASE}.pdf" - - cat >"$TMP_TEX_FILE" <<-EOF - \documentclass{report} - - \input{${TEX_DEFINES}} - - %\def\pgfsysdriver{pgfsys-dvipdfm.def} - %\def\pgfsysdriver{pgfsys-pdftex.def} - \usepackage{tikz} - \pgfrealjobname{${TMP_TEX_FILE%%.tex}} - \begin{document} - \let\oldjobname=\jobname% - % make sure that PGF recognises that jobname==target file name - % even if --jobname has a different path. - \def\jobname{${TARGET_FILE}}% - \input{`basename $A`}% - \let\jobname=\oldjobname - \end{document} - EOF - $CMD --interaction nonstopmode --jobname "$BASE" "${TMP_TEX_FILE}" 1>/dev/null - CODE=$? - if [ $CODE -eq 0 ]; then - rm -f "$TMP_TEX_FILE" - fi - cd $OLD_DIR - fi - - if [ $CODE -ne 0 ]; then - rm -f "${TARGET_FILE}.pdf" - if [ $CONTINUE_ON_ERROR -eq 1 ]; then - echo "WARNING: $A SKIPPED [use -v for messages]." 1>&2 - CODE=0 - continue - else - echo -e "FAILED: could not convert\n\t$A\n->\t$TARGET_FILE.pdf" 1>&2; - exit 1; - fi - fi - CMD="" - case $DRIVER in - dvipdfm) - dvipdfm -o ${TARGET_FILE}.pdf "${TARGET_FILE}.dvi" || exit 1 - pdfcrop "${TARGET_FILE}.pdf" "${TARGET_FILE}.pdf" || exit 1 - ;; - dvips) - dvipdfm -o ${TARGET_FILE}.ps "${TARGET_FILE}.dvi" || exit 1 - ;; - esac - - if [ $ALSO_EPS_OUTPUT -eq 1 ]; then - pdftops -f 1 -l 1 -eps "${TARGET_FILE}.pdf" "${TARGET_FILE}.eps" - if [ $? -ne 0 ]; then - echo "Conversion pdf -> eps FAILED!" 1>&2 - exit 1 - fi - fi -done -cd $OLD_DIR |