#!/bin/sh TEXT=$1 TMPDIR=i/tmp MACRODEFINITION=o/txt2macros.tex TEXTNAME=${TEXT##*/} CANVASTEX=$TMPDIR/txt2macros.tex WORDLIST=$TMPDIR/${TEXTNAME%%.*}.list VALUELIST=$TMPDIR/${TEXTNAME%%.*}-values.list UNILIST=$TMPDIR/${TEXTNAME%%.*}-unified.list MACROTEXT=$TMPDIR/${TEXTNAME%%.*}-macrofied.list MACROFIED=$TMPDIR/${TEXTNAME%%.*}-macrofied.tex if [ `ls $MACRODEFINITION | wc -l` -lt 1 ]; then # NEWLINES AS EMPTY LINES + WRITE WORDS AS LINES sed G $TEXT | sed 's/\// \/ /g' | sed -e 'y/ /\n/' | sed 's/^/.../' > $WORDLIST # sort $WORDLIST | tr '[A-Z]' '[a-z]' | uniq > $UNILIST.tmp2 sort $WORDLIST | uniq > $UNILIST.tmp2 rm $UNILIST for LINE in `cat $UNILIST.tmp2`; do echo `echo $LINE | sed 's/^...//' | tr -cd [:alnum:]` >> $UNILIST.tmp; done cat $UNILIST.tmp | tr '[A-Z]' '[a-z]' | sort | uniq > $UNILIST rm $UNILIST.tmp* COUNT=1 cp $TEXT $MACROFIED sed -i 's/“/ “ /g' $MACROFIED sed -i 's/”/ ” /g' $MACROFIED sed -i 's/\// \/ /g' $MACROFIED sed -i 's/(/ ( /g' $MACROFIED for LINE in `cat $UNILIST | awk '{ print length(), $0 | "sort -n" }' | cut -d " " -f 2 | tac` do LINEWORD=$LINE sed "s/ ${LINEWORD}/ xxxxxnow${LINEWORD}isamacro /g" $MACROFIED | tr '[A-Z]' '[a-z]' > o/${TEXTNAME%%.*}-macrofied.tmp mv o/${TEXTNAME%%.*}-macrofied.tmp $MACROFIED sed "s/^${LINEWORD}/ xxxxxnow${LINEWORD}isamacro /g" $MACROFIED | tr '[A-Z]' '[a-z]' > o/${TEXTNAME%%.*}-macrofied.tmp mv o/${TEXTNAME%%.*}-macrofied.tmp $MACROFIED COUNT=`expr $COUNT + 1` done sed -i 's/xxxxx/\\/g' $MACROFIED MAXCHAR=`wc -L $TEXT | cut -d " " -f 1` CHARWIDTH=`echo 0000\`expr 10000 \/ ${MAXCHAR}\` | rev | cut -c 1-4 | rev` # NUMBER OF LINES => LINEHEIGHT = CANVASHEIGHT / LINENUMBER LINES=`wc -l $TEXT | cut -d " " -f 1` LINEHEIGHT=`echo 0000\`expr 9000 \/ $LINES \` | rev | cut -c 1-4 | rev` LINECOUNT=1 echo '\\setlength{\\charwidth}{'.$CHARWIDTH'\\canvaswidth}' > $CANVASTEX echo '\\setlength{\\unitlength}{'.$LINEHEIGHT'\\canvasheight}' >> $CANVASTEX echo >> $CANVASTEX echo "\input{$MACROFIED}" >> $CANVASTEX GRAFIK=i/a/utils/graphics/blank/black.pdf GRAFIKWIDTH=`identify $GRAFIK | cut -d " " -f 3 | cut -d "x" -f 1` GRAFIKHEIGHT=`identify $GRAFIK | cut -d " " -f 3 | cut -d "x" -f 2` #------------------------# XMAX=550 # XMIN=50 # YMAX=700 # YMIN=400 # #------------------------# CLIPCHARWIDTH=`expr $XMAX \/ $MAXCHAR` CLIPHEIGHT=`expr \( $YMAX - $YMIN \) \/ $LINES` CLIPXEND=$XMIN CLIPYEND=$YMAX CLIPYSTART=`expr $CLIPYEND - $CLIPHEIGHT` CLIPXSTART=50 CLIPXEND=100 CLIPYSTART=10 CLIPYEND=50 #MACRODEFINITION=o/`date +%s`-macros.sty #rm $MACRODEFINITION rm $MACRODEFINITION for LINE in `cat $UNILIST` do WIDTH=`expr \`echo $LINE | wc -c\` - 0` CLIPXEND=`expr $CLIPXSTART + \( $WIDTH \* 20 \)` echo '\\newcommand{\\now'$LINE'isamacro}{' >> $MACRODEFINITION # echo "\graphicasword{"$GRAFIK"}" >> $MACRODEFINITION # echo "{"$CLIPXSTART"}{"$CLIPYSTART"}{"$CLIPXEND"}{"$CLIPYEND"}" >> $MACRODEFINITION # echo "{height="1'\\charwidth}' >> $MACRODEFINITION # echo $LINE >> $MACRODEFINITION # JUST INSERT WORD AS MACRO echo $LINE | rev >> $MACRODEFINITION # REVERT WORD AS MACRO echo '}' >> $MACRODEFINITION done #echo '\\newlength{\\charwidth}' >> $MACRODEFINITION #echo '\\setlength{\\charwidth}{'.$CHARWIDTH'\\linewidth}' >> $MACRODEFINITION #echo '\\setlength{\\unitlength}{'.$LINEHEIGHT'\\textheight}' >> $MACRODEFINITION cat $MACROFIED >> $MACRODEFINITION rm $CANVASTEX rm $MACROFIED else echo $CANVASTEX does exist fi exit 0;