From 2125a86eba3cf35f08061f8dac148adcf033c852 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 27 Feb 2013 00:31:25 +0000 Subject: latex-tds (26feb13) git-svn-id: svn://tug.org/texlive/trunk@29237 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/latex-tds/README | 617 ------------------ .../source/latex/latex-tds/README.asciidoc | 689 +++++++++++++++++++++ Master/texmf-dist/source/latex/latex-tds/build.pl | 115 +++- .../source/latex/latex-tds/patch/lb2.err.diff | 19 - 4 files changed, 790 insertions(+), 650 deletions(-) delete mode 100644 Master/texmf-dist/source/latex/latex-tds/README create mode 100644 Master/texmf-dist/source/latex/latex-tds/README.asciidoc delete mode 100644 Master/texmf-dist/source/latex/latex-tds/patch/lb2.err.diff (limited to 'Master/texmf-dist/source/latex/latex-tds') diff --git a/Master/texmf-dist/source/latex/latex-tds/README b/Master/texmf-dist/source/latex/latex-tds/README deleted file mode 100644 index 5dc9d59f03b..00000000000 --- a/Master/texmf-dist/source/latex/latex-tds/README +++ /dev/null @@ -1,617 +0,0 @@ -README for project latex-tds, 2013/02/15 - -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 - CTAN:macros/latex/doc.zip - http://www.latex-project.org/guides/lb2.err - http://www.latex-project.org/guides/lgc2.err - http://www.latex-project.org/guides/manual.err - http://www.latex-project.org/guides/tlc2.err -* tools CTAN:macros/latex/required/tools.zip -* cyrillic CTAN:macros/latex/required/cyrillic.zip -* amslatex CTAN:install/macros/latex/required/amscls.tds.zip - CTAN:macros/latex/contrib/amsrefs.zip - CTAN:macros/latex/required/amslatex.zip - ftp://ftp.ams.org/pub/tex/amslatex.zip - ftp://ftp.ams.org/pub/tex/amsrefs/amsrefs.zip - ftp://ftp.ams.org/pub/tex/amscls.zip - ftp://ftp.ams.org/pub/tex/amsmath.zip -* amsfonts CTAN:install/fonts/amsfonts.tds.zip -* psnfss CTAN:macros/latex/required/psnfss.zip -* babel CTAN:macros/latex/required/babel.zip -* tds CTAN:tds.zip -* knuth CTAN:systems/knuth/dist/errata.zip - CTAN:systems/knuth/dist/etc.zip - CTAN:systems/knuth/dist/mfware.zip - CTAN:systems/knuth/dist/texware.zip - CTAN:systems/knuth/dist/web.zip - CTAN:systems/knuth/dist/tex.zip - CTAN:systems/knuth/dist/mf.zip -* etex CTAN:systems/e-tex/v2.1/etex_doc.zip - -Author ------- -Heiko Oberdiek - -Home ----- -CTAN home with distribution files: - CTAN:macros/latex/contrib/latex-tds/ - -Source repository: - https://github.com/oberdiek/latex-tds - - -C. DOWNLOAD -=========== - -The home of the project is located at: - CTAN:macros/latex/contrib/latex-tds/ - -The following files can be downloaded: -* README (this file) -* The module distribution files, see the module list above - for the available modules, e.g: - base.tds.zip - tools.tds.zip - ... -* The sources, mainly the build script, configuration and - driver files, and patches: - source.tds.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.tds.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-2011 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 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/ltugboat.cls setup for class ltugboat - tex/lualatex-tds.ini init file for format generation for LuaTeX - tex/lualatex-tds2.ini init file for LuaTeX format without LM Math - tex/manual.cfg setup for errata list of the LaTeX manual - in latex/base - tex/pdflatex-tds.ini init file for format generation for pdfTeX - 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/errata.all doc driver for knuth/errata/errata.pdf - tex/errata.drv doc driver for knuth/errata/errata_*.pdf - tex/errorlog.drv doc driver for knuth/errata/errorlog.tex - tex/etex_man.drv doc driver for etex/etex_man.tex - tex/greek-usage.tex doc driver with patches for babel/usage.tex - tex/knuth.drv doc driver for knuth/{texware,mfware,etc}/*.web - 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/amsclass.dtx.diff patch for amslatex/amsclass.dtx - patch/amsfndoc.def.diff patch for amsfonts/amsfndoc.def - patch/amsfndoc.tex.diff patch for amsfonts/amsfndoc.tex - patch/amsldoc.tex.diff patch for amslatex/amsldoc.tex - patch/changes.tex.diff patch for amslatex/amsrefs/changes.tex - patch/encguide.tex.diff patch for base/encguide.tex - patch/hebrew.fdd.diff patch for babel/hebrew.fdd - patch/lb2.err.diff patch for base/lb2.err - patch/logmac.tex.diff patch for knuth/errata/logmac.tex - patch/source2e.tex.diff patch for base/source2e.tex - patch/tlc2.err.diff patch for base/tlc2.err - patch/tripman.tex.diff patch for knuth/tex/tripman.tex - patch/trapman.tex.diff patch for knuth/mf/trapman.tex - patch/utf8ienc.dtx.diff patch for base/utf8ienc.dtx - patch/webman.tex.diff patch for knuth/web/webman.tex - - -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. -* Patch for ltfssdcl.dtx: Checksum fixed. -* ... - -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). -* ... - -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). -* ... - -Knuth ------ -* Current used CTAN -> TDS mapping: - CTAN:systems/knuth/dist --> TDS:/knuth -* Unsure where to put trip/trap files. Currently they are - put in TDS:source, because the documentation files - (tripman.pdf, trapman.pdf) are in TDS:doc. They lists the - trip/trap files already. -* Not covered is - CTAN:systems/knuth/dist/lib/ - In TeX Live 2007/2008 the files are installed at different - locations: - texmf-dist/fonts/source/public/mflogo/logo10.mf - texmf-dist/fonts/source/public/mflogo/logo8.mf - texmf-dist/fonts/source/public/mflogo/logo9.mf - texmf-dist/fonts/source/public/mflogo/logobf10.mf - texmf-dist/fonts/source/public/mflogo/logo.mf - texmf-dist/fonts/source/public/mflogo/logosl10.mf - texmf-dist/fonts/source/public/misc/grayf.mf - texmf-dist/fonts/source/public/misc/manfnt.mf - texmf-dist/fonts/source/public/misc/slant.mf - texmf-dist/metafont/base/expr.mf - texmf-dist/metafont/base/io.mf - texmf-dist/metafont/base/null.mf - texmf-dist/metafont/base/plain.mf - texmf-dist/metafont/misc/3test.mf - texmf-dist/metafont/misc/6test.mf - texmf-dist/metafont/misc/rtest.mf - texmf-dist/metafont/misc/test.mf - texmf-dist/metafont/misc/waits.mf - texmf-dist/metafont/misc/ztest.mf - texmf-dist/mft/base/cmbase.mft - texmf-dist/mft/base/plain.mft - texmf-dist/tex/generic/misc/null.tex - texmf-dist/tex/plain/base/manmac.tex - texmf-dist/tex/plain/base/mftmac.tex - texmf-dist/tex/plain/base/plain.tex - texmf-dist/tex/plain/base/story.tex - texmf-dist/tex/plain/base/testfont.tex - texmf-dist/tex/plain/base/webmac.tex - texmf/tex/generic/hyphen/hyphen.tex - -e-TeX ------ -* Only the manual `etex_man' is covered by this module. - - -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: LuaTeX and pdfTeX (>= 1.30). -* An up-to-date LaTeX installation, at least TeX Live 2012. -* Additional packages can be necessary, e.g. - CTAN:language/armenian/armtex.zip is not in TeX Live 2012. -* Most of the PDF files are generated using lualatex and package - `fontspec' that uses the Latin Modern fonts as default. They - are available as OpenType fonts. LuaTeX generates with OpenType - fonts considerably smaller PDF files. Also PDF object stream - compression is used (PDF 1.5). Therefore the further - post-processing of PDF files are currently dropped. -* (Outdated since 2011-07-01) 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/. -2006/12/27 - * Fix of ltxguide.cfg that had loaded doc.sty that disturbs the - verbatim stuff in fntguide.tex. -2007/01/08 - * Fix for documentation of longtable. -2007/03/19 - * Patch for babel/latin.dtx added (babel/3922). -2007/09/04 - * A minor update on CTAN regarding babel: - iahyphen.tex, icehyph.tex, and lahyph.tex are now symbolic links - to their location in CTAN:language/hyphenation/. Therefore also - lahyph.tex is now installed in TDS:tex/generic/hyphen/. -2007/10/18 - * Update of module amslatex because of updated package amsrefs. - * Fix in latin.dtx.diff. -2007/10/24 - * Update of babel. - * Update of amsrefs (TDS:tex/latex/amscls -> TDS:tex/latex/amsrefs). -2008/04/01 - * Update of babel (2008/03/17). -2008/04/02 - * Fix: latex/base/*.err added to TDS:source/latex/base/. -2008/04/05 - * Using .tds.zip instead of .zip to follow CTAN:install's naming - conventions. -2008/06/28 - * Update of babel (2008/06/01). - * Babel documentation: table of contents reformatted. -2008/07/07 - * Update of babel (2008/07/06). -2008/07/10 - * Module knuth added. - * Update of babel (2008/07/07). -2008/07/11 - * Fixes and additions for module knuth. -2008/07/25 - * Module amslatex: instr-l.tex vanished from CTAN (but not at AMS side). - * Some unwanted spaces in generated PDF files fixed. - (Caused by a wrong package file that was found on my system first.) -2008/08/10 - * Module latex3 added. - * Module base: CTAN hyperlinks fixed. - * Module amslatex: Outdated URL fixed in amsldoc.tex. - * Module babel: Problem with already defined \meta in tb1604.tex fixed. -2008/09/06 - * Module base: - * Using uptodate versions from LaTeX project page for errata lists. - * lgc2.err added (LaTeX Graphics Companion, 2. ed.). - * Various fixes in errata lists. - * Module tools/array.dtx: documentation fixed (tools/4044). -2008/09/10 - * Module base: Missing title date for utf8ienc.pdf fixed. -2009/09/05 - * Module amslatex: updated. - * Module latex3: xpackages updated. - * Module latex3: expl3 removed, because nothing to do. -2009/09/25 - * Module amslatex: updated. - * Module babel: updated. - * Update of LaTeX, release 2009/09/24. -2009/12/07 - * Module amslatex: Unhappily the .zip files are quite a mess, - because they contain a mixup of old and new versions. - Tried to sort this out and fix the last update. - * Module latex3: xpackages removed, because nothing to do. - * Module latex3 removed, nothing left to do. -2010/05/04 - * Module base: page layout for source2e fixed (changes, index). - * Module base: update of .err files. -2010/10/27 - * Module amslatex: amscls and amsrefs updated. - * Module etex added (only for etex_man). - * Erratas updated. -2011/03/10 - * Module base: patch for latex/4148 (Missing \label and \ref in lppl.tex'') -2011/04/18 - * Module amslatex: There is an outdated version of amsthm.sty in - CTAN:install/macros/latex/required/amslatex/amscls.tds.zip. - The package amsthm.sty is now generated from the source. - * Using TDS tree for missing packages that are not part of TeX Live. - Module base: CTAN:language/armenian/armtex.zip -2011/06/24 - * Module amslatex: Two downloads from AMS server removed, because - the files are not longer available (and they are on CTAN). - * Module amslatex: 00readme.txt and amsrefs.dtx taken from - CTAN:macros/latex/contrib/amsrefs.zip instead of - CTAN:install/macros/latex/contrib/amsrefs.tds.zip because - the later archive file is out of sync. -2011/06/30 - * Module base: - * Update of LaTeX, release 2011/06/27. - * Patch ltpatch.ltx to match the kernel version. - * Patch lppl.tex.diff removed (no longer needed). - * Patch ltfssdcl.dtx.diff added (checksum fixed). - * Module tools: Release 2011/06. - * Module babel: Release 2011/06. -2011/07/01 - * PDF generation: - * Use of LuaTeX instead of pdfTeX for most of the files. - * Use of package `fontspec' with Latin Modern fonts as - default in OpenType format (smaller PDF file sizes). - The post-processing of PDF files is skipped. - * Various patches and fixes for LuaLaTeX and package `fontspec'. - * Module base: - * Update of LaTeX. - * Patches ltpatch.ltx.diff and ltfssdcl.dtx.diff removed - (no longer needed). - * Module tools: Update. -2011/07/03 - * build.pl: - * Caching for PDF generation added. - * `FINAL' markers in the output of build.pl - for final (Lua|pdf)TeX runs. -2011/07/26 - * PDF generation: Use of package unicode-math with Latin Modern Math - where possible. -2011/08/10 - * Update of tools. -2011/10/05 - * Update of tools (varioref). -2011/11/16 - * Update of babel. -2012/05/12 - * Update of amslatex (amsrefs). - * Update of readme.txt that is renamed to README (CTAN convention). - * Update of tlc2.err. -2013/02/14 - * Update of amslatex (amsrefs). - * Module amslatex: cite-x*.tex, jb.bib in TDS:source/, because - these files are now classified as test files. - * Module base: lb2.err and tlc2.err updated. - * Change in version control system from CVS to git with public - source repository. -2013/02/15 - * Module amsfonts added. diff --git a/Master/texmf-dist/source/latex/latex-tds/README.asciidoc b/Master/texmf-dist/source/latex/latex-tds/README.asciidoc new file mode 100644 index 00000000000..1c76ff763d9 --- /dev/null +++ b/Master/texmf-dist/source/latex/latex-tds/README.asciidoc @@ -0,0 +1,689 @@ +README for project latex-tds +============================ +:author: Heiko Oberdiek +:revdate: 2013/02/26 +:lang: en +:toc: +:numbered: +:ctan: http://mirror.ctan.org/ + +// This file is formatted in the text document format AsciiDoc. + + +Project latex-tds +----------------- + +Version: {revdate} + +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 are not 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 do not 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[CTAN:macros/latex/base.zip] + + {ctan}macros/latex/doc.zip[CTAN:macros/latex/doc.zip] + + http://www.latex-project.org/guides/lb2.err + + http://www.latex-project.org/guides/lgc2.err + + http://www.latex-project.org/guides/manual.err + + http://www.latex-project.org/guides/tlc2.err + + +*tools*:: + {ctan}macros/latex/required/tools[CTAN:macros/latex/required/tools.zip] + +*cyrillic*:: + {ctan}macros/latex/required/cyrillic.zip[CTAN:macros/latex/required/cyrillic.zip] + +*amslatex*:: + {ctan}install/macros/latex/required/amslatex/amscls.tds.zip[CTAN:install/macros/latex/required/amslatex/amscls.tds.zip] + + {ctan}install/macros/latex/required/amslatex/math.tds.zip[CTAN:install/macros/latex/required/amslatex/math.tds.zip] + + {ctan}macros/latex/contrib/amsrefs.zip[CTAN:macros/latex/contrib/amsrefs.zip] + + {ctan}macros/latex/required/amslatex.zip[CTAN:macros/latex/required/amslatex.zip] + + ftp://ftp.ams.org/pub/tex/amsrefs/amsrefs.zip + + ftp://ftp.ams.org/pub/tex/amscls.zip + + ftp://ftp.ams.org/pub/tex/amsmath.zip +*amsfonts*:: + {ctan}install/fonts/amsfonts.tds.zip[CTAN:install/fonts/amsfonts.tds.zip] +*psnfss*:: + {ctan}macros/latex/required/psnfss.zip[CTAN:macros/latex/required/psnfss.zip] +*babel*:: + {ctan}macros/latex/required/babel.zip[CTAN:macros/latex/required/babel.zip] +*tds*:: + {ctan}tds.zip[CTAN:tds.zip] +*knuth*:: + {ctan}systems/knuth/dist/errata.zip[CTAN:systems/knuth/dist/errata.zip] + + {ctan}systems/knuth/dist/etc.zip[CTAN:systems/knuth/dist/etc.zip] + + {ctan}systems/knuth/dist/mfware.zip[CTAN:systems/knuth/dist/mfware.zip] + + {ctan}systems/knuth/dist/texware.zip[CTAN:systems/knuth/dist/texware.zip] + + {ctan}systems/knuth/dist/web.zip[CTAN:systems/knuth/dist/web.zip] + + {ctan}systems/knuth/dist/tex.zip[CTAN:systems/knuth/dist/tex.zip] + + {ctan}systems/knuth/dist/mf.zip[CTAN:systems/knuth/dist/mf.zip] +*etex*:: + {ctan}systems/e-tex/v2.1/etex_doc.zip[CTAN:systems/e-tex/v2.1/etex_doc.zip] + +Author +~~~~~~ +{author} + +Home +~~~~ +CTAN home with distribution files: +____ +{ctan}macros/latex/contrib/latex-tds/[CTAN:macros/latex/contrib/latex-tds/] +____ + +Source repository (without distribution files): +____ +https://github.com/oberdiek/latex-tds +____ + + +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 + +{ctan}+. +latex-tds:: + The name of this project. +TDS:: + TeX Directory Structure. + + FAQ entry: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tds + + Specification: http://www.ctan.org/pkg/tds + + +Download +-------- + +The home of the project is located at: +____ +{ctan}/macros/latex/contrib/latex-tds/[CTAN:macros/latex/contrib/latex-tds/] +____ + +The following files can be downloaded: + +* +README+, +README.html+, +README.pdf+: + The README file in different formats. + +* +.tds.zip+: The module distribution files, + see section `<<_module_list,Module list>>' above + for the available modules. + +* +source.tds.zip+: The sources, mainly the build script, configuration and + driver files, and patches. + Some of the used tools are not provided, see section + `<<_build_hints, Build Hints>>'. + +* +latex-tds.tds.zip+: The universe, the contents of all the ZIP files above, + merged together. + +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 file 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. +-- + +Module base +^^^^^^^^^^^ + * The default +texsys.cfg+ that LaTeX provides is put + into +TDS:tex/latex/base+. It must be removed, if you need + a specialized version. Consult your TeX distribution + and +TDS: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). + +Module babel +^^^^^^^^^^^^ + * Most hyphenation patterns are not provided here. Usually you can + find them somewhere below {ctan}language/hyphenation/[CTAN:language/hyphenation/]. + * Language configuration (+language.dat+), see the documentation of + your TeX distribution. + * Formats need rebuilding. + +Module psnfss +^^^^^^^^^^^^^ + * The map files need further configuring (e.g., updmap). + +Module graphics +^^^^^^^^^^^^^^^ + * Module graphics does not provide all driver files, because some are + developed independently (+pdftex.def+, ...). + + +Copyright, License +------------------ + +Copyright (C) 2006-2013 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, Manifest>>' for a list of all files +belonging to the project `latex-tds'. + + +Manifest +-------- + +Included are the projects `adjust_checksum' and `ziptimetree'. +They are projects of their own. + +Documentation +~~~~~~~~~~~~~ +[cols=".3literal,.7", frame="topbot", grid="rows"] +|=== +|README |this file +|=== + +Licenses +~~~~~~~~ +[cols=".3literal,.7", frame="topbot", grid="rows"] +|=== +|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 +~~~~~~~ +[cols=".3literal,.7", frame="topbot", grid="rows"] +|=== +|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 +~~~~~~~~~~~~~ +[cols=".3literal,.7", frame="topbot", grid="rows"] +|=== +|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/ltugboat.cls |setup for class ltugboat +|tex/lualatex-tds.ini |init file for format generation for LuaTeX +|tex/lualatex-tds2.ini |init file for LuaTeX format without LM Math +|tex/manual.cfg |setup for errata list of the LaTeX manual + in latex/base +|tex/pdflatex-tds.ini |init file for format generation for pdfTeX +|tex/tdsguide.cfg |setup for class +tdsguide.cls+ +|=== + +Documentation driver +~~~~~~~~~~~~~~~~~~~~ +[cols="1*.3literal,1*.7", frame="topbot", grid="rows"] +|=== +|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/errata.all |doc driver for +knuth/errata/errata.pdf+ +|tex/errata.drv |doc driver for +knuth/errata/errata_*.pdf+ +|tex/errorlog.drv |doc driver for +knuth/errata/errorlog.tex+ +|tex/etex_man.drv |doc driver for +etex/etex_man.tex+ +|tex/greek-usage.tex |doc driver with patches for +babel/usage.tex+ +|tex/knuth.drv |doc driver for +knuth/+{+texware+,+mfware+,+etc+}+/*.web+ +|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 +~~~~~~~ +[cols=".3l,.7l", options="header", frame="topbot", grid="rows"] +|=== +|Diff/patch file|Patched file +|patch/amsclass.dtx.diff |amslatex/amsclass.dtx +|patch/amsfndoc.def.diff |amsfonts/amsfndoc.def +|patch/amsfndoc.tex.diff |amsfonts/amsfndoc.tex +|patch/amsldoc.tex.diff |amslatex/amsldoc.tex +|patch/changes.tex.diff |amslatex/amsrefs/changes.tex +|patch/encguide.tex.diff |base/encguide.tex +|patch/hebrew.fdd.diff |babel/hebrew.fdd +|patch/logmac.tex.diff |knuth/errata/logmac.tex +|patch/source2e.tex.diff |base/source2e.tex +|patch/tlc2.err.diff |base/tlc2.err +|patch/tripman.tex.diff |knuth/tex/tripman.tex +|patch/trapman.tex.diff |knuth/mf/trapman.tex +|patch/utf8ienc.dtx.diff |base/utf8ienc.dtx +|patch/webman.tex.diff |knuth/web/webman.tex +|=== + + +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.) +* ... + + +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. +* Patch for +ltfssdcl.dtx+: Checksum fixed. +* ... + +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+). +* ... + +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 these 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). +* ... +-- + +Knuth +~~~~~ +* Current CTAN -> TDS mapping in use: + +CTAN:systems/knuth/dist+ -> +TDS:/knuth+ +* Unsure where to put trip/trap files. Currently they are + put in +TDS:source+, because the documentation files + (+tripman.pdf+, +trapman.pdf+) are in +TDS:doc+. They lists the + trip/trap files already. +* Not covered is + {ctan}systems/knuth/dist/lib/[CTAN:systems/knuth/dist/lib/] + In TeX Live 2007/2008 the files are installed at different + locations: ++ + texmf-dist/fonts/source/public/mflogo/logo10.mf + texmf-dist/fonts/source/public/mflogo/logo8.mf + texmf-dist/fonts/source/public/mflogo/logo9.mf + texmf-dist/fonts/source/public/mflogo/logobf10.mf + texmf-dist/fonts/source/public/mflogo/logo.mf + texmf-dist/fonts/source/public/mflogo/logosl10.mf + texmf-dist/fonts/source/public/misc/grayf.mf + texmf-dist/fonts/source/public/misc/manfnt.mf + texmf-dist/fonts/source/public/misc/slant.mf + texmf-dist/metafont/base/expr.mf + texmf-dist/metafont/base/io.mf + texmf-dist/metafont/base/null.mf + texmf-dist/metafont/base/plain.mf + texmf-dist/metafont/misc/3test.mf + texmf-dist/metafont/misc/6test.mf + texmf-dist/metafont/misc/rtest.mf + texmf-dist/metafont/misc/test.mf + texmf-dist/metafont/misc/waits.mf + texmf-dist/metafont/misc/ztest.mf + texmf-dist/mft/base/cmbase.mft + texmf-dist/mft/base/plain.mft + texmf-dist/tex/generic/misc/null.tex + texmf-dist/tex/plain/base/manmac.tex + texmf-dist/tex/plain/base/mftmac.tex + texmf-dist/tex/plain/base/plain.tex + texmf-dist/tex/plain/base/story.tex + texmf-dist/tex/plain/base/testfont.tex + texmf-dist/tex/plain/base/webmac.tex + texmf/tex/generic/hyphen/hyphen.tex + +e-TeX +~~~~~ +* Only the manual `etex_man' is covered by this module. + + +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: LuaTeX and pdfTeX (≥ 1.30). +* An up-to-date LaTeX installation, at least TeX Live 2012. +* Additional packages can be necessary, e.g. + {ctan}language/armenian/armtex.zip[CTAN:language/armenian/armtex.zip] + is not part of TeX Live 2012. +* Most of the PDF files are generated using lualatex and package + `fontspec' that uses the Latin Modern fonts as default. They + are available as OpenType fonts. LuaTeX generates with OpenType + fonts considerably smaller PDF files. Also PDF object stream + compression is used (PDF 1.5). Therefore the further + post-processing of PDF files are currently dropped. +* (Outdated since 2011-07-01) PDF post-processing, I have used two steps: ++ +-- + 1. First step: + 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://pdfbox.apache.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. + + +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/[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/+. +2006/12/27:: + * Fix of +ltxguide.cfg+ that had loaded doc.sty that disturbs the + verbatim stuff in +fntguide.tex+. +2007/01/08:: + * Fix for documentation of longtable. +2007/03/19:: + * Patch for +babel/latin.dtx+ added (babel/3922). +2007/09/04:: + * A minor update on CTAN regarding babel: + +iahyphen.tex+, +icehyph.tex+, and +lahyph.tex+ are now symbolic links + to their location in {ctan}language/hyphenation/[CTAN:language/hyphenation/]. + Therefore also + +lahyph.tex+ is now installed in +TDS:tex/generic/hyphen/+. +2007/10/18:: + * Update of module amslatex because of updated package amsrefs. + * Fix in +latin.dtx.diff+. +2007/10/24:: + * Update of babel. + * Update of amsrefs (+TDS:tex/latex/amscls+ -> +TDS:tex/latex/amsrefs+). +2008/04/01:: + * Update of babel (2008/03/17). +2008/04/02:: + * Fix: +latex/base/*.err+ added to +TDS:source/latex/base/+. +2008/04/05:: + * Using +.tds.zip+ instead of .zip to follow +CTAN:install+'s naming + conventions. +2008/06/28:: + * Update of babel (2008/06/01). + * Babel documentation: table of contents reformatted. +2008/07/07:: + * Update of babel (2008/07/06). +2008/07/10:: + * Module knuth added. + * Update of babel (2008/07/07). +2008/07/11:: + * Fixes and additions for module knuth. +2008/07/25:: + * Module amslatex: +instr-l.tex+ vanished from CTAN (but not at AMS side). + * Some unwanted spaces in generated PDF files fixed. + (Caused by a wrong package file that was found on my system first.) +2008/08/10:: + * Module latex3 added. + * Module base: CTAN hyperlinks fixed. + * Module amslatex: Outdated URL fixed in +amsldoc.tex+. + * Module babel: Problem with already defined +\meta+ in +tb1604.tex+ fixed. +2008/09/06:: + * Module base: + - Using uptodate versions from LaTeX project page for errata lists. + - +lgc2.err+ added (LaTeX Graphics Companion, 2. ed.). + - Various fixes in errata lists. + * Module tools: +array.dtx+: documentation fixed (tools/4044). +2008/09/10:: + * Module base: Missing title date for utf8ienc.pdf fixed. +2009/09/05:: + * Module amslatex: updated. + * Module latex3: xpackages updated. + * Module latex3: expl3 removed, because nothing to do. +2009/09/25:: + * Module amslatex: updated. + * Module babel: updated. + * Update of LaTeX, release 2009/09/24. +2009/12/07:: + * Module amslatex: Unhappily the +.zip+ files are quite a mess, + because they contain a mixup of old and new versions. + Tried to sort this out and fix the last update. + * Module latex3: xpackages removed, because nothing to do. + * Module latex3 removed, nothing left to do. +2010/05/04:: + * Module base: page layout for source2e fixed (changes, index). + * Module base: update of +.err+ files. +2010/10/27:: + * Module amslatex: amscls and amsrefs updated. + * Module etex added (only for etex_man). + * Erratas updated. +2011/03/10:: + * Module base: patch for latex/4148 (Missing +\label+ and +\ref+ in +lppl.tex+). +2011/04/18:: + * Module amslatex: There is an outdated version of amsthm.sty in + {ctan}install/macros/latex/required/amslatex/amscls.tds.zip[CTAN:install/macros/latex/required/amslatex/amscls.tds.zip]. + The package +amsthm.sty+ is now generated from the source. + * Using TDS tree for missing packages that are not part of TeX Live. + Module base: {ctan}language/armenian/armtex.zip[CTAN:language/armenian/armtex.zip]. +2011/06/24:: + * Module amslatex: Two downloads from AMS server removed, because + the files are not longer available (and they are on CTAN). + * Module amslatex: 00readme.txt and amsrefs.dtx taken from + {ctan}macros/latex/contrib/amsrefs.zip[CTAN:macros/latex/contrib/amsrefs.zip] instead of + {ctan}install/macros/latex/contrib/amsrefs.tds.zip[CTAN:install/macros/latex/contrib/amsrefs.tds.zip] + because the later archive file is out of sync. +2011/06/30:: + * Module base: + - Update of LaTeX, release 2011/06/27. + - Patch +ltpatch.ltx+ to match the kernel version. + - Patch +lppl.tex.diff+ removed (no longer needed). + - Patch +ltfssdcl.dtx.diff+ added (checksum fixed). + * Module tools: Release 2011/06. + * Module babel: Release 2011/06. +2011/07/01:: + * PDF generation: + - Use of LuaTeX instead of pdfTeX for most of the files. + - Use of package `fontspec' with Latin Modern fonts as + default in OpenType format (smaller PDF file sizes). + The post-processing of PDF files is skipped. + - Various patches and fixes for LuaLaTeX and package `fontspec'. + * Module base: + - Update of LaTeX. + - Patches +ltpatch.ltx.diff+ and +ltfssdcl.dtx.diff+ removed + (no longer needed). + * Module tools: Update. +2011/07/03:: + * build.pl: + - Caching for PDF generation added. + - `FINAL' markers in the output of +build.pl+ + for final (Lua|pdf)TeX runs. +2011/07/26:: + * PDF generation: Use of package unicode-math with Latin Modern Math + where possible. +2011/08/10:: + * Update of tools. +2011/10/05:: + * Update of tools (varioref). +2011/11/16:: + * Update of babel. +2012/05/12:: + * Update of amslatex (amsrefs). + * Update of +readme.txt+ that is renamed to +README+ (CTAN convention). + * Update of +tlc2.err+. +2013/02/14:: + * Update of amslatex (amsrefs). + * Module amslatex: +cite-x*.tex+, +jb.bib+ in +TDS:source/+, because + these files are now classified as test files. + * Module base: +lb2.err+ and +tlc2.err+ updated. + * Change in version control system from CVS to git with public + source repository. +2013/02/15:: + * Module amsfonts added. +2013/02/25:: + * Patch file +lb2.err.diff+ removed by call of sed inside +build.pl+. + * +README+ rewritten in text document format http://www.methods.co.nz/asciidoc/[AsciiDoc] + and added as HTML and PDF files. + * +README.asciidoc+ updated. + * +Makefile+: Target `check-links' added. +2013/02/26:: + * +README+ generated from +README.asciidoc+ via +README.html+. diff --git a/Master/texmf-dist/source/latex/latex-tds/build.pl b/Master/texmf-dist/source/latex/latex-tds/build.pl index d1ff6b4bae7..3f18b34a211 100755 --- a/Master/texmf-dist/source/latex/latex-tds/build.pl +++ b/Master/texmf-dist/source/latex/latex-tds/build.pl @@ -4,8 +4,8 @@ $^W=1; my $prj = 'latex-tds'; my $file = 'build.pl'; -my $version = '1.175'; -my $date = '2014-02-15'; +my $version = '1.178'; +my $date = '2013-02-26'; my $author = 'Heiko Oberdiek'; my $copyright = "Copyright 2006-2013 $author"; chomp(my $license = <<"END_LICENSE"); @@ -56,10 +56,10 @@ my @pkg_list = ( ); my $zip_comment = <<'END_ZIP_COMMENT'; -************************************************* -* This file is part of project 'latex-tds', see * -* CTAN:macros/latex/contrib/latex-tds/README * -************************************************* +*************************************************** +* This file is part of project 'latex-tds', see * +* CTAN:macros/latex/contrib/latex-tds/README.html * +*************************************************** END_ZIP_COMMENT my $error = "!!! Error:"; @@ -89,9 +89,10 @@ my $file_ctan_distrib = "$cwd/$prj.zip"; my $file_ziptimetree = get_perl_script('ziptimetree'); my $file_adjust_checksum = get_perl_script('adjust_checksum'); +my $prg_asciidoc = 'asciidoc'; +my $prg_bibtex = 'bibtex'; my $prg_checksum = $file_adjust_checksum; -my $prg_bibtex = "bibtex"; -my $prg_chmod = "chmod"; +my $prg_chmod = 'chmod'; my $prg_cp = 'cp -p'; my $prg_curl = 'curl'; my $prg_docstrip = 'tex -shell-escape'; @@ -105,7 +106,8 @@ my $prg_ls = "ls"; my $prg_makeindex = 'makeindex'; my $prg_mkdir = 'mkdir'; my $prg_mv = 'mv'; -my $prg_patch = "patch"; +my $prg_patch = 'patch'; +my $prg_lowriter = 'lowriter'; my $prg_lualatex = 'lualatex'; my $prg_lualatextds = "lualatex -fmt=$cwd/$dir_build/lualatex-tds"; my $prg_lualatextds2 = "lualatex -fmt=$cwd/$dir_build/lualatex-tds2"; @@ -119,6 +121,7 @@ my $prg_sed = "sed"; my $prg_sort = "sort"; my $prg_texhash = "texhash"; my $prg_unzip = 'unzip'; +my $prg_w3m = 'w3m'; my $prg_weave = 'weave'; my $prg_wget = 'wget'; my $prg_zip = 'zip'; @@ -632,10 +635,16 @@ section('Patches after source install'); chdir $cwd; patch('base/encguide.tex'); - patch('base/lb2.err'); patch('base/source2e.tex'); patch('base/tlc2.err'); patch('base/utf8ienc.dtx'); + # lb2.err contains line endings, a patch file + # created by diff in Linux would create mixed line endings + # causing trouble for subversion (Karl Berry). + # Therefore the percent character is inserted by sed. + run("$prg_sed -i -e '" + . 's/\\\\usepackage\[latin1]{inputenc}/%\\\\usepackage[latin1]{inputenc}/' + . "' $dir_build/base/lb2.err"); run("$prg_recode latin1..utf8 $dir_build/base/lb2.err"); } @@ -1793,13 +1802,86 @@ if ($modules{'etex'}) { if ($modules{'source'}) { section('Module source'); - my $dir_dest = "$dir_build/source/texmf/source/latex/latex-tds"; + my $dir_build_source = "$dir_build/source"; + my $dir_dest = "$dir_build_source/texmf/source/latex/latex-tds"; + my $dir_doc = "$dir_build_source/texmf/doc/latex/latex-tds"; my $dir_scripts = "$dir_build/source/texmf/scripts"; + my $file_readme = 'README'; + my $file_readme_html = 'README.html'; + my $file_readme_pdf = 'README.pdf'; + my $file_readme_notoc_html = "$dir_build_source/README-notoc.html"; + my $file_readme_w3m_txt = "$dir_build_source/README-w3m.txt"; + + ensure_directory($dir_build_source); + + # generate README.html + run("$prg_asciidoc --backend=xhtml11 README.asciidoc"); + + # generate README.pdf + run("$prg_asciidoc --out-file=$file_readme_notoc_html" + . " --backend=xhtml11" + . " -a disable-javascript" + . " -a toc!" + . " README.asciidoc" + ); + run("$prg_lowriter --invisible --convert-to odt " + . "--outdir $dir_build_source $file_readme_notoc_html"); + run("$prg_lowriter --invisible --convert-to pdf " + . "--outdir $dir_build_source $dir_build_source/README-notoc.odt"); + run("$prg_cp -p $dir_build_source/README-notoc.pdf $file_readme_pdf"); + + # run("$prg_cp -p README.asciidoc $dir_build_source/README"); + run("$prg_w3m -dump README.html>$file_readme_w3m_txt"); + my @lines_pre; + my @lines_toc; + my @lines_post; + my $state = 'pre'; + open(IN, '<', $file_readme_w3m_txt) + or die "$error Cannot open `$file_readme_w3m_txt'!\n"; + while () { + if (/^README for project/) { + push @lines_pre, '=' x (length($_) - 1) . "\n"; + push @lines_pre, $_; + push @lines_pre, '=' x (length($_) - 1) . "\n"; + next; + } + if (/^Table of Contents/i) { + push @lines_pre, "\n"; + push @lines_pre, "\n"; + push @lines_pre, $_; + push @lines_pre, '=' x (length($_)-1) . "\n"; + next; + } + if (/^(\d+)\.(\d+\.)? /) { + push @lines_post, "\n" unless $2; + push @lines_post, $_; + push @lines_post, ($2 ? '-' : '=') x length($_) . "\n"; + my $prefix = ' ' x (3 * ($2 ? 2 : 1)); + s/^(\d+)\.(\d+\.)? /($1<10 ? ' ' : '') . "$1.$2 "/e; + push @lines_toc, "$prefix$_"; + next; + } + if (/^JavaScript must be enabled/) { + $state = 'post'; + next; + } + if ($state eq 'pre') { + push @lines_pre, $_; + } + else { + push @lines_post, $_; + } + } + close(IN); + open(OUT, '>', $file_readme) or die "$error Cannot write `$file_readme'!\n"; + print OUT @lines_pre, @lines_toc, @lines_post; + close(OUT); install $dir_dest, qw[ build.pl - README + README.asciidoc ]; + install "$dir_dest/tex", glob("$dir_tex/*.*"); install "$dir_dest/patch", glob("$dir_patch/*.*"); install "$dir_dest/lib", $file_ziptimetree; @@ -1807,7 +1889,12 @@ if ($modules{'source'}) { install "$dir_dest/license/latex-tds", "$dir_license/latex-tds/lppl.txt"; install "$dir_dest/license/adjust_checksum", "$dir_license/adjust_checksum/lppl.txt"; install "$dir_dest/license/ziptimetree", "$dir_license/ziptimetree/lgpl.txt"; - install $dir_distrib, 'README'; + install $dir_distrib, $file_readme; + install $dir_distrib, $file_readme_html; + install $dir_distrib, $file_readme_pdf; + install $dir_doc, $file_readme; + install $dir_doc, $file_readme_html; + install $dir_doc, $file_readme_pdf; } ### Module latex-tds @@ -1856,7 +1943,7 @@ section('Distrib'); if ($opt_all) { chdir $dir_distrib; - my $cmd = "$prg_zip -0 $file_ctan_distrib README"; + my $cmd = "$prg_zip -0 $file_ctan_distrib README README.html README.pdf"; for my $pkg (sort @pkg_list) { $cmd .= " $pkg.tds.zip"; } diff --git a/Master/texmf-dist/source/latex/latex-tds/patch/lb2.err.diff b/Master/texmf-dist/source/latex/latex-tds/patch/lb2.err.diff deleted file mode 100644 index c7cca91913f..00000000000 --- a/Master/texmf-dist/source/latex/latex-tds/patch/lb2.err.diff +++ /dev/null @@ -1,19 +0,0 @@ -*** lb2.err.org 2012-05-15 21:04:02.000000000 +0200 ---- lb2.err 2013-02-14 00:05:27.359730667 +0100 -*************** -*** 327,333 **** - \usepackage{url} - - \usepackage[ngerman]{babel} -! \usepackage[latin1]{inputenc} - - \begin{document} - ---- 327,333 ---- - \usepackage{url} - - \usepackage[ngerman]{babel} -! % \usepackage[latin1]{inputenc} - - \begin{document} - -- cgit v1.2.3