diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/imaketex |
Initial commit
Diffstat (limited to 'support/imaketex')
-rw-r--r-- | support/imaketex/CHANGES | 89 | ||||
-rw-r--r-- | support/imaketex/ExamNormal/Imakefile | 5 | ||||
-rw-r--r-- | support/imaketex/ExamNormal/example1.tex | 7 | ||||
-rw-r--r-- | support/imaketex/ExamNormal/example2.tex | 12 | ||||
-rw-r--r-- | support/imaketex/ExamNormal/input1.tex | 1 | ||||
-rw-r--r-- | support/imaketex/ExamNormal/input2.tex | 1 | ||||
-rw-r--r-- | support/imaketex/ExamSimple/Imakefile | 2 | ||||
-rw-r--r-- | support/imaketex/ExamSimple/example.tex | 7 | ||||
-rw-r--r-- | support/imaketex/Imake-TeX.cf | 38 | ||||
-rw-r--r-- | support/imaketex/Imake-TeX.tex.sed | 1784 | ||||
-rw-r--r-- | support/imaketex/Imakefile | 77 | ||||
-rw-r--r-- | support/imaketex/Paper.bib | 67 | ||||
-rw-r--r-- | support/imaketex/README | 93 | ||||
-rw-r--r-- | support/imaketex/TeX.tmpl.sed | 692 | ||||
-rw-r--r-- | support/imaketex/UnidoLogo.eps | 1597 | ||||
-rw-r--r-- | support/imaketex/X11R5.rules | 68 | ||||
l--------- | support/imaketex/german.MISSING | 1 | ||||
-rw-r--r-- | support/imaketex/texmkmf.cpp | 60 |
18 files changed, 4601 insertions, 0 deletions
diff --git a/support/imaketex/CHANGES b/support/imaketex/CHANGES new file mode 100644 index 0000000000..5322085f6b --- /dev/null +++ b/support/imaketex/CHANGES @@ -0,0 +1,89 @@ +$Id: CHANGES,v 1.0 1993/08/17 15:28:51 klute Exp klute $ + + +Imake-TeX 1.0 +------------- + +First public release. + +English documentation finished. This is the default now when generating the +documentation. + +Rule for TIFF to EPS conversion added. + +Default ghostview option -noinstall removed, because ghostview 1.5 doesn't +support this option anymore. + + + +Imake-TeX 0.97 +-------------- + +Support for non-X11R5 Imake fixed. + +Minor changes for broken systems (Johannes Sixt +<Johannes.Sixt@risc.uni-linz.ac.at>). + + + +Imake-TeX 0.96 +-------------- + +You can configure now if you have the psfig style available or not. + +Added support of "\include" and "\epsffile" to "make depend". Thanks to +Johannes Sixt <Johannes.Sixt@risc.uni-linz.ac.at>. + +Added support for converting TGIF drawings to EPS. Thanks to Johannes Sixt +<Johannes.Sixt@risc.uni-linz.ac.at>. + +Moved X11R5 Imake rules to file X11R5.rules. This file will be installed if you +don't have X11R5. Inspired by K C Ng <kia@scs.leeds.ac.uk>. + + + +Imake-TeX 0.95 +-------------- + +Included german.sty in the distribution for people that don't have it. + +Added a few X11R5 Imake rules definitions to the Imakefile for people still +having to use an out-dated Imake. + + + +Imake-TeX 0.94 +-------------- + +First international beta release. + +Typos and bad hyphenation removed from documentation. Dependency list in +NormalLatexTarget described more clearly. + +Rudimentary English documentation added. I doubt that it is useful for you in +the current state. If it is not, you will have to wait for the 1.0 release, +sorry. You can select the documentation language in the Imake.cf file. + +Running bibtex now depends not only on the bibliography database, but also on the TeX source file. + + + +Imake-TeX 0.93 +-------------- + +First computer-science-department-wide beta release. + +German bibliography style "gerunsrt" replaced by standard "unsrt". + +Improved installation hints in README (warnings in document generation +explained). + + + +Imake-TeX 0.92 +-------------- + +German bibliography style "gerunsrt" replaced by standard "unsrt". + +Improved installation hints in README (warnings in document generation +explained). diff --git a/support/imaketex/ExamNormal/Imakefile b/support/imaketex/ExamNormal/Imakefile new file mode 100644 index 0000000000..4f8eb68188 --- /dev/null +++ b/support/imaketex/ExamNormal/Imakefile @@ -0,0 +1,5 @@ +#include <TeX.tmpl> +NormalLatexRule() +AllTarget() +NormalLatexTarget(example1,) +NormalLatexTarget(example2,input1.tex input2.tex) diff --git a/support/imaketex/ExamNormal/example1.tex b/support/imaketex/ExamNormal/example1.tex new file mode 100644 index 0000000000..4b984ac71d --- /dev/null +++ b/support/imaketex/ExamNormal/example1.tex @@ -0,0 +1,7 @@ +\documentstyle[]{article} + +\begin{document} + +This is a normal example (document 1). + +\end{document} diff --git a/support/imaketex/ExamNormal/example2.tex b/support/imaketex/ExamNormal/example2.tex new file mode 100644 index 0000000000..de952ec6bf --- /dev/null +++ b/support/imaketex/ExamNormal/example2.tex @@ -0,0 +1,12 @@ +\documentstyle[]{article} + +\begin{document} + +This is a normal example (document 2). It uses two input files: + +\newcommand{\myinput}[1]{\input{#1}} + +\myinput{input1.tex} +\myinput{input2.tex} + +\end{document} diff --git a/support/imaketex/ExamNormal/input1.tex b/support/imaketex/ExamNormal/input1.tex new file mode 100644 index 0000000000..85261b3bec --- /dev/null +++ b/support/imaketex/ExamNormal/input1.tex @@ -0,0 +1 @@ +{\em This text comes from the input file one.\/} diff --git a/support/imaketex/ExamNormal/input2.tex b/support/imaketex/ExamNormal/input2.tex new file mode 100644 index 0000000000..80e48759db --- /dev/null +++ b/support/imaketex/ExamNormal/input2.tex @@ -0,0 +1 @@ +{\em This text comes from the input file two.\/} diff --git a/support/imaketex/ExamSimple/Imakefile b/support/imaketex/ExamSimple/Imakefile new file mode 100644 index 0000000000..821711de71 --- /dev/null +++ b/support/imaketex/ExamSimple/Imakefile @@ -0,0 +1,2 @@ +#include <TeX.tmpl> +SimpleLatexTarget(example) diff --git a/support/imaketex/ExamSimple/example.tex b/support/imaketex/ExamSimple/example.tex new file mode 100644 index 0000000000..44bb2c5d45 --- /dev/null +++ b/support/imaketex/ExamSimple/example.tex @@ -0,0 +1,7 @@ +\documentstyle[]{article} + +\begin{document} + +This is a simple example. + +\end{document} diff --git a/support/imaketex/Imake-TeX.cf b/support/imaketex/Imake-TeX.cf new file mode 100644 index 0000000000..b72a76f352 --- /dev/null +++ b/support/imaketex/Imake-TeX.cf @@ -0,0 +1,38 @@ +/* + * + * Configuration file for Imake-TeX + * + * Copyright 1993 Rainer Klute + * <klute@irb.informatik.uni-dortmund.de> + * + * $Id: Imake-TeX.cf,v 1.0 1993/08/17 15:28:51 klute Exp klute $ + */ + +/* + * Configure here where you want Imake-TeX to be installed. TEX_ROOTDIR should + * be the TeX root directory. The texmkmf script goes into the TEX_BINDIR + * directory, and the TeX.tmpl template file will be installed in + * TEX_CONFIGDIR. TEX_INPUTSDIR is the path where TeX looks for its input files + * by default. + * If you have a quite different TeX installation scheme, you may well set + * TEX_BINDIR, TEX_CONFIGDIR, and TEX_INPUTSDIR to absolute path names. + */ + + TEX_ROOTDIR = /usr/local/TeX + TEX_BINDIR = $(TEX_ROOTDIR)/bin + TEX_LIBDIR = $(TEX_ROOTDIR)/lib +TEX_CONFIGDIR = $(TEX_LIBDIR)/config +TEX_INPUTSDIR = /usr/local/TeX/lib/inputs + +/* + * Specify here the language of the documentation version you want to be + * generated. + */ +DOCUMENTATIONLANGUAGE = english +/* DOCUMENTATIONLANGUAGE = german */ + +/* + * If you don't have the psfig style (for inclusion of Encapsulated PostScript) + * set the following variable to "no". + */ +HAS_PSFIG = yes diff --git a/support/imaketex/Imake-TeX.tex.sed b/support/imaketex/Imake-TeX.tex.sed new file mode 100644 index 0000000000..539bccd471 --- /dev/null +++ b/support/imaketex/Imake-TeX.tex.sed @@ -0,0 +1,1784 @@ +\documentstyle[german,ifthen,titlepage,twoside,makeidx]{article} + +\ifthenelse{\equal{HAS_PSFIG}{yes}}{\input{psfig.sty}}{\newcommand{\psfig}[1]{}} + +\selectlanguage{\DOCUMENTATIONLANGUAGE} + +\newcommand{\German}[1]{\ifthenelse{\language=\german}{#1}{}} +\newcommand{\English}[1]{\ifthenelse{\language=\english}{#1}{}} + +% $Id: Imake-TeX.tex.sed,v 1.0 1993/08/17 15:28:51 klute Exp klute $ + +\newcommand{\version}{IMAKETEXVERSION} + +\makeindex + +\setlength{\marginparwidth}{0.3cm} + +\setlength{\evensidemargin}{0cm} +\setlength{\oddsidemargin}{0cm} +\setlength{\topmargin}{-1.5cm} +\setlength{\footskip}{0cm} + +\setlength{\textheight}{29.7cm} % DIN A4 paper height +\addtolength{\textheight}{-1.7cm} % inaccessible space +\addtolength{\textheight}{-1in} +\addtolength{\textheight}{-\topmargin} +\addtolength{\textheight}{-\headheight} +\addtolength{\textheight}{-\headsep} +\addtolength{\textheight}{-\topskip} +\addtolength{\textheight}{-\footskip} +\setlength{\textwidth}{21cm} % DIN A4 paper width +\addtolength{\textwidth}{-2cm} +\addtolength{\textwidth}{-2cm} +\addtolength{\textwidth}{-\marginparsep} +\addtolength{\textwidth}{-\marginparwidth} + +\pagestyle{headings} +\flushbottom +\sloppy + +\German{ +\frenchspacing +\setlength{\parindent}{0cm} +\setlength{\parskip}{1.5ex} +} + +\newcommand{\italic}[1]{{\em #1\/}} +\newcommand{\bold}[1] {{\bf #1}} +\newcommand{\Command}[1] {\italic{#1}} +\newcommand{\EnvVar}[1] {#1} +\newcommand{\EnvVarRef}[1] {\$(#1)} +\newcommand{\File}[1] {\italic{#1}} +\newcommand{\ImakeRule}[1] {\bold{#1}} +\newcommand{\Option}[1] {\italic{#1}} +\newcommand{\Param}[1] {\italic{#1}} +\newcommand{\Program}[1] {\italic{#1}} +\newcommand{\String}[1] {"`#1"'} +\newcommand{\Type}[1] {{\tt #1}} + +\newcommand{\Imake} {\Program{Imake}} +\newcommand{\Imakefile} {Imakefile} +\newcommand{\Imakefiles}{Imakefiles} +\newcommand{\make} {\Program{make}} +\newcommand{\Make} {\Command{Make}} +\newcommand{\Makefile} {Makefile} +\newcommand{\Makefiles} {Makefiles} +\newcommand{\SliTeX} {{\rm Sli{\TeX}}} +\newcommand{\imt} {\Program{Imake-{\TeX}}} + +\newcommand{\irbtitle}[2]{ +\title{\bf #1} +\author{ +\newlength{\al} +\setlength{\al}{\linewidth} +\addtolength{\al}{-26pt} +\begin{minipage}{\al}{ +\begin{center} +#2\\ +\bigskip +Informatikrechner-Betriebsgruppe (IRB)\\ +\bigskip +\mbox{\psfig{figure=UnidoLogo.eps,width=4cm}} +\end{center} +} +\end{minipage} +} +} + +\irbtitle{ +\German{Leichte {\TeX}nik\\ +{\large \rm Verarbeitung von {\TeX}-Dateien mit Hilfe von Imake}\\ +\bigskip} +Imake-{\TeX}\\Version \version{}} +{Rainer Klute\\ +$<$klute@irb.informatik.uni-dortmund.de$>$} + + + + +\begin{document} + +\bibliographystyle{unsrt} + +\maketitle + +\begin{titlepage} +\tableofcontents +\end{titlepage} + + + + +\section{Copyright} + +\German{{\imt} darf ohne Einschr"ankungen kopiert und weitergegeben werden, ist aber} + +\begin{center} +\bold{Copyright {\copyright} 1993 Rainer Klute} +\end{center} + +\German{Eine Garantie f"ur das einwandfreie Funktionieren dieser Software kann +nicht "ubernommen werden. Der Autor haftet nicht f"ur etwaige Sch"aden, die aus +der Anwendung dieser Software resultieren.} + +\English{Permission to use, copy, modify, and distribute this software for any +purpose and without fee is hereby granted, provided that the above copyright +notice and this permission notice appear in all copies. The author makes no +representations about the suitability of this software for any purpose. It +is provided ``as is'' without express or implied warranty.} + + + + +\German{\section{Einleitung}} +\English{\section{Introduction}} + +\German{Die F"ahigkeiten des Satzsystems {\TeX}\index{TeX@{\TeX}} und +insbesondere des Makropakets {\LaTeX}\index{LaTeX@{\LaTeX}} wissen viele, die +damit ihre Dokumente erstellen, sehr zu sch"atzen. Leider ist das Verarbeiten +der erstellten {\LaTeX}-Dateien etwas m"uhsam, insbesondere, wenn +Inhalts-\index{Inhaltsverzeichnis}, Literatur-\index{Literaturverzeichnis} oder +Stichwortverzeichnisse\index{Stichwortverzeichnis} generiert werden.} + +\English{The {\TeX}\index{TeX@{\TeX}} typesetting system and the macro package +{\LaTeX}\index{LaTeX@{\LaTeX}} are quite popular among those producing +professional documents. However, processing {\LaTeX} files is a bit +troublesome, especially if a table of contents\index{table of contents}, a +bibliography\index{Bibliography} or an index\index{Index} are to be generated.} + +\German{Nach "Anderungen an der Quelldatei mu"s {\LaTeX} aufgerufen werden, um +den Text zu setzen und eine DVI-Datei zu erzeugen; an\-schlie\-"send startet +der Benutzer einen Previewer wie \Program{xdvi}, um sich das Ergebnis am +Bildschirm anzusehen. Bei "Anderungen, die sich auf das Inhaltsverzeichnis oder +auf Querverweise auswirken, mu"s {\LaTeX} erneut ablaufen, damit sich diese +"Anderungen auch in der generierten DVI-Datei auswirken. Modifiziert der +Benutzer das Stichwortverzeichnis oder die Literaturliste, mu"s er nach dem +ersten {\LaTeX}-Durchlauf \Program{makeindex} beziehungsweise \Program{bibtex} +aufrufen; danach kann der zweite {\LaTeX}-Lauf stattfinden. Dabei k"onnen sich +wiederum Querverweise oder das Inhaltsverzeichnis verschieben, so da"s {\LaTeX} +ein drittes Mal ausgef"uhrt werden mu"s.} + +\English{After changing the source file, {\LaTeX} must be executed to typeset +the text and to generate a DVI file. After that, the user starts a previewer +like \Program{xdvi} to see the result on the screen. If modifications are made +that have an influence on the table of contents or on cross references, +{\LaTeX} has to run once again in order to reflect the modifications in the DVI +file. If the user modifies the index or the bibliography, he has to execute +\Program{makeindex} or \Program{bibtex} after the first {\LaTeX} run; then the +second {\LaTeX} run can take place. During this process index or bibliography +entries can be displaced again, so that {\LaTeX} must be executed for the third +time.} + +\German{Ans"atze, die wechselseitigen Abh"angigkeiten mit Hilfe von +{\Makefiles}\index{Makefile} zu beschreiben, blieben auf wenige Anwender +beschr"ankt: Da zur Erstellung eines geeigneten Makefiles recht intime +Kenntnisse sowohl von {\LaTeX} und seinen Hilfsprogrammen als auch von {\make} +und der Bourne-Shell erforderlich sind, ist diese L"osung nicht jedermann +zumutbar.} + +\English{Efforts to describe these mutual dependencies in +Makefiles\index{Makefile} have always been limited to only a few users: In +order to establish such a Makefile you need to have good knowledge about +{\LaTeX} and its utility programs, about {\make} and about the Bourne shell. +Consequently this solution cannot be expected of everybody.} + +\German{Aus diesem Grund habe ich einen Ansatz mit +{\Imake}\index{Imake@{\Imake}} entwickelt ("`{\imt}"'), der allgemein +verf"ugbar ist, von jedem {\TeX}-Benutzer in kurzer Zeit beherrscht werden +kann, und der die Arbeitsabl"aufe entscheidend vereinfacht. Nach +Text"anderungen ruft der Benutzer lediglich das Kommando {\make} auf, und +dieses wiederum f"uhrt die erforderlichen Programme wie {\LaTeX}, +\Program{makeindex} oder \Program{bibtex} automatisch so oft wie n"otig und in +der richtigen Reihenfolge aus. Die bequeme Generierung einer +PostScript-Variante aus der DVI-Datei sowie das Betrachten des Erzeugnisses am +(Graphik-)Bildschirm unterst"utzt {\imt} ebenfalls.} + +\English{This was the reason for me to use {\Imake}\index{Imake@{\Imake}} as +the starting point ("`{\imt}"'). {\Imake} is publically available, every {\TeX} +user can master it after a short time, and it simplyfies processing +considerably. After changing the text, the user just types the command +{\make}, which in turn executes the necessary programs like {\LaTeX}, +\Program{makeindex}, or \Program{bibtex}---automatically, in the correct +sequence and as often as needed. {\imt} also supports the comfortable +generation of a PostScript variant from the DVI file together with displaying +it on the (graphical) screen.} + +\German{"Uber Ihre Reaktion in Form von Lob oder +Fehlermeldungen\index{Fehlermeldungen} w"urde ich mich freuen. Hinweise auf +Schwachstellen dieser Dokumentation s"ahe ich ebenfalls recht gerne.} + +\English{This documentation is written in "`German"' English. If \bold{you} are +a native English speaker, please improve the poor wording of this document, and +send me your modifications!} + + + +\German{\section{Makefile-Generierung +\index{Makefile-Generierung@{\Makefile}-Generierung} mit Imake}} + +\English{\section{Generating a Makefile\index{Makefile!generating a} with Imake}} + + +\German{Das Grundprinzip von {\Imake} ist recht einfach: Der Benutzer tr"agt in +einem {\Imakefile}\index{Imakefile@{\Imakefile}} einige +{\Imake}-Regeln\index{Imake-Regeln@{\Imake}-Regeln} ein. Das ist leicht und +schnell erledigt: {\Imakefiles} sind selten l"anger als zehn Zeilen. Aus diesem +{\Imakefile} generiert das Programm {\Imake} mit Hilfe vorgegebener +Template-Dateien ein {\Makefile}. Im Gegensatz zum {Imakefile} ist das erzeugte +{\Makefile} sehr komplex und enth"alt leicht "uber 500 Zeilen, was den Benutzer +aber nicht zu k"ummern braucht. Die genauen Abl"aufe bei der Ausf"uhrung von +{\Imake} sind an anderer Stelle ausf"uhrlich beschrieben +(\cite{DuBois:1993:Software-Portability-with-imake}, \cite{Imake/Unido}, +\cite{Imake-Theorie/iX}), so da"s wir uns hier auf einige Benutzungshinweise +und die spezielle Unterst"utzung f"ur {\TeX} beschr"anken k"onnen.} + +\English{{\Imake}'s working principle is simple: The user writes down a few +{\Imake} rules\index{Imake rules@{\Imake} rules} in an +{\Imakefile}\index{Imakefile@{\Imakefile}}. This is easy and done quickly: +{\Imakefiles} are seldom longer than ten lines. From the {\Imakefile} the +program {\Imake} generates a {\Makefile} using a set of predefined template +files. Contrary to the {\Imakefile}, the generated {\Makefile} is very complex +and likely contains more than 500 line. However, this must not irritate the +user. {\Imake}'s exact procedure has been explained elsewhere +(\cite{DuBois:1993:Software-Portability-with-imake}, \cite{Imake/TXJ}), so it +is sufficient to describe the special support for {\TeX} here.} + + + +\German{\section{Ein einfaches Beispiel}} +\English{\section{A Simple Example}} + +\German{Hier ein einfaches Beispiel, das ganz kurz die M"oglichkeiten von +{\imt} anrei"st. Die genaue Beschreibung finden Sie vom n"achsten Kapitel an.} + +\English{Here is a simple example which shows the possibilities of {\imt} in +short. The exact descriptions starts with the next chapter.} + + + +\German{\subsection{Das Imakefile}} +\English{\subsection{The Imakefile}} + +\German{Nehmen wir an, Sie haben eine {\LaTeX}-Datei namens \File{example.tex} +erstellt. Das Dokument soll zun"achst noch ohne ein Stichwort- oder +Literaturverzeichnis auskommen; ein Inhaltsverzeichnis dagegen sei erlaubt. +Diese {\LaTeX}-Datei beschreiben Sie in der Datei {\Imakefile} durch folgende +Zeilen:} + +\English{Consider you have created a {\LaTeX} file called \File{example.tex}. +In this first example it does not need to have an index or bibliography. +However, it may have a table of contents. You will describe this {\LaTeX} file +in the file {\Imakefile} by the following lines:} + +{\samepage +\begin{quote} +\begin{verbatim} +#include <TeX.tmpl> +SimpleLatexTarget(example) +\end{verbatim} +\end{quote} +\index{SimpleLatexTarget} +\label{ExamSimple} +} + +\German{Das ist alles. Aus diesen wenigen Angaben kann {\Imake} nun mit Hilfe +geeigneter Template-Dateien ein {\Makefile} erzeugen. Dazu geben Sie das +Kommando \Command{texmkmf}\index{texmkmf}\footnote{"`{\TeX} make {\Makefile}"' +--- ein Shell-Script, das wiederum {\Imake} aufruft} ein.} + +\English{\noindent That's all. From these few specifications {\Imake} +can---with the help of suitable template file---generate a {\Makefile}. In +order to do this type the command +\Command{texmkmf}\index{texmkmf}\footnote{"`{\TeX} make {\Makefile}"'---a shell +script which in turn calls {\Imake}}.} + + + +\German{\subsection{Das generierte Makefile}} +\English{\subsection{The Generated Makefile}} + +\German{Das {\Makefile} stellt Ihnen eine Reihe von Kommandos zur +Verf"ugung:\footnote{Dies ist nur eine kurze "Ubersicht; die genaue +Beschreibung finden Sie in Kapitel \ref{MakeTargets} auf +Seite~\pageref{MakeTargets}.}} + +\English{What you can do with the {\Makefile}---a short overview.\footnote{The +exact description you will find in chapter \ref{MakeTargets} on +page~\pageref{MakeTargets}.}} + +\begin{description} + +\item[\Command{make depend}\index{make depend}] + +\German{durchsucht die {\TeX}-Quelldatei nach weiteren Dateien, die zum +Beispiel durch den \Type{\char'134input}-Befehl eingelesen werden. F"ur jede +gefundene Datei f"ugt {\imt} eine {\make}-Abh"angigkeit +(Dependency\index{Dependency}) an das {\Makefile} an und sorgt auf diese Weise +f"ur eine Neu\-ge\-ne\-rie\-rung der DVI-Datei, wenn an einer der eingelesen +Datei eine "Anderung durchgef"uhrt wurde. Sie sollten dieses Kommando +unmittelbar nach der {\Makefile}-Generierung mit +\Command{texmkmf}\index{texmkmf} ausf"uhren.} + +\English{searches the {\TeX} source file for other files which are read for +example by the \Type{\char'134input} command. For each file found {\imt} +appends a {\make} dependency\index{Dependency} to the {\Makefile}. This causes +a re-generation of the DVI file after changes in input files. You should +execute this command right after generating the {\Makefile} with +\Command{texmkmf}\index{texmkmf}.} + +\item[\Command{make dvi}\index{make dvi}] + +\German{ruft das Programm \Program{latex} so oft wie n"otig auf und erzeugt so +die DVI-Datei \File{example.dvi}. Statt \Command{make dvi} kann man auch +\Command{make all}\index{make all} verwenden, in vielen F"allen auch einfach +\Command{make} (siehe Kapitel \ref{AllTarget} auf Seite~\pageref{AllTarget}).} + +\English{calls the program \Program{latex} as often as necessary and thus +creates the DVI file \File{example.dvi}. Instead of \Command{make dvi} you can +also use \Command{make all}\index{make all}, or in many cases simply +\Command{make} (see chapter \ref{AllTarget} on page~\pageref{AllTarget}).} + +\item[\Command{make viewdvi}\index{make viewdvi}] + +\German{zeigt zus"atzlich die DVI-Datei mit Hilfe des +Previewers\index{Previewer} \Program{xdvi}\index{xdvi} auf dem Bildschirm an.} + +\English{additionally shows the DVI file on the screen, using the +previewer\index{Previewer} \Program{xdvi}\index{xdvi}.} + +\item[\Command{make ps}\index{make ps}] + +\German{erzeugt --- falls erforderlich --- eine aktuelle DVI-Datei (siehe +\Command{make dvi}) und generiert aus dieser an\-schlie\-"send die +PostScript-Datei\index{PostScript} \File{example.ps}.} + +\English{creates---if necessary---an up-to-date DVI file (see \Command{make +dvi}) and generates the PostScript file\index{PostScript} \File{example.ps}.} + +\item[\Command{make viewps}\index{make viewps}] + +\German{zeigt zus"atzlich die PostScript-Datei mit Hilfe des +Previewers\index{Previewer} \Program{ghostview}\index{ghostview} auf dem +Bildschirm an.} + +\English{additionally shows the PostScript file on the screen, using the +previewer\index{Previewer} \Program{ghostview}\index{ghostview}.} + +\item[\Command{make clean}\index{make clean}] + +\German{l"oscht alle Hilfs-, Log- und sonstigen Dateien, die durch ein +entsprechendes {\make} leicht wieder erzeugt werden k"onnten.} + +\English{removes help files, log files, and other files that can be re-created +by a {\make} comand.} + +\item[\Command{make veryclean}\index{make veryclean}] + +\German{l"oscht auch die DVI-Datei.} + +\English{removes the DVI file, too.} + +\item[\Command{make Makefiles}\index{make Makefiles}] + +\German{generiert {\Makefiles} in Unterverzeichnissen.} + +\English{generates {\Makefiles} in subdirectories.} + +\end{description} + + + + +\German{\section{Beschreibung des {\LaTeX}-Dokuments im Imakefile}} +\English{\section{Describing the {\LaTeX} Document in the Imakefile}} +\label{SimpleLatexTarget} + +\German{Der Benutzer beschreibt sein Dokument im +{\Imakefile}\index{Imakefile@{\Imakefile}} mit Hilfe von +{\Imake}-Regeln\index{Imake-Regeln@{\Imake}-Regeln}. Schauen wir uns noch +einmal das {\Imakefile} aus dem Beispiel an:} + +\English{The user describes his document in the {\Imakefile}\index{\Imakefile} +using {\Imake} rules\index{Imake rules@{\Imake} rules}. Let's have a look at the sample +{\Imakefile} again:} + +{\samepage +\begin{quote} +\begin{verbatim} +#include <TeX.tmpl> +SimpleLatexTarget(example) +\end{verbatim} +\end{quote} +\index{SimpleLatexTarget} + +\begin{itemize} + +\item + +\German{Die erste Anweisung \Type{\#include +<TeX.tmpl>}\index{include@\#include} stellt die Template-Datei +\File{TeX.tmpl}\index{TeX.tmpl} zur Verf"ugung. Sie enth"alt die +{\Imake}-Regeln f"ur {\imt}, die im folgenden benutzt werden.} + +\English{The first statement \Type{\#include +<TeX.tmpl>}\index{include@\#include} makes the template file +\File{TeX.tmpl}\index{TeX.tmpl} available. It contains the {\Imake} rules for +{\imt}, which are used subsequently.} + +\item + +\German{Die Regel \Type{SimpleLatexTarget(example)}\index{SimpleLatexTarget} +sagt: Mein {\LaTeX}-Dokument steht in der Datei \File{example.tex}, es enth"alt +weder Stichwort- noch Literaturverzeichnis, und es verwendet auch keine +Eingabedateien, die \Command{make depend}\index{make depend} nicht finden +kann\footnote{Dummerweise findet \Command{make depend} Dateien dann nicht, wenn +das {\TeX}-Dokument sie nicht mit \Type{\char'134input}, sondern "uber ein +selbstdefiniertes Kommando einliest. Einzelheiten und Tips zur Abhilfe finden +Sie in den Kapiteln \ref{make depend} (Seite~\pageref{make depend}) +\ref{TeX-Eingabedateien} (Seite~\pageref{TeX-Eingabedateien}) und \ref{Aendern +des Suchmusters} (Seite~\pageref{Aendern des Suchmusters})}.} + +\English{Rule \Type{SimpleLatexTarget(example)}\index{SimpleLatexTarget} says: +The {\LaTeX} document is in file \File{example.tex}, it contains neither index +nor bibliography and it does not use input files \Command{make +depend}\index{make depend} cannot find\footnote{Unfortunately \Command{make +depend} does not find files which the {\TeX} document does not read using +\Type{\char'134input}, but with a selfdefined command. Details and tips to +circumvent this deficiency you will find in chapters \ref{make depend} +(page~\pageref{make depend}), \ref{TeX-Eingabedateien} +(page~\pageref{TeX-Eingabedateien}) and \ref{Aendern des Suchmusters} +(page~\pageref{Aendern des Suchmusters}).}.} + +\end{itemize} + +\German{F"ur komplexere Anwendungen, f"ur die \ImakeRule{SimpleLatexTarget} +nicht ausreicht, stehen weitere {\Imake}-Regeln zur Verf"ugung, die wir im +folgenden betrachten.} + +\English{\noindent For more complex applications, where +\ImakeRule{SimpleLatexTarget} is not suffient, additional {\Imake} rules are +available. We shall have a look at them now.} + + + +\German{\subsection{"`Einfache"' und "`normale"' Dokumente}} +\English{\subsection{``Simple'' and ``Normal'' Documents}} +\label{NormalLatexRule} +\label{NormalLatexTarget} + +\German{Was ist an der gerade behandelten Regel +\Type{SimpleLatexTarget}\index{SimpleLatexTarget} "`einfach"'? Sie beschreibt +ein {\LaTeX}-Dokument, {\dots}} + +\English{What is the ``simple'' thing with +\Type{SimpleLatexTarget}\index{SimpleLatexTarget}? It describes a {\LaTeX} +document {\dots}} + +\begin{list}{\dots}{} + +\item + +\German{das keine Eingabedatei einliest, die \Command{make depend} nicht finden +kann,} + +\English{which does not read another input file, which \Command{make depend} +cannot find,} + +\item + +\German{das das einzige Dokument ist, das dieses {\Imakefile} beschreibt.} + +\English{which is the only document described by this {\Imakefile}.} + +\end{list} + +\German{In allen anderen F"allen findet die Regel +\ImakeRule{NormalLatexTarget}\index{NormalLatexTarget} Anwendung: Nehmen wir +an, wir wollen die zwei Dokumente \File{example1.tex} und \File{example2.tex} +beschreiben, und \File{example2.tex} verwende wiederum zwei Eingabedateien +\File{input1.tex} und \File{input2.tex}, die \Command{make depend} nicht finden +kann. Das entsprechende {\Imakefile} sieht so aus:} + +\English{\noindent In all other cases you should use rule +\ImakeRule{NormalLatexTarget}\index{NormalLatexTarget}. For instance, you want +to describe two documents \File{example1.tex} and \File{example2.tex}, and +\File{example2.tex} inputs two files \File{input1.tex} and \File{input2.tex} +which \Command{make depend} cannot find. In this case the {\Imakefile} should +look like this:} + +{\samepage +\begin{quote} +\begin{verbatim} +#include <TeX.tmpl> +NormalLatexRule() +NormalLatexTarget(example1,) +NormalLatexTarget(example2,input1.tex input2.tex) +\end{verbatim} +\end{quote} +\index{NormalLatexRule} +\index{NormalLatexTarget} +\label{ExamNormal} +} + +\German{Man beachte die zus"atzliche {\Imake}-Regel +\ImakeRule{NormalLatexRule}\index{NormalLatexRule}! Sie ist das Herzst"uck des +gesamten Verfahrens und "`wei"s"', wie aus einer {\LaTeX}-Datei eine DVI-Datei +zu machen ist. \ImakeRule{SimpleLatexTarget}\index{SimpleLatexTarget} verwendet +sie implizit; bei \ImakeRule{NormalLatexTarget} mu"s sie der Anwender selbst +ins {\Imakefile} eintragen.\footnote{F"ur {\SliTeX}-Dokumente existiert eine +entsprechende Regel \ImakeRule{NormalSlitexRule()}\index{NormalSlitexRule}.}} + +\English{\noindent Please note the additional {\Imake}-Rule +\ImakeRule{NormalLatexRule}\index{NormalLatexRule}! It is the core of the whole +procedure and ``knows'' how to transform a {\LaTeX} file to a DVI file. +\ImakeRule{SimpleLatexTarget}\index{SimpleLatexTarget} uses it implicitly; when +using \ImakeRule{NormalLatexTarget} you have to write it into the {\Imakefile} +yourself.\footnote{For {\SliTeX} documents there is an equivalent rule +\ImakeRule{NormalSlitexRule()}\index{NormalSlitexRule}.}} + +\German{\ImakeRule{NormalLatexTarget}\index{NormalLatexTarget} kann im +{\Imakefile} mehrfach stehen und entsprechend mehrere Dokumente beschreiben. +Sie besitzt gegen"uber \ImakeRule{SimpleLatexTarget} einen zus"atzlichen +Parameter: An den Namen des Dokuments schlie"st sich eine Liste von weiteren +Dateinamen an. Hier sind diejenigen Dateien aufgef"uhrt, die \Command{make +depend} nicht findet. Diese \italic{Dependency-Liste}\index{Dependency-Liste} +kann leer sein (siehe \File{example1}), einen einzigen oder mehrere Dateinamen +enthalten (siehe \File{example2}). Im letzteren Fall trennt man die einzelnen +Namen durch Leerzeichen.} + +\English{You may use \ImakeRule{NormalLatexTarget}\index{NormalLatexTarget} +more than once in a single {\Imakefile} and thus describe multiple documents. +Different from \ImakeRule{SimpleLatexTarget} \ImakeRule{NormalLatexTarget} has +an additional parameter: After the document's name a list of further files +follows. Here those files not found by \Command{make depend} are listed. This +\italic{dependency list}\index{Dependency!list} may be empty (see +\File{example1}), or may contain one or more file names (see \File{example2}). +In the latter case you have to separate them by spaces.} + +\German{Bei den folgenden Regeln werden der Einfachheit halber durchweg nur die +\ImakeRule{Normal{\dots}}-Varianten beschrieben. Die entsprechenden +\ImakeRule{Simple{\dots}}-Regeln ergeben sich durch Weglassen der +Dependency-Liste und der Regel \ImakeRule{NormalLatexRule}. Die +Dependency-Liste\index{Dependency-Liste} steht \italic{immer} unmittelbar +hinter dem Dokumentnamen.} + + + +\German{\subsection{Dokumente mit +Stichwortverzeichnis}\index{Stichwortverzeichnis}} +\English{\subsection{Documents with an Index}\index{Index}} +\label{Stichwortverzeichnis} \label{NormalLatexIndexTarget} + +\German{Ein Stichwortverzeichnis\index{Stichwortverzeichnis} l"a"st sich in +{\LaTeX}-Dokumenten mit Hilfe des Styles {\tt makeidx}\index{makeidx@{\tt +makeidx}!LaTeX-Style@{\LaTeX}-Style} und dem zugeh"origen Programm +\Program{makeindex}\index{makeindex} erzeugen. Im {\Imakefile} verwendet man +anstelle von \ImakeRule{NormalLatexTarget} die Regel +\ImakeRule{NormalLatexIndexTarget}\index{NormalLatexIndexTarget}. Diese Regel +sorgt f"ur die Ausf"uhrung des Programms \Program{makeindex}\index{makeindex} +nach einem {\LaTeX}-Lauf, damit das Stichwortverzeichnis stets aktuell bleibt. +Diesen Index integriert der nachfolgende {\LaTeX}-Lauf in die DVI-Datei.} + +\English{An index\index{Index} can be generated using the {\LaTeX} style {\tt +makeidx}\index{makeidx@{\tt makeidx}!LaTeX style@{\LaTeX} style} and the +supplementary program \Program{makeindex}\index{makeindex}. In the {\Imakefile} +instead of \ImakeRule{NormalLatexTarget} use the rule +\ImakeRule{NormalLatexIndexTarget}\index{NormalLatexIndexTarget}. This rule +executes \Program{makeindex}\index{makeindex} after a {\LaTeX} run in order to +keep the index up to date. The subsequent {\LaTeX} run includes this index in +the DVI file.} + + + +\German{\subsection{Literaturverzeichnis mit +BIB{\TeX}}\index{Literaturverzeichnis}} +\English{\subsection{Bibliography with BIB{\TeX}}\index{Bibliography}} +\index{BIB{\TeX}}} +\label{Literaturverzeichnis} +\label{NormalLatexBibtexTarget} + +\German{Ein Literaturverzeichnis\index{Literaturverzeichnis} mu"s mit Hilfe des +Programms \Program{bibtex}\index{bibtex} neu erstellt werden, wenn sich die +zugrundeliegende Literaturdatenbank\index{Literaturdatenbank} oder das +{\LaTeX}-Dokument ge"andert haben. Daran an\-schlie\-"send bindet {\LaTeX} das +neu erstellte Literaturverzeichnis in die DVI-Datei ein. Im {\Imakefile} mu"s +der Benutzer die {\Imake}-Regel +\ImakeRule{NormalLatexBibtexTarget}\index{NormalLatexBibtexTarget} verwenden:} + +\English{A bibliography\index{Bibliography} must be regenerated using the +program \Program{bibtex}\index{bibtex} when the corresponding bibliography +database\index{Bibliography!database} or the {\LaTeX} document have been +modified. The subsequent {\LaTeX} run includes the bibliography in the DVI +file. In the {\Imakefile} the user has to write the {\Imake} rule +\ImakeRule{NormalLatexBibtexTarget}\index{NormalLatexBibtexTarget}:} + +\begin{quote} +\begin{verbatim} +#include <TeX.tmpl> +NormalLatexRule() +NormalLatexBibtexTarget(example3,input.tex,paper.bib) +\end{verbatim} +\end{quote} +\index{NormalLatexBibtexTarget} + +\German{Der dritte Parameter (hier: \File{paper.bib}) benennt die von +\Program{bibtex} auszuwertende Literaturdatenbank\index{Literaturdatenbank}. +(Der Dokumentname steht immer als erster Parameter; bei \File{input.tex} im +Beispiel handelt es sich folglich um die Dependency-Liste.)} + +\English{\noindent The third parameter (here: \File{paper.bib}) names the +bibliography database\index{Bibliography!database} to be searched by +\Program{bibtex}. (The document's name always comes first; so \File{input.tex} +in the example is the dependency list.)} + + +\German{\subsection{Dokumente mit Index und Literaturverzeichnis}} +\English{\subsection{Documents with Index and Bibliography}} +\label{NormalLatexBibtexIndexTarget} +\label{NormalLatexIndexBibtexTarget} + +\German{Enth"alt das Dokument sowohl Index\index{Index} als auch +Literaturverzeichnis\index{Literaturverzeichnis}, findet die Regel +\ImakeRule{NormalLatexBibtexIndexTarget}\index{NormalLatexBibtexIndexTarget} +Anwendung. Die Parameter sind die gleichen wie bei +\ImakeRule{NormalLatexBibtexTarget} (siehe Kapitel \ref{Literaturverzeichnis}). +Damit sich der Anwender nicht eine bestimmte Reihefolge merken mu"s, kann er +genausogut +\ImakeRule{NormalLatexIndexBibtexTarget}\index{NormalLatexIndexBibtexTarget} +benutzen.} + +\English{If the document holds an index\index{Index} as well as a +bibliography\index{Bibliography} the rule +\ImakeRule{NormalLatexBibtexIndexTarget}\index{NormalLatexBibtexIndexTarget} +should be used. The parameters are the same as those of +\ImakeRule{NormalLatexBibtexTarget} (see chapter \ref{Literaturverzeichnis}). +Since you won't want to have to remember any particular order, you can also use +\ImakeRule{NormalLatexIndexBibtexTarget}\index{NormalLatexIndexBibtexTarget}.} + + + +\German{\subsection{Folien mit SLI{\TeX}} +\index{SLITeX@SLI{\TeX}} +\index{LaTeX-Dokumente und SLITeX-Folien@{\LaTeX}-Dokumente und +SLI{\TeX}-Folien} +\index{SLITeX-Folien und LaTeX-Dokumente@SLI{\TeX}-Folien und +{\LaTeX}-Dokumente}} + +\English{\subsection{Slides with SLI{\TeX}} +\index{SLITeX@SLI{\TeX}} +\index{LaTeX documents and SLITeX slides@{\LaTeX} documents and SLI{\TeX} slides} +\index{SLITeX slides and LaTeX documents@SLI{\TeX} slides and {\LaTeX} documents}} + +\label{SLITeX} + + +\German{Die f"ur {\LaTeX} beschriebenen {\Imake}-Regeln stehen zus"atzlich in +einer Variante f"ur SLI{\TeX}\index{SLITeX@SLI{\TeX}} mit analoger Bedeutung +zur Verf"ugung. In den Regelbezeichnungen ist \ImakeRule{Latex} durch +\ImakeRule{Slitex} zu ersetzen.} + +\English{The rules described above for {\LaTeX} are also available in a +SLI{\TeX}\index{SLITeX@SLI{\TeX}} variant with analogous meanings. Simply +replace \String{Latex} in the rules' names by \String{Slitex}.} + +\German{Beachten Sie, da"s Sie pro {\Imakefile} nur eine der Regeln +\ImakeRule{NormalLatexRule}\index{NormalLatexRule} und +\ImakeRule{NormalSlitexRule}\index{NormalSlitexRule} verwenden k"onnen! +Gegebenenfalls m"ussen Sie {\LaTeX}-Dokumente und SLI{\TeX}-Folien auf +verschiedene Unterverzeichnisse mit getrennten {\Imakefiles} aufteilen.} + +\English{Please note that you can use only one of +\ImakeRule{NormalLatexRule}\index{NormalLatexRule} and +\ImakeRule{NormalSlitexRule}\index{NormalSlitexRule} in a single {\Imakefile}! +However, you can distribute {\LaTeX} documents and SLI{\TeX} slides to separate +subdirectories with separate {\Imakefiles}.} + + + + +\German{\section{Make-Targets}\index{Make-Targets}} +\English{\section{Make targets}\index{Make targets}} +\label{MakeTargets} + +\German{Das aus dem {\Imakefile} generierte {\Makefile} stellt eine Reihe von +{\make}-Targets\index{Make-Targets} zur Verf"ugung, die im folgenden +ausf"uhrlich vorgestellt werden.} + + + +\subsection{make dvi, make viewdvi} + +\German{Das Kommando \Command{make dvi}\index{make dvi} ruft (falls n"otig) das +Programm \Program{latex} auf, das aus dem Dokumentquelltext die DVI-Datei +erzeugt. Falls die Quelldatei die Generierung eines Inhaltsverzeichnisses +fest\-legt oder Querverweise im Text vorkommen, wird \Program{latex} +hinreichend oft erneut aufgerufen. Damit es im Fehlerfall aber zu keiner +Endlosschleife kommt, ist "`hinreichend"' auf drei Mal beschr"ankt. Statt +\Command{make dvi} kann man auch \Command{make all}\index{make all} verwenden, +in vielen F"allen auch einfach \Command{make} (siehe Kapitel \ref{AllTarget} +auf Seite~\pageref{AllTarget}).} + +\English{The command \Command{make dvi}\index{make dvi} calls (if needed) the +program \Program{latex}, which generates the DVI file from the document's +source. If the source file specifies generation of a table of contents or if +cross references are found in the text, \Program{latex} is called anew as often +as needed. In order to prevent an endless loop in case of an error, ``as often +as needed'' is limited to three times. Instead of \Command{make dvi} you can +also use \Command{make all}\index{make all}, and in many cases simply +\Command{make} (see chapter \ref{AllTarget} on page ~\pageref{AllTarget}).} + +\German{Durch \Command{make viewdvi}\index{make viewdvi} k"onnen Sie sich die +DVI-Datei mit Hilfe eines Previewers\index{Previewer} (Voreinstellung: +\Program{xdvi}\index{xdvi}) auf dem Bildschirm ansehen.} + +\English{By \Command{make viewdvi}\index{make viewdvi} you can view a DVI file +on the screen using a previewer (default: \Program{xdvi}\index{xdvi}).} + +\German{Bei mehreren Dokumenten im {\Imakefile} l"a"st sich eine bestimmte +DVI-Datei durch das Kommando \Command{make name.dvi} erzeugen, wobei +\File{name} der Basisname des Dokuments ist.} + +\English{If your {\Imakefile} describes several documents, you generate a +specific DVI file by \Command{make name.dvi}, where \File{name} is the +document's base name.} + + + +\subsection{make ps, make viewps} + +\German{Die Konvertierung nach PostScript erledigt das Kommando \Command{make +ps}\index{make ps} (auch m"oglich: \Command{make postscript}\index{make +postscript}). Intern ruft \Command{make ps} einen Wandler (Voreinstellung: +\Program{dvips}\index{dvips}) auf, der aus der DVI-Datei eine solche im +PostScript-Format\index{PostScript} generiert. Erforderlichenfalls erzeugt +\Command{make ps} zuvor auch die DVI-Datei. + +Die PostScript-Datei kann man sich man sich am Bildschirm ansehen: Analog zu +\Command{make viewdvi} startet \Command{make viewps}\index{make viewps} einen +Previewer\index{Previewer} (Voreinstellung: +\Program{ghostview}\index{ghostview}). + +Bei mehreren Dokumenten im {\Imakefile} l"a"st sich auch hier eine bestimmte +PostScript-Datei erzeugen: \Command{make name.ps} erledigt dies.} + +\English{The command \Command{make ps}\index{make ps} (or \Command{make +postscript}\index{make postscript}) performs the generation of PostScript +output. Internally \Command{make ps} executes a converter program (default: +\Program{dvips}\index{dvips}) which reads the DVI file and produces an +equivalent PostScript\index{PostScript} file. If necessary, \Command{make ps} +generates an up-to-date DVI file first. + +You can view the PostScript file at your screen: In analogy to \Command{make +viewdvi} the command \Command{make viewps}\index{make viewps} starts a +previewer (default: \Program{ghostview}\index{ghostview}). + +If your {\Imakefile} describes more than one document, \Command{make name.ps} +generates the PostScript version of a particular one.} + + + +\German{ +\subsection{make dvipsfig} + +Zur Unterst"utzung der effizienten Nutzung des zentralen Drucksystems Siemens +2050\index{Drucker!Siemens 2050} am Fachbereich Informatik der Universit"at +Dortmund existiert das spezielle {\make}-Target \Command{dvipsfig}\index{make +dvipsfig}, das eine Datei mit Endung \File{.dvipsfig}\index{DVIPSFIG-Format} +zur Ausgabe auf diesem Drucker erzeugt. Sofern Sie Ihr Erzeugnis auf dem +Siemens 2050 ausdrucken wollen, sollten Sie stets dieses Format an Stelle von +PostScript verwenden, da die Ausgabe dann wesentlich schneller erfolgt.} + + + +\subsection{make clean, make veryclean} + +\German{Mit \Command{make clean}\index{make clean} l"oschen Sie alle Hilfs- und +Logdateien sowie die PostScript- und DVIPSFIG-Dateien, kurz: s"amtliche Files, +die durch ein entsprechendes {\make}-Kommando neu identisch generiert werden +k"onnten. + +Das Kommando \Command{make veryclean}\index{make veryclean} ist noch etwas +durchgreifender: Es l"oscht auch die DVI-Datei.} + +\English{With \Command{make clean}\index{make clean} you can remove all help +files, log files and PostScript files. In short: all files you can easily +regenerate identically by a {\make} command. + +The command \Command{make veryclean}\index{make veryclean} is a bit more +decisive: It also deletes the DVI file.} + + +\German{\subsection{make depend}} +\English{\subsection{make depend}} +\label{make depend} +\index{make depend|(} + +\German{Umfangreiche Dokumente teilt man gern auf mehrere Dateien auf, die von +der Hauptdatei durch das {\LaTeX}-Kommando +\Type{$\backslash$input}\index{input@\Type{input}} eingelesen werden, zum +Beispiel:} + +\English{Extensive documents you will likely split into several files which are +combined in the main file by the {\LaTeX} command +\Type{$\backslash$input}\index{input@\Type{input}}. Example:} + +\begin{quote} +\begin{verbatim} +\input{chapter1.tex} +\input{chapter2.tex} +\input{chapter3.tex} +\end{verbatim} +\end{quote} + +\German{Wenn Sie in einer dieser Dateien etwas "andern, kann {\make} nicht ohne +weiteres wissen, da"s jetzt ein {\LaTeX}-Lauf f"allig w"are, um die DVI-Datei +neu zu erzeugen, da die Hauptdatei nicht ge"andert wurde. Abhilfe schafft das +Kommando \Command{make depend}: es sorgt daf"ur, da"s ein an\-schlie\-"sen\-des +\Command{make dvi} auch diese Dateien ber"ucksichtigt. Dazu untersucht es die +Hauptdatei auf \Type{$\backslash$input}-Anweisungen und f"ugt f"ur die +erkannten Dateinamen entsprechende +Abh"angigkeiten\index{Abhangigkeiten@Abh\"{a}ngigkeiten!von eingelesenen +Dateien}\index{eingelesene Dateien} an das {\Makefile} an. +Selbst\-ver\-st"and\-lich werden die gefundenen Dateien auf weitere +Eingabefiles untersucht. \Command{make depend} erkennt "ubrigens nicht nur die +Anweisung \Type{$\backslash$input}\index{input@\Type{input}}, sondern auch die +Kommandos \Type{$\backslash$include}\index{include@\Type{include}}, +\Type{$\backslash$verbfile}\index{verbfile@\Type{verbfile}}, +\Type{$\backslash$blackandwhite}\index{blackandwhite@\Type{blackandwhite}}, +\Type{$\backslash$epsffile}\index{epsffile@\Type{epsffile}} und +\Type{$\backslash$psfig}\index{psfig@\Type{psfig}}.} + +\English{\noindent If you modify one of these files, {\make} will not +automatically run {\LaTeX} in order to recreate the DVI file, because the main +file remained unchanged. The command \Command{make depend} solves this problem: +It searches the main source file for \Type{$\backslash$input} commands and for +each file found it appends an appropriate {\make} +dependency\index{Dependency} to the {\Makefile}. Of course the files found +are searched in turn for more input files. By the way, \Command{make depend} +not only recognizes the \Type{$\backslash$input}\index{input@\Type{input}} +command, but also \Type{$\backslash$include}\index{include@\Type{include}}, +\Type{$\backslash$verbfile}\index{verbfile@\Type{verbfile}}, +\Type{$\backslash$blackandwhite}\index{blackandwhite@\Type{blackandwhite}}, +\Type{$\backslash$epsffile}\index{epsffile@\Type{epsffile}} und +\Type{$\backslash$psfig}\index{psfig@\Type{psfig}}.} + +\German{Sollten Sie Ihre Unterdateien allerdings nicht mit einer der genannten +Anweisungen einlesen, sondern daf"ur beispielsweise ein eigenes +Makro\index{Makro!eigenes} verwenden, funktioniert dieser Mechanismus nicht. +Sie haben aber die M"oglichkeit, die Dateien explizit in einer {\Imake}-Regel +anzugeben. An Stelle von} + +\English{However, this mechanism does not work if you do not read your input +files with these commands but with self-defined +macros\index{Macro!self-defined} instead. Such input files you can specify +explicitly in an {\Imake} rule. Instead of} + +\begin{quote} +\begin{verbatim} +SimpleLatexTarget(example) +\end{verbatim} +\end{quote} + +\German{schreiben Sie im} +\English{\noindent you write in the} +{\Imakefile}: + +\begin{quote} +\begin{verbatim} +NormalLatexTarget(example,chapter1.tex chapter2.tex chapter3.tex) +\end{verbatim} +\end{quote} + +\German{Eine weitere M"oglichkeit ist die Erweiterung des von \Command{make +depend} verwendeten Suchmusters. Einzelheiten dazu finden Sie in Kapitel +\ref{Aendern des Suchmusters} auf Seite~\pageref{Aendern des Suchmusters}.} + +\English{\noindent Another option you have is to extend the search pattern +\Command{make depend} uses. See chapter \ref{Aendern des Suchmusters} on +page~\pageref{Aendern des Suchmusters} for details.} + +\index{make depend|)} + + +\subsection{make Makefiles}\index{make Makefiles|(} + +\German{{\imt} ist in der Lage, sich auch um Dokumente in +Unterverzeichnissen\index{Unterverzeichnisse}\index{Subdirectories} zu +k"ummern. Mehrfache Verschachtelungen sind ebenfalls m"oglich. Jedes einzelne +Directory enth"alt ein eigenes {\Imakefile}. Sofern es "uber Unterverzeichnisse +verf"ugt, m"ussen diese in das {\Imakefile} eingetragen werden. Hier ein +Beispiel:} + +\English{{\imt} is able to care for documents residing in +subdirectories\index{subdirectories}. Multiple nesting is also possible. Each +single directory holds its own {\Imakefile}. If it has subdirectories, you must +list them in the {\Imakefile} as the following example shows:} + +\begin{quote} +\begin{verbatim} +#include <TeX.tmpl> + +#define IHaveSubdirs +#define PassCDebugFlags /* not useful here, but must be defined */ + +SUBDIRS = doc1 doc2 examples + +MakeSubdirs($(SUBDIRS)) +DependSubdirs($(SUBDIRS)) +\end{verbatim} +\end{quote} + +\German{Das Kommando \Command{make Makefiles} auf der obersten Ebene erstellt +die notwendigen {\Makefiles} in den Unterverzeichnissen. Anschlie"send +verzweigen die Kommandos \Command{make all}, \Command{make depend} und +\Command{make clean} auch in die Subdirectories. Bei den "ubrigen +{\make}-Targets ist dies in dieser {\imt}-Version noch nicht der Fall.} + +\English{\noindent Given in the top-level directory, the command \Command{make +Makefiles} creates the necessary {\Makefiles} in the subdirectories. +Subsequent \Command{make all}, \Command{make depend} and \Command{make clean} +also descend down into subdirectories. This is not the case with the rest of +the {\make} targets in this {\imt} version.} + +\index{make Makefiles|)} + + +\German{\subsection{Wenn's schnell gehen soll{\dots}}} +\English{\subsection{If You Are In a Hurry{\dots}}} + +\German{{\dots}und das Inhaltsverzeichnis oder die Literatur"ubersicht noch +nicht unbedingt korrekt sein m"ussen, definiert man das {\make}-Makro oder die +Environment-Variable \EnvVar{TEXDRAFT}\index{TEXDRAFT}. (Wie das geht, +schildert Kapitel \ref{Konfiguration mit Environment-Variablen und +Make-Makros}.) Ist dieser Parameter gesetzt, startet das +\Command{make}-Kommando maximal einen +{\LaTeX}-Lauf\index{LaTeX-Lauf@{\LaTeX}-Lauf!schneller}\index{schneller +LaTeX-Lauf@schneller {\LaTeX}-Lauf}, und der Benutzer hat das Ergebnis nach +kurzer Zeit vorliegen.} + +\English{{\dots}and don't care for a correct table of contents or bibliography, +define the {\make} macro or environment variable +\EnvVar{TEXDRAFT}\index{TEXDRAFT}. (How you can do this is explained in chapter +\ref{Konfiguration mit Environment-Variablen und Make-Makros}.) If this +parameter is set, the \Command{make} command executes only a single {\LaTeX} +run\index{LaTeX run@{\LaTeX} run!fast}, and you have your document available +after only a short while.} + + + + +\German{\section{Spezialit"aten}} +\English{\section{Specialities}} + +\German{Neben den oben beschriebenen Standardregeln unterst"utzt {\imt} einige +spezielle Problemf"alle durch geeignete Regeln oder Environment-Variablen +beziehungsweise {\make}-Makros.} + +\English{Besides the standard rules described above {\imt} supports some +special cases by suitables rules or environment variables resp. {\make} macros.} + + + +\German{\subsection{Konfiguration mit Environment-Variablen und +Make-Makros}\index{Konfiguration}} +\English{\subsection{Configuration With Environment Variables and Make +Makros}\index{Configuration}} + +\label{Konfiguration mit Environment-Variablen und Make-Makros} + +\German{Environment-Variablen\index{Environment-Variablen} und {\make}-Makros +werden per Konvention stets mit Gro"sbuchstaben geschrieben, zum Beispiel +\EnvVar{TEXINPUTS}. Es existieren folgende M"oglickeiten zur Definition solcher +Verarbeitungsparameter:} + +\English{Environment variables\index{Environment variables} and {\make} macros +are written with capital letters by convention, for example \EnvVar{TEXINPUTS}. +You have the following possiblities to define such processing parameters:} + +\begin{itemize} + +\item + +\German{{\Make}-Makros k"onnen im {\Imakefile}\index{Makro!im {\Imakefile}} +definiert werden. Diese Methode ist vorzuziehen, wenn es sich um einen +Parameter handelt, der permanent f"ur alle {\make}-L"aufe gesetzt sein soll. +Beispiel:} + +\English{You can define {\make} macros\index{Macro!in {\Imakefile}} in the +{\Imakefile}. This method is suitable for a parameter you want to set +permanently for all {\make} runs. Example:} + +\begin{quote} +\begin{verbatim} +TEXINPUTS = $(HOME)/TeX:$(TEXDEFAULTINPUTS) +\end{verbatim} +\end{quote} + +\item + +\German{Makros lassen sich auch auf der +\Command{make}-Kommandozeile\index{Makro!auf der Kommandozeile} spezifieren +und "uberschreiben dabei gegebenenfalls entsprechende Definitionen im +{\Imakefile}. Dadurch lassen sich tempor"are "Anderungen bequem erledigen. +Beispiel:} + +\English{Macros can also be defined of the command line\index{Macro!on +commandline} and overwrite corresponding definitions in the {\Imakefile}. This +way temporary settings can be handled easily. Example:} + +\begin{quote} +\begin{verbatim} +make TEXINPUTS='$(HOME)/lib/TeX:$(TEXDEFAULTINPUTS)' +\end{verbatim} +\end{quote} + +\item + +\German{Irgendwo dazwischen liegt das dritte Verfahren: Man definiert eine +Environment-Variable\index{Makro!\"{u}ber Environment-Variable}, die w"ahrend +ihrer Lebensdauer f"ur alle {\make}-L"aufe gilt. Soll die Environment-Variable +ein gleichnamiges Makro im {\Imakefile} "uberschreiben, mu"s der Benutzer die +{\make}-Option \Option{-e} angeben. Beispiel:} + +\English{The third procedure is lying somewhere in between: You can define an +environment variable\index{Macro!as environment variable}, which is taken into +account by all {\make} runs as long as it exists. If the environment variable +should overwrite an equally-named macro defined in the {\Imakefile}, you have +to specify the {\make} option \Option{-e}. Example:} + +\begin{quote} +\begin{verbatim} +setenv TEXINPUTS '$(HOME)/lib/TeX:$(TEXDEFAULTINPUTS)' +make -e +\end{verbatim} +\end{quote} + +\end{itemize} + + + +\subsection{AllTarget}\index{AllTarget}\label{AllTarget} + +\German{Gibt der Anwender das Kommando {\make}\index{make!ohne Parameter} ohne +Parameter ein, versucht {\make}, das erste Target im {\Makefile} zu erstellen. +Normalerweise ist dies die erste DVI-Datei, beispielsweise \File{example1.dvi} +im {\Imakefile} auf Seite~\pageref{ExamNormal}. Wer gern eine andere Regelung +h"atte, kann die {\Imake}-Regel +\ImakeRule{AllTarget}\index{AllTarget}\footnote{\ImakeRule{AllTarget} ist eine +Regel, die {\Imake} standardm"a"sig unterst"utzt.} verwenden. Diese Regel +besitzt einen Parameter, n"amlich eine Liste von {\make}-Targets, die bei +\Command{make all}\index{make all} erzeugt werden. Steht \ImakeRule{AllTarget} +vorn im {\Imakefile}, so ist gew"ahrleistet, da"s bei einem +\Command{make}-Aufruf ohne Parameter das Target \String{all} und mithin die in +\ImakeRule{AllTarget} angegebenen Targets generiert werden. Ein Beispiel m"oge +dies verdeutlichen:} + +\English{If you enter the command {\make}\index{make!without parameters} +without parameters, {\make} will try to generate the first target in the +{\Makefile}. Usually this is the first DVI file, for example +\File{example1.dvi} in the {\Imakefile} on page~\pageref{ExamNormal}. If you +want something else, use the {\Imake} rule +\ImakeRule{AllTarget}\index{AllTarget}\footnote{\ImakeRule{AllTarget} is a +standard {\Imake} rule.}. This rule has one parameter: a list of {\make} +targets \Command{make all}\index{make all} should generate. Put the rule +\ImakeRule{AllTarget} in front of all other targets to generate its targets +when you enter just {\make}. An example might make this more clear:} + +{\samepage +\begin{quote} +\begin{verbatim} +#include <TeX.tmpl> +NormalLatexRule() +AllTarget(example1.dvi example2.dvi) +NormalLatexTarget(example1,) +NormalLatexTarget(example2,input.tex) +\end{verbatim} +\end{quote} +} + +\German{\ImakeRule{AllTarget(example1.dvi example2.dvi)} sorgt daf"ur, da"s bei +{\make} nicht nur die erste Datei \File{example1.dvi} erzeugt wird, sondern +auch \File{example2.dvi}. Es reichte sogar aus, die \ImakeRule{AllTarget()} +ohne Parameter zu schreiben, da {\imt} f"ur jede DVI-Datei \File{name.dvi} +intern ohnehin \ImakeRule{AllTarget(name.dvi)} verwendet.} + +\English{\noindent In order to create not only the first file +\File{example1.dvi}, \ImakeRule{AllTarget(example1.dvi example2.dvi)} has been +written here.} + + + +\German{\subsection{Einbinden von Graphiken}\index{Graphiken}} +\English{\subsection{Including Graphics}\index{Graphics}} + +\label{Einbinden von Graphiken} + + +\German{\subsubsection{Imake-Regeln}} +\English{\subsubsection{Imake Rules}} + +\index{PostScript|(} + +\German{PostScript-Graphiken\index{Graphikformate!PostScript} kann das Makro +\Type{$\backslash$psfig}\index{psfig@\Type{psfig}} in {\LaTeX}-Dokumente +einbinden. Viele Graphiken liegen jedoch urspr"unglich nicht als +PostScript-Dateien, sondern in einem anderen Format vor, und m"ussen erst nach +Encapsulated PostScript\index{Encapsulated +PostScript}\index{PostScript!Encapsulated} konvertiert werden. Auch dieser +Vorgang l"a"st sich mit {\imt} automatisch abwickeln.} + +\English{You can include PostScript graphics\index{Graphic formats!PostScript} +in your {\LaTeX} document with the macro +\Type{$\backslash$psfig}\index{psfig@\Type{psfig}}. However, many pictures at +hand have a different image format and must be converted to Encapsulated +PostScript\index{Encapsulated PostScript}\index{PostScript!Encapsulated} first. +{\imt} can do that automatically.} + +\German{{\imt} enth"alt zur Zeit Regeln zur Konvertierung von +FIG-\index{FIG}\index{Graphikformate!FIG}, +GIF-\index{GIF}\index{Graphikformate!GIF}, +TIFF-\index{TIFF}\index{Graphikformate!TIFF} und +TGIF-Dateien\index{TGIF}\index{Graphikformate!TGIF} nach PostScript. Falls Sie +weitere Konverter ben"otigen und diese verf"ugbar sind, nehme ich sie gern in +{\imt} auf. Bitte setzen Sie sich mit mir in Verbindung!} + +\English{Presently {\imt} comprises rules to convert +FIG\index{FIG}\index{Graphic formats!FIG}, GIF\index{GIF}\index{Graphic +formats!GIF}, TIFF\index{TIFF}\index{Graphic formats!TIFF} and +TGIF\index{TGIF}\index{Graphic formats!TGIF} files into PostScript. If you need +any more converters and such are available I'd be pleased to include them in +{\imt}. Please get in touch with me!} + +\index{EpsRules|(} + +\German{Die {\Imake}-Regel \ImakeRule{EpsRules()} bindet die Graphikkonverter +in das generierte {\Makefile} ein. Jede zu generierende PostScript-Bilddatei +wird in einer \ImakeRule{Eps\-Tar\-get()}\index{EpsTarget}-Regel spezifiziert. +Das sieht zum Beispiel so aus:} + +\English{The {\Imake} rule \ImakeRule{EpsRules()} includes the graphics +converters in the generated {\Makefile}. Each PostScript image file which +{\imt} must generate is specified by a +\ImakeRule{Eps\-Tar\-get()}\index{EpsTarget} rule. Consider the following +example:} + +\begin{quote} +\begin{verbatim} +#include <TeX.tmpl> + +AllTarget(example.dvi) + +EpsRules() +EpsTarget(bild1) +EpsTarget(bild2) + +NormalLatexTarget(Folien,EpsObject(bild1) EpsObject(bild2)) +\end{verbatim} +\end{quote} + +\index{AllTarget} +\index{EpsRules} +\index{EpsTarget} +\index{EpsObject} +\index{NormalLatexTarget} + +\German{Wie in \ref{AllTarget} beschrieben, sorgt die Regel +\ImakeRule{AllTarget(example.dvi)} daf"ur, da"s bei Eingabe des Kommandos +{\make} ohne Parameter die Zieldatei \File{example.dvi} erzeugt wird. Ohne +diese Regel erstellte {\make} das erste im {\Makefile} angegebene Ziel, hier +die PostScript-Datei \File{bild1.eps}.} + +\English{\noindent As described in \ref{AllTarget}, rule +\ImakeRule{AllTarget(example.dvi)} allows the user to simply type +\Command{make} without any parameters in order create the target file +\File{example.dvi}. Without this rule {\make} would create the first target +mentioned in the {\Makefile}, here the PostScript file \File{bild1.eps}.} + +\German{Damit ist bereits die Wirkung von +\ImakeRule{Eps\-Tar\-get}\index{EpsTarget} angedeutet: Diese {\Imake}-Regel +erzeugt automatisch die angegebene PostScript-Bilddatei aus der zugeh"origen +Quelldatei. Welcher Konverter ausgef"uhrt wird, bestimmt die Endung des +Originaldateinamens. Wurde die Quelldatei zum Beispiel mit +\Program{xfig}\index{xfig} erzeugt und liegt im +FIG-Format\index{FIG}\index{Graphikformate!FIG} vor (Endung {\tt .fig}), +erfolgt die Konvertierung durch} + +\English{\ImakeRule{Eps\-Tar\-get}\index{EpsTarget} automatically generates the +specified PostScript image file from the corresponding source file. The source +file's extension determines which converter is to be used. If the source file +has been created with \Program{xfig}\index{xfig} and is present in the FIG +format\index{FIG}\index{Graphic formats!FIG} (Extension {\tt .fig}) the +conversion is done by} + +\begin{quote} +\begin{verbatim} +(fig2dev -L ps | sed -e 's/setgray fill/setgray eofill/g') \ +<bild1.fig >bild1.eps +\end{verbatim} +\end{quote} + +\German{Bei GIF-Dateien\index{GIF}\index{Graphikformate!GIF} (Endung {\tt +.gif}) f"uhrt {\make} folgende Kommandos aus:} + +\English{\noindent GIF files\index{GIF}\index{Graphic formats!GIF} (Extension +{\tt .gif}) are converted as follows:} + +\begin{quote} +\begin{verbatim} +(giftoppm | ppmtopgm | pnmtops -noturn -rle) <bild2.gif >bild2.eps +\end{verbatim} +\end{quote} + +\German{Diese Kommandofolge wandelt das GIF-Datei zun"achst mit Hilfe des +PBMPLUS-Programms\index{PBMPLUS} \Program{giftoppm}\index{giftoppm} in das +PPM-Format\index{PPM}\index{Graphikformate!PPM} (Portable Pixmap, f"ur +Farbbilder), generiert daraus ein entsprechendes Graustufenbild +(\Program{ppmtopgm}\index{ppmtopgm}) und konvertiert dieses schlie"slich nach +PostScript (\Program{pnmtops}\index{pnmtops}). Die Farb\-in\-for\-ma\-tion ist +sicher in den meisten F"allen entbehrlich, n"amlich wenn auf einem +Schwarzwei"sdrucker\index{Drucker!schwarzwei{\ss}} ausgegeben wird. Wer seinen +Ausdruck unbedingt farbig braucht, kann die Voreinstellung durch die Anweisung} + +\English{\noindent This command sequence first uses the PBMPLUS\index{PBMPLUS} +program \Program{giftoppm}\index{giftoppm} to convert the GIF file into the +PPM\index{PPM}\index{Graphic formats!PPM} representation (Portable Pixmap, for +color images), reduces it to a corresponding grayscale image +(\Program{ppmtopgm}\index{ppmtopgm}) and finally creates the PostScript file +(\Program{pnmtops}\index{pnmtops}). If the output goes to a blank-and-white +printer\index{Printer!blank-and-white}, the color information is dispensable. +However, if you need color output, change the default by the line} + +\begin{quote} +\begin{verbatim} +GIFTOEPS = (giftoppm | pnmtops -noturn -rle) +\end{verbatim} +\end{quote} + +\German{im {\Imakefile} "uberschreiben.} + +\English{\noindent in your {\Imakefile}.} + +\German{Bei reinen +Schwarzwei"sbildern\index{Schwarzweisbilder@Schwarzwei{\ss}bilder} (ohne +Graustufen) kann der Benutzer seine GIF-Datei so umbenennen, das sie die Endung +{\tt .gif-bw} an Stelle von {\tt .gif} erh"alt. Bei solchen Dateien schickt +{\imt} das Graustufenbild noch durch den Filter +\Program{pgmtopbm}\index{pgmtopbm}, und die PostScript-Datei wird deutlich +kleiner.} + +\English{GIF files with pure blank-and-white images (without grayscales) you +should give a filename extension of {\tt .gif-bw} instead of {\tt .gif}. {\imt} +will pipe files with such an extension through the additional filter +\Program{pgmtopbm}\index{pgmtopbm}, which will reduce the size of the +PostScript file considerably.} + +\German{\bold{Achtung:} F"ur eine Datei, die im Original bereits im +PostScript-Format vorliegt, darf \bold{kein} +\ImakeRule{Eps\-Tar\-get}\index{EpsTarget} vorhanden sein. Die Datei w"urde +sonst durch \Command{make clean}\index{make clean} gel"oscht.} + +\English{\bold{Attention:} Never write down an +\ImakeRule{Eps\-Tar\-get}\index{EpsTarget} for a file which is in PostScript +format originally! Any \Command{make clean}\index{make clean} would remove it.} + +\German{Der\footnote{Dies ist in der Tat ein einziger Parameter, n"amlich --- +aus der Sicht von {\Imake} --- ein simpler String.} Parameter +\bold{EpsObject(bild1) EpsObject(bild2)}\index{EpsObject} besagt, da"s die +DVI-Datei von den Graphiken \File{bild1} und \File{bild2} abh"angt. Sofern die +entsprechenden PostScript-Dateien \File{bild1.eps} und \File{bild2.eps} per +\Type{$\backslash$psfig} eingelesen werden, kann dieser +\ImakeRule{NormalLatexTarget}-Parameter leer gelassen werden.} + +\English{The parameter \bold{EpsObject(bild1) +EpsObject(bild2)}\index{EpsObject} tells {\imt} that the DVI file depends on +the pictures \File{bild1} and \File{bild2}. If their PostScript representations +\File{bild1.eps} and \File{bild2.eps} are read by \Type{$\backslash$psfig}, +this \ImakeRule{NormalLatexTarget} parameter may be left blank.} + +\index{EpsRules|)} +\index{PostScript|)} + + + +\German{\subsubsection{Konfigurationsm"oglichkeiten}} +\English{\subsubsection{Configuration Options}} + +\German{Die Konvertierung\index{Konvertierung!von Bilddateien} der Quellformate +nach EPS erledigen Filter, die der Benutzer "uber folgende Makros definieren +kann:} + +\English{Image conversion\index{Image convertion} from source formats to EPS is +done by filters. You can change the default filters by redefining the following +macros:} + +\begin{description} + +\item[GIFTOEPS\index{GIFTOEPS}:] + +\German{konvertiert GIF nach EPS.\\ Voreinstellung: }\English{converts GIF into +EPS.\\ Default: }\Type{(giftoppm $|$ ppmtopgm $|$ pnmtops -noturn -rle)} + +\item[GIFBWTOEPS\index{GIFBWTOEPS}:] + +\German{konvertiert Schwarzwei"s-GIF nach EPS.\\ Voreinstellung: +}\English{converts black-and-white GIFs into EPS.\\ Default: }\Type{(giftoppm +$|$ ppmtopgm $|$ pgmtopbm $|$ pnmtops -noturn -rle)} + +\item[FIGTOEPS\index{FIGTOEPS}:] + +\German{konvertiert FIG nach EPS.\\ Voreinstellung: }\English{converts FIG into +EPS.\\ Default: }\Type{(fig2dev -L ps $|$ sed -e 's/setgray fill/setgray +eofill/g'} + +\end{description} + + + +\German{\subsection{Papierformate}\index{Papierformat}} +\English{\subsection{Paper Formats}\index{Paper formats}} + +\label{Papierformate} + +\German{Die von {\imt} unterst"utzten Previewer\index{Previewer} +\Program{xdvi}\index{xdvi} und \Program{ghostview}\index{ghostview} sowie der +Konverter \Program{dvips}\index{dvips} verlangen die Spezifikation des +verwendeten Papierformats. Findet das Programm keine entsprechende +Kommandozeilenoption, w"ahlt es eine programmspezifische +Voreinstellung\index{Papierformat!programmspezifische Voreinstellung}. +Europ"aische Anwender sind damit zumeist schlecht bedient, da es sich dabei in +der Regel um amerikanische Formate handelt. Es empfiehlt sich daher, das +verwendete Papierformat durch eine entsprechende {\Imake}-Regel explizit +festzulegen. Folgende Regeln unterst"utzt {\imt} derzeit:} + +\English{The previewers\index{Previewer} \Program{xdvi}\index{xdvi} and +\Program{ghostview}\index{ghostview} as well as the converter +\Program{dvips}\index{dvips} require the specification of the paper format you +want to use. If the program does not find an appropriate command line option it +will take an application specific default. The latter are mostly American +formats and thus usually unsuitable for European users. It is therefore not a +bad idea to specify the paper format explicitly by an {\Imake} rule. {\imt} +presently supports the following rules:} + +\begin{center} +\begin{tabular}{l|l} +\German{{\Imake}-Regel}\English{{\Imake} rule} & \German{Papierformat}\English{Paper format} \\ +\hline +PaperFormatA4()\index{PaperFormatA4} & DIN A4 \German{hochkant}\English{portrait}\\ +PaperFormatA4R()\index{PaperFormatA4R} & DIN A4 \German{quer}\English{landscape} \\ +PaperFormatLetterR()\index{PaperFormatLetterR} & Letter \German{quer}\English{landscape} \\ +\end{tabular} +\end{center} + +\German{Diese Regeln vermitteln die korrekten Gr"o"senangaben an die oben +genannten Programme weiter. \bold{Achtung:} Auf den {\LaTeX}-Lauf und die +Erzeugung der DVI-Datei sind die Angaben zum Papierformat ohne Einflu"s. Hier +z"ahlen nur die Gr"o"senangaben\index{Papierformat!Grosenangaben in der +TeX-Quelldatei@Gr\"{o}{\ss}enangaben in der {\TeX}-Quelldatei} in der +{\TeX}-Quelldatei.} + +\English{\noindent These rules pass the correct paper sizes to the above +mentioned programs. {\bf Attention:} The paper format rules do not affect the +{\LaTeX} run and the DVI file generation in any way. Here only the settings in +the {\TeX} source file\index{Paper formats!Settings in TeX source file@Settings +in {\TeX} source file} are taken into consideration.} + +\German{Sollten Sie neben den oben aufgelisteten weitere Formate ben"otigen, +setzen Sie sich bitte mit mir in Verbindung!} + +\English{In case you should need any more paper formats, please let me know!} + + +\German{\subsubsection{Konfigurationsm"oglichkeiten}} +\English{\subsubsection{Configuration Options}} + +\German{Das vom Benutzer im {\Imakefile} gew"ahlte Format vermittelt {\imt} +"uber die Makros \EnvVar{FORMATXDVI}\index{FORMATXDVI}, +\EnvVar{FORMATDVIPS}\index{FORMATDVIPS} und +\EnvVar{FORMATGHOSTVIEW}\index{FORMATGHOSTVIEW} weiter. \EnvVar{FORMATXDVI} +enth"alt dabei die Option \Option{-paper} von \Program{xdvi}, +\EnvVar{FORMATDVIPS} die Option \Option{-t} von \Program{dvips}, und +\Program{ghostview} erf"ahrt sein Format "uber \EnvVar{FORMATGHOSTVIEW}.} + +\English{The paper format you have selected in the {\Imakefile} {\imt} passes +on by use the macros \EnvVar{FORMATXDVI}\index{FORMATXDVI}, +\EnvVar{FORMATDVIPS}\index{FORMATDVIPS} and +\EnvVar{FORMATGHOSTVIEW}\index{FORMATGHOSTVIEW}. \EnvVar{FORMATXDVI} holds +\Program{xdvi}'s option \Option{-paper}, \EnvVar{FORMATDVIPS} \Program{dvips}' +option \Option{-t}, and \Program{ghostview} learns about its paper format by +\EnvVar{FORMATGHOSTVIEW}.} + + + +\German{\subsection{{\TeX}-Eingabedateien}\index{TeX-Eingabedateien@{\TeX}-Eingabedateien}} +\English{\subsection{{\TeX} Input Files}\index{TeX input files@{\TeX} input +files}} + +\label{TeX-Eingabedateien} + +\German{Wenn nichts weiter angegeben ist, sucht der +\Type{$\backslash$input}-Befehl eine einzulesende Datei\index{eingelesene +Dateien} zun"achst im aktuellen Directory und an\-schlie\-"send im globalen +{\TeX}-Inputs-Verzeichnis. Weitere Directories, in denen {\TeX} nach solchen +Dateien suchen soll, k"onnen Sie mit Hilfe der Environment-Variablen +\EnvVar{TEXINPUTS}\index{TEXINPUTS} spezifizieren. Beispiel: Sie besitzen +eigene Style-Dateien im Directory \File{TeX} unterhalb Ihres +Home-Verzeichnisses. Damit {\TeX} sie findet, tragen Sie die Zeile} + +\English{Normally the \Type{$\backslash$input} command looks for an input +file\index{Input files} in the currect directory first and, if it is not found +there, in the global {\TeX} inputs directory. You can specify further +directories with the help of the \EnvVar{TEXINPUTS}\index{TEXINPUTS} +environment variable. Example: You have your own style files in directory +\File{TeX} below your home directory. To let {\TeX} find them, put the line} + +\begin{quote} +\begin{verbatim} +TEXINPUTS = .:$(HOME)/TeX:$(TEXDEFAULTINPUTS) +\end{verbatim} +\end{quote} + +\German{in Ihr {\Imakefile} ein.} +\English{\noindent into your {\Imakefile}.} + +\German{Wie Sie richtig vermuten, k"onnen Sie "uber die symbolische Bezeichnung +\EnvVarRef{TEXDEFAULTINPUTS}\index{TEXDEFAULTINPUTS} das +\File{inputs}-Directory der lokalen {\TeX}-Installation ansprechen, ohne da"s +Sie wissen m"ussen, wo genau sich dieses Verzeichnis befindet.} + +\English{As you might guess see, the symbolic name +\EnvVarRef{TEXDEFAULTINPUTS}\index{TEXDEFAULTINPUTS} addresses the +\File{inputs} directory of your local {\TeX} installation. You don't have to +know where this directory is actually located.} + + + +\German{\subsection{"Andern des Suchmusters f"ur "`make depend"'}} +\English{\subsection{Changing the Search Pattern For ``make depend''}} + +\label{Aendern des Suchmusters} + +\German{\index{make depend!\"{A}ndern des Suchmusters|(}} +\English{\index{make depend!changing the search pattern|(}} + +\German{Das Kommando \Command{make depend}\index{make depend} erkennt nur +solche Dateien, die, ausgehend von der Hauptdatei, mit mit +\Type{$\backslash$input}\index{input@\Type{input}}, +\Type{$\backslash$verbfile}\index{verbfile@\Type{verbfile}}, +\Type{$\backslash$blackandwhite}\index{blackandwhite@\Type{blackandwhite}} oder +\Type{$\backslash$psfig}\index{psfig@\Type{psfig}} eingelesen werden. Sie +k"onnen diese Liste um weitere Schl"usselw"orter erweitern, indem Sie das von +\Command{make depend} voreingestellte Suchmuster entsprechend erweitern. Die +Voreinstellung sieht so aus:} + +\English{The command \Command{make depend}\index{make depend} recognizes only +those files which are read by +\Type{$\backslash$input}\index{input@\Type{input}}, +\Type{$\backslash$include}\index{include@\Type{include}}, +\Type{$\backslash$verbfile}\index{verbfile@\Type{verbfile}}, +\Type{$\backslash$blackandwhite}\index{blackandwhite@\Type{blackandwhite}}, +\Type{$\backslash$epsffile}\index{epsffile@\Type{epsffile}} or +\Type{$\backslash$psfig}\index{psfig@\Type{psfig}}. You can add further key +words to this list by amending \Command{make depend}'s default search pattern. +The default looks like this:} + +\begin{quote} +\begin{verbatim} +-e '/\\psfig/ s/^.*figure=\([^,}]*\).*/\1/p' \ +-e '/\\epsffile/ s/.*epsffile *{\([^}]*\)}.*/\1/p' \ +-e '/\\input/ s/.*input *{\([^}]*\.tex\)}.*/\1/p' \ +-e '/\\verbfile/ s/.*verbfile {\([^}]*\.tex\)}.*/\1/p' \ +-e '/\\blackandwhite/ s/.*blackandwhite *{\([^}]*.tex\)}.*/\1/p' \ +-e '/\\input/ s/.*input *{\([^}]*\)}.*/\1.tex/p' \ +-e '/\\include/ s/.*include *{\([^}]*\)}.*/\1.tex/p' \ +-e '/\\verbfile/ s/.*verbfile *{\([^}]*\)}.*/\1.tex/p' \ +-e '/\\blackandwhite/ s/.*blackandwhite *{\([^}]*\)}.*/\1.tex/p' +\end{verbatim} +\end{quote} + +\German{Was hier so f"urchterlich aussieht, sind Suchmuster f"ur den +Stream-Editor \Program{sed}\index{sed}, der intern von \Command{make depend} +aufgerufen wird. Solange Sie nur solche neuen Einlesekommandos definieren +wollen, die die gleiche Aufrufsyntax wie +\Type{$\backslash$input}\index{input@\Type{input}} besitzen, ist die "Anderung +nicht schwer. Kopieren Sie die beiden Zeilen mit \Type{-e +'/$\backslash\backslash$input} am Anfang\footnote{Sie finden diese Zeilen im +generierten {\Makefile}.} und ersetzen Sie in den Kopien "`input"' durch Ihr +eigenes Kommando, zum Beispiel \Type{$\backslash$einlesen}. Schlie"slich tragen +Sie im {\Imakefile} ein:} + +\English{\noindent This horrible thing is a search pattern for the stream +editor \Program{sed}\index{sed}, which is called internally by \Command{make +depend}. As long as you define only input commands which have the same calling +syntax as \Type{$\backslash$input}\index{input@\Type{input}}, amending the list +is not hard. Copy the tow lines starting with \Type{-e +'/$\backslash\backslash$input}\footnote{You will find these lines in the +generated {\Makefile}} and within the copies replace "`input"' by your own +command, for example \Type{$\backslash$einlesen}. Finally you enter into your +{\Imakefile}:} + +\begin{quote} +\begin{verbatim} +TEXDEPENDPATTERN = -e '/\\psfig/ s/^.*figure=\([^,}]*\).*/\1/p' \ +-e '/\\epsffile/ s/.*epsffile *{\([^}]*\)}.*/\1/p' \ +-e '/\\input/ s/.*input *{\([^}]*\.tex\)}.*/\1/p' \ +-e '/\\einlesen/ s/.*einlesen *{\([^}]*\.tex\)}.*/\1/p' \ +-e '/\\verbfile/ s/.*verbfile {\([^}]*\.tex\)}.*/\1/p' \ +-e '/\\blackandwhite/ s/.*blackandwhite *{\([^}]*.tex\)}.*/\1/p' \ +-e '/\\input/ s/.*input *{\([^}]*\)}.*/\1.tex/p' \ +-e '/\\einlesen/ s/.*einlesen *{\([^}]*\)}.*/\1.tex/p' \ +-e '/\\include/ s/.*include *{\([^}]*\)}.*/\1.tex/p' \ +-e '/\\verbfile/ s/.*verbfile *{\([^}]*\)}.*/\1.tex/p' \ +-e '/\\blackandwhite/ s/.*blackandwhite *{\([^}]*\)}.*/\1.tex/p' +\end{verbatim} +\end{quote} +\index{TEXDEPENDPATTERN} +\index{make depend!\"{A}ndern des Suchmusters|)} + + +\German{\subsection{Konfiguration von Konvertern und Previewern}} +\English{\subsection{Configuring Converters and Previewers}} + +\German{ +\index{Konfiguration!Konverter} +\index{Konfiguration!Previewer} +\index{Previewer!Konfiguration}} + +\English{ +\index{Configuration!converters} +\index{Configuration!previewers} +\index{Previewer!configuration}} + +\German{Die Konverter, die aus der DVI-Datei Daten im PostScript- und +DVIPSFIG-Format erzeugen, und die zu verwenden Previewer lassen sich "uber +folgende Makros festlegen:} + +\English{The converter to transform the DVI file to PostScript and the +previewers to be used you can specify by the following macros:} + +\begin{description} + +\item[DVITOPSCMD\index{DVITOPSCMD}:] + +\German{konvertiert DVI nach PostScript. Voreinstellung: }\English{converts +DVI into PostScript. Default: }\verb+dvips+ + +\item[DVITOPSOPT\index{DVITOPSOPT}:] \German{Optionen f"ur den +PostScript-Konverter. Voreinstellung: }\English{options for the PostScript +converter. Default: }\verb+$(FORMATDVIPS) -f+ + +\item[DVITOPSFIGCMD\index{DVITOPSFIGCMD}:] \German{konvertiert DVI nach +DVIPSFIG. Voreinstellung: }\English{converts DVI into DVIPSFIG. Default: +}\verb+dvi2prt+ + +\item[DVITOPSFIGOPT\index{DVITOPSFIGOPT}:] \German{Optionen f"ur den +DVIPSFIG-Konverter. Voreinstellung: leer}\English{options for the DVIPSFIG +converter. Default: empty} + +\item[VIEWDVICMD\index{VIEWDVICMD}:] \German{zeigt die DVI-Datei an. +Voreinstellung:}\English{displays the DVI file. Default: } \verb+xdvi+ + +\item[VIEWDVIOPT\index{VIEWDVIOPT}:] \German{Optionen f"ur den DVI-Previewer. +Voreinstellung:}\English{options for the DVI previewer. Default: } +\verb+$(FORMATXDVI)+ + +\item[VIEWPSCMD\index{VIEWPSCMD}:] \German{zeigt die PostScript-Datei an. +Voreinstellung: }\English{displays the PostScript file. Default: } +\verb+ghostview+ + +\item[VIEWPSOPT\index{VIEWPSOPT}:] \German{Optionen f"ur den +PostScript-Previewer.\\ Voreinstellung:}\English{options for the PostScript +previewer.\\ Default:} \verb+$(FORMATGHOSTVIEW) -magstep -1+ + +\end{description} + +\newpage + + + + +\German{\section{"Ubersicht: Imake-Regeln}} +\English{\section{Overview: Imake Rules}} + +\newcommand{\entry}[1]{#1\index{#1}} + +\German{\subsection{Standardregeln}} +\English{\subsection{Standard rules}} + +\begin{center} +\begin{tabular}{|lll|} +\hline +\German{\bold{Regel}}\English{\bold{Rules}} & \bold{Parameter} & \German{\bold{Beschreibung}}\English{\bold{Description}} \\ +\hline +\hline +\entry{SimpleLatexTarget} & texfile & \ref{SimpleLatexTarget} \\ +\entry{SimpleLatexIndexTarget} & texfile & \ref{NormalLatexIndexTarget}, \ref{NormalLatexTarget} \\ +\entry{SimpleLatexBibtexTarget} & texfile,bibtexlib & \ref{NormalLatexBibtexTarget}, \ref{NormalLatexTarget} \\ +\entry{SimpleLatexBibtexIndexTarget} & texfile,bibtexlib & \ref{NormalLatexBibtexIndexTarget}, \ref{NormalLatexTarget} \\ +\entry{SimpleLatexIndexBibtexTarget} & texfile,bibtexlib & \ref{NormalLatexIndexBibtexTarget}, \ref{NormalLatexTarget} \\ +\hline +\entry{NormalLatexRule} & --- & \ref{NormalLatexRule} \\ +\entry{NormalLatexTarget} & texfile,deps & \ref{NormalLatexTarget} \\ +\entry{NormalLatexIndexTarget} & texfile,deps & \ref{NormalLatexIndexTarget} \\ +\entry{NormalLatexBibtexTarget} & texfile,deps,bibtexlib & \ref{NormalLatexBibtexTarget} \\ +\entry{NormalLatexBibtexIndexTarget} & texfile,deps,bibtexlib & \ref{NormalLatexBibtexIndexTarget} \\ +\entry{NormalLatexIndexBibtexTarget} & texfile,deps,bibtexlib & \ref{NormalLatexIndexBibtexTarget} \\ +\hline +\entry{SimpleSlitexTarget} & texfile & \ref{SimpleLatexTarget}, \ref{SLITeX} \\ +\entry{SimpleSlitexIndexTarget} & texfile & \ref{NormalLatexIndexTarget}, \ref{NormalLatexTarget}, \ref{SLITeX} \\ +\entry{SimpleSlitexBibtexTarget} & texfile,bibtexlib & \ref{NormalLatexBibtexTarget}, \ref{NormalLatexTarget}, \ref{SLITeX} \\ +\entry{SimpleSlitexBibtexIndexTarget} & texfile,bibtexlib & \ref{NormalLatexBibtexIndexTarget}, \ref{NormalLatexTarget}, \ref{SLITeX} \\ +\entry{SimpleSlitexIndexBibtexTarget} & texfile,bibtexlib & \ref{NormalLatexIndexBibtexTarget}, \ref{NormalLatexTarget}, \ref{SLITeX} \\ +\hline +\entry{NormalSlitexRule} & --- & \ref{NormalLatexRule}, \ref{SLITeX} \\ +\entry{NormalSlitexTarget} & texfile,deps & \ref{NormalLatexTarget}, \ref{SLITeX} \\ +\entry{NormalSlitexIndexTarget} & texfile,deps & \ref{NormalLatexIndexTarget}, \ref{SLITeX} \\ +\entry{NormalSlitexBibtexTarget} & texfile,deps,bibtexlib & \ref{NormalLatexBibtexTarget}, \ref{SLITeX} \\ +\entry{NormalSlitexBibtexIndexTarget} & texfile,deps,bibtexlib & \ref{NormalLatexBibtexIndexTarget}, \ref{SLITeX} \\ +\entry{NormalSlitexIndexBibtexTarget} & texfile,deps,bibtexlib & \ref{NormalLatexIndexBibtexTarget}, \ref{SLITeX} \\ +\hline +\end{tabular} +\end{center} + + + +\German{\subsection{Einbinden von Graphiken}} +\English{\subsection{Including Graphics}} + +\begin{center} +\begin{tabular}{|lll|} +\hline +\German{\bold{Regel}}\English{\bold{Rules}} & \bold{Parameter} & \German{\bold{Beschreibung}}\English{\bold{Description}} \\ +\hline +\hline +\entry{EpsRules} & --- & \ref{Einbinden von Graphiken} \\ +\entry{EpsObject} & psname & \ref{Einbinden von Graphiken} \\ +\entry{EpsTarget} & psname & \ref{Einbinden von Graphiken} \\ +\hline +\entry{FigToEpsRule} & --- & \ref{Einbinden von Graphiken} \\ +\entry{GifToEpsRule} & --- & \ref{Einbinden von Graphiken} \\ +\entry{GifBwToEpsRule} & --- & \ref{Einbinden von Graphiken} \\ +\hline +\end{tabular} +\end{center} + + + +\German{\subsection{Papierformate}} +\English{\subsection{Paper Formats}} + +\begin{center} +\begin{tabular}{|lll|} +\hline +\German{\bold{Regel}}\English{\bold{Rules}} & \bold{Parameter} & \German{\bold{Beschreibung}}\English{\bold{Description}} \\ +\hline +\hline +\entry{PaperFormatA4} & --- & \ref{Papierformate} \\ +\entry{PaperFormatA4R} & --- & \ref{Papierformate} \\ +\hline +\entry{PaperFormatLetterR} & --- & \ref{Papierformate} \\ +\hline +\end{tabular} +\end{center} + + + + +\German{\section{"Ubersicht: Environment-Variablen und Make-Makros}} +\English{\section{Overview: Environment Variables And Make Makros}} + +\newcommand{\is}{\German{installationsspezifisch}\English{installation dependend}} +\newcommand{\ud}{\German{undefiniert}\English{undefined}} + +{\footnotesize +\begin{center} +\begin{tabular}{l|l} +\German{\bold{Make-Makro:}}\English{\bold{Make makro:}} & \German{\bold{Voreinstellung:}}\English{\bold{Default:}} \\ +\hline +\hline +\entry{DVITOPSFIGCMD} & \verb@dvi2prt@\\ +\entry{DVITOPSFIGOPT} & \verb@ @\\ +\entry{DVITOPSCMD} & \verb@dvips@\\ +\entry{DVITOPSOPT} & \verb@$(FORMATDVIPS) -f@\\ +\entry{VIEWDVICMD} & \verb@xdvi@\\ +\entry{VIEWDVIOPT} & \verb@$(FORMATXDVI)@\\ +\entry{VIEWPSCMD} & \verb@ghostview@\\ +\entry{VIEWPSOPT} & \verb@$(FORMATGHOSTVIEW)@\\ +\hline +\entry{TEXDEPENDPATTERN} & \verb@-e '/\\psfig/ s/^.*figure=\([^,}]*\).*/\1/p' \@\\ + & \verb@-e '/\\epsffile/ s/.*epsffile *{\([^}]*\)}.*/\1/p' \@\\ + & \verb@-e '/\\input/ s/.*input *{\([^}]*\.tex\)}.*/\1/p' \@\\ + & \verb@-e '/\\verbfile/ s/.*verbfile {\([^}]*\.tex\)}.*/\1/p' \@\\ + & \verb@-e '/\\blackandwhite/ s/.*blackandwhite *{\([^}]*.tex\)}.*/\1/p' \@\\ + & \verb@-e '/\\input/ s/.*input *{\([^}]*\)}.*/\1.tex/p' \@\\ + & \verb@-e '/\\include/ s/.*include *{\([^}]*\)}.*/\1.tex/p' \@\\ + & \verb@-e '/\\verbfile/ s/.*verbfile *{\([^}]*\)}.*/\1.tex/p' \@\\ + & \verb@-e '/\\blackandwhite/ s/.*blackandwhite *{\([^}]*\)}.*/\1.tex/p'@\\ +\hline +\entry{TEXDEFAULTINPUTS} & {\is} \\ +\entry{TEXINPUTS} & \verb@$(TEXDEFAULTINPUTS)@ \\ +\hline +\entry{TEXDRAFT} & {\ud} \\ +\hline +\entry{GIFTOEPS} & \verb@(giftoppm | ppmtopgm | pnmtops -noturn -rle)@\\ +\entry{GIFBWTOEPS} & \verb@(giftoppm | ppmtopgm | pgmtopbm | pnmtops -noturn -rle)@\\ +\entry{FIGTOEPS} & \verb@(fig2dev -L ps | sed -e 's/setgray fill/setgray eofill/g')@\\ +\hline +\entry{FORMATXDVI} & {\ud} \\ +\entry{FORMATDVIPS} & {\ud} \\ +\entry{FORMATGHOSTVIEW} & {\ud} \\ +\hline +\end{tabular} +\end{center} +} + + + + +\section{Bugs}\index{Bugs} + +\begin{itemize} + +\item + +\German{Bei der Untersuchung der Quelldatei mit \Command{make +depend}\index{make depend} werden nur solche Unterdateien erkannt, die direkt, +das hei"st, ohne "`Umweg"' "uber ein Makro, mit +\Type{$\backslash$input}\index{input@\Type{input}}, +\Type{$\backslash$include}\index{include@\Type{include}}, +\Type{$\backslash$verbfile}\index{verbfile@\Type{verbfile}}, +\Type{$\backslash$blackandwhite}\index{blackandwhite@\Type{blackandwhite}}, +\Type{$\backslash$epsffile}\index{epsffile@\Type{epsffile}} oder +\Type{$\backslash$psfig}\index{psfig@\Type{psfig}} eingelesen werden.} + +\English{When examining the source file, \Command{make depend}\index{make +depend} recognises only those input files directly read by +\Type{$\backslash$input}\index{input@\Type{input}}, +\Type{$\backslash$include}\index{include@\Type{include}}, +\Type{$\backslash$verbfile}\index{verbfile@\Type{verbfile}}, +\Type{$\backslash$blackandwhite}\index{blackandwhite@\Type{blackandwhite}}, +\Type{$\backslash$epsffile}\index{epsffile@\Type{epsffile}} or +\Type{$\backslash$psfig}\index{psfig@\Type{psfig}} directly, i.\,e. without +using an intermediate macro.} + +\item + +\German{\Command{make depend} sucht nach den Einleseanweisungen wie +\Type{$\backslash$input}\index{input@\Type{input}} auf String-Basis, ohne den +Kontext zu ber"ucksichtigen. Es kann daher zu +Fehlinterpretationen\index{Fehlinterpretationen} und ungerechtfertigten +Warnungen\index{Warnungen!ungerechtfertigte} kommen.} + +\English{When looking for input commands like +\Type{$\backslash$input}\index{input@\Type{input}}, \Command{make depend} does +its job purely string based and without considering the context. Therefore it +may make misinterpretations\index{Misinterpretations} giving you unjustified +warnings\index{Warnings!unjustified}.} + +\end{itemize} + +\bibliography{Paper} + +\printindex + +\end{document} diff --git a/support/imaketex/Imakefile b/support/imaketex/Imakefile new file mode 100644 index 0000000000..248b51f06f --- /dev/null +++ b/support/imaketex/Imakefile @@ -0,0 +1,77 @@ +/* + * Imakefile for Imake-TeX + * + * Copyright 1993 Rainer Klute, Dortmund University + * <klute@irb.informatik.uni-dortmund.de> + * + * $Id: Imakefile,v 1.0 1993/08/17 15:28:51 klute Exp klute $ + */ + +IMAKETEXVERSION = 1.00 + +#if ProjectX < 5 +#include "X11R5.rules" +InstallNonExecFile(X11R5.rules,$(TEX_CONFIGDIR)) +#endif + + +#include "Imake-TeX.cf" + + +#ifndef SedFileTarget +#define SedFileTarget(dst,src,script,deplist) @@\ +dst:: src deplist @@\ + $(RM) $@ @@\ + sed script <src >$@ +#endif /* SedFileTarget */ + + +AllTarget(texmkmf.script TeX.tmpl) + +CppScriptTarget(texmkmf.script,texmkmf.cpp,-DCONFIGDIRSPEC='"'"-I$(CONFIGDIR) -I$(TEX_CONFIGDIR)"'"',Imake-TeX.cf) +InstallScript(texmkmf,$(TEX_BINDIR)) +clean:: + $(RM) texmkmf.script + +SedFileTarget(TeX.tmpl,TeX.tmpl.sed, \ + -e 's#TEX_INPUTSDIR#$(TEX_INPUTSDIR)#g' \ + -e 's#TEX_CONFIGDIR#$(TEX_CONFIGDIR)#g', \ + Imake-TeX.cf) +InstallNonExecFile(TeX.tmpl,$(TEX_CONFIGDIR)) + +clean:: + $(RM) TeX.tmpl + + + +#ifndef InstallImakeTex + +SedFileTarget(Imake-TeX.tex,Imake-TeX.tex.sed, \ + -e 's/HAS_PSFIG/$(HAS_PSFIG)/' \ + -e 's/DOCUMENTATIONLANGUAGE/$(DOCUMENTATIONLANGUAGE)/' \ + -e 's/IMAKETEXVERSION/$(IMAKETEXVERSION)/', \ + Imake-TeX.cf) + +includes:: Imake-TeX.tex + +clean:: + $(RM) Imake-TeX.tex + +#include "TeX.tmpl" +PaperFormatA4() +SimpleLatexBibtexIndexTarget(Imake-TeX,Paper.bib) + +#endif /* InstallImakeTex */ + + +#ifndef CompressedTarFileTarget +#define CompressedTarFileTarget(step,archive,files) @@\ +step:: archive.tar.z @@\ +archive.tar.z:: files @@\ + $(MKDIRHIER) archive @@\ + tar cf - files | (cd archive; tar xvf -) @@\ + tar cvf - archive | gzip >archive.tar.gz @@\ + $(RM) -r archive +#endif /* CompressedTarFileTarget */ + +CompressedTarFileTarget(tar,Imake-TeX-$(IMAKETEXVERSION),CHANGES Imake-TeX.cf Imake-TeX.tex.sed Imakefile Paper.bib README TeX.tmpl.sed UnidoLogo.eps X11R5.rules german.sty texmkmf.cpp ExamNormal/Imakefile ExamNormal/example1.tex ExamNormal/example2.tex ExamNormal/input1.tex ExamNormal/input2.tex ExamSimple/Imakefile ExamSimple/example.tex) diff --git a/support/imaketex/Paper.bib b/support/imaketex/Paper.bib new file mode 100644 index 0000000000..b3552efbd9 --- /dev/null +++ b/support/imaketex/Paper.bib @@ -0,0 +1,67 @@ + +@book{DuBois:1993:Software-Portability-with-imake, + AUTHOR = {Paul DuBois}, + TITLE = {{Software Portability with imake}}, + YEAR = {1993}, + PUBLISHER = {O'Reilly and Associates}, + NOTE = {ISBN 1-56592-055-4}, + SERIES = {Nutshell Handbooks}, + journal = {iX}, + pages = {153--160} +} + + +@article{Imake-Praxis/ix, + AUTHOR = {Rainer Klute}, + TITLE = {I make, you make}, + JOURNAL = {iX}, + YEAR = {1992}, + MONTH = {Juni}, + NOTE = {Imake --- wie es in der Praxis angewandt wird}, + PAGES = {74--80}, + CATEGORY = {Praxis} +} + + +@article{Imake-Theorie/iX, + AUTHOR = {Rainer Klute}, + TITLE = {{Das Meta-Make}}, + JOURNAL = {iX}, + YEAR = {1992}, + MONTH = {Juni}, + NOTE = {Imake --- was es ist, und wie es funktioniert}, + PAGES = {68--73}, + CATEGORY = {Wissen} +} + + +@article{Imake/TXJ, + AUTHOR = {Rainer Klute}, + TITLE = {Imake, the meta make---what it is and how it works}, + JOURNAL = {The X Journal}, + YEAR = {1992}, + MONTH = {September-October}, + NUMBER = {1}, + PAGES = {48--55}, + VOLUME = {2}, + CATEGORY = {Feature} +} + + +@misc{Imake/Unido, + AUTHOR = {Rainer Klute}, + TITLE = {{Installationsunabh"angige Programmentwicklung unter X11 mit Hilfe von Imake}}, + YEAR = {1992}, + HOWPUBLISHED = {{Internes Markblatt, Universit"at Dortmund, Fachbereich Informatik}}, + MONTH = {April} +} + + +@misc{LaTeX-PostScript/Unido, + AUTHOR = {Rainer Klute}, + TITLE = {{{\LaTeX}-Dokumente mit PostScript-Abbildungen}}, + YEAR = {1992}, + HOWPUBLISHED = {{Internes Markblatt, Universit"at Dortmund, FachbereichInformatik}}, + MONTH = {April} +} + diff --git a/support/imaketex/README b/support/imaketex/README new file mode 100644 index 0000000000..5448334e13 --- /dev/null +++ b/support/imaketex/README @@ -0,0 +1,93 @@ + + + I m a k e - T e X 1 . 0 0 + =========================== + + Copyright 1993 Rainer Klute + <klute@irb.informatik.uni-dortmund.de> + + +This is Imake-TeX, an Imake support for creating documents with the TeX +typesetting system and the LaTeX macro package. It helps you in using TeX (not +in installing) it. + +With Imake-TeX, you will never again have to fiddle around with calling latex +and its various utility programs (makeindex, bibtex). Simply type "make" and +your document's DVI file will be up-to-date. All you have to do is to write a +simple Imakefile and let Imake generate a suitable Makefile for you. Here is +such an Imakefile: + + #include "TeX.tmpl" + PaperFormatA4() + SimpleLatexTarget(document) + +The generated Makefile provides the following commands: + + make depend: Searching the TeX source files for dependencies like + \input{somefile} + + make dvi: Generate an up-to-date DVI file + + make viewdvi: Display it on your screen + + make ps: Generate a PostScript version of your document + + make viewps: Display it + + make clean: Remove unnecessary things + + make veryclean: Remove even the DVI file + + make Makefiles: Generate Makefiles in subdirectories + + +Installation: +------------- + +Imake-TeX basically consists of a shell script "texmkmf" (TeX make makefile) +and a template file "TeX.tmpl". Their installation is (of course) performed +with the help of Imake. You should proceed as follows: + +1. Edit the configuration file Imake-TeX.cf as needed. + +2. Create an initial Makefile. You have to do this in two steps: + + 2.1 Type the command "xmkmf". It will issue an error message ("Can't find + include file TeX.tmpl"), but it will also display the imake command it + tried to execute. This will be useful in the following step. + + 2.2 Type the imake command as shown the xmkmf output, but add the option + -DInstallImakeTex before you execute it. For example, on my machine I + run the command + + imake -DUseInstalled \ + -I/usr/local/X11R5/lib/X11/config -DInstallImakeTex + +3. The command "make install" will make and install the texmkmf and TeX.tmpl at + their appropriate places. Beware: An error message like + + /bin/sh /usr/bin/X11/mkdirhier.sh /destdir/lib/config + /usr/bin/X11/mkdirhier.sh: /usr/bin/X11/mkdirhier.sh: + No such file or directory + + indicates that the installation directory (here: /destdir/lib/config) does + not yet exist and Imake fails to create it because the script mkdirhier.sh + is missing. The solution is to create the installation directory manually + and then to rerun "make install". + +4. The command "texmkmf -a" replaces the initial Makefile with a full-blown + one. You will need it to create the Imake-TeX documentation. Don't be + alarmed when you get some warnings: + Warning: chapter1.tex not found + Warning: chapter2.tex not found + Warning: chapter3.tex not found + Warning: \([^ not found + Warning: \([^.tex not found + These messages are normal. If you wonder about them, look into the + documentation where the reason is explained. + +5. Enter one of "make dvi", "make ps", "make viewdvi", or "make viewps". They + create the Imake-TeX documentation in DVI resp. PortScript format. The + "view..." targets display it on your X11 screen. + +6. Have fun. diff --git a/support/imaketex/TeX.tmpl.sed b/support/imaketex/TeX.tmpl.sed new file mode 100644 index 0000000000..9f0facaac3 --- /dev/null +++ b/support/imaketex/TeX.tmpl.sed @@ -0,0 +1,692 @@ +#if ProjectX < 5 +#include <X11R5.rules> +#endif + +/* + * + * Template file for Imake-TeX + * + * Copyright 1993 Rainer Klute + * <klute@irb.informatik.uni-dortmund.de> + */ + +XCOMM Imake rules for TeX support +XCOMM rules: $Id: TeX.tmpl.sed,v 1.0 1993/08/17 15:28:51 klute Exp klute $ + +IRULESRC = $(CONFIGDIR) -ITEX_CONFIGDIR + +/* + * Paper formats: + */ + +#ifndef PaperFormatA4 +#define PaperFormatA4() @@\ + FORMATXDVI = -paper a4 @@\ + FORMATDVIPS = -t a4 @@\ +FORMATGHOSTVIEW = -a4 +#endif /* PaperFormatA4 */ + + +#ifndef PaperFormatA4R +#define PaperFormatA4R() @@\ + FORMATXDVI = -paper a4r -s 4 @@\ + FORMATDVIPS = -t a4 -t landscape @@\ +FORMATGHOSTVIEW = -a4 -landscape +#endif /* PaperFormatA4R */ + + +#ifndef PaperFormatLetterR +#define PaperFormatLetterR() @@\ + FORMATXDVI = -paper usr -s 4 @@\ + FORMATDVIPS = -t letter -t landscape @@\ +FORMATGHOSTVIEW = -letter -landscape +#endif /* PaperFormatLetterR */ + + + + +/* Picture convertion: */ + +#ifndef GifToEpsFilter +#define GifToEpsFilter (giftoppm | ppmtopgm | pnmtops -noturn -rle) +#endif /* GifToEpsFilter */ + +#ifndef GifbwToEpsFilter +#define GifbwToEpsFilter (giftoppm | ppmtopgm | pgmtopbm | pnmtops -noturn -rle) +#endif /* GifbwToEpsFilter */ + +#ifndef TiffToEpsFilter +#define TiffToEpsFilter (tifftopnm | pnmtops -noturn -rle) +#endif /* TiffToEpsFilter */ + +#ifndef FigToEpsFilter +#define FigToEpsFilter (fig2dev -L ps | sed -e 's/setgray fill/setgray eofill/g') +#endif /* FigToEpsFilter */ + +#ifndef TgifToEpsCmd +#define TgifToEpsCmd(file) tgif -print -eps file +#endif /* TgifToEpsCmd */ + + GIFTOEPS = GifToEpsFilter +GIFBWTOEPS = GifbwToEpsFilter + TIFFTOEPS = TiffToEpsFilter + FIGTOEPS = FigToEpsFilter + +#ifndef GifToEpsRule +#define GifToEpsRule() @@\ +.SUFFIXES: .gif .eps @@\ +.gif.eps: @@\ + $(GIFTOEPS) <$*.gif >$*.eps +#endif /* GifToEpsRule */ + +#ifndef GifBwToEpsRule +#define GifBwToEpsRule() @@\ +.SUFFIXES: .gif-bw .eps @@\ +.gif-bw.eps: @@\ + $(GIFBWTOEPS) <$*.gif-bw >$*.eps +#endif /* GifBwToEpsRule */ + +#ifndef TiffToEpsRule +#define TiffToEpsRule() @@\ +.SUFFIXES: .tif .tiff .eps @@\ +.tif.eps: @@\ + $(TIFFTOEPS) <$*.tif >$*.eps @@\ + @@\ +.tiff.eps: @@\ + $(TIFFTOEPS) <$*.tiff >$*.eps +#endif /* TiffToEpsRule */ + +#ifndef FigToEpsRule +#define FigToEpsRule() @@\ +.SUFFIXES: .fig .eps @@\ +.fig.eps: @@\ + $(FIGTOEPS) <$*.fig >$*.eps +#endif /* FigToEpsRule */ + +#ifndef TgifToEpsRule +#define TgifToEpsRule() @@\ +.SUFFIXES: .obj .eps @@\ +.obj.eps: @@\ + TgifToEpsCmd($*) +#endif /* TgifToEpsRule */ + + +#ifndef EpsRules +#define EpsRules() @@\ +GifToEpsRule() @@\ +GifBwToEpsRule() @@\ +TiffToEpsRule() @@\ +FigToEpsRule() @@\ +TgifToEpsRule() +#endif /* EpsRules */ + + +#ifndef EpsObject +#define EpsObject(file) file.eps +#endif /* EpsObject */ + + +#ifndef EpsTarget +#define EpsTarget(epsfile) @@\ +AllTarget(epsfile.eps) @@\ + @@\ +clean:: @@\ + $(RM) epsfile.eps +#endif /* EpsTarget */ + + + +/* Default values for converters and viewers */ + +#ifndef DviToPsfigCmd +#define DviToPsfigCmd dvi2prt +#endif +#ifndef DviToPsfigOpt +#define DviToPsfigOpt /**/ +#endif +#ifndef DviToPsCmd +#define DviToPsCmd dvips +#endif +#ifndef DviToPsOpt +#define DviToPsOpt $(FORMATDVIPS) -f +#endif +#ifndef ViewDviCmd +#define ViewDviCmd xdvi +#endif +#ifndef ViewDviOpt +#define ViewDviOpt $(FORMATXDVI) +#endif +#ifndef ViewPsCmd +#define ViewPsCmd ghostview +#endif +#ifndef ViewPsOpt +#define ViewPsOpt $(FORMATGHOSTVIEW) +#endif + +DVITOPSFIGCMD = DviToPsfigCmd +DVITOPSFIGOPT = DviToPsfigOpt + DVITOPSCMD = DviToPsCmd + DVITOPSOPT = DviToPsOpt + VIEWDVICMD = ViewDviCmd + VIEWDVIOPT = ViewDviOpt + VIEWPSCMD = ViewPsCmd + VIEWPSOPT = ViewPsOpt + + + +/* Default value for the "make depend" search pattern */ + +#ifndef TexDependPattern +#define TexDependPattern \ +-e '/\\psfig/ s/^.*figure=\([^,}]*\).*/\1/p' \ +-e '/\\epsffile/ s/.*epsffile *{\([^}]*\)}.*/\1/p' \ +-e '/\\input/ s/.*input *{\([^}]*\.tex\)}.*/\1/p' \ +-e '/\\verbfile/ s/.*verbfile {\([^}]*\.tex\)}.*/\1/p' \ +-e '/\\blackandwhite/ s/.*blackandwhite *{\([^}]*.tex\)}.*/\1/p' \ +-e '/\\input/ s/.*input *{\([^}]*\)}.*/\1.tex/p' \ +-e '/\\include/ s/.*include *{\([^}]*\)}.*/\1.tex/p' \ +-e '/\\verbfile/ s/.*verbfile *{\([^}]*\)}.*/\1.tex/p' \ +-e '/\\blackandwhite/ s/.*blackandwhite *{\([^}]*\)}.*/\1.tex/p' +#endif /* TexDependPattern */ + +TEXDEPENDPATTERN = TexDependPattern + + + + +TEXDEFAULTINPUTS = .:TEX_INPUTSDIR +TEXINPUTS = $(TEXDEFAULTINPUTS) + + +#ifndef ExportTexInputs +#define ExportTexInputs() \ + if [ "$(TEXINPUTS)" != "" ]; then \ @@\ + TEXINPUTS=$(TEXINPUTS); \ @@\ + export TEXINPUTS; \ @@\ + fi +#endif /* ExportTexInputs */ + + +#ifndef InitialTexRun +#define InitialTexRun(texfile,deps,processor) ExportTexInputs(); \ @@\ + if [ -f texfile.aux ]; then \ @@\ + (set -x; $(CP) texfile.aux texfile.aux-old); \ @@\ + fi; \ @@\ + if [ ! -f deps ]; then \ @@\ + (set -x; processor texfile.tex); \ @@\ + fi +#endif /* InitialTexRun */ + + +#ifndef BreakIfExpress +#define BreakIfExpress() \ + if [ "$${TEXDRAFT=Draft}" != "Draft" -a \ @@\ + "`find . -newer $*.tex -name $*.dvi -print`" != "" ]; then \ @@\ + echo ""; \ @@\ + echo "*** I have created a draft version of your document's"; \ @@\ + echo "*** DVI file. If you want a tidy one, remove the"; \ @@\ + echo "*** TEXDRAFT environment variable resp. make macro."; \ @@\ + echo ""; \ @@\ + exit; \ @@\ + fi +#endif /* BreakIfExpress */ + + +#ifndef BibtexRule +#define BibtexRule(texfile,bibtexLibrary,processor) @@\ +texfile.bbl:: bibtexLibrary texfile.tex @@\ + @InitialTexRun(texfile,texfile.aux,processor); \ @@\ + if (set -x; bibtex texfile); then \ @@\ + echo "Nothing" >/dev/null; \ @@\ + else \ @@\ + (set -x; $(RM) texfile.bbl); \ @@\ + exit 1; \ @@\ + fi +#endif /* BibtexRule */ + + +#ifndef MakeindexRule +#define MakeindexRule(texfile,deps) @@\ +texfile.ind:: texfile.tex deps @@\ + @InitialTexRun(texfile,RunAlways,latex); \ @@\ + (set -x; makeindex texfile) \ @@\ + @@\ +texfile.dvi: texfile.ind +#endif /* MakeindexRule */ + + +#ifndef GenericTexRule +#define GenericTexRule(processor) @@\ +.SUFFIXES: .dvi .tex @@\ +.tex.dvi: @@\ + @ExportTexInputs(); \ @@\ + if [ -f $*.aux ]; then \ @@\ + (set -x; $(CP) $*.aux $*.aux-old); \ @@\ + fi; \ @@\ + BreakIfExpress(); \ @@\ + if (set -x; processor $*.tex); then \ @@\ + Result="OK"; \ @@\ + else \ @@\ + (set -x; $(MV) $*.dvi $*-error.dvi); \ @@\ + exit 1; \ @@\ + fi; \ @@\ + if [ -f $*.aux -a -f $*.aux-old ]; then \ @@\ + AuxDiff=`(set -x; diff $*.aux-old $*.aux) | head -1`; \ @@\ + fi; \ @@\ + AwkOutput=`awk \ @@\ + '/LaTeX Warning: Label\(s\) may have changed. Rerun to get cross-references right./ {print $$0; exit} \ @@\ + /No file $*.toc./ {print $$0; exit} \ @@\ + /LaTeX Warning: Citation .* on page .* undefined./ {print $$0; exit}' $*.log`; \ @@\ + if [ "$${AwkOutput}$${AuxDiff}" != "" ]; then \ @@\ + case Rerun$(RerunCount) in \ @@\ + Rerun) (set -x; $(RM) $*.dvi; \ @@\ + $(MAKE) RerunCount=1 $*.dvi);; \ @@\ + Rerun1) (set -x; $(RM) $*.dvi; \ @@\ + $(MAKE) RerunCount=2 $*.dvi);; \ @@\ + Rerun*) ;; \ @@\ + esac; \ @@\ + else \ @@\ + echo "to make Ultrix's make happy" >/dev/null; \ @@\ + fi +#endif /* GenericTexRule */ + + +#ifndef DviTarget +#define DviTarget(texfile,deps,processor) @@\ +texfile.dvi: deps @@\ +AllTarget(texfile.dvi) +#endif /* DviTarget */ + + +#ifndef DviOutputTarget +#define DviOutputTarget(texfile) @@\ +dvi:: texfile.dvi @@\ + @@\ +viewdvi:: texfile.dvi @@\ + $(VIEWDVICMD) $(VIEWDVIOPT) texfile.dvi & +#endif /* DviOutputTarget */ + + +#ifndef PostscriptOutputTarget +#define PostscriptOutputTarget(texfile) @@\ +texfile.ps:: texfile.dvi @@\ + $(DVITOPSCMD) $(DVITOPSOPT) texfile.dvi >texfile.ps @@\ + @@\ +ps:: texfile.ps @@\ + @@\ +postscript:: texfile.ps @@\ + @@\ +viewps:: texfile.ps @@\ + $(VIEWPSCMD) $(VIEWPSOPT) texfile.ps & +#endif /* PostscriptOutputTarget */ + + +#ifndef DvipsfigOutputTarget +#define DvipsfigOutputTarget(texfile) @@\ +texfile.dvipsfig:: texfile.dvi @@\ + $(DVITOPSFIGCMD) $(DVITOPSFIGOPT) texfile.dvi >texfile.dvipsfig @@\ + @@\ +dvipsfig:: texfile.dvipsfig +#endif /* DvipsfigOutputTarget */ + + +#ifndef TexCleanTarget +#define TexCleanTarget(texfile) @@\ +clean:: @@\ + $(RM) texfile.aux texfile.aux-old texfile.blg \ @@\ + texfile.dvipsfig texfile.ilg texfile.log texfile.ps \ @@\ + texfile.toc texfile-error.dvi @@\ + @@\ +veryclean:: clean @@\ + $(RM) texfile.bbl texfile.dvi texfile.idx texfile.ind +#endif /* TexCleanTarget */ + + +#ifndef TexDependTarget +#define TexDependTarget(texfile) @@\ +depend:: @@\ + @$(MV) Makefile Makefile.bak; \ @@\ + wa=texfile; \ @@\ + sed -e '/^# DO NOT DELETE/,$$ d' \ @@\ + -e "/^# TEXDEPEND DO NOT DELETE - $$wa/,$$ d" \ @@\ + Makefile.bak > Makefile; \ @@\ + echo "# TEXDEPEND DO NOT DELETE - $$wa" >> Makefile; \ @@\ + todo=texfile.tex; \ @@\ + seen=""; \ @@\ + texinputs=`eval echo $(TEXINPUTS) | sed -e 's/:/ /g'`; \ @@\ + echo "Recognized dependencies:"; \ @@\ + while [ -n "$$todo" ]; do \ @@\ + for cur_file in $$todo; do \ @@\ + deps=`sed -n $(TEXDEPENDPATTERN) $$cur_file`; \ @@\ + deps_tmp=""; \ @@\ + for dep_file in $${deps}; do \ @@\ + found=false; \ @@\ + for i in $${seen}; do \ @@\ + if [ "$${dep_file}" = "$${i}" ]; then \ @@\ + found=true; \ @@\ + break; \ @@\ + fi; \ @@\ + done; \ @@\ + if [ "$${found}" = "false" ]; then \ @@\ + seen="$${seen} $${dep_file}"; \ @@\ + else \ @@\ + continue; \ @@\ + fi; \ @@\ + for dir in $${texinputs}; do \ @@\ + if [ -f $$dir/$$dep_file ]; then \ @@\ + deps_tmp="$${deps_tmp} $${dir}/$${dep_file}"; \ @@\ + echo "$${dir}/$${dep_file}"; \ @@\ + found=true; \ @@\ + break; \ @@\ + fi; \ @@\ + done; \ @@\ + if [ "$${found}" = "false" ]; then \ @@\ + echo "Warning: $${dep_file} not found"; \ @@\ + fi; \ @@\ + done; \ @@\ + deps="$${deps_tmp}"; \ @@\ + for e in dvi; do \ @@\ + for j in $${deps}; do \ @@\ + wa=texfile; \ @@\ + echo "$$wa.$$e: $$j" >> Makefile; \ @@\ + done; \ @@\ + done; \ @@\ + todo_tmp="$$todo_tmp $$deps"; \ @@\ + done; \ @@\ + todo=$$todo_tmp; \ @@\ + todo_tmp=""; \ @@\ + done; \ @@\ + sed -n -e '/^# DO NOT DELETE/,$$ p' Makefile.bak >> Makefile +#endif /* TexDependTarget */ + + + + +/* + * NormalTexTarget + */ +#ifndef NormalTexTarget +#define NormalTexTarget(texfile,deps,processor) @@\ +DviTarget(texfile,deps,processor) @@\ +DviOutputTarget(texfile) @@\ +DvipsfigOutputTarget(texfile) @@\ +PostscriptOutputTarget(texfile) @@\ +TexCleanTarget(texfile) @@\ +TexDependTarget(texfile) +#endif /* NormalTexTarget */ + + +/* + * NormalTexBibtexTarget + */ +#ifndef NormalTexBibtexTarget +#define NormalTexBibtexTarget(texfile,deps,bibtexlib,processor) @@\ +DviTarget(texfile,deps texfile.bbl,processor) @@\ +BibtexRule(texfile,bibtexlib,processor) @@\ +DviOutputTarget(texfile) @@\ +DvipsfigOutputTarget(texfile) @@\ +PostscriptOutputTarget(texfile) @@\ +TexCleanTarget(texfile) @@\ +TexDependTarget(texfile) +#endif /* NormalTexBibtexTarget */ + + + +/* + * User-usable rules start here + */ + +/* + * NormalLatexRule - This rule must be used in Imakefiles describing one or + * more LaTeX documents. + */ +#ifndef NormalLatexRule +#define NormalLatexRule() GenericTexRule(latex) +#endif /* NormalLatexRule */ + + +/* + * Normal...Target rules describe LaTeX documents using input files not + * found by "make depend". Contrary to the Simple...Target rules there may + * be more than one Normal...Target per Imakefile. However, the rule + * NormalLatexRule() resp. NormalSlitexRule() must always be coded + * explicitly. + */ + +/* + * NormalLatexTarget - for a LaTeX document with input files not found by + * "make depend" + */ +#ifndef NormalLatexTarget +#define NormalLatexTarget(texfile,deps) @@\ +NormalTexTarget(texfile,deps,latex) +#endif /* NormalLatexTarget */ + + +/* + * NormalLatexIndexTarget - for a LaTeX document with an index and with input + * files not found by "make depend" + */ +#ifndef NormalLatexIndexTarget +#define NormalLatexIndexTarget(texfile,deps) @@\ +MakeindexRule(texfile,deps) @@\ +NormalTexTarget(texfile,deps,latex) +#endif /* NormalLatexIndexTarget */ + + +/* + * NormalLatexBibtexTarget - for a LaTeX document with a bibliography created + * by bibtex and with input files not found by + * "make depend" + */ +#ifndef NormalLatexBibtexTarget +#define NormalLatexBibtexTarget(texfile,deps,bibtexlib) @@\ +NormalTexBibtexTarget(texfile,deps,bibtexlib,latex) +#endif /* NormalLatexBibtexTarget */ + + +/* + * NormalLatexBibtexIndexTarget - for a LaTeX document with a bibliography + * created by bibtex, with an index, and with + * input files not found by "make depend" + */ +#ifndef NormalLatexBibtexIndexTarget +#define NormalLatexBibtexIndexTarget(texfile,deps,bibtexlib) @@\ +MakeindexRule(texfile,deps) @@\ +NormalTexBibtexTarget(texfile,deps,bibtexlib,latex) +#endif /* NormalLatexBibtexIndexTarget */ + + +/* + * NormalLatexIndexBibtexTarget - the same as NormalLatexBibtexIndexTarget + * (for those who do not want to remember any + * particular order) + */ +#ifndef NormalLatexIndexBibtexTarget +#define NormalLatexIndexBibtexTarget(texfile,deps,bibtexlib) @@\ +NormalLatexBibtexIndexTarget(texfile,deps,bibtexlib) +#endif /* NormalLatexIndexBibtexTarget */ + + +/* + * Simple...Target rules are somewhat simpler :-) than Normal...Target + * rules: All input file (if any) used in the document are found by "make + * depend", the Imakefile describes a single document only, and you do not + * need to code the NormalLatexRule() resp. NormalSlitexRule() explicitly. + */ + +/* + * SimpleLatexTarget - for a LaTeX document + */ +#ifndef SimpleLatexTarget +#define SimpleLatexTarget(texfile) @@\ +NormalLatexRule() @@\ +NormalLatexTarget(texfile,) +#endif /* SimpleLatexTarget */ + + +/* + * SimpleLatexIndexTarget - for a LaTeX document with an index + */ +#ifndef SimpleLatexIndexTarget +#define SimpleLatexIndexTarget(texfile) @@\ +NormalLatexRule() @@\ +MakeindexRule(texfile,) @@\ +NormalTexTarget(texfile,,latex) +#endif /* SimpleLatexIndexTarget */ + + +/* + * SimpleLatexBibtexTarget - for a LaTeX document with a bibliography created + * by bibtex + */ +#ifndef SimpleLatexBibtexTarget +#define SimpleLatexBibtexTarget(texfile,bibtexlib) @@\ +NormalLatexRule() @@\ +NormalTexBibtexTarget(texfile,,bibtexlib,latex) +#endif /* SimpleLatexBibtexTarget */ + + +/* + * SimpleLatexBibtexIndexTarget - for a LaTeX document with a bibliography + * created by bibtex and with an index + */ +#ifndef SimpleLatexBibtexIndexTarget +#define SimpleLatexBibtexIndexTarget(texfile,bibtexlib) @@\ +NormalLatexRule() @@\ +MakeindexRule(texfile,) @@\ +NormalTexBibtexTarget(texfile,,bibtexlib,latex) +#endif /* SimpleLatexBibtexIndexTarget */ + + +/* + * SimpleLatexIndexBibtexTarget - the same as SimpleLatexBibtexIndexTarget + * (for those who do not want to remember any + * particular order) + */ +#ifndef SimpleLatexIndexBibtexTarget +#define SimpleLatexIndexBibtexTarget(texfile,bibtexlib) @@\ +SimpleLatexBibtexIndexTarget(texfile,bibtexlib) +#endif /* SimpleLatexIndexBibtexTarget */ + + + +/* The same for SLITeX: */ + +/* + * NormalSlitexRule - This rule must be used in Imakefiles describing one or + * more SLITeX documents. + */ +#ifndef NormalSlitexRule +#define NormalSlitexRule() GenericTexRule(slitex) +#endif /* NormalSlitexRule */ + + +/* + * NormalSlitexTarget - for a SLITeX document with input files not found by + * "make depend" + */ +#ifndef NormalSlitexTarget +#define NormalSlitexTarget(texfile,deps) @@\ +NormalTexTarget(texfile,deps,slitex) +#endif /* NormalSlitexTarget */ + + +/* + * NormalSlitexIndexTarget - for a SLITeX document with an index and with input + * files not found by "make depend" + */ +#ifndef NormalSlitexIndexTarget +#define NormalSlitexIndexTarget(texfile,deps) @@\ +MakeindexRule(texfile,deps) @@\ +NormalTexTarget(texfile,deps,slitex) +#endif /* NormalSlitexIndexTarget */ + + +/* + * NormalSlitexBibtexTarget - for a SLITeX document with a bibliography created + * by bibtex and with input files not found by + * "make depend" + */ +#ifndef NormalSlitexBibtexTarget +#define NormalSlitexBibtexTarget(texfile,deps,bibtexlib) @@\ +NormalTexBibtexTarget(texfile,deps,bibtexlib,slitex) +#endif /* NormalSlitexBibtexTarget */ + + +/* + * NormalSlitexBibtexIndexTarget - for a SLITeX document with a bibliography + * created by bibtex, with an index, and with + * input files not found by "make depend" + */ +#ifndef NormalSlitexBibtexIndexTarget +#define NormalSlitexBibtexIndexTarget(texfile,deps,bibtexlib) @@\ +MakeindexRule(texfile,deps) @@\ +NormalTexBibtexTarget(texfile,deps,bibtexlib,slitex) +#endif /* NormalSlitexBibtexIndexTarget */ + + +/* + * NormalSlitexIndexBibtexTarget - the same as NormalSlitexBibtexIndexTarget + * (for those who do not want to remember any + * particular order) + */ +#ifndef NormalSlitexIndexBibtexTarget +#define NormalSlitexIndexBibtexTarget(texfile,deps,bibtexlib) @@\ +NormalSlitexBibtexIndexTarget(texfile,deps,bibtexlib) +#endif /* NormalSlitexIndexBibtexTarget */ + + +/* + * SimpleSlitexTarget - for a SLITeX document + */ +#ifndef SimpleSlitexTarget +#define SimpleSlitexTarget(texfile) @@\ +NormalSlitexRule() @@\ +NormalSlitexTarget(texfile,) +#endif /* SimpleSlitexTarget */ + + +/* + * SimpleSlitexIndexTarget - for a SLITeX document with an index + */ +#ifndef SimpleSlitexIndexTarget +#define SimpleSlitexIndexTarget(texfile) @@\ +NormalSlitexRule() @@\ +MakeindexRule(texfile,) @@\ +NormalTexTarget(texfile,,slitex) +#endif /* SimpleSlitexIndexTarget */ + + +/* + * SimpleSlitexBibtexTarget - for a SLITeX document with a bibliography created + * by bibtex + */ +#ifndef SimpleSlitexBibtexTarget +#define SimpleSlitexBibtexTarget(texfile,bibtexlib) @@\ +NormalSlitexRule() @@\ +NormalTexBibtexTarget(texfile,,bibtexlib,slitex) +#endif /* SimpleSlitexBibtexTarget */ + + +/* + * SimpleSlitexBibtexIndexTarget - for a SLITeX document with a bibliography + * created by bibtex and with an index + */ +#ifndef SimpleSlitexBibtexIndexTarget +#define SimpleSlitexBibtexIndexTarget(texfile,bibtexlib) @@\ +NormalSlitexRule() @@\ +MakeindexRule(texfile,) @@\ +NormalTexBibtexTarget(texfile,,bibtexlib,slitex) +#endif /* SimpleSlitexBibtexIndexTarget */ + + +/* + * SimpleSlitexIndexBibtexTarget - the same as SimpleSlitexBibtexIndexTarget + * (for those who do not want to remember any + * particular order) + */ +#ifndef SimpleSlitexIndexBibtexTarget +#define SimpleSlitexIndexBibtexTarget(texfile,bibtexlib) @@\ +SimpleSlitexBibtexIndexTarget(texfile,bibtexlib) +#endif /* SimpleSlitexIndexBibtexTarget */ diff --git a/support/imaketex/UnidoLogo.eps b/support/imaketex/UnidoLogo.eps new file mode 100644 index 0000000000..7e2f04621b --- /dev/null +++ b/support/imaketex/UnidoLogo.eps @@ -0,0 +1,1597 @@ +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: -254 -185 244 171 +%%Creator: COREL DRAW +%%Title: D:\WIN\COREL\ZEICH\UNIDOEN2.EPS +%%CreationDate: Wed Dec 05 08:20:08 1990 +%%DocumentFonts: +%%EndComments + +/wCorelDict 200 dict def +wCorelDict begin +/wDocm matrix def +/wSavm matrix def +/wObjm matrix def +/wBmp 512 string def +/wScra 0.0 def +statusdict /pageparams known +{statusdict begin +pageparams end +1 ne {/wScra -90.0 def}if +pop pop pop +}if + + +/wDfreq 60 def +/wDang 45 def +/wDspot { } def + +/wSrgb { setrgbcolor } bind def +/wScr { exch wScra add exch load setscreen } bind def +/wSav { /wSobj save def } bind def +/wRes { wSobj restore } bind def +/wSg { setgray } bind def +/wMto { moveto } bind def +/wLto { lineto } bind def +/wCto { curveto } bind def +/wTl { translate } bind def +/wCp { closepath } bind def +/wGs { gsave } bind def +/wGr { grestore } bind def +/wCtm { matrix currentmatrix } bind def +/wStm { setmatrix } bind def +/wSld { [] 0 setdash } bind def +/wDsh { [3 2] 0 setdash } bind def +/wDtd { [1 2] 0 setdash } bind def +/wFillp { } def +/wCapp { } def +/wLinep { } def +/wPaintp { } def + +/InRange { + +3 -1 roll +2 copy le {pop}{exch pop}ifelse +2 copy ge {pop}{exch pop}ifelse +} bind def + +/wDstChck { +2 1 roll dup 3 -1 roll +eq{ 1 add }if +} bind def + +systemdict /setcmykcolor known +{/wCMYK { +setcmykcolor +} bind def +} +{ +/wCMYK { + +/wBlk exch def +wBlk add 0 1 InRange 1 exch sub 3 1 roll +wBlk add 0 1 InRange 1 exch sub 3 1 roll +wBlk add 0 1 InRange 1 exch sub 3 1 roll +setrgbcolor +} bind def +}ifelse + +/wSscr { +currentscreen /wDspot exch def /wDang exch def /wDfreq exch def +} bind def + +/wNeg { +{1 exch sub} bind settransfer +}bind def + +/wRscr { +wDfreq wDang /wDspot wScr +} bind def + +/wFnt { +findfont exch scalefont setfont +} bind def + +/wSvm { +/wSavm wSavm currentmatrix def +} bind def + +/wRsm { +wSavm setmatrix +} bind def + +/wSvp { +currentpoint /wSavepy exch def /wSavepx exch def +} bind def + +/wRsp { +wSavepx wSavepy moveto +} bind def + +/wSa { + +setlinejoin setlinecap +} bind def + +/wPn { + +rotate scale +} bind def + +/wStbb { + +/Bbury exch def +/Bburx exch def +/Bblly exch def +/Bbllx exch def +} bind def + +/wDot { +dup mul exch dup mul add 1 exch sub +} bind def + +/wLin { +exch pop abs 1 exch sub +} bind def + +/wRBMP { +currentfile wBmp readhexstring pop +} bind def + +/wR { +0 0 moveto +1 index 0 rlineto +0 exch rlineto +neg 0 rlineto +wCp +} bind def + + +/wE { + +wSvm +scale +0.5 0 moveto +0.5 0.5 0.5 -90 270 arc +wRsm +} bind def + +/wCh { +moveto +true charpath +Paintp +} bind def + +/wACh { +wSvm +translate +rotate +0 0 moveto +true charpath +wRsm +Paintp +} bind def + + +/wChs { +moveto +show +} bind def + +/wAChs { +wSvm +translate +rotate +0 0 moveto +show +wRsm +} bind def + + +/ReEncodeSmall{ +/bReEncode exch def +/newfontname exch def +/basefontname exch def /basefontdict basefontname findfont def +/newfont basefontdict maxlength dict def basefontdict +{1 index /FID ne +{newfont 3 1 roll put} +{pop pop}ifelse +} forall +bReEncode +{ +newfont /Encoding get +256 array copy +newfont exch /Encoding exch put +newfont /FontName newfontname put gemenvec aload pop +gemenvec length 2 idiv +{newfont /Encoding get 3 1 roll put}repeat +}if +newfontname newfont definefont pop +} bind def +/gemenvec [ +16#80 /grave +16#81 /circumflex +16#82 /tilde +16#83 /dotlessi +16#84 /florin +16#85 /quotedblleft +16#86 /quotedblright +16#87 /guilsinglleft +16#88 /guilsinglright +16#89 /fi +16#8a /fl +16#8b /dagger +16#8c /daggerdbl +16#8d /endash +16#8e /periodcentered +16#8f /breve +16#90 /quotedblbase +16#91 /ellipsis +16#92 /perthousand +16#a1 /exclamdown +16#a2 /cent +16#a3 /sterling +16#a4 /currency +16#a5 /yen +16#a6 /bar +16#a7 /section +16#a8 /dieresis +16#a9 /copyright +16#aa /ordfeminine +16#ab /guillemotleft +16#ac /logicalnot +16#ad /emdash +16#ae /registered +16#af /space +16#b0 /ring +16#b1 /space +16#b2 /space +16#b3 /space +16#b4 /acute +16#b5 /space +16#b6 /paragraph +16#b7 /bullet +16#b8 /cedilla +16#b9 /space +16#ba /ordmasculine +16#bb /guillemotright +16#bc /space +16#bd /space +16#be /space +16#bf /questiondown +16#c0 /Agrave +16#c1 /Aacute +16#c2 /Acircumflex +16#c3 /Atilde +16#c4 /Adieresis +16#c5 /Aring +16#c6 /AE +16#c7 /Ccedilla +16#c8 /Egrave +16#c9 /Eacute +16#ca /Ecircumflex +16#cb /space +16#cc /Igrave +16#cd /Iacute +16#ce /Icircumflex +16#cf /Idieresis +16#d0 /space +16#d1 /Ntilde +16#d2 /Ograve +16#d3 /Oacute +16#d4 /Ocircumflex +16#d5 /Otilde +16#d6 /Odieresis +16#d7 /OE +16#d8 /Oslash +16#d9 /Ugrave +16#da /Uacute +16#db /Ucircumflex +16#dc /Udieresis +16#dd /space +16#de /space +16#df /germandbls +16#e0 /agrave +16#e1 /aacute +16#e2 /acircumflex +16#e3 /atilde +16#e4 /adieresis +16#e5 /aring +16#e6 /ae +16#e7 /ccedilla +16#e8 /egrave +16#e9 /eacute +16#ea /ecircumflex +16#eb /edieresis +16#ec /igrave +16#ed /iacute +16#ee /icircumflex +16#ef /idieresis +16#f0 /space +16#f1 /ntilde +16#f2 /ograve +16#f3 /oacute +16#f4 /ocircumflex +16#f5 /otilde +16#f6 /odieresis +16#f7 /oe +16#f8 /oslash +16#f9 /ugrave +16#fa /uacute +16#fb /ucircumflex +16#fc /udieresis +16#fd /space +16#fe /space +16#ff /ydieresis +] def + +/wMax { + +2 copy ge{pop}{exch pop}ifelse +} bind def + +/wMin { + +2 copy le{pop}{exch pop}ifelse +} bind def + +/wFtn { + + + +/Ang exch def +/ToK exch 0 1 InRange def +/ToY exch 0 1 InRange def +/ToM exch 0 1 InRange def +/ToC exch 0 1 InRange def +/FrmK exch 0 1 InRange def +/FrmY exch 0 1 InRange def +/FrmM exch 0 1 InRange def +/FrmC exch 0 1 InRange def + +ToC FrmC sub dup /dC exch def abs +ToM FrmM sub dup /dM exch def abs +ToY FrmY sub dup /dY exch def abs +ToK FrmK sub dup /dK exch def abs + + +wMax wMax wMax +200 mul cvi 200 wMin /fStp exch def + +/dC dC fStp div def +/dM dM fStp div def +/dY dY fStp div def +/dK dK fStp div def + +eoclip +newpath +Bbllx Bblly moveto +Bbllx Bbury lineto +Bburx Bbury lineto +Bburx Bblly lineto +Ang rotate +pathbbox +/Stp 2 index 5 index sub fStp div def +/Bllx1 4 index def +/Bllx2 Bllx1 Stp add def +/BburY 1 index def +/BbllY 3 index def +newpath +4{ pop }repeat + +FrmC FrmM FrmY FrmK +0 1 fStp 1 sub +{ +pop +4 copy +wCMYK +dK add 4 1 roll +dY add 4 1 roll +dM add 4 1 roll +dC add 4 1 roll +Bllx1 BbllY moveto +Bllx1 BburY lineto +Bllx2 BburY lineto +Bllx2 BbllY lineto +fill +/Bllx2 Bllx2 Stp add def +/Bllx1 Bllx1 Stp add def +} for +4{ pop }repeat +} bind def + +/wRfn { + + +/ToK exch 0 1 InRange def +/ToY exch 0 1 InRange def +/ToM exch 0 1 InRange def +/ToC exch 0 1 InRange def +/FrmK exch 0 1 InRange def +/FrmY exch 0 1 InRange def +/FrmM exch 0 1 InRange def +/FrmC exch 0 1 InRange def + +ToC FrmC sub dup /dC exch def abs +ToM FrmM sub dup /dM exch def abs +ToY FrmY sub dup /dY exch def abs +ToK FrmK sub dup /dK exch def abs + + +wMax wMax wMax +200 mul cvi 200 wMin /fStp exch def + +/dC dC fStp div def +/dM dM fStp div def +/dY dY fStp div def +/dK dK fStp div def + +4 setflat +eoclip +newpath +Bbllx Bblly moveto +Bbllx Bbury lineto +Bburx Bbury lineto +Bburx Bblly lineto +pathbbox +newpath +3 -1 roll +4 copy +add 2 div 0 exch translate +add 2 div 0 translate +sub 2 div dup mul +3 1 roll +sub 2 div dup mul +add sqrt +dup /rad exch def +fStp div /dr exch def + +FrmC FrmM FrmY FrmK +0 1 fStp 1 sub +{ +pop +4 copy +wCMYK +dK add 4 1 roll +dY add 4 1 roll +dM add 4 1 roll +dC add 4 1 roll +0 0 rad 0 360 arc fill +/rad rad dr sub def +} for +4{ pop }repeat +} bind def + +/wReg { +0 wSg 4 setlinewidth +2 copy 75 0 360 arc closepath +2 copy moveto 125 0 rlineto +2 copy moveto -125 0 rlineto +2 copy moveto 0 125 rlineto +moveto 0 -125 rlineto stroke +} bind def + +/wArr { + +rotate +-2 -1.5 rmoveto +0.5 1.0 0.5 2.0 0 3 rcurveto +3.5 -1.5 rlineto +wCp +eofill +} bind def + + + + + + + +0.072 dup scale +0.000 0.000 0.000 1.000 wCMYK 0 0 wSa wSld +1 setlinewidth +11.4738 setmiterlimit +wSscr + +wSav +/wDocm wCtm def +wSav +-3170 -306 -801 -302 wStbb +-3229 -306 -741 -301 wStbb +-3168 -304 wTl +[1.0010 0.0000 0.0000 1.0000 0.0020 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +2363 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-3113 -208 -746 -204 wStbb +-3172 -208 -686 -203 wStbb +-3111 -206 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +2363 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-2875 -817 -508 -813 wStbb +-2934 -817 -448 -812 wStbb +-2873 -815 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +2363 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-2579 -1329 -212 -1325 wStbb +-2638 -1329 -152 -1324 wStbb +-2577 -1327 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +2363 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-2284 -1840 83 -1836 wStbb +-2343 -1840 142 -1835 wStbb +-2282 -1838 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +2363 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-1988 -2352 390 -2348 wStbb +-2047 -2352 449 -2347 wStbb +-1986 -2350 wTl +[1.0050 0.0000 0.0000 1.0000 0.0100 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +2363 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-3170 -2350 -1976 -302 wStbb +-3199 -2401 -1946 -250 wStbb +-3168 -304 wTl +[2.0009 0.0000 0.0000 2.0009 0.8246 0.0234] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +595 -1022 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-2579 -2350 -1385 -302 wStbb +-2608 -2401 -1355 -250 wStbb +-2577 -304 wTl +[2.0009 0.0000 0.0000 2.0009 0.8246 0.0234] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +595 -1022 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-1988 -2350 -794 -302 wStbb +-2017 -2401 -764 -250 wStbb +-1986 -304 wTl +[2.0009 0.0000 0.0000 2.0009 0.8246 0.0234] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +595 -1022 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-1397 -2350 -203 -302 wStbb +-1426 -2401 -173 -250 wStbb +-1395 -304 wTl +[2.0009 0.0000 0.0000 2.0009 0.8246 0.0234] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +595 -1022 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-806 -2350 388 -302 wStbb +-835 -2401 417 -250 wStbb +-804 -304 wTl +[2.0009 0.0000 0.0000 2.0009 0.8246 0.0234] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +595 -1022 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-749 -2252 445 -204 wStbb +-778 -2303 474 -152 wStbb +-747 -206 wTl +[2.0009 0.0000 0.0000 2.0009 0.8246 0.0234] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +595 -1022 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-3169 -307 -3108 -203 wStbb +-3170 -309 -3106 -200 wStbb +-3167 -305 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +57 100 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-2578 -307 -2517 -203 wStbb +-2579 -309 -2515 -200 wStbb +-2576 -305 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +57 100 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-1987 -307 -1926 -203 wStbb +-1988 -309 -1924 -200 wStbb +-1985 -305 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +57 100 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-1396 -307 -1335 -203 wStbb +-1397 -309 -1333 -200 wStbb +-1394 -305 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +57 100 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-805 -307 -744 -203 wStbb +-806 -309 -742 -200 wStbb +-803 -305 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +57 100 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +390 -2347 3161 2066 wStbb +320 -2457 3230 2176 wStbb +388 -2349 wTl +[3.3869 0.0000 0.0000 3.3869 4.9220 4.9778] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +817 1302 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +391 -2189 3112 2144 wStbb +322 -2297 3180 2252 wStbb +290 -2349 wTl +[3.3256 0.0000 0.0000 3.3256 103.5242 162.1435] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +817 1302 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +244 -1947 2812 2144 wStbb +179 -2049 2876 2246 wStbb +-9 -2349 wTl +[3.1395 0.0000 0.0000 3.1395 255.4482 404.5526] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +817 1302 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +108 -1687 2511 2140 wStbb +47 -1782 2571 2235 wStbb +-308 -2349 wTl +[2.9366 0.0000 0.0000 2.9366 418.3605 664.1711] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +817 1302 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-39 -1445 2212 2140 wStbb +-95 -1534 2268 2229 wStbb +-607 -2349 wTl +[2.7507 0.0000 0.0000 2.7507 570.0107 906.3104] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +817 1302 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-186 -1203 1913 2140 wStbb +-238 -1286 1965 2223 wStbb +-906 -2349 wTl +[2.5648 0.0000 0.0000 2.5648 722.0629 1148.4496] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +817 1302 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-327 -950 1616 2145 wStbb +-375 -1027 1664 2222 wStbb +-1205 -2349 wTl +[2.3744 0.0000 0.0000 2.3744 880.4701 1401.1084] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +817 1302 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-468 -699 1318 2145 wStbb +-512 -770 1362 2216 wStbb +-1504 -2349 wTl +[2.1814 0.0000 0.0000 2.1814 1038.1101 1652.4906] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +817 1302 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-616 -457 1018 2144 wStbb +-656 -522 1058 2209 wStbb +-1803 -2349 wTl +[1.9953 0.0000 0.0000 1.9953 1189.7021 1894.8998] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +817 1302 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-764 -217 721 2147 wStbb +-801 -276 758 2206 wStbb +-2102 -2349 wTl +[1.8128 0.0000 0.0000 1.8128 1340.7176 2134.9416] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +817 1302 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +242 -1924 570 -1920 wStbb +233 -1924 578 -1919 wStbb +401 -1922 wTl +[0.4772 0.0000 0.0000 1.0000 -156.4424 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +681 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +107 -1670 717 -1666 wStbb +91 -1670 732 -1665 wStbb +401 -1668 wTl +[0.8908 0.0000 0.0000 1.0000 -291.0946 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +681 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-49 -1416 895 -1412 wStbb +-72 -1416 918 -1411 wStbb +401 -1414 wTl +[1.3807 0.0000 0.0000 1.0000 -447.3959 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +681 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-194 -1162 1050 -1158 wStbb +-225 -1162 1081 -1157 wStbb +401 -1160 wTl +[1.8217 0.0000 0.0000 1.0000 -592.9969 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +681 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-339 -908 1215 -904 wStbb +-377 -908 1253 -903 wStbb +401 -906 wTl +[2.2763 0.0000 0.0000 1.0000 -737.8261 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +681 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-487 -654 1360 -650 wStbb +-533 -654 1406 -649 wStbb +401 -652 wTl +[2.7077 0.0000 0.0000 1.0000 -885.9444 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +681 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-635 -400 1525 -396 wStbb +-689 -400 1579 -395 wStbb +401 -398 wTl +[3.1670 0.0000 0.0000 1.0000 -1033.4690 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +681 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-714 -146 1691 -142 wStbb +-774 -146 1751 -141 wStbb +401 -144 wTl +[3.5257 0.0000 0.0000 1.0000 -1112.2001 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +681 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-554 108 1844 112 wStbb +-613 107 1903 112 wStbb +401 110 wTl +[3.5155 0.0000 0.0000 1.0000 -952.4822 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +681 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-393 362 2015 366 wStbb +-453 361 2075 366 wStbb +401 364 wTl +[3.5305 0.0000 0.0000 1.0000 -791.6318 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +681 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-241 616 2176 620 wStbb +-301 615 2236 620 wStbb +401 618 wTl +[3.5433 0.0000 0.0000 1.0000 -639.4021 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +681 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-70 870 2336 874 wStbb +-130 869 2396 874 wStbb +401 872 wTl +[3.5283 0.0000 0.0000 1.0000 -468.1891 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +681 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +89 1124 2480 1128 wStbb +29 1123 2539 1128 wStbb +401 1126 wTl +[3.5054 0.0000 0.0000 1.0000 -309.5710 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +681 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +235 1378 2654 1382 wStbb +174 1377 2714 1382 wStbb +401 1380 wTl +[3.5471 0.0000 0.0000 1.0000 -163.6627 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +681 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +399 1632 2808 1636 wStbb +338 1631 2868 1636 wStbb +401 1634 wTl +[3.5317 0.0000 0.0000 1.0000 0.6286 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +681 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +555 1886 2954 1890 wStbb +495 1885 3013 1890 wStbb +401 1888 wTl +[3.5181 0.0000 0.0000 1.0000 156.2545 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +681 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +711 2140 3111 2144 wStbb +651 2139 3171 2144 wStbb +401 2142 wTl +[3.5185 0.0000 0.0000 1.0000 312.5222 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +681 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-1184 368 -1075 1358 wStbb +-1186 343 -1072 1382 wStbb +-3211 370 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 59 59 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 2134 0 wMto +2029 0 wLto +2029 986 wLto +2134 986 wLto +2134 0 wLto + wCp Paintp +wRes +wSav +-2209 368 -1417 1358 wStbb +-2228 343 -1397 1382 wStbb +-3250 370 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 59 59 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 1148 0 wMto +1043 0 wLto +1043 986 wLto +1180 986 wLto +1736 178 wLto +1736 986 wLto +1831 986 wLto +1831 0 wLto +1726 0 wLto +1148 860 wLto +1148 0 wLto + wCp Paintp +wRes +wSav +-3172 344 -2444 1358 wStbb +-3190 318 -2425 1383 wStbb +-3289 370 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 71 71 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 119 986 wMto +208 986 wLto +208 344 wLto +208 162 287 54 480 54 wCto +556 54 634 73 689 130 wCto +743 189 751 268 751 344 wCto +751 986 wLto +840 986 wLto +840 374 wLto +843 132 740 -24 480 -24 wCto +219 -24 119 132 119 374 wCto +119 986 wLto + wCp Paintp +wRes +wSav +-553 360 292 1358 wStbb +-574 335 313 1382 wStbb +-3616 370 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 59 59 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 3065 -5 wMto +3065 986 wLto +3338 986 wLto +3727 986 3884 787 3905 482 wCto +3906 459 3904 434 3901 407 wCto +3898 380 3892 351 3882 323 wCto +3872 294 3857 264 3839 236 wCto +3821 208 3797 174 3768 148 wCto +3639 36 3517 7 3356 -3 wCto +3282 -8 3154 -5 3065 -5 wCto + wCp Paintp +wRes +wSav +-448 464 186 1266 wStbb +-463 443 201 1286 wStbb +-3616 370 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 59 59 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 0.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 3170 884 wMto +3170 96 wLto +3464 96 3800 115 3800 482 wCto +3800 839 3527 894 3170 884 wCto + wCp Paintp +wRes +wSav +-3165 -2355 450 -203 wStbb +-3255 -2408 540 -149 wStbb +-3163 -309 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 1 1 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 7 wMto +51 102 wLto +2412 104 wLto +3294 -1410 wLto +3611 -1952 wLto +3551 -2044 wLto +2356 5 wLto +0 7 wLto + wCp Paintp +wRes +wSav +3103 2057 3154 2144 wStbb +3101 2054 3155 2146 wStbb +3105 2142 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 20 20 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +47 -83 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +394 -2257 3153 2144 wStbb +325 -2367 3221 2254 wStbb +399 -2169 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 1 1 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + -3 -6 wMto +2712 4311 wLto +2752 4223 wLto +47 -86 wLto +-3 -6 wLto + wCp Paintp +wRes +wSav +-2575 -816 -1685 -302 wStbb +-2597 -828 -1662 -289 wStbb +-2573 -304 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 1 1 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +592 0 wLto +886 -510 wLto +294 -510 wLto +0 0 wLto + wCp Paintp +wRes +wSav +416 308 420 1392 wStbb +415 280 420 1419 wStbb +418 1339 wTl +[1.0000 0.0000 0.0000 1.0500 0.0000 51.5374] concat /wObjm wCtm def +/Linep { } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +0 -1029 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +940 308 944 1392 wStbb +939 280 944 1419 wStbb +942 1339 wTl +[1.0000 0.0000 0.0000 1.0500 0.0000 51.5374] concat /wObjm wCtm def +/Linep { } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +0 -1029 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +526 308 530 1392 wStbb +525 280 530 1419 wStbb +528 1339 wTl +[1.0000 0.0000 0.0000 1.0500 0.0000 51.5374] concat /wObjm wCtm def +/Linep { } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +0 -1029 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +1353 308 1357 1392 wStbb +1352 280 1357 1419 wStbb +1355 1339 wTl +[1.0000 0.0000 0.0000 1.0500 0.0000 51.5374] concat /wObjm wCtm def +/Linep { } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +0 -1029 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +1463 308 1467 1392 wStbb +1462 280 1467 1419 wStbb +1465 1339 wTl +[1.0000 0.0000 0.0000 1.0500 0.0000 51.5374] concat /wObjm wCtm def +/Linep { } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +0 -1029 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +395 1367 1522 1371 wStbb +366 1366 1550 1371 wStbb +397 1369 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +/Linep { } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +1123 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +395 855 1522 859 wStbb +366 854 1550 859 wStbb +397 857 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +/Linep { } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +1123 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +395 1257 1522 1261 wStbb +366 1256 1550 1261 wStbb +397 1259 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +/Linep { } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +1123 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +395 454 1522 458 wStbb +366 453 1550 458 wStbb +397 456 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +/Linep { } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +1123 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +395 344 1522 348 wStbb +366 343 1550 348 wStbb +397 346 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +/Linep { } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +1123 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +418 346 1464 1370 wStbb +391 320 1490 1395 wStbb +417 1369 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 59 59 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def +1048 -1022 wE Paintp +wRes +wSav +526 455 1354 1261 wStbb +505 434 1374 1281 wStbb +526 1260 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +0 0 wSa +0.000 0.000 0.000 1.000 wCMYK wRscr +/Linep { 59 59 0.0 wPn stroke } bind def +/Fillp { wRscr +0.000 0.000 0.000 0.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def +829 -804 wE Paintp +wRes +wSav +-3305 1354 -1522 1358 wStbb +-3349 1353 -1477 1358 wStbb +-3085 1356 wTl +[1.1390 0.0000 0.0000 1.0000 -217.3840 0.0000] concat /wObjm wCtm def +/Linep { } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +1562 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-553 268 -549 1392 wStbb +-553 239 -548 1420 wStbb +-551 1356 wTl +[1.0000 0.0000 0.0000 1.0320 0.0000 34.8135] concat /wObjm wCtm def +/Linep { } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +0 -1086 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-262 272 -258 1396 wStbb +-262 243 -257 1424 wStbb +-260 1360 wTl +[1.0000 0.0000 0.0000 1.0320 0.0000 34.8135] concat /wObjm wCtm def +/Linep { } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +0 -1086 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-219 272 -215 1396 wStbb +-219 243 -214 1424 wStbb +-217 1360 wTl +[1.0000 0.0000 0.0000 1.0320 0.0000 34.8135] concat /wObjm wCtm def +/Linep { } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +0 -1086 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-553 1354 -128 1358 wStbb +-563 1353 -117 1358 wStbb +-551 1356 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +/Linep { } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +421 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-553 1252 -128 1256 wStbb +-563 1251 -117 1256 wStbb +-551 1254 wTl +[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000] concat /wObjm wCtm def +/Linep { } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +421 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-627 363 -461 367 wStbb +-631 362 -456 367 wStbb +-551 365 wTl +[1.7890 0.0000 0.0000 1.0000 -73.3757 0.0000] concat /wObjm wCtm def +/Linep { } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +91 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wSav +-625 465 -236 469 wStbb +-634 464 -226 469 wStbb +-551 467 wTl +[4.2309 0.0000 0.0000 1.0000 -71.1586 0.0000] concat /wObjm wCtm def +/Linep { } bind def +/Fillp { wRscr +0.000 0.000 0.000 1.000 wCMYK eofill } bind def +/Paintp { wGs wDocm wStm wGs Fillp wGr Linep wGr newpath} bind def + 0 0 wMto +91 0 wLto +wGs wDocm wStm Linep wGr newpath +wRes +wRes +end diff --git a/support/imaketex/X11R5.rules b/support/imaketex/X11R5.rules new file mode 100644 index 0000000000..0052fda384 --- /dev/null +++ b/support/imaketex/X11R5.rules @@ -0,0 +1,68 @@ +#ifndef XCOMM +#define XCOMM # +#endif + +XCOMM Imake rules for those without X11R5 +XCOMM +XCOMM Copyright 1993 Rainer Klute, Dortmund University +XCOMM <klute@irb.informatik.uni-dortmund.de> +XCOMM +XCOMM $Id: X11R5.rules,v 0.96 1993/05/04 15:18:45 klute Exp klute $ + +#ifdef CppScriptTarget +#undef CppScriptTarget +#endif + +/* + * Translate XCOMM into pound sign with sed, rather than passing -DXCOMM=XCOMM + * to cpp, because that trick does not work on all ANSI C preprocessors. + * Also delete line numbers from the cpp output (-P is not portable, I guess). + */ +#ifndef CppSedMagic +#define CppSedMagic sed -e '/^# *[0-9][0-9]* *.*$$/d' \ + -e '/^XCOMM$$/s//#/' \ + -e '/^XCOMM[^a-zA-Z0-9_]/s/^XCOMM/#/' +#endif /* CppSedMagic */ + +/* + * CppScriptTarget - generate rules to create a shell script by running the + * input through cpp. If the ExecableScripts configuration parameter is not + * set, then make sure that the first line begins with a colon. + */ +#ifndef CppScriptTarget +#if ExecableScripts /* can use #! instead of colon */ +#define CppScriptTarget(dst,src,defs,deplist) @@\ +dst:: src deplist @@\ + $(RM) $@ @@\ + $(CPP) defs <src | CppSedMagic >$@ @@\ + chmod a+x $@ +#else +#define CppScriptTarget(dst,src,defs,deplist) @@\ +dst:: src deplist @@\ + $(RM) $@ @@\ + echo \: >$@ @@\ + sed '1d' src | $(CPP) defs | CppSedMagic >>$@ @@\ + chmod a+x $@ +#endif /* ExecableScripts */ +#endif /* CppScriptTarget */ + + +/* if [ -d ] or [ ! -d ] causes make to fail, define this as - */ +#ifndef DirFailPrefix +#define DirFailPrefix +#endif + +#ifndef MakeDir +#define MakeDir(dir) DirFailPrefix@if [ -d dir ]; then set +x; \ @@\ + else (set -x; $(MKDIRHIER) dir); fi +#endif + +/* + * InstallNonExecFile - generate rules to install a data file + */ +#ifndef InstallNonExecFile +#define InstallNonExecFile(file,dest) @@\ +install:: file @@\ + MakeDir($(DESTDIR)dest) @@\ + $(INSTALL) -c $(INSTDATFLAGS) file $(DESTDIR)dest +#endif /* InstallNonExecFile */ diff --git a/support/imaketex/german.MISSING b/support/imaketex/german.MISSING new file mode 120000 index 0000000000..e48609a08b --- /dev/null +++ b/support/imaketex/german.MISSING @@ -0,0 +1 @@ +../../language/german/german.MISSING
\ No newline at end of file diff --git a/support/imaketex/texmkmf.cpp b/support/imaketex/texmkmf.cpp new file mode 100644 index 0000000000..b1cd55b391 --- /dev/null +++ b/support/imaketex/texmkmf.cpp @@ -0,0 +1,60 @@ +XCOMM!/bin/sh + +XCOMM +XCOMM Copyright 1993 Rainer Klute +XCOMM <klute@irb.informatik.uni-dortmund.de> +XCOMM +XCOMM generate a Makefile from an Imakefile using Imake-TeX rules +XCOMM +XCOMM $Id: texmkmf.cpp,v 0.91 1993/03/17 11:03:42 klute Exp klute $ + +usage="usage: $0 [-a] [top_of_sources_pathname [current_directory]]" + +topdir= +curdir=. +do_all= + +case "$1" in +-a) + do_all="yes" + shift + ;; +esac + +case $# in + 0) ;; + 1) topdir=$1 ;; + 2) topdir=$1 curdir=$2 ;; + *) echo "$usage" 1>&2; exit 1 ;; +esac + +case "$topdir" in + -*) echo "$usage" 1>&2; exit 1 ;; +esac + +if [ -f Makefile ]; then + echo mv Makefile Makefile.bak + mv Makefile Makefile.bak +fi + +if [ "$topdir" = "" ]; then + args="-DUseInstalled "CONFIGDIRSPEC +else + args="-I$topdir/config -DTOPDIR=$topdir -DCURDIR=$curdir" +fi + +echo imake $args +case "$do_all" in +yes) + imake $args && + echo "make Makefiles" && + make Makefiles && + echo "make includes" && + make includes && + echo "make depend" && + make depend + ;; +*) + imake $args + ;; +esac |