From cb1f34f8bcabffe0473d760bf9dd3343f8db537c Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 26 Jan 2020 23:58:37 +0000 Subject: tetex.tlpsrc: remove. scheme-infraonly.tlpsrc, collection-basic.tlpsrc: no more tetex. texlive.infra.tlpsrc: move fmtutil-hdr.cnf and updmap-hdr.cfg to texlive-scripts, where the scripts are. texmf-dist/doc/tetex: also remove, too old. texmf-dist/scripts/texlive-extra: add remaining auxiliary scripts from tl_scripts, from tetex days. .sh, e2pall.pl: move there (from Build/../tlscripts/). texlive-extra.tlpsrc: new package. collection-binextra.tlpsrc: add texlive-extra here. bin/*/all*: adjust symlinks. Build/.../texlive/linked_scripts/texlive-extra: add new scripts. Adjust Makefile.am, including creating mktexfmt symlink. Build/.../texlive/tl_scripts: remove all scripts from here, leaving only man pages. tl-check-wrapper-consistency: no more scripts in tl_scripts (will rename directory later). git-svn-id: svn://tug.org/texlive/trunk@53554 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/tetex/TETEXDOC.pdf | Bin 337756 -> 0 bytes Master/texmf-dist/doc/tetex/teTeX-FAQ | 440 ------ Master/texmf-dist/scripts/texlive-extra/dvi2fax.sh | 41 + Master/texmf-dist/scripts/texlive-extra/dvired.sh | 98 ++ Master/texmf-dist/scripts/texlive-extra/e2pall.pl | 89 ++ .../texmf-dist/scripts/texlive-extra/fontinst.sh | 16 + .../texmf-dist/scripts/texlive-extra/kpsetool.sh | 118 ++ .../texmf-dist/scripts/texlive-extra/kpsewhere.sh | 63 + Master/texmf-dist/scripts/texlive-extra/ps2frag.sh | 11 + Master/texmf-dist/scripts/texlive-extra/pslatex.sh | 46 + .../texmf-dist/scripts/texlive-extra/rubibtex.sh | 110 ++ .../scripts/texlive-extra/rumakeindex.sh | 77 ++ .../scripts/texlive-extra/texconfig-dialog.sh | 496 +++++++ .../scripts/texlive-extra/texconfig-sys.sh | 33 + .../texmf-dist/scripts/texlive-extra/texconfig.sh | 1449 ++++++++++++++++++++ .../texmf-dist/scripts/texlive-extra/texlinks.sh | 333 +++++ Master/texmf-dist/scripts/texlive/dvi2fax.sh | 41 - Master/texmf-dist/scripts/texlive/dvired.sh | 98 -- Master/texmf-dist/scripts/texlive/e2pall.pl | 89 -- Master/texmf-dist/scripts/texlive/fontinst.sh | 16 - Master/texmf-dist/scripts/texlive/kpsetool.sh | 118 -- Master/texmf-dist/scripts/texlive/kpsewhere.sh | 63 - Master/texmf-dist/scripts/texlive/ps2frag.sh | 11 - Master/texmf-dist/scripts/texlive/pslatex.sh | 46 - Master/texmf-dist/scripts/texlive/rubibtex.sh | 110 -- Master/texmf-dist/scripts/texlive/rumakeindex.sh | 77 -- .../texmf-dist/scripts/texlive/texconfig-dialog.sh | 496 ------- Master/texmf-dist/scripts/texlive/texconfig-sys.sh | 33 - Master/texmf-dist/scripts/texlive/texconfig.sh | 1449 -------------------- 29 files changed, 2980 insertions(+), 3087 deletions(-) delete mode 100644 Master/texmf-dist/doc/tetex/TETEXDOC.pdf delete mode 100644 Master/texmf-dist/doc/tetex/teTeX-FAQ create mode 100755 Master/texmf-dist/scripts/texlive-extra/dvi2fax.sh create mode 100755 Master/texmf-dist/scripts/texlive-extra/dvired.sh create mode 100755 Master/texmf-dist/scripts/texlive-extra/e2pall.pl create mode 100755 Master/texmf-dist/scripts/texlive-extra/fontinst.sh create mode 100755 Master/texmf-dist/scripts/texlive-extra/kpsetool.sh create mode 100755 Master/texmf-dist/scripts/texlive-extra/kpsewhere.sh create mode 100755 Master/texmf-dist/scripts/texlive-extra/ps2frag.sh create mode 100755 Master/texmf-dist/scripts/texlive-extra/pslatex.sh create mode 100755 Master/texmf-dist/scripts/texlive-extra/rubibtex.sh create mode 100755 Master/texmf-dist/scripts/texlive-extra/rumakeindex.sh create mode 100755 Master/texmf-dist/scripts/texlive-extra/texconfig-dialog.sh create mode 100755 Master/texmf-dist/scripts/texlive-extra/texconfig-sys.sh create mode 100755 Master/texmf-dist/scripts/texlive-extra/texconfig.sh create mode 100755 Master/texmf-dist/scripts/texlive-extra/texlinks.sh delete mode 100755 Master/texmf-dist/scripts/texlive/dvi2fax.sh delete mode 100755 Master/texmf-dist/scripts/texlive/dvired.sh delete mode 100755 Master/texmf-dist/scripts/texlive/e2pall.pl delete mode 100755 Master/texmf-dist/scripts/texlive/fontinst.sh delete mode 100755 Master/texmf-dist/scripts/texlive/kpsetool.sh delete mode 100755 Master/texmf-dist/scripts/texlive/kpsewhere.sh delete mode 100755 Master/texmf-dist/scripts/texlive/ps2frag.sh delete mode 100755 Master/texmf-dist/scripts/texlive/pslatex.sh delete mode 100755 Master/texmf-dist/scripts/texlive/rubibtex.sh delete mode 100755 Master/texmf-dist/scripts/texlive/rumakeindex.sh delete mode 100755 Master/texmf-dist/scripts/texlive/texconfig-dialog.sh delete mode 100755 Master/texmf-dist/scripts/texlive/texconfig-sys.sh delete mode 100755 Master/texmf-dist/scripts/texlive/texconfig.sh (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/tetex/TETEXDOC.pdf b/Master/texmf-dist/doc/tetex/TETEXDOC.pdf deleted file mode 100644 index 69649b88a8c..00000000000 Binary files a/Master/texmf-dist/doc/tetex/TETEXDOC.pdf and /dev/null differ diff --git a/Master/texmf-dist/doc/tetex/teTeX-FAQ b/Master/texmf-dist/doc/tetex/teTeX-FAQ deleted file mode 100644 index 025a668de92..00000000000 --- a/Master/texmf-dist/doc/tetex/teTeX-FAQ +++ /dev/null @@ -1,440 +0,0 @@ -This is the FAQ for teTeX -- a TeX distribution for UNIX compatible -systems. If you have questions about some points that remain unclear, -or if you think that things could be described better, just drop me -a line. My Email address: - - Thomas Esser - - -This article includes answers to: - 0) Where can I get the teTeX distribution? - 1) Is there a mailing list for teTeX? - 2) Now that I know that there is a mailing list: is there an archive - 6) I added some files in the texmf tree. But they are not found. - 7) When running some old dvi files through a dvi driver, I get warnings - 8) What is the best method to get pk fonts in a batch job? - 9) What to do if I need the fonts for several modes? - 10) Can I share the teTeX directory tree between different platforms? - 11) After mktexpk and mktextfm successfully generate fonts, kpathsea - 12) mktextfm runs Metafont with a mode that I do not like. - 14) How about adding program XYY or a macro package ABC to teTeX? - 15) I want to keep my files separate from the system's files. What do - I need to do to make sure that tex+friends will find my files? - 16) How do I deinstall an old version of teTeX? - 17) How do I manage to execute the right binaries on each platform? - 20) Using the Shrink* Buttons in xdvi, I cannot get back to see the full - 21) Which is the right way of using the AMS fonts/macros with LaTeX? - 23) Some things do not work properly. What should I do now? - 24) I get a error message about "TeX capacity exceeded". What can I do? - 25) The scrollbars of xdvi do not make sense to me. How do I move backwards? - 26) Is teTeX freely redistributable? - 27) dvips, pdftex, dvipdfm and xdvi use the European A4 size as default - 28) Why does ghostview display of my texts look so much worse than - 29) Metafont does not support the X display. - 32) How can I get the Euro currency symbol? - 33) Font map files and enc files from my local texmf tree are not - found by dvips / pdftex etc. - 34) texconfig, updmap and fmtutil just change my personal settings. How - can I change global defaults in a multi-user setup? - -Answers: - -0) Where can I get the teTeX distribution? - - teTeX can be downloaded from CTAN and CTAN mirrors, e.g.: - ftp://ftp.dante.de/tex-archive/systems/unix/teTeX/ - ftp://ftp.tex.ac.uk/tex-archive/systems/unix/teTeX/ - ftp://ftp.duke.edu/tex-archive/systems/unix/teTeX/ - ftp://sunsite.auc.dk/pub/tex/ctan/systems/unix/teTeX/ - -1) Is there a mailing list for teTeX? - - Yes. There is one list for discussion and one (moderated) list for - announcements. The discussion list is - tetex@dbs.uni-hannover.de - and the announcement list is - tetex-announce@dbs.uni-hannover.de - To subscribe to one of these lists, send a message containing the line - subscribe tetex - or - subscribe tetex-announce - resp. to majordomo@dbs.uni-hannover.de . The majordomo server - understands a few more commands. To get more help about our - server, send a mail with the line 'help' in the body. - Note that announcements are posted into both lists, so if you are - interested in discussions and announcements, you only need to - subscribe to the tetex list. - -2) Now that I know that there is a mailing list: is there an archive - of the list? - - Yes. Just send a message with the line - get tetex archive - to majordomo@dbs.uni-hannover.de . - -6) I added some files in the texmf tree. But they are not found. - - You need to run texhash to update the ls-R file. See answer to 15) - as well... - -7) When running some old dvi files through a dvi driver, I get warnings - about checksum errors. - - The Postscript fonts are completely rearranged and the tfm files have - different checksums. If you have the (La)TeX source of your document, - you can get rid of the messages by running the sources through (La)TeX - again. - -8) What is the best method to get pk fonts in a batch job? - - If you do have lots of dvi files (e.g. the documentation of teTeX), - just run the allneeded script on them. It runs all those files - through dvips (but output is send to /dev/null and not to a printer), - and thus calculates all fonts that are needed to print these files - (or preview with the same mode). - - Example: - allneeded `kpsexpand '$TEXMFMAIN'`/doc >& /tmp/allneeded.log & - - The above command calculates the pk files for all the installed - documentation in a background job. - - If you do not have many dvi files, you can use the allcm and/or - allec scripts (allcm is for Computer Modern fonts, and allec for the - ec fonts). You need to have LaTeX installed and the scripts calculate - the fonts for all sizes and shapes that are used in typical LaTeX - documents. - -9) What to do if I need the fonts for several modes? - - You only need the modes together with a printer or for previewing. You - should add a dvips configuration file for each printer using texconfig - and use the most common printing mode for previewing. - Then, any of the above scripts in 8) (allneeded, allcm, allec) can be - given an argument of the form -P PRINTER (where PRINTER must be a known - printer for dvips). This will calculate the fonts with the mode of - the printer PRINTER. - - Example: - For dvips I have configured the printer lp to have the mode - ljfour. To get all ec fonts with ljfour mode, I would enter: - - allec -P lp - - If you do not have a dvips configuration file that corresponds to a - specific mode, you can still enter the mode on the command line. - Note however, that you should specify the corresponding resolution - as well. - - Example: - To get all fonts in cx mode (CanonCX mode is used by many 300dpi - printers), give the command: - - allcm -D 300 -mode cx - - The flags -D and -mode are directly passed down to dvips. - -10) Can I share the teTeX directory tree between different platforms? - - Yes. The only platform-specific directory is $TETEXDIR/bin. If you - want to use the same teTeX tree on different platforms, just put - the binaries for each platform into a different subdirectory of - $prefix/bin, e.g - /usr/local/teTeX/bin/i486-linux - /usr/local/teTeX/bin/sparc-solaris2.4 - You can then mount the whole /usr/local/teTeX tree on all machines - and share almost all the files between them. - -11) After mktexpk and mktextfm successfully generate fonts, kpathsea - complains and does not use the newly generated font. - - If you happen to see output like this: - ... - Transcript written on ecti1000.log. - /usr/local/teTeX/texmf/fonts/tfm/jknappen/ec/ecti1000.tfm - kpathsea: Appending font creation commands to missfont.log. - ... - then your shell is probably very broken. This problem is known with - the original bash 1.14.3 that has many problems with exit codes and - trap handling. Try the following line: - - sh -c 'exit 1'; echo $? - - The buggy bash gives 127 as result. Fixes for these problems have been - available e.g. from the internet newsgroup gnu.bash.bug, so not all - instances of bash 1.14.3 are broken. Later versions of bash should not - have that bug. - -12) mktextfm runs Metafont with a mode that I do not like. - - Use texconfig and select a different mode as default mode. - -14) How about adding program XYY or a macro package ABC to teTeX? - - Well, there are some things to take into account: - - I want to keep the size of the distribution small. - - I have only a limited amount of time. - - teTeX can be installed with a simple - ./configure && make && make install - on the most common UNIX platforms. Adding a new program could - break the whole thing. - Please, think about this before asking me to add something. But if a - really useful thing can be added without much effort and disk space - usage, I may decide to do that. - - Another possibility is, that things are added to the contrib directory - of teTeX. - -15) I want to keep my files separate from the system's files. What do - I need to do to make sure that tex+friends will find my files? - - If you are a local site administrator, please make use of the texmf - tree $TEXMFLOCAL; a single user installation of local additions - should go into the texmf tree $HOME/texmf. Mirror the structure - of the distributed texmf tree $TEXMFDIST. You can query the system - about these locations (TEXMFLOCAL / TEXMFDIST) by running e.g. - kpsewhich -var-value TEXMFLOCAL - - The structure of these trees follows the TeX Directory Structure - (TDS) standard (revision 1.1). You can view this document by running - the command - texdoc tds - - The following sections of the uktug faq deal with this topic: - $TEXMFDIST/doc/help/faq/uktug-faq/FAQ-instpackages.html - $TEXMFDIST/doc/help/faq/uktug-faq/FAQ-wherefiles.html - $TEXMFDIST/doc/help/faq/uktug-faq/FAQ-privinst.html - - If texdoc properly knows how to load some html code into your browser, - you can view these pages by running e.g. - texdoc FAQ-instpackages.html - - One thing mentioned in the uktug faq is so important that I want to - repeat here: you should always run the command - texhash - after you have added some file into a texmf tree. - -16) How do I deinstall an old version of teTeX? - - Well, the simple answer is: rm -rf. But there may be some more things - you want to do. You may keep a backup of your .pk fonts or of some - local files you added to $TEXMF before you remove the old directory - tree. Note, however that from teTeX 0.2 to 0.3, there has been an - update of the CM fonts (Knuth has updated the Metafont sources). So - you may want to remove your old .pk files and have them recreated - with the new sources. - - Another problem is, that there may be some symbolic links in - /usr/local/{bin,man} (or a similar directory) after you remove the - old teTeX directory tree and you may want to remove those links, - too. A simple way to do this, is the following: - - cd /usr/local/bin - sh -c 'for i in *; do test -s $i || echo $i; done' - - This loop echo'es all files with zero length, especially all stale - symbolic links. If you want to remove all files that are shown by the - command above, you can do this with: - - sh -c 'for i in *; do test -s $i || rm -f $i; done' - - You can repeat the above steps for other directories, as well - (e.g. /usr/local/man/man1 and /usr/local/man/man5). - -17) How do I manage to execute the right binaries on each platform? - - Assuming that you have binaries for several platforms installed, your - binaries are in $TETEXDIR/bin/PLATFORM. The first thing you can try is - to set up your PATH with - SYSDIR=`uname -m`-`uname -s` - PATH=$TETEXDIR/bin/$SYSDIR:... - You may need to rename the PLATFORM directories for this method. - - Another thing that may help is to include a local directory in your - PATH (e.g. /usr/local/bin) and create symbolic links for the binaries: - linux# ln -sf /usr/local/teTeX/bin/i486-linux/* /usr/local/bin - sun# ln -sf /usr/local/teTeX/bin/sparc-solaris2.4/* /usr/local/bin - ... - - If you do not like the uname-method for your PATH and the symlink - method, you may consider installing a small wrapper program that - calls the programs for the right platform. Install the wrapper in - $TETEXDIR/bin and create a symbolic link for each binary. - - Here an example: - TETEXDIR=/usr/local/teTeX - cd $TETEXDIR/bin - vi platf_wrapper # see script below ... - chmod +x platf_wrapper - list=`ls i486-linux` # get a list of programs. - for i in $list; do - ln -s platf_wrapper $i - done - - Tell your users to include $TETEXDIR/bin in their PATH. Make sure - that TETEXDIR is either set to an absolute path (e.g. /usr/local/teTeX) - or to $SELFAUTODIR (but not $SELFAUTOPARENT), since the programs are - now found one directory level earlier. - - Now the sample wrapper. Customize, if you need: - - #!/bin/sh - - # the path to the directories with the subdirs for each platform - BINDIR=/usr/local/teTeX/bin - - # export the variable. If we are called again, - # we do not need to recalculate. - export THIS_PLATFORM - - case "$THIS_PLATFORM" in - "") - case "`uname -s`" in - Linux) - THIS_PLATFORM=i486-linux;; - SunOS) - THIS_PLATFORM=sparc-solaris2.4;; - IRIX) - THIS_PLATFORM=mips-irix5.3;; - *) - echo "$0: fatal error: system not detected." >&2 - exit 1 - esac;; - esac - - exec $BINDIR/$THIS_PLATFORM/`basename $0` "$@" - -20) Using the Shrink* Buttons in xdvi, I cannot get back to see the full - page on the screen. - - The four buttons can be configured via X resources. Just add - them either to your personal X resources (usually ~/.Xdefaults) - or to xdvi's global configuration file XDvi which resides in - $TEXMFMAIN/xdvi. Such a resource setting might look like this: - XDvi*shrinkButton3: 6 - (This example configures button 3 to do a shrinking by a factor of 6). - - -21) Which is the right way of using the AMS fonts/macros with LaTeX? - - Just \usepackage{amsmath} and/or \usepackage{amsfonts}. Read - the documentation in doc/latex/amsmath, doc/latex/amsfonts and - doc/latex/amscls included in the distributed texmf tree. - - Do *not* \usepackage{amstex} (amstex.sty is just for compatibility - with old documents and only for use in LaTeX's 2.09 compatibility mode). - - Add \usepackage{amssymb} to get full access to all AMS symbols. - -23) Some things do not work properly. What should I do now? - - First, make sure that your "environment" is ok and run - texconfig confall - This gives you an idea about which binaries are found along your - PATH and if you have set some environment variables that might - confuse teTeX's programs. If in doubt, unset all variables that - are set in the "environment variables" section of the output. - - If binaries other than teTeX's are found, then change the definition - of your PATH. Put the directory containing teTeX's binaries earlier - into your PATH, so that teTeX's binaries are found before any other - TeX related stuff. - - Then, your ls-R file might be out of date. Run - texhash - and see if your problem goes away. - - If your problem is due to old LaTeX209 files that do not work with - LaTeX2e, then read $TEXMF/doc/latex/base/clsguide.dvi. - - If you cannot solve your problem by yourself, then - a) if you think your problem is a general question about TeX/LaTeX: - ask in some Newsgroup, such as comp.text.tex for help, or try to - contact a local TeX user group. - b) if you think there is a bug in a package contained in teTeX: - contact the maintainer of the package with a good bug report. Add my - Email address in the Cc field of your bug report, if you want. - c) if your problem seems to be teTeX specific (e.g. a problem with - one of the binaries or shell-scripts), then report it to the - teTeX mailing list (tetex@dbs.uni-hannover.de). Please - provide the following information: - - * The version of teTeX you have. For example - teTeX version is 3.0 - (the version information is displayed by running "texconfig conf"). - - * The flavor of Unix you are running (Solaris, HP, Linux, etc), and - its version. For example - The system is Solaris 2.4 - - * The output of the command - texconfig conf - - * Possibly a *short* TeX file you have problem running, and - the whole output of `texcommand filename', say, until the - first error. - -24) I get a error message about "TeX capacity exceeded". What can I do? - - If there is a constant in the system's texmf.cnf file, just enlarge - this (by editing the texmf.cnf file) and run the command - texconfig init - -25) The scrollbars of xdvi do not make sense to me. How do I move backwards? - - The scrollbars are what one calls Athena scrollbars. To scroll - forward, click the left mouse button on the location you would want - to scroll to the beginning of the displayed area. To scroll backward, - click the right mouse button on where you want to scroll the beginning - of the displayed area to. Click the middle mouse button for "dragging" - the beginning of the displayed area around. - -26) Is teTeX freely redistributable? - - Yes. All parts of teTeX have been classified as being free software. - -27) dvips, pdftex, dvipdfm and xdvi use the European A4 size as default - papersize. How do I change this to make letterpaper the default? - - Simple answer: use texconfig. - texconfig paper letter - -28) Why does ghostview display of my texts look so much worse than - with xdvi? - - xdvi does antialiasing. If your version of ghostscript is - sufficiently new, it has the x11alpha device. Check for this with - gs -h - If it has, then putting - Ghostview*arguments: -sDEVICE=x11alpha - in your .Xdefault file (typically) will make ghostview use an - anti-aliasing display as well, at the cost of display speed. - -29) Metafont does not support the X display. - It may be that your Metafont binary is compiled without support for - the X windows system. If there exists a mfw binary, that one - has the missing X support you need. - -32) How can I get the Euro currency symbol? - - In LaTeX, use the marvosym package (documentation: texdoc marvodoc). - It provides several Euro symbol by the command \EUR. The variants - \EURtm, \EURhv and \EURcr match are designed to be used together - with the fonts Times, Helvetica and Courier respectively. - -33) Font map files and enc files from my local texmf tree are not found - by dvips / pdftex etc. - - With version 1.1 of the TeX Directory Structure, the location for - these files was changed. These files are font files and are now - stored in fonts/{map,enc}//. So, the solution to - your problem is to rearrange these files in your tree and then call - the command texhash. More help is given in the release notes section - of the teTeX manual (run the command "texdoc TETEXDOC" to read it) - and on the web page http://www.tug.org/texlive/mapenc.html. - -34) texconfig, updmap and fmtutil just change my personal settings. How - can I change global defaults in a multi-user setup? - - Simple answer: use the -sys variant of the tool: texconfig-sys, - updmap-sys and fmtutil-sys. diff --git a/Master/texmf-dist/scripts/texlive-extra/dvi2fax.sh b/Master/texmf-dist/scripts/texlive-extra/dvi2fax.sh new file mode 100755 index 00000000000..fdfa83211eb --- /dev/null +++ b/Master/texmf-dist/scripts/texlive-extra/dvi2fax.sh @@ -0,0 +1,41 @@ +#!/bin/sh +# options for dvips are passwd down + +test -f /bin/sh5 && test -z "$RUNNING_SH5" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } +unset RUNNING_SH5 + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +progname=`basename "$0"` +help() +{ + echo "Usage: $progname [-hi|-lo] file[.dvi] [options for dvips]" + echo " -hi: use high fax resolution (204x196) (default)" + echo " -lo: use low fax resolution (204x98)" + echo + echo "Example: $progname foo -l 2" +} + +dvipsconf=dfaxhigh; gsdev=dfaxhigh +case $1 in + -hi) gsdev=dfaxhigh; shift;; + -lo) gsdev=dfaxlow; shift;; +esac + +case $# in + 0) help >&2 + exit 1 + ;; +esac + +NAME=`basename "$1" .dvi` +dvips "$@" -P$dvipsconf -f | + gs -q -dSAFER -sDEVICE=$gsdev -sOutputFile="$NAME-%03d.fax" -sNOPAUSE - diff --git a/Master/texmf-dist/scripts/texlive-extra/dvired.sh b/Master/texmf-dist/scripts/texlive-extra/dvired.sh new file mode 100755 index 00000000000..4eb3586119d --- /dev/null +++ b/Master/texmf-dist/scripts/texlive-extra/dvired.sh @@ -0,0 +1,98 @@ +#!/bin/sh +#============================================================================== +# Version: 0.3 +# Module: dvired +# Purpose: Translate dvi-file into postscript with reduced output size. +# Two logical pages will be put on onto each physical sheet of +# paper. +# System: Linux. UNIX(tm) systems may work as well :-) +# Requires: pstops (http://www.dcs.ed.ac.uk/home/ajcd/psutils/), dvips +# Created: 19.11.1992 +# Last Change: 13.08.1999 +# Language: sh +# Author: Thomas Esser +# Address: te@dbs.uni-hannover.de +# Copyright: (c) 1994, 1999 by Thomas Esser +# Copying: GNU GENERAL PUBLIC LICENSE +#============================================================================== + +test -f /bin/sh5 && test -z "$RUNNING_SH5" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } +unset RUNNING_SH5 + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +help() +{ + cat < "$of" + ;; +esac diff --git a/Master/texmf-dist/scripts/texlive-extra/e2pall.pl b/Master/texmf-dist/scripts/texlive-extra/e2pall.pl new file mode 100755 index 00000000000..2997f8b1102 --- /dev/null +++ b/Master/texmf-dist/scripts/texlive-extra/e2pall.pl @@ -0,0 +1,89 @@ +#!/usr/bin/env perl + +# Author: Jody Klymak , publisted by a posting +# to the pdftex mailinglist. + +# recursively finds all your eps files. Looks down \input{fname}. +# CAVEATS: +# 1) cannot handle \input{fname} split over more than one line. +# 1.5) cannot handle multiple \input{} or \includegraphics{} on one line. +# 2) Must be run from same directory as the Latex file. +# 3) Does not look down $TEXINPUTS or anything fancy like that... +# 4) Handling of \include is untested (though I guess its trivial) +# 5) Assumes *all* your graphics inclusions are [e]ps. But don't +# fret, because if they are not epstopdf dies anyhow.... +# 6) Does not distinguish between percent (\%) and comment (%). + +# Changelog: +# 20030103 -- Lachlan Andrew +# * Only append '.tex' if $fname doesn't exist. +# * Correctly handle lines with '}' after the \includegraphics{} +# * Allow multiple extensions for graphics files. .eps -> .ps -> none +# (Should try them in the same order as \includegraphics does +# -- given by \DeclareGraphicsExtensions{}?) +# * Allow \include the same way as \input +# * Allow \includegraphics{} to be split over multiple lines +# * Check that commands begin with '\', and allow spaces before arguments + +# EDIT these two lines for your system.... + +$Eps2PdfCom = "epstopdf"; +$ThisFunCom = "e2pall"; + +$fname=$ARGV[0]; + +# check for a *.tex at the end... +if ((-f "$fname")=="" && $fname !~ /.tex$/){ + $fname = "$fname.tex"; +} + +open(TEXFILE,$fname) or die "Cannot open file $fname"; +# print "Finding *.eps files in $fname\n"; + +$seekingArg = 0; +while($line=){ + # truncate $line after % sign.... + $line=~s/%.*//; + # check for /input.... + if ($line=~/\\input *{([^}]*)}/){ + print `$ThisFunCom $1`; + } + # check for /include.... + if ($line=~/\\include *{([^}]*)}/){ + print `$ThisFunCom $1`; + } + + $base = ""; + if ($line=~/\\includegraphics.*{([^}]*)}/){ + $base = $1; + } + elsif ($seekingArg==1 && ($line=~/{([^}]*)}/)){ + $base = $1; + } + elsif ($line=~/\\includegraphics/){ + $seekingArg = 1; + } + + if ($base ne "") { + $seekingArg = 0; + if ((-f "$base.eps")!="") { + $srcfile = "$base.eps"; + } + elsif ((-f "$base.ps")!=""){ + $srcfile = "$base.ps"; + } + else { + $srcfile = $base; + } + # check that the [e]ps version is newer than the pdf version.... + if ((-M "$base.pdf")=="" || (-M "$base.pdf") >= (-M "$srcfile")){ + print "Constructing \t $base.pdf from $srcfile\n"; + print `$Eps2PdfCom $srcfile`; + } + else{ + print "$base.pdf \t is up to date with $srcfile\n"; + } + + }; +} +close(TEXFILE); diff --git a/Master/texmf-dist/scripts/texlive-extra/fontinst.sh b/Master/texmf-dist/scripts/texlive-extra/fontinst.sh new file mode 100755 index 00000000000..7d1271517ad --- /dev/null +++ b/Master/texmf-dist/scripts/texlive-extra/fontinst.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +test -f /bin/sh5 && test -z "$RUNNING_SH5" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } +unset RUNNING_SH5 + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +tex -progname=fontinst \&tex ${1+"$@"} diff --git a/Master/texmf-dist/scripts/texlive-extra/kpsetool.sh b/Master/texmf-dist/scripts/texlive-extra/kpsetool.sh new file mode 100755 index 00000000000..463097fd4a9 --- /dev/null +++ b/Master/texmf-dist/scripts/texlive-extra/kpsetool.sh @@ -0,0 +1,118 @@ +#!/bin/sh + +# kpsetool. Script to make teTeX-style kpsetool, kpsexpand and kpsepath +# available. Web2C's kpsewhich offers a superset of the functionality. +# For compatibilty with old versions of teTeX, this script provides the +# old command line interface of kpsetool, kpsexpand and kpsepath. All the +# real work is done inside Web2C's kpsewhich. +# Thomas Esser , Mar 1997, public domain. + +export PATH + +usage=" +Usage: kpsexpand [options] string +Usage: kpsetool -w [options] pathtype filename +Usage: kpsepath [options] pathtype + +Valid options are the following: + -n progname : pretend to be progname to kpathsea + -m mode : set Metafont mode + -w : locate files (similar to kpsewhich) + -p : act like kpsepath + -v : act like kpsexpand + +Valid pathtypes are: + gf : generic font bitmap + pk : packed bitmap font + base : Metafont memory dump + bib : BibTeX bibliography source + bst : BibTeX style files + cnf : Kpathsea runtime configuration files + fmt : TeX memory dump + mem : MetaPost memory dump + mf : Metafont source + mfpool : Metafont program strings + mp : MetaPost source + mppool : MetaPost program strings + mpsupport : MetaPost support files + pict : Other kinds of figures + tex : TeX source + texpool : TeX program strings + tfm : TeX font metrics + vf : virtual font + dvips_config : dvips config files + dvips_header : dvips header files + troff_font : troff fonts +" + +action=kpsexpand +case $0 in + */kpsewhich) action=kpsewhich;; + */kpsepath) action=kpsepath;; +esac + +progname=`echo $0 | sed 's@.*/@@'` +flags='' + +while true; do + case x"$1" in + x-n) + if test $# = 1; then + echo "$progname: missing argument for -n." + echo "$usage"; exit 1 + else + flags="$flags -progname=$2"; shift; shift + fi;; + x-m) + if test $# = 1; then + echo "$progname: missing argument for -m." + echo "$usage"; exit 1 + else + flags="$flags -mode=$2"; shift; shift + fi;; + x-w) action=kpsewhich; shift;; + x-p) action=kpsepath; shift;; + x-v) action=kpsexpand; shift;; + *) break;; + esac +done + +case "$action" in + kpsewhich|kpsepath) + case "$1" in + gf) format='gf';; + pk) format='pk';; + base) format='.base';; + bib) format='.bib';; + bst) format='.bst';; + cnf) format='.cnf';; + fmt) format='.fmt';; + mem) format='.mem';; + mf) format='.mf';; + mfpool) format='.pool';; + mp) format='.mp';; + mppool) format='.pool';; + mpsupport) format='MetaPost support';; + pict) format='.eps';; + tex) format='.tex';; + texpool) format='.pool';; + tfm) format='.tfm';; + vf) format='.vf';; + dvips_config) format='dvips config';; + dvips_header) format='.pro';; + troff_font) format='Troff fonts';; + *) echo "$progname: $1: unknown format"; echo "$usage"; exit 1;; + esac + shift;; +esac + +case "$action" in + kpsewhich) + test $# = 1 || { echo "$progname: missing filename"; echo "$usage"; exit 1; } + kpsewhich $flags -format="$format" "$1";; + kpsepath) + kpsewhich $flags -show-path="$format";; + kpsexpand) + test $# = 1 || { echo "$progname: missing string"; echo "$usage"; exit 1; } + kpsewhich $flags -expand-var="$1";; +esac diff --git a/Master/texmf-dist/scripts/texlive-extra/kpsewhere.sh b/Master/texmf-dist/scripts/texlive-extra/kpsewhere.sh new file mode 100755 index 00000000000..51088ee80d6 --- /dev/null +++ b/Master/texmf-dist/scripts/texlive-extra/kpsewhere.sh @@ -0,0 +1,63 @@ +#!/bin/sh +# +# Thomas Esser, Hans Fredrik Nordhaug, 2003, 2004. +# Public domain. +# +# kpsewhere is an extension to kpsewhich (as where is for which in tcsh). +# The intention is to provide a way to check for conflicts/shadowed +# files. +# +# Original version by Hans Fredrik Nordhaug +# +# Bugs / limitations: +# conflicts/shadowed files whithin each texmf tree are not found. +# + + +test -f /bin/sh5 && test -z "$RUNNING_SH5" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } +unset RUNNING_SH5 + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +export PATH + +help='Usage: kpsewhere [OPTION]... [FILENAME]... + Expanding kpsewhich to iterate over each texmf tree listed in $TEXMF + separately. + + See kpsewhich for help on options. + + --help show this help' + +options= +while + case $1 in + -h|-help|--help) + echo "$help" >&2 + exit 0;; + -*) options="${options} '${1}'";; + *) break;; + esac +do shift; done + +case $# in + 0) + echo "$help" >&2 + exit 1 + ;; +esac + +IFS=':' +for file +do + for path in `kpsewhich --expand-path='$TEXMF'` + do + eval TEXMF=\$path kpsewhich $options \"\$file\" + done +done +exit 0 diff --git a/Master/texmf-dist/scripts/texlive-extra/ps2frag.sh b/Master/texmf-dist/scripts/texlive-extra/ps2frag.sh new file mode 100755 index 00000000000..b8e673be087 --- /dev/null +++ b/Master/texmf-dist/scripts/texlive-extra/ps2frag.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +tty -s && { + echo + echo "Warning: the ps2frag script is not needed with this version of psfrag." + echo "Please read the manpage ps2frag(1) and the documentation of the" + echo "psfrag package." + echo +} >&2 + +exit 0 diff --git a/Master/texmf-dist/scripts/texlive-extra/pslatex.sh b/Master/texmf-dist/scripts/texlive-extra/pslatex.sh new file mode 100755 index 00000000000..4badef0ec12 --- /dev/null +++ b/Master/texmf-dist/scripts/texlive-extra/pslatex.sh @@ -0,0 +1,46 @@ +#!/bin/sh + +# Copyright 1994 David Carlisle +# This file may be redistributed and/or modified under the terms of the +# LaTeX Project Public License distributed from CTAN archives in directory +# macros/latex/base/lppl.txt; either version 1 of the License, or (at +# your option) any later version. + +test -f /bin/sh5 && test -z "$RUNNING_SH5" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } +unset RUNNING_SH5 + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +# we want to be able to use options to latex: +while :; do + case $1 in + -*) + latexoptions="$latexoptions \"$1\"" + shift;; + *) + break;; + esac +done + +echo +echo "*************************************" +echo "* Using LaTeX, with pslatex package *" +echo "*************************************" +echo + +# messing around with \PSLATEXTMP is for AUCTeX which calls +# documents via latex \nonstopmode \input{file} + +latex $latexoptions \ + "\AtBeginDocument{\RequirePackage{pslatex}}"\ + "\def\PSLATEXTMP{\futurelet\PSLATEXTMP\PSLATEXTMPB}"\ + "\def\PSLATEXTMPB{\ifx\PSLATEXTMP\nonstopmode\else\input\fi}"\ + "\PSLATEXTMP" ${1+"$@"} diff --git a/Master/texmf-dist/scripts/texlive-extra/rubibtex.sh b/Master/texmf-dist/scripts/texlive-extra/rubibtex.sh new file mode 100755 index 00000000000..373e6e1194d --- /dev/null +++ b/Master/texmf-dist/scripts/texlive-extra/rubibtex.sh @@ -0,0 +1,110 @@ +#!/bin/sh + +# rubibtex, based on the original version contained in the t2 bundle. +# Thomas Esser, Public Domain. + +progname=rubibtex +tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$ +job=$1 +backup="$tmpdir/orig.aux" + +case $job in + "") + echo "usage: $progname file" >&2 + exit 1 +esac + +if test ! -f "$job.aux"; then + echo "$progname: file \`$job.aux' does not exist." >&2 + exit 1 +fi + +trap ' + rm -rf "$tmpdir" + exit 1 +' 1 2 3 7 13 15 +(umask 077; mkdir "$tmpdir") \ + || { echo "$progname: could not create directory \`$tmpdir'" >&2; exit 1; } + +cat <"$job.aux" >"$backup" || { + echo "$progname: could not create backup of file \`$job.aux' as \`$backup'." >&2 + rm -rf "$tmpdir" + exit 1 +} + +sed ' + /^\\citation/ { + s/\\IeC {\\CYRA }/á/g + s/\\IeC {\\CYRB }/â/g + s/\\IeC {\\CYRV }/÷/g + s/\\IeC {\\CYRG }/ç/g + s/\\IeC {\\CYRD }/ä/g + s/\\IeC {\\CYRE }/å/g + s/\\IeC {\\CYRYO }/³/g + s/\\IeC {\\CYRZH }/ö/g + s/\\IeC {\\CYRZ }/ú/g + s/\\IeC {\\CYRI }/é/g + s/\\IeC {\\CYRISHRT }/ê/g + s/\\IeC {\\CYRK }/ë/g + s/\\IeC {\\CYRL }/ì/g + s/\\IeC {\\CYRM }/í/g + s/\\IeC {\\CYRN }/î/g + s/\\IeC {\\CYRO }/ï/g + s/\\IeC {\\CYRP }/ð/g + s/\\IeC {\\CYRR }/ò/g + s/\\IeC {\\CYRS }/ó/g + s/\\IeC {\\CYRT }/ô/g + s/\\IeC {\\CYRU }/õ/g + s/\\IeC {\\CYRF }/æ/g + s/\\IeC {\\CYRH }/è/g + s/\\IeC {\\CYRC }/ã/g + s/\\IeC {\\CYRCH }/þ/g + s/\\IeC {\\CYRSH }/û/g + s/\\IeC {\\CYRSHCH }/ý/g + s/\\IeC {\\CYRHRDSN }/ÿ/g + s/\\IeC {\\CYRERY }/ù/g + s/\\IeC {\\CYRSFTSN }/ø/g + s/\\IeC {\\CYREREV }/ü/g + s/\\IeC {\\CYRYU }/à/g + s/\\IeC {\\CYRYA }/ñ/g + s/\\IeC {\\cyra }/Á/g + s/\\IeC {\\cyrb }/Â/g + s/\\IeC {\\cyrv }/×/g + s/\\IeC {\\cyrg }/Ç/g + s/\\IeC {\\cyrd }/Ä/g + s/\\IeC {\\cyre }/Å/g + s/\\IeC {\\cyryo }/£/g + s/\\IeC {\\cyrzh }/Ö/g + s/\\IeC {\\cyrz }/Ú/g + s/\\IeC {\\cyri }/É/g + s/\\IeC {\\cyrishrt }/Ê/g + s/\\IeC {\\cyrk }/Ë/g + s/\\IeC {\\cyrl }/Ì/g + s/\\IeC {\\cyrm }/Í/g + s/\\IeC {\\cyrn }/Î/g + s/\\IeC {\\cyro }/Ï/g + s/\\IeC {\\cyrp }/Ð/g + s/\\IeC {\\cyrr }/Ò/g + s/\\IeC {\\cyrs }/Ó/g + s/\\IeC {\\cyrt }/Ô/g + s/\\IeC {\\cyru }/Õ/g + s/\\IeC {\\cyrf }/Æ/g + s/\\IeC {\\cyrh }/È/g + s/\\IeC {\\cyrc }/Ã/g + s/\\IeC {\\cyrch }/Þ/g + s/\\IeC {\\cyrsh }/Û/g + s/\\IeC {\\cyrshch }/Ý/g + s/\\IeC {\\cyrhrdsn }/ß/g + s/\\IeC {\\cyrery }/Ù/g + s/\\IeC {\\cyrsftsn }/Ø/g + s/\\IeC {\\cyrerev }/Ü/g + s/\\IeC {\\cyryu }/À/g + s/\\IeC {\\cyrya }/Ñ/g + } +' <"$backup" >"$job.aux" + +bibtex "$job" + +cat "$backup" > "$job.aux" +rm -rf "$tmpdir" +exit 0 diff --git a/Master/texmf-dist/scripts/texlive-extra/rumakeindex.sh b/Master/texmf-dist/scripts/texlive-extra/rumakeindex.sh new file mode 100755 index 00000000000..b7b0c072729 --- /dev/null +++ b/Master/texmf-dist/scripts/texlive-extra/rumakeindex.sh @@ -0,0 +1,77 @@ +#!/bin/sh + +BASE=`basename "$1" .idx` +IDX=$BASE.idx +IND=$BASE.ind +ILG=$BASE.ilg + +sed ' +/^\\indexentry{/ { +s/\\IeC {\\CYRA }/¾/g +s/\\IeC {\\cyra }/¿/g +s/\\IeC {\\CYRB }/À/g +s/\\IeC {\\cyrb }/Á/g +s/\\IeC {\\CYRV }/Â/g +s/\\IeC {\\cyrv }/Ã/g +s/\\IeC {\\CYRG }/Ä/g +s/\\IeC {\\cyrg }/Å/g +s/\\IeC {\\CYRD }/Æ/g +s/\\IeC {\\cyrd }/Ç/g +s/\\IeC {\\CYRE }/È/g +s/\\IeC {\\cyre }/É/g +s/\\IeC {\\CYRYO }/Ê/g +s/\\IeC {\\cyryo }/Ë/g +s/\\IeC {\\CYRZH }/Ì/g +s/\\IeC {\\cyrzh }/Í/g +s/\\IeC {\\CYRZ }/Î/g +s/\\IeC {\\cyrz }/Ï/g +s/\\IeC {\\CYRI }/Ð/g +s/\\IeC {\\cyri }/Ñ/g +s/\\IeC {\\CYRISHRT }/Ò/g +s/\\IeC {\\cyrishrt }/Ó/g +s/\\IeC {\\CYRK }/Ô/g +s/\\IeC {\\cyrk }/Õ/g +s/\\IeC {\\CYRL }/Ö/g +s/\\IeC {\\cyrl }/×/g +s/\\IeC {\\CYRM }/Ø/g +s/\\IeC {\\cyrm }/Ù/g +s/\\IeC {\\CYRN }/Ú/g +s/\\IeC {\\cyrn }/Û/g +s/\\IeC {\\CYRO }/Ü/g +s/\\IeC {\\cyro }/Ý/g +s/\\IeC {\\CYRP }/Þ/g +s/\\IeC {\\cyrp }/ß/g +s/\\IeC {\\CYRR }/à/g +s/\\IeC {\\cyrr }/á/g +s/\\IeC {\\CYRS }/â/g +s/\\IeC {\\cyrs }/ã/g +s/\\IeC {\\CYRT }/ä/g +s/\\IeC {\\cyrt }/å/g +s/\\IeC {\\CYRU }/æ/g +s/\\IeC {\\cyru }/ç/g +s/\\IeC {\\CYRF }/è/g +s/\\IeC {\\cyrf }/é/g +s/\\IeC {\\CYRH }/ê/g +s/\\IeC {\\cyrh }/ë/g +s/\\IeC {\\CYRC }/ì/g +s/\\IeC {\\cyrc }/í/g +s/\\IeC {\\CYRCH }/î/g +s/\\IeC {\\cyrch }/ï/g +s/\\IeC {\\CYRSH }/ð/g +s/\\IeC {\\cyrsh }/ñ/g +s/\\IeC {\\CYRSHCH }/ò/g +s/\\IeC {\\cyrshch }/ó/g +s/\\IeC {\\CYRHRDSN }/ô/g +s/\\IeC {\\cyrhrdsn }/õ/g +s/\\IeC {\\CYRERY }/ö/g +s/\\IeC {\\cyrery }/÷/g +s/\\IeC {\\CYRSFTSN }/ø/g +s/\\IeC {\\cyrsftsn }/ù/g +s/\\IeC {\\CYREREV }/ú/g +s/\\IeC {\\cyrerev }/û/g +s/\\IeC {\\CYRYU }/ü/g +s/\\IeC {\\cyryu }/ý/g +s/\\IeC {\\CYRYA }/þ/g +s/\\IeC {\\cyrya }/ÿ/g +}' $IDX | makeindex -t $ILG | tr '¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' \ + 'áÁâÂ÷×çÇäÄåų£öÖúÚéÉêÊëËìÌíÍîÎïÏðÐòÒóÓôÔõÕæÆèÈãÃþÞûÛýÝÿßùÙøØüÜàÀñÑ' > $IND diff --git a/Master/texmf-dist/scripts/texlive-extra/texconfig-dialog.sh b/Master/texmf-dist/scripts/texlive-extra/texconfig-dialog.sh new file mode 100755 index 00000000000..9cfe74c54c0 --- /dev/null +++ b/Master/texmf-dist/scripts/texlive-extra/texconfig-dialog.sh @@ -0,0 +1,496 @@ +#!/bin/sh +# $Id$ +# texconfig-dialog +# Originally written by Thomas Esser. Public domain. +# Now maintained as part of TeX Live; correspondence to tex-live@tug.org. + +# invoke the right shell: + +test -f /bin/ksh && test -z "$RUNNING_KSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; } +unset RUNNING_KSH + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +# preferentially use subprograms from our own directory. +mydir=`echo "$0" | sed 's,/[^/]*$,,'` +mydir=`cd "$mydir" && pwd` +PATH="$mydir:$PATH"; export PATH + +# the version string +version='$Id$' + +: ${PAGER=more} +progname=texconfig-dialog +tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/tcdtmp.$$ +log=$tmpdir/log +tmpmenu=$tmpdir/tmpmenu +needsCleanup=false + +############################################################################### +# cleanup() +# clean up the temp area and exit with proper exit status +############################################################################### +cleanup() +{ + rc=$1 + $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \ + && { cd / && rm -rf "$tmpdir"; } + # use clear rather than reset since we cannot easily save and restore + # the terminal settings, which is what would be ideal. See thread + # starting at http://tug.org/pipermail/tex-live/2016-March/037852.html. + termCtl clear + (exit $rc); exit $rc +} + +############################################################################### +# setupTmpDir() +# set up a temp directory and a trap to remove it +############################################################################### +setupTmpDir() +{ + case $needsCleanup in + true) return;; + esac + + trap 'cleanup 1' 1 2 3 7 13 15 + needsCleanup=true + (umask 077; mkdir "$tmpdir") \ + || abort "could not create directory \`$tmpdir'" +} + +############################################################################### +# abort(errmsg) +# print `errmsg' to stderr and exit with error code 1 +############################################################################### +abort() +{ + echo "$progname: $1." >&2 + cleanup 1 +} + +logexec() +{ + (echo; echo ">>> Executing \`$@' <<<") >> $log + "$@" 2>&1 | tee -a $log +} + +############################################################################### +# runDialog(args, ...) +# execute the right dialog program with the right default parameters +############################################################################### +runDialog() +{ + if test -n "$DIALOG_PROG"; then + termCtl clear + $DIALOG_PROG --title "TeX setup utility" ${1+"$@"} + runDialogRc=$? + termCtl clear + else + abort "could not find dialog or whiptail program to run" + fi + (exit $runDialogRc) + return $runDialogRc +} + +############################################################################### +# findDialog(void) +# set DIALOG_PROG to the system dialog program, or the empty string. +############################################################################### +findDialog() +{ + for bin in whiptail dialog + do + binLoc=`texconfig findprog $bin` + case $binLoc in + "") DIALOG_PROG="";; + *) DIALOG_PROG=$binLoc; break;; + esac + done +} + +############################################################################### +# mktexdir(args) +# call mktexdir script, disable all features (to prevent sticky directories) +############################################################################### +mktexdir() +{ + MT_FEATURES=none "$TEXMFMAIN/web2c/mktexdir" "$@" >&2 +} + +############################################################################### +# termCtl(arg) +# some convenience utilities for terminal control +############################################################################### +termCtl() +{ + case $1 in + clear) + test -n "$NO_CLEAR" && return + tty >/dev/null 2>&1 && clear + ;; + reset) + test -n "$NO_CLEAR" && return + reset 2>/dev/null + stty sane 2>/dev/null + reset 2>/dev/null + termCtl clear + ;; + readln) + echo + echo "press return to continue..." + read a + ;; + esac +} + +############################################################################### +# menuMain(void) +# the main menu +############################################################################### +menuMain() +{ + cat <<-'eof' + The interactive texconfig utility will be started now. Make sure + your screen has at least 24 rows and 80 columns. If texconfig + crashes now, you can still set up your TeX system using the + batch mode of texconfig. Try 'texconfig help' to get a list + of options. + + The interactive mode works best with a real vt100 terminal or + inside an xterm window. + + More likely these days, you're better off using tlmgr. + See http://tug.org/texlive/tlmgr.html. +eof + termCtl readln + + while :; do + logMessage='view logfile' + + runDialog \ + --menu " +Hint: all output of external commands (e.g. tex) is logged into +a file. You can look at this file using "LOG". If cursor keys make +trouble, you may have more luck with +/- and TAB. +" \ + 23 80 14 \ + EXIT 'exit' \ + PAPER 'default paper: A4 or letter (us)' \ + MODE 'default metafont mode and resolution' \ + REHASH 'rebuild filename databases' \ + FORMATS 'edit format definitions' \ + HYPHENATION 'customize hyphenation' \ + DVIPS 'dvips configuration' \ + FAQ 'view frequently asked questions + answers' \ + CONF 'show configuration' \ + LOG "$logMessage" \ + 2>"$tmpmenu" || break + + case `cat "$tmpmenu"` in + EXIT) + break + ;; + PAPER) + menuPaper + ;; + MODE) + menuMode + ;; + REHASH) + logexec texconfig rehash + termCtl readln + ;; + FORMATS) + texconfig formats + termCtl readln + ;; + HYPHENATION) + menuHyphenation + ;; + DVIPS) + menuDvips + ;; + FAQ) + texconfig faq + termCtl readln + ;; + CONF) + logexec texconfig conf + termCtl readln + ;; + LOG) + <"$log" eval $PAGER + termCtl readln + ;; + esac + done +} + +menuGetMode() +{ + # we need eval to get the command line right... :-( + eval \ + runDialog \ + --menu \"" +Chosse a mode to be used when metafont generates font bitmaps. The resolution is the most important point, but there might +be differences between modes of the same resolution. See the comments in the file modes.mf for more details. +\"" \ + 23 80 14 \ + `texconfig mode-list` 2>"$tmpmenu" +} + +menuMode() +{ + menuGetMode + mode=`cat "$tmpmenu"` + + if test -n "$mode"; then + logexec texconfig mode "$mode" + termCtl readln + fi +} + +menuDvips() +{ + menuDvipsDest=ps + + while :; do + case $menuDvipsDest in + ps) + menuDvipsPrinterOpt= + menuDvipsMsg=" +dvips GLOBAL section. Define the most common default settings (config.ps). +To define settings for a specific printer, first ADD a printer definition, +then CHANGE it. +" + ;; + *) + menuDvipsPrinterOpt="-P $menuDvipsDest" + menuDvipsMsg=" +dvips settings for printer $menuDvipsDest (config.$menuDvipsDest). Define +local settings for this printer. To switch back to global settings mode, +select GLOBAL. +" + ;; + esac + + runDialog \ + --menu "$menuDvipsMsg +You can use dvips for non PostScript printers, if you can setup your +printing system to convert PostScript to a format that your printer can +handle. Maybe, you can use GhostScript to do the conversion (if your +printer is supported)." \ + 23 80 9 \ + RETURN 'back to the main menu' \ + DEST 'define default destination of the generated Postscript' \ + MODE 'change metafont mode/resolution' \ + OFFSET 'shift output by some offset' \ + PAPER 'define the default paper' \ + GLOBAL 'change global settings (config.ps)' \ + CHANGE 'change printer settings (config.$PRINTER)' \ + ADD 'add a printer configuration' \ + DEL 'remove a printer configuration' \ + 2>"$tmpmenu" || break + + menuDvipsAns=`cat "$tmpmenu"` + case $menuDvipsAns in + RETURN) + break + ;; + DEST) + runDialog --inputbox "Enter the command to print. + +In general, you need a command like 'lpr' or 'lpr -Pfoo'. + +NOTE: If you just press return, printing will be disabled and the output saved to a file by default. +" 23 80 2>"$tmpmenu" + if test $? = 0; then + menuDvipsAns=`cat "$tmpmenu"` + case $menuDvipsAns in + "") + menuDvipsPrintOpt=- + ;; + *) + menuDvipsPrintOpt=$menuDvipsAns + ;; + esac + logexec texconfig dvips $menuDvipsPrinterOpt printcmd "$menuDvipsPrintOpt" + termCtl readln + fi + ;; + MODE) + menuGetMode + mode=`cat "$tmpmenu"` + + if test -n "$mode"; then + logexec texconfig dvips $menuDvipsPrinterOpt mode "$mode" + termCtl readln + fi + ;; + OFFSET) + runDialog --inputbox "Enter a dimension pair (a rightwards offset and a downwards +offset), e.g. 2mm,-0.5in (right 2mm and up .5in):" 23 80 2>"$tmpmenu"; menuDvipsAns=`cat "$tmpmenu"` + case $menuDvipsAns in + "") : ;; + *) + logexec texconfig dvips $menuDvipsPrinterOpt offset "$menuDvipsAns" + termCtl readln + ;; + esac + ;; + PAPER) + eval runDialog \ + --menu \'\\n\\nChoose the default papersize definition for dvips.\\n\\n\' \ + 23 80 8 `texconfig dvips paper-list` \ + 2>"$tmpmenu" + paper=`cat "$tmpmenu"` + if test -n "$paper"; then + logexec texconfig dvips paper "$paper" + termCtl readln + fi + ;; + GLOBAL) + menuDvipsDest=ps + ;; + CHANGE) + runDialog --inputbox "Printer name (for future settings of DEST / MODE / OFFSET)" 23 80 2>"$tmpmenu" + menuDvipsAns=`cat $tmpmenu` + case $menuDvipsAns in + "") : ;; + *) menuDvipsDest=$menuDvipsAns;; + esac + ;; + ADD) + runDialog --inputbox "Printer name (for printer to add)" 23 80 2>"$tmpmenu" + menuDvipsAns=`cat $tmpmenu` + case $menuDvipsAns in + "") : ;; + *) + logexec texconfig dvips add $menuDvipsAns + termCtl readln + ;; + esac + ;; + DEL) + runDialog --inputbox "Printer name (for printer to delete)" 23 80 2>"$tmpmenu" + menuDvipsAns=`cat $tmpmenu` + case $menuDvipsAns in + "") : ;; + *) + logexec texconfig dvips del $menuDvipsAns + termCtl readln + ;; + esac + ;; + esac + done +} + +menuPaper() +{ + runDialog \ + --menu " +Select your default paper format. +" \ + 23 80 14 \ + RETURN 'return to the main menu' \ + A4 'ISO A4 (210x297mm)' \ + LETTER 'US (8.5x11in)' 2>"$tmpmenu" + + p=`cat "$tmpmenu"` + case $p in + A4) + logexec texconfig paper a4 + termCtl readln + ;; + LETTER) + logexec texconfig paper letter + termCtl readln + ;; + esac +} + +menuHyphenation() +{ + runDialog \ + --menu " +Choose format to set up hyphenation for. +" \ + 23 80 14 \ + `texconfig hyphen-list | sed 's@\(.*\)@\1 \1@'` 2>"$tmpmenu" + p=`cat "$tmpmenu"` + case $p in + "") + return + ;; + *) + texconfig hyphen "$p" + termCtl readln + esac +} + +# main() + +case $1 in + help|--help) + cat <<-eof + Usage: $progname [--help|--version] +eof + exit 0 + ;; + --version) + cat <<-eof + $progname version $version. +eof + exit 0 + ;; +esac + + +: ${TEXMFCONFIG=`kpsewhich -var-value=TEXMFCONFIG`} +: ${TEXMFVAR=`kpsewhich -var-value=TEXMFVAR`} +: ${TEXMFMAIN=`kpsewhich -var-value=TEXMFMAIN`} +export TEXMFCONFIG TEXMFVAR TEXMFMAIN + +setupTmpDir +echo "$progname: started `date`" > $log +findDialog + +test -d "$TEXMFCONFIG" \ + || mktexdir "$TEXMFCONFIG" >/dev/null 2>&1 \ + || echo "$progname: directory \`$TEXMFCONFIG' (from TEXMFCONFIG variable) does not exist and cannot be created" >&2 + +canWriteConfig=false +if test -d "$TEXMFCONFIG"; then + if test -w "$TEXMFCONFIG"; then + canWriteConfig=true + else + echo "$progname: directory \`$TEXMFCONFIG' (from TEXMFCONFIG variable) is not writable." + echo "$progname: configuration data cannot be changed." >&2 + fi +fi + +test -d "$TEXMFVAR" \ + || mktexdir "$TEXMFVAR" >/dev/null 2>&1 \ + || echo "$progname: directory \`$TEXMFVAR' (from TEXMFVAR variable) does not exist and cannot be created" >&2 + +canWriteVardata=false +if test -d "$TEXMFVAR"; then + if test -w "$TEXMFVAR"; then + canWriteVardata=true + else + echo "$progname: directory \`$TEXMFVAR' (from TEXMFVAR variable) is not writable." + echo "$progname: cached variable runtime data files cannot be written." >&2 + fi +fi + +menuMain +cleanup 0 diff --git a/Master/texmf-dist/scripts/texlive-extra/texconfig-sys.sh b/Master/texmf-dist/scripts/texlive-extra/texconfig-sys.sh new file mode 100755 index 00000000000..06513209ff8 --- /dev/null +++ b/Master/texmf-dist/scripts/texlive-extra/texconfig-sys.sh @@ -0,0 +1,33 @@ +#!/bin/sh +# $Id$ +# texconfig-sys: Thomas Esser, public domain. + +# wrapper script for texconfig with TEXMFVAR and TEXMFCONFIG set to +# TEXMFSYSVAR / TEXMFSYSCONFIG + +test -f /bin/ksh && test -z "$RUNNING_KSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; } +unset RUNNING_KSH + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +# preferentially use subprograms from our own directory. +mydir=`echo "$0" | sed 's,/[^/]*$,,'` +mydir=`cd "$mydir" && pwd` +PATH="$mydir:$PATH"; export PATH + +v=`kpsewhich -var-value TEXMFSYSVAR` +c=`kpsewhich -var-value TEXMFSYSCONFIG` + +TEXMFVAR="$v" +TEXMFCONFIG="$c" +export TEXMFVAR TEXMFCONFIG + +exec texconfig ${1+"$@"} diff --git a/Master/texmf-dist/scripts/texlive-extra/texconfig.sh b/Master/texmf-dist/scripts/texlive-extra/texconfig.sh new file mode 100755 index 00000000000..94ec3fffced --- /dev/null +++ b/Master/texmf-dist/scripts/texlive-extra/texconfig.sh @@ -0,0 +1,1449 @@ +#!/bin/sh +# $Id$ +# texconfig version 3.0 +# Originally written by Thomas Esser. Public domain. +# Now maintained as part of TeX Live; correspondence to tex-live@tug.org. + +# invoke the right shell: + +test -f /bin/ksh && test -z "$RUNNING_KSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; } +unset RUNNING_KSH + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +# preferentially use subprograms from our own directory. +mydir=`echo "$0" | sed 's,/[^/]*$,,'` +mydir=`cd "$mydir" && pwd` +PATH="$mydir:$PATH"; export PATH + +# initializations... +progname=texconfig + +# the version string +version='$Id$' + +envVars=" + AFMFONTS BIBINPUTS BSTINPUTS CMAPFONTS CWEBINPUTS ENCFONTS GFFONTS + GLYPHFONTS INDEXSTYLE LIGFONTS MFBASES MFINPUTS MFPOOL MFTINPUTS + MISCFONTS MPINPUTS MPMEMS MPPOOL MPSUPPORT OCPINPUTS OFMFONTS + OPENTYPEFONTS OPLFONTS OTPINPUTS OVFFONTS OVPFONTS PDFTEXCONFIG PKFONTS + PSHEADERS SFDFONTS T1FONTS T1INPUTS T42FONTS TEXBIB TEXCONFIG TEXDOCS + TEXFONTMAPS TEXFONTS TEXFORMATS TEXINDEXSTYLE TEXINPUTS TEXMFCNF + TEXMFDBS TEXMFINI TEXMFSCRIPTS TEXPICTS TEXPKS TEXPOOL TEXPSHEADERS + TEXSOURCES TFMFONTS TRFONTS TTFONTS VFFONTS WEB2C WEBINPUTS +" +tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/tctmp.$$ +needsCleanup=false +lastUpdatedFile= + +# +############################################################################### +# setupFMT(void) - find a suitable version of fmt / adjust +# +setupFMT() +{ + case $FMT in + "") + FMT=fmt + test ! -x /bin/fmt && test ! -f /usr/bin/fmt && + { test -x /bin/adjust || test -x /usr/bin/adjust; } && FMT=adjust + ;; + *) + return + ;; + esac +} + +############################################################################### +# myFmt(args) - run $FMT +# +myFmt() +{ + setupFMT + $FMT ${1+"$@"} +} + +############################################################################### +# echoShowVariable(args ...) +# show environment variables which names are as args and their values +# +echoShowVariable() +{ + for esv + do + var=$esv + eval val=\"\${$var+=}\${$var- is unset}\" + echo "$var$val" + done | grep -v 'is unset$' +} + +############################################################################### +# echoShowKpseVariable(args ...) +# show kpathsea variables which names are as args and their values +# +echoShowKpseVariable() +{ + for eskv + do + var=$eskv + val=`kpsewhich -var-value="$eskv"` + echo "$var=$val" + done +} + +############################################################################### +# echoLocateBinary(args ...) - show where programs actually exist +# +echoLocateBinary() +{ + for elb + do + elbLoc=`checkForBinary "$elb"` + if test -n "$ELB_PATH_ONLY"; then + test -n "$elbLoc" && echo "$elbLoc" + else + case $elbLoc in + "") echo "$elb: not found";; + *) echo "$elb: $elbLoc";; + esac + fi + done +} + +############################################################################### +# echoLocateCfgfile(args ...) - show where files actually exist +# +echoLocateCfgfile() +{ + for elc + do + case $elc in + texmf.cnf) elcLoc=`kpsewhich $elc`;; + *) elcLoc=`tcfmgr --cmd find --file "$elc"`;; + esac + case $elcLoc in + "") echo "$elc: not found";; + *) echo "$elcLoc";; + esac + done +} + +############################################################################### +# checkForBinary(prog) - echo full path of prog +# +checkForBinary() +{ + cfbBinary=$1 + + OLDIFS=$IFS + IFS=: + set x `echo "$PATH" | sed 's/^:/.:/; s/:$/:./; s/::/:.:/g'`; shift + found=false + for pathElem + do + case $pathElem in + "") continue;; + *) test -f "$pathElem/$cfbBinary" && { echo "$pathElem/$cfbBinary"; found=true; break; } + esac + done + IFS=$OLDIFS + case $found in + true) (exit 0); return 0;; + false) (exit 1); return 1;; + esac +} + +############################################################################### +# cleanup() - clean up the temp area and exit with proper exit status +# +cleanup() +{ + rc=$1 + $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \ + && { cd / && rm -rf "$tmpdir"; } + (exit $rc); exit $rc +} + +############################################################################### +# setupTmpDir() - set up a temp directory and a trap to remove it +# +setupTmpDir() +{ + case $needsCleanup in + true) return;; + esac + + trap 'cleanup 1' 1 2 3 7 13 15 + needsCleanup=true + (umask 077; mkdir "$tmpdir") \ + || abort "could not create directory \`$tmpdir'" +} + +############################################################################### +# setupTexmfroot() - get value for MT_TEXMFROOT (with caching) +# +setupTexmfroot() +{ + case $MT_TEXMFROOT in + "") MT_TEXMFROOT=`kpsewhich -var-value=TEXMFROOT`;; + *) return;; + esac +} + + +############################################################################### +# setupTexmfmain() - get value for MT_TEXMFMAIN (with caching) +# +setupTexmfmain() +{ + case $MT_TEXMFMAIN in + "") MT_TEXMFMAIN=`kpsewhich -var-value=TEXMFMAIN`;; + *) return;; + esac +} + +############################################################################### +# setupTexmfmain() - get value for MT_TEXMFDIST (with caching) +# +setupTexmfdist() +{ + case $MT_TEXMFDIST in + "") MT_TEXMFDIST=`kpsewhich -var-value=TEXMFDIST`;; + *) return;; + esac +} + +############################################################################### +# setupTexmfvar() - get value for MT_TEXMFVAR (with caching) +# +setupTexmfvar() +{ + case $MT_TEXMVAR in + "") MT_TEXMVAR=`kpsewhich -var-value=TEXMFVAR`;; + *) return;; + esac +} + +############################################################################### +# setupSystexmf() - get value for MT_SYSTEXMF (with caching) +# +setupSystexmf() +{ + case $MT_SYSTEXMF in + "") MT_SYSTEXMF=`kpsewhich -var-value=SYSTEXMF`;; + *) return;; + esac +} + +############################################################################### +# abort(errmsg) +# print `errmsg' to stderr and exit with error code 1 +# +abort() +{ + echo "$progname: $1." >&2 + cleanup 1 +} + +############################################################################### +# mktexdir(args) +# call mktexdir script, disable all features (to prevent sticky directories) +# +mktexdir() +{ + setupTexmfmain + MT_FEATURES=none "$MT_TEXMFMAIN/web2c/mktexdir" "$@" >&2 +} + +############################################################################### +# tcfmgr(args) - call tcfmgr script +# +tcfmgr() +{ + setupTexmfmain + "$MT_TEXMFMAIN/texconfig/tcfmgr" "$@" +} + +############################################################################### +# mktexupd(args) - call mktexupd script +# +mktexupd() +{ + setupTexmfmain + "$MT_TEXMFMAIN/web2c/mktexupd" "$@" +} + +############################################################################### +# getRelDir(file) +# matches file against SYSTEXMF. Returns relative directory of file within +# a texmf tree in variable relPart. +# +getRelDir() +{ + file=$1 + relPart= + + setupSystexmf + OLDIFS=$IFS + IFS=' +' + set x `echo "$MT_SYSTEXMF" | tr : ' +'`; shift + IFS=$OLDIFS + + # now loop over all components of SYSTEXMF + for dir + do + test -n "$dir" || continue + case "$file" in + $dir/*) + relPart=`echo "$file" | sed "s%$dir/*%%"` + break + ;; + esac + done + + # now check for success / failure + case $relPart in + ""|$file) + # empty or full filename -> getRelDir failed! + (exit 1); return 1 + ;; + *) + # relPart should just have the "dirname" part: + relPart=`echo "$relPart" | sed 's%/*[^/]*$%%'` + (exit 0); return 0 + ;; + esac +} + +############################################################################### +# configReplace(file pattern line) +# The first line in file that matches pattern gets replaced by line. +# line will be added at the end of the file if pattern does not match. +# +configReplace() +{ + configReplaceFile=$1; configReplacePat=$2; configReplaceLine=$3 + + if grep "$configReplacePat" "$configReplaceFile" >/dev/null; then + ed "$configReplaceFile" >/dev/null 2>&1 <<-eof + /$configReplacePat/c + $configReplaceLine + . + w + q +eof + else + echo "$configReplaceLine" >> $configReplaceFile + fi +} + +############################################################################### +# fmgrConfigReplace (file regex value) +# replaces line matching regex by value in file +# +fmgrConfigReplace() +{ + fmgrConfigReplaceChanged=false + + moreArgs="" + while + case $1 in + --*) moreArgs="$moreArgs $1 $2";; + *) break;; + esac + do shift; shift; done + fmgrConfigReplaceFile=$1 + fmgrConfigReplaceRegex=$2 + fmgrConfigReplaceValue=$3 + + setupTmpDir + co=`tcfmgr $moreArgs --tmp $tmpdir --cmd co --file $fmgrConfigReplaceFile` + if test $? != 0; then + echo "$progname: fmgrConfigReplace co failed for \`$fmgrConfigReplaceFile'" >&2 + (exit 1); return 1 + fi + set x $co; shift + fmgrConfigReplaceID=$1; fmgrConfigReplaceCfgFile=$3; fmgrConfigReplaceOrigFile=$4 + configReplace "$fmgrConfigReplaceCfgFile" "$fmgrConfigReplaceRegex" "$fmgrConfigReplaceValue" + ci=`tcfmgr --tmp $tmpdir --cmd ci --id "$fmgrConfigReplaceID"` + if test $? != 0; then + echo "$progname: fmgrConfigReplace ci failed for \`$fmgrConfigReplaceFile'" >&2 + (exit 1); return 1 + fi + case $ci in + "") :;; + $lastUpdatedFile) + fmgrConfigReplaceChanged=true;; + *) echo "$progname: updated configuration saved as file \`$ci'" >&2 + fmgrConfigReplaceChanged=true + lastUpdatedFile=$ci;; + esac + (exit 0); return 0 +} + +############################################################################### +# setupDvipsPaper(paper) +# rearranges config.ps to make paper the first paper definition +# +setupDvipsPaper() +{ + setupDvipsPaperChanged=false + setupDvipsPaperFile=config.ps + setupDvipsPaperDftPaper=$1 + + setupTmpDir + co=`tcfmgr --tmp $tmpdir --cmd co --file $setupDvipsPaperFile` + if test $? != 0; then + echo "$progname: setupDvipsPaper co failed for \`$setupDvipsPaperFile'" >&2 + (exit 1); return 1 + fi + set x $co; shift + setupDvipsPaperID=$1; setupDvipsPaperCfgFile=$3; setupDvipsPaperOrigFile=$4 + + ed "$setupDvipsPaperCfgFile" > /dev/null 2>&1 <<-eof + /@ /ka + \$a + @ + . + /@ $setupDvipsPaperDftPaper /;/@ /-1m'a-1 + \$d + w + q +eof + + ci=`tcfmgr --tmp $tmpdir --cmd ci --id "$setupDvipsPaperID"` + if test $? != 0; then + echo "$progname: setupDvipsPaper ci failed for \`$setupDvipsPaperFile'" >&2 + (exit 1); return 1 + fi + case $ci in + "") :;; + $lastUpdatedFile) + setupDvipsPaperChanged=true;; + *) echo "$progname: updated configuration saved as file \`$ci'" >&2 + setupDvipsPaperChanged=true + lastUpdatedFile=$ci;; + esac + (exit 0); return 0 +} + +############################################################################### +# setupModesMfFile(void) - find modes.mf file (with caching) +# +setupModesMfFile() +{ + case $modesMfFile in + "") + modesMfFile=`tcfmgr --cmd find --file modes.mf` + ;; + *) + return + ;; + esac +} + +############################################################################### +# locateConfigPsFile(void) - find config.ps file (with caching) +# +locateConfigPsFile() +{ + case $configPsFile in + "") + configPsFile=`tcfmgr --cmd find --file config.ps` + ;; + *) + return + ;; + esac +} + +############################################################################### +# listMfModes(file) - list modes from modes.mf file +# +listMfModes() +{ + grep mode_def "$modesMfFile" | + sed -e "s/mode_def //" \ + -e "s/ .*%[^ ]* / '/" \ + -e "s/\$/' /" | + egrep -v "^(help|%)" | sort +} + +############################################################################### +# listDvipsPapers(void) - list paper definitions from config.ps +# +listDvipsPapers() +{ + grep '@ ' $configPsFile | sed "s/..//;s/ / '/;s/\$/' /" +} + +############################################################################### +# getFormatsForHyphen(void) +# list all formats which have customizable hyphenation +# +getFormatsForHyphen() +{ + fmtutil --catcfg | awk '$3 != "-" {print $1}' | sort +} + +############################################################################### +# getRes(mode) - print resolution (both X and Y axis) to metafont mode +# +getRes() +{ + getResMode=$1 + ( + cd $tmpdir + cat >mftmp.mf <<-'eof' + let myexit = primitive_end_; + mode_setup; + string xdpi; + xdpi := decimal round pixels_per_inch; + message "XDPI = " & xdpi; + string ydpi; + ydpi := decimal round (pixels_per_inch * aspect_ratio); + message "YDPI = " & ydpi; + fontmaking := 0; + myexit; +eof + mf '\mode='"$getResMode"'; \input ./mftmp' &2; rc=1;; + *) + echo "$progname: unknown PAPER \`$3' given as argument for \`$progname dvipdfmx paper'" >&2 + echo "$progname: try \`$progname dvipdfmx paper' for help" >&2 + rc=1 ;; + esac ;; + # texconfig dvipdfmx "" + "") + echo "$help" >&2; rc=1 ;; + # texconfig dvipdfmx + *) + echo "$progname: unknown option \`$2' given as argument for \`$progname dvipdfmx'" >&2 + echo "$progname: try \`$progname dvipdfmx' for help" >&2 + rc=1 + ;; + esac + ;; + + # texconfig dvips + dvips) + shift + help="Usage: $progname dvips add PRINTER + $progname dvips del PRINTER + $progname dvips paper PAPER + $progname dvips [-P PRINTER] mode MODE + $progname dvips [-P PRINTER] offset OFFSET + $progname dvips [-P PRINTER] printcmd CMD" + case $1 in + -P) + case $2 in + "") + echo "$progname: missing arg for parameter -P" >&2 + rc=1; (exit $rc); return $rc + ;; + *) + otherPrinter=true + otherPrinterName=$2 + otherPrinterFile=`kpsewhich -format='dvips config' "config.$otherPrinterName"` + case $otherPrinterFile in + "") + echo "$progname: configuration file \`config.$otherPrinterName' for printer \`$otherPrinterName' not found" >&2 + rc=1; (exit $rc); return $rc + ;; + *) shift; shift;; + esac + ;; + esac + ;; + *) + otherPrinter=false + ;; + esac + case $otherPrinter in + true) + tcBatchDvipsPrinter=$otherPrinterName + moreFmgrArgs="--reldir dvips/config --infile $otherPrinterFile" + ;; + *) + tcBatchDvipsPrinter=ps + ;; + esac + case $1 in + add) + case $2 in + "") + echo "Usage: $progname dvips add PRINTER" >&2 + rc=1 + ;; + *) + printerName=$2 + pFile=`kpsewhich -format='dvips config' "config.$printerName"` + case $pFile in + "") + setupTmpDir + tcfRet=`tcfmgr --emptyinfile --reldir dvips/config --cmd co --tmp $tmpdir --file "config.$printerName"` + if test $? != 0; then + echo "$progname: failed to add new configuration file \`config.$printerName'" >&2 + rc=1 + else + set x $tcfRet; shift + tcBatchDvipsAddID=$1; tcBatchDvipsAddFile=$3 + echo "% file config.$printerName; added by texconfig" > "$tcBatchDvipsAddFile" + tcfRet=`tcfmgr --tmp $tmpdir --id "$tcBatchDvipsAddID" --cmd ci` + if test $? != 0; then + echo "$progname: failed to add new configuration file \`config.$printerName'" >&2 + rc=1 + else + echo "$progname: file $tcfRet added" >&2 + fi + fi + ;; + *) + echo "$progname: configuration file for printer \`$printerName' already exists (\`$pFile')" >&2 + rc=1 + ;; + esac + ;; + esac + ;; + del) + case $2 in + "") + echo "Usage: $progname dvips del PRINTER" >&2 + rc=1 + ;; + *) + printerName=$2 + pFile=`kpsewhich -format='dvips config' "config.$printerName"` + case $pFile in + "") + echo "$progname: configuration file for printer \`$printerName' (config.$printerName) not found" >&2 + rc=1 + ;; + *) + if rm "$pFile"; then + echo "$progname: file \`$pFile' removed" >&2 + else + echo "$progname: failed to remove file \`$pFile'" >&2 + rc=1 + fi + ;; + esac + ;; + esac + ;; + paper-list) + locateConfigPsFile + listDvipsPapers + ;; + paper) + case $2 in + "") + echo "Usage: $progname dvips paper PAPER" >&2 + echo >&2; echo "Valid PAPER settings:" >&2 + locateConfigPsFile + listDvipsPapers | sed 's@ .*@@; s@^@ @' | myFmt + rc=1 + ;; + *) + tcBatchDvipsPaper=$2 + locateConfigPsFile + case "$configPsFile" in + "") + echo "$progname: file config.ps not found" >&2; rc=1 + ;; + *) + if grep "@ $tcBatchDvipsPaper " $configPsFile >/dev/null 2>&1; then + tlmgr dvips paper $tcBatchDvipsPaper + # setupDvipsPaper "$tcBatchDvipsPaper" + else + echo "$progname: paper \`$tcBatchDvipsPaper' not found in file \`$configPsFile'" >&2; rc=1 + fi + ;; + esac + ;; + esac + ;; + mode) + case $2 in + "") + echo "Usage: $progname dvips mode MODE + +Valid MODE settings:" + setupModesMfFile + listMfModes | sed 's@ .*@@; s@^@ @' | myFmt + rc=1 + ;; + *) + tcBatchDvipsMode=$2 + setupTmpDir + setupModesMfFile + if checkElemInList "$tcBatchDvipsMode" `listMfModes | sed 's@ .*@@'`; then + set x `getRes "$tcBatchDvipsMode"`; shift + resX=$1; resY=$2 + fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^M' "M $tcBatchDvipsMode" + fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^D' "D $resX" + fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^X' "X $resX" + fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^Y' "Y $resY" + else + echo "$progname: unknown MODE \`$tcBatchDvipsMode' given as argument for \`$progname dvips mode'" >&2 + echo "$progname: try \`$progname dvips mode' for help" >&2 + rc=1 + fi + ;; + esac + ;; + offset) + offset=$2 + case $offset in + "") + echo "Usage: $progname dvips offset OFFSET" + rc=1 + ;; + *) + fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^O' "O $offset" + esac + ;; + printcmd) + printcmd=$2 + case $printcmd in + "") + echo "Usage: $progname dvips printcmd CMD" + rc=1 + ;; + -) + fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^o' o + ;; + *) + fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^o' "o |$printcmd" + ;; + esac + ;; + "") + echo "$help" >&2; rc=1 + ;; + *) + echo "$progname: unknown option \`$1' given as argument for \`$progname dvips'" >&2 + echo "$progname: try \`$progname dvips' for help" >&2 + rc=1 + ;; + esac + ;; + + faq) + echo "Please see https://tug.org/texlive/doc/ for the documentation" + echo "available in TeX Live." + ;; + # setupTexmfmain + # if test -f $MT_TEXMFMAIN/doc/tetex/teTeX-FAQ; then + # <$MT_TEXMFMAIN/doc/tetex/teTeX-FAQ eval ${PAGER-more} + # else + # echo "$progname: faq not found (usually in \$TEXMFMAIN/doc/tetex/teTeX-FAQ)" >&2 + # rc=1 + # fi + # ;; + + findprog) + shift + ELB_PATH_ONLY=1 echoLocateBinary "$@" + ;; + + # handle "texconfig font" + font) + setupTexmfroot + help="Usage: $progname font vardir DIR + $progname font ro + $progname font rw + +The vardir option changes the VARTEXFONTS variable in the texmf.cnf file. + +The rw option makes the VARTEXFONTS directory (and subtrees pk, tfm, +source) world writable and sets the features appendonlydir:varfonts +in mktex.cnf. + +The ro option makes the VARTEXFONTS directory (and subtrees pk, tfm, +source) writable for the owner only and sets the feature texmfvar in +mktex.cnf. + +For more information about these \`features', consult the teTeX manual +(e.g. by running \`texdoc TETEXDOC')." + + case $2 in + vardir) + case $3 in + "") + echo "$help" >&2 + rc=1 + ;; + *) + tcBatchFontVardir=$3 + # tfc=`kpsewhich texmf.cnf` + tfc="$MT_TEXMFROOT/texmf.cnf" + touch "$tfc" + if test -n "$tfc"; then + if test -w "$tfc"; then + configReplace "$tfc" '^VARTEXFONTS' "VARTEXFONTS = $tcBatchFontVardir" + else + echo "$progname: setting up vardir failed. Reason: no permission to write file \`$tfc'" >&2 + rc=1 + fi + else + echo "$progname: setting up vardir failed. Reason: failed to find file texmf.cnf" >&2 + rc=1 + fi + ;; + esac + ;; + rw) + MT_VARTEXFONTS=`kpsewhich -var-value VARTEXFONTS` + if test -z "$MT_VARTEXFONTS"; then + echo "$progname: failed to set \`font rw'; reason: could not determine VARTEXFONTS variable." >&2; rc=1 + return + fi + test -d "$MT_VARTEXFONTS" || mktexdir "$MT_VARTEXFONTS" + if test ! -d "$MT_VARTEXFONTS"; then + echo "$progname: failed to set \`font rw'; reason: directory \`$MT_VARTEXFONTS' does not exist." >&2; rc=1 + return + fi + chmod 1777 "$MT_VARTEXFONTS" || { + echo "$progname: failed to modify permissions in \`$MT_VARTEXFONTS'." >&2; rc=1 + return; + } + ( + cd "$MT_VARTEXFONTS" || exit + echo "$progname: modifying permissions in \`$MT_VARTEXFONTS' ..." >&2 + for d in pk tfm source; do + test -d "$d" && find $d -type d -exec chmod 1777 '{}' \; + done + echo "$progname: all permissions set." >&2 + ) + setupTmpDir + fmgrConfigReplace mktex.cnf '^: ..MT_FEATURES=' ": \${MT_FEATURES=appendonlydir:varfonts}" + ;; + ro) + MT_VARTEXFONTS=`kpsewhich -var-value VARTEXFONTS` + if test -z "$MT_VARTEXFONTS"; then + echo "$progname: failed to set \`font ro'; reason: could not determine VARTEXFONTS variable." >&2; rc=1 + return + fi + test -d "$MT_VARTEXFONTS" || mktexdir "$MT_VARTEXFONTS" + if test ! -d "$MT_VARTEXFONTS"; then + echo "$progname: failed to set \`font ro'; reason: directory \`$MT_VARTEXFONTS' does not exist." >&2; rc=1 + return + fi + chmod 755 "$MT_VARTEXFONTS" || { + echo "$progname: failed to modify permissions in \`$MT_VARTEXFONTS'." >&2; rc=1 + return; + } + ( + cd "$MT_VARTEXFONTS" || exit + echo "$progname: modifying permissions in \`$MT_VARTEXFONTS' ..." >&2 + for d in pk tfm source; do + test -d "$d" && find "$d" -type d -exec chmod 755 '{}' \; + done + echo "$progname: all permissions set." >&2 + ) + setupTmpDir + fmgrConfigReplace mktex.cnf '^: ..MT_FEATURES=' ": \${MT_FEATURES=texmfvar}" + ;; + "") echo "$help" >&2; rc=1;; + *) echo "$progname: unknown option \`$2' given as argument for \`$progname font'" >&2 + echo "$progname: try \`$progname font' for help" >&2 + rc=1 + ;; + esac + ;; + + formats) + cat >&2 <&2 + fmtutil --catcfg > $tmpdir/pre + fmtutil --edit + echo "$progname: analyzing new configuration..." >&2 + fmtutil --catcfg > $tmpdir/post + + if cmp $tmpdir/pre $tmpdir/post >/dev/null 2>&1; then + echo "$progname: no new/updated formats available ..." >&2 + else + echo "$progname: updating formats ..." >&2 + comm -13 $tmpdir/pre $tmpdir/post > $tmpdir/addOrChange + for i in `awk '{print $1}' $tmpdir/addOrChange`; do + fmtutil --byfmt "$i" || rc=1 + done + texlinks --multiplatform || rc=1 + fi + ;; + + help|--help|-h) + echo "$help" + ;; + + # "hyphen FORMAT" + hyphen) + cat >&2 <&2; rc=1 + ;; + *) + if checkElemInList "$tcBatchHyphenFormat" $formatsForHyphen; then + + tcBatchHyphenFile=`fmtutil --showhyphen "$tcBatchHyphenFormat"` + case $tcBatchHyphenFile in + "") + echo "$progname: could not find hyphen setup file for format \`$tcBatchHyphenFormat'" >&2 + rc=1 + return + ;; + esac + + getRelDir "$tcBatchHyphenFile" + case $relPart in + "") + # edit tcBatchHyphenFile directly + tcBatchHFID= + setupTmpDir + tcBatchHFEdit=$tcBatchHyphenFile + tcBatchHFOrig=$tmpdir/hforig + cp "$tcBatchHyphenFile" "$tcBatchHFOrig" + ;; + *) + # use tcfmgr + tcBatchHyphenFileBasename=`echo "$tcBatchHyphenFile" | sed 's@.*/@@'` + setupTmpDir + co=`tcfmgr --tmp $tmpdir --cmd co --file "$tcBatchHyphenFileBasename" --reldir "$relPart" --infile "$tcBatchHyphenFile"` + if test $? != 0; then + echo "$progname: failed to check out file \`$tcBatchHyphenFile'" >&2 + rc=1 + return 1 + else + set x $co; shift + tcBatchHFID=$1; tcBatchHFEdit=$3; tcBatchHFOrig=$4 + fi + ;; + esac + ${VISUAL-${EDITOR-vi}} "$tcBatchHFEdit" + if cmp "$tcBatchHFEdit" "$tcBatchHFOrig" >/dev/null 2>&1; then + echo "$progname: configuration unchanged." >&2 + else + case $tcBatchHFID in + "") + tcBatchHFOut=$tcBatchHFEdit + echo "$progname: updated configuration saved as file \`$tcBatchHFOut'" >&2 + lastUpdatedFile=$ci + ;; + *) + ci=`tcfmgr --tmp $tmpdir --cmd ci --id "$tcBatchHFID"` + if test $? != 0; then + echo "$progname: failed to check in file \`$tcBatchHyphenFileBasename'" >&2 + rc=1 + return + else + tcBatchHFOut=$ci + echo "$progname: updated configuration saved as file \`$tcBatchHFOut'" >&2 + lastUpdatedFile=$ci + fi + ;; + esac + fmtutil --byhyphen "$tcBatchHFOut" + fi + else + echo "$progname: invalid format \`$tcBatchHyphenFormat' specified as argument for \`$progname hyphen'" >&2 + echo "$progname: for getting help, try \`$progname hyphen'" >&2 + rc=1 + fi + ;; + esac + ;; + + hyphen-list) + getFormatsForHyphen + ;; + + init) + case $2 in + "") + if fmtutil --all \ + && texlinks --multiplatform \ + && updmap; then + : + else + rc=1 + fi + ;; + *) + shift 1 + for i in "$@"; do + fmtutil --byfmt "$i" || rc=1 + done + ;; + esac + ;; + + mode-list) + setupModesMfFile + listMfModes + ;; + + mode) + case $2 in + "") + echo "Usage: $progname mode MODE + +Valid MODE settings:" + setupModesMfFile + listMfModes | sed 's@ .*@@; s@^@ @' | myFmt + rc=1 + ;; + *) + tcBatchMode=$2 + setupModesMfFile + if checkElemInList $tcBatchMode `listMfModes | sed 's@ .*@@'`; then + + # modify mktex.cnf + setupTmpDir + fmgrConfigReplace mktex.cnf '^: ..MODE=' ": \${MODE=$tcBatchMode}" + set x `getRes "$tcBatchMode"`; shift + tcBatchRes=$1 + fmgrConfigReplace mktex.cnf '^: ..BDPI=' ": \${BDPI=$tcBatchRes}" + + if checkForBinary dvips >/dev/null && tcfmgr --cmd find --file config.ps >/dev/null 2>&1; then + tcBatch dvips mode "$tcBatchMode" + fi + if checkForBinary pdftex >/dev/null && tcfmgr --cmd find --file pdftexconfig.tex >/dev/null 2>&1; then + tcBatch pdftex mode "$tcBatchMode" + fi + else + echo "$progname: unknown mode \`$tcBatchMode' specified as argument for \`$progname mode'" >&2; rc=1 + fi + ;; + esac + ;; + + paper) + help="Usage: $progname paper PAPER + +Valid PAPER settings: + letter a4" + + p=$2; pDvips=$2 + case $2 in + letter|a4) ;; + "") echo "$help" >&2; rc=1; return;; + *) + echo "$progname: unknown PAPER \`$2' given as argument for \`$progname paper'" >&2 + echo "$progname: try \`$progname paper' for help" >&2 + rc=1 + return;; + esac + if checkForBinary dvips >/dev/null && tcfmgr --cmd find --file config.ps >/dev/null 2>&1; then + tcBatch dvips paper $pDvips + fi + if checkForBinary dvipdfmx >/dev/null && tcfmgr --cmd find --file dvipdfmx.cfg >/dev/null 2>&1; then + tcBatch dvipdfmx paper $p + fi + if checkForBinary xdvi >/dev/null && tcfmgr --cmd find --file XDvi >/dev/null 2>&1; then + tcBatch xdvi paper $p + fi + if checkForBinary pdftex >/dev/null && tcfmgr --cmd find --file pdftexconfig.tex >/dev/null 2>&1; then + tcBatch pdftex paper $p + fi + ;; + + pdftex) + help="Usage: $progname pdftex paper PAPER + +Valid PAPER settings: + a4 letter" + case $2 in + + mode) + case $3 in + "") + echo "Usage: $progname pdftex mode MODE" + rc=1 + ;; + *) + tcBatchPdftexMode=$3 + setupTmpDir + setupModesMfFile + if checkElemInList "$tcBatchPdftexMode" `listMfModes | sed 's@ .*@@'`; then + set x `getRes "$tcBatchPdftexMode"`; shift + fmgrConfigReplace pdftexconfig.tex 'pdfpkresolution' "\\pdfpkresolution=$1" + if $fmgrConfigReplaceChanged; then + fmtutil --refresh + fi + else + echo "$progname: unknown MODE \`$tcBatchPdftexMode' given as argument for \`$progname pdftex mode'" >&2 + rc=1 + fi + ;; + esac + ;; + + paper) + case $3 in + letter|a4) + tlmgr pdftex paper $3 + ;; + #letter) + # w="8.5 true in"; h="11 true in" + # setupTmpDir + # fmgrConfigReplace pdftexconfig.tex pdfpagewidth '\pdfpagewidth='"$w" + # wChanged=$fmgrConfigReplaceChanged + # fmgrConfigReplace pdftexconfig.tex pdfpageheight '\pdfpageheight='"$h" + # if $wChanged || $fmgrConfigReplaceChanged; then + # fmtutil --refresh + # fi + # ;; + #a4) + # w="210 true mm"; h="297 true mm" + # fmgrConfigReplace pdftexconfig.tex pdfpagewidth '\pdfpagewidth='"$w" + # wChanged=$fmgrConfigReplaceChanged + # fmgrConfigReplace pdftexconfig.tex pdfpageheight '\pdfpageheight='"$h" + # if $wChanged || $fmgrConfigReplaceChanged; then + # fmtutil --refresh + # fi + # ;; + "") echo "$help" >&2; rc=1;; + *) + echo "$progname: unknown PAPER \`$3' given as argument for \`$progname pdftex paper'" >&2 + echo "$progname: try \`$progname pdftex paper' for help" >&2 + rc=1 ;; + esac ;; + "") + echo "$help" >&2; rc=1;; + *) + echo "$progname: unknown option \`$2' given as argument for \`$progname pdftex'" >&2 + echo "$progname: try \`$progname pdftex' for help" >&2 + rc=1 + ;; + esac + ;; + + rehash) + mktexlsr + ;; + + # + version|--version) + echo "$progname version $version" + setupTexmfmain + setupTexmfdist + showDistVersionInfo + (exit 0); exit 0;; + + # handle "xdvi paper PAPER" + xdvi) + tcBatchXdviPapers='us "8.5x11" +letter "8.5x11" +ledger "17x11" +tabloid "11x17" +usr "11x8.5" +legal "8.5x14" +legalr "14x8.5" +foolscap "13.5x17.0" +foolscapr "17.0x13.5" +a0 "84.1x118.9cm" +a1 "59.4x84.1cm" +a2 "42.0x59.4cm" +a3 "29.7x42.0cm" +a4 "21.0x29.7cm" +a5 "14.8x21.0cm" +a6 "10.5x14.8cm" +a7 "7.4x10.5cm" +a8 "5.2x7.4cm" +a9 "3.7x5.2cm" +a10 "2.6x3.7cm" +a0r "118.9x84.1cm" +a1r "84.1x59.4cm" +a2r "59.4x42.0cm" +a3r "42.0x29.7cm" +a4r "29.7x21.0cm" +a5r "21.0x14.8cm" +a6r "14.8x10.5cm" +a7r "10.5x7.4cm" +a8r "7.4x5.2cm" +a9r "5.2x3.7cm" +a10r "3.7x2.6cm" +b0 "100.0x141.4cm" +b1 "70.7x100.0cm" +b2 "50.0x70.7cm" +b3 "35.3x50.0cm" +b4 "25.0x35.3cm" +b5 "17.6x25.0cm" +b6 "12.5x17.6cm" +b7 "8.8x12.5cm" +b8 "6.2x8.8cm" +b9 "4.4x6.2cm" +b10 "3.1x4.4cm" +b0r "141.4x100.0cm" +b1r "100.0x70.7cm" +b2r "70.7x50.0cm" +b3r "50.0x35.3cm" +b4r "35.3x25.0cm" +b5r "25.0x17.6cm" +b6r "17.6x12.5cm" +b7r "12.5x8.8cm" +b8r "8.8x6.2cm" +b9r "6.2x4.4cm" +b10r "4.4x3.1cm" +c0 "91.7x129.7cm" +c1 "64.8x91.7cm" +c2 "45.8x64.8cm" +c3 "32.4x45.8cm" +c4 "22.9x32.4cm" +c5 "16.2x22.9cm" +c6 "11.4x16.2cm" +c7 "8.1x11.4cm" +c8 "5.7x8.1cm" +c9 "4.0x5.7cm" +c10 "2.8x4.0cm" +c0r "129.7x91.7cm" +c1r "91.7x64.8cm" +c2r "64.8x45.8cm" +c3r "45.8x32.4cm" +c4r "32.4x22.9cm" +c5r "22.9x16.2cm" +c6r "16.2x11.4cm" +c7r "11.4x8.1cm" +c8r "8.1x5.7cm" +c9r "5.7x4.0cm" +c10r "4.0x2.8cm"' + help="Usage: $progname xdvi paper PAPER + +Valid PAPER settings: + a0 a0r a1 a1r a2 a2r a3 a3r a4 a4r a5 a5r a6 a6r a7 a7r a8 a8r a9 a9r a10 a10r + b0 b0r b1 b1r b2 b2r b3 b3r b4 b4r b5 b5r b6 b6r b7 b7r b8 b8r b9 b9r b10 b10r + c0 c0r c1 c1r c2 c2r c3 c3r c4 c4r c5 c5r c6 c6r c7 c7r c8 c8r c9 c9r c10 c10r + us letter ledger tabloid usr legal legalr foolscap foolscapr" + case $2 in + paper-list) + echo "$tcBatchXdviPapers" + ;; + paper) + case $3 in + [abc][0-9]|[abc]10|[abc][0-9]r|[abc]10r|us|letter|ledger|tabloid|usr|legal|legalr|foolscap|foolscapr) + tlmgr xdvi paper $3 + # fmgrConfigReplace XDvi paper: "*paper: $3" + ;; + "") echo "$help" >&2; rc=1;; + *) + echo "$progname: unknown PAPER \`$3' given as argument for \`$progname xdvi paper'" >&2 + echo "$progname: try \`$progname xdvi paper' for help" >&2 + rc=1 ;; + esac ;; + "") + echo "$help" >&2; rc=1;; + *) + echo "$progname: unknown option \`$2' given as argument for \`$progname xdvi'" >&2 + echo "$progname: try \`$progname xdvi' for help" >&2 + rc=1 + ;; + esac + ;; + *) + echo "$progname: unknown option \`$1' given as argument for \`$progname'" >&2 + echo "$progname: try \`$progname help' for help" >&2 + rc=1 + esac +} + +############################################################################### +# tcInteractive(void) +# handle interactive mode +############################################################################### +tcInteractive() +{ + texconfig-dialog +} + +############################################################################### +# main() +############################################################################### +rc=0 +case $# in + 0) tcInteractive;; + *) tcBatch "$@";; +esac + +cleanup $rc diff --git a/Master/texmf-dist/scripts/texlive-extra/texlinks.sh b/Master/texmf-dist/scripts/texlive-extra/texlinks.sh new file mode 100755 index 00000000000..71877768720 --- /dev/null +++ b/Master/texmf-dist/scripts/texlive-extra/texlinks.sh @@ -0,0 +1,333 @@ +#!/bin/sh +# $Id$ + +# Thomas Esser, 1999, 2002, 2003. public domain. + +# texlinks: script to maintain symlinks from format to engine. Interprets +# the lines given in fmtutil.cnf. + +# History: +# (Further changes in ChangeLog.) +# Tue Oct 9 14:23:01 BST 2007 +# Added unlink option (-u) to aid OpenBSD package uninstall +# Edd Barrett +# Sun Aug 28 21:41:06 CEST 2005 +# remove special cases for csplain,cslatex,pdfcslatex,pdfcsplain +# Fr Apr 8 19:15:05 CEST 2005 +# cleanup now has an argument for the return code +# So Mar 27 18:52:06 CEST 2005 +# honor $TMPDIR, $TEMP and $TMP, not just $TMP +# Mon May 10 20:52:48 CEST 2004 +# kpseaccess instead of access +# Thu Dec 25 22:11:53 CET 2003, te: +# add version string +# Tue Apr 9 22:46:34 CEST 2002, te: +# do not create symlinks for cont-??, metafun and mptopdf + +test -f /bin/sh5 && test -z "$RUNNING_SH5" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } +unset RUNNING_SH5 + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +export PATH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +version='$Id$' +progname=texlinks +cnf=fmtutil.cnf # name of the config file + +usage='Usage: texlinks [OPTION]... [DIRECTORY]... + +Create symbolic links format -> engine according to fmtutil setup. + +Mandatory arguments to long options are mandatory for short options too. + -e, --exeext EXT append EXT to symlink targets (default: none) + -f, --cnffile FILE use FILE as config file (default: fmtutil.cnf) + -m, --multiplatform operate in all platform specific directories + (default: operate only in directory for this platform) + -q, --quiet silently skip existing scripts / binaries + (default: issue warning) + -s, --silent same as -q + -u, --unlink remove symlinks created by texlinks + -v, --verbose enable verbose messages (default: off) + -h, --help show this help text + --version show version string + +The DIRECTORY arguments are an optional list of directories in which to +operate. If no directories are specified and --multiplatform is +likewise not specified, the directory of this script itself is used. +With --multiplatform, all child dirs of an upper-level bin/ dir are used. + +Report bugs to: tex-k@tug.org +TeX Live home page: +' + +# print `errmsg' to stderr and exit with error code 1: +abort() { errmsg "texlinks: $1."; cleanup 1; } + +# error message to stderr: +errmsg() { echo "$@" >&2; } + +# give message to stderr only if "verbose" mode is on: +verbose_echo() { $verbose && errmsg "$@"; } + +# in verbose mode: show command that is executed: +verbose_do() { verbose_echo "$@"; "$@"; } + +# clean up the temp area and exit with proper exit status: +cleanup() +{ + rc=$1 + $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \ + && { rm -f "$tmpdir"/*; cd /; rmdir "$tmpdir"; } + exit $rc +} + +############################################################################### +# setupTmpDir() +# set up a temp directory and a trap to remove it +############################################################################### +setupTmpDir() +{ + $needsCleanup && return + + trap 'cleanup 1' 1 2 3 7 13 15 + needsCleanup=true + (umask 077; mkdir "$tmpdir") \ + || abort "could not create directory \`$tmpdir'" +} + + +# search a binary along $PATH: +check_for_binary() +{ + testbin=$1 + set x `echo "$PATH" | sed 's/^:/.:/; s/:$/:./; s/::/:.:/g; s/:/ /g'`; shift + for i + do + if [ -x "$i/$testbin" ]; then + echo "$i/$testbin" + return 0 + fi + done + return 1 +} + + +############################################################################### +# install_link(dest src) +# create a symlink like ln -s dest src, but make sure that src is not +# an existing binary, possibly adding the executable extension if +# passed on the command. +############################################################################### +install_link() +{ + # make symlink src -> dest + dest=$1; src=$2 + + case $src in + */mf) + if test "$dest" = mf-nowin; then + if test -f $selfautoloc/mfw; then + dest=mfw # name for windows-enabled mf, once upon a time + verbose_echo "both mfw and mf-nowin exists, $src linked to $dest" + fi + if test -f $selfautoloc/mf && test -f $selfautoloc/mf-nowin; then + # have both mf and mf-nowin binaries. no link. + verbose_echo "skipped metafont symlink $src -> $dest (special case)" + return + fi + fi + ;; + esac + + # append .exe if supplied (for cygwin). + test -n "$exeext" && dest="$dest$exeext" + + case $src in + */cont-??|*/mptopdf) + # context includes wrapper scripts that create/run these. + verbose_echo "skipped ConTeXtish symlink $src -> $dest (special case)" + ;; + *) + test "x$src" != "x`(ls -ld $src | awk '{print $NF}') 2>/dev/null`" && + rm -f "$src" + + if test -f "$src"; then + if $silent; then :; else + # i.e., the rm failed. + errmsg "install_link $src -> $dest failed: file already exists." + fi + else + if echo "$src" | grep '/pdfcsplain$' >/dev/null; then + # at p.olsak insistence: we have three pdfcsplain entries in + # fmtutil.cnf with different engines, but the executable link + # must point to pdftex. + verbose_echo "forcing pdfcsplain destination to be pdftex" + dest=pdftex$exeext + fi + verbose_do ln -s "$dest" "$src" + fi + ;; + esac +} + +############################################################################### +# search_symlinkdir() +# look if $PATH has only symlinks to the real binaries and find that +# directory. Also check if this directory is writable. +############################################################################### +search_symlinkdir() +{ + kpsewhich=`check_for_binary kpsewhich` + test -z "$kpsewhich" && return 1 + symlinkdir=`echo $kpsewhich | sed 's@/*kpsewhich$@@'` + kpseaccess -w "$symlinkdir" || return 1 + touch "$symlinkdir/tl$$" + if test -f "$selfautoloc/tl$$"; then + rm -f "$symlinkdir/tl$$" + return 1 + else + rm -f "$symlinkdir/tl$$" + return 0 + fi +} + +############################################################################### +# upd_symlinkdir() +# if $PATH has only symlinks to the real binaries, update that directory +# that holds the symlinks +############################################################################### +upd_symlinkdir() +{ + search_symlinkdir || return 0 + for i in `sed 's@ .*@@' cnf_file_ln.$$`; do + install_link "$selfautoloc/$i" "$symlinkdir/$i" + done +} + +############################################################################### +# rm_link() +# Delete a previously installed link +############################################################################### +rm_link() +{ + link=$1; + if test -e $link; then + if test -h $link; then + verbose_do rm -Rf $link + else + verbose_echo "kept $link, since not a symlink" + fi + else + verbose_echo "skipped $link, non-existent" + fi +} + +############################################################################### +# main() +# parse commandline arguments, initialize variables, +# switch into temp. direcrory, execute desired command +############################################################################### +main() +{ + cnf_file= # global variable: full name of the config file + dirs= + needsCleanup=false + + exeext= + multiplatform=false + verbose=false + unlink=false + silent=false + thisdir=`pwd` + : ${KPSE_DOT=$thisdir}; export KPSE_DOT + selfautoloc=`kpsewhich --expand-var='$SELFAUTOLOC'` + while + case $1 in + --h*|-h) + echo "$usage"; exit 0;; + --version) + echo "$progname version $version"; exit 0;; + --cnffile|-f) + shift; cnf_file=$1;; + --e*|-e) shift; exeext=$1;; + --m*|-m) multiplatform=true;; + --s*|-s|--q*|-q) silent=true;; + --u*|-u) unlink=true;; + --v*|-v) verbose=true;; + -*) errmsg "fmtutil: unknown option \`$1' ignored.";; + *) break;; + esac + do test $# -gt 0 && shift; done + dirs="$*" + + # if no cnf_file from command-line, look it up with kpsewhich: + test -z "$cnf_file" && cnf_file=`kpsewhich --format='web2c files' $cnf` + test -f "$cnf_file" || abort "config file \`$cnf' not found" + + + tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/texlinks.$$ + setupTmpDir + cd "$tmpdir" || cleanup 1 + + sed '/^[ ]*#/d; /^[ ]*$/d' $cnf_file \ + | awk '{print $1, $2}' > cnf_file_ln.$$ + + if test -z "$dirs"; then + if test $multiplatform = true; then + case $selfautoloc in + */bin) dirs=$selfautoloc;; + *) parent=`kpsewhich --expand-var='$SELFAUTODIR'` + dirs=`find $parent -type f -name kpsewhich -print \ + | sed 's@/kpsewhich$@@'`;; + esac + else + dirs=$selfautoloc + fi + fi + + for d in $dirs; do + kpseaccess -w $d \ + || { errmsg "$d: no write permissions. Skipping..."; continue; } + # cnf_file_ln.$$ has lines with "format engine" pairs + set x `cat cnf_file_ln.$$`; shift + while test $# != 0; do + fmt=$1; engine=$2; shift; shift + + # Some broken shells destroy the positional arguments when calling a + # shellfunction. Therefore, we save and restore them "by hand" in the + # main_args_while variable. + main_args_while="$@" + + test "x$fmt" = "x$engine" && continue + if test -f "$d/$engine$exeext"; then + case $unlink in + true) + rm_link "$d/$fmt";; + *) + install_link "$engine" "$d/$fmt";; + esac + else + verbose_echo "skipped $d/$engine, engine does not exist" + fi + + # restore positional arguments: + set x $main_args_while; shift + + done + done + upd_symlinkdir +} + +main ${1+"$@"} + +# set successful return code +cleanup 0 diff --git a/Master/texmf-dist/scripts/texlive/dvi2fax.sh b/Master/texmf-dist/scripts/texlive/dvi2fax.sh deleted file mode 100755 index fdfa83211eb..00000000000 --- a/Master/texmf-dist/scripts/texlive/dvi2fax.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh -# options for dvips are passwd down - -test -f /bin/sh5 && test -z "$RUNNING_SH5" \ - && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ - && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } -unset RUNNING_SH5 - -test -f /bin/bsh && test -z "$RUNNING_BSH" \ - && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ - && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } -unset RUNNING_BSH - -# hack around a bug in zsh: -test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' - -progname=`basename "$0"` -help() -{ - echo "Usage: $progname [-hi|-lo] file[.dvi] [options for dvips]" - echo " -hi: use high fax resolution (204x196) (default)" - echo " -lo: use low fax resolution (204x98)" - echo - echo "Example: $progname foo -l 2" -} - -dvipsconf=dfaxhigh; gsdev=dfaxhigh -case $1 in - -hi) gsdev=dfaxhigh; shift;; - -lo) gsdev=dfaxlow; shift;; -esac - -case $# in - 0) help >&2 - exit 1 - ;; -esac - -NAME=`basename "$1" .dvi` -dvips "$@" -P$dvipsconf -f | - gs -q -dSAFER -sDEVICE=$gsdev -sOutputFile="$NAME-%03d.fax" -sNOPAUSE - diff --git a/Master/texmf-dist/scripts/texlive/dvired.sh b/Master/texmf-dist/scripts/texlive/dvired.sh deleted file mode 100755 index 4eb3586119d..00000000000 --- a/Master/texmf-dist/scripts/texlive/dvired.sh +++ /dev/null @@ -1,98 +0,0 @@ -#!/bin/sh -#============================================================================== -# Version: 0.3 -# Module: dvired -# Purpose: Translate dvi-file into postscript with reduced output size. -# Two logical pages will be put on onto each physical sheet of -# paper. -# System: Linux. UNIX(tm) systems may work as well :-) -# Requires: pstops (http://www.dcs.ed.ac.uk/home/ajcd/psutils/), dvips -# Created: 19.11.1992 -# Last Change: 13.08.1999 -# Language: sh -# Author: Thomas Esser -# Address: te@dbs.uni-hannover.de -# Copyright: (c) 1994, 1999 by Thomas Esser -# Copying: GNU GENERAL PUBLIC LICENSE -#============================================================================== - -test -f /bin/sh5 && test -z "$RUNNING_SH5" \ - && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ - && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } -unset RUNNING_SH5 - -test -f /bin/bsh && test -z "$RUNNING_BSH" \ - && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ - && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } -unset RUNNING_BSH - -help() -{ - cat < "$of" - ;; -esac diff --git a/Master/texmf-dist/scripts/texlive/e2pall.pl b/Master/texmf-dist/scripts/texlive/e2pall.pl deleted file mode 100755 index 2997f8b1102..00000000000 --- a/Master/texmf-dist/scripts/texlive/e2pall.pl +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/env perl - -# Author: Jody Klymak , publisted by a posting -# to the pdftex mailinglist. - -# recursively finds all your eps files. Looks down \input{fname}. -# CAVEATS: -# 1) cannot handle \input{fname} split over more than one line. -# 1.5) cannot handle multiple \input{} or \includegraphics{} on one line. -# 2) Must be run from same directory as the Latex file. -# 3) Does not look down $TEXINPUTS or anything fancy like that... -# 4) Handling of \include is untested (though I guess its trivial) -# 5) Assumes *all* your graphics inclusions are [e]ps. But don't -# fret, because if they are not epstopdf dies anyhow.... -# 6) Does not distinguish between percent (\%) and comment (%). - -# Changelog: -# 20030103 -- Lachlan Andrew -# * Only append '.tex' if $fname doesn't exist. -# * Correctly handle lines with '}' after the \includegraphics{} -# * Allow multiple extensions for graphics files. .eps -> .ps -> none -# (Should try them in the same order as \includegraphics does -# -- given by \DeclareGraphicsExtensions{}?) -# * Allow \include the same way as \input -# * Allow \includegraphics{} to be split over multiple lines -# * Check that commands begin with '\', and allow spaces before arguments - -# EDIT these two lines for your system.... - -$Eps2PdfCom = "epstopdf"; -$ThisFunCom = "e2pall"; - -$fname=$ARGV[0]; - -# check for a *.tex at the end... -if ((-f "$fname")=="" && $fname !~ /.tex$/){ - $fname = "$fname.tex"; -} - -open(TEXFILE,$fname) or die "Cannot open file $fname"; -# print "Finding *.eps files in $fname\n"; - -$seekingArg = 0; -while($line=){ - # truncate $line after % sign.... - $line=~s/%.*//; - # check for /input.... - if ($line=~/\\input *{([^}]*)}/){ - print `$ThisFunCom $1`; - } - # check for /include.... - if ($line=~/\\include *{([^}]*)}/){ - print `$ThisFunCom $1`; - } - - $base = ""; - if ($line=~/\\includegraphics.*{([^}]*)}/){ - $base = $1; - } - elsif ($seekingArg==1 && ($line=~/{([^}]*)}/)){ - $base = $1; - } - elsif ($line=~/\\includegraphics/){ - $seekingArg = 1; - } - - if ($base ne "") { - $seekingArg = 0; - if ((-f "$base.eps")!="") { - $srcfile = "$base.eps"; - } - elsif ((-f "$base.ps")!=""){ - $srcfile = "$base.ps"; - } - else { - $srcfile = $base; - } - # check that the [e]ps version is newer than the pdf version.... - if ((-M "$base.pdf")=="" || (-M "$base.pdf") >= (-M "$srcfile")){ - print "Constructing \t $base.pdf from $srcfile\n"; - print `$Eps2PdfCom $srcfile`; - } - else{ - print "$base.pdf \t is up to date with $srcfile\n"; - } - - }; -} -close(TEXFILE); diff --git a/Master/texmf-dist/scripts/texlive/fontinst.sh b/Master/texmf-dist/scripts/texlive/fontinst.sh deleted file mode 100755 index 7d1271517ad..00000000000 --- a/Master/texmf-dist/scripts/texlive/fontinst.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -test -f /bin/sh5 && test -z "$RUNNING_SH5" \ - && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ - && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } -unset RUNNING_SH5 - -test -f /bin/bsh && test -z "$RUNNING_BSH" \ - && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ - && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } -unset RUNNING_BSH - -# hack around a bug in zsh: -test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' - -tex -progname=fontinst \&tex ${1+"$@"} diff --git a/Master/texmf-dist/scripts/texlive/kpsetool.sh b/Master/texmf-dist/scripts/texlive/kpsetool.sh deleted file mode 100755 index 463097fd4a9..00000000000 --- a/Master/texmf-dist/scripts/texlive/kpsetool.sh +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/sh - -# kpsetool. Script to make teTeX-style kpsetool, kpsexpand and kpsepath -# available. Web2C's kpsewhich offers a superset of the functionality. -# For compatibilty with old versions of teTeX, this script provides the -# old command line interface of kpsetool, kpsexpand and kpsepath. All the -# real work is done inside Web2C's kpsewhich. -# Thomas Esser , Mar 1997, public domain. - -export PATH - -usage=" -Usage: kpsexpand [options] string -Usage: kpsetool -w [options] pathtype filename -Usage: kpsepath [options] pathtype - -Valid options are the following: - -n progname : pretend to be progname to kpathsea - -m mode : set Metafont mode - -w : locate files (similar to kpsewhich) - -p : act like kpsepath - -v : act like kpsexpand - -Valid pathtypes are: - gf : generic font bitmap - pk : packed bitmap font - base : Metafont memory dump - bib : BibTeX bibliography source - bst : BibTeX style files - cnf : Kpathsea runtime configuration files - fmt : TeX memory dump - mem : MetaPost memory dump - mf : Metafont source - mfpool : Metafont program strings - mp : MetaPost source - mppool : MetaPost program strings - mpsupport : MetaPost support files - pict : Other kinds of figures - tex : TeX source - texpool : TeX program strings - tfm : TeX font metrics - vf : virtual font - dvips_config : dvips config files - dvips_header : dvips header files - troff_font : troff fonts -" - -action=kpsexpand -case $0 in - */kpsewhich) action=kpsewhich;; - */kpsepath) action=kpsepath;; -esac - -progname=`echo $0 | sed 's@.*/@@'` -flags='' - -while true; do - case x"$1" in - x-n) - if test $# = 1; then - echo "$progname: missing argument for -n." - echo "$usage"; exit 1 - else - flags="$flags -progname=$2"; shift; shift - fi;; - x-m) - if test $# = 1; then - echo "$progname: missing argument for -m." - echo "$usage"; exit 1 - else - flags="$flags -mode=$2"; shift; shift - fi;; - x-w) action=kpsewhich; shift;; - x-p) action=kpsepath; shift;; - x-v) action=kpsexpand; shift;; - *) break;; - esac -done - -case "$action" in - kpsewhich|kpsepath) - case "$1" in - gf) format='gf';; - pk) format='pk';; - base) format='.base';; - bib) format='.bib';; - bst) format='.bst';; - cnf) format='.cnf';; - fmt) format='.fmt';; - mem) format='.mem';; - mf) format='.mf';; - mfpool) format='.pool';; - mp) format='.mp';; - mppool) format='.pool';; - mpsupport) format='MetaPost support';; - pict) format='.eps';; - tex) format='.tex';; - texpool) format='.pool';; - tfm) format='.tfm';; - vf) format='.vf';; - dvips_config) format='dvips config';; - dvips_header) format='.pro';; - troff_font) format='Troff fonts';; - *) echo "$progname: $1: unknown format"; echo "$usage"; exit 1;; - esac - shift;; -esac - -case "$action" in - kpsewhich) - test $# = 1 || { echo "$progname: missing filename"; echo "$usage"; exit 1; } - kpsewhich $flags -format="$format" "$1";; - kpsepath) - kpsewhich $flags -show-path="$format";; - kpsexpand) - test $# = 1 || { echo "$progname: missing string"; echo "$usage"; exit 1; } - kpsewhich $flags -expand-var="$1";; -esac diff --git a/Master/texmf-dist/scripts/texlive/kpsewhere.sh b/Master/texmf-dist/scripts/texlive/kpsewhere.sh deleted file mode 100755 index 51088ee80d6..00000000000 --- a/Master/texmf-dist/scripts/texlive/kpsewhere.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/sh -# -# Thomas Esser, Hans Fredrik Nordhaug, 2003, 2004. -# Public domain. -# -# kpsewhere is an extension to kpsewhich (as where is for which in tcsh). -# The intention is to provide a way to check for conflicts/shadowed -# files. -# -# Original version by Hans Fredrik Nordhaug -# -# Bugs / limitations: -# conflicts/shadowed files whithin each texmf tree are not found. -# - - -test -f /bin/sh5 && test -z "$RUNNING_SH5" \ - && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ - && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } -unset RUNNING_SH5 - -test -f /bin/bsh && test -z "$RUNNING_BSH" \ - && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ - && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } -unset RUNNING_BSH - -export PATH - -help='Usage: kpsewhere [OPTION]... [FILENAME]... - Expanding kpsewhich to iterate over each texmf tree listed in $TEXMF - separately. - - See kpsewhich for help on options. - - --help show this help' - -options= -while - case $1 in - -h|-help|--help) - echo "$help" >&2 - exit 0;; - -*) options="${options} '${1}'";; - *) break;; - esac -do shift; done - -case $# in - 0) - echo "$help" >&2 - exit 1 - ;; -esac - -IFS=':' -for file -do - for path in `kpsewhich --expand-path='$TEXMF'` - do - eval TEXMF=\$path kpsewhich $options \"\$file\" - done -done -exit 0 diff --git a/Master/texmf-dist/scripts/texlive/ps2frag.sh b/Master/texmf-dist/scripts/texlive/ps2frag.sh deleted file mode 100755 index b8e673be087..00000000000 --- a/Master/texmf-dist/scripts/texlive/ps2frag.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -tty -s && { - echo - echo "Warning: the ps2frag script is not needed with this version of psfrag." - echo "Please read the manpage ps2frag(1) and the documentation of the" - echo "psfrag package." - echo -} >&2 - -exit 0 diff --git a/Master/texmf-dist/scripts/texlive/pslatex.sh b/Master/texmf-dist/scripts/texlive/pslatex.sh deleted file mode 100755 index 4badef0ec12..00000000000 --- a/Master/texmf-dist/scripts/texlive/pslatex.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh - -# Copyright 1994 David Carlisle -# This file may be redistributed and/or modified under the terms of the -# LaTeX Project Public License distributed from CTAN archives in directory -# macros/latex/base/lppl.txt; either version 1 of the License, or (at -# your option) any later version. - -test -f /bin/sh5 && test -z "$RUNNING_SH5" \ - && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ - && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } -unset RUNNING_SH5 - -test -f /bin/bsh && test -z "$RUNNING_BSH" \ - && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ - && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } -unset RUNNING_BSH - -# hack around a bug in zsh: -test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' - -# we want to be able to use options to latex: -while :; do - case $1 in - -*) - latexoptions="$latexoptions \"$1\"" - shift;; - *) - break;; - esac -done - -echo -echo "*************************************" -echo "* Using LaTeX, with pslatex package *" -echo "*************************************" -echo - -# messing around with \PSLATEXTMP is for AUCTeX which calls -# documents via latex \nonstopmode \input{file} - -latex $latexoptions \ - "\AtBeginDocument{\RequirePackage{pslatex}}"\ - "\def\PSLATEXTMP{\futurelet\PSLATEXTMP\PSLATEXTMPB}"\ - "\def\PSLATEXTMPB{\ifx\PSLATEXTMP\nonstopmode\else\input\fi}"\ - "\PSLATEXTMP" ${1+"$@"} diff --git a/Master/texmf-dist/scripts/texlive/rubibtex.sh b/Master/texmf-dist/scripts/texlive/rubibtex.sh deleted file mode 100755 index 373e6e1194d..00000000000 --- a/Master/texmf-dist/scripts/texlive/rubibtex.sh +++ /dev/null @@ -1,110 +0,0 @@ -#!/bin/sh - -# rubibtex, based on the original version contained in the t2 bundle. -# Thomas Esser, Public Domain. - -progname=rubibtex -tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$ -job=$1 -backup="$tmpdir/orig.aux" - -case $job in - "") - echo "usage: $progname file" >&2 - exit 1 -esac - -if test ! -f "$job.aux"; then - echo "$progname: file \`$job.aux' does not exist." >&2 - exit 1 -fi - -trap ' - rm -rf "$tmpdir" - exit 1 -' 1 2 3 7 13 15 -(umask 077; mkdir "$tmpdir") \ - || { echo "$progname: could not create directory \`$tmpdir'" >&2; exit 1; } - -cat <"$job.aux" >"$backup" || { - echo "$progname: could not create backup of file \`$job.aux' as \`$backup'." >&2 - rm -rf "$tmpdir" - exit 1 -} - -sed ' - /^\\citation/ { - s/\\IeC {\\CYRA }/á/g - s/\\IeC {\\CYRB }/â/g - s/\\IeC {\\CYRV }/÷/g - s/\\IeC {\\CYRG }/ç/g - s/\\IeC {\\CYRD }/ä/g - s/\\IeC {\\CYRE }/å/g - s/\\IeC {\\CYRYO }/³/g - s/\\IeC {\\CYRZH }/ö/g - s/\\IeC {\\CYRZ }/ú/g - s/\\IeC {\\CYRI }/é/g - s/\\IeC {\\CYRISHRT }/ê/g - s/\\IeC {\\CYRK }/ë/g - s/\\IeC {\\CYRL }/ì/g - s/\\IeC {\\CYRM }/í/g - s/\\IeC {\\CYRN }/î/g - s/\\IeC {\\CYRO }/ï/g - s/\\IeC {\\CYRP }/ð/g - s/\\IeC {\\CYRR }/ò/g - s/\\IeC {\\CYRS }/ó/g - s/\\IeC {\\CYRT }/ô/g - s/\\IeC {\\CYRU }/õ/g - s/\\IeC {\\CYRF }/æ/g - s/\\IeC {\\CYRH }/è/g - s/\\IeC {\\CYRC }/ã/g - s/\\IeC {\\CYRCH }/þ/g - s/\\IeC {\\CYRSH }/û/g - s/\\IeC {\\CYRSHCH }/ý/g - s/\\IeC {\\CYRHRDSN }/ÿ/g - s/\\IeC {\\CYRERY }/ù/g - s/\\IeC {\\CYRSFTSN }/ø/g - s/\\IeC {\\CYREREV }/ü/g - s/\\IeC {\\CYRYU }/à/g - s/\\IeC {\\CYRYA }/ñ/g - s/\\IeC {\\cyra }/Á/g - s/\\IeC {\\cyrb }/Â/g - s/\\IeC {\\cyrv }/×/g - s/\\IeC {\\cyrg }/Ç/g - s/\\IeC {\\cyrd }/Ä/g - s/\\IeC {\\cyre }/Å/g - s/\\IeC {\\cyryo }/£/g - s/\\IeC {\\cyrzh }/Ö/g - s/\\IeC {\\cyrz }/Ú/g - s/\\IeC {\\cyri }/É/g - s/\\IeC {\\cyrishrt }/Ê/g - s/\\IeC {\\cyrk }/Ë/g - s/\\IeC {\\cyrl }/Ì/g - s/\\IeC {\\cyrm }/Í/g - s/\\IeC {\\cyrn }/Î/g - s/\\IeC {\\cyro }/Ï/g - s/\\IeC {\\cyrp }/Ð/g - s/\\IeC {\\cyrr }/Ò/g - s/\\IeC {\\cyrs }/Ó/g - s/\\IeC {\\cyrt }/Ô/g - s/\\IeC {\\cyru }/Õ/g - s/\\IeC {\\cyrf }/Æ/g - s/\\IeC {\\cyrh }/È/g - s/\\IeC {\\cyrc }/Ã/g - s/\\IeC {\\cyrch }/Þ/g - s/\\IeC {\\cyrsh }/Û/g - s/\\IeC {\\cyrshch }/Ý/g - s/\\IeC {\\cyrhrdsn }/ß/g - s/\\IeC {\\cyrery }/Ù/g - s/\\IeC {\\cyrsftsn }/Ø/g - s/\\IeC {\\cyrerev }/Ü/g - s/\\IeC {\\cyryu }/À/g - s/\\IeC {\\cyrya }/Ñ/g - } -' <"$backup" >"$job.aux" - -bibtex "$job" - -cat "$backup" > "$job.aux" -rm -rf "$tmpdir" -exit 0 diff --git a/Master/texmf-dist/scripts/texlive/rumakeindex.sh b/Master/texmf-dist/scripts/texlive/rumakeindex.sh deleted file mode 100755 index b7b0c072729..00000000000 --- a/Master/texmf-dist/scripts/texlive/rumakeindex.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/sh - -BASE=`basename "$1" .idx` -IDX=$BASE.idx -IND=$BASE.ind -ILG=$BASE.ilg - -sed ' -/^\\indexentry{/ { -s/\\IeC {\\CYRA }/¾/g -s/\\IeC {\\cyra }/¿/g -s/\\IeC {\\CYRB }/À/g -s/\\IeC {\\cyrb }/Á/g -s/\\IeC {\\CYRV }/Â/g -s/\\IeC {\\cyrv }/Ã/g -s/\\IeC {\\CYRG }/Ä/g -s/\\IeC {\\cyrg }/Å/g -s/\\IeC {\\CYRD }/Æ/g -s/\\IeC {\\cyrd }/Ç/g -s/\\IeC {\\CYRE }/È/g -s/\\IeC {\\cyre }/É/g -s/\\IeC {\\CYRYO }/Ê/g -s/\\IeC {\\cyryo }/Ë/g -s/\\IeC {\\CYRZH }/Ì/g -s/\\IeC {\\cyrzh }/Í/g -s/\\IeC {\\CYRZ }/Î/g -s/\\IeC {\\cyrz }/Ï/g -s/\\IeC {\\CYRI }/Ð/g -s/\\IeC {\\cyri }/Ñ/g -s/\\IeC {\\CYRISHRT }/Ò/g -s/\\IeC {\\cyrishrt }/Ó/g -s/\\IeC {\\CYRK }/Ô/g -s/\\IeC {\\cyrk }/Õ/g -s/\\IeC {\\CYRL }/Ö/g -s/\\IeC {\\cyrl }/×/g -s/\\IeC {\\CYRM }/Ø/g -s/\\IeC {\\cyrm }/Ù/g -s/\\IeC {\\CYRN }/Ú/g -s/\\IeC {\\cyrn }/Û/g -s/\\IeC {\\CYRO }/Ü/g -s/\\IeC {\\cyro }/Ý/g -s/\\IeC {\\CYRP }/Þ/g -s/\\IeC {\\cyrp }/ß/g -s/\\IeC {\\CYRR }/à/g -s/\\IeC {\\cyrr }/á/g -s/\\IeC {\\CYRS }/â/g -s/\\IeC {\\cyrs }/ã/g -s/\\IeC {\\CYRT }/ä/g -s/\\IeC {\\cyrt }/å/g -s/\\IeC {\\CYRU }/æ/g -s/\\IeC {\\cyru }/ç/g -s/\\IeC {\\CYRF }/è/g -s/\\IeC {\\cyrf }/é/g -s/\\IeC {\\CYRH }/ê/g -s/\\IeC {\\cyrh }/ë/g -s/\\IeC {\\CYRC }/ì/g -s/\\IeC {\\cyrc }/í/g -s/\\IeC {\\CYRCH }/î/g -s/\\IeC {\\cyrch }/ï/g -s/\\IeC {\\CYRSH }/ð/g -s/\\IeC {\\cyrsh }/ñ/g -s/\\IeC {\\CYRSHCH }/ò/g -s/\\IeC {\\cyrshch }/ó/g -s/\\IeC {\\CYRHRDSN }/ô/g -s/\\IeC {\\cyrhrdsn }/õ/g -s/\\IeC {\\CYRERY }/ö/g -s/\\IeC {\\cyrery }/÷/g -s/\\IeC {\\CYRSFTSN }/ø/g -s/\\IeC {\\cyrsftsn }/ù/g -s/\\IeC {\\CYREREV }/ú/g -s/\\IeC {\\cyrerev }/û/g -s/\\IeC {\\CYRYU }/ü/g -s/\\IeC {\\cyryu }/ý/g -s/\\IeC {\\CYRYA }/þ/g -s/\\IeC {\\cyrya }/ÿ/g -}' $IDX | makeindex -t $ILG | tr '¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' \ - 'áÁâÂ÷×çÇäÄåų£öÖúÚéÉêÊëËìÌíÍîÎïÏðÐòÒóÓôÔõÕæÆèÈãÃþÞûÛýÝÿßùÙøØüÜàÀñÑ' > $IND diff --git a/Master/texmf-dist/scripts/texlive/texconfig-dialog.sh b/Master/texmf-dist/scripts/texlive/texconfig-dialog.sh deleted file mode 100755 index baa46bbecb5..00000000000 --- a/Master/texmf-dist/scripts/texlive/texconfig-dialog.sh +++ /dev/null @@ -1,496 +0,0 @@ -#!/bin/sh -# $Id: texconfig-dialog.sh 40066 2016-03-18 22:29:48Z karl $ -# texconfig-dialog -# Originally written by Thomas Esser. Public domain. -# Now maintained as part of TeX Live; correspondence to tex-live@tug.org. - -# invoke the right shell: - -test -f /bin/ksh && test -z "$RUNNING_KSH" \ - && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ - && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; } -unset RUNNING_KSH - -test -f /bin/bsh && test -z "$RUNNING_BSH" \ - && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ - && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } -unset RUNNING_BSH - -# hack around a bug in zsh: -test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' - -# preferentially use subprograms from our own directory. -mydir=`echo "$0" | sed 's,/[^/]*$,,'` -mydir=`cd "$mydir" && pwd` -PATH="$mydir:$PATH"; export PATH - -# the version string -version='$Id: texconfig-dialog.sh 40066 2016-03-18 22:29:48Z karl $' - -: ${PAGER=more} -progname=texconfig-dialog -tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/tcdtmp.$$ -log=$tmpdir/log -tmpmenu=$tmpdir/tmpmenu -needsCleanup=false - -############################################################################### -# cleanup() -# clean up the temp area and exit with proper exit status -############################################################################### -cleanup() -{ - rc=$1 - $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \ - && { cd / && rm -rf "$tmpdir"; } - # use clear rather than reset since we cannot easily save and restore - # the terminal settings, which is what would be ideal. See thread - # starting at http://tug.org/pipermail/tex-live/2016-March/037852.html. - termCtl clear - (exit $rc); exit $rc -} - -############################################################################### -# setupTmpDir() -# set up a temp directory and a trap to remove it -############################################################################### -setupTmpDir() -{ - case $needsCleanup in - true) return;; - esac - - trap 'cleanup 1' 1 2 3 7 13 15 - needsCleanup=true - (umask 077; mkdir "$tmpdir") \ - || abort "could not create directory \`$tmpdir'" -} - -############################################################################### -# abort(errmsg) -# print `errmsg' to stderr and exit with error code 1 -############################################################################### -abort() -{ - echo "$progname: $1." >&2 - cleanup 1 -} - -logexec() -{ - (echo; echo ">>> Executing \`$@' <<<") >> $log - "$@" 2>&1 | tee -a $log -} - -############################################################################### -# runDialog(args, ...) -# execute the right dialog program with the right default parameters -############################################################################### -runDialog() -{ - if test -n "$DIALOG_PROG"; then - termCtl clear - $DIALOG_PROG --title "TeX setup utility" ${1+"$@"} - runDialogRc=$? - termCtl clear - else - abort "could not find dialog or whiptail program to run" - fi - (exit $runDialogRc) - return $runDialogRc -} - -############################################################################### -# findDialog(void) -# set DIALOG_PROG to the system dialog program, or the empty string. -############################################################################### -findDialog() -{ - for bin in whiptail dialog - do - binLoc=`texconfig findprog $bin` - case $binLoc in - "") DIALOG_PROG="";; - *) DIALOG_PROG=$binLoc; break;; - esac - done -} - -############################################################################### -# mktexdir(args) -# call mktexdir script, disable all features (to prevent sticky directories) -############################################################################### -mktexdir() -{ - MT_FEATURES=none "$TEXMFMAIN/web2c/mktexdir" "$@" >&2 -} - -############################################################################### -# termCtl(arg) -# some convenience utilities for terminal control -############################################################################### -termCtl() -{ - case $1 in - clear) - test -n "$NO_CLEAR" && return - tty >/dev/null 2>&1 && clear - ;; - reset) - test -n "$NO_CLEAR" && return - reset 2>/dev/null - stty sane 2>/dev/null - reset 2>/dev/null - termCtl clear - ;; - readln) - echo - echo "press return to continue..." - read a - ;; - esac -} - -############################################################################### -# menuMain(void) -# the main menu -############################################################################### -menuMain() -{ - cat <<-'eof' - The interactive texconfig utility will be started now. Make sure - your screen has at least 24 rows and 80 columns. If texconfig - crashes now, you can still set up your TeX system using the - batch mode of texconfig. Try 'texconfig help' to get a list - of options. - - The interactive mode works best with a real vt100 terminal or - inside an xterm window. - - More likely these days, you're better off using tlmgr. - See http://tug.org/texlive/tlmgr.html. -eof - termCtl readln - - while :; do - logMessage='view logfile' - - runDialog \ - --menu " -Hint: all output of external commands (e.g. tex) is logged into -a file. You can look at this file using "LOG". If cursor keys make -trouble, you may have more luck with +/- and TAB. -" \ - 23 80 14 \ - EXIT 'exit' \ - PAPER 'default paper: A4 or letter (us)' \ - MODE 'default metafont mode and resolution' \ - REHASH 'rebuild filename databases' \ - FORMATS 'edit format definitions' \ - HYPHENATION 'customize hyphenation' \ - DVIPS 'dvips configuration' \ - FAQ 'view frequently asked questions + answers' \ - CONF 'show configuration' \ - LOG "$logMessage" \ - 2>"$tmpmenu" || break - - case `cat "$tmpmenu"` in - EXIT) - break - ;; - PAPER) - menuPaper - ;; - MODE) - menuMode - ;; - REHASH) - logexec texconfig rehash - termCtl readln - ;; - FORMATS) - texconfig formats - termCtl readln - ;; - HYPHENATION) - menuHyphenation - ;; - DVIPS) - menuDvips - ;; - FAQ) - texconfig faq - termCtl readln - ;; - CONF) - logexec texconfig conf - termCtl readln - ;; - LOG) - <"$log" eval $PAGER - termCtl readln - ;; - esac - done -} - -menuGetMode() -{ - # we need eval to get the command line right... :-( - eval \ - runDialog \ - --menu \"" -Chosse a mode to be used when metafont generates font bitmaps. The resolution is the most important point, but there might -be differences between modes of the same resolution. See the comments in the file modes.mf for more details. -\"" \ - 23 80 14 \ - `texconfig mode-list` 2>"$tmpmenu" -} - -menuMode() -{ - menuGetMode - mode=`cat "$tmpmenu"` - - if test -n "$mode"; then - logexec texconfig mode "$mode" - termCtl readln - fi -} - -menuDvips() -{ - menuDvipsDest=ps - - while :; do - case $menuDvipsDest in - ps) - menuDvipsPrinterOpt= - menuDvipsMsg=" -dvips GLOBAL section. Define the most common default settings (config.ps). -To define settings for a specific printer, first ADD a printer definition, -then CHANGE it. -" - ;; - *) - menuDvipsPrinterOpt="-P $menuDvipsDest" - menuDvipsMsg=" -dvips settings for printer $menuDvipsDest (config.$menuDvipsDest). Define -local settings for this printer. To switch back to global settings mode, -select GLOBAL. -" - ;; - esac - - runDialog \ - --menu "$menuDvipsMsg -You can use dvips for non PostScript printers, if you can setup your -printing system to convert PostScript to a format that your printer can -handle. Maybe, you can use GhostScript to do the conversion (if your -printer is supported)." \ - 23 80 9 \ - RETURN 'back to the main menu' \ - DEST 'define default destination of the generated Postscript' \ - MODE 'change metafont mode/resolution' \ - OFFSET 'shift output by some offset' \ - PAPER 'define the default paper' \ - GLOBAL 'change global settings (config.ps)' \ - CHANGE 'change printer settings (config.$PRINTER)' \ - ADD 'add a printer configuration' \ - DEL 'remove a printer configuration' \ - 2>"$tmpmenu" || break - - menuDvipsAns=`cat "$tmpmenu"` - case $menuDvipsAns in - RETURN) - break - ;; - DEST) - runDialog --inputbox "Enter the command to print. - -In general, you need a command like 'lpr' or 'lpr -Pfoo'. - -NOTE: If you just press return, printing will be disabled and the output saved to a file by default. -" 23 80 2>"$tmpmenu" - if test $? = 0; then - menuDvipsAns=`cat "$tmpmenu"` - case $menuDvipsAns in - "") - menuDvipsPrintOpt=- - ;; - *) - menuDvipsPrintOpt=$menuDvipsAns - ;; - esac - logexec texconfig dvips $menuDvipsPrinterOpt printcmd "$menuDvipsPrintOpt" - termCtl readln - fi - ;; - MODE) - menuGetMode - mode=`cat "$tmpmenu"` - - if test -n "$mode"; then - logexec texconfig dvips $menuDvipsPrinterOpt mode "$mode" - termCtl readln - fi - ;; - OFFSET) - runDialog --inputbox "Enter a dimension pair (a rightwards offset and a downwards -offset), e.g. 2mm,-0.5in (right 2mm and up .5in):" 23 80 2>"$tmpmenu"; menuDvipsAns=`cat "$tmpmenu"` - case $menuDvipsAns in - "") : ;; - *) - logexec texconfig dvips $menuDvipsPrinterOpt offset "$menuDvipsAns" - termCtl readln - ;; - esac - ;; - PAPER) - eval runDialog \ - --menu \'\\n\\nChoose the default papersize definition for dvips.\\n\\n\' \ - 23 80 8 `texconfig dvips paper-list` \ - 2>"$tmpmenu" - paper=`cat "$tmpmenu"` - if test -n "$paper"; then - logexec texconfig dvips paper "$paper" - termCtl readln - fi - ;; - GLOBAL) - menuDvipsDest=ps - ;; - CHANGE) - runDialog --inputbox "Printer name (for future settings of DEST / MODE / OFFSET)" 23 80 2>"$tmpmenu" - menuDvipsAns=`cat $tmpmenu` - case $menuDvipsAns in - "") : ;; - *) menuDvipsDest=$menuDvipsAns;; - esac - ;; - ADD) - runDialog --inputbox "Printer name (for printer to add)" 23 80 2>"$tmpmenu" - menuDvipsAns=`cat $tmpmenu` - case $menuDvipsAns in - "") : ;; - *) - logexec texconfig dvips add $menuDvipsAns - termCtl readln - ;; - esac - ;; - DEL) - runDialog --inputbox "Printer name (for printer to delete)" 23 80 2>"$tmpmenu" - menuDvipsAns=`cat $tmpmenu` - case $menuDvipsAns in - "") : ;; - *) - logexec texconfig dvips del $menuDvipsAns - termCtl readln - ;; - esac - ;; - esac - done -} - -menuPaper() -{ - runDialog \ - --menu " -Select your default paper format. -" \ - 23 80 14 \ - RETURN 'return to the main menu' \ - A4 'ISO A4 (210x297mm)' \ - LETTER 'US (8.5x11in)' 2>"$tmpmenu" - - p=`cat "$tmpmenu"` - case $p in - A4) - logexec texconfig paper a4 - termCtl readln - ;; - LETTER) - logexec texconfig paper letter - termCtl readln - ;; - esac -} - -menuHyphenation() -{ - runDialog \ - --menu " -Choose format to set up hyphenation for. -" \ - 23 80 14 \ - `texconfig hyphen-list | sed 's@\(.*\)@\1 \1@'` 2>"$tmpmenu" - p=`cat "$tmpmenu"` - case $p in - "") - return - ;; - *) - texconfig hyphen "$p" - termCtl readln - esac -} - -# main() - -case $1 in - help|--help) - cat <<-eof - Usage: $progname [--help|--version] -eof - exit 0 - ;; - --version) - cat <<-eof - $progname version $version. -eof - exit 0 - ;; -esac - - -: ${TEXMFCONFIG=`kpsewhich -var-value=TEXMFCONFIG`} -: ${TEXMFVAR=`kpsewhich -var-value=TEXMFVAR`} -: ${TEXMFMAIN=`kpsewhich -var-value=TEXMFMAIN`} -export TEXMFCONFIG TEXMFVAR TEXMFMAIN - -setupTmpDir -echo "$progname: started `date`" > $log -findDialog - -test -d "$TEXMFCONFIG" \ - || mktexdir "$TEXMFCONFIG" >/dev/null 2>&1 \ - || echo "$progname: directory \`$TEXMFCONFIG' (from TEXMFCONFIG variable) does not exist and cannot be created" >&2 - -canWriteConfig=false -if test -d "$TEXMFCONFIG"; then - if test -w "$TEXMFCONFIG"; then - canWriteConfig=true - else - echo "$progname: directory \`$TEXMFCONFIG' (from TEXMFCONFIG variable) is not writable." - echo "$progname: configuration data cannot be changed." >&2 - fi -fi - -test -d "$TEXMFVAR" \ - || mktexdir "$TEXMFVAR" >/dev/null 2>&1 \ - || echo "$progname: directory \`$TEXMFVAR' (from TEXMFVAR variable) does not exist and cannot be created" >&2 - -canWriteVardata=false -if test -d "$TEXMFVAR"; then - if test -w "$TEXMFVAR"; then - canWriteVardata=true - else - echo "$progname: directory \`$TEXMFVAR' (from TEXMFVAR variable) is not writable." - echo "$progname: cached variable runtime data files cannot be written." >&2 - fi -fi - -menuMain -cleanup 0 diff --git a/Master/texmf-dist/scripts/texlive/texconfig-sys.sh b/Master/texmf-dist/scripts/texlive/texconfig-sys.sh deleted file mode 100755 index cf963fb9a52..00000000000 --- a/Master/texmf-dist/scripts/texlive/texconfig-sys.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh -# $Id: texconfig-sys.sh 34586 2014-07-13 00:06:11Z karl $ -# texconfig-sys: Thomas Esser, public domain. - -# wrapper script for texconfig with TEXMFVAR and TEXMFCONFIG set to -# TEXMFSYSVAR / TEXMFSYSCONFIG - -test -f /bin/ksh && test -z "$RUNNING_KSH" \ - && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ - && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; } -unset RUNNING_KSH - -test -f /bin/bsh && test -z "$RUNNING_BSH" \ - && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ - && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } -unset RUNNING_BSH - -# hack around a bug in zsh: -test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' - -# preferentially use subprograms from our own directory. -mydir=`echo "$0" | sed 's,/[^/]*$,,'` -mydir=`cd "$mydir" && pwd` -PATH="$mydir:$PATH"; export PATH - -v=`kpsewhich -var-value TEXMFSYSVAR` -c=`kpsewhich -var-value TEXMFSYSCONFIG` - -TEXMFVAR="$v" -TEXMFCONFIG="$c" -export TEXMFVAR TEXMFCONFIG - -exec texconfig ${1+"$@"} diff --git a/Master/texmf-dist/scripts/texlive/texconfig.sh b/Master/texmf-dist/scripts/texlive/texconfig.sh deleted file mode 100755 index 6448580dd36..00000000000 --- a/Master/texmf-dist/scripts/texlive/texconfig.sh +++ /dev/null @@ -1,1449 +0,0 @@ -#!/bin/sh -# $Id: texconfig.sh 46086 2017-12-17 23:19:22Z karl $ -# texconfig version 3.0 -# Originally written by Thomas Esser. Public domain. -# Now maintained as part of TeX Live; correspondence to tex-live@tug.org. - -# invoke the right shell: - -test -f /bin/ksh && test -z "$RUNNING_KSH" \ - && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ - && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; } -unset RUNNING_KSH - -test -f /bin/bsh && test -z "$RUNNING_BSH" \ - && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ - && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } -unset RUNNING_BSH - -# hack around a bug in zsh: -test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' - -# preferentially use subprograms from our own directory. -mydir=`echo "$0" | sed 's,/[^/]*$,,'` -mydir=`cd "$mydir" && pwd` -PATH="$mydir:$PATH"; export PATH - -# initializations... -progname=texconfig - -# the version string -version='$Id: texconfig.sh 46086 2017-12-17 23:19:22Z karl $' - -envVars=" - AFMFONTS BIBINPUTS BSTINPUTS CMAPFONTS CWEBINPUTS ENCFONTS GFFONTS - GLYPHFONTS INDEXSTYLE LIGFONTS MFBASES MFINPUTS MFPOOL MFTINPUTS - MISCFONTS MPINPUTS MPMEMS MPPOOL MPSUPPORT OCPINPUTS OFMFONTS - OPENTYPEFONTS OPLFONTS OTPINPUTS OVFFONTS OVPFONTS PDFTEXCONFIG PKFONTS - PSHEADERS SFDFONTS T1FONTS T1INPUTS T42FONTS TEXBIB TEXCONFIG TEXDOCS - TEXFONTMAPS TEXFONTS TEXFORMATS TEXINDEXSTYLE TEXINPUTS TEXMFCNF - TEXMFDBS TEXMFINI TEXMFSCRIPTS TEXPICTS TEXPKS TEXPOOL TEXPSHEADERS - TEXSOURCES TFMFONTS TRFONTS TTFONTS VFFONTS WEB2C WEBINPUTS -" -tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/tctmp.$$ -needsCleanup=false -lastUpdatedFile= - -# -############################################################################### -# setupFMT(void) - find a suitable version of fmt / adjust -# -setupFMT() -{ - case $FMT in - "") - FMT=fmt - test ! -x /bin/fmt && test ! -f /usr/bin/fmt && - { test -x /bin/adjust || test -x /usr/bin/adjust; } && FMT=adjust - ;; - *) - return - ;; - esac -} - -############################################################################### -# myFmt(args) - run $FMT -# -myFmt() -{ - setupFMT - $FMT ${1+"$@"} -} - -############################################################################### -# echoShowVariable(args ...) -# show environment variables which names are as args and their values -# -echoShowVariable() -{ - for esv - do - var=$esv - eval val=\"\${$var+=}\${$var- is unset}\" - echo "$var$val" - done | grep -v 'is unset$' -} - -############################################################################### -# echoShowKpseVariable(args ...) -# show kpathsea variables which names are as args and their values -# -echoShowKpseVariable() -{ - for eskv - do - var=$eskv - val=`kpsewhich -var-value="$eskv"` - echo "$var=$val" - done -} - -############################################################################### -# echoLocateBinary(args ...) - show where programs actually exist -# -echoLocateBinary() -{ - for elb - do - elbLoc=`checkForBinary "$elb"` - if test -n "$ELB_PATH_ONLY"; then - test -n "$elbLoc" && echo "$elbLoc" - else - case $elbLoc in - "") echo "$elb: not found";; - *) echo "$elb: $elbLoc";; - esac - fi - done -} - -############################################################################### -# echoLocateCfgfile(args ...) - show where files actually exist -# -echoLocateCfgfile() -{ - for elc - do - case $elc in - texmf.cnf) elcLoc=`kpsewhich $elc`;; - *) elcLoc=`tcfmgr --cmd find --file "$elc"`;; - esac - case $elcLoc in - "") echo "$elc: not found";; - *) echo "$elcLoc";; - esac - done -} - -############################################################################### -# checkForBinary(prog) - echo full path of prog -# -checkForBinary() -{ - cfbBinary=$1 - - OLDIFS=$IFS - IFS=: - set x `echo "$PATH" | sed 's/^:/.:/; s/:$/:./; s/::/:.:/g'`; shift - found=false - for pathElem - do - case $pathElem in - "") continue;; - *) test -f "$pathElem/$cfbBinary" && { echo "$pathElem/$cfbBinary"; found=true; break; } - esac - done - IFS=$OLDIFS - case $found in - true) (exit 0); return 0;; - false) (exit 1); return 1;; - esac -} - -############################################################################### -# cleanup() - clean up the temp area and exit with proper exit status -# -cleanup() -{ - rc=$1 - $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \ - && { cd / && rm -rf "$tmpdir"; } - (exit $rc); exit $rc -} - -############################################################################### -# setupTmpDir() - set up a temp directory and a trap to remove it -# -setupTmpDir() -{ - case $needsCleanup in - true) return;; - esac - - trap 'cleanup 1' 1 2 3 7 13 15 - needsCleanup=true - (umask 077; mkdir "$tmpdir") \ - || abort "could not create directory \`$tmpdir'" -} - -############################################################################### -# setupTexmfroot() - get value for MT_TEXMFROOT (with caching) -# -setupTexmfroot() -{ - case $MT_TEXMFROOT in - "") MT_TEXMFROOT=`kpsewhich -var-value=TEXMFROOT`;; - *) return;; - esac -} - - -############################################################################### -# setupTexmfmain() - get value for MT_TEXMFMAIN (with caching) -# -setupTexmfmain() -{ - case $MT_TEXMFMAIN in - "") MT_TEXMFMAIN=`kpsewhich -var-value=TEXMFMAIN`;; - *) return;; - esac -} - -############################################################################### -# setupTexmfmain() - get value for MT_TEXMFDIST (with caching) -# -setupTexmfdist() -{ - case $MT_TEXMFDIST in - "") MT_TEXMFDIST=`kpsewhich -var-value=TEXMFDIST`;; - *) return;; - esac -} - -############################################################################### -# setupTexmfvar() - get value for MT_TEXMFVAR (with caching) -# -setupTexmfvar() -{ - case $MT_TEXMVAR in - "") MT_TEXMVAR=`kpsewhich -var-value=TEXMFVAR`;; - *) return;; - esac -} - -############################################################################### -# setupSystexmf() - get value for MT_SYSTEXMF (with caching) -# -setupSystexmf() -{ - case $MT_SYSTEXMF in - "") MT_SYSTEXMF=`kpsewhich -var-value=SYSTEXMF`;; - *) return;; - esac -} - -############################################################################### -# abort(errmsg) -# print `errmsg' to stderr and exit with error code 1 -# -abort() -{ - echo "$progname: $1." >&2 - cleanup 1 -} - -############################################################################### -# mktexdir(args) -# call mktexdir script, disable all features (to prevent sticky directories) -# -mktexdir() -{ - setupTexmfmain - MT_FEATURES=none "$MT_TEXMFMAIN/web2c/mktexdir" "$@" >&2 -} - -############################################################################### -# tcfmgr(args) - call tcfmgr script -# -tcfmgr() -{ - setupTexmfmain - "$MT_TEXMFMAIN/texconfig/tcfmgr" "$@" -} - -############################################################################### -# mktexupd(args) - call mktexupd script -# -mktexupd() -{ - setupTexmfmain - "$MT_TEXMFMAIN/web2c/mktexupd" "$@" -} - -############################################################################### -# getRelDir(file) -# matches file against SYSTEXMF. Returns relative directory of file within -# a texmf tree in variable relPart. -# -getRelDir() -{ - file=$1 - relPart= - - setupSystexmf - OLDIFS=$IFS - IFS=' -' - set x `echo "$MT_SYSTEXMF" | tr : ' -'`; shift - IFS=$OLDIFS - - # now loop over all components of SYSTEXMF - for dir - do - test -n "$dir" || continue - case "$file" in - $dir/*) - relPart=`echo "$file" | sed "s%$dir/*%%"` - break - ;; - esac - done - - # now check for success / failure - case $relPart in - ""|$file) - # empty or full filename -> getRelDir failed! - (exit 1); return 1 - ;; - *) - # relPart should just have the "dirname" part: - relPart=`echo "$relPart" | sed 's%/*[^/]*$%%'` - (exit 0); return 0 - ;; - esac -} - -############################################################################### -# configReplace(file pattern line) -# The first line in file that matches pattern gets replaced by line. -# line will be added at the end of the file if pattern does not match. -# -configReplace() -{ - configReplaceFile=$1; configReplacePat=$2; configReplaceLine=$3 - - if grep "$configReplacePat" "$configReplaceFile" >/dev/null; then - ed "$configReplaceFile" >/dev/null 2>&1 <<-eof - /$configReplacePat/c - $configReplaceLine - . - w - q -eof - else - echo "$configReplaceLine" >> $configReplaceFile - fi -} - -############################################################################### -# fmgrConfigReplace (file regex value) -# replaces line matching regex by value in file -# -fmgrConfigReplace() -{ - fmgrConfigReplaceChanged=false - - moreArgs="" - while - case $1 in - --*) moreArgs="$moreArgs $1 $2";; - *) break;; - esac - do shift; shift; done - fmgrConfigReplaceFile=$1 - fmgrConfigReplaceRegex=$2 - fmgrConfigReplaceValue=$3 - - setupTmpDir - co=`tcfmgr $moreArgs --tmp $tmpdir --cmd co --file $fmgrConfigReplaceFile` - if test $? != 0; then - echo "$progname: fmgrConfigReplace co failed for \`$fmgrConfigReplaceFile'" >&2 - (exit 1); return 1 - fi - set x $co; shift - fmgrConfigReplaceID=$1; fmgrConfigReplaceCfgFile=$3; fmgrConfigReplaceOrigFile=$4 - configReplace "$fmgrConfigReplaceCfgFile" "$fmgrConfigReplaceRegex" "$fmgrConfigReplaceValue" - ci=`tcfmgr --tmp $tmpdir --cmd ci --id "$fmgrConfigReplaceID"` - if test $? != 0; then - echo "$progname: fmgrConfigReplace ci failed for \`$fmgrConfigReplaceFile'" >&2 - (exit 1); return 1 - fi - case $ci in - "") :;; - $lastUpdatedFile) - fmgrConfigReplaceChanged=true;; - *) echo "$progname: updated configuration saved as file \`$ci'" >&2 - fmgrConfigReplaceChanged=true - lastUpdatedFile=$ci;; - esac - (exit 0); return 0 -} - -############################################################################### -# setupDvipsPaper(paper) -# rearranges config.ps to make paper the first paper definition -# -setupDvipsPaper() -{ - setupDvipsPaperChanged=false - setupDvipsPaperFile=config.ps - setupDvipsPaperDftPaper=$1 - - setupTmpDir - co=`tcfmgr --tmp $tmpdir --cmd co --file $setupDvipsPaperFile` - if test $? != 0; then - echo "$progname: setupDvipsPaper co failed for \`$setupDvipsPaperFile'" >&2 - (exit 1); return 1 - fi - set x $co; shift - setupDvipsPaperID=$1; setupDvipsPaperCfgFile=$3; setupDvipsPaperOrigFile=$4 - - ed "$setupDvipsPaperCfgFile" > /dev/null 2>&1 <<-eof - /@ /ka - \$a - @ - . - /@ $setupDvipsPaperDftPaper /;/@ /-1m'a-1 - \$d - w - q -eof - - ci=`tcfmgr --tmp $tmpdir --cmd ci --id "$setupDvipsPaperID"` - if test $? != 0; then - echo "$progname: setupDvipsPaper ci failed for \`$setupDvipsPaperFile'" >&2 - (exit 1); return 1 - fi - case $ci in - "") :;; - $lastUpdatedFile) - setupDvipsPaperChanged=true;; - *) echo "$progname: updated configuration saved as file \`$ci'" >&2 - setupDvipsPaperChanged=true - lastUpdatedFile=$ci;; - esac - (exit 0); return 0 -} - -############################################################################### -# setupModesMfFile(void) - find modes.mf file (with caching) -# -setupModesMfFile() -{ - case $modesMfFile in - "") - modesMfFile=`tcfmgr --cmd find --file modes.mf` - ;; - *) - return - ;; - esac -} - -############################################################################### -# locateConfigPsFile(void) - find config.ps file (with caching) -# -locateConfigPsFile() -{ - case $configPsFile in - "") - configPsFile=`tcfmgr --cmd find --file config.ps` - ;; - *) - return - ;; - esac -} - -############################################################################### -# listMfModes(file) - list modes from modes.mf file -# -listMfModes() -{ - grep mode_def "$modesMfFile" | - sed -e "s/mode_def //" \ - -e "s/ .*%[^ ]* / '/" \ - -e "s/\$/' /" | - egrep -v "^(help|%)" | sort -} - -############################################################################### -# listDvipsPapers(void) - list paper definitions from config.ps -# -listDvipsPapers() -{ - grep '@ ' $configPsFile | sed "s/..//;s/ / '/;s/\$/' /" -} - -############################################################################### -# getFormatsForHyphen(void) -# list all formats which have customizable hyphenation -# -getFormatsForHyphen() -{ - fmtutil --catcfg | awk '$3 != "-" {print $1}' | sort -} - -############################################################################### -# getRes(mode) - print resolution (both X and Y axis) to metafont mode -# -getRes() -{ - getResMode=$1 - ( - cd $tmpdir - cat >mftmp.mf <<-'eof' - let myexit = primitive_end_; - mode_setup; - string xdpi; - xdpi := decimal round pixels_per_inch; - message "XDPI = " & xdpi; - string ydpi; - ydpi := decimal round (pixels_per_inch * aspect_ratio); - message "YDPI = " & ydpi; - fontmaking := 0; - myexit; -eof - mf '\mode='"$getResMode"'; \input ./mftmp' &2; rc=1;; - *) - echo "$progname: unknown PAPER \`$3' given as argument for \`$progname dvipdfmx paper'" >&2 - echo "$progname: try \`$progname dvipdfmx paper' for help" >&2 - rc=1 ;; - esac ;; - # texconfig dvipdfmx "" - "") - echo "$help" >&2; rc=1 ;; - # texconfig dvipdfmx - *) - echo "$progname: unknown option \`$2' given as argument for \`$progname dvipdfmx'" >&2 - echo "$progname: try \`$progname dvipdfmx' for help" >&2 - rc=1 - ;; - esac - ;; - - # texconfig dvips - dvips) - shift - help="Usage: $progname dvips add PRINTER - $progname dvips del PRINTER - $progname dvips paper PAPER - $progname dvips [-P PRINTER] mode MODE - $progname dvips [-P PRINTER] offset OFFSET - $progname dvips [-P PRINTER] printcmd CMD" - case $1 in - -P) - case $2 in - "") - echo "$progname: missing arg for parameter -P" >&2 - rc=1; (exit $rc); return $rc - ;; - *) - otherPrinter=true - otherPrinterName=$2 - otherPrinterFile=`kpsewhich -format='dvips config' "config.$otherPrinterName"` - case $otherPrinterFile in - "") - echo "$progname: configuration file \`config.$otherPrinterName' for printer \`$otherPrinterName' not found" >&2 - rc=1; (exit $rc); return $rc - ;; - *) shift; shift;; - esac - ;; - esac - ;; - *) - otherPrinter=false - ;; - esac - case $otherPrinter in - true) - tcBatchDvipsPrinter=$otherPrinterName - moreFmgrArgs="--reldir dvips/config --infile $otherPrinterFile" - ;; - *) - tcBatchDvipsPrinter=ps - ;; - esac - case $1 in - add) - case $2 in - "") - echo "Usage: $progname dvips add PRINTER" >&2 - rc=1 - ;; - *) - printerName=$2 - pFile=`kpsewhich -format='dvips config' "config.$printerName"` - case $pFile in - "") - setupTmpDir - tcfRet=`tcfmgr --emptyinfile --reldir dvips/config --cmd co --tmp $tmpdir --file "config.$printerName"` - if test $? != 0; then - echo "$progname: failed to add new configuration file \`config.$printerName'" >&2 - rc=1 - else - set x $tcfRet; shift - tcBatchDvipsAddID=$1; tcBatchDvipsAddFile=$3 - echo "% file config.$printerName; added by texconfig" > "$tcBatchDvipsAddFile" - tcfRet=`tcfmgr --tmp $tmpdir --id "$tcBatchDvipsAddID" --cmd ci` - if test $? != 0; then - echo "$progname: failed to add new configuration file \`config.$printerName'" >&2 - rc=1 - else - echo "$progname: file $tcfRet added" >&2 - fi - fi - ;; - *) - echo "$progname: configuration file for printer \`$printerName' already exists (\`$pFile')" >&2 - rc=1 - ;; - esac - ;; - esac - ;; - del) - case $2 in - "") - echo "Usage: $progname dvips del PRINTER" >&2 - rc=1 - ;; - *) - printerName=$2 - pFile=`kpsewhich -format='dvips config' "config.$printerName"` - case $pFile in - "") - echo "$progname: configuration file for printer \`$printerName' (config.$printerName) not found" >&2 - rc=1 - ;; - *) - if rm "$pFile"; then - echo "$progname: file \`$pFile' removed" >&2 - else - echo "$progname: failed to remove file \`$pFile'" >&2 - rc=1 - fi - ;; - esac - ;; - esac - ;; - paper-list) - locateConfigPsFile - listDvipsPapers - ;; - paper) - case $2 in - "") - echo "Usage: $progname dvips paper PAPER" >&2 - echo >&2; echo "Valid PAPER settings:" >&2 - locateConfigPsFile - listDvipsPapers | sed 's@ .*@@; s@^@ @' | myFmt - rc=1 - ;; - *) - tcBatchDvipsPaper=$2 - locateConfigPsFile - case "$configPsFile" in - "") - echo "$progname: file config.ps not found" >&2; rc=1 - ;; - *) - if grep "@ $tcBatchDvipsPaper " $configPsFile >/dev/null 2>&1; then - tlmgr dvips paper $tcBatchDvipsPaper - # setupDvipsPaper "$tcBatchDvipsPaper" - else - echo "$progname: paper \`$tcBatchDvipsPaper' not found in file \`$configPsFile'" >&2; rc=1 - fi - ;; - esac - ;; - esac - ;; - mode) - case $2 in - "") - echo "Usage: $progname dvips mode MODE - -Valid MODE settings:" - setupModesMfFile - listMfModes | sed 's@ .*@@; s@^@ @' | myFmt - rc=1 - ;; - *) - tcBatchDvipsMode=$2 - setupTmpDir - setupModesMfFile - if checkElemInList "$tcBatchDvipsMode" `listMfModes | sed 's@ .*@@'`; then - set x `getRes "$tcBatchDvipsMode"`; shift - resX=$1; resY=$2 - fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^M' "M $tcBatchDvipsMode" - fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^D' "D $resX" - fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^X' "X $resX" - fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^Y' "Y $resY" - else - echo "$progname: unknown MODE \`$tcBatchDvipsMode' given as argument for \`$progname dvips mode'" >&2 - echo "$progname: try \`$progname dvips mode' for help" >&2 - rc=1 - fi - ;; - esac - ;; - offset) - offset=$2 - case $offset in - "") - echo "Usage: $progname dvips offset OFFSET" - rc=1 - ;; - *) - fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^O' "O $offset" - esac - ;; - printcmd) - printcmd=$2 - case $printcmd in - "") - echo "Usage: $progname dvips printcmd CMD" - rc=1 - ;; - -) - fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^o' o - ;; - *) - fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^o' "o |$printcmd" - ;; - esac - ;; - "") - echo "$help" >&2; rc=1 - ;; - *) - echo "$progname: unknown option \`$1' given as argument for \`$progname dvips'" >&2 - echo "$progname: try \`$progname dvips' for help" >&2 - rc=1 - ;; - esac - ;; - - faq) - echo "Please see https://tug.org/texlive/doc/ for the documentation" - echo "available in TeX Live." - ;; - # setupTexmfmain - # if test -f $MT_TEXMFMAIN/doc/tetex/teTeX-FAQ; then - # <$MT_TEXMFMAIN/doc/tetex/teTeX-FAQ eval ${PAGER-more} - # else - # echo "$progname: faq not found (usually in \$TEXMFMAIN/doc/tetex/teTeX-FAQ)" >&2 - # rc=1 - # fi - # ;; - - findprog) - shift - ELB_PATH_ONLY=1 echoLocateBinary "$@" - ;; - - # handle "texconfig font" - font) - setupTexmfroot - help="Usage: $progname font vardir DIR - $progname font ro - $progname font rw - -The vardir option changes the VARTEXFONTS variable in the texmf.cnf file. - -The rw option makes the VARTEXFONTS directory (and subtrees pk, tfm, -source) world writable and sets the features appendonlydir:varfonts -in mktex.cnf. - -The ro option makes the VARTEXFONTS directory (and subtrees pk, tfm, -source) writable for the owner only and sets the feature texmfvar in -mktex.cnf. - -For more information about these \`features', consult the teTeX manual -(e.g. by running \`texdoc TETEXDOC')." - - case $2 in - vardir) - case $3 in - "") - echo "$help" >&2 - rc=1 - ;; - *) - tcBatchFontVardir=$3 - # tfc=`kpsewhich texmf.cnf` - tfc="$MT_TEXMFROOT/texmf.cnf" - touch "$tfc" - if test -n "$tfc"; then - if test -w "$tfc"; then - configReplace "$tfc" '^VARTEXFONTS' "VARTEXFONTS = $tcBatchFontVardir" - else - echo "$progname: setting up vardir failed. Reason: no permission to write file \`$tfc'" >&2 - rc=1 - fi - else - echo "$progname: setting up vardir failed. Reason: failed to find file texmf.cnf" >&2 - rc=1 - fi - ;; - esac - ;; - rw) - MT_VARTEXFONTS=`kpsewhich -var-value VARTEXFONTS` - if test -z "$MT_VARTEXFONTS"; then - echo "$progname: failed to set \`font rw'; reason: could not determine VARTEXFONTS variable." >&2; rc=1 - return - fi - test -d "$MT_VARTEXFONTS" || mktexdir "$MT_VARTEXFONTS" - if test ! -d "$MT_VARTEXFONTS"; then - echo "$progname: failed to set \`font rw'; reason: directory \`$MT_VARTEXFONTS' does not exist." >&2; rc=1 - return - fi - chmod 1777 "$MT_VARTEXFONTS" || { - echo "$progname: failed to modify permissions in \`$MT_VARTEXFONTS'." >&2; rc=1 - return; - } - ( - cd "$MT_VARTEXFONTS" || exit - echo "$progname: modifying permissions in \`$MT_VARTEXFONTS' ..." >&2 - for d in pk tfm source; do - test -d "$d" && find $d -type d -exec chmod 1777 '{}' \; - done - echo "$progname: all permissions set." >&2 - ) - setupTmpDir - fmgrConfigReplace mktex.cnf '^: ..MT_FEATURES=' ": \${MT_FEATURES=appendonlydir:varfonts}" - ;; - ro) - MT_VARTEXFONTS=`kpsewhich -var-value VARTEXFONTS` - if test -z "$MT_VARTEXFONTS"; then - echo "$progname: failed to set \`font ro'; reason: could not determine VARTEXFONTS variable." >&2; rc=1 - return - fi - test -d "$MT_VARTEXFONTS" || mktexdir "$MT_VARTEXFONTS" - if test ! -d "$MT_VARTEXFONTS"; then - echo "$progname: failed to set \`font ro'; reason: directory \`$MT_VARTEXFONTS' does not exist." >&2; rc=1 - return - fi - chmod 755 "$MT_VARTEXFONTS" || { - echo "$progname: failed to modify permissions in \`$MT_VARTEXFONTS'." >&2; rc=1 - return; - } - ( - cd "$MT_VARTEXFONTS" || exit - echo "$progname: modifying permissions in \`$MT_VARTEXFONTS' ..." >&2 - for d in pk tfm source; do - test -d "$d" && find "$d" -type d -exec chmod 755 '{}' \; - done - echo "$progname: all permissions set." >&2 - ) - setupTmpDir - fmgrConfigReplace mktex.cnf '^: ..MT_FEATURES=' ": \${MT_FEATURES=texmfvar}" - ;; - "") echo "$help" >&2; rc=1;; - *) echo "$progname: unknown option \`$2' given as argument for \`$progname font'" >&2 - echo "$progname: try \`$progname font' for help" >&2 - rc=1 - ;; - esac - ;; - - formats) - cat >&2 <&2 - fmtutil --catcfg > $tmpdir/pre - fmtutil --edit - echo "$progname: analyzing new configuration..." >&2 - fmtutil --catcfg > $tmpdir/post - - if cmp $tmpdir/pre $tmpdir/post >/dev/null 2>&1; then - echo "$progname: no new/updated formats available ..." >&2 - else - echo "$progname: updating formats ..." >&2 - comm -13 $tmpdir/pre $tmpdir/post > $tmpdir/addOrChange - for i in `awk '{print $1}' $tmpdir/addOrChange`; do - fmtutil --byfmt "$i" || rc=1 - done - texlinks --multiplatform || rc=1 - fi - ;; - - help|--help|-h) - echo "$help" - ;; - - # "hyphen FORMAT" - hyphen) - cat >&2 <&2; rc=1 - ;; - *) - if checkElemInList "$tcBatchHyphenFormat" $formatsForHyphen; then - - tcBatchHyphenFile=`fmtutil --showhyphen "$tcBatchHyphenFormat"` - case $tcBatchHyphenFile in - "") - echo "$progname: could not find hyphen setup file for format \`$tcBatchHyphenFormat'" >&2 - rc=1 - return - ;; - esac - - getRelDir "$tcBatchHyphenFile" - case $relPart in - "") - # edit tcBatchHyphenFile directly - tcBatchHFID= - setupTmpDir - tcBatchHFEdit=$tcBatchHyphenFile - tcBatchHFOrig=$tmpdir/hforig - cp "$tcBatchHyphenFile" "$tcBatchHFOrig" - ;; - *) - # use tcfmgr - tcBatchHyphenFileBasename=`echo "$tcBatchHyphenFile" | sed 's@.*/@@'` - setupTmpDir - co=`tcfmgr --tmp $tmpdir --cmd co --file "$tcBatchHyphenFileBasename" --reldir "$relPart" --infile "$tcBatchHyphenFile"` - if test $? != 0; then - echo "$progname: failed to check out file \`$tcBatchHyphenFile'" >&2 - rc=1 - return 1 - else - set x $co; shift - tcBatchHFID=$1; tcBatchHFEdit=$3; tcBatchHFOrig=$4 - fi - ;; - esac - ${VISUAL-${EDITOR-vi}} "$tcBatchHFEdit" - if cmp "$tcBatchHFEdit" "$tcBatchHFOrig" >/dev/null 2>&1; then - echo "$progname: configuration unchanged." >&2 - else - case $tcBatchHFID in - "") - tcBatchHFOut=$tcBatchHFEdit - echo "$progname: updated configuration saved as file \`$tcBatchHFOut'" >&2 - lastUpdatedFile=$ci - ;; - *) - ci=`tcfmgr --tmp $tmpdir --cmd ci --id "$tcBatchHFID"` - if test $? != 0; then - echo "$progname: failed to check in file \`$tcBatchHyphenFileBasename'" >&2 - rc=1 - return - else - tcBatchHFOut=$ci - echo "$progname: updated configuration saved as file \`$tcBatchHFOut'" >&2 - lastUpdatedFile=$ci - fi - ;; - esac - fmtutil --byhyphen "$tcBatchHFOut" - fi - else - echo "$progname: invalid format \`$tcBatchHyphenFormat' specified as argument for \`$progname hyphen'" >&2 - echo "$progname: for getting help, try \`$progname hyphen'" >&2 - rc=1 - fi - ;; - esac - ;; - - hyphen-list) - getFormatsForHyphen - ;; - - init) - case $2 in - "") - if fmtutil --all \ - && texlinks --multiplatform \ - && updmap; then - : - else - rc=1 - fi - ;; - *) - shift 1 - for i in "$@"; do - fmtutil --byfmt "$i" || rc=1 - done - ;; - esac - ;; - - mode-list) - setupModesMfFile - listMfModes - ;; - - mode) - case $2 in - "") - echo "Usage: $progname mode MODE - -Valid MODE settings:" - setupModesMfFile - listMfModes | sed 's@ .*@@; s@^@ @' | myFmt - rc=1 - ;; - *) - tcBatchMode=$2 - setupModesMfFile - if checkElemInList $tcBatchMode `listMfModes | sed 's@ .*@@'`; then - - # modify mktex.cnf - setupTmpDir - fmgrConfigReplace mktex.cnf '^: ..MODE=' ": \${MODE=$tcBatchMode}" - set x `getRes "$tcBatchMode"`; shift - tcBatchRes=$1 - fmgrConfigReplace mktex.cnf '^: ..BDPI=' ": \${BDPI=$tcBatchRes}" - - if checkForBinary dvips >/dev/null && tcfmgr --cmd find --file config.ps >/dev/null 2>&1; then - tcBatch dvips mode "$tcBatchMode" - fi - if checkForBinary pdftex >/dev/null && tcfmgr --cmd find --file pdftexconfig.tex >/dev/null 2>&1; then - tcBatch pdftex mode "$tcBatchMode" - fi - else - echo "$progname: unknown mode \`$tcBatchMode' specified as argument for \`$progname mode'" >&2; rc=1 - fi - ;; - esac - ;; - - paper) - help="Usage: $progname paper PAPER - -Valid PAPER settings: - letter a4" - - p=$2; pDvips=$2 - case $2 in - letter|a4) ;; - "") echo "$help" >&2; rc=1; return;; - *) - echo "$progname: unknown PAPER \`$2' given as argument for \`$progname paper'" >&2 - echo "$progname: try \`$progname paper' for help" >&2 - rc=1 - return;; - esac - if checkForBinary dvips >/dev/null && tcfmgr --cmd find --file config.ps >/dev/null 2>&1; then - tcBatch dvips paper $pDvips - fi - if checkForBinary dvipdfmx >/dev/null && tcfmgr --cmd find --file dvipdfmx.cfg >/dev/null 2>&1; then - tcBatch dvipdfmx paper $p - fi - if checkForBinary xdvi >/dev/null && tcfmgr --cmd find --file XDvi >/dev/null 2>&1; then - tcBatch xdvi paper $p - fi - if checkForBinary pdftex >/dev/null && tcfmgr --cmd find --file pdftexconfig.tex >/dev/null 2>&1; then - tcBatch pdftex paper $p - fi - ;; - - pdftex) - help="Usage: $progname pdftex paper PAPER - -Valid PAPER settings: - a4 letter" - case $2 in - - mode) - case $3 in - "") - echo "Usage: $progname pdftex mode MODE" - rc=1 - ;; - *) - tcBatchPdftexMode=$3 - setupTmpDir - setupModesMfFile - if checkElemInList "$tcBatchPdftexMode" `listMfModes | sed 's@ .*@@'`; then - set x `getRes "$tcBatchPdftexMode"`; shift - fmgrConfigReplace pdftexconfig.tex 'pdfpkresolution' "\\pdfpkresolution=$1" - if $fmgrConfigReplaceChanged; then - fmtutil --refresh - fi - else - echo "$progname: unknown MODE \`$tcBatchPdftexMode' given as argument for \`$progname pdftex mode'" >&2 - rc=1 - fi - ;; - esac - ;; - - paper) - case $3 in - letter|a4) - tlmgr pdftex paper $3 - ;; - #letter) - # w="8.5 true in"; h="11 true in" - # setupTmpDir - # fmgrConfigReplace pdftexconfig.tex pdfpagewidth '\pdfpagewidth='"$w" - # wChanged=$fmgrConfigReplaceChanged - # fmgrConfigReplace pdftexconfig.tex pdfpageheight '\pdfpageheight='"$h" - # if $wChanged || $fmgrConfigReplaceChanged; then - # fmtutil --refresh - # fi - # ;; - #a4) - # w="210 true mm"; h="297 true mm" - # fmgrConfigReplace pdftexconfig.tex pdfpagewidth '\pdfpagewidth='"$w" - # wChanged=$fmgrConfigReplaceChanged - # fmgrConfigReplace pdftexconfig.tex pdfpageheight '\pdfpageheight='"$h" - # if $wChanged || $fmgrConfigReplaceChanged; then - # fmtutil --refresh - # fi - # ;; - "") echo "$help" >&2; rc=1;; - *) - echo "$progname: unknown PAPER \`$3' given as argument for \`$progname pdftex paper'" >&2 - echo "$progname: try \`$progname pdftex paper' for help" >&2 - rc=1 ;; - esac ;; - "") - echo "$help" >&2; rc=1;; - *) - echo "$progname: unknown option \`$2' given as argument for \`$progname pdftex'" >&2 - echo "$progname: try \`$progname pdftex' for help" >&2 - rc=1 - ;; - esac - ;; - - rehash) - mktexlsr - ;; - - # - version|--version) - echo "$progname version $version" - setupTexmfmain - setupTexmfdist - showDistVersionInfo - (exit 0); exit 0;; - - # handle "xdvi paper PAPER" - xdvi) - tcBatchXdviPapers='us "8.5x11" -letter "8.5x11" -ledger "17x11" -tabloid "11x17" -usr "11x8.5" -legal "8.5x14" -legalr "14x8.5" -foolscap "13.5x17.0" -foolscapr "17.0x13.5" -a0 "84.1x118.9cm" -a1 "59.4x84.1cm" -a2 "42.0x59.4cm" -a3 "29.7x42.0cm" -a4 "21.0x29.7cm" -a5 "14.8x21.0cm" -a6 "10.5x14.8cm" -a7 "7.4x10.5cm" -a8 "5.2x7.4cm" -a9 "3.7x5.2cm" -a10 "2.6x3.7cm" -a0r "118.9x84.1cm" -a1r "84.1x59.4cm" -a2r "59.4x42.0cm" -a3r "42.0x29.7cm" -a4r "29.7x21.0cm" -a5r "21.0x14.8cm" -a6r "14.8x10.5cm" -a7r "10.5x7.4cm" -a8r "7.4x5.2cm" -a9r "5.2x3.7cm" -a10r "3.7x2.6cm" -b0 "100.0x141.4cm" -b1 "70.7x100.0cm" -b2 "50.0x70.7cm" -b3 "35.3x50.0cm" -b4 "25.0x35.3cm" -b5 "17.6x25.0cm" -b6 "12.5x17.6cm" -b7 "8.8x12.5cm" -b8 "6.2x8.8cm" -b9 "4.4x6.2cm" -b10 "3.1x4.4cm" -b0r "141.4x100.0cm" -b1r "100.0x70.7cm" -b2r "70.7x50.0cm" -b3r "50.0x35.3cm" -b4r "35.3x25.0cm" -b5r "25.0x17.6cm" -b6r "17.6x12.5cm" -b7r "12.5x8.8cm" -b8r "8.8x6.2cm" -b9r "6.2x4.4cm" -b10r "4.4x3.1cm" -c0 "91.7x129.7cm" -c1 "64.8x91.7cm" -c2 "45.8x64.8cm" -c3 "32.4x45.8cm" -c4 "22.9x32.4cm" -c5 "16.2x22.9cm" -c6 "11.4x16.2cm" -c7 "8.1x11.4cm" -c8 "5.7x8.1cm" -c9 "4.0x5.7cm" -c10 "2.8x4.0cm" -c0r "129.7x91.7cm" -c1r "91.7x64.8cm" -c2r "64.8x45.8cm" -c3r "45.8x32.4cm" -c4r "32.4x22.9cm" -c5r "22.9x16.2cm" -c6r "16.2x11.4cm" -c7r "11.4x8.1cm" -c8r "8.1x5.7cm" -c9r "5.7x4.0cm" -c10r "4.0x2.8cm"' - help="Usage: $progname xdvi paper PAPER - -Valid PAPER settings: - a0 a0r a1 a1r a2 a2r a3 a3r a4 a4r a5 a5r a6 a6r a7 a7r a8 a8r a9 a9r a10 a10r - b0 b0r b1 b1r b2 b2r b3 b3r b4 b4r b5 b5r b6 b6r b7 b7r b8 b8r b9 b9r b10 b10r - c0 c0r c1 c1r c2 c2r c3 c3r c4 c4r c5 c5r c6 c6r c7 c7r c8 c8r c9 c9r c10 c10r - us letter ledger tabloid usr legal legalr foolscap foolscapr" - case $2 in - paper-list) - echo "$tcBatchXdviPapers" - ;; - paper) - case $3 in - [abc][0-9]|[abc]10|[abc][0-9]r|[abc]10r|us|letter|ledger|tabloid|usr|legal|legalr|foolscap|foolscapr) - tlmgr xdvi paper $3 - # fmgrConfigReplace XDvi paper: "*paper: $3" - ;; - "") echo "$help" >&2; rc=1;; - *) - echo "$progname: unknown PAPER \`$3' given as argument for \`$progname xdvi paper'" >&2 - echo "$progname: try \`$progname xdvi paper' for help" >&2 - rc=1 ;; - esac ;; - "") - echo "$help" >&2; rc=1;; - *) - echo "$progname: unknown option \`$2' given as argument for \`$progname xdvi'" >&2 - echo "$progname: try \`$progname xdvi' for help" >&2 - rc=1 - ;; - esac - ;; - *) - echo "$progname: unknown option \`$1' given as argument for \`$progname'" >&2 - echo "$progname: try \`$progname help' for help" >&2 - rc=1 - esac -} - -############################################################################### -# tcInteractive(void) -# handle interactive mode -############################################################################### -tcInteractive() -{ - texconfig-dialog -} - -############################################################################### -# main() -############################################################################### -rc=0 -case $# in - 0) tcInteractive;; - *) tcBatch "$@";; -esac - -cleanup $rc -- cgit v1.2.3