summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/exframe/exfsermk.sh
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-01-11 22:12:12 +0000
committerKarl Berry <karl@freefriends.org>2020-01-11 22:12:12 +0000
commitf95ba02a931a571b7b8e60bb6aa8403128931037 (patch)
treef33735731da04339266c6b14d376a90b07d806fd /Master/texmf-dist/doc/latex/exframe/exfsermk.sh
parentf423eb5fb9fd38e27431b39ce039b1db5b2b61f3 (diff)
exframe (11jan20)
git-svn-id: svn://tug.org/texlive/trunk@53369 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/exframe/exfsermk.sh')
-rw-r--r--Master/texmf-dist/doc/latex/exframe/exfsermk.sh90
1 files changed, 46 insertions, 44 deletions
diff --git a/Master/texmf-dist/doc/latex/exframe/exfsermk.sh b/Master/texmf-dist/doc/latex/exframe/exfsermk.sh
index 1003fa32522..a92683034a8 100644
--- a/Master/texmf-dist/doc/latex/exframe/exfsermk.sh
+++ b/Master/texmf-dist/doc/latex/exframe/exfsermk.sh
@@ -1,11 +1,17 @@
#!/bin/bash
+srcmain="exfserm"
+srcsec="exfser"
+trglist=(Problems Solutions)
+trgsol=(n y)
+secnum="01 02 03 aa"
+
if [ -z $1 ]
then
echo "Usage:
$0 number [version]
number: number of sheet, 0 for combined document
- version: 1 for problems, 2 for solutions
+ version: 0 for problems, 1 for solutions
$0 filename
filename: target file to be compiled"
exit 1
@@ -13,16 +19,11 @@ fi
num="$1"
ver="$2"
-main="exfserm"
-source="exfser"
-target1="Problems"
-target2="Solutions"
-sheets="01 02 03 aa"
nl=$'\n'
-sheetokay=""
+secokay=""
make=".pdf"
-for v in $target1 $target2
+for v in "${trglist[@]}"
do
if [[ $num =~ ^$v ]]
then
@@ -36,66 +37,67 @@ done
if [[ $num =~ ^[0-9]$ ]]; then num="0$num"; fi
if [[ $num == "00" ]]; then num=""; fi
-if [[ -z $num ]]; then sheetokay="okay"; fi
-for v in $sheets
+if [[ -z $num ]]; then secokay="okay"; fi
+for v in $secnum
do
- if [[ "$num" == "$v" ]]; then sheetokay="okay"; fi
+ if [[ "$num" == "$v" ]]; then secokay="okay"; fi
done
-if [[ -z $sheetokay ]]
+if [[ -z $secokay ]]
then
echo "error: unknown sheet"
exit 1
fi
+if [[ "$make" == ".pdf" ]]; then nl=""; fi
+
function docompile
{
- if [[ -z $num ]]; then job=$main; else job=$source$num; fi
- for par in -draftmode ""
+ if [[ -z $num ]]
+ then
+ job="$srcmain"
+ fwd="\\childdocforward{$srcmain}"
+ else
+ job="$srcsec$num"
+ fwd="\\childdocforward[$srcmain]{$srcsec$num}"
+ fi
+ body="\\def\\jobname{$job}$optdef\\input{childdoc.def}$fwd"
+ for pass in first main
do
- body="\\def\\jobname{$job}\\def\\draftver{n}\\def\\printsol{$sol}"
- body="$body\\input{childdoc.def}"
- if [[ -z $num ]]
- then
- body="$body\\childdocforward{$main}"
- else
- body="$body\\childdocforward[$main]{$source$num}"
- fi
+ par="";
+ if [[ "$pass" == "first" ]]; then par="-draftmode"; fi
drop="This is|entering extended mode|\\write18"
drop="$drop|Preloading the plain mem file|mpost\.mp|plain\.mp"
pdflatex -shell-escape -interaction=batchmode $par \
- -jobname "$target$num" "$body" | grep -vE "$drop"
+ -jobname "$trg" "$body" | grep -vE "$drop"
+ if [[ "$pass" != "main" ]]; then continue; fi
+ if ! (grep -E -q "may have changed|rerunfilecheck Warning" "$trg.log"); then break; fi
done
- grep -E "Warning|Error|Undefined|Overfull|Underfull" "$target$num.log"
+ grep -E "^! |Warning|Error|Undefined|Overfull|Underfull" "$trg.log"
}
function writesource
{
- body="\\def\\draftver{n}$nl\\def\\printsol{$sol}$nl"
- body="$body\\input{childdoc.def}$nl"
if [[ -z $num ]]
then
- body="$body\\childdocforward{$main}"
+ fwd="\\childdocforward{$srcmain}"
else
- body="$body\\childdocforwardprefix[$main]{$target}{$source}"
+ fwd="\\childdocforwardprefix[$srcmain]{$target}{$srcsec}"
fi
- echo "$body" > $target$num.tex
-}
-
-function process
-{
- target=$1
- sol=$2
- if [[ "$make" == ".pdf" ]]; then docompile; else writesource; fi
+ body="$optdef\\input{childdoc.def}$nl$fwd"
+ echo "$body" > $trg.tex
}
-if [[ -z $ver || "$ver" == "$target1" || $ver = 1 ]]
-then
- process $target1 n
-fi
-if [[ -z $ver || "$ver" == "$target2" || $ver = 2 ]]
-then
- process $target2 y
-fi
+for i in "${!trglist[@]}"
+do
+ if [[ -z $ver || "$ver" == "${trglist[$i]}" || $ver = $i ]]
+ then
+ target="${trglist[$i]}"
+ sol="${trgsol[$i]}"
+ trg="$target$num"
+ optdef="\\def\\draftver{n}$nl\\def\\printsol{$sol}$nl"
+ if [[ "$make" == ".pdf" ]]; then docompile; else writesource; fi
+ fi
+done
echo