summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorVladimir Volovich <vvv@vsu.ru>2008-06-05 02:14:06 +0000
committerVladimir Volovich <vvv@vsu.ru>2008-06-05 02:14:06 +0000
commit4e6868bd16be33f9da208832266441c678896ef6 (patch)
treefd999df6478b84635cfca336a6aef8f26e393f3b /Master
parent13737083187fd3061846640ad83b7b60a77e2bf4 (diff)
per discussion with Karl: install remaining LIVESCRIPTS as LINKED_SCRIPTS:
simpdftex: master copy in Master/texmf/scripts/simpdftex/simpdftex slave copy in Build/source/texk/texlive/linked_scripts/simpdftex symlink in bin/ARCH/simpdftex => ../../texmf/scripts/simpdftex/simpdftex ebong: master copy in Master/texmf-dist/scripts/bengali/ebong.py slave copy in Build/source/texk/texlive/linked_scripts/ebong.py symlink in bin/ARCH/ebong => ../../texmf-dist/scripts/bengali/ebong.py giftopng temporarily drop, pending Karl's decision whether and where to keep it it is used in Master/texmf-dist/tex/xmltex/passivetex/fotex.sty git-svn-id: svn://tug.org/texlive/trunk@8575 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rwxr-xr-xMaster/texmf-dist/scripts/bengali/ebong.py346
-rwxr-xr-xMaster/texmf/scripts/simpdftex/simpdftex654
2 files changed, 1000 insertions, 0 deletions
diff --git a/Master/texmf-dist/scripts/bengali/ebong.py b/Master/texmf-dist/scripts/bengali/ebong.py
new file mode 100755
index 00000000000..c4162cf0ef6
--- /dev/null
+++ b/Master/texmf-dist/scripts/bengali/ebong.py
@@ -0,0 +1,346 @@
+#!/usr/bin/env python
+# look in newbong
+import sre
+A='A'
+B='B'
+S='S'
+s='s'
+F='F'
+X='X'
+
+NCLINE = 0
+global NCWORD,CWORD
+
+AKSAR={
+ 'k' :[B,'k'],
+ 'kh' :[B,'kh'],
+ 'g' :[B,'g'],
+ 'gh' :[B,'gh'],
+ 'ng' :[B,'NG'],
+
+ 'ch' :[B,'c'],
+ '^ch' :[B,'ch'],
+ 'j' :[B,'j'],
+ 'jh' :[B,'jh'],
+ '^y' :[B,'NJ'],
+ '_n' :[B,'NJ'],
+
+ 't' :[B,'T'],
+ '^th' :[B,'Th'],
+ 'd' :[B,'D'],
+ 'dh' :[B,'Dh'],
+ '^n' :[B,'N'],
+
+ '_t' :[B,'t'],
+ 'th' :[B,'th'],
+ '_d' :[B,'d'],
+ '_dh' :[B,'dh'],
+ 'n' :[B,'n'],
+
+ 'p' :[B,'p'],
+ 'ph' :[B,'ph'],
+ 'f' :[B,'ph'],
+ 'b' :[B,'b'],
+ 'bh' :[B,'bh'],
+ 'v' :[B,'bh'],
+ 'm' :[B,'m'],
+ 'M' :[F,'M'],
+
+ '^j' :[B,'J'],
+ 'J' :[B,'J'],
+ 'r' :[B,'r'],
+ 'R' :[F,'R'],
+ 'l' :[B,'l'],
+ 'L' :[F,'L'],
+ 'W' :[F,'W'],
+ 'V' :[F,'W'],
+ 'h' :[B,'H'],
+ 'kk' :[B,'kK'],
+ 'kkm' :[B,'kK/N'],
+
+ 'sh' :[B,'sh'],
+ '^s' :[B,'Sh'],
+ '^sh' :[B,'Sh'],
+ 's' :[B,'s'],
+
+ '^r' :[B,'rh'],
+ '^rh' :[B,'rhh'],
+ 'y' :[B,'y'],
+ 'Y' :[F,'Y'],
+ 'JY' :[F,'Y'],
+ '__t' :[B,'t//'],
+ '^ng' :[B,'NNG'],
+ ':h' :[B,'h'],
+ '^' :[F,'NN'],
+ '_' :[F,':/'],
+
+ 'A' :[S,'A'],
+ 'AA' :[S,'Aa'],
+ 'I' :[S,'I'],
+ 'II' :[S,'II'],
+ 'U' :[S,'U'],
+ 'UU' :[S,'UU'],
+ 'RI' :[S,'RR'],
+ 'E' :[S,'E'],
+ 'OI' :[S,'OI'],
+ 'O' :[S,'O'],
+ 'OU' :[S,'OU'],
+
+ 'a' :[X,'o',1],
+ 'aa' :[s,'a',1],
+ 'i' :[s,'i',-1],
+ 'ii' :[s,'ii',1],
+ 'u' :[s,'u',1],
+ 'uu' :[s,'uu',1],
+ 'RII' :[s,'rR',1],
+ 'e' :[s,'e',-1],
+ 'oi' :[s,'oi',-2],
+ 'oo' :[s,'oo',11],
+ 'o' :[X,'o',1],
+ 'ou' :[s,'ou',12],
+
+ '.' :[F,'.'],
+ '..' :[F,'..'],
+ '...' :[F,'...'],
+ '|' :[F,'|'],
+
+ '~' :[F,'~'],
+ '`' :[F,'`'],
+ '!' :[F,'!'],
+ '1' :[F,'1'],
+ '2' :[F,'2'],
+ 'at' :[F,'@'],
+ '#' :[F,'#'],
+ '3' :[F,'3'],
+ '$' :[F,'$'],
+ '4' :[F,'4'],
+ '%' :[F,'%'],
+ '5' :[F,'5'],
+ '6' :[F,'6'],
+ '&' :[F,'&'],
+ '7' :[F,'7'],
+ '*' :[F,'*'],
+ '8' :[F,'8'],
+ '(' :[F,'('],
+ '9' :[F,'9'],
+ ')' :[F,')'],
+ '0' :[F,'0'],
+ 'dash' :[F,'-'],
+ '+' :[F,'+'],
+ '=' :[F,'='],
+ '|' :[F,'|'],
+ '{' :[F,'{'],
+ '[' :[F,'['],
+ '}' :[F,'}'],
+ ']' :[F,']'],
+ ':' :[F,':'],
+ ';' :[F,';'],
+ '"' :[F,'"'],
+ "'" :[F,"'"],
+ '<' :[F,'<'],
+ ',' :[F,','],
+ '>' :[F,'>'],
+ '.' :[F,'.'],
+ '?' :[F,'?'],
+ '/' :[F,'/']}
+
+CATCODES = {'SS' :[S,'','','',1],
+ 'SB' :[B,'','','',1],
+ 'BS' :[S,'','','',1],
+ 'BB' :[B,'','/','',1],
+ 'BF' :[F,'','','',1],
+ 'Bs1' :[S,'','','',1],
+ 'Bs-1':[S,'\*','','*',1],
+ 'Bs-2':[S,'\*','','*{oi}',0],
+ 'Bs11':[S,'\*','','*ea',0],
+ 'Bs12':[S,'\*','','*eou',0],
+ 'Fs1' :[S,'','','',1],
+ 'Fs-1':[S,'\*','','*',1],
+ 'Fs-2':[S,'\*','','*{oi}',0],
+ 'Fs11':[S,'\*','','*ea',0],
+ 'Fs12':[S,'\*','','*eou',0],
+ 'FF' :[F,'','','',1],
+ 'AX' :[F,'','','',1]}
+
+def blocked(line):
+ #print '@ blocked', line , '->',
+ m = sre.findall('@[^@]+@',line)
+ outline = line
+ if not m :
+ #print outline
+ return(outline)
+ else:
+ for i in range(len(m)):
+ s=m[i][:-1].replace(' ','%X%')
+ outline = outline.replace(m[i],s,1)
+ #print outline
+ return(outline)
+
+def unblock(line):
+ #print '@unblock', line, '->',
+ m = sre.findall('@[^\s]+',line)
+ outline = line
+ if not m :
+ #print outline
+ return(outline)
+ else:
+ for i in range(len(m)):
+ s=m[i].replace('@','').replace('%X%',' ')
+ outline = outline.replace(m[i],s)
+ #print outline
+ return(outline)
+
+def printamp(line):
+ #print '@unblock', line, '->',
+ m = sre.findall('#AT',line)
+ outline = line
+ if not m :
+ #print outline
+ return(outline)
+ else:
+ for i in range(len(m)):
+ outline = outline.replace('#AT','@')
+ #print outline
+ return(outline)
+
+def readsyll(syll):
+ syllparts=[]
+ start = 0; end = len(syll)
+ while syll[start : end]:
+ slice = syll[start : end]
+ #print slice
+ if AKSAR.has_key(slice):
+ syllparts.append(AKSAR[slice])
+ start = start + len(slice)
+ end = len(syll)
+ else :
+ end = end -1
+ return(syllparts)
+
+def fuse(list1,list2):
+ global CCATCODE
+ #print list1,list2
+ Type1 = list1[0]
+ Type2 = list2[0]
+
+ if Type2 == s:
+ Type3 = str(list2[2])
+ elif Type2 == X:
+ Type1=A
+ Type3=''
+ else:
+ Type3 =''
+
+ Type = Type1+Type2+Type3
+
+ #print 'Type:', Type
+
+ try:
+ CATCODE = CATCODES[Type]
+ TARGET = CATCODE[0]
+ PREFIX = CATCODE[1]
+ MIDFIX = CATCODE[2]
+ POSTFIX = CATCODE[3]
+ FLAG = CATCODE[4]
+
+ #print 'TGT:', TARGET, PREFIX,MIDFIX,POSTFIX,FLAG
+ #print 'RAWC', AKSAR[list1[1]][1],AKSAR[list2[1]][1]
+
+ c1=list1[1]
+ c2=list2[1]
+
+ if FLAG == 1 :
+ c = PREFIX + c1 + MIDFIX + POSTFIX + c2
+ else :
+ c = PREFIX + c1 + MIDFIX + POSTFIX
+
+ fused = [TARGET,c]
+ #print CATCODE
+ return(fused)
+ except KeyError:
+ print '\n ERROR AT LINE:', NCLINE, 'WORD:',NCWORD, '(',CWORD,')'
+ return(['ERROR','UNKNOWN CATCODE'])
+
+def fuseatoms(syll):
+ slist=readsyll(syll);
+ #print slist
+ lslist=len(slist);
+ l0=slist[0];
+ for i in range(1,lslist):
+ nextitem = slist[i]
+ l0=fuse(l0,nextitem)
+
+ return(l0[1])
+
+def fuseword(wrd):
+ if wrd[0] == '@' :
+ return(wrd)
+ syllables = wrd.split('-')
+ w0=''
+ for eachsyll in syllables:
+ syll=eachsyll
+ thesyll = fuseatoms(syll)
+ w0 = w0 + thesyll
+ #print 'FUSED WORD',w0
+ return(w0)
+
+def fuseline(line):
+ global NCWORD,CWORD
+ NCWORD = 0
+ #line = blocked(line)
+ words = line.split()
+ l0=''
+ for eachword in words:
+ NCWORD=NCWORD+1
+ word = eachword
+ CWORD=word
+ theword=fuseword(word)
+ #print 'XX',theword
+ l0=l0+' '+theword
+ #print 'FUSED LINE', l0
+ return(l0)
+
+# The main program
+import sys
+OK=1
+finnam = sys.argv[1]
+foutnam = finnam.split('.')[0] + '.' + 'tex'
+
+fin = file(finnam,'rt')
+fout = file(foutnam,'wt')
+
+textin = fin.readlines()
+nlines = len(textin)
+
+textout = []
+
+fin.close()
+
+for eachline in textin:
+ NCLINE = NCLINE+1
+ if eachline[0] == '#' :
+ lineout = eachline[1:]
+ elif eachline[0] == '\\' :
+ lineout = eachline
+ elif eachline == '\n':
+ lineout = eachline
+ else :
+ line1 = eachline.strip()
+ line2 = blocked(line1)
+ lineout = fuseline(line2) + '\n'
+ lineout = lineout[1:]
+ #print ':::', lineout
+ if lineout.find('UNKNOWN CATCODE') == -1 :
+ lineout = unblock(lineout)
+ #print ':::', lineout
+ textout.append(printamp(lineout))
+ else :
+ OK = 0
+ fout.close()
+
+if OK == 1:
+ fout.writelines(textout)
+ fout.close()
+ print 'done'
+else:
+ print 'Unknown CATCODE, Fix The errors and try again'
diff --git a/Master/texmf/scripts/simpdftex/simpdftex b/Master/texmf/scripts/simpdftex/simpdftex
new file mode 100755
index 00000000000..e5d5d4218b3
--- /dev/null
+++ b/Master/texmf/scripts/simpdftex/simpdftex
@@ -0,0 +1,654 @@
+#!/bin/sh
+
+# Created by Gerben Wierda, May 2001
+# Rewritten by Gerben Wierda, January 2002
+# Modified by Joachim Kock, May 2003
+# Modified by Gerben Wierda, April 2007
+
+# COPYRIGHT Gerben Wierda 2001--2004
+# This file is free software. You are free to use this file in any way you like
+# However, if you change it you should note in this file that you did and who
+# you are, you also need to change the version string if you do. That way
+# I will not get support questions for software that is not entirely mine.
+
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# $Id: altpdftex,v 2.18 2004/11/15 20:36:11 gerben Exp $
+
+# This script assumes that there is a config.pdf somewhere that sets
+# the bitmap mode to something large but realistic (real mode) so that
+# unavailable pfb fonts will be included as bitmaps.
+
+# Version 1.0: added the string above for identification purposes
+# Version 1.0a: Cosmetic change: do not display dir of argv[0] all the time
+# Added calledas variable to hold command basename
+# Version 1.1: Use calledas instead of $0 which means the sed command
+# for determining format below also works when there is no dir
+# (run from dir where altpdftex resides, not very likely...)
+# Version 1.2: Force the use of tex binaries from the same directory as
+# this script
+# Version 1.3: Added --echo-version option, placed argument check after
+# switch, inside while to prevent subscript out of range error
+# Added --tex-path to override directory where this script
+# resides. Added --gs-path to override a new default gs
+# directory /usr/local/bin. Also, force gs directory at the
+# start of the path to repair for broken installations of
+# TeX, gs and such
+# Version 1.4: Moved path changes to just before calling gs so that only
+# ps2pdf is affected
+# Version 1.5: Removed some path-related redundancy from GS calling
+# Version 1.5a: Missing ${extradviopts} from echo
+# Added version to --help output
+# Added wolfram.map
+# Version 1.6: Fixed bug: --dviopts did not work because it did set
+# the wrong variable
+# Changed dviopts to dvipsopts (better name)
+# Version 1.7: Added --distiller and --distiller-filter option
+# Changed --gs-path to --distiller-path
+# Changed distiller semantics
+# Fixed bug --tex-path flag needed trailing '/'
+# Some extra quoting to be more robust for whitespace
+# in names, also internally
+# Version 1.8: Added pstill and u-psbuild info to help
+# Version 1.9: Removed textrace bbold font (textrace is broken)
+# Version 1.10: Added amstex support
+# Simplified different format support
+# Version 1.11: Do not source ~/.{t}cshrc, use the environment 'as is'
+# Version 1.11 says it is version 1.10!
+# Version 1.12: Added textrace bold font (textrace 0.48 is ok)
+# Version 1.13: Changed success message at the end
+# Echo version on by default
+# Debug option
+# Version 1.13b:Date report on version was very out of date, removed
+
+# Version 2.0: Rewritten in /bin/sh because (t)csh does not handle signals
+# very well...
+# This version works, but you need to send the SIGTERM to
+# the process group (the negative PID) to get it to work
+# Version 2.1: Small bug fixes
+# Version 2.2: Fixed bug where argument without extension was interpreted
+# as dvi file.
+# Removed dependencies on smart sh versions
+# Version 2.3: Removed map file knowledge (needs to be outside this script)
+# beyond the standard map files
+# Version 2.4: Added support for omega and lambda (use odvips)
+# Version 2.5: Changed maxpk and maxpfb implementation to recent updmap
+# Version 2.6: Use ps2pdf13 as the default distiller
+# Version 2.7: Changed help
+# Version 2.8: Checked into CVS.
+# Added handling of outdir for TeX
+# Version 2.9: Added auto-outdir flag
+# Version 2.10: Changed --outdir behaviour to mimick TEXMFOUTPUT,
+# removed --auto-outdir
+# Version 2.11: Fixed typo
+# Version 2.12: RCS changes, from now on, the version number is the RCS number
+# These notes here will become a ChangeLog.
+# 2003/05/20 Joachim's modification: write first to a pdf file in tmp,
+# and only upon completion copy the file to its final
+# destination. This is done in order to minimise the time where
+# the pdf file in current directory is in an unstable state,
+# because a PDF viewer might be tracking the file, and
+# if it finds the pdf file in an intermediate state it will
+# display a blank page until the new version is ready.
+# 2003/05/21 Joachim's modification used /bin/cp. Gerben made it truly
+# atomic by using /bin/cp in combination with /bin/mv
+# 2003/11/23 Added supportfor passing flasg to tex at the request of
+# Dick Koch.
+# 2004/09/05 Bugfix: make it work better with directories with whitespace
+# in their name
+# 2004/11/15 New calling mode: simpdftex format foo.tex
+# e.g.:
+# simpdftex latex foo.tex
+# In the future, the old modes (altpdflatex and friends) through
+# symlinks will disappear from my distribution, though they will
+# still work.
+# 2007/05/07 Added dvipdfm support with compatibility with the patched version
+# that is available on the net (simpdftex_dpmx)
+# Changed version string to date-based string
+# 2007/08/09 Protected echo command against broken builtin versions by running
+# /bin/echo explicitly. There may exist /bin/echo implementations
+# that do not support -n and this script will have to be changed
+# before it works on such a system
+
+# FEATURE: it seems -u +foo.map -u -foo.map does not work. So --extradvipsopts
+# cannot be used to remove a map from the standard list
+
+# BUG: Handling of file name extensions is not completely equialent to TeX
+# i.e. foo.bar.bla gets you foo.bar.pdf not foo.bar.bla.pdf
+# Hint: Give all extensions explicitely on the command line
+
+version='20070809'
+calledas=`basename "$0"`
+if [ "${calledas}" = "simpdftex" ]
+then
+ argwithoutlead=`/bin/echo -n "$1"|sed 's/^--//'`
+ if [ "$1" != "" -a "$1" = "${argwithoutlead}" ]
+ then
+ formatname="$1"
+ shift
+ calledas="altpdf${formatname}"
+ fi
+fi
+argvbackup="$*"
+
+dviprogram="dvips" # Might be dvips, dvipdfm or dvipdfmx
+
+# maxpkdvipsopts: use only pfb's for real PS fonts, bitmaps are default for the others
+maxpkdvipsopts="-Ppk"
+# maxpfbdvipsopts: use as many pfb's as possible
+maxpfbdvipsopts="-Poutline"
+opt_dvipsopts=""
+
+# Defaults:
+# altpdftex --default is the default setting, it also works
+# when there is no config.pdf file
+extradvipsoptions=""
+dvipsoptions="$maxpfbdvipsopts"
+outputpostfix=".maxpfb"
+simplename="yes"
+keeppsfile="no"
+echoversion="yes"
+texpath=`dirname "$0"`
+# Default distiller is ps2pdf from /usr/local/bin in no filter mode
+# as the direct call to a filtering gs does not work yet for some reason
+#distillerpath=""
+#distillerprog="/usr/local/bin/gs -dCompatibility=1.3 -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=- -c save pop"
+#distillerfilter="yes"
+distillerpath="/usr/local/bin"
+distillerprog="ps2pdf13"
+distillerfilter="no"
+unset outdir
+debug="no"
+dvipdfmoptions=""
+
+usage()
+{
+ cat <<_eof_help
+This is simpdftex, $version
+
+Usage: simpdftex formatname [--mode modestring]
+ [--dvipsopts dvipsoptstring] [--extradvipsopts dvipsoptstring] [--pdf]
+ [--default] [--maxpk] [--maxpfb] [--extendedname] [--no-echo-version]
+ [--tex-path dir] [--keep-psfile] [--distiller-path dir] [--debug]
+ [--distiller prog] [--distiller-filter prog] [--help]
+ [--outdir dir] [--extratexopts texoptsstring]
+ [--dvipdfmopts dvipdfmoptstring] tex-or-dvi-file
+
+simpdftex is a way to do pdf{e}{la}tex without having pdf{e}{la}tex. It needs a
+working TeX environment and one of three ways to turn DVI file into PDF:
+ - dvips + a distiller like ghostscript
+ - dvipdfm
+ - dvipdfmx
+Since pdf{e}{la}tex cannot handle insertion of .eps graphics, simpdftex gives an
+alternative when using dvips mode. The output for both systems is comparable.
+
+simpdftex compiles the file with {LA}TeX, processes the DVI file with dvips into
+PostScript and uses gs to produce pdf (with ps2pdf). Or it uses dvipdfm or
+dvipdfmx to turn the DVI file into PDF. There is finegrained control over the
+resulting filename and the options with which dvips produces the PostScript
+intermediary file.
+
+Dvips will call Metafont to produce bitmaps or include PostScript .pfb files
+depending on the flags. See below.
+
+The default setting is normal name, maximal use of pfb's, just like pdf{la}tex,
+in other words, "pdftex file.tex" and "altpdftex file.tex" both produce an
+output file file.pdf. For pdftex, output options are controlled by pdftex.cfg,
+for altpdftext by config.ps (unless --pdf is given).
+
+Arguments:
+ tex-or-dvi-file
+ If a .dvi file is given, skip the TeX process. Otherwise, TeX
+ the input file, dvips the resulting dvi file and ps2pdf the
+ resulting ps file
+ --mode
+ Tell simpdftex how to go from DVI to PDF. There are three modes:
+ - dvips
+ - dvipdfm
+ - dvipdfmx
+ --dpx
+ Compatibility flag with simpdftex_dpmx. Equal to --mode dvipdfmx
+ --dpm
+ Compatibility flag with simpdftex_dpmx. Equal to --mode dvipdfm
+ --help
+ Display this message and exit
+ --no-echo-version
+ Do not echo location and version of this script. Does not exit
+ so can be used tochange info to the output of a real run
+ --debug
+ Add some debug output
+ --extendedname
+ Depending on the mode, adds intermediary extensions to the
+ output filename. If the mode is --pdf, .pdfmode is added. If
+ the mode is --maxpk, ,maxpk is added and if the mode is
+ --maxpfb, .maxpfb is added. Example:
+ tex-or-dvi-file-basename.maxpfb.pdf
+ --maxpk
+ Use Metafont bitmaps (pk files) when possible. Only real
+ PostScript fonts (like Times Roman) are included as
+ PostScript fonts. All other fonts are included as bitmaps
+ for the default printer resolution. This options produces
+ optimal results for the chosen printer.
+ For file contents (not name) equivalent to:
+ --dvipsopts "-Ppk"
+ Not yet functional for the other modes.
+ --maxpfb
+ Use PostScript pfb files whenever possible. This produces
+ optimal results for the screen.
+ For file contents (not name) equivalent to:
+ --dvipsopts "-Poutline"
+ If any font is included as TeX pk bitmap, it is rendered
+ at the default resolution.
+ Not yet functional for the other modes.
+ --pdf
+ Select .pdfmode extension for the output file name if
+ --extendedname has been set. Use printer definition
+ config.pdf. For file contents (not name) equivalent to
+ --dvipsopts "-Ppdf"
+ Note that the default config.pdf assumes resolution 8000
+ for bitmaps and bitmap generation fails at this resolution
+ because there exists no known mode for that resolution.
+ --default
+ Select no extension for the output file name, even if
+ --extendedfilename has been set. Use standard printer
+ definition config.ps. For file contents (not name) equivalent
+ to:
+ --dvipsopts "" --noextendedname
+ --dvipsopts
+ Give arbitrary arguments to dvips, e.g.
+ --dvipsopts "-M"
+ Sets extension for --extendedfilename to .custom. --dvipsopts
+ overrides other flags that set dvipsopts.
+ --extratexopts
+ Give extra arbitrary arguments to tex, e.g.
+ --extratexopts "--interaction=nonstopmode"
+ Sets extra options for the tex command that is used.
+ --extradvipsopts
+ Give extra arbitrary arguments to dvips, e.g.
+ --extradvipsopts "-M"
+ Sets extra options for dvips and does not set extension
+ or override other options. Options will be added to the end
+ of the options for dvips
+ --keep-psfile
+ After running dvips, copy the ps file over to the directory
+ where the tex file is, possibly overwriting a ps file
+ that is there. Use with caution, a ps file could be input
+ as well.
+ --tex-path
+ Give path of TeX binaries, use directory of this script
+ otherwise
+ --distiller prog
+ Use a distiller different from ps2pdf which is the default.
+ Argument must be an executable or executable script that
+ gets called iwth two arguments: input file (PS) and output
+ file (PDF). E.g.:
+ --distiller=/usr/local/alternate/bin/ps2pdf
+ --distiller=pstill
+ Using this flag sets the distiller filter mode to off
+ This flag only makes sense in dvips mode
+ --distiller-filter prog
+ Use a distiller executable or executable script which is
+ called with the PS input as standard input and which writes
+ the PDF output to standard output. E.g.:
+ --distiller-filter=u-psbuild
+ This flag only makes sense in dvips mode
+ --distiller-path
+ Give path needed by the distiller binary. This path is added
+ to the begin of you PATH environment before the distiller is
+ run. The reason is that for instance ps2pdf uses the path to
+ find gs and sets the path to something with /sw/bin at the
+ beginning. Thus, installing gs from fink would make
+ /usr/local/bin/ps2pdf find another gs than intended. By giving
+ an empty path, the path is not changed before the distiller
+ program is run. The default is empty.
+ This flag only makes sense in dvips mode
+ --dvipdfmopts
+ Give arbitrary arguments to dvipdfm or dvipdfmx, e.g.
+ --dvipdfmopts "-c"
+ Sets extension for --extendedfilename to .custom. --dvipdfmopts
+ overrides other flags that set dvipdfmopts.
+ --outdir dir
+ Write files here *if* our current directory is unwritable. This
+ mimicks the TEXMFOUTPUT environment variable of TeX, but
+ differently. The current dir becomes the value of --outdir and
+ the directory where the old current dir is added to TEXINPUTS.
+ This is more robust for reading and locating files.
+ You can also set TEXMFOUTPUT instead, but with a disadvantage:
+ you will be running TeXin the current dir. And you will not be
+ able to read files in the outdir unless you also adapt
+ TEXINPUTS.
+
+ The defaults for the distiller are
+ Path addition: "${distillerpath}"
+ Filter mode: "${distillerfilter}"
+ Program: "${distillerprog}"
+
+ Later flags override settings of earlier flags.
+_eof_help
+}
+
+while test $# -gt 0
+do
+ case $1 in
+ --help)
+ usage
+ exit 0;;
+ --dvipsopts)
+ shift
+ outputpostfix=".custom"
+ dvipsoptions="$1"
+ ;;
+ --dvipdfmopts)
+ outputpostfix=".custom"
+ shift
+ dvipdfmoptions="$1"
+ ;;
+ --dvipdfopts) # Compatibility with simpdftex_dpmx
+ shift
+ dvipdfmoptions="$1"
+ ;;
+ --extradvipsopts)
+ shift
+ extradvipsoptions="$1"
+ ;;
+ --extratexopts)
+ shift
+ extratexoptions="$1"
+ ;;
+ --tex-path)
+ shift
+ texpath="$1"
+ ;;
+ --pdf)
+ outputpostfix=".pdfmode"
+ dvipsoptions="-P pdf"
+ ;;
+ --default)
+ outputpostfix=""
+ dvipsoptions=""
+ # Use the default print option in config.ps
+ ;;
+ --maxpk)
+ outputpostfix=".maxpk"
+ dvipsoptions="$maxpkdvipsopts"
+ ;;
+ --maxpfb)
+ outputpostfix=".maxpbfb"
+ dvipsoptions="$maxpfbdvipsopts"
+ ;;
+ --extendedname)
+ simplename="no"
+ ;;
+ --keep-psfile)
+ keeppsfile="yes"
+ ;;
+ --debug)
+ debug="yes"
+ ;;
+ --distiller-path)
+ shift
+ distillerpath="$1"
+ ;;
+ --distiller)
+ shift
+ distillerprog="$1"
+ distillerfilter="no"
+ ;;
+ --mode)
+ shift
+ if [ "$1" = "dvips" -o "$1" = "dvipdfm" -o "$1" = "dvipdfmx" ]
+ then
+ dviprogram="$1"
+ else
+ /bin/echo "Unknown mode $1"
+ exit 1
+ fi
+ ;;
+ --outdir)
+ shift
+ export TEXINPUTS=`pwd`:`kpsewhich --expand-var '$TEXINPUTS'`
+ export TEXMFOUTPUT="$1"
+ outdir="$1/"
+ outdirset="yes"
+ cd "$1"
+ ;;
+ --distiller-filter)
+ shift
+ distillerprog="$1"
+ distillerfilter="yes"
+ ;;
+ --no-echo-version)
+ echoversion="no"
+ ;;
+ --dpx) # Compatibility with simpdftex_dpmx
+ dviprogram="dvipdfmx"
+ ;;
+ --dpm) # Compatibility with simpdftex_dpmx
+ dviprogram="dvipdfm"
+ ;;
+ --*)
+ /bin/echo "Unknown option $1"
+ exit 1;;
+ "")
+ ;;
+ *)
+ break;;
+ esac
+ shift
+done
+
+if [ "${echoversion}" = "yes" -a "${debug}" = "no" ]
+then
+ /bin/echo "### This is $0, Version ${version}"
+fi
+
+if [ "${debug}" = "yes" ]
+then
+ /bin/echo "##### This is $0, Version ${version}"
+ /bin/echo "##### Arguments: ${argvbackup}"
+fi
+
+run_dvipdfm()
+{
+ /bin/echo "### ${texpath}/${dviprogram} ${dvipdfmoptions} -o ${pdffile} ${dvifile}"
+ "${texpath}/${dviprogram}" ${dvipdfmoptions} -o "${pdffile}" "${dvifile}" || \
+ { /bin/echo "### FAILED to generate ${pdffile} (${status})"; \
+ exit 1; }
+}
+
+run_dvips()
+{
+ /bin/echo "### ${texpath}/${dviprogram} -R ${dvipsoptions} ${extradvipsoptions} -o ${psfile} ${dvifile}"
+ "${texpath}/${dviprogram}" -R ${dvipsoptions} ${extradvipsoptions} -o "${psfile}" "${dvifile}" || \
+ { /bin/echo "### FAILED to generate ${psfile} (${status})"; \
+ exit 1; }
+
+ if [ "${keeppsfile}" = "yes" ]; then
+ /bin/echo "### Saving intermediary ps file ${psfile} as ${savedpsfile}"
+ /bin/cp "${psfile}" "${savedpsfile}" || \
+ /bin/echo "### FAILED to save ${psfile} (${status})"
+ fi
+
+ if [ "${distillerpath}" != "" ]; then
+ PATH="${distillerpath}:${PATH}";export PATH
+ if [ "${debug}" = "yes" ]; then
+ /bin/echo "##### PATH set to ${PATH}"
+ fi
+ fi
+
+ if [ "${distillerfilter}" = "yes" ]; then
+ /bin/echo "### ${distillerprog} <${psfile} >${pdffile}"
+ "${distillerprog}" <"${psfile}" >"${pdffile}" || \
+ { /bin/echo "### FAILED to generate ${pdffile} (${status})"
+ exit 1; }
+ else
+ /bin/echo "### ${distillerprog} ${psfile} ${pdffile}"
+ "${distillerprog}" "${psfile}" "${pdffile}" || \
+ { /bin/echo "### FAILED to generate ${pdffile} (${status})"
+ exit 1; }
+ fi
+}
+
+cleanup()
+{
+ if [ "${tmpdir}" != "" -a "${debug}" = "no" ]
+ then
+ rm -rf "${tmpdir}"
+ fi
+}
+
+terminated()
+{
+ cleanup
+ exit 1;
+}
+
+trap 'terminated' 15
+
+main()
+{
+ if [ "${file}" = "" ]
+ then
+ /bin/echo "simpdftex Empty argument: tex-or-dvi-file-name"
+ exit 1
+ fi
+
+ # Argument handling
+
+ if [ "${simplename}" = "yes" ]
+ then
+ outputpostfix=""
+ fi
+
+ startwithdvi="no"
+ basename=`basename "${file}"`
+ nosuffixbasename=`/bin/echo -n ${basename}|sed 's/\.[^.]*$//'`
+ nodvisuffixbasename=`/bin/echo -n ${basename}|sed 's/\.[dD][vV][iI]$//'`
+ if [ "${nodvisuffixbasename}" = "${nosuffixbasename}" -a \
+ "${basename}" != "${nosuffixbasename}" ]
+ then
+ startwithdvi="yes"
+ fi
+
+ kpsefilename=`kpsewhich "${file}"`
+ slashdirname=`dirname "${kpsefilename}"`/
+
+ if [ ! -w "." ]
+ then
+ if [ "${TEXMFOUTPUT}" != "" ]
+ then
+ outdir="${TEXMFOUTPUT}/"
+ outdirset="yes"
+ if [ "${autoinput}" = "yes" ]
+ then
+ export TEXINPUTS=${TEXMFOUTPUT}:`kpsewhich --expand-var '$TEXINPUTS'`
+
+ fi
+ else
+ /bin/echo "### Cannot write in current directory and no redirect found. Bailing out..."
+ exit 1
+ fi
+ fi
+
+ # Assume the command is called altpdf* where the rest is the actual tex
+ # program to be run
+ texprogram=`/bin/echo ${calledas}|sed 's/altpdf//'`
+ if [ "${texprogram}" = "omega" -o "${texprogram}" = "lambda" ]
+ then
+ dvips="odvips"
+ else
+ dvips="dvips"
+ fi
+
+ # Handle temp dir (cleanup is called on signal)
+ tmpext=$$-`/bin/date +"%s"`
+ tmpdir="/tmp/altpdf${texprogram}.${tmpext}"
+ # Force removal of possible existing tmpdir
+ cleanup
+ # Make new version
+ mkdir "${tmpdir}"
+
+ if [ "${startwithdvi}" = "yes" ]
+ then
+ dvifile="${file}"
+ else
+ texfile="${file}"
+ dvifile="${outdir}${nosuffixbasename}.dvi"
+ fi
+
+ psfile="${tmpdir}/${nosuffixbasename}${outputpostfix}.ps"
+ savedpsfile="${outdir}${nosuffixbasename}.ps"
+ pdffile="${tmpdir}/${nosuffixbasename}${outputpostfix}.pdf"
+ savedpdffile="${outdir}${nosuffixbasename}${outputpostfix}.pdf"
+
+ if [ "${debug}" = "yes" ]
+ then
+ /bin/echo "##### TeX file: $texfile"
+ /bin/echo "##### DVI file: $dvifile"
+ if [ "${dviprogram}" = "dvips" ]
+ then
+ /bin/echo "##### PS file: $psfile"
+ /bin/echo "##### Saved PS file: $savedpsfile"
+ fi
+ /bin/echo "##### Created PDF file: $pdffile"
+ /bin/echo "##### Final PDF file: $savedpdffile"
+ /bin/echo "##### Environment:"
+ env | sed 's/^/##### /g'
+ fi
+
+ if [ "${startwithdvi}" = "yes" ]; then
+ /bin/echo "### Skipping ${texprogram} ${texfile} [dvi->pdf only]"
+ else
+ /bin/echo "### ${texpath}/${texprogram} ${texfile}"
+ "${texpath}/${texprogram}" ${extratexoptions} "${texfile}" || \
+ /bin/echo "### WARNING: TeX returned non zero exit status ${status}"
+ fi
+
+ case "${dviprogram}" in
+ "dvips")
+ run_dvips;;
+ "dvipdfm")
+ run_dvipdfm;;
+ "dvipdfmx")
+ run_dvipdfm;;
+ *)
+ /bin/echo "### ERROR: wrong dvipdf mode ${dviprogram}"
+ esac
+
+ /bin/echo "### Copying/moving pdf file ${pdffile} to ${savedpdffile}"
+ /bin/cp "${pdffile}" "${savedpdffile}.${tmpext}" || \
+ /bin/echo "### FAILED to copy ${pdffile} (${status})"
+ /bin/rm -f "${savedpdffile}"
+ /bin/mv "${savedpdffile}.${tmpext}" "${savedpdffile}" || \
+ /bin/echo "### FAILED to rename ${savedpdffile}.${tmpext} (${status})"
+
+ if [ "${startwithdvi}" = "yes" ]; then
+ if [ "${keeppsfile}" = "yes" ]; then
+ /bin/echo "### Succesfully generated ${savedpdffile} and ${savedpsfile}"
+ else
+ /bin/echo "### Succesfully generated ${savedpdffile}"
+ fi
+ else
+ if [ "${keeppsfile}" = "yes" ]; then
+ /bin/echo "### Succesfully generated ${dvifile}, ${savedpdffile} and ${savedpsfile}"
+ else
+ /bin/echo "### Succesfully generated ${dvifile} and ${savedpdffile}"
+ fi
+ fi
+
+ cleanup
+}
+
+for file in "$@"
+do
+ main
+done