diff options
Diffstat (limited to 'Master/texmf-dist/doc/support/de-macro/user-guide.tex')
-rw-r--r-- | Master/texmf-dist/doc/support/de-macro/user-guide.tex | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/support/de-macro/user-guide.tex b/Master/texmf-dist/doc/support/de-macro/user-guide.tex new file mode 100644 index 00000000000..0fc17a32e3f --- /dev/null +++ b/Master/texmf-dist/doc/support/de-macro/user-guide.tex @@ -0,0 +1,119 @@ +\documentclass[11pt]{article} + +\topmargin=0in +\oddsidemargin=0.25in +\evensidemargin=0.25in +\textwidth=6in +\textheight=8in + +\setlength{\vfuzz}{4pt} % to ignore trivial vertical overfull boxes +\sloppy + +\usepackage[noBBpl]{mathpazo} +\usepackage{enumerate} + + \begin{document} + + \title{DE-MACRO} + + \author{Copyright 2005-2007 P\'eter G\'acs\\ +Licensed under the Academic Free Licence version 2.1} + +\maketitle + +Version 1.3 - this version is much more conservative about deleting + comments and inserting or deleting blank space: tries to + leave in all comments, adds space only when necessary, and + tries not to delete space in the main text. + The motivating comments came from Daniel Webb. + +Version 1.2 - a syntactical bug corrected, thanks Brian de Alwis! + + \section*{Purpose} + +This program can eliminate most private macros from a LaTeX file. +Applications: + \begin{enumerate}[--] + \item your publisher has difficulty dealing with many private macros + \item you cooperate with colleagues who do not understand your macros + \item preprocessing before a system like latex2html, which is somewhat + unpredictable with private macros. + \end{enumerate} + + \section*{Platform} + +This is a Python program, which I only have tried to run under Unix. +But the Unix dependence is minimal (for example all the directory path +references are platform-independent). +It should be easy to adapt the +program to Windows, and also to avoid command-line arguments. + +In case your Python is not in \verb`/usr/bin`, you should change the +top line (the "shebang" line) of the program accordingly. +This top line uses the \verb`-O` option for python (stands for ``optimize''). +Without it, the program may run too slowly. +If you do not care for speed, +a number of other complications (the database, the checking for newer +versions) could be eliminated. + + \section*{Usage} + +Command line: + \begin{verbatim} + de-macro [--defs <defs-db>] <tex-file-1>[.tex] [<tex-file-2>[.tex] ...] + \end{verbatim} +{\bfseries Simplest example:} \verb`de-macro testament`\\[0pt] +(As you see, the \verb`<>` is used only in the notation of this +documentation, you should not type it.) + +If \verb`<tex-file-i>` contains a command +\verb`\usepackage{<defs-file>-private}` +then the file \verb`<defs-file>-private.sty` +will be read, and its macros will be +replaced in \verb`<tex-file-i>` with their definitions. +The result is in \verb`<tex-file-i>-clean.tex`. + +Only \verb`newcommand`, \verb`renewcommand`, +\verb`newenvironment` and \verb`renewenvironment` are +understood (it does not matter, whether you write \verb`new` or +\verb`renew`). +These can be nested but do not be too clever, since I do not +guarantee the same expansion order as in TeX. + + \section*{Files} + + \begin{verbatim} +<tex-file-1>.db +<tex-file>-clean.tex +<defs-file>-private.sty + \end{verbatim} +For speed, a macro database file called \verb`<defs-file>.db` is created. +If such a file exists already then it is used. +If \verb`<defs-file>-private.sty` is older than \verb`<tex-file-1>.db` +then it will not be used. + +It is possible to specify another database filename via \verb`--defs <defs-db>`. +Then \verb`<defs-db>.db` will be used. + +(Warning: with some Python versions and/or Unix platforms, the database +file name conventions may be different from what is said here.) + +For each \verb`<tex-file-i>`, a file \verb`<tex-file-i>-clean.tex` +will be produced. +If \verb`<tex-file-i>-clean.tex` is newer than \verb`<tex-file-i>.tex` +then it stays. + + \section*{Input command} + +If a tex file contains a command \verb`\input{<tex-file-j>}` or +\verb`\input <tex-file-j>` +then \verb`<tex-file-j>.tex` is processed recursively, and +\verb`<tex-file-j>-clean.tex` will be inserted into the final output. +For speed, if \verb`<tex-file-j>-clean.tex` is newer than +\verb`<tex-file-j>.tex` then \verb`<tex-file-j>.tex` will not be +reprocessed. + +The dependency checking is not sophisticated, so if you rewrite some macros +then remove all \verb`*-clean.tex` files! + + \end{document} |