1
readme.txt for project latex-tds, 2012/05/12
5
A. Abbreviations, Glossary
17
A. ABBREVIATIONS, GLOSSARY
18
==========================
20
Comprehensive TeX Archive Network.
21
FAQ entry: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=archives
22
For example, you can resolve the prefix `CTAN:' by using
23
`ftp://ftp.ctan.org/tex-archive/'.
25
The name of this project.
27
TeX Directory Structure.
28
FAQ entry: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tds
29
Specification: CTAN:tds.zip
37
The project started as I wanted to install the new LaTeX release 2005/12/01
38
that was announced at 2006/04/27. However the files aren't packed in
39
TDS format, ready for unpacking in the destination directory. And
40
the documentation files were not yet generated or the provided
41
PDF files are lacking of basic features such as bookmarks or link support.
42
Thus this project has started. I thought it could be finished during
43
the afternoon at the day of the announcement ...
47
* From the sources a TDS compliant tree is constructed and populated.
48
The zipped result is distributed.
49
* All the documentation is generated from the sources. The PDF files
50
are user friendly and provide navigational support with bookmarks
52
* The PDF files are post-processed to reduce the file size.
56
I don't have the time to assemble a TeX distribution with
57
thousands of packages. Therefore I restricted myself to the
58
LaTeX base distribution and the required bundles.
59
In the following I will use the term `module' for a package bundle.
63
* base CTAN:macros/latex/base.zip
64
CTAN:macros/latex/doc.zip
65
http://www.latex-project.org/guides/lb2.err
66
http://www.latex-project.org/guides/lgc2.err
67
http://www.latex-project.org/guides/manual.err
68
http://www.latex-project.org/guides/tlc2.err
69
* tools CTAN:macros/latex/required/tools.zip
70
* cyrillic CTAN:macros/latex/required/cyrillic.zip
71
* amslatex CTAN:install/macros/latex/required/amscls.tds.zip
72
CTAN:macros/latex/contrib/amsrefs.zip
73
CTAN:macros/latex/required/amslatex.zip
74
ftp://ftp.ams.org/pub/tex/amslatex.zip
75
ftp://ftp.ams.org/pub/tex/amsrefs/amsrefs.zip
76
ftp://ftp.ams.org/pub/tex/amscls.zip
77
ftp://ftp.ams.org/pub/tex/amsmath.zip
78
* psnfss CTAN:macros/latex/required/psnfss.zip
79
* babel CTAN:macros/latex/required/babel.zip
81
* knuth CTAN:systems/knuth/dist/errata.zip
82
CTAN:systems/knuth/dist/etc.zip
83
CTAN:systems/knuth/dist/mfware.zip
84
CTAN:systems/knuth/dist/texware.zip
85
CTAN:systems/knuth/dist/web.zip
86
CTAN:systems/knuth/dist/tex.zip
87
CTAN:systems/knuth/dist/mf.zip
88
* etex CTAN:systems/e-tex/v2.1/etex_doc.zip
92
Heiko Oberdiek <heiko.oberdiek at googlemail.com>
98
The home of the project is located at:
99
CTAN:macros/latex/contrib/latex-tds/
101
The following files can be downloaded:
102
* readme.txt (this file)
103
* The module distribution files, see the module list above
104
for the available modules, e.g:
108
* The sources, mainly the build script, configuration and
109
driver files, and patches:
111
Some of the used tools are not provided, see section
113
* And the universe, the contents of all the ZIP files above,
118
C. INSTALLATION HINTS
119
=====================
121
Hopefully the result of this project helps you in the installation
122
process. You get a TDS compliant tree just by unpacking.
127
or unzip's option `-d':
128
unzip latex-tds -d /some/where/texmf
130
Instead of the universe ZIP files single modules can be selected.
132
Important to remember, point your unpack process right in
133
the root directory of your TDS tree. The directory structure
134
in the ZIP files start with the top-level directories:
138
Rationale: The root directory of a TDS tree can have different
139
names, such as texmf-dist, texmf-local, ...
143
* Refresh the file name database.
144
* Be aware that unpacking can insert and update files, but never
145
deletes obsolete ones. Remainders of previous releases can
147
* Depending on the module further installation steps can be
148
necessary, consult the module's own documentation.
151
* The default texsys.cfg that LaTeX provides is put
152
into tex/latex/base. It must be removed, if you need
153
a specialized version. Consult your TeX distribution
154
and doc/latex/base/source2e.pdf (module ltdirchk).
155
Usually changes are not required for many TeX distributions
156
such as Unix (web2c), MikTeX, ...
157
* Formats need rebuilding (e.g., fmtutil).
159
* Most hyphenation patterns aren't provided here. Usually you can
160
find them somewhere below CTAN:language/hyphenation.
161
* Language configuration (language.dat), see the documentation of
162
your TeX distribution.
163
* Formats need rebuilding.
165
* The map files need further configuring (e.g., updmap).
167
* Module graphics doesn't provide all driver files, because some are
168
developed independently (pdftex.def, ...).
171
D. COPYRIGHT, LICENSE
172
=====================
174
Copyright 2006-2011 Heiko Oberdiek.
176
License is LPPL 1.3c:
178
This work may be distributed and/or modified under the
179
conditions of the LaTeX Project Public License, either version 1.3
180
of this license or (at your option) any later version.
181
The latest version of this license is in
182
http://www.latex-project.org/lppl.txt
183
and version 1.3c or later is part of all distributions of LaTeX
184
version 2005/12/01 or later.
186
This work has the LPPL maintenance status `maintained'.
188
The Current Maintainer of this work is Heiko Oberdiek.
190
See the following section `Manifest' for a list of all files
191
belonging to the project `latex-tds'.
197
Included are the projects `adjust_checksum' and `ziptimetree'.
198
They are projects of their own.
206
license/lppl.txt LPPL (The LaTeX Project Public License)
207
for latex-tds and adjust_checksum
208
license/ziptimetree/lgpl.txt LGPL (GNU Lesser General Public License)
213
build.pl main script for building the distribution
214
lib/adjust_checksum.pl Perl script that runs a DTX file through
215
LaTeX and corrects its \Checksum if necessary
216
lib/ziptimetree.pl Perl script that generates a ZIP file from
217
a directory tree with sorted entries (LGPL)
221
tex/docstrip.cfg enables TDS feature and creates directories
222
tex/errata.cfg for errata lists of latex/base
223
tex/hyperref.cfg hyperref configuration file
224
tex/ltnews.cfg for LaTeX News of latex/base
225
tex/ltxdoc.cfg setup for class ltxdoc
226
tex/ltxguide.cfg setup for the guide manuals in latex/base
228
tex/ltugboat.cls setup for class ltugboat
229
tex/lualatex-tds.ini init file for format generation for LuaTeX
230
tex/lualatex-tds2.ini init file for LuaTeX format without LM Math
231
tex/manual.cfg setup for errata list of the LaTeX manual
233
tex/pdflatex-tds.ini init file for format generation for pdfTeX
234
tex/tdsguide.cfg setup for class tdsguide.cls
238
tex/ams.drv generic doc driver for files from the
239
amslatex and babel bundle
240
tex/babel.tex doc driver with patches for babel.drv
241
tex/doc_lppl.tex doc driver for base/lppl.tex
242
tex/errata.all doc driver for knuth/errata/errata.pdf
243
tex/errata.drv doc driver for knuth/errata/errata_*.pdf
244
tex/errorlog.drv doc driver for knuth/errata/errorlog.tex
245
tex/etex_man.drv doc driver for etex/etex_man.tex
246
tex/greek-usage.tex doc driver with patches for babel/usage.tex
247
tex/knuth.drv doc driver for knuth/{texware,mfware,etc}/*.web
248
tex/ltnews.tex master file that merges all base/ltnews*.tex
249
tex/ltxcheck.drv doc driver with patches for ltxcheck.tex
250
tex/psnfss2e.drv doc driver with patches for psnfss2e.tex
251
tex/tools-overview.cls class for tools.tex
252
tex/tools.tex master file for tools overview, generated
253
by the build.pl script from tools/manifest.txt
257
patch/amsclass.dtx.diff patch for amslatex/amsclass.dtx
258
patch/amsldoc.tex.diff patch for amslatex/amsldoc.tex
259
patch/changes.tex.diff patch for amslatex/amsrefs/changes.tex
260
patch/encguide.tex.diff patch for base/encguide.tex
261
patch/hebrew.fdd.diff patch for babel/hebrew.fdd
262
patch/lb2.err.diff patch for base/lb2.err
263
patch/logmac.tex.diff patch for knuth/errata/logmac.tex
264
patch/source2e.tex.diff patch for base/source2e.tex
265
patch/tlc2.err.diff patch for base/tlc2.err
266
patch/tripman.tex.diff patch for knuth/tex/tripman.tex
267
patch/trapman.tex.diff patch for knuth/mf/trapman.tex
268
patch/utf8ienc.dtx.diff patch for base/utf8ienc.dtx
269
patch/webman.tex.diff patch for knuth/web/webman.tex
275
* Compliance with the latest TDS specification.
277
* User friendly PDF files with navigational support:
280
* Complete documentation. The documentation generation with
281
enhanced PDF files is the tricky part and should be saved
283
* Output format of generated documentation is PDF, see above.
284
Other formats such as DVI or PS are not generated and provided.
285
* Documentation bundles are preferred to many partial documentation
286
files (e.g. source2e.pdf or ltnews.pdf).
287
* If several expansion stages of a documentation are available,
288
then just the most complete expansion stage should be used.
289
* Files that do not fit in a program sub tree of TDS stay below
290
TDS:source (e.g. latexbug.el from latex/base). Then they do not
292
* Page layout: a4paper with reduced vertical margins (exception: ltnews).
293
(This also decreases the page number usually.)
302
* source2e.pdf is used instead of many single lt*.pdf files.
303
* ltnews.pdf is introduced to avoid cluttering the doc directory
304
with many single sheet ltnews*.pdf files.
305
* Patch for ltfssdcl.dtx: Checksum fixed.
310
* Added: tools.pdf as overview/contents/index file with links
311
and short descriptions of the single packages. (It uses
312
the data from manifest.txt).
317
* The distribution from the AMS ftp site is used, because
318
the files are already sorted in TDS:
319
ftp://ftp.ams.org/pub/tex/amslatex.zip
320
ftp://ftp.ams.org/pub/tex/amsrefs.zip
325
* Babel's TeX files consists of three groups of files:
326
1. Hyphenation pattern, see below
328
*.ldf (language definition files)
329
*.sty (from bbcompat.dtx, these are plain-TeX files,
330
LaTeX user have the package babel)
331
babel.def, switch.def
337
*enc.def (for package fontenc)
338
cp*.def, 8859-8.def, si960.def (for package inputenc)
341
athnum.sty, grmath.sty, grsymb.sty (greek.ins)
343
Full TDS compliance would use different format subtrees
344
for the generic and LaTeX files. However practice (TeX Live, teTeX,
345
VTeX, ...) put them in `generic', mainly because of maintenance issues.
346
Also babel's *.ins files specify \usedir{tex/generic/babel}.
347
There can be problems, if different TDS trees have different
348
babel versions installed and the same file can be found both
349
in generic and latex. The natural search strategy for TDS compliant
350
trees would be to look first in tex/latex across the trees, then
351
in tex/generic. Thus it can happen to use files from the same
352
package, but different versions.
353
--> Therefore latex-tds put theses files in the generic subtree.
354
* Babel already contains babel.pdf as documentation. It is a superset
355
of user.pdf. Thus I have dropped the latter one to avoid redundancy.
356
Also the name `babel.pdf' is much more useful (texdoc).
361
* Current used CTAN -> TDS mapping:
362
CTAN:systems/knuth/dist --> TDS:<toplevel>/knuth
363
* Unsure where to put trip/trap files. Currently they are
364
put in TDS:source, because the documentation files
365
(tripman.pdf, trapman.pdf) are in TDS:doc. They lists the
366
trip/trap files already.
368
CTAN:systems/knuth/dist/lib/
369
In TeX Live 2007/2008 the files are installed at different
371
texmf-dist/fonts/source/public/mflogo/logo10.mf
372
texmf-dist/fonts/source/public/mflogo/logo8.mf
373
texmf-dist/fonts/source/public/mflogo/logo9.mf
374
texmf-dist/fonts/source/public/mflogo/logobf10.mf
375
texmf-dist/fonts/source/public/mflogo/logo.mf
376
texmf-dist/fonts/source/public/mflogo/logosl10.mf
377
texmf-dist/fonts/source/public/misc/grayf.mf
378
texmf-dist/fonts/source/public/misc/manfnt.mf
379
texmf-dist/fonts/source/public/misc/slant.mf
380
texmf-dist/metafont/base/expr.mf
381
texmf-dist/metafont/base/io.mf
382
texmf-dist/metafont/base/null.mf
383
texmf-dist/metafont/base/plain.mf
384
texmf-dist/metafont/misc/3test.mf
385
texmf-dist/metafont/misc/6test.mf
386
texmf-dist/metafont/misc/rtest.mf
387
texmf-dist/metafont/misc/test.mf
388
texmf-dist/metafont/misc/waits.mf
389
texmf-dist/metafont/misc/ztest.mf
390
texmf-dist/mft/base/cmbase.mft
391
texmf-dist/mft/base/plain.mft
392
texmf-dist/tex/generic/misc/null.tex
393
texmf-dist/tex/plain/base/manmac.tex
394
texmf-dist/tex/plain/base/mftmac.tex
395
texmf-dist/tex/plain/base/plain.tex
396
texmf-dist/tex/plain/base/story.tex
397
texmf-dist/tex/plain/base/testfont.tex
398
texmf-dist/tex/plain/base/webmac.tex
399
texmf/tex/generic/hyphen/hyphen.tex
403
* Only the manual `etex_man' is covered by this module.
409
The most important advice I can give: `forget it'!
410
The purpose of the source files are rather to show, what was
412
The *.zip with TDS trees are the goal of the project, not the
413
build process. Some remarks, if someone wants to build the
415
* TeX compiler: recent pdfTeX, below 1.30 some of the packages
417
* An up-to-date LaTeX installation is recommended.
418
* Additional packages can be necessary, e.g. I had to install
419
language/armenian, fonts/tipa, fonts/wsuipa, fonts/fc,
420
fonts/utopia, fonts/greek/cbfonts, ...
421
Probably TeX Live would be a good idea (I haven't tested).
422
* Some new packages of mine I will put on CTAN, but at time
423
of writing, they aren't available yet.
424
* Most of the PDF files are generated using lualatex and package
425
`fontspec' that uses the Latin Modern fonts as default. They
426
are available as OpenType fonts. LuaTeX generates with OpenType
427
fonts considerably smaller PDF files. Also PDF object stream
428
compression is used (PDF 1.5). Therefore the further
429
post-processing of PDF files are currently dropped.
430
* (Outdated since 2011-07-01) PDF post-processing, I have used two steps:
431
1. a) I have written a tool that analyzes page stream contents and
432
optimizes them (removal of unnecessary color settings, minimize
433
translation operations, ...).
434
--> pdfbox-rewrite.jar
435
b) For reading and writing the PDF file I have used PDFBox
436
--> PDFBox-0.7.2.jar (http://www.pdfbox.org/)
437
c) To get better results I patched some of the classes
438
of PDFBox (especially the write module).
439
--> pdfbox-rewrite.jar
440
2. The final conversion step was done by Multivalent, because
441
it makes a very good job in PDF compression:
442
--> Multivalent20060102.jar (http://multivalent.sourceforge.net/)
443
Multivalent and PDFBox are available, pdfbox-rewrite.jar, however,
444
is just a first prototype, not ripe for a release.
445
Therefore this step of post-processing is optional for the
446
project latex-tds. The build script looks for the library and
447
skips this steps automatically if necessary.
448
If you give the build script the option --nopostprocess,
449
then it will skip the postprocess steps (building is faster,
450
the pdf files a little larger).
451
Install the jar files in the directory 'lib' where
452
they are expected by the build script.
453
* Unix, Perl background is expected.
454
* No support or documentation.
461
* Start of the project (without babel, amslatex, psnfss).
463
* Module amslatex added.
465
* Modules psnfss and babel added, now all modules are covered.
467
* The project uploaded to CTAN.
469
* Index added to base/classes.dtx.
470
* ZIP files renamed: '*-tds.zip' -> '*.zip'
471
* Comment added to ZIP files.
472
* Update of readme.txt.
474
* Module tds for CTAN:tds/ added.
475
* Obsolete hyphenation patterns added to babel's source directory
476
to avoid violation of LPPL.
477
* Script adjust_checksum added and scripts are put below TDS:scripts.
478
* TDS:makeindex/base/ renamed to TDS:makeindex/latex/
479
* Exception for sample2e.tex and small2e.tex that now go into
482
* Default texsys.cfg is generated.
483
* adjust_checksum.pl and ziptimetree.pl now moved from the scripts
484
branch to TDS:source/latex/latex-tds/lib/.
486
* Fix of ltxguide.cfg that had loaded doc.sty that disturbs the
487
verbatim stuff in fntguide.tex.
489
* Fix for documentation of longtable.
491
* Patch for babel/latin.dtx added (babel/3922).
493
* A minor update on CTAN regarding babel:
494
iahyphen.tex, icehyph.tex, and lahyph.tex are now symbolic links
495
to their location in CTAN:language/hyphenation/. Therefore also
496
lahyph.tex is now installed in TDS:tex/generic/hyphen/.
498
* Update of module amslatex because of updated package amsrefs.
499
* Fix in latin.dtx.diff.
502
* Update of amsrefs (TDS:tex/latex/amscls -> TDS:tex/latex/amsrefs).
504
* Update of babel (2008/03/17).
506
* Fix: latex/base/*.err added to TDS:source/latex/base/.
508
* Using .tds.zip instead of .zip to follow CTAN:install's naming
511
* Update of babel (2008/06/01).
512
* Babel documentation: table of contents reformatted.
514
* Update of babel (2008/07/06).
516
* Module knuth added.
517
* Update of babel (2008/07/07).
519
* Fixes and additions for module knuth.
521
* Module amslatex: instr-l.tex vanished from CTAN (but not at AMS side).
522
* Some unwanted spaces in generated PDF files fixed.
523
(Caused by a wrong package file that was found on my system first.)
525
* Module latex3 added.
526
* Module base: CTAN hyperlinks fixed.
527
* Module amslatex: Outdated URL fixed in amsldoc.tex.
528
* Module babel: Problem with already defined \meta in tb1604.tex fixed.
531
* Using uptodate versions from LaTeX project page for errata lists.
532
* lgc2.err added (LaTeX Graphics Companion, 2. ed.).
533
* Various fixes in errata lists.
534
* Module tools/array.dtx: documentation fixed (tools/4044).
536
* Module base: Missing title date for utf8ienc.pdf fixed.
538
* Module amslatex: updated.
539
* Module latex3: xpackages updated.
540
* Module latex3: expl3 removed, because nothing to do.
542
* Module amslatex: updated.
543
* Module babel: updated.
544
* Update of LaTeX, release 2009/09/24.
546
* Module amslatex: Unhappily the .zip files are quite a mess,
547
because they contain a mixup of old and new versions.
548
Tried to sort this out and fix the last update.
549
* Module latex3: xpackages removed, because nothing to do.
550
* Module latex3 removed, nothing left to do.
552
* Module base: page layout for source2e fixed (changes, index).
553
* Module base: update of .err files.
555
* Module amslatex: amscls and amsrefs updated.
556
* Module etex added (only for etex_man).
559
* Module base: patch for latex/4148 (Missing \label and \ref in lppl.tex'')
561
* Module amslatex: There is an outdated version of amsthm.sty in
562
CTAN:install/macros/latex/required/amslatex/amscls.tds.zip.
563
The package amsthm.sty is now generated from the source.
564
* Using TDS tree for missing packages that are not part of TeX Live.
565
Module base: CTAN:language/armenian/armtex.zip
567
* Module amslatex: Two downloads from AMS server removed, because
568
the files are not longer available (and they are on CTAN).
569
* Module amslatex: 00readme.txt and amsrefs.dtx taken from
570
CTAN:macros/latex/contrib/amsrefs.zip instead of
571
CTAN:install/macros/latex/contrib/amsrefs.tds.zip because
572
the later archive file is out of sync.
575
* Update of LaTeX, release 2011/06/27.
576
* Patch ltpatch.ltx to match the kernel version.
577
* Patch lppl.tex.diff removed (no longer needed).
578
* Patch ltfssdcl.dtx.diff added (checksum fixed).
579
* Module tools: Release 2011/06.
580
* Module babel: Release 2011/06.
583
* Use of LuaTeX instead of pdfTeX for most of the files.
584
* Use of package `fontspec' with Latin Modern fonts as
585
default in OpenType format (smaller PDF file sizes).
586
The post-processing of PDF files is skipped.
587
* Various patches and fixes for LuaLaTeX and package `fontspec'.
590
* Patches ltpatch.ltx.diff and ltfssdcl.dtx.diff removed
592
* Module tools: Update.
595
* Caching for PDF generation added.
596
* `FINAL' markers in the output of build.pl
597
for final (Lua|pdf)TeX runs.
599
* PDF generation: Use of package unicode-math with Latin Modern Math
604
* Update of tools (varioref).
608
* Update of amslatex (amsrefs).
609
* Update of readme.txt that is renamed to README (CTAN convention).
610
* Update of tlc2.err.