diff options
author | Fred Drake <fdrake@acm.org> | 1998-01-13 16:29:08 (GMT) |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 1998-01-13 16:29:08 (GMT) |
commit | bc3b1c6fce4ed3859f05a641d13e01d75e27ff89 (patch) | |
tree | 51660ab909bdd641dc014c2678a624045b5e936a /Doc | |
parent | ab0b65d0c9e5cb654daa63fce439efad11d337da (diff) | |
download | cpython-bc3b1c6fce4ed3859f05a641d13e01d75e27ff89.zip cpython-bc3b1c6fce4ed3859f05a641d13e01d75e27ff89.tar.gz cpython-bc3b1c6fce4ed3859f05a641d13e01d75e27ff89.tar.bz2 |
Script to add & remove LaTeX \documentclass options. Run "./texoption.sh"
for usage information.
Diffstat (limited to 'Doc')
-rwxr-xr-x | Doc/texoption.sh | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/Doc/texoption.sh b/Doc/texoption.sh new file mode 100755 index 0000000..b90dab8 --- /dev/null +++ b/Doc/texoption.sh @@ -0,0 +1,95 @@ +#! /bin/sh +# +# Script to convert LaTeX2e documents to & from having a \documentclass{} +# option. + +VERBOSE=false +SETOPTION=true +FILES=`echo ???.tex` + +usage() { + exec >&2 + echo "usage: $0 [-d] [-v] option [files...]" + echo + echo "\t-d disable option, if present" + echo "\t-v tell which files are being edited, and how" + echo + echo "\tBy default, files... will be '???.tex'." + echo "\tThis will match each of the Python manuals." + echo + exit 2 +} + +editing() { + # tell the user what we're doing + if $VERBOSE ; then + echo $1 $FILE... + fi +} + +addoption() { + # add an option not already present + editing "adding to" + (sed 's/^\(\\documentclass[[].*\)]/\1,'$OPTION']/ +s/^\\documentclass{/\\documentclass['$OPTION']{/' $FILE >temp-$$ \ + && mv temp-$$ $FILE) || exit $? +} + +remoption() { + # remove an option currently on + editing "removing from" + (sed 's/^\(\\documentclass[[].*\),'$OPTION'\([],]\)/\1\2/ +s/^\\documentclass[[]'$OPTION']/\\documentclass{/ +s/^\\documentclass[[]'$OPTION',/\\documentclass[/' $FILE >temp-$$ \ + && mv temp-$$ $FILE) || exit $? +} + +chkoption() { + # return true iff the option is already on + egrep '^\\documentclass[[]([A-Za-z0-9]*,)*'$OPTION'[],]' $FILE >/dev/null + return $? +} + +# parse the command line... +while [ "$#" -gt 0 ] ; do + case "$1" in + -d) + SETOPTION=false + shift + ;; + -v) + VERBOSE=true + shift + ;; + -*) + usage + ;; + *) + break; + ;; + esac +done +if [ -z "$1" ] ; then + usage +fi + +# setup variables +OPTION="$1" +shift +FILES=${1:+$*} +if [ "$FILES" = '' ] ; then + FILES=`echo ???.tex` +fi + +# check each file and do the work as required +for FILE in $FILES ; do + if chkoption ; then + if $SETOPTION ; then + : + else + remoption + fi + elif $SETOPTION ; then + addoption + fi +done |