summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/photobook/scripts/make-images.sh
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/photobook/scripts/make-images.sh')
-rw-r--r--Master/texmf-dist/doc/latex/photobook/scripts/make-images.sh450
1 files changed, 0 insertions, 450 deletions
diff --git a/Master/texmf-dist/doc/latex/photobook/scripts/make-images.sh b/Master/texmf-dist/doc/latex/photobook/scripts/make-images.sh
deleted file mode 100644
index bfec27d9782..00000000000
--- a/Master/texmf-dist/doc/latex/photobook/scripts/make-images.sh
+++ /dev/null
@@ -1,450 +0,0 @@
-#!/bin/bash
-shopt -s nullglob extglob
-
-#----------------------------------------------------------------------
-#
-# Template structure:
-# templates/
-# imagepage.tex
-# textpage.tex
-# ...
-# $IMAGE_DIR/
-# $spread/
-# tweaks.tex
-# template tweaks.
-# loaded before the templates are handled.
-# layout.tex
-# manual layout of spread.
-# if given rest of directory contents are
-# ignored.
-# fields:
-# ${IMAGE0}
-# ${CAPTION0}
-# ${IMAGE1}
-# ${CAPTION1}
-# NOTE: if images are included, hi-res source
-# substitution is not done here.
-# <spread-template-name>.tpl
-# indicates the spread template to use.
-# if given the rest of the .tex files in
-# directory are ignored.
-# resolves to:
-# templates/<spread-template-name>.tex
-# fields:
-# ${IMAGE0}
-# ${CAPTION0}
-# ${IMAGE1}
-# ${CAPTION1}
-# imagepage.tex
-# image page template.
-# fields:
-# ${IMAGE}
-# ${CAPTION}
-# textpage.tex
-# text page template.
-# fields:
-# ${TEXT}
-# <spread-template-name>-imagepage.tpl
-# <spread-template-name>-textpage.tpl
-# indicates the image/text page template to use.
-# ignored if explicit templates are given.
-# image fields:
-# ${IMAGE}
-# ${CAPTION}
-# text fields:
-# ${TEXT}
-# 00-<image>.png
-# image.
-# if $IMAGE_HIRES_DIR is set then this will
-# resolve to:
-# $IMAGE_HIRES_DIR/<image>
-# XXX hi-res substitution currently disabled.
-# 01-<text>.txt
-# text.
-# ...
-# ...
-#
-#
-#
-# Env variables:
-# IMAGE_HIRES_DIR=<path>
-# sets the path to which the hi-res images are resolved.
-#
-#
-#
-#
-# XXX TODO:
-# - revise printed comments...
-# - add real arg handling...
-# - add abbility to apply template to a specific page in spread...
-# ...something like:
-# <template-name>-left.tpl
-# <template-name>-right.tpl
-# - add multiple images/captions...
-#
-#
-#
-#----------------------------------------------------------------------
-
-# defaults...
-
-CFG_FILE=`basename $0`.cfg
-
-TEMPLATE_PATH=templates/
-
-IMAGE_DIR=pages/
-
-#IMAGE_HIRES_DIR=
-
-
-# Default timplates
-#SINGLE_IMAGE=blank-image
-SINGLE_IMAGE=imagebleedleft
-DOUBLE_IMAGE=image-image
-
-
-# load config...
-[ -e $CFG_FILE ] && source $CFG_FILE
-
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-printhelp(){
- echo "Usage: `basename $0` [ARGUMENTS] [PATH]"
- echo " `basename $0` [ARGUMENTS] PATH FROM [COUNT]"
- echo
- echo "Generate LaTeX layout from directory structure."
- echo
- echo "Arguments:"
- echo " -h --help - print this help and exit."
- echo " --templates=PATH"
- echo " - path to search for templates (default: $TEMPLATE_PATH)."
- echo " --single-image-tpl=NAME"
- echo " - single image default template (default: $SINGLE_IMAGE)."
- echo " --double-image-tpl=NAME"
- echo " - double image default template (default: $DOUBLE_IMAGE)."
- echo
- echo "Parameters:"
- echo " PATH - path to root pages directory (default: $IMAGE_DIR)"
- echo " FROM - spread to start from (default: 0)"
- echo " COUNT - number of spreads to generate (default: 1)"
- echo
- echo "Environment:"
- echo " \$IMAGE_HIRES_DIR "
- echo " - source directory for replacement hi-res images."
- echo " \$ANOTATE_IMAGE_PATHS "
- echo " - if true add image paths in anotations."
- echo
- echo "Configuration defaults can be stored in a config file: $CFG_FILE"
- echo
- echo "NOTE: COUNT is relevant iff FROM is given, otherwise all available "
- echo " spreads are generated."
- echo
- echo "Examples:"
- echo " $ `basename $0` ./pages > pages.tex"
- echo " - generate a layout fron the contents of ./pages"
- echo
- echo " $ IMAGE_HIRES_DIR=images/hi-res `basename $0` ./pages"
- echo " - generate a layout fron the contents of ./pages and "
- echo " replaceing local images with images in ./images/hi-res"
- echo
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# handle arguments...
-
-while true ; do
- case $1 in
- -h|--help)
- printhelp
- exit
- ;;
-
- --templates)
- TEMPLATE_PATH=$2
- shift
- shift
- ;;
- --single-image-tpl)
- SINGLE_IMAGE=$2
- shift
- shift
- ;;
- --double-image-tpl)
- DOUBLE_IMAGE=$2
- shift
- shift
- ;;
-
- # handle unknown options...
- -*|--*)
- echo "Error: unknown option \"$1\""
- exit
- ;;
-
- *)
- break
- ;;
- esac
-done
-
-
-if [ -z $1 ] ; then
- IMAGE_DIR=pages/
-else
- IMAGE_DIR=$1/
-fi
-
-
-# calculate spread index range...
-# XXX add support for negative indexing...
-FROM=$2
-COUNT=$( [ -z $3 ] && echo 1 || echo $3 )
-STOP=$(( FROM + COUNT ))
-
-
-
-#----------------------------------------------------------------------
-
-# XXX should we report images w/o captions???
-getCaption(){
- local C=`basename "${1%.*}"`
- #C="${C/[0-9]-}"
- C="captions/${C}.txt"
-
- if [ -e "${C}" ] ; then
- C=`cat "${C}" | sed 's/\\\/\\\\\\\/g'`
- else
- C=""
- fi
-
- echo ${C[*]}
-}
-
-getTemplate(){
- local SPREAD=$1
- local TYPE=$2
- local TEMPLATE=($SPREAD/*-$TYPE.tex)
- if [ -z $TEMPLATE ] ; then
- TEMPLATE=($SPREAD/*-$TYPE.tpl)
- if ! [ -z $TEMPLATE ] ; then
- TEMPLATE=${TEMPLATE/$SPREAD\//}
- TEMPLATE=${TEMPLATE/[0-9]-/}
- TEMPLATE="$TEMPLATE_PATH/${TEMPLATE[0]%-${TYPE}.*}.tex"
- fi
- fi
- if [ -z $TEMPLATE ] ; then
- TEMPLATE="$TEMPLATE_PATH/${TYPE}.tex"
- fi
- echo $TEMPLATE
-}
-
-anotatePath(){
- if [ -z "$1" ] || [ -z "$ANOTATE_IMAGE_PATHS" ] ; then
- return
- fi
- path=$(basename ${1%.*})
- # NOTE: did not figure out how to make a verbatim comment in latex
- # so here we are, doing it in shell...
- path=${path//_/\\_}
- #echo "\\pdfmargincomment{Image: $path}%"
- echo "\\pdfcommentcell{Image: $path}%"
-}
-
-
-#----------------------------------------------------------------------
-
-
-echo %----------------------------------------------------------------------
-echo %
-echo % WARNING: This file is auto-generated by make-images.sh and will be
-echo "% overwritten on next run..."
-echo %
-echo "% Image source (preview): \"$IMAGE_DIR\""
-echo "% Image source (hi-res): \"$IMAGE_HIRES_DIR\""
-echo %
-echo %----------------------------------------------------------------------
-echo %
-#echo % set image source directory...
-#echo "\\graphicspath{{${IMAGE_DIR}}}"
-#echo %
-#echo %----------------------------------------------------------------------
-#echo %
-#
-#cd ${IMAGE_DIR}
-
-l=$(ls "$IMAGE_DIR/" | wc -l)
-c=0
-
-for spread in "${IMAGE_DIR}"/* ; do
- # skip non-spreads...
- if ! [ -d "$spread" ] ; then
- continue
- fi
-
- c=$(( c + 1 ))
-
- # if $FROM is given print only stuff in range...
- [ -z $FROM ] \
- || if (( $(( c - 1 )) < $FROM )) || (( $c > $STOP )) ; then
- continue
- fi
-
- # if we are building only a specific spread...
- ##if ! [ -z $SPREAD ] && [[ "$spread" != "$IMAGE_DIR/$SPREAD" ]]; then
- ## continue
- ##fi
-
- if ! [ -z $SKIP_FIRST ] ; then
- echo %
- echo %
- echo % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- fi
- SKIP_FIRST=1
- # skip temporarily disabled...
- if [ -z ${spread/-*/} ] ; then
- echo "% spread: ${spread/-/}: skipped..." | tee >(cat >&2)
- echo %
- continue
- else
- printf "Spread ($c/$l): ${spread/-/} \r" >&2
- echo "% spread: ${spread/-/}"
- fi
-
-
- # auto layout / templates...
- # NOTE: to use a specific template just `touch <template-name>.tpl`
- # in the spread directory...
-
- # layout tweaks...
- tweaks=($spread/*tweak.tex)
- if ! [ -z ${tweaks} ] ; then
- echo "% tweaks: ${tweaks[0]}"
- cat ${tweaks[0]}
- fi
-
-
- # NOTE: we also get *.txt files here...
- items=($spread/*.!(tex|tpl|bak))
-
- # get hi-res image paths...
- if ! [ -z $IMAGE_HIRES_DIR ] ; then
- C=0
- for img in "${items[@]}" ; do
- # skip non-images...
- if [[ "$img" == "${img/.txt/}" ]] ; then
- #new="../$IMAGE_HIRES_DIR/`basename ${img/[0-9]-/}`"
- new="$IMAGE_HIRES_DIR/`basename ${img/[0-9]-/}`"
- # ignore file ext for availability test...
- # NOTE: the first match may be an unsupported format...
- new="${new%.*}"
- new=($new.*)
- if [ -e "${new[0]}" ] ; then
- items[$C]=${new[0]}
- else
- echo %
- echo "% WARNING: hi-res image not found for: \"${img}\" -> \"${new}\"" | tee >(cat >&2)
- echo %
- fi
- fi
- C=$(( C + 1 ))
- done
- fi
-
-
- # manual layout...
- layout=($spread/*layout.tex)
- if ! [ -z $layout ] ; then
- TEMPLATE=${layout[0]}
-
- # templates and partial templates...
- else
- # spread template...
- TEMPLATE=($spread/*.tpl)
- # skip page template refs: *-imagepage.tpl / *-textpage.tpl
- # XXX this will also eat 0-imagepage.tpl / 20-textpage.tpl -- do a better pattern...
- if ! [ -z $TEMPLATE ] ; then
- TEMPLATE=(`ls "$spread/"*.tpl | egrep -v '.*-(imagepage|textpage)\.tpl'`)
- fi
- # no template explicitly defined -> match auto-template...
- AUTO=
- if [ -z $layout ] && [ -z $TEMPLATE ] ; then
- AUTO=" (auto)"
- if [ ${#items[@]} == 1 ] ; then
- TEMPLATE=$SINGLE_IMAGE
-
- # multiple items...
- else
- C=0
- for img in "${items[@]}" ; do
- C=$(( C + 1 ))
- P=`[ $C == 1 ] && echo "left" || echo "right"`
-
- # image...
- if [ "${img/.txt/}" == "${img}" ] ; then
- echo %
- echo "% $P page (image)..."
- TEMPLATE=`getTemplate "$spread" "imagepage"`
- echo % page template: $TEMPLATE
- anotatePath "${img}"
- CAPTION=`getCaption "${img}"`
- cat "${TEMPLATE}" \
- | sed "s%\${IMAGE0\?}%${img%.*}%" \
- | sed "s%\${CAPTION0\?}%${CAPTION}%"
-
- # text...
- else
- echo %
- echo "% $P page (text)..."
- TEMPLATE=`getTemplate "$spread" "textpage"`
- echo % page template: $TEMPLATE
- cat "${TEMPLATE}" \
- | sed "s%\${TEXT}%${img}%"
- fi
-
- # reset for next page...
- TEMPLATE=
- # only two pages at a time...
- [ $C == 2 ] && break
- done
- fi
- fi
- # formatting done...
- [ -z $TEMPLATE ] && continue
-
- # format...
- TEMPLATE=${TEMPLATE/$spread\//}
- TEMPLATE=${TEMPLATE/[0-9]-/}
- # get...
- TEMPLATE="$TEMPLATE_PATH/${TEMPLATE[0]%.*}.tex"
- fi
-
- # captions...
- CAPTION0=`getCaption "${items[0]}"`
- CAPTION1=`getCaption "${items[1]}"`
-
- echo "% template: (template${AUTO}: $TEMPLATE)"
- anotatePath "${items[0]}"
-
- # fill the template...
- cat "${TEMPLATE}" \
- | sed "s%\${IMAGE0\?}%${items[0]%.*}%" \
- | sed "s%\${CAPTION0\?}%${CAPTION0}%" \
- | sed "s%\${IMAGE1}%${items[1]%.*}%" \
- | sed "s%\${CAPTION1}%${CAPTION1}%"
-done
-
-echo %
-echo %
-echo %
-echo %----------------------------------------------------------------------
-echo
-
-echo "Spread created: $c of $l " >&2
-
-
-
-#----------------------------------------------------------------------
-# vim:set ts=4 sw=4 :