diff options
Diffstat (limited to 'Master')
33 files changed, 4506 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/latex-tds/build.pl b/Master/texmf-dist/source/latex/latex-tds/build.pl new file mode 100755 index 00000000000..58a0ba98975 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/build.pl @@ -0,0 +1,1293 @@ +#!/usr/bin/env perl +use strict; +$^W=1; + +my $prj = 'latex-tds'; +my $file = 'build.pl'; +my $version = cvs('$Revision: 1.102 $'); +my $date = cvs('$Date: 2006/08/28 09:42:43 $'); +my $author = 'Heiko Oberdiek'; +my $copyright = "Copyright 2006 $author"; +chomp(my $license = <<"END_LICENSE"); +% $copyright +% +% This file is part of project `$prj'. +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Heiko Oberdiek. +% +% See `readme.txt' for a list of all files belonging to the +% project `$prj' and additional information. +% +END_LICENSE + +my $time_start = time; + +my $url_ctan = 'ftp://dante.ctan.org/tex-archive'; +my $url_ams = 'ftp://ftp.ams.org/pub/tex'; + +my @required_list = ( + 'amslatex', + 'babel', + 'psnfss', + 'cyrillic', + 'graphics', + 'tools' +); +my @pkg_list = ('base', @required_list, $prj, 'source', 'tds'); + +my $zip_comment = <<'END_ZIP_COMMENT'; +************************************************** +* This file is part of project 'latex-tds', see * +* CTAN:macros/latex/contrib/latex-tds/readme.txt * +************************************************** +END_ZIP_COMMENT + +my $error = "!!! Error:"; + +my $dir_incoming = 'incoming'; +my $dir_incoming_ctan = "$dir_incoming/ctan"; +my $dir_incoming_ams = "$dir_incoming/ams"; +my $dir_build = 'build'; +my $dir_lib = 'lib'; +my $dir_license = 'license'; +my $dir_tex = 'tex'; +my $dir_patch = 'patch'; +my $dir_distrib = 'distrib'; +chomp(my $cwd = `pwd`); + +my $jar_pdfbox_rewrite = "$cwd/$dir_lib/pdfbox-rewrite.jar"; +my $jar_multivalent = "$cwd/$dir_lib/Multivalent20060102.jar"; + +my $file_zip_comment = "$cwd/$dir_build/zip-comment.txt"; +my $file_tmp = "$cwd/$dir_build/tmp.pdf"; +my $file_tmp_o = "$cwd/$dir_build/tmp-o.pdf"; + +my $file_ziptimetree = get_perl_script('ziptimetree'); +my $file_adjust_checksum = get_perl_script('adjust_checksum'); + +my $prg_checksum = $file_adjust_checksum; +my $prg_bibtex = "bibtex"; +my $prg_chmod = "chmod"; +my $prg_cp = 'cp -p'; +my $prg_curl = 'curl'; +my $prg_docstrip = 'tex -shell-escape'; +my $prg_epstopdf = 'epstopdf'; +my $prg_find = 'find'; +my $prg_java = 'java'; +my $prg_ls = "ls"; +my $prg_makeindex = 'makeindex'; +my $prg_mkdir = 'mkdir'; +my $prg_mv = 'mv'; +my $prg_patch = "patch"; +my $prg_pdflatex = 'pdflatex'; +my $prg_rm = "rm"; +my $prg_rsync = "rsync"; +my $prg_sed = "sed"; +my $prg_sort = "sort"; +my $prg_unzip = 'unzip'; +my $prg_wget = 'wget'; +my $prg_zip = 'zip'; +my $prg_ziptimetree = $file_ziptimetree; + +$ENV{'TEXINPUTS'} = "$cwd/tex:.:texmf/tex//:"; +$ENV{'BSTINPUTS'} = '.:texmf/bibtex//:'; # amslatex +$ENV{'TFMFONTS'} = 'texmf/fonts/tfm//:'; # psnfss +$ENV{'VFFONTS'} = 'texmf/fonts/vf//:'; # psnfss +$ENV{'INDEXSTYLE'} = '.:texmf/makeindex//:'; # babel + +sub install ($@); + +### Print title +{ + my $line = "Building $prj, $date $version, $copyright"; + print "$line\n", "=" x length($line), "\n"; +} + +### Option handling + +my $usage = <<"END_OF_USAGE"; +Usage: build.pl [options] +General options: + --(no)download (check for newer files, disabled by default) + --(no)postprocess (pdf files are postprocessed, enabled by default) +Module options: + --all (select all modules) +END_OF_USAGE +map { $usage .= " --(no)$_\n"; } @pkg_list; + +my $opt_download = 0; +my $opt_postprocess = 1; +my $opt_all = 0; +my %modules; +my @list_modules; + +use Getopt::Long; +GetOptions( + ( map { ("$_!" => \$modules{$_}); } @pkg_list ), + 'all' => + sub { + $opt_all = 1; + map { $modules{$_} = 1; } @pkg_list; + }, + 'download!' => \$opt_download, + 'postprocess!' => \$opt_postprocess +) or die $usage; +@ARGV == 0 or die $usage; +@list_modules = grep { $modules{$_}; } @pkg_list; + +info("Build modules: @list_modules"); + +### Download +{ + section('Download'); + + sub download_ctan ($$) { + my $file = shift; + my $ctan_path = shift; + ensure_directory($dir_incoming_ctan); + download("$dir_incoming_ctan/$file.zip", + "$url_ctan/$ctan_path/$file.zip"); + } + sub download_ams ($) { + my $file = shift; + ensure_directory($dir_incoming_ams); + download("$dir_incoming_ams/$file.zip", + "$url_ams/$file.zip"); + } + sub download ($$) { + my $file = shift; + my $url = shift; + return 1 if -f $file and !$opt_download; + info("download $url\n --> $file"); + my $cmd = $prg_curl; + $cmd .= " --disable-epsv"; # for ftp.ams.org + $cmd .= " --time-cond $file" if -f $file; # download only if newer + $cmd .= " --remote-time"; # set file date + $cmd .= " --output $file"; # target file + $cmd .= " $url"; # url + run($cmd); + -f $file or die "$error Download failed ($url)!\n"; + } + + download_ctan('base', 'macros/latex'); + download_ctan('tools', 'macros/latex/required'); + download_ctan('graphics', 'macros/latex/required'); + download_ctan('cyrillic', 'macros/latex/required'); + download_ctan('babel', 'macros/latex/required'); + download_ctan('amslatex', 'macros/latex/required'); + download_ctan('psnfss', 'macros/latex/required'); + download_ctan('tds', ''); + download_ams('amslatex'); + download_ams('amsrefs'); +} + +### Remove previous build +section('Remove previous build'); +{ + foreach my $pkg (@list_modules) { + run("$prg_rm -rf $dir_build/$pkg"); + my $distribfile = "$dir_distrib/$pkg.zip"; + unlink $distribfile if -f $distribfile; + } +} + +### Unpack +section('Unpacking'); +{ + sub unpacking ($$$) { + my $pkg = shift; + my $zipfile = shift; + my $dir = shift; + run("$prg_unzip $zipfile -d$dir"); + } + sub unpack_ctan ($) { + my $pkg = shift; + $modules{$pkg} or return 1; + unpacking($pkg, + "$dir_incoming_ctan/$pkg.zip", + $dir_build); + } + sub unpack_ams ($) { + my $name = shift; + $modules{'amslatex'} or return 1; + unpacking('amslatex', + "$dir_incoming_ams/$name.zip", + "$dir_build/amslatex/texmf"); + } + sub unpack_psnfss ($) { + my $name = shift; + my $dir = "$dir_build/psnfss"; + $modules{'psnfss'} or return 1; + unpacking('psnfss', + "$dir/$name.zip", + "$dir/texmf"); + } + + ensure_directory($dir_build); + unpack_ctan('base'); + map { unpack_ctan($_); } @required_list; + unpack_ams('amslatex'); + unpack_ams('amsrefs'); + unpack_psnfss('lw35nfss'); + unpack_psnfss('freenfss'); + unpack_ctan('tds'); +} + +### Patches +section('Patches'); +{ + ; # + + if ($modules{'base'}) { + patch("base/classes.dtx"); + } + + if ($modules{'psnfss'}) { + chdir "$dir_build/psnfss"; + run("$prg_checksum psfonts.dtx"); + chdir $cwd; + } + + if ($modules{'babel'}) { + map { patch("babel/$_"); } qw[ + greek.ins + bbcompat.dtx + athnum.dtx + albanian.dtx + finnish.dtx + frenchb.dtx + ]; + } +} + +### Install TDS/source +section('Install source'); +{ + sub install_gen_source ($$@) { + my $fmt = shift; + my $pkg = shift; + my @list = @_; + $modules{$pkg} or return 1; + chdir "$dir_build/$pkg"; + install "texmf/source/$fmt/$pkg", @list; + chdir $cwd; + } + sub install_source ($@) { + my $pkg = shift; + my @list = @_; + install_gen_source('latex', $pkg, @list); + } + + install_source 'base', qw[ + *.dtx + *.fdd + *.ins + *guide.tex + ltnews*.tex + source2e.tex + ltx3info.tex + latexbug.el + ]; + install_source 'tools', qw[ + *.dtx + *.ins + ]; + install_source('graphics', + '*.dtx', + '*.ins', + '*.tex' + ); + install_source('cyrillic', + '*.dtx', + '*.fdd', + '*.ins', + ); + install_source('psnfss', + 'psnfss2e.tex', + '*.dtx', + '*.ins' + ); + install_gen_source('generic', 'babel', qw[ + *.ins + *.dtx + *.fdd + *.dat + usage.tex + tb*.tex + ]); + # babel/manifest.txt: to be removed in a future release + # already removed: bghyphen.tex, bghyphsi.tex + install_gen_source('generic', 'babel', qw[ + mik2t2.tex + catmik.tex + lahyph.tex + ]); + # *.tex + install_gen_source('', 'tds', qw[ + Makefile + tds2texi.el + tdsguide.cls + tds.sed + tds.tex + ]); +} + +### Patch source files after source install +section('Paches after source install'); +{ + if ($modules{'base'}) { + chdir "$dir_build/base"; + + # ltdirchk.dtx must be patched to fool it in + # not having texsys.cfg + { + my $file_dtx = 'ltdirchk.dtx'; + my $file_org = 'ltdirchk.dtx.org'; + rename $file_dtx, $file_org; + open(IN, '<', $file_org) or die "$error Cannot open `$file_org'!\n"; + open(OUT, '>', $file_dtx) or die "$error Cannot write `$file_dtx'!\n"; + while (<IN>) { + s/openin15=texsys.cfg/openin15=texsys.cfg-not-found/; + print OUT; + } + close(OUT); + close(IN); + } + + # base: TDS:makeindex/base -> TDS:makeindex/latex + { + my $file_ins = 'docstrip.ins'; + my $file_org = 'docstrip.ins.org'; + rename $file_ins, $file_org; + open(IN, '<', $file_org) or die "$error Cannot open `$file_org'!\n"; + open(OUT, '>', $file_ins) or die "$error Cannot write `$file_ins'!\n"; + while (<IN>) { + s|makeindex/base|makeindex/latex|; + print OUT; + } + close(OUT); + close(IN); + } + + chdir $cwd; + } +} + +### Docstrip +section('Docstrip'); +{ + sub docstrip ($$) { + my $pkg = shift; + my $ins = shift; + $modules{$pkg} or return 1; + chdir "$dir_build/$pkg"; + run("$prg_docstrip $ins.ins"); + chdir $cwd; + 1; + } + docstrip('base', 'unpack'); + docstrip('psnfss', 'psfonts'); + docstrip('cyrillic', 'cyrlatex'); + docstrip('graphics', 'graphics'); + docstrip('graphics', 'graphics-drivers'); + docstrip('tools', 'tools'); + docstrip('babel', 'babel'); +} + +section('TDS cleanup'); +{ + if ($modules{'amslatex'}) { + sub cleanup_tds ($@) { + my $dir_tds = "$dir_build/amslatex/texmf"; + my $sub_tree = shift; + + my @list = map { glob("$dir_tds/$sub_tree/$_"); } @_; + unlink grep { -f $_; } @list; + map { rmdir; } grep { -d $_; } @list; + } + + cleanup_tds 'bibtex', qw[ + bib/ams + bib + ]; + cleanup_tds 'source/latex/amscls', qw[ + *.bst + *.template + diffs-c.txt + ]; + cleanup_tds 'source/latex/amsmath', qw[ + diffs-m.txt + amstex.sty + ]; + cleanup_tds 'source/latex/amsrefs', qw[ + *.dvi + *.pdf + amsrefs.faq + cite-x*.tex + jr.bib + gktest.ltb + ]; + cleanup_tds 'doc/latex/amscls', qw[ + amsrefs.dvi + textcmds.dvi + ]; + # CTAN:macros/latex/required/amslatex/other/* + run("$prg_cp $dir_build/amslatex/other/amsbooka.sty" + . " $dir_build/amslatex/texmf/tex/latex/amscls/amsbooka.sty"); + } + + if ($modules{'babel'}) { + my $tds_dir = "$dir_build/babel/texmf"; + my $from_dir = "$tds_dir/tex/generic/babel"; + + ### Correction for *.drv files + run("$prg_mv $from_dir/*.drv $dir_build/babel"); + + ### Correction for *.ist files + my $dir_dest = "$tds_dir/makeindex/babel"; + ensure_directory($dir_dest); + run("$prg_mv $from_dir/*.ist $dir_dest"); + } +} + +### Install TDS/tex, TDS/doc files +section('Install tex doc'); +{ + if ($modules{'base'}) { + chdir "$dir_build/base"; + install 'texmf/doc/latex/base', qw[ + 00readme.txt + autoload.txt + bugs.txt + changes.txt + l*.txt + manifest.txt + patches.txt + t*.txt + ]; + install 'texmf/tex/latex/base', qw[ + *.cls + ltpatch.ltx + idx.tex + lablst.tex + latexbug.tex + lppl.tex + testpage.tex + ltxcheck.tex + sample2e.tex + small2e.tex + ]; + install 'texmf/tex/latex/base', qw[ + texsys.cfg + ]; + chdir $cwd; + } + + if ($modules{'tools'}) { + chdir "$dir_build/tools"; + install 'texmf/doc/latex/tools', qw[ + changes.txt + manifest.txt + readme.txt + ]; + chdir $cwd; + } + + if ($modules{'graphics'}) { + chdir "$dir_build/graphics"; + install('texmf/doc/latex/graphics', + '*.txt' + ); + install('texmf/tex/latex/graphics', + '*.def' + ); + chdir $cwd; + } + + if ($modules{'cyrillic'}) { + chdir "$dir_build/cyrillic"; + install('texmf/doc/latex/cyrillic', + '*.txt' + ); + chdir $cwd; + } + + if ($modules{'psnfss'}) { + chdir "$dir_build/psnfss"; + install('texmf/doc/latex/psnfss', + '*.txt' + ); + install('texmf/doc/latex/psnfss/test', + '*test*.tex' + ); + install('texmf/fonts/enc/dvips/psnfss', + '8r.enc' + ); + install('texmf/fonts/map/dvips/psnfss', + '*.map' + ); + chdir $cwd; + } + + if ($modules{'babel'}) { + chdir "$dir_build/babel"; + install('texmf/doc/generic/babel', qw[ + *.txt + *.heb + *.bbl + *.dat + *.skeleton + install.OzTeX* + ]); + install('texmf/tex/generic/hyphen', qw[ + iahyphen.tex + icehyph.tex + ]); + chdir $cwd; + } + + if ($modules{'tds'}) { + chdir "$dir_build/tds"; + install('texmf/doc/tds', qw[ + README + ChangeLog + tds.html + ]); + install('texmf/doc/info', qw[ + tds.info + ]); + chdir $cwd; + } + +my $dummy = <<'END_DUMMY'; + if ($modules{'babel'}) { + chdir "$dir_build/babel"; + install('texmf/tex/generic/bghyph', + 'bghyphen.txt', + 'bghyphsi.tex', + 'catmik.tex', + 'mik2t2.tex' + ); + install('texmf/tex/generic/hyphen', + 'icehyph.tex', + 'lahyph.tex' + ); + chdir $cwd; + } +END_DUMMY +} + +### Generate documentation for base +if ($modules{'base'}) { + section('Documenation: base'); + + sub base_guide ($) { + my $guide = "$_[0]guide"; + run("$prg_pdflatex $guide"); + run("$prg_pdflatex $guide"); + run("$prg_pdflatex $guide"); + install_pdf('base', $guide); + 1; + } + sub simple_gen ($$) { + my $ext = shift; + my $base = shift; + my $file = "$base.$ext"; + run("$prg_pdflatex $file"); + run("$prg_pdflatex $file"); + run("$prg_pdflatex $file"); + install_pdf('base', $base); + 1; + } + sub complex_dtx ($) { + my $base = shift; + my $dtx = "$base.dtx"; + run("$prg_pdflatex $dtx"); + run_makeindex("$base.idx", 'gind.ist'); + run_makeindex("$base.glo", 'gglo.ist', "$base.gls"); + run("$prg_pdflatex $dtx"); + run_makeindex("$base.idx", 'gind.ist'); + run_makeindex("$base.glo", 'gglo.ist', "$base.gls"); + run("$prg_pdflatex $dtx"); + run("$prg_pdflatex $dtx"); # hydestopt + install_pdf('base', "$base"); + 1; + } + sub book_err ($) { + my $base = shift; + my $err = "$base.err"; + run("$prg_pdflatex $err"); + run("$prg_sed -i -e '" + . 's/\\\\endinput/\\\\input{errata.cfg}\\n\\\\endinput/' + . "' $base.cfg"); + run("$prg_pdflatex $err"); + run("$prg_pdflatex $err"); + run("$prg_pdflatex $err"); # hydestopt + install_pdf('base', "$base"); + 1; + } + chdir "$dir_build/base"; + run("$prg_pdflatex source2e"); + run_makeindex('source2e.idx', 'gind.ist'); + run_makeindex('source2e.glo', 'gglo.ist', 'source2e.gls'); + run("$prg_pdflatex source2e"); + run_makeindex('source2e.idx', 'gind.ist'); + run_makeindex('source2e.glo', 'gglo.ist', 'source2e.gls'); + run("$prg_pdflatex source2e"); + run("$prg_pdflatex source2e"); # hydestopt + install_pdf('base', 'source2e'); + map { complex_dtx $_ } qw[ + classes + doc + docstrip + letter + ]; + map { simple_gen 'dtx', $_ } qw[ + alltt + exscale + fixltx2e + graphpap + ifthen + inputenc + latex209 + latexsym + ltxdoc + makeindx + newlfont + oldlfont + proc + slides + syntonly + utf8ienc + ]; + map { simple_gen 'fdd', $_ } qw[ + cmfonts + slifonts + ]; + map { book_err $_ } qw[ + tlc2 + lb2 + grphcomp + webcomp + webcompg + ]; + run("$prg_sed -i -e '" + . 's/\\\\documentclass{article}/' + . '\\\\documentclass{article}\\n\\\\input{manual.cfg}/' + . "' manual.err"); + run("$prg_pdflatex manual.err"); + run("$prg_pdflatex manual.err"); + run("$prg_pdflatex manual.err"); # hydestopt + install_pdf('base', 'manual'); + base_guide('cfg'); + base_guide('cls'); + base_guide('cyr'); + base_guide('enc'); + base_guide('fnt'); + base_guide('mod'); + base_guide('usr'); + run("$prg_pdflatex doc_lppl"); + run("$prg_pdflatex doc_lppl"); + run("$prg_pdflatex doc_lppl"); # hydestopt + run("$prg_mv doc_lppl.pdf lppl.pdf"); + install_pdf('base', 'lppl'); + run("$prg_pdflatex ltxcheck.drv"); + run("$prg_pdflatex ltxcheck.drv"); + install_pdf('base', 'ltxcheck'); + my $code = <<'END_CODE'; +\let\SavedDocumentclass\documentclass +\def\documentclass[#1]#2{ + \SavedDocumentclass[{#1}]{#2} + \usepackage[colorlinks,pdfusetitle]{hyperref} +} +\input{ltx3info} +END_CODE + $code =~ s/\s//g; + run("$prg_pdflatex '$code'"); + run("$prg_pdflatex '$code'"); + run("$prg_pdflatex '$code'"); # hydestopt + install_pdf('base', 'ltx3info'); +# for (my $i = 1; $i <= 17; $i++) { +# my $ltnews = 'ltnews'; +# $ltnews .= '0' if $i < 10; +# $ltnews .= $i; +# run("$prg_pdflatex $ltnews"); +# run("$prg_pdflatex $ltnews"); +# install_pdf('base', $ltnews); +# } + my $ltnews = 'ltnews'; + my $lastissue = 0; + map { $lastissue = $1 if /ltnews(\d+)\.tex/ and $lastissue < $1; } + glob('ltnews*.tex'); + my $cmd_ltnews = + "$prg_pdflatex '\\def\\lastissue{$lastissue}\\input{$ltnews}'"; + run($cmd_ltnews); + run($cmd_ltnews); + run($cmd_ltnews); + install_pdf('base', $ltnews); + chdir $cwd; +} + +### Generate documentation for tools +if ($modules{'tools'}) { + section('Documentation: tools'); + + chdir "$dir_build/tools"; + my @list = glob("*.dtx"); + map { s/\.dtx$//; } @list; + foreach my $entry (@list) { + run("$prg_pdflatex $entry.dtx"); + run_makeindex("$entry.idx", 'gind.ist'); + run_makeindex("$entry.glo", 'gglo.ist', "$entry.gls"); + run("$prg_pdflatex $entry.dtx"); + run_makeindex("$entry.idx", 'gind.ist'); + run_makeindex("$entry.glo", 'gglo.ist', "$entry.gls"); + run("$prg_pdflatex $entry.dtx"); + run("$prg_pdflatex $entry.dtx"); # hydestopt + install_pdf('tools', $entry); + } + + # Generate overview + my $infile = 'manifest.txt'; + my $texfile = "$cwd/$dir_tex/tools.tex"; + my @time = localtime(time); + my ($mday, $month, $year) = splice @time, 3, 3; + my $release_info = sprintf "%04d/%02d/%02d Tools overview (HO)", + $year + 1900, $month + 1, $mday; + open(OUT, ">$texfile") or die "$error Cannot open `$texfile'!\n"; + print OUT <<"END_HEADER"; +\\NeedsTeXFormat{LaTeX2e} +\\ProvidesFile{tools.tex}% + [$release_info] +$license +\\documentclass{tools-overview} +\\begin{document} +END_HEADER + my $entry; + my %db; + open(IN, $infile) or die "$error Cannot open `$infile'!\n"; + while (<IN>) { + next if /^%/; + next if /^\s*$/; + if (/^(\S+)\.dtx/) { + $entry = $1; + $db{$entry} = ''; + next; + } + s/\\(\w+)/\\cs{\1}/g; + s/(LaTeX|TeX)/\\\1\{\}/g; + s/`([^']+)'/\\emph{\1}/g; + s/Indent The/Indent the/; # typo + s/Requies/Requires/; # typo + $db{$entry} .= $_; + } + close(IN); + $db{'layout'} = <<'END_LAYOUT'; + Produces an overview of the layout of the current document. +END_LAYOUT + $db{'trace'} = <<'END_TRACE'; + The package helps to suppress and to control the amount of tracing + output (\cs{tracingall}) by taming calc and making NFSS less noisy. +END_TRACE + for my $entry (sort keys %db) { + my $text = $db{$entry}; + $text =~ s/^\s*/ /mg; + chomp $text; + print OUT <<"END_ENTRY"; +\\entry{$entry}{% +$text +}% +END_ENTRY + } + print OUT <<'END_TRAILER'; +\end{document} +END_TRAILER + close(OUT); + run("$prg_pdflatex tools.tex"); + install_pdf('tools', 'tools'); + chdir $cwd; +} + +### Generate documentation for cyrillic +if ($modules{'cyrillic'}) { + section('Documentation: cyrillic'); + + chdir "$dir_build/cyrillic"; + my @list = (glob("*.dtx"), glob("*.fdd")); + foreach my $entry (@list) { + run("$prg_pdflatex $entry"); + run("$prg_pdflatex $entry"); + run("$prg_pdflatex $entry"); # hydestopt + $entry =~ s/\.(dtx|fdd)$//; + install_pdf('cyrillic', $entry); + } + chdir $cwd; +} + +### Generate documentation for graphics +if ($modules{'graphics'}) { + section('Documentation: graphics'); + + chdir "$dir_build/graphics"; + my @list = glob("*.dtx"); + map { s/\.dtx$//; } @list; + foreach my $entry (@list) { + run("$prg_pdflatex $entry.dtx"); + run("$prg_pdflatex $entry.dtx"); + run("$prg_pdflatex $entry.dtx"); # hydestopt + install_pdf('graphics', $entry); + } + my $code = <<'END_CODE'; +\makeatletter +\let\documentclass\@@end +\input{grfguide} +END_CODE + $code =~ s/\s//g; + run("$prg_pdflatex '$code'"); + run("$prg_epstopdf a.ps"); + run("$prg_pdflatex grfguide"); + run("$prg_pdflatex grfguide"); + run("$prg_pdflatex grfguide"); + install_pdf('graphics', 'grfguide'); + chdir $cwd; +} + +### Generate documentation for amslatex +if ($modules{'amslatex'}) { + section('Documentation: amslatex'); + + sub makeindex ($) { + my $doc = shift; + my $style; + $style = 'gind.ist' unless $doc eq 'amsldoc'; + run_makeindex("$doc.idx", $style); + } + + sub bibtex ($) { + my $doc = shift; + + if ($doc =~ /^cite-x[bh]$/) { + run("$prg_bibtex $doc"); + } + } + + sub generate_doc ($$) { + my $amspkg = shift; + my $doc = shift; + my $ams_drv = "$cwd/$dir_tex/ams.drv"; + + symlink $ams_drv, "$doc.drv"; + run("$prg_pdflatex $doc.drv"); + makeindex($doc); + bibtex($doc); + run("$prg_pdflatex $doc.drv"); + makeindex($doc); + run("$prg_pdflatex $doc.drv"); + makeindex($doc); + run("$prg_pdflatex $doc.drv"); + run("$prg_pdflatex $doc.drv") if $doc eq 'amsrefs'; + install_pdf($amspkg, $doc); + } + + chdir "$dir_build/amslatex/math"; + symlink '../texmf', 'texmf'; + map { generate_doc 'amsmath', $_; } qw[ + amsldoc subeqn technote testmath + amsbsy amscd amsgen amsmath amsopn amstext amsxtra + ]; + chdir $cwd; + + chdir "$dir_build/amslatex/classes"; + symlink '../texmf', 'texmf'; + map { generate_doc 'amscls', $_; } qw[ + amsthdoc instr-l thmtest + amsclass amsdtx amsmidx upref + ]; + chdir $cwd; + + chdir "$dir_build/amslatex/amsrefs"; + symlink '../texmf', 'texmf'; + map { generate_doc 'amscls', $_; } qw[ + cite-xa cite-xb cite-xh cite-xs + amsrefs amsxport ifoption mathscinet pcatcode rkeyval textcmds + ]; + chdir $cwd; +} + +### Generate documentation for psnfss +if ($modules{'psnfss'}) { + section('Documentation: psnfss'); + + chdir "$dir_build/psnfss"; + + run("$prg_pdflatex psfonts.dtx"); + run("$prg_pdflatex psfonts.dtx"); + install_pdf('psnfss', 'psfonts'); + + run("$prg_pdflatex psnfss2e.drv"); + run("$prg_pdflatex psnfss2e.drv"); + run("$prg_pdflatex psnfss2e.drv"); + install_pdf('psnfss', 'psnfss2e'); + + chdir $cwd; +} + +### Generate documentation for babel +if ($modules{'babel'}) { + section('Documentation: babel'); + + sub install_babel_pdf ($) { + install_gen_pdf('generic', 'babel', shift); + } + sub simple_doc ($) { + my $file = shift; + + run("$prg_pdflatex $file"); + run("$prg_pdflatex $file"); + $file =~ s/\.\w{3}$//; + install_babel_pdf($file); + } + sub generate_babel_doc ($) { + my $doc = shift; + my $drv = "$cwd/$dir_tex/ams.drv"; + + symlink $drv, "$doc.drv"; + run("$prg_pdflatex $doc.drv"); + run("$prg_pdflatex $doc.drv"); + run("$prg_pdflatex $doc.drv"); + run("$prg_pdflatex $doc.drv"); + install_babel_pdf($doc); + } + + chdir "$dir_build/babel"; + + my $greek_fdd = 'greek-fdd.drv'; + open(OUT, ">$greek_fdd") or die "$error Cannot open `$greek_fdd'!\n"; + print OUT "\\input{greek.fdd}\n"; + close(OUT); + + map { simple_doc($_); } + $greek_fdd, qw[ + athnum.dtx + grmath.dtx + grsymb.dtx + bbidxglo.dtx + bbcompat.dtx + greek-usage.tex + ]; + + map { generate_babel_doc($_); } qw[ + tb1202 + tb1401 + tb1604 + ]; + + run("$prg_pdflatex babel.tex"); + run_makeindex('babel.idx', 'bbind.ist'); + run_makeindex('babel.glo', 'bbglo.ist', 'babel.gls'); + run("$prg_pdflatex babel.tex"); + run_makeindex('babel.idx', 'bbind.ist'); + run_makeindex('babel.glo', 'bbglo.ist', 'babel.gls'); + run("$prg_pdflatex babel.tex"); + run("$prg_pdflatex babel.tex"); + install_babel_pdf('babel'); + + chdir $cwd; +} + +### Generate documentation for tds +if ($modules{'tds'}) { + section('Documentation: tds'); + + chdir "$dir_build/tds"; + + my $file_tds = 'tds.tex'; + my $file_tds_new = 'tds.new'; + + # make nicer references and use CVS date instead of current date + open(IN, $file_tds) or die "$error Cannot open `$file_tds'!\n"; + open(OUT, '>', $file_tds_new) or die "$error Cannot write `$file_tds_new'!\n"; + while (<IN>) { + s/Appendix~\\ref/\\appref/g; + s/Section~\\ref/\\secref/g; + if (/^% \$Id:.* (\d\d\d\d)\/(\d\d)\/(\d\d) /) { + print OUT <<"END_TEXT"; +\\year=$1\\relax +\\month=$2\\relax +\\day=$3\\relax +END_TEXT + } + print OUT; + } + close(OUT); + close(IN); + + unlink('tds.aux'); + run("$prg_pdflatex $file_tds_new"); + run("$prg_pdflatex $file_tds_new"); + run("$prg_pdflatex $file_tds_new"); + install_gen_pdf('', 'tds', 'tds'); + + chdir $cwd; +} + +### Module source +if ($modules{'source'}) { + section('Module source'); + + my $dir_dest = "$dir_build/source/texmf/source/latex/latex-tds"; + my $dir_scripts = "$dir_build/source/texmf/scripts"; + + install $dir_dest, qw[ + build.pl + readme.txt + ]; + install "$dir_dest/tex", glob("$dir_tex/*.*"); + install "$dir_dest/patch", glob("$dir_patch/*.*"); + install "$dir_dest/lib", $file_ziptimetree; + install "$dir_dest/lib", $file_adjust_checksum; + install "$dir_dest/license", "$dir_license/lppl.txt"; + install "$dir_dest/license/ziptimetree", "$dir_license/ziptimetree/lgpl.txt"; + install $dir_distrib, 'readme.txt'; +} + +### Module latex-tds +if ($modules{$prj}) { + section('Module latex-tds'); + + my $dir = "$dir_build/$prj"; + ensure_directory($dir); + my $cmd_rsync = "$prg_rsync " . join ' ', qw[ + --recursive + --times + --perms + --owner + --group + --hard-links + ]; + for (@pkg_list) { + next if $_ eq $prj; + my $reftree = "$dir_build/$_"; + next unless -d "$reftree/texmf"; + run("$cmd_rsync --link-dest=$cwd/$reftree $reftree/texmf $dir"); + } +} + +### Pack result +section('Distrib'); +{ + ensure_directory($dir_distrib); + + # write zip comment file + open(OUT, '>', $file_zip_comment) + or die "$error Cannot write file `$file_zip_comment'!\n"; + print OUT $zip_comment; + close OUT; + + for my $pkg (@list_modules) { + my $dir_tds = "$dir_build/$pkg/texmf"; + my $file_distrib = "$cwd/$dir_distrib/$pkg.zip"; + if (-d $dir_tds) { + run_zip($file_distrib, $dir_tds); + } + else { + print "!!! Warning: Missing TDS tree for `$pkg'!\n"; + } + } +} + +### Display result +section('Result'); +{ + for my $pkg (@list_modules) { + my $file = "$dir_distrib/$pkg.zip"; + if (-f $file) { + system("$prg_ls -l $file"); + system("$prg_ls -l $dir_distrib/readme.txt")if $pkg eq 'source'; + } + else { + print "!!! Warning: Missing distribution for `$pkg'!\n"; + } + } + + # display time + my $time_diff = time - $time_start; + my $time_str = sprintf "%d:%02d:%02d\n", + $time_diff / 3600, + ($time_diff % 3600) / 60, + ($time_diff % 3600) % 60; + $time_str =~ s/^0:0?//; + print "* Elapsed time: $time_str\n"; +} + +sub install ($@) { + my $dir_target = shift; + my @list = @_; + + ensure_directory($dir_target); + run("$prg_cp @list $dir_target/"); + 1; +} + +sub install_gen_pdf ($$$) { + my $fmt = shift; + my $pkg = shift; + my $file_base = shift; + my $file_source = "$file_base.pdf"; + my $dir_dest = "texmf/doc/$fmt/$pkg"; + my $file_dest = "$dir_dest/$file_base.pdf"; + + ensure_directory($dir_dest); + if ($opt_postprocess) { + printsize($file_source, 0); + if (-f $jar_pdfbox_rewrite) { + run("$prg_java -jar $jar_pdfbox_rewrite $file_source $file_tmp"); + } + else { + run("$prg_cp $file_source $file_tmp"); + } + run("$prg_java -cp $jar_multivalent tool.pdf.Compress -old $file_tmp"); + run("$prg_mv $file_tmp_o $file_dest"); + printsize($file_dest, 1); + } + else { + run("$prg_cp $file_source $file_dest"); + } + 1; +} +sub install_pdf ($$) { + my $pkg = shift; + my $file_base = shift; + + install_gen_pdf('latex', $pkg, $file_base); +} + +sub printsize ($$) { + my $file = shift; + my $modus = shift; + my $size = (stat($file))[7]; + $size =~ s/(\d)(\d{6})$/$1.$2/; + $size =~ s/(\d)(\d{3})$/$1.$2/; + $size = " " x (9 - length($size)) . $size; + if ($modus == 0) { + print "*" x 78 . "\n"; + print "* $size $file\n"; + } + else { + print "* $size $file\n"; + print "*" x 78 . "\n"; + print "\n"; + } +} + +sub ensure_directory ($) { + my $dir = shift; + + return 1 if -d $dir; + run("$prg_mkdir -p '$dir'"); + return 1 if -d $dir; + die "$error Cannot generate directory `$dir'!\n"; +} + +sub section ($) { + my $title = shift; + + print "\n=== $title ===\n"; + 1; +} + +sub run ($) { + my $cmd = shift; + + info("system: $cmd"); + my $ret = system($cmd); + if ($ret != 0) { + if ($? == -1) { + die "$error Failed to execute: $!\n"; + } + elsif ($? & 127) { + die "$error Child died with signal " + . ($? & 127) + . (($? & 128) ? ' with coredump' : '') + . "!\n"; + } + else { + die "$error Child exited with value " . ($? >> 8) . "!\n"; + } + } + 1; +} + +sub run_makeindex ($;$$) { + my $input_file = shift; + my $style_file = shift; + my $output_file = shift; + + return 1 unless -f $input_file; + my $cmd = $prg_makeindex; + $cmd .= " -s $style_file" if $style_file; + $cmd .= " -o $output_file" if $output_file; + $cmd .= " $input_file"; + run($cmd); +} + +sub run_zip ($$) { + my $zip_file = shift; + my $dir_start = shift; + run("$prg_ziptimetree --verbose --noroot $zip_file $dir_start"); + run("$prg_zip -z $zip_file <$file_zip_comment"); +} + +sub info ($) { + my $msg = shift; + print "* $msg\n"; + 1; +} + +sub cvs ($) { + $_ = shift; + s/^\$\w+:?\s*(\S*).*\$$/$1/; + $_ = "v$_" if /\./; + $_; +} + +sub patch ($) { + my $file = shift; + my $patch = $file; + $patch =~ s/^.*\/([^\/]+)$/$1/; + run("$prg_patch $dir_build/$file $dir_patch/$patch.diff"); +} + +sub get_perl_script ($) { + # Either the source of latex-tds is unpacked as TDS tree, + # then the perl script is below TDS:scripts/ + # or it can be put into the lib directory $dir_lib that I am using. + my $script = shift; + if (-f "$cwd/$dir_lib/$script.pl") { + $script = "$cwd/$dir_lib/$script.pl"; + } + else { + if (-f "$cwd/../../../scripts/latex-tds/$script.pl") { + $script = "$cwd/../../../scripts/latex-tds/$script.pl"; + } + else { + $script = "$cwd/../../../scripts/$script/$script.pl"; + } + } + die "$error Script $script.pl not found!\n" unless -f $script; + run("$prg_chmod +x $script") unless -x $script; + die "$error Script $script is not executable!\n" unless -x $script; + $script; +} + +__END__ diff --git a/Master/texmf-dist/source/latex/latex-tds/lib/adjust_checksum.pl b/Master/texmf-dist/source/latex/latex-tds/lib/adjust_checksum.pl new file mode 100755 index 00000000000..9998a886c69 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/lib/adjust_checksum.pl @@ -0,0 +1,160 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q' + if 0; +use strict; +$^W=1; # turn warning on +# +# adjust_checksum.pl +# +# Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de> +# +# This work may be distributed and/or modified under the +# conditions of the LaTeX Project Public License, either +# version 1.3 of this license or (at your option) any later +# version. The latest version of this license is in +# http://www.latex-project.org/lppl.txt +# and version 1.3 or later is part of all distributions of +# LaTeX version 2003/12/01 or later. +# +# This work has the LPPL maintenance status "maintained". +# +# This Current Maintainer of this work is Heiko Oberdiek. +# +# This work consists of this file. +# +# This file "adjust_checksum.pl" may be renamed to "adjust_checksum" +# for installation purposes. +# +my $file = "adjust_checksum.pl"; +my $program = uc($&) if $file =~ /^\w+/; +my $version = "1.1"; +my $date = "2006/02/12"; +my $author = "Heiko Oberdiek"; +my $copyright = "Copyright (c) 2002, 2006 by $author."; +# +# Reqirements: Perl5, Linux +# History: +# 2002/03/15 v1.0: First release. +# 2006/02/12 v1.1: Fix for \Checksum{0}. +# + +my $tempdir = "tmp_\L$program\E_$$"; + +### program identification +my $title = "$program $version, $date - $copyright\n"; + +my $usage = <<"END_OF_USAGE"; +${title}Syntax: \L$program\E <file.dtx> +Function: Correction of "\\Checksum{...}" entry in <file.dtx>. +END_OF_USAGE + +### error strings +my $Error = "!!! Error:"; # error prefix + +### parse command line arguments +@ARGV == 1 or die $usage; +my $dtxfile = $ARGV[0]; + +print $title; + +### check dtx file +-f $dtxfile or die "$Error File not found: '$dtxfile'!\n"; + +### signals +$SIG{__DIE__} = \&clean; +$SIG{'HUP'} = \&clean; +$SIG{'INT'} = \&clean; +$SIG{'QUIT'} = \&clean; +$SIG{'TERM'} = \&clean; + +### make temp dir +mkdir $tempdir; +-d $tempdir or die "$Error Cannot create directory '$tempdir'!\n"; + +### copy dtx file +my $tempdtxfile = $dtxfile; +$tempdtxfile =~ s/.*\///; +my $latexfile = $tempdtxfile; +$tempdtxfile = $tempdir . "/" . $tempdtxfile; + +system("cp $dtxfile $tempdtxfile"); +-f $tempdtxfile or die "$Error Cannot copy dtx file!\n"; + +### run latex +print "*** Running LaTeX ...\n"; +system("(cd $tempdir; latex --interaction=batchmode $latexfile)"); + +my $logfile = $tempdtxfile; +$logfile =~ s/\.[^\.]+$//; +$logfile .= ".log"; +-f $logfile or die "$Error Cannot find log file '$logfile'!\n"; + +### parse log file for CheckSum +print "*** Looking for checksum statement ...\n"; +my $found = 0; +my $changed = 0; +my $old = 0; +my $new = 0; +open(LOG, $logfile) or die "$Error Cannot open log file '$logfile'!\n"; +while (<LOG>) { + if (/\* Checksum passed \*/) { + $found = 1; + $changed = 0; + print "==> Checksum passed.\n"; + last; + } + if (/Checksum not passed \((\d+)<>(\d+)\)/) { + $found = 1; + $changed = 1; + $old = $1; + $new = $2; + last; + } + if (/The checksum should be (\d+)!/) { + $found = 1; + $changed = 1; + $old = 0; + $new = $1; + last; + } +} +close(LOG); + +$found or die "$Error Checksum statement not found in log file!\n"; + +if ($changed) { + print "==> Checksum not passed ($old<>$new).\n"; + + ### write changed dtx file + print "*** Fixing Checksum ...\n"; + my $fixed = 0; + open(IN, $tempdtxfile) or die "$Error Cannot open '$tempdtxfile'!\n"; + open(OUT, ">$dtxfile") or die "$Error Cannot write '$dtxfile'!\n"; + while (<IN>) { + if (s/\\CheckSum\{\d+\}/\\CheckSum{$new}/) { + $fixed++; + print "==> Checksum fixed:\n$_"; + } + print OUT; + } + close(IN); + close(OUT); + + $fixed > 0 or + die "$Error: \"\\CheckSum{...}\" not found!\n"; + $fixed == 1 or + die "$Error: More than one \"\\CheckSum\" command found!\n"; +} + +### cleaning +sub clean { + if (-d $tempdir) { + unlink glob("$tempdir/*"); + rmdir $tempdir; + } +} + +clean(); + +print "*** Ready.\n"; + +__END__ diff --git a/Master/texmf-dist/source/latex/latex-tds/lib/ziptimetree.pl b/Master/texmf-dist/source/latex/latex-tds/lib/ziptimetree.pl new file mode 100755 index 00000000000..29633055da6 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/lib/ziptimetree.pl @@ -0,0 +1,368 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q' + if 0; +use strict; +$^W=1; # turn warning on +# +# ziptimetree.pl +# +# Packs a directory tree into a ZIP file with sorted entries +# and corrects file permissions and directory dates. +# +# Copyright 2006 Heiko Oberdiek. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301 USA +# +# Address: oberdiek at uni-freiburg.de +# +my $file = 'ziptimetree'; +my $program = 'ZIP-TimeTree'; +my $version = '1.2'; +my $date = '2006/06/15'; +my $author = 'Heiko Oberdiek'; +my $copyright = "Copyright (C) 2006 by $author."; +# +# History: +# 2006/06/04 v1.0: First release. +# 2006/06/07 v1.1: License LGPL. +# 2006/06/15 v1.2: Small correction in option code. + +### program identification +my $title = "$program $version, $date - $copyright\n"; + +### error strings +my $error = "!!! Error:"; # error prefix +my $warning = "!!! Warning:"; + +### file modes (type and permission) +my $mode_directory = 040755; # drwxr-xr-x +my $mode_file_regular = 0100644; # -rw-r--r-- +my $mode_file_exec = 0100755; # -rwxr-xr-x + +### programs +my $prg_zip = 'zip'; +my $prg_pwd = 'pwd'; + +### file extensions +my $ext_zip = '.zip'; + +### counters +my $count_dir = 0; +my $count_file = 0; +my $count_exclude = 0; +my $count_mode = 0; +my $count_time = 0; +my $count_warn = 0; + +### log levels +my $log_quiet = 0; +my $log_normal = 1; +my $log_verbose = 2; +my $log_debug = 3; + +### option variables +my $help = 0; +my $log_level = 1; +my $compression = 9; +my $root = 1; +my $update = 0; +my @exclude; +my $tree; +my $zipfile; + +my $usage = <<"END_OF_USAGE"; +${title} +Syntax: $file [options] <zipfile> <treedir> + + <zipfile> The file where the result is stored as zipped file. + The name must end in '.zip'. + <treedir> Specifies the root of a directory tree whose + directories and files are packed into the <zipfile>. + +Functions: +* The permissions in the directory tree are normalized: + drwxr-xr-x directories + -rwxr-xr-x executable files + -rw-r--r-- regular files +* The time stamps of the directories are set to the time of the + latest file somewhere below that directory. +* The zip file is created with the same time as the latest file + inside the archive. +* Also the entries are orderd by depth-first and name: + * The directory tree is traversed in deep-first order. + * If a directory is reached, first its directory entries are + processed in alphabetical order. Then its files are added, + sorted by names. + +Options: defaults: + --help print usage + --quiet quiet except for warnings and errors + --verbose verbose output + --debug debug output + -0 .. -9 store only .. best compression (-9) + --(no)update zip file is not deleted before creating (--noupdate) + --(no)root use/strip root directory name (--root) + --exclude <pattern> exclude files by regular expression + +File exclusion: + Option --exclude allows you to specify pattern that are + used to exclude files from packing into the zipfile. + The option can be invoked several times, the pattern are + collected in a list. + During the tree traversal the name of files and directories + are generated. Depending on the state of option --root these + names may or may not include the root directory name. + In order to distinguish between files and directories, a slash + is appended to a directory name. Then the patterns are used + as regular expressions. Files or directories which names matches + are excluded, in case of directories the whole tree. + +END_OF_USAGE + +### process options +use Getopt::Long; +GetOptions( + '0' => sub { $compression = 0 }, + '1' => sub { $compression = 1 }, + '2' => sub { $compression = 2 }, + '3' => sub { $compression = 3 }, + '4' => sub { $compression = 4 }, + '5' => sub { $compression = 5 }, + '6' => sub { $compression = 6 }, + '7' => sub { $compression = 7 }, + '8' => sub { $compression = 8 }, + '9' => sub { $compression = 9 }, + 'help!' => sub { die $usage }, + 'quiet' => sub { $log_level = $log_quiet }, + 'verbose' => sub { $log_level = $log_verbose }, + 'debug' => sub { $log_level = $log_debug }, + 'update!' => \$update, + 'root!' => \$root, + 'exclude=s' => \@exclude, +) or die $usage; + +@ARGV == 2 or die $usage; +$zipfile = shift @ARGV; +$tree = shift @ARGV; + +### Report functions + +sub debug ($$) { + my $type = shift; + my $data = shift; + print "[$type] $data\n" if $log_level >= $log_debug; + 1; +} +sub verbose ($$) { + my $type = shift; + my $data = shift; + print "[$type] $data\n" if $log_level >= $log_verbose; +} +sub info ($$) { + my $type = shift; + my $data = shift; + print "[$type] $data\n" if $log_level >= $log_normal; + 1; +} +sub warning ($) { + my $msg = shift; + $count_warn++; + warn "$warning $msg\n"; + 1; +} + +### File operations + +sub excluded ($) { + my $file = shift; + $count_exclude++; + info 'excluded', $file; + 1; +} +sub changemod ($$) { + my $mode = shift; + my $file = shift; + my $chmod = sprintf('chmod %lo', $mode); + $count_mode++; + info $chmod, $file; + chmod $mode, $file or warning "Mode change failed: $file"; +} +sub touch ($$) { + my $time = shift; + my $dir = shift; + my $mtime = (stat $dir)[9]; + if ($mtime != $time) { + $count_time++; + info 'touch', $dir; + utime $time, $time, $dir or warning "Time update failed: $dir"; + } +} + +### Title +print $title if $log_level >= $log_normal; + +use Cwd qw(getcwd abs_path); +use File::Spec::Functions; + +# check $tree +-d $tree or die "$error Directory does not exist: $tree\n"; + +# zip file name +$zipfile =~ /\.zip$/ or + die "$error Wrong file extension of zip file: $zipfile\n"; + +# Option --noroot requires directory change because of program zip. +my $cwd; +if ($root) { + verbose 'zipfile', $zipfile; +} +else { + # adjust path of zipfile + $zipfile = abs_path($zipfile); + verbose 'zipfile', $zipfile; + + # change directory + debug 'curdir', getcwd; + chdir $tree or die "$error Cannot change directory: $tree\n"; +} +debug 'workdir', getcwd; + +my @list; # stores names as input for program zip + +# directory permissions should be checked before traversal +if ($root) { + my $mode = (stat($tree))[2]; + changemod $mode_directory, $tree unless $mode == $mode_directory; +} + +sub traverse ($); +sub traverse ($) { + my $dir = shift; + + my $traverse_dir = ($dir) ? $dir : curdir; + debug 'traverse', $traverse_dir; + unless (opendir DIR, $traverse_dir) { + warning "Cannot open directory: $traverse_dir"; + return 0; + } + my @sub_list = sort + grep { !/^[.]{1,2}$/ } + readdir DIR; + @sub_list = map { catfile $dir, $_ } @sub_list if $dir; + closedir DIR; + if ($dir) { + push @list, $dir; + $count_dir++; + } + + my @sub_dirs; + my @sub_files; + + for (@sub_list) { + if (-d $_) { + push @sub_dirs, $_; + next; + } + if (-f $_) { + push @sub_files, $_; + next; + } + warning "Unknown file type ignored: $_"; + } + + for my $exclude (@exclude) { + @sub_dirs = grep { not("$_/" =~ /$exclude/ and excluded "$_/") } + @sub_dirs; + @sub_files = grep { not(/$exclude/ and excluded $_) } + @sub_files; + } + + @sub_dirs = grep { traverse $_ } @sub_dirs; + push @list, @sub_files; + $count_file += @sub_files; + + my $time_max = 0; + for (@sub_dirs, @sub_files) { + my ($mode, $mtime) = (stat $_)[2,9]; + + $time_max = $mtime if $mtime > $time_max; + + if (-d $_) { + changemod $mode_directory, $_ unless $mode == $mode_directory; + } + else { + my $mode_file = ((-x $_) ? $mode_file_exec : $mode_file_regular); + changemod $mode_file, $_ unless $mode == $mode_file; + } + } + + touch $time_max, $dir if $dir; + + 1; +} + +traverse(($root) ? $tree : ''); + +if (-f $zipfile) { + if ($update) { + info 'update', $zipfile; + } + else { + info 'delete/create', $zipfile; + unlink $zipfile or warning "Cannot delete: $zipfile"; + } +} +else { + info 'create', $zipfile; +} + +my $opts = " -o$compression"; +$opts .= "v" if $log_level >= $log_debug; +$opts .= "q" if $log_level <= $log_normal; +my $pipe = "|$prg_zip$opts $zipfile -\@"; +debug 'zip call', $pipe; + +open(ZIP, $pipe) or die "$error Cannot start `zip'!\n"; +for (@list) { + print ZIP "$_\n"; +} +close(ZIP) or + die $! ? "$error Closing `zip': $!\n" + : "$error `zip' reports error code $?\n"; + +-f $zipfile or die "$error Missing result zip file: $zipfile\n"; + +info 'stats', "$count_exclude entries excluded" if $count_exclude > 1; +info 'stats', "$count_exclude entry excluded" if $count_exclude == 1; +info 'stats', "$count_mode mode changes" if $count_mode > 1; +info 'stats', "$count_mode mode change" if $count_mode == 1; +info 'stats', "$count_time time updates" if $count_time > 1; +info 'stats', "$count_time time update" if $count_time == 1; +info 'stats', "$count_dir directories added" if $count_dir != 1; +info 'stats', "$count_dir directory added" if $count_dir == 1; +info 'stats', "$count_file files added" if $count_file != 1; +info 'stats', "$count_file file added" if $count_file == 1; +info 'stats', "$count_warn warnings" if $count_warn > 1; +info 'stats', "$count_warn warning" if $count_warn == 1; + +my $size = (stat $zipfile)[7]; +$size = join '', reverse split '', $size; +$size =~ s/(\d\d\d)/$1./g; +$size =~ s/\.$//; +$size = join '', reverse split '', $size; + +print "--> $zipfile ($size bytes)\n" if $log_level >= $log_normal; + +__END__ diff --git a/Master/texmf-dist/source/latex/latex-tds/license/lppl.txt b/Master/texmf-dist/source/latex/latex-tds/license/lppl.txt new file mode 100644 index 00000000000..90e5e3ab797 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/license/lppl.txt @@ -0,0 +1,416 @@ +The LaTeX Project Public License +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + +LPPL Version 1.3c 2006-05-20 + +Copyright 1999 2002-2006 LaTeX3 Project + Everyone is allowed to distribute verbatim copies of this + license document, but modification of it is not allowed. + + +PREAMBLE +======== + +The LaTeX Project Public License (LPPL) is the primary license under +which the the LaTeX kernel and the base LaTeX packages are distributed. + +You may use this license for any work of which you hold the copyright +and which you wish to distribute. This license may be particularly +suitable if your work is TeX-related (such as a LaTeX package), but +it is written in such a way that you can use it even if your work is +unrelated to TeX. + +The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', +below, gives instructions, examples, and recommendations for authors +who are considering distributing their works under this license. + +This license gives conditions under which a work may be distributed +and modified, as well as conditions under which modified versions of +that work may be distributed. + +We, the LaTeX3 Project, believe that the conditions below give you +the freedom to make and distribute modified versions of your work +that conform with whatever technical specifications you wish while +maintaining the availability, integrity, and reliability of +that work. If you do not see how to achieve your goal while +meeting these conditions, then read the document `cfgguide.tex' +and `modguide.tex' in the base LaTeX distribution for suggestions. + + +DEFINITIONS +=========== + +In this license document the following terms are used: + + `Work' + Any work being distributed under this License. + + `Derived Work' + Any work that under any applicable law is derived from the Work. + + `Modification' + Any procedure that produces a Derived Work under any applicable + law -- for example, the production of a file containing an + original file associated with the Work or a significant portion of + such a file, either verbatim or with modifications and/or + translated into another language. + + `Modify' + To apply any procedure that produces a Derived Work under any + applicable law. + + `Distribution' + Making copies of the Work available from one person to another, in + whole or in part. Distribution includes (but is not limited to) + making any electronic components of the Work accessible by + file transfer protocols such as FTP or HTTP or by shared file + systems such as Sun's Network File System (NFS). + + `Compiled Work' + A version of the Work that has been processed into a form where it + is directly usable on a computer system. This processing may + include using installation facilities provided by the Work, + transformations of the Work, copying of components of the Work, or + other activities. Note that modification of any installation + facilities provided by the Work constitutes modification of the Work. + + `Current Maintainer' + A person or persons nominated as such within the Work. If there is + no such explicit nomination then it is the `Copyright Holder' under + any applicable law. + + `Base Interpreter' + A program or process that is normally needed for running or + interpreting a part or the whole of the Work. + + A Base Interpreter may depend on external components but these + are not considered part of the Base Interpreter provided that each + external component clearly identifies itself whenever it is used + interactively. Unless explicitly specified when applying the + license to the Work, the only applicable Base Interpreter is a + `LaTeX-Format' or in the case of files belonging to the + `LaTeX-format' a program implementing the `TeX language'. + + + +CONDITIONS ON DISTRIBUTION AND MODIFICATION +=========================================== + +1. Activities other than distribution and/or modification of the Work +are not covered by this license; they are outside its scope. In +particular, the act of running the Work is not restricted and no +requirements are made concerning any offers of support for the Work. + +2. You may distribute a complete, unmodified copy of the Work as you +received it. Distribution of only part of the Work is considered +modification of the Work, and no right to distribute such a Derived +Work may be assumed under the terms of this clause. + +3. You may distribute a Compiled Work that has been generated from a +complete, unmodified copy of the Work as distributed under Clause 2 +above, as long as that Compiled Work is distributed in such a way that +the recipients may install the Compiled Work on their system exactly +as it would have been installed if they generated a Compiled Work +directly from the Work. + +4. If you are the Current Maintainer of the Work, you may, without +restriction, modify the Work, thus creating a Derived Work. You may +also distribute the Derived Work without restriction, including +Compiled Works generated from the Derived Work. Derived Works +distributed in this manner by the Current Maintainer are considered to +be updated versions of the Work. + +5. If you are not the Current Maintainer of the Work, you may modify +your copy of the Work, thus creating a Derived Work based on the Work, +and compile this Derived Work, thus creating a Compiled Work based on +the Derived Work. + +6. If you are not the Current Maintainer of the Work, you may +distribute a Derived Work provided the following conditions are met +for every component of the Work unless that component clearly states +in the copyright notice that it is exempt from that condition. Only +the Current Maintainer is allowed to add such statements of exemption +to a component of the Work. + + a. If a component of this Derived Work can be a direct replacement + for a component of the Work when that component is used with the + Base Interpreter, then, wherever this component of the Work + identifies itself to the user when used interactively with that + Base Interpreter, the replacement component of this Derived Work + clearly and unambiguously identifies itself as a modified version + of this component to the user when used interactively with that + Base Interpreter. + + b. Every component of the Derived Work contains prominent notices + detailing the nature of the changes to that component, or a + prominent reference to another file that is distributed as part + of the Derived Work and that contains a complete and accurate log + of the changes. + + c. No information in the Derived Work implies that any persons, + including (but not limited to) the authors of the original version + of the Work, provide any support, including (but not limited to) + the reporting and handling of errors, to recipients of the + Derived Work unless those persons have stated explicitly that + they do provide such support for the Derived Work. + + d. You distribute at least one of the following with the Derived Work: + + 1. A complete, unmodified copy of the Work; + if your distribution of a modified component is made by + offering access to copy the modified component from a + designated place, then offering equivalent access to copy + the Work from the same or some similar place meets this + condition, even though third parties are not compelled to + copy the Work along with the modified component; + + 2. Information that is sufficient to obtain a complete, + unmodified copy of the Work. + +7. If you are not the Current Maintainer of the Work, you may +distribute a Compiled Work generated from a Derived Work, as long as +the Derived Work is distributed to all recipients of the Compiled +Work, and as long as the conditions of Clause 6, above, are met with +regard to the Derived Work. + +8. The conditions above are not intended to prohibit, and hence do not +apply to, the modification, by any method, of any component so that it +becomes identical to an updated version of that component of the Work as +it is distributed by the Current Maintainer under Clause 4, above. + +9. Distribution of the Work or any Derived Work in an alternative +format, where the Work or that Derived Work (in whole or in part) is +then produced by applying some process to that format, does not relax or +nullify any sections of this license as they pertain to the results of +applying that process. + +10. a. A Derived Work may be distributed under a different license + provided that license itself honors the conditions listed in + Clause 6 above, in regard to the Work, though it does not have + to honor the rest of the conditions in this license. + + b. If a Derived Work is distributed under a different license, that + Derived Work must provide sufficient documentation as part of + itself to allow each recipient of that Derived Work to honor the + restrictions in Clause 6 above, concerning changes from the Work. + +11. This license places no restrictions on works that are unrelated to +the Work, nor does this license place any restrictions on aggregating +such works with the Work by any means. + +12. Nothing in this license is intended to, or may be used to, prevent +complete compliance by all parties with all applicable laws. + + +NO WARRANTY +=========== + +There is no warranty for the Work. Except when otherwise stated in +writing, the Copyright Holder provides the Work `as is', without +warranty of any kind, either expressed or implied, including, but not +limited to, the implied warranties of merchantability and fitness for a +particular purpose. The entire risk as to the quality and performance +of the Work is with you. Should the Work prove defective, you assume +the cost of all necessary servicing, repair, or correction. + +In no event unless required by applicable law or agreed to in writing +will The Copyright Holder, or any author named in the components of the +Work, or any other party who may distribute and/or modify the Work as +permitted above, be liable to you for damages, including any general, +special, incidental or consequential damages arising out of any use of +the Work or out of inability to use the Work (including, but not limited +to, loss of data, data being rendered inaccurate, or losses sustained by +anyone as a result of any failure of the Work to operate with any other +programs), even if the Copyright Holder or said author or said other +party has been advised of the possibility of such damages. + + +MAINTENANCE OF THE WORK +======================= + +The Work has the status `author-maintained' if the Copyright Holder +explicitly and prominently states near the primary copyright notice in +the Work that the Work can only be maintained by the Copyright Holder +or simply that it is `author-maintained'. + +The Work has the status `maintained' if there is a Current Maintainer +who has indicated in the Work that they are willing to receive error +reports for the Work (for example, by supplying a valid e-mail +address). It is not required for the Current Maintainer to acknowledge +or act upon these error reports. + +The Work changes from status `maintained' to `unmaintained' if there +is no Current Maintainer, or the person stated to be Current +Maintainer of the work cannot be reached through the indicated means +of communication for a period of six months, and there are no other +significant signs of active maintenance. + +You can become the Current Maintainer of the Work by agreement with +any existing Current Maintainer to take over this role. + +If the Work is unmaintained, you can become the Current Maintainer of +the Work through the following steps: + + 1. Make a reasonable attempt to trace the Current Maintainer (and + the Copyright Holder, if the two differ) through the means of + an Internet or similar search. + + 2. If this search is successful, then enquire whether the Work + is still maintained. + + a. If it is being maintained, then ask the Current Maintainer + to update their communication data within one month. + + b. If the search is unsuccessful or no action to resume active + maintenance is taken by the Current Maintainer, then announce + within the pertinent community your intention to take over + maintenance. (If the Work is a LaTeX work, this could be + done, for example, by posting to comp.text.tex.) + + 3a. If the Current Maintainer is reachable and agrees to pass + maintenance of the Work to you, then this takes effect + immediately upon announcement. + + b. If the Current Maintainer is not reachable and the Copyright + Holder agrees that maintenance of the Work be passed to you, + then this takes effect immediately upon announcement. + + 4. If you make an `intention announcement' as described in 2b. above + and after three months your intention is challenged neither by + the Current Maintainer nor by the Copyright Holder nor by other + people, then you may arrange for the Work to be changed so as + to name you as the (new) Current Maintainer. + + 5. If the previously unreachable Current Maintainer becomes + reachable once more within three months of a change completed + under the terms of 3b) or 4), then that Current Maintainer must + become or remain the Current Maintainer upon request provided + they then update their communication data within one month. + +A change in the Current Maintainer does not, of itself, alter the fact +that the Work is distributed under the LPPL license. + +If you become the Current Maintainer of the Work, you should +immediately provide, within the Work, a prominent and unambiguous +statement of your status as Current Maintainer. You should also +announce your new status to the same pertinent community as +in 2b) above. + + +WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE +====================================================== + +This section contains important instructions, examples, and +recommendations for authors who are considering distributing their +works under this license. These authors are addressed as `you' in +this section. + +Choosing This License or Another License +---------------------------------------- + +If for any part of your work you want or need to use *distribution* +conditions that differ significantly from those in this license, then +do not refer to this license anywhere in your work but, instead, +distribute your work under a different license. You may use the text +of this license as a model for your own license, but your license +should not refer to the LPPL or otherwise give the impression that +your work is distributed under the LPPL. + +The document `modguide.tex' in the base LaTeX distribution explains +the motivation behind the conditions of this license. It explains, +for example, why distributing LaTeX under the GNU General Public +License (GPL) was considered inappropriate. Even if your work is +unrelated to LaTeX, the discussion in `modguide.tex' may still be +relevant, and authors intending to distribute their works under any +license are encouraged to read it. + +A Recommendation on Modification Without Distribution +----------------------------------------------------- + +It is wise never to modify a component of the Work, even for your own +personal use, without also meeting the above conditions for +distributing the modified component. While you might intend that such +modifications will never be distributed, often this will happen by +accident -- you may forget that you have modified that component; or +it may not occur to you when allowing others to access the modified +version that you are thus distributing it and violating the conditions +of this license in ways that could have legal implications and, worse, +cause problems for the community. It is therefore usually in your +best interest to keep your copy of the Work identical with the public +one. Many works provide ways to control the behavior of that work +without altering any of its licensed components. + +How to Use This License +----------------------- + +To use this license, place in each of the components of your work both +an explicit copyright notice including your name and the year the work +was authored and/or last substantially modified. Include also a +statement that the distribution and/or modification of that +component is constrained by the conditions in this license. + +Here is an example of such a notice and statement: + + %% pig.dtx + %% Copyright 2005 M. Y. Name + % + % This work may be distributed and/or modified under the + % conditions of the LaTeX Project Public License, either version 1.3 + % of this license or (at your option) any later version. + % The latest version of this license is in + % http://www.latex-project.org/lppl.txt + % and version 1.3 or later is part of all distributions of LaTeX + % version 2005/12/01 or later. + % + % This work has the LPPL maintenance status `maintained'. + % + % The Current Maintainer of this work is M. Y. Name. + % + % This work consists of the files pig.dtx and pig.ins + % and the derived file pig.sty. + +Given such a notice and statement in a file, the conditions +given in this license document would apply, with the `Work' referring +to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being +generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' +referring to any `LaTeX-Format', and both `Copyright Holder' and +`Current Maintainer' referring to the person `M. Y. Name'. + +If you do not want the Maintenance section of LPPL to apply to your +Work, change `maintained' above into `author-maintained'. +However, we recommend that you use `maintained', as the Maintenance +section was added in order to ensure that your Work remains useful to +the community even when you can no longer maintain and support it +yourself. + +Derived Works That Are Not Replacements +--------------------------------------- + +Several clauses of the LPPL specify means to provide reliability and +stability for the user community. They therefore concern themselves +with the case that a Derived Work is intended to be used as a +(compatible or incompatible) replacement of the original Work. If +this is not the case (e.g., if a few lines of code are reused for a +completely different task), then clauses 6b and 6d shall not apply. + + +Important Recommendations +------------------------- + + Defining What Constitutes the Work + + The LPPL requires that distributions of the Work contain all the + files of the Work. It is therefore important that you provide a + way for the licensee to determine which files constitute the Work. + This could, for example, be achieved by explicitly listing all the + files of the Work near the copyright notice of each file or by + using a line such as: + + % This work consists of all files listed in manifest.txt. + + in that place. In the absence of an unequivocal list it might be + impossible for the licensee to determine what is considered by you + to comprise the Work and, in such a case, the licensee would be + entitled to make reasonable conjectures as to which files comprise + the Work. + diff --git a/Master/texmf-dist/source/latex/latex-tds/license/ziptimetree/lgpl.txt b/Master/texmf-dist/source/latex/latex-tds/license/ziptimetree/lgpl.txt new file mode 100644 index 00000000000..5ab7695ab8c --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/license/ziptimetree/lgpl.txt @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/Master/texmf-dist/source/latex/latex-tds/patch/albanian.dtx.diff b/Master/texmf-dist/source/latex/latex-tds/patch/albanian.dtx.diff new file mode 100644 index 00000000000..42bad0ae1f1 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/patch/albanian.dtx.diff @@ -0,0 +1,32 @@ +*** albanian.dtx.org 2005-11-23 22:23:00.000000000 +0100 +--- albanian.dtx 2006-06-02 19:20:50.000000000 +0200 +*************** +*** 1,5 **** +--- 1,9 ---- + % \iffalse meta-comment + % ++ % Patched by Heiko Oberdiek for project latex-tds: ++ % * 2006/06/02: Documentation bug: incomplete first paragraph ++ % with open \footnote macro. ++ % + % Copyright 1989-2005 Johannes L. Braams and any individual authors + % listed elsewhere in this file. All rights reserved. + % +*************** +*** 69,75 **** + % + % The file \file{\filename}\footnote{The file described in this + % section has version number \fileversion\ and was last revised on +! % \filedate. + % + % Albanian is written in a latin script, but it has 36 leters, + % 9 which are diletters (dh, gj, ll, nj, rr, sh, th, xh, zh), +--- 73,80 ---- + % + % The file \file{\filename}\footnote{The file described in this + % section has version number \fileversion\ and was last revised on +! % \filedate.} defines all the language definition macros for the +! % Albanian language. + % + % Albanian is written in a latin script, but it has 36 leters, + % 9 which are diletters (dh, gj, ll, nj, rr, sh, th, xh, zh), diff --git a/Master/texmf-dist/source/latex/latex-tds/patch/athnum.dtx.diff b/Master/texmf-dist/source/latex/latex-tds/patch/athnum.dtx.diff new file mode 100644 index 00000000000..f5b2f27f58a --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/patch/athnum.dtx.diff @@ -0,0 +1,23 @@ +*** athnum.dtx.org 2005-04-01 00:37:00.000000000 +0200 +--- athnum.dtx 2006-06-02 19:08:14.000000000 +0200 +*************** +*** 1,5 **** +--- 1,8 ---- + % \iffalse meta-comment + % ++ % Patched by Heiko Oberdiek for project latex-tds: ++ % * 2006/06/02: Documentation bug: \CharacterTable without argument removed. ++ % + % Copyright 1989-2005 Johannes L. Braams and any individual authors + % listed elsewhere in this file. All rights reserved. + % +*************** +*** 27,33 **** + % extension .ins) which are part of the distribution. + % \fi + %% \CheckSum{125} +- %% \CharacterTable + %\iffalse + % + %% This is file `athnum.dtx' +--- 30,35 ---- diff --git a/Master/texmf-dist/source/latex/latex-tds/patch/bbcompat.dtx.diff b/Master/texmf-dist/source/latex/latex-tds/patch/bbcompat.dtx.diff new file mode 100644 index 00000000000..e3e2aecdd92 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/patch/bbcompat.dtx.diff @@ -0,0 +1,30 @@ +*** bbcompat.dtx.org 2005-11-23 22:23:00.000000000 +0100 +--- bbcompat.dtx 2006-06-02 18:57:27.000000000 +0200 +*************** +*** 1,5 **** +--- 1,8 ---- + % \iffalse meta-comment + % ++ % Patched by Heiko Oberdiek for project latex-tds: ++ % * 2006/06/02: Documentation bug fix: \cd -> \cs (typo) ++ % + % Copyright 1989-2005 Johannes L. Braams and any individual authors + % listed elsewhere in this file. All rights reserved. + % +*************** +*** 59,65 **** + % \changes{bbcompat-1.2}{1996/11/02}{Added the check for \cs{LdfInit}} + % \changes{bbcompat-1.2d}{1999/04/12}{When these files are read by a + % non-babel plain format the @ has still category code `other' so +! % can't use \cd{@undefined}} + % \begin{macrocode} + \ifx\LdfInit\undefined + \def\LdfInit{% +--- 62,68 ---- + % \changes{bbcompat-1.2}{1996/11/02}{Added the check for \cs{LdfInit}} + % \changes{bbcompat-1.2d}{1999/04/12}{When these files are read by a + % non-babel plain format the @ has still category code `other' so +! % can't use \cs{@undefined}} + % \begin{macrocode} + \ifx\LdfInit\undefined + \def\LdfInit{% diff --git a/Master/texmf-dist/source/latex/latex-tds/patch/classes.dtx.diff b/Master/texmf-dist/source/latex/latex-tds/patch/classes.dtx.diff new file mode 100644 index 00000000000..88e5ba740fa --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/patch/classes.dtx.diff @@ -0,0 +1,12 @@ +*** classes.dtx.org 2006-05-21 17:26:00.000000000 +0200 +--- classes.dtx 2006-07-25 09:28:43.000000000 +0200 +*************** +*** 135,140 **** +--- 135,141 ---- + % We do want an index, using linenumbers + % \begin{macrocode} + \EnableCrossrefs ++ \CodelineIndex + % \end{macrocode} + % We use so many \file{docstrip} modules that we set the + % \texttt{StandardModuleDepth} counter to 1. diff --git a/Master/texmf-dist/source/latex/latex-tds/patch/finnish.dtx.diff b/Master/texmf-dist/source/latex/latex-tds/patch/finnish.dtx.diff new file mode 100644 index 00000000000..b1a14f4b765 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/patch/finnish.dtx.diff @@ -0,0 +1,31 @@ +*** finnish.dtx.org 2005-04-01 00:39:00.000000000 +0200 +--- finnish.dtx 2006-06-02 19:51:30.000000000 +0200 +*************** +*** 1,5 **** +--- 1,9 ---- + % \iffalse meta-comment + % ++ % Patched by Heiko Oberdiek for project latex-tds: ++ % * 2006/06/02: Documentation bug: "=" cannot be used in ++ % a \changes entry. ++ % + % Copyright 1989-2005 Johannes L. Braams and any individual authors + % listed elsewhere in this file. All rights reserved. + % +*************** +*** 283,289 **** + % \end{macrocode} + % then we define two shorthands to be able to specify hyphenation + % breakpoints that behave a little different from |\-|. +! % \changes{finnish-1.3p}{2001/11/13}{\texttt{"=} should also use + % \cs{bbl@allowhyphens}} + % \begin{macrocode} + \declare@shorthand{finnish}{"-}{\nobreak-\bbl@allowhyphens} +--- 287,293 ---- + % \end{macrocode} + % then we define two shorthands to be able to specify hyphenation + % breakpoints that behave a little different from |\-|. +! % \changes{finnish-1.3p}{2001/11/13}{\texttt{\symbol{34}\symbol{61}} should also use + % \cs{bbl@allowhyphens}} + % \begin{macrocode} + \declare@shorthand{finnish}{"-}{\nobreak-\bbl@allowhyphens} diff --git a/Master/texmf-dist/source/latex/latex-tds/patch/frenchb.dtx.diff b/Master/texmf-dist/source/latex/latex-tds/patch/frenchb.dtx.diff new file mode 100644 index 00000000000..6befada8b12 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/patch/frenchb.dtx.diff @@ -0,0 +1,30 @@ +*** frenchb.dtx.org 2005-04-01 00:39:00.000000000 +0200 +--- frenchb.dtx 2006-06-02 19:59:31.000000000 +0200 +*************** +*** 1,5 **** +--- 1,8 ---- + % \iffalse meta-comment + % ++ % Patched by Heiko Oberdiek for project latex-tds: ++ % * 2006/06/02: Documentation bug: "!" cannot be used inside \changes. ++ % + % Copyright 1989-2005 Johannes L. Braams and any individual authors + % listed elsewhere in this file. All rights reserved. + % +*************** +*** 679,685 **** + % + % \changes{frenchb-1.5g}{2001/09/09}{Let \cs{LdfInit} check for + % \cs{datefrench} instead of \cs{NoAutoSpaceBeforeFDP}, +! % as the later is also defined by russianb.ldf!} + % + % \begin{macrocode} + %<*code> +--- 682,688 ---- + % + % \changes{frenchb-1.5g}{2001/09/09}{Let \cs{LdfInit} check for + % \cs{datefrench} instead of \cs{NoAutoSpaceBeforeFDP}, +! % as the later is also defined by russianb.ldf} + % + % \begin{macrocode} + %<*code> diff --git a/Master/texmf-dist/source/latex/latex-tds/patch/greek.ins.diff b/Master/texmf-dist/source/latex/latex-tds/patch/greek.ins.diff new file mode 100644 index 00000000000..1ee93fa22b8 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/patch/greek.ins.diff @@ -0,0 +1,20 @@ +*** greek.ins.org 2005-04-01 00:39:00.000000000 +0200 +--- greek.ins 2006-06-02 18:31:55.000000000 +0200 +*************** +*** 1,3 **** +--- 1,5 ---- ++ %% Patched by Heiko Oberdiek for project latex-tds: ++ %% * 2006/06/02: generation of grsymb.sty added. + %% + %% This file will generate fast loadable files and documentation + %% driver files from the doc files in this package when run through +*************** +*** 129,134 **** +--- 131,137 ---- + \generate{\file{greek.ldf}{\from{greek.dtx}{code}} + \file{athnum.sty}{\from{athnum.dtx}{package}} + \file{grmath.sty}{\from{grmath.dtx}{package}} ++ \file{grsymb.sty}{\from{grsymb.dtx}{package}} + } + \usepreamble\fdpreamble + \generate{\file{lgrenc.def}{\from{greek.fdd}{LGRenc}} diff --git a/Master/texmf-dist/source/latex/latex-tds/readme.txt b/Master/texmf-dist/source/latex/latex-tds/readme.txt new file mode 100644 index 00000000000..f56555c7145 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/readme.txt @@ -0,0 +1,415 @@ +readme.txt for project latex-tds, 2006/08/28 + +TABLE OF CONTENTS +================= +A. Abbreviations, Glossary +B. Project latex-tds +C. Download +D. Installation Hints +E. Copyright, License +F. Manifest +G. Design Principles +H. Remarks +I. Build Hints +J. History + + +A. ABBREVIATIONS, GLOSSARY +========================== +[CTAN] + Comprehensive TeX Archive Network. + FAQ entry: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=archives + For example, you can resolve the prefix `CTAN:' by using + `ftp://ftp.ctan.org/tex-archive/'. +[latex-tds] + The name of this project. +[TDS] + TeX Directory Structure. + FAQ entry: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tds + Specification: CTAN:tds.zip + + +B. PROJECT LATEX-TDS +==================== + +How it has started +------------------ +The project started as I wanted to install the new LaTeX release 2005/12/01 +that was announced at 2006/04/27. However the files aren't packed in +TDS format, ready for unpacking in the destination directory. And +the documentation files were not yet generated or the provided +PDF files are lacking of basic features such as bookmarks or link support. +Thus this project has started. I thought it could be finished during +the afternoon at the day of the announcement ... + +Goals of the project +-------------------- +* From the sources a TDS compliant tree is constructed and populated. + The zipped result is distributed. +* All the documentation is generated from the sources. The PDF files + are user friendly and provide navigational support with bookmarks + and links. +* The PDF files are post-processed to reduce the file size. + +Scope +----- +I don't have the time to assemble a TeX distribution with +thousands of packages. Therefore I restricted myself to the +LaTeX base distribution and the required bundles. +In the following I will use the term `module' for a package bundle. + +Module list +----------- +* base CTAN:macros/latex/base.zip +* tools CTAN:macros/latex/required/tools.zip +* cyrillic CTAN:macros/latex/required/cyrillic.zip +* amslatex CTAN:macros/latex/required/amslatex.zip + ftp://ftp.ams.org/pub/tex/amslatex.zip + ftp://ftp.ams.org/pub/tex/amsrefs.zip +* psnfss CTAN:macros/latex/required/psnfss.zip +* babel CTAN:macros/latex/required/babel.zip +* tds CTAN:tds.zip + +Author +------ +Heiko Oberdiek <oberdiek at uni-freiburg.de> + + +C. DOWNLOAD +=========== + +The home of the project is located at: + CTAN:macros/latex/contrib/latex-tds/ + +The following files can be downloaded: +* readme.txt (this file) +* The module distribution files, see the module list above + for the available modules, e.g: + base.zip + tools.zip + ... +* The sources, mainly the build script, configuration and + driver files, and patches: + source.zip + Some of the used tools are not provided, see section + `Building Hints'. +* And the universe, the contents of all the ZIP files above, + merged together: + latex-tds.zip + +It is possible that some or all ZIP archive files are also available +in the install subtree, then possible locations could be: + CTAN:install/macros/latex/base.zip + CTAN:install/macros/latex/required/tools.zip + ... + + +C. INSTALLATION HINTS +===================== + +Hopefully the result of this project helps you in the installation +process. You get a TDS compliant tree just by unpacking. + +Example: + cd /some/where/texmf + unzip latex-tds +or unzip's option `-d': + unzip latex-tds -d /some/where/texmf + +Instead of the universe ZIP files single modules can be selected. + +Important to remember, point your unpack process right in +the root directory of your TDS tree. The directory structure +in the ZIP files start with the top-level directories: + doc/latex/base/... + tex/latex/tools/... + source/... +Rationale: The root directory of a TDS tree can have different +names, such as texmf-dist, texmf-local, ... + +Hints +----- +* Refresh the file name database. +* Be aware that unpacking can insert and update files, but never + deletes obsolete ones. Remainders of previous releases can + cause trouble. +* Depending on the module further installation steps can be + necessary, consult the module's own documentation. + +[base] + * The default texsys.cfg that LaTeX provides is put + into tex/latex/base. It must be removed, if you need + a specialized version. Consult your TeX distribution + and doc/latex/base/source2e.pdf (module ltdirchk). + Usually changes are not required for many TeX distributions + such as Unix (web2c), MikTeX, ... + * Formats need rebuilding (e.g., fmtutil). +[babel] + * Most hyphenation patterns aren't provided here. Usually you can + find them somewhere below CTAN:language/hyphenation. + * Language configuration (language.dat), see the documentation of + your TeX distribution. + * Formats need rebuilding. +[psnfss] + * The map files need further configuring (e.g., updmap). +[graphics] + * Module graphics doesn't provide all driver files, because some are + developed independently (pdftex.def, ...). + + +D. COPYRIGHT, LICENSE +===================== + +Copyright 2006 Heiko Oberdiek. + +License is LPPL 1.3c: + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.3 +of this license or (at your option) any later version. +The latest version of this license is in + http://www.latex-project.org/lppl.txt +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. + +This work has the LPPL maintenance status `maintained'. + +The Current Maintainer of this work is Heiko Oberdiek. + +See the following section `Manifest' for a list of all files +belonging to the project `latex-tds'. + + +E. MANIFEST +=========== + +Included are the projects `adjust_checksum' and `ziptimetree'. +They are projects of their own. + +Documentation +------------- + readme.txt this file + +Licenses +-------- + license/lppl.txt LPPL (The LaTeX Project Public License) + for latex-tds and adjust_checksum + license/ziptimetree/lgpl.txt LGPL (GNU Lesser General Public License) + for ziptimetree + +Scripts +------- + build.pl main script for building the distribution + lib/adjust_checksum.pl Perl script that runs a DTX file through + LaTeX and corrects its \Checksum if necessary + lib/ziptimetree.pl Perl script that generates a ZIP file from + a directory tree with sorted entries (LGPL) + +Configuration +------------- + tex/docstrip.cfg enables TDS feature and creates directories + tex/errata.cfg for errata lists of latex/base + tex/hyperref.cfg hyperref configuration file + tex/ltnews.cfg for LaTeX News of latex/base + tex/ltxdoc.cfg setup for class ltxdoc + tex/ltxguide.cfg setup for the guide manuals in latex/base + and required/psnfss + tex/manual.cfg setup for errata list of the LaTeX manual + in latex/base + tex/tdsguide.cfg setup for class tdsguide.cls + +Documentation driver +-------------------- + tex/ams.drv generic doc driver for files from the + amslatex and babel bundle + tex/babel.tex doc driver with patches for babel.drv + tex/doc_lppl.tex doc driver for base/lppl.tex + tex/greek-usage.tex doc driver with patches for babel/usage.tex + tex/ltnews.tex master file that merges all base/ltnews*.tex + tex/ltxcheck.drv doc driver with patches for ltxcheck.tex + tex/psnfss2e.drv doc driver with patches for psnfss2e.tex + tex/tools-overview.cls class for tools.tex + tex/tools.tex master file for tools overview, generated + by the build.pl script from tools/manifest.txt + +Patches +------- + patch/classes.dtx.diff patch for base/classes.dtx + patch/albanian.dtx.diff patch for babel/albanian.dtx + patch/athnum.dtx.diff patch for babel/athnum.dtx + patch/bbcompat.dtx.diff patch for babel/bbcompat.dtx + patch/finnish.dtx.diff patch for babel/finnish.dtx + patch/frenchb.dtx.diff patch for babel/frenchb.dtx + patch/greek.ins.diff patch for babel/greek.ins + + +F. DESIGN PRINCIPLES +==================== + +* Compliance with the latest TDS specification. +* No redundancy. +* User friendly PDF files with navigational support: + * bookmarks + * links +* Complete documentation. The documentation generation with + enhanced PDF files is the tricky part and should be saved + from the user. +* Output format of generated documentation is PDF, see above. + Other formats such as DVI or PS are not generated and provided. +* Documentation bundles are preferred to many partial documentation + files (e.g. source2e.pdf or ltnews.pdf). +* If several expansion stages of a documentation are available, + then just the most complete expansion stage should be used. +* Files that do not fit in a program sub tree of TDS stay below + TDS:source (e.g. latexbug.el from latex/base). Then they do not + get lost at least. +* Page layout: a4paper with reduced vertical margins (exception: ltnews). + (This also decreases the page number usually.) +* ... + + +G. REMARKS +========== + +Base +---- +* source2e.pdf is used instead of many single lt*.pdf files. +* ltnews.pdf is introduced to avoid cluttering the doc directory + with many single sheet ltnews*.pdf files. +* ... + +Tools +----- +* Added: tools.pdf as overview/contents/index file with links + and short descriptions of the single packages. (It uses + the data from manifest.txt). +* ... + +AmSLaTeX +-------- +* The distribution from the AMS ftp site is used, because + the files are already sorted in TDS: + ftp://ftp.ams.org/pub/tex/amslatex.zip + ftp://ftp.ams.org/pub/tex/amsrefs.zip +* ... + +Babel +----- +* Babel's TeX files consists of three groups of files: + 1. Hyphenation pattern, see below + 2. Generic files: + *.ldf (language definition files) + *.sty (from bbcompat.dtx, these are plain-TeX files, + LaTeX user have the package babel) + babel.def, switch.def + plain.def + b*plain.tex + esbst.tex + 3. LaTeX files: + *.fd + *enc.def (for package fontenc) + cp*.def, 8859-8.def, si960.def (for package inputenc) + babel.sty + romanidx.tex + athnum.sty, grmath.sty, grsymb.sty (greek.ins) + heb*.sty + Full TDS compliance would use different format subtrees + for the generic and LaTeX files. However practice (TeX Live, teTeX, + VTeX, ...) put them in `generic', mainly because of maintenance issues. + Also babel's *.ins files specify \usedir{tex/generic/babel}. + There can be problems, if different TDS trees have different + babel versions installed and the same file can be found both + in generic and latex. The natural search strategy for TDS compliant + trees would be to look first in tex/latex across the trees, then + in tex/generic. Thus it can happen to use files from the same + package, but different versions. + --> Therefore latex-tds put theses files in the generic subtree. +* Babel already contains babel.pdf as documentation. It is a superset + of user.pdf. Thus I have dropped the latter one to avoid redundancy. + Also the name `babel.pdf' is much more useful (texdoc). +* It is unclear, which hyphenation patterns are in the control of babel. + Comparing the version of duplicate hyphenation pattern files + in CTAN, I decided: + * iahyphen.tex -> TDS:tex/generic/hyphen + * icehyph.tex -> TDS:tex/generic/hyphen + * lahyph.tex -> TDS:source/generic/babel + * The Bulgarian patterns are removed, because they form a new CTAN + project: CTAN:language/hyphenation/bghyphen +* It seems, nobody has generated the documentation since a long time. + Several patches are necessary for error free compiling. +* ... + + +H. BUILD HINTS +============== + +The most important advice I can give: `forget it'! +The purpose of the source files are rather to show, what was +done in which way. +The *.zip with TDS trees are the goal of the project, not the +build process. Some remarks, if someone wants to build the +modules himself: +* TeX compiler: recent pdfTeX, below 1.30 some of the packages + will not work. +* An up-to-date LaTeX installation is recommended. +* Additional packages can be necessary, e.g. I had to install + language/armenian, fonts/tipa, fonts/wsuipa, fonts/fc, + fonts/utopia, fonts/greek/cbfonts, ... + Probably TeX Live would be a good idea (I haven't tested). +* Some new packages of mine I will put on CTAN, but at time + of writing, they aren't available yet. +* PDF post-processing, I have used two steps: + 1. a) I have written a tool that analyzes page stream contents and + optimizes them (removal of unnecessary color settings, minimize + translation operations, ...). + --> pdfbox-rewrite.jar + b) For reading and writing the PDF file I have used PDFBox + --> PDFBox-0.7.2.jar (http://www.pdfbox.org/) + c) To get better results I patched some of the classes + of PDFBox (especially the write module). + --> pdfbox-rewrite.jar + 2. The final conversion step was done by Multivalent, because + it makes a very good job in PDF compression: + --> Multivalent20060102.jar (http://multivalent.sourceforge.net/) + Multivalent and PDFBox are available, pdfbox-rewrite.jar, however, + is just a first prototype, not ripe for a release. + Therefore this step of post-processing is optional for the + project latex-tds. The build script looks for the library and + skips this steps automatically if necessary. + If you give the build script the option --nopostprocess, + then it will skip the postprocess steps (building is faster, + the pdf files a little larger). + Install the jar files in the directory 'lib' where + they are expected by the build script. +* Unix, Perl background is expected. +* No support or documentation. + + +I. HISTORY +========== + +2006/04/27 + * Start of the project (without babel, amslatex, psnfss). +2006/06/01 + * Module amslatex added. +2006/06/03 + * Modules psnfss and babel added, now all modules are covered. +2006/06/07 + * The project uploaded to CTAN. +2006/07/31 + * Index added to base/classes.dtx. + * ZIP files renamed: '*-tds.zip' -> '*.zip' + * Comment added to ZIP files. + * Update of readme.txt. +2006/08/26 + * Module tds for CTAN:tds/ added. + * Obsolete hyphenation patterns added to babel's source directory + to avoid violation of LPPL. + * Script adjust_checksum added and scripts are put below TDS:scripts. + * TDS:makeindex/base/ renamed to TDS:makeindex/latex/ + * Exception for sample2e.tex and small2e.tex that now go into + TDS:tex/latex/base/. +2006/08/28 + * Default texsys.cfg is generated. + * adjust_checksum.pl and ziptimetree.pl now moved from the scripts + branch to TDS:source/latex/latex-tds/lib/. diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/ams.drv b/Master/texmf-dist/source/latex/latex-tds/tex/ams.drv new file mode 100644 index 00000000000..3720eaada9b --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/tex/ams.drv @@ -0,0 +1,152 @@ +% ams.drv +% 2006/06/02 v1.0 Driver file for amslatex documentation files +% Copyright 2006 Heiko Oberdiek. +% +% This file is part of project `latex-tds'. +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Heiko Oberdiek. +% +% See `readme.txt' for a list of all files belonging to the +% project `latex-tds' and additional information. +% +\NeedsTeXFormat{LaTeX2e} +\makeatletter + +%%% Paper size +\@for\reserved@a:=article,report,book,amsdtx,amsart\do{% + \PassOptionsToClass{a4paper}{\reserved@a}% +} + +%%% Skip for cite-xa (unsupported) +\begingroup + \edef\x{\jobname}% + \def\y{cite-xa}% + \@onelevel@sanitize\y +\expandafter\endgroup +\ifx\x\y + \expandafter\@firstofone +\else + \expandafter\@gobble +\fi +{% + \input{\jobname.tex}% + \endinput +} + +%%% Patch \documentclass +\let\PATCH@ORG@documentclass\documentclass +\renewcommand*{\documentclass}[2][]{% + \let\documentclass\PATCH@ORG@documentclass + \begingroup + \toks@{\documentclass}% + \def\x{#1}% + \ifx\x\@empty + \else + \toks@\expandafter{\the\toks@[{#1}]}% + \fi + \toks@\expandafter{\the\toks@{#2}}% + \PATCH@documentclass +} +\newcommand*{\PATCH@documentclass}[1][]{% + \def\x{#1}% + \ifx\x\@empty + \else + \toks@\expandafter{\the\toks@[#1]}% + \fi + \expandafter\endgroup + \the\toks@ + % + % page layout + \addtolength{\topmargin}{-10mm}% + \addtolength{\textheight}{20mm}% + % + %%% Add hyperref support + \PassOptionsToPackage{hyperref}{draft=false}% + \IfFileExists{\jobname.dtx}{% + \RequirePackage{hypdoc}[2006/06/01]% + }{}{}% + \usepackage[pdfusetitle]{hyperref}% + \hypersetup{ + draft=false, + colorlinks, + bookmarksnumbered, + }% + \pdfstringdefDisableCommands{% + \def\BibTeX{BibTeX}% + \let\pkg\@firstofone + \let\cls\@firstofone + \let\opt\@firstofone + \let\fld\@firstofone + \let\ntt\relax + \let\fn\@firstofone + \let\env\@firstofone + \def\cn{\textbackslash}% + \def\begend##1{% + \textbackslash begin\{##1\} \dots\space + \textbackslash end\{##1\}% + }% + \def\and{, }% + \def\linebreak[##1]{}% + }% +} + +%%% Patch for cite-xh.tex +\begingroup + \edef\x{\jobname}% + \def\y{cite-xh}% + \@onelevel@sanitize\y +\expandafter\endgroup +\ifx\x\y + \PassOptionsToPackage{% + colorlinks,citecolor=red,pagebackref,hypertexnames=false,hypertexnames% + }{hyperref}% +\fi + +%%% Patch theindex for amsldoc.tex +\begingroup + \edef\x{\jobname}% + \def\y{amsldoc}% + \@onelevel@sanitize\y +\expandafter\endgroup +\ifx\x\y +\else + \expandafter\@gobbletwo +\fi +\AtBeginDocument{% + \let\PATCH@ORG@theindex\theindex + \def\theindex{% + \let\endtheindex\relax + \end{theindex}% + \let\theindex\PATCH@ORG@theindex + \InputIfFileExists{\jobname.ind}{}{}% + \end{document}% + }% +} + +\makeatother + +%%% Load document source file +\InputIfFileExists{\jobname.tex}{% + \typeout{* Document source: \jobname.tex}% +}{% + \InputIfFileExists{\jobname.dtx}{% + \typeout{* Document source: \jobname.dtx}% + \AtBeginDocument{\CodelineIndex}% + \AtEndDocument{\PrintIndex}% + }{% + \PackageError{ams.drv}{% + Cannot find document source + }{\csname @ehc\endcsname}% + }% +} +\endinput diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/babel.tex b/Master/texmf-dist/source/latex/latex-tds/tex/babel.tex new file mode 100644 index 00000000000..ff3059fa099 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/tex/babel.tex @@ -0,0 +1,71 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{babel.tex}% + [2006/06/02 v1.0 Driver file for babel.drv (HO)] +% +% Copyright 2006 Heiko Oberdiek +% +% This file is part of project `latex-tds'. +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Heiko Oberdiek. +% +% See `readme.txt' for a list of all files belonging to the +% project `latex-tds' and additional information. +% +\makeatletter + +% There are a lot of unnumbered sections `References' +% among numbered sections. That looks too poor. +\PassOptionsToPackage{numbered}{hypdoc} + +% The first environment `thebibliography' belongs to babel.dtx, +% but the following are part of the other language definition files. +% Thus we must move the \section to the \subsection level here. +\newif\if@FirstBib +\@FirstBibtrue +\AtBeginDocument{% + \let\Saved@TheBibliography\thebibliography + \let\thebibliography\New@TheBibliography +} +\def\New@TheBibliography{% + \if@FirstBib + \global\@FirstBibfalse + \else + \def\section{\subsection}% + \fi + \Saved@TheBibliography +} + +% Add bookmark for `Change History' +\AtBeginDocument{% + \let\Saved@TheGlossary\theglossary + \let\theglossary\New@TheGlossary +} +\def\New@TheGlossary{% + \clearpage + \pdfbookmark[1]{Change History}{gloss}% + \Saved@TheGlossary +} + +% Index not numbered +\AtBeginDocument{% + \let\Saved@TheIndex\theindex + \let\theindex\New@TheIndex +} +\def\New@TheIndex{% + \csname HD@numberedfalse\endcsname + \Saved@TheIndex +} +\makeatother + +\input{babel.drv} +\endinput diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/doc_lppl.tex b/Master/texmf-dist/source/latex/latex-tds/tex/doc_lppl.tex new file mode 100644 index 00000000000..3c8d9cd8e35 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/tex/doc_lppl.tex @@ -0,0 +1,50 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{doc_lppl.tex} + [2006/06/02 v1.0 Master file for lppl.tex (HO)] +% +% Copyright 2006 Heiko Oberdiek +% +% This file is part of project `latex-tds'. +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Heiko Oberdiek. +% +% See `readme.txt' for a list of all files belonging to the +% project `latex-tds' and additional information. +% +\documentclass[a4paper,11pt]{article} + +\usepackage[ + ignoreall, + vmargin=1in +]{geometry} + +\usepackage[colorlinks]{hyperref} +\hypersetup{ + pdftitle={The LaTeX Project Public License}, + bookmarksopen, + bookmarksopenlevel=3, +} + +\let\LPPLicense\begingroup +\let\endLPPLicense\endgroup + +\newcommand*{\LPPLsection}{\section} +\newcommand*{\LPPLsubsection}{\subsection} +\newcommand*{\LPPLsubsubsection}{\subsubsection} +\newcommand*{\LPPLparagraph}{\paragraph} + +\setcounter{secnumdepth}{0} + +\begin{document} +\input{lppl} +\end{document} diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/docstrip.cfg b/Master/texmf-dist/source/latex/latex-tds/tex/docstrip.cfg new file mode 100644 index 00000000000..0b6d48c4366 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/tex/docstrip.cfg @@ -0,0 +1,36 @@ +% docstrip.cfg +% 2006/06/02 v1.0 +% Copyright 2006 Heiko Oberdiek +% +% Configuration file for `docstrip' that enables the TDS installation +% feature and automatically creates missing directories. +% +% This file is part of project `latex-tds'. +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Heiko Oberdiek. +% +% See `readme.txt' for a list of all files belonging to the +% project `latex-tds' and additional information. +% +\BaseDirectory{texmf} +\UseTDS + +\def\shell#{\immediate\write18} +\def\mkdir#1{\shell{mkdir -p #1}} + +\let\saved@usedir\usedir +\def\usedir#1{% + \mkdir{\basedir#1}% + \saved@usedir{#1}% +} +\endinput diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/errata.cfg b/Master/texmf-dist/source/latex/latex-tds/tex/errata.cfg new file mode 100644 index 00000000000..ed7f481a76f --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/tex/errata.cfg @@ -0,0 +1,48 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{errata.cfg}% + [2006/06/02 v1.0 latex-tds: errata.cls configuration (HO)] +% +% Copyright 2006 Heiko Oberdiek +% +% This file is part of project `latex-tds'. +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Heiko Oberdiek. +% +% See `readme.txt' for a list of all files belonging to the +% project `latex-tds' and additional information. +% +\AtEndOfClass{% + \RequirePackage{hyperref}% + \newcounter{unique} + \renewcommand\CHAPTER[1]{% + \endgobble + &\\[4pt]% + \noalign{% + \stepcounter{unique}% + \pdfbookmark[0]{#1}{ch-\number\value{unique}}% + }% + \multicolumn{4}{l}{\framebox[10cm][l]{\textbf{\normalsize\strut#1}}} \\% + } + \let\SAVEDerratatitle\erratatitle + \renewcommand{\erratatitle}[1]{% + \hypersetup{% + pdftitle={#1}% + }% + \SAVEDerratatitle{#1}% + }% + \hypersetup{% + pdfsubject={Errata list}% + }% + \showallerrors +} +\endinput diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/greek-usage.tex b/Master/texmf-dist/source/latex/latex-tds/tex/greek-usage.tex new file mode 100644 index 00000000000..b1ce41f91b6 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/tex/greek-usage.tex @@ -0,0 +1,35 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{greek-usage.tex} + [2006/06/02 v1.0 Driver file for babel/usage.tex (HO)] +% +% Copyright 2006 Heiko Oberdiek +% +% This file is part of project `latex-tds'. +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Heiko Oberdiek. +% +% See `readme.txt' for a list of all files belonging to the +% project `latex-tds' and additional information. +% +\let\SavedDocumentclass\documentclass +\def\documentclass[#1]#2{% + \SavedDocumentclass[{#1}]{#2}% + \usepackage[ + colorlinks, + pdfusetitle, + bookmarksnumbered + ]{hyperref} +} +\def\show#1{} +\input{usage} +\endinput diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/hyperref.cfg b/Master/texmf-dist/source/latex/latex-tds/tex/hyperref.cfg new file mode 100644 index 00000000000..cc649d15442 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/tex/hyperref.cfg @@ -0,0 +1,32 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{hyperref.cfg}% + [2006/06/02 v1.0 latex-tds: hyperref.sty configuration (HO)] +% +% Copyright 2006 Heiko Oberdiek +% +% This file is part of project `latex-tds'. +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Heiko Oberdiek. +% +% See `readme.txt' for a list of all files belonging to the +% project `latex-tds' and additional information. +% +\AtEndOfPackage{% + \RequirePackage{hypdestopt}% + % patch for varioref (psnfss2e.drv) + \let\HyperrefRefstepcounter\refstepcounter + \AtBeginDocument{% + \let\refstepcounter\HyperrefRefstepcounter + }% +} +\endinput diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/ltnews.cfg b/Master/texmf-dist/source/latex/latex-tds/tex/ltnews.cfg new file mode 100644 index 00000000000..d13853d4859 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/tex/ltnews.cfg @@ -0,0 +1,37 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{ltnews.cfg}% + [2006/06/02 v1.0 latex-tds: ltnews.cls configuration (HO)] +% +% Copyright 2006 Heiko Oberdiek +% +% This file is part of project `latex-tds'. +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Heiko Oberdiek. +% +% See `readme.txt' for a list of all files belonging to the +% project `latex-tds' and additional information. +% +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname pdfinfo\endcsname\relax +\else + \AtBeginDocument{% + \pdfinfo{% + /Subject(% + Issue \@issue, \@month\space\@year + )% + /Creator(LaTeX)% + }% + \newtoks\pdfinfo + }% +\fi +\endinput diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/ltnews.tex b/Master/texmf-dist/source/latex/latex-tds/tex/ltnews.tex new file mode 100644 index 00000000000..2cdacedff2a --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/tex/ltnews.tex @@ -0,0 +1,132 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{ltnews.tex}% + [2006/06/02 v1.0 Master file for ltnews*.tex (HO)] +% +% Copyright 2006 Heiko Oberdiek +% +% This file is part of project `latex-tds'. +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Heiko Oberdiek. +% +% See `readme.txt' for a list of all files belonging to the +% project `latex-tds' and additional information. +% +\providecommand*{\lastissue}{17} + +\RequirePackage{ifpdf} +\ifpdf + % overwrite nasty stuff of ltnews.cfg + % (use of hyperref for this would also support other drivers) + \pdfinfo{% + /Title(LaTeX News)% + /Subject(Issues 1--\lastissue)% + /Author(The LaTeX Project)% + /Creator(LaTeX)% + } + \newtoks\pdfinfo +\else + \AtBeginDocument{% + \hypersetup{% + pdftitle={LaTeX News},% + pdfsubject={Issues 1\textendash\lastissue},% + pdfauthor={The LaTeX Project},% + pdfcreator={LaTeX}% + }% + }% +\fi + +\documentclass{ltnews} + +\RequirePackage{hyperref} +\hypersetup{colorlinks} + +\makeatletter + +\newcounter{issue} +\renewcommand*{\theissue}{% + \ifnum\value{issue}<10 0\fi + \number\value{issue}% +} + +\newcommand*{\MonthJune}{06} +\newcommand*{\MonthDecember}{12} +\newcommand*{\printissue}{% + Issue % + \texorpdfstring{\number\value{issue}}{\theissue}, % + \texorpdfstring{\@month\space\@year}{\@year/\@nameuse{Month\@month}}% +} +\let\l@part\l@section +\let\l@section\l@subsection +\let\l@subsection\l@subsubsection +\let\l@subsubsection\l@paragraph +\let\l@paragraph\l@subparagraph + +\newcommand*{\makefirsttitle}{% + \twocolumn[{% + \parbox[t][4\baselineskip]{\textwidth}{% + \@titlefont\@title, Issues 1--\lastissue + }% + }]% +} + +% table of contents with underlined links +\iffalse % disable if option colorlinks is used +\@ifpackagelater{hyperref}{2006/06/01}{% + \newcommand*{\saved@tableofcontents}{}% + \let\saved@tableofcontents\tableofcontents + \renewcommand*{\tableofcontents}{% + \begingroup + \hypersetup{pdfborderstyle={/S/U/W 1}}% + \saved@tableofcontents + \endgroup + }% +}{} +\fi +\makeatother + +\begin{document} + +%%% Title and Table of Contents + +\makefirsttitle +\pdfbookmark[0]{\contentsname}{toc} +\tableofcontents +\clearpage + +%%% Issues + +\begingroup + \renewcommand*{\documentclass}[2][]{% + \setcounter{footnote}{0}% + \gobbleopt + }% + \newcommand*{\gobbleopt}[1][]{}% + \renewenvironment{document}{% + \clearpage + \pdfbookmark[0]{\printissue}{issue\theissue}% + \begingroup + \let\WriteBookmarks\relax + \phantomsection + \addcontentsline{toc}{part}{\printissue}% + \endgroup + }{% + \clearpage + }% + \loop + \ifnum\value{issue}<\lastissue + \stepcounter{issue}% + \input{ltnews\theissue}% + \repeat +\endgroup + +\end{document} diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/ltxcheck.drv b/Master/texmf-dist/source/latex/latex-tds/tex/ltxcheck.drv new file mode 100644 index 00000000000..c4a4c155aa3 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/tex/ltxcheck.drv @@ -0,0 +1,27 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{ltxcheck.drv}% + [2006/06/02 v1.0 Driver file for ltxcheck.tex (HO)] +% +% Copyright 2006 Heiko Oberdiek +% +% This file is part of project `latex-tds'. +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Heiko Oberdiek. +% +% See `readme.txt' for a list of all files belonging to the +% project `latex-tds' and additional information. +% +\documentclass{ltxdoc} +\begin{document} +\DocInput{ltxcheck.tex} +\end{document} diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/ltxdoc.cfg b/Master/texmf-dist/source/latex/latex-tds/tex/ltxdoc.cfg new file mode 100644 index 00000000000..342218ba4c5 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/tex/ltxdoc.cfg @@ -0,0 +1,63 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{ltxdoc.cfg}% + [2006/06/02 latex-tds: ltxdoc.cls configuration (HO)] +% +% Copyright 2006 Heiko Oberdiek +% +% This file is part of project `latex-tds'. +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Heiko Oberdiek. +% +% See `readme.txt' for a list of all files belonging to the +% project `latex-tds' and additional information. +% +\PassOptionsToClass{a4paper}{article} +\AtEndOfClass{% + \RequirePackage{hypdoc}% + \pdfstringdefDisableCommands{% + \let\env\relax % longtable.dtx + \let\mytt\relax % tabularx.dtx + }% + \addtolength{\topmargin}{-10mm}% + \addtolength{\textheight}{20mm}% + % Depending on the page style, the head or foot area + % are put into the text area. + % Usually the page style is the default "plain". + % tools/verbatim.dtx uses "myheadings". + \def\string@plain{plain}% + \def\string@myheadings{myheadings}% + \def\current@pagestyle{plain}% + \let\ltxdoc@cfg@pagestyle\pagestyle + \def\pagestyle#1{% + \def\current@pagestyle{#1}% + \ltxdoc@cfg@pagestyle{#1}% + }% + \let\ltxdoc@cfg@document\document + \def\document{% + \ifx\current@pagestyle\string@plain + \addtolength{\textheight}{\headheight}% + \addtolength{\textheight}{\headsep}% + \setlength{\headheight}{0pt}% + \setlength{\headsep}{0pt}% + \global\textheight\textheight + \global\headheight\headheight + \global\headsep\headsep + \fi + \ifx\current@pagestyle\string@myheadings + \addtolength{\textheight}{\footskip}% + \global\textheight\textheight + \fi + \ltxdoc@cfg@document + }% +} +\endinput diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/ltxguide.cfg b/Master/texmf-dist/source/latex/latex-tds/tex/ltxguide.cfg new file mode 100644 index 00000000000..2996a7a1561 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/tex/ltxguide.cfg @@ -0,0 +1,57 @@ +\ProvidesFile{ltxguide.cfg}% + [2006/04/27 v1.0 latex-tds: ltxguide.cls configuration (HO)] +% +% Copyright 2006 Heiko Oberdiek +% +% This file is part of project `latex-tds'. +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Heiko Oberdiek. +% +% See `readme.txt' for a list of all files belonging to the +% project `latex-tds' and additional information. +% +\PassOptionsToClass{a4paper}{article} +\AtEndOfClass{% + \RequirePackage{hypdoc}% + \pdfstringdefDisableCommands{% + \let\package\relax % grfguide.tex + }% + \addtolength{\textheight}{\headheight}% + \addtolength{\textheight}{\headsep}% + \setlength{\headheight}{0pt}% + \setlength{\headsep}{0pt}% + \begingroup + \edef\x{\jobname}% + \edef\y{\detokenize{encguide}}% + \expandafter\endgroup + \ifx\x\y + % encguide already enlarges \textheight + \addtolength{\topmargin}{-\baselineskip}% + \else + \addtolength{\topmargin}{-10mm}% + \addtolength{\textheight}{20mm}% + \fi +} +% Patch for grfguide.tex +\AtBeginDocument{% + \@ifundefined{DeclareGraphicsExtensions}{% + }{% + \DeclareGraphicsExtensions{.pdf}% + \GPT@fix + \let\GPT@fix\relax + \define@key{Gin}{bb}{% + \setkeys{Gin}{viewport=15 10 35 45}% + }% + }% +} +\endinput diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/manual.cfg b/Master/texmf-dist/source/latex/latex-tds/tex/manual.cfg new file mode 100644 index 00000000000..e508a715000 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/tex/manual.cfg @@ -0,0 +1,43 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{manual.cfg}% + [2006/06/02 v1.0 latex-tds: manual.err configuration (HO)] +% +% Copyright 2006 Heiko Oberdiek +% +% This file is part of project `latex-tds'. +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Heiko Oberdiek. +% +% See `readme.txt' for a list of all files belonging to the +% project `latex-tds' and additional information. +% +\usepackage[pdfusetitle]{hyperref} +\setcounter{secnumdepth}{0} +\makeatletter +\let\SAVED@subsection\subsection +\let\SAVED@subsubsection\subsubsection +\renewcommand*{\subsection}{% + \@ifstar\ERR@subsection\ERR@subsection +} +\newcommand*{\ERR@subsection}[1]{% + \SAVED@subsection{% + \texorpdfstring{#1}{% + \ERR@strip #1\@nil + }% + }% +} +\def\ERR@strip Error#1 Corrected in the #2\@nil{#2} +\renewcommand*{\subsubsection}{% + \@ifstar\SAVED@subsubsection\SAVED@subsubsection +} +\endinput diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/psnfss2e.drv b/Master/texmf-dist/source/latex/latex-tds/tex/psnfss2e.drv new file mode 100644 index 00000000000..9bb35d805e3 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/tex/psnfss2e.drv @@ -0,0 +1,41 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{psnfss2e.drv}% + [2006/08/17 v1.1 Driver file for psnfss2e.tex (HO)] +% +% Copyright 2006 Heiko Oberdiek +% +% This file is part of project `latex-tds'. +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Heiko Oberdiek. +% +% See `readme.txt' for a list of all files belonging to the +% project `latex-tds' and additional information. +% +\RequirePackage[patch]{kvoptions}[2006/08/17] +\PassOptionsToPackage{colorlinks=false,pdfborder={0 0 0}}{hyperref} +\AtBeginDocument{% + \utopiatrue +} +\let\SavedDocumentclass\documentclass +\def\documentclass[#1]#2[#3]{% + \let\documentclass\SavedDocumentclass + \documentclass[{#1}]{#2}[{#3}]% + \addtolength{\textheight}{\headheight}% + \addtolength{\textheight}{\headsep}% + \setlength{\headheight}{0pt}% + \setlength{\headsep}{0pt}% + \addtolength{\textheight}{20mm}% + \addtolength{\topmargin}{-10mm}% +} +\input{\jobname.tex} +\endinput diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/tdsguide.cfg b/Master/texmf-dist/source/latex/latex-tds/tex/tdsguide.cfg new file mode 100644 index 00000000000..cda0dd334ba --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/tex/tdsguide.cfg @@ -0,0 +1,38 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{tdsguide.cfg}% + [2006/08/17 v1.0 latex-tds: tdsguide.cls configuration (HO)] +\PassOptionsToClass{a4paper}{article} +\AtEndOfClass{% + \RequirePackage[ + colorlinks, + bookmarksnumbered, + ]{hyperref}% + \let\SavedUrl\url + \def\url|#1|{% + \SavedUrl{#1}% + }% + \providecommand*{\appref}[1]{% + \hyperref[{#1}]{Appendix~\ref*{#1}}% + }% + \providecommand*{\secref}[1]{% + \hyperref[{#1}]{Section~\ref*{#1}}% + }% + \pdfstringdefDisableCommands{% + \let\abbr\@firstofone + \def\BibTeX{BibTeX}% + }% + \hypersetup{% + pdfauthor={Karl Berry}, + pdftitle={A Directory Structure for TeX Files (TDS)}, + pdfsubject={TUG Working Group on a TeX Directory Structure (TWG-TDS)}, + }% + \addtolength{\topmargin}{-10mm}% + \addtolength{\textheight}{20mm}% + \let\saved@maketitle\@maketitle + \def\@maketitle{% + \null + \kern10mm\relax + \saved@maketitle + }% +} +\endinput diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/tools-overview.cls b/Master/texmf-dist/source/latex/latex-tds/tex/tools-overview.cls new file mode 100644 index 00000000000..55c23ee943c --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/tex/tools-overview.cls @@ -0,0 +1,114 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{tools-overview} + [2006/06/02 Overview for packages of latex/tools] +% +% Copyright 2006 Heiko Oberdiek +% +% This file is part of project `latex-tds'. +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Heiko Oberdiek. +% +% See `readme.txt' for a list of all files belonging to the +% project `latex-tds' and additional information. +% +\nofiles +\LoadClass[a4paper,12pt]{article} + +% page layout +\RequirePackage[ + ignoreall, + hmargin=1in, + vmargin={.75in,1in}, +]{geometry} + +\pagestyle{empty} + +\RequirePackage{calc}[2005/08/06] + +\RequirePackage{hyperref} +\hypersetup{ + colorlinks, + filecolor=blue, + pdftitle={LaTeX's Tools Bundle}, + pdfsubject={Overview}, + pdfauthor={Heiko Oberdiek}, + pdfcreator={Project `latex-tds'}, +} +\title{Contents of \LaTeX's Tools Bundle} + +\let\TO@document\document +\let\TO@enddocument\enddocument +\def\document{% + \TO@document + \maketitle + \toks@={}% + \setlength{\maxlen}{0pt}% +} +\newlength{\maxlen} +\def\enddocument{% + \begin{list}{}{% + \setlength{\leftmargin}{\maxlen + \labelsep}% + \setlength{\labelwidth}{\maxlen}% + \setlength{\partopsep}{0pt}% + }% + \the\toks@ + \end{list}% + \TO@enddocument +} +\newcommand{\entry}[2]{% + \outline{#1}% + \toks@\expandafter{% + \the\toks@ + \item[% + \href{file:#1.pdf}{\printpackage{#1}}% + \hfill + ]% + #2% + }% + \setlength{\maxlen}{% + \maxof{\maxlen}{\widthof{\printpackage{#1}}}% + }% + \global\maxlen\maxlen +} +\newcommand*{\printpackage}[1]{% + \textbf{\large #1:}% +} +\newcommand*{\outline}[1]{% + \pdfoutline + attr {/C[0 0 1]} + user {% + <<% + /S/GoToR% + /F(#1.pdf)% + /NewWindow true% + /D[0/XYZ null null null]% + >>% + }% + {[#1]}\relax +} +\renewcommand*{\maketitle}{% + \begingroup + \par + \centering + \bfseries + \LARGE + \@title + \par + \endgroup + \vspace{2em}% +} + +\providecommand*{\cs}[1]{% + \texttt{\textbackslash#1}% +} +\endinput diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/tools.tex b/Master/texmf-dist/source/latex/latex-tds/tex/tools.tex new file mode 100644 index 00000000000..777093c5b56 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/tex/tools.tex @@ -0,0 +1,111 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{tools.tex}% + [2006/08/28 Tools overview (HO)] +% Copyright 2006 Heiko Oberdiek +% +% This file is part of project `latex-tds'. +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Heiko Oberdiek. +% +% See `readme.txt' for a list of all files belonging to the +% project `latex-tds' and additional information. +% +\documentclass{tools-overview} +\begin{document} +\entry{afterpage}{% + Place text after the current page. +}% +\entry{array}{% + Extended versions of the environments array, tabular and tabular*. +}% +\entry{bm}{% + Access bold math symbols. +}% +\entry{calc}{% + Infix arithmetic expresions. Contributed to the distribution by + Kresten Krab Thorup and Frank Jensen. +}% +\entry{dcolumn}{% + Alignment on \emph{decimal points} in tabular entries. Requires array. +}% +\entry{delarray}{% + Adds \emph{large delimiters} around arrays. Requires array. +}% +\entry{enumerate}{% + Extended version of the enumerate environment. +}% +\entry{fileerr}{% + Suite of small files which may be used to control \TeX{}'s + missing file error loop. +}% +\entry{fontsmpl}{% + Package and test file for producing \emph{font samples} +}% +\entry{ftnright}{% + Place footnotes in the right hand column in two-column mode. +}% +\entry{hhline}{% + Finer control over horizontal rules in tables. Requires array. +}% +\entry{indentfirst}{% + Indent the first paragraph of sections etc. +}% +\entry{layout}{% + Produces an overview of the layout of the current document. +}% +\entry{longtable}{% + Multipage tables. (Does not require array, but uses the extended + features if both are loaded.) +}% +\entry{multicol}{% + Typeset text in columns, with the length of the final columns + \emph{balanced}. +}% +\entry{rawfonts}{% + Preload fonts under the old internal font names of \LaTeX{}2.09. + Not recomended for new packages, but may help when updating old + files. +}% +\entry{showkeys}{% + Draft mode showing the \emph{keys} used by \cs{label}, \cs{ref}, \cs{cite} etc. +}% +\entry{somedefs}{% + Selective handling of package options. (Used in rawfonts.sty.) +}% +\entry{tabularx}{% + Defines tabularx environment (similar to tabular*) but modifies + column widths, not inter-column space, to achieve a desired + table width. +}% +\entry{theorem}{% + Flexible definition of \emph{theorem-like} environments. +}% +\entry{trace}{% + The package helps to suppress and to control the amount of tracing + output (\cs{tracingall}) by taming calc and making NFSS less noisy. +}% +\entry{varioref}{% + \emph{Smart} handling of page references. +}% +\entry{verbatim}{% + Flexible version of verbatim environment. +}% +\entry{xr}{% + eXternall References. Extend \cs{ref} to access \cs{label} commands in + other documents. +}% +\entry{xspace}{% + Smart space command that avoids the common mistake of missing + spaces after command names. +}% +\end{document} diff --git a/Master/texmf-dist/tpm/latex-tds.tpm b/Master/texmf-dist/tpm/latex-tds.tpm new file mode 100644 index 00000000000..ccc7df58a54 --- /dev/null +++ b/Master/texmf-dist/tpm/latex-tds.tpm @@ -0,0 +1,50 @@ +<!DOCTYPE rdf:RDF SYSTEM "../../support/tpm.dtd"> +<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:TPM="http://texlive.dante.de/"> + <rdf:Description about="http://texlive.dante.de/texlive/Package/latex-tds.zip"> + <TPM:Name>latex-tds</TPM:Name> + <TPM:Type>Package</TPM:Type> + <TPM:Date>2006/08/28 09:49:33</TPM:Date> + <TPM:Version></TPM:Version> + <TPM:Creator>karl</TPM:Creator> + <TPM:Title>The latex-tds package.</TPM:Title> + <TPM:Description></TPM:Description> + <TPM:Author></TPM:Author> + <TPM:Size>144163</TPM:Size> + <TPM:Build/> + <TPM:RunFiles size="2290">texmf-dist/tpm/latex-tds.tpm</TPM:RunFiles> + <TPM:SourceFiles size="144163"> +texmf-dist/source/latex/latex-tds/build.pl +texmf-dist/source/latex/latex-tds/lib/adjust_checksum.pl +texmf-dist/source/latex/latex-tds/lib/ziptimetree.pl +texmf-dist/source/latex/latex-tds/license/lppl.txt +texmf-dist/source/latex/latex-tds/license/ziptimetree/lgpl.txt +texmf-dist/source/latex/latex-tds/patch/albanian.dtx.diff +texmf-dist/source/latex/latex-tds/patch/athnum.dtx.diff +texmf-dist/source/latex/latex-tds/patch/bbcompat.dtx.diff +texmf-dist/source/latex/latex-tds/patch/classes.dtx.diff +texmf-dist/source/latex/latex-tds/patch/finnish.dtx.diff +texmf-dist/source/latex/latex-tds/patch/frenchb.dtx.diff +texmf-dist/source/latex/latex-tds/patch/greek.ins.diff +texmf-dist/source/latex/latex-tds/readme.txt +texmf-dist/source/latex/latex-tds/tex/ams.drv +texmf-dist/source/latex/latex-tds/tex/babel.tex +texmf-dist/source/latex/latex-tds/tex/doc_lppl.tex +texmf-dist/source/latex/latex-tds/tex/docstrip.cfg +texmf-dist/source/latex/latex-tds/tex/errata.cfg +texmf-dist/source/latex/latex-tds/tex/greek-usage.tex +texmf-dist/source/latex/latex-tds/tex/hyperref.cfg +texmf-dist/source/latex/latex-tds/tex/ltnews.cfg +texmf-dist/source/latex/latex-tds/tex/ltnews.tex +texmf-dist/source/latex/latex-tds/tex/ltxcheck.drv +texmf-dist/source/latex/latex-tds/tex/ltxdoc.cfg +texmf-dist/source/latex/latex-tds/tex/ltxguide.cfg +texmf-dist/source/latex/latex-tds/tex/manual.cfg +texmf-dist/source/latex/latex-tds/tex/psnfss2e.drv +texmf-dist/source/latex/latex-tds/tex/tdsguide.cfg +texmf-dist/source/latex/latex-tds/tex/tools-overview.cls +texmf-dist/source/latex/latex-tds/tex/tools.tex + </TPM:SourceFiles> + <TPM:Provides>Package/latex-tds</TPM:Provides> + </rdf:Description> +</rdf:RDF> + diff --git a/Master/texmf/lists/latex-tds b/Master/texmf/lists/latex-tds new file mode 100644 index 00000000000..dd10c8748fc --- /dev/null +++ b/Master/texmf/lists/latex-tds @@ -0,0 +1,34 @@ + +texmf-dist/source/latex/latex-tds/build.pl +texmf-dist/source/latex/latex-tds/lib/adjust_checksum.pl +texmf-dist/source/latex/latex-tds/lib/ziptimetree.pl +texmf-dist/source/latex/latex-tds/license/lppl.txt +texmf-dist/source/latex/latex-tds/license/ziptimetree/lgpl.txt +texmf-dist/source/latex/latex-tds/patch/albanian.dtx.diff +texmf-dist/source/latex/latex-tds/patch/athnum.dtx.diff +texmf-dist/source/latex/latex-tds/patch/bbcompat.dtx.diff +texmf-dist/source/latex/latex-tds/patch/classes.dtx.diff +texmf-dist/source/latex/latex-tds/patch/finnish.dtx.diff +texmf-dist/source/latex/latex-tds/patch/frenchb.dtx.diff +texmf-dist/source/latex/latex-tds/patch/greek.ins.diff +texmf-dist/source/latex/latex-tds/readme.txt +texmf-dist/source/latex/latex-tds/tex/ams.drv +texmf-dist/source/latex/latex-tds/tex/babel.tex +texmf-dist/source/latex/latex-tds/tex/doc_lppl.tex +texmf-dist/source/latex/latex-tds/tex/docstrip.cfg +texmf-dist/source/latex/latex-tds/tex/errata.cfg +texmf-dist/source/latex/latex-tds/tex/greek-usage.tex +texmf-dist/source/latex/latex-tds/tex/hyperref.cfg +texmf-dist/source/latex/latex-tds/tex/ltnews.cfg +texmf-dist/source/latex/latex-tds/tex/ltnews.tex +texmf-dist/source/latex/latex-tds/tex/ltxcheck.drv +texmf-dist/source/latex/latex-tds/tex/ltxdoc.cfg +texmf-dist/source/latex/latex-tds/tex/ltxguide.cfg +texmf-dist/source/latex/latex-tds/tex/manual.cfg +texmf-dist/source/latex/latex-tds/tex/psnfss2e.drv +texmf-dist/source/latex/latex-tds/tex/tdsguide.cfg +texmf-dist/source/latex/latex-tds/tex/tools-overview.cls +texmf-dist/source/latex/latex-tds/tex/tools.tex +texmf-dist/tpm/latex-tds.tpm + +texmf/lists/latex-tds diff --git a/Master/texmf/tpm/collection-latexextra.tpm b/Master/texmf/tpm/collection-latexextra.tpm index 62be97b00e6..46b0d1ce9d4 100644 --- a/Master/texmf/tpm/collection-latexextra.tpm +++ b/Master/texmf/tpm/collection-latexextra.tpm @@ -229,6 +229,7 @@ A large collection of add-on packages for LaTeX. <TPM:Package name="labelcas"/> <TPM:Package name="labels"/> <TPM:Package name="lastpage"/> + <TPM:Package name="latex-tds"/> <TPM:Package name="layouts"/> <TPM:Package name="lazylist"/> <TPM:Package name="lcd"/> |