summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/koma-script/doc/komabug.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/koma-script/doc/komabug.tex
Initial commit
Diffstat (limited to 'macros/latex/contrib/koma-script/doc/komabug.tex')
-rw-r--r--macros/latex/contrib/koma-script/doc/komabug.tex1012
1 files changed, 1012 insertions, 0 deletions
diff --git a/macros/latex/contrib/koma-script/doc/komabug.tex b/macros/latex/contrib/koma-script/doc/komabug.tex
new file mode 100644
index 0000000000..35d0db25cf
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/komabug.tex
@@ -0,0 +1,1012 @@
+% ======================================================================
+% komabug.tex
+% Copyright (c) Markus Kohm, 1995-2009
+%
+% This file is part of the LaTeX2e KOMA-Script bundle.
+%
+% This work may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, version 1.3c of the license.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later and of this work.
+%
+% This work has the LPPL maintenance status "author-maintained".
+%
+% The Current Maintainer and author of this work is Markus Kohm.
+%
+% This work consists of all files listed in manifest.txt.
+% ----------------------------------------------------------------------
+% komabug.tex
+% Copyright (c) Markus Kohm, 1995-2009
+%
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+%
+%
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (allein durch den Autor verwaltet).
+%
+% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
+%
+% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
+% ======================================================================
+%%
+%% @ is a letter
+%%
+\catcode`\@=11
+
+%%
+%% Grab the initex file list
+%%
+%% If this file is called via
+%% latex "\input{latexbug}" or some
+%% similar command sequence rather than
+%% latex latexbug
+%% then the debugging info in \reserved@a will already have been lost.
+%% This might not matter, but if it does we may ask the user to resubmit
+%% the report.
+\ifx\reserved@b\@undefined
+ \ifx\reserved@a\@gobble
+ \def\@inputfiles{NONE}
+ \else
+ \let\@inputfiles\reserved@a
+ \fi
+\else
+ \def\@inputfiles{LOST}
+\fi
+
+%%
+%% Output stream to produce the bug report template.
+%%
+\newif\ifinteractive\interactivetrue
+\newwrite\@msg
+\immediate\openout\@msg=\jobname.msg
+\immediate\write\@msg{%
+An fatal error occured before writing anything to the message file.^^J%
+You should have a look at \jobname.log to see the reason of the error.^^J%
+^^J%
+Maybe you didn't use an interactive terminal to run ``latex komabug''.^^J%
+At this case you should try an interactive terminal or add^^J%
+\space\space\space\space\string\interactivefalse^^J%
+to your local ``komabug.cnf'' to create an empty message.^^J%
+You have to edit that message file after creating the empty message.^^J%
+}
+\immediate\closeout\@msg\let\msg\m@ne
+
+%%
+%% We have no end line char (so we have no paragraphs)
+%%
+\endlinechar=-1
+
+%%
+%% Check that LaTeX2e is being used.
+%%
+\ifx\undefined\newcommand
+ \newlinechar`\^^J%
+ \immediate\write17{^^J%
+ You must use LaTeX2e to generate the bug report!^^J^^J%
+ Sie muessen LaTeX2e verwenden, um die Fehlermeldung zu erzeugen!}%
+
+ \let\relax\end
+\else
+ \def\@tempa{LaTeX2e}\ifx\@tempa\fmtname\else
+ \immediate\write17{^^J%
+ You must use LaTeX2e to generate the bug report!^^J^^J%
+ Aeltere Versionen von LaTeX werden nicht unterstuetzt.^^J%
+ Sie muessen LaTeX2e verwenden, um die Fehlermeldung zu erzeugen!}%
+ \let\relax\@@end
+\fi\fi
+
+%%
+%% \wmsg writes to the terminal, and the .msg file
+%% \wmsg* just writes to the .msg file
+%% \typeout just writes to the terminal
+%%
+
+\def\wmsg{%
+ \ifnum\msg<0\relax\let\msg\@msg\immediate\openout\msg=\jobname.msg\fi
+ \begingroup
+ \@ifstar {\interactivefalse\@wmsg}{\@wmsg}
+}
+
+\def\@wmsg#1{%
+ \ifinteractive\immediate\write17{#1}\fi%
+ \immediate\write\msg{#1}%
+ \endgroup
+}
+
+%%
+%% Prompt for an answer from the user, if the answer is not
+%% provided by the cfg file.
+%%
+
+\def\readifnotknown#1{%
+ \@ifundefined{#1}%
+ {{\message{#1> }%
+ \catcode`\^^I=12 \let\do\@makeother\dospecials
+ \global\read\m@ne t\expandafter o\csname#1\endcsname}}%
+ {\message{\csname#1\endcsname}}}
+
+%%
+%% Get number
+%% #1 = message
+%% #2 = max value
+%% --> \answer
+%%
+\def\scannumber#1{\@tempswatrue
+ \typeout{`#1'}%
+ \def\@tempa{\expandafter\@scannumber\expandafter0#1\@nil}%
+ \edef\@tempa{\@tempa}%
+ \count@\@tempa\relax
+ \if@tempswa\else\count@\z@\relax\fi
+}%
+\def\@scannumber#1{%
+ \ifx\@nil#1\else
+ \if 0#1#1\else
+ \ifnum 0<0#1 #1\else
+ \noexpand\@tempswafalse%
+ \fi
+ \fi
+ \expandafter\@scannumber
+ \fi
+}%
+\def\ReadNumber#1#2{%
+ \typeout{#1}%
+ \ifenglish
+ \message{Input the corresponding number between 1 and #2: }%
+ \else
+ \message{Geben Sie die betreffende Zahl zwischen 1 und #2 ein: }%
+ \fi
+ \count@=\z@\relax
+ \read\m@ne to \answer
+ \scannumber{\answer}%
+ \ifnum\count@>\number#2\relax
+ \count@=\z@\relax
+ \fi
+% \typeout{\the\count@ > 0?}%
+ \ifnum\count@>\z@\relax
+% \typeout{YES}%
+ \advance\count@ by \m@ne
+ \edef\answer{\the\count@}%
+ \message{^^J}%
+ \else
+% \typeout{NO}%
+ \ifenglish
+ \typeout{Value not valid!}%
+ \else
+ \typeout{Wert nicht im erlaubten Bereich!}%
+ \fi
+ \pause
+ \def\@tempa{\ReadNumber{#1}{#2}}%
+ \expandafter\@tempa
+ \fi
+}
+
+%%
+%% Get Yes or No
+%% #1 Question
+%% --> \if@tempswa (yes is true, no is false)
+%%
+\def\ReadYesNo#1{%
+ \typeout{#1}%
+ \ifenglish
+ \message{Answer `yes' or `no': }%
+ \read\m@ne to \answer
+ \else
+ \message{Antworten Sie bitte mit `ja' oder `nein': }%
+ \read\m@ne to \answer
+ \edef\answer{\uccode`\expandafter\@car\answer\@nil}
+ \ifnum \answer=`J \def\answer{\uccode`Y}\fi
+ \fi
+ \def\@tempa{\message{^^J}}%
+ \ifnum \answer=`Y \@tempswatrue
+ \else
+ \ifnum \answer=`N \@tempswafalse
+ \else
+ \ifenglish
+ \typeout{Answer not valid!}%
+ \else
+ \typeout{Antwort unverstaendlich!}%
+ \fi
+ \def\@tempa{\ReadYesNo{#1}}%
+ \fi
+ \fi
+ \@tempa
+}
+
+%%
+%% Pause so messages do not scroll off screen.
+%%
+\def\pause{%
+ \ifinteractive
+ \ifenglish
+ \message{Press <return> to continue. }%
+ \else
+ \message{Mit der <Return>-Taste geht es weiter. }%
+ \fi
+ \read\m@ne to \@tempa
+ \message{^^J}%
+ \fi
+}
+
+%%
+%% german or english report generator
+%%
+\newif\ifenglish\englishfalse
+
+%%
+%% Opening Banner.
+%%
+
+\InputIfFileExists{komabug.cfg}{%
+ \ifenglish
+ \typeout{** using komabug.cfg **}%
+ \else
+ \typeout{** komabug.cfg wird verwendet **}%
+ \fi
+}{}
+
+\ifenglish
+ \typeout{^^J%
+ ============================================================^^J%
+ ^^J%
+ KOMA bug report generator^^J%
+ =========================^^J%
+ Running this file through LaTeX generates a formular ``\jobname.msg''^^J%
+ containing a bug report to KOMA-Script bundle.^^J^^J%
+ * Please use german, if possible.^^J \space
+ If you're not able to use german, write the report in english.^^J%
+ * Please write a short report not a large one.^^J%
+ * Please tell me everything, which may be important.^^J}
+ \pause
+\else
+ \typeout{^^J%
+ ============================================================^^J%
+ ^^J%
+ KOMA-Script Fehlermeldungsgenerator^^J%
+ ===================================^^J%
+ Die Bearbeitung dieser Datei mit LaTeX erzeugt das Formular \jobname.msg,^^J%
+ um Fehlermeldungen zum KOMA-Script-Paket zu melden.^^J^^J%
+ * Schreiben Sie Ihre Meldung nach Moeglichkeit in Deutsch.^^J \space
+ Notfalls ist auch Englisch moeglich.^^J%
+ * Bitte fassen Sie sich kurz.^^J%
+ * Bitte halten Sie keine Information zurueck, die moeglicherweise^^J \space
+ wichtig sein koennte.^^J}%
+ \typeout{%
+ If you prefere english, you may write a file ``komabug.cfg'' with\space
+ contents:^^J\space
+ \string\englishtrue^^J%
+ at same folder as ``komabug.tex'' and restart ``latex komabug.tex''.^^J}%
+ \englishtrue\pause\englishfalse
+\fi
+
+%%
+%% if \interactivefalse just make a blank template.
+%%
+
+\ifinteractive
+ \ifenglish
+ \ReadYesNo{%
+ There are two kinds of using this generator.^^J%
+ At the interactive mode, you have to answer questions. At the other^^J%
+ mode an empty formular will be generated, you have to fill using^^J%
+ an editor.^^J^^J%
+ Do you want an interactive session?
+ }%
+ \else
+ \ReadYesNo{%
+ Dieser Generator kann auf zwei Arten verwendet werden.^^J%
+ Im interaktiven Betrieb, werden Ihnen Fragen zur direkten
+ Beantwortung^^J%
+ gestellt. Ansonsten wird ein leeres Formular erzeugt, das Sie dann
+ mit^^J%
+ einem Editor ausfuellen muessen.^^J^^J%
+ Wollen Sie eine interaktive Sitzung?
+ }%
+ \fi
+ \if@tempswa\interactivetrue\else\interactivefalse\fi
+\fi
+
+%%
+%% Fatal error
+%%
+\def\fatalerror#1{%
+ \ifenglish
+ \errhelp{This error is fatal! You cannot continue.^^J%
+ You should terminate using `x' and restart ``latex komabug''.}%
+ \errmessage{#1}%
+ \else
+ \errhelp{Dieser Fehler erlaubt keine Fortsetzung der Bearbeitung.^^J%
+ Sie sollten mit `x' abbrechen und ``latex komabug'' neu starten.}%
+ \errmessage{#1}%
+ \fi
+ \batchmode\csname @@end\endcsname
+ \fatalerror{#1}%
+}
+
+%%
+%% Try to get Version
+%%
+\def\GetFileVersionWithExtend#1#2{%
+ \def\ProvidesFile##1{\@ifnextchar [{\@P@F}{\@P@F[1996/10/31 ]}}%
+ \def\@P@F[##1 ##2]{\xdef\komaversion{##1}\csname endinput\endcsname}%
+ \let\ProvidesClass\ProvidesFile
+ \let\ProvidesPackage\ProvidesFile
+ \InputIfFileExists{#1#2}{}{%
+ \ifenglish
+ \def\noscrclass{%
+ ! File ``#1#2'' not found!^^J%
+ ! The file must be at the same folder like ``komabug.tex''^^J%
+ ! or must be readable by LaTeX to get the version information!}%
+ \else
+ \def\noscrclass{%
+ ! Die Datei ``#1#2'' konnte nicht gefunden werden!^^J%
+ ! Zur Bestimmung der aktuellen Version ist es unbedingt^^J%
+ ! erforderlich, dass diese Datei sich im selben Verzeichnis^^J%
+ ! wie ``komabug.tex'' befindet oder zumindest von LaTeX^^J%
+ ! gefunden werden kann!}%
+ \fi
+ \errmessage{\noscrclass}
+ \ifenglish
+ \errhelp{Terminate TeX using `x' and restart komabug}
+ \else
+ \errhelp{Beenden Sie TeX mit `x' und starten Sie komabug neu}
+ \fi
+ }%
+}
+\def\GetVersion#1{%
+ \GetFileVersionWithExtend{#1}\@empty
+}
+
+\ifinteractive
+ \ifenglish
+ \ReadNumber{%
+ There are several categories, related to several parts and files^^J%
+ of the KOMA-Script bundle:^^J^^J
+ 1) Installation of KOMA-Script^^J
+ 2) KOMA-Script manual^^J
+ 3) Basics (scrbook, scrreprt, scrartcl, scrlttr2, typearea, scrlfile)^^J
+ 4) Pagestyle definition (scrpage2)^^J
+ 5) Time or date (scrtime, scrdate)^^J
+ 6) Address file handling (scraddr)^^J
+ 7) Obsolete (scrlettr, scrpage)^^J%
+ }{7}%
+ \else
+ \ReadNumber{%
+ Verschiedene Bereiche werden von diesem Generator unterstuetzt, die^^J%
+ sich auf verschiedene Dateien im KOMA-Script-Paket beziehen:^^J^^J
+ 1) Auspacken und Installieren von KOMA-Script^^J
+ 2) KOMA-Script-Anleitung^^J
+ 3) Grundfunktion (scrbook, scrreprt, scrartcl, scrlttr2, typearea,
+ scrlfile)^^J
+ 4) Definition von Seitenstilen (scrpage2)^^J
+ 5) Zeit oder Datum (scrtime, scrdate)^^J
+ 6) Umgang mit Adressdateien (scraddr)^^J
+ 7) Obsoletes (scrlettr, scrpage)^^J%
+ }{7}%
+ \fi
+
+ \ifcase\expandafter\number\answer
+ % 1
+ \def\category{Installation}\GetVersion{scrkernel-version.dtx}
+ \let\categoryversion\komaversion
+ \or
+ % 2
+ \def\category{Manual}\GetVersion{scrartcl.cls}
+ \let\categoryversion\komaversion
+ \or
+ % 3
+ \def\category{Basics}\GetVersion{scrartcl.cls}
+ \let\categoryversion\komaversion
+ \or
+ % 4
+ \def\category{Addons, scrpage2}\GetVersion{scrpage2.sty}%
+ \let\categoryversion\komaversion\GetVersion{scrartcl.cls}
+ \or
+ % 5
+ \def\category{Addons, scrtime/date}\GetVersion{scrtime.sty}%
+ \let\categoryversion\komaversion\GetVersion{scrartcl.cls}
+ \or
+ % 6
+ \def\category{Addons, scraddr}\GetVersion{scraddr.sty}%
+ \let\categoryversion\komaversion\GetVersion{scrartcl.cls}
+ \or
+ % 7
+ \ifenglish
+ \typeout{These obsolete parts of KOMA-Script are unsupported!^^J%
+ You should use scrlttr2 instead of scrlettr and scrpage2 instead of
+ scrpage.}
+ \else
+ \typeout{Fuer diese obsoleten Teile von KOMA-Script gibt es keinen
+ Support mehr!^^J%
+ Sie sollten scrlttr2 an Stelle von scrlettr bzw. scrpage2 an Stelle
+ von^^J%
+ scrpage verwenden.}
+ \fi
+ \batchmode\csname @@end\endcsname
+ \fi
+\else% \ifinteractive
+ \ifenglish
+ \def\category{<PLEASE REPLACE BY ONE OF `Installation', `Manual',
+ `Basics', `Addons, scrpage2', `Addons, scrtime/date', `Addons,
+ scraddr'.>}
+ \def\categoryversion{<PLEASE REPLACE BY VERSION DATE FROM USED CLASS OR
+ PACKAGE.>}
+ \else
+ \def\category{<BITTE DURCH EINE DER ANGABEN `Installation', `Manual',
+ `Basics', `Addons, scrpage2', `Addons, scrtime/date', `Addons,
+ scraddr' ERSETZEN.>}
+ \def\categoryversion{<BITTE DURCH DAS VERSIONSDATUM AUS DER ENTSPRECHENDEN
+ KLASSE BZW. DEM ENTSPRECHENDEN PAKET ERSETZEN.>}
+ \fi
+ \GetVersion{scrartcl.cls}
+\fi
+
+\ifinteractive
+ \ifenglish
+ \typeout{^^J%
+ ===========================================================^^J%
+ ^^J%
+ Please give a one line description (< 50 chars) of your problem.%
+ ^^J^^J%
+ If your using email for sending the report, please use this^^J%
+ description as subject, too:%
+ ^^J \@spaces\@spaces\space
+ |<------------------------------------------------>|}
+ \else
+ \typeout{^^J%
+ ============================================================^^J%
+ ^^J%
+ Bitte eine einzeilige (< 50 Zeichen) Beschreibung des Problems.%
+ ^^J^^J%
+ Wenn Sie fuer die Meldung eMail verwenden, setzen Sie diese
+ Beschreibung^^J%
+ bitte auch als Betreff (`Subject') der eMail ein:%
+ ^^J \@spaces\@spaces\space
+ |<------------------------------------------------>|}
+ \fi
+ \loop
+ \let\synopsis\relax
+ \readifnotknown{synopsis}
+ \ifx\synopsis\@empty
+ \repeat
+\else%\ifinteractive
+ \ifenglish
+ \def\synopsis{<PLEASE REPLACE BY SHORT ONE-LINE DESCRIPTION.>}
+ \else
+ \def\synopsis{<BITTE DURCH EINE KURZE, EINZEILIGE BESCHREIBUNG ERSETZEN.>}
+ \fi
+\fi
+
+%%
+%% Header in the msg file.
+%%
+\ifenglish
+ \wmsg*{^^J%
+ KOMA bug report.^^J%
+ \ifinteractive Interactive \else Formular \fi
+ generated using komabug.tex at
+ \space\number\year-\two@digits\month-\two@digits\day.^^J%
+ ^^J
+ You may send this message to komascript@gmx.info.^^J%
+ If you do so, please use subject:^^J%
+ \space KOMA-BUG:\space\synopsis^^J%
+ ============================================================^^J
+ }
+\else
+ \wmsg*{^^J%
+ KOMA-Fehlermeldung.^^J%
+ \ifinteractive Interaktiv \else Formular \fi
+ erzeugt mit komabug.tex am
+ \space\number\year-\two@digits\month-\two@digits\day.^^J%
+ ^^J%
+ Die Meldung kann per E-Mail an komascript@gmx.info^^J%
+ verschickt werden.^^J%
+ Bitte verwenden Sie dabei als Betreff:^^J%
+ \space KOMA-BUG:\space\synopsis^^J%
+ ============================================================^^J
+ }
+\fi
+
+%%
+%% Category of bug, obtained earlier but put out now, after the header.
+%%
+\wmsg{>Bereich: \category}
+\wmsg{>Version: \categoryversion}
+
+%%
+%% synopsis of bug, obtained earlier but put out now, after the header.
+%%
+\wmsg{>Betreff: \synopsis}
+
+\begingroup
+ \global\let\format\@empty
+ \gdef\hyphenation{standard}
+ \def\immediate#1#{\xdef\hyphenation}
+ \def\typeout#1{\xdef\format{\format#1}}
+ \the\everyjob
+\endgroup
+
+\wmsg{>Format: \format}
+
+\wmsg{>KOMA-Script: \komaversion}
+
+\ifinteractive
+%%
+%% if interactive, \wread reads a line (verbatim) and write it to the
+%% .msg file, until a blank line is entered.
+%%
+ \def\wread{{%
+ \catcode`\^^I=12
+ \let\do\@makeother\dospecials
+ \let\lastanswer\answer
+ \message{=> }\read\m@ne to \answer
+ \ifx\lastanswer\@empty
+ \let\lastanswer\answer
+ \fi
+ \ifx\lastanswer\@empty
+ \else
+ \immediate\write\msg{\answer}
+ \expandafter\wread
+ \fi
+ }%
+ }
+\else
+%%
+%% If non-interactive, \wread just writes a blank line to the .msg file,
+%% and \wmsg does not write to the terminal.
+%%
+ \def\wread{\wmsg{}}
+\fi
+
+%%
+%% \copytomsg copies the contents of a file into the .msg file.
+%% (at least it does it as well as TeX can, so there may be
+%% transcription problems with 8-bit characters).
+%%
+%% It does a line count, and complains if the test file is
+%% too large.
+
+\chardef\inputfile=15
+
+\newcount\linecount
+
+\def\copytomsg#1{{%
+ \endlinechar=-1
+ \def\do##1{\catcode`##1=11}%
+ \dospecials
+ \global\linecount\z@
+ \openin\inputfile#1\relax
+ \def\thefile{#1}%
+ \@copytomsg
+ \closein\inputfile}}
+
+\def\@copytomsg{%
+ \ifeof\inputfile
+ \typeout{*** \thefile\space Zeilen = \the\linecount}
+ \else
+ \global\advance\linecount\@ne
+ \read\inputfile to \inputline
+ \ifx\inputline\@empty
+ \wmsg*{}
+ \else
+ \wmsg*{\inputline}
+ \fi
+ \expandafter\@copytomsg
+ \fi}
+
+
+%%
+%% Test the age of the current format.
+%%
+\def\getage#1/#2/#3\@nil{%
+ \count@\year
+ \advance\count@-#1\relax
+ \multiply\count@ by 12\relax
+ \advance\count@\month
+ \advance\count@-#2\relax}
+%
+\expandafter\getage\fmtversion\@nil
+%%
+%% \count@ should now be the age of the format in months.
+%%
+\ifnum\count@>24
+ \ifenglish
+ \def\oldformat{^^J%
+ ! Your LaTeX installation is older than two years.^^J%
+ ! Updating woul dbe a good idea before sending this report.^^J%
+ ! You should compare the date of the package with the date of^^J
+ ! the used LaTeX version. If LaTeX is more than two years older^^J
+ ! than KOMA-Script, this could be the reason of the problem.}
+ \errhelp{If you want to continue, press <return>.}
+ \else
+ \def\oldformat{^^J%
+ ! Ihre LaTeX-Installation ist ueber zwei Jahre alt.^^J%
+ ! Bitte denken Sie ueber ein Update nach, ehe Sie diese Meldung^^J%
+ ! abschicken.^^J%
+ ! Vergleichen Sie wenigstens das Datum des Paketes mit dem Datum^^J%
+ ! der LaTeX-Version. LaTeX sollte nicht mehr als zwei Jahre aelter^^J%
+ ! als KOMA-Script sein. Ansonsten koennte der Fehler in einer^^J%
+ ! Unvertraeglichkeit zwischen Format- und Paketversion liegen.}
+%%
+%% Put the message in a macro to improve the look of the error mesage.
+%%
+%
+ \errhelp{Wenn Sie dennoch fortfahren wollen, druecken Sie einfach <Return>.}
+ \fi
+ \errmessage{\oldformat}
+\fi
+%
+\expandafter\getage\komaversion\@nil
+\ifnum\count@>18
+ \ifenglish
+ \def\oldversion{^^J%
+ ! Your KOMA-Script installation is older than one year.^^J%
+ ! You should check for an update, bevor you're sending this message.^^J
+ ! You should compare the date of the package with the date of^^J
+ ! the used LaTeX version. If LaTeX is years younger than KOMA-Script,^^J
+ ! this could be the reason of the problem.}
+ \errhelp{If you want to continue, press <return>.}
+ \else
+ \def\oldversion{^^J%
+ ! Ihre KOMA-Script-Version ist ueber ein Jahr alt.^^J%
+ ! Bitte denken Sie ueber ein Update nach, ehe Sie diese Meldung^^J%
+ ! abschicken.^^J%
+ ! Vergleichen Sie wenigstens das Datum des Paketes mit dem Datum^^J%
+ ! der LaTeX-Version. LaTeX sollte nicht Jahre juenger als KOMA-Script sein.^^J%
+ ! Ansonsten koennte der Fehler in einer Unvertraeglichkeit zwischen^^J%
+ ! Format- und Paketversion liegen.}
+ \errhelp{Wenn Sie dennoch fortfahren wollen, druecken Sie einfach <Return>.}
+ \fi
+ \errmessage{\oldversion}
+\fi
+
+
+%%
+%% Now use \wmsg and \wread for each of the multi-line fields
+%% in the form. Currently one-line fields use \read directly.
+%%
+\ifinteractive
+ \ifenglish
+ \typeout{^^JYour name:}
+ \else
+ \typeout{^^JIhr Name:}
+ \fi
+ \readifnotknown{name}
+\else
+ \ifx\name\undefined
+ \ifenglish
+ \def\name{<REPLACE THIS BY YOUR NAME>}
+ \else
+ \def\name{<GEBEN SIE IHREN NAMEN EIN>}
+ \fi
+ \fi
+\fi
+
+
+\ifinteractive
+ \ifenglish
+ \typeout{^^JYour address (email if possible):}
+ \else
+ \typeout{^^JIhre Adresse (eMail bevorzugt):}
+ \fi
+ \readifnotknown{address}
+\else
+ \ifx\address\undefined
+ \ifenglish
+ \def\address{<PEPLACE THIS BE YOUR (EMAIL-)ADDRESS>}
+ \else
+ \def\address{<GEBEN SIE IHRE (EMAIL-)ADRESSE EIN>}
+ \fi
+ \fi
+\fi
+
+
+\ifinteractive
+ \ifenglish
+ \typeout{^^JYour computer system (z. B. Atari, Linux, Mac, Win98SE):}
+ \else
+ \typeout{^^JDas verwendete Computersystem (z. B. Atari, Linux, Mac, Win98SE):}
+ \fi
+ \readifnotknown{computersystem}
+\else
+ \ifx\computersystem\undefined
+ \ifenglish
+ \def\computersystem{<REPLACE THIS BY YOUR COMPUTERSYSTEM>}
+ \else
+ \def\computersystem{<GEBEN SIE IHR VERWENDETES COMPUTERSYSTEM EIN>}
+ \fi
+ \fi
+\fi
+
+
+\wmsg*{>Adresse: \name\space<\address>}
+
+%%
+%% >Organisation: is really a GNATS multiline field
+%% but we treat it as a one-line field.
+%%
+\wmsg*{>Organisation: \ifx\organisation\undefined
+ \ifx\organization\undefined\else
+ \organization
+ \fi
+ \else
+ \organisation
+ \fi}
+
+
+%%
+%% Test which format is being used. These fields are completed
+%% automatically even if the blank template is being produced.
+%%
+
+\wmsg*{>Voraussetzungen:}
+\wmsg*{ \string\@TeXversion: \meaning\@TeXversion
+ \ifx\@TeXversion\@@undefined
+ \space (Standardeinstellung fuer TeX3.141 und spaeter)\fi}
+\wmsg*{ \string\@currdir: \meaning\@currdir}
+\wmsg*{ \string\input@path: \meaning\input@path
+ \ifx\input@path\@@undefined
+ \space (Standardeinstellung)\fi}
+\wmsg*{ System: \computersystem}
+
+\wmsg*{>Beschreibung:}
+\ifinteractive
+ \ifenglish
+ \typeout{%
+ Description of your problem:^^J^^J%
+ \@spaces You can use multiple lines (each is askes by the prompt^^J%
+ \@spaces ``=>'').^^J%
+ \@spaces Use two blank lines to finish your answer.}
+ \else
+ \typeout{%
+ Beschreibung des Problems:^^J^^J%
+ \@spaces Die Beantwortung dieser Frage kann mehrere Zeilen^^J%
+ \@spaces einnehmen (jede wird durch die Eingabeaufforderung^^J%
+ \@spaces ``=>'' eingeleitet).^^J%
+ \@spaces Durch zwei aufeinanderfolgende Leerzeilen wird die^^J%
+ \@spaces Antwort beenden.}
+ \fi
+\else
+ \ifenglish
+ \wmsg{<REPLACE THIS BY YOUR DESCRIPTION OF THE PROBLEM>}
+ \else
+ \wmsg{<GEBEN SIE HIER IHRE PROBLEMBESCHREIBUNG EIN>}
+ \fi
+\fi
+\wread
+
+
+%%
+%% insertion of the test file
+%%
+\ifinteractive
+ \ifenglish
+ \typeout{^^J%
+ Name of a short self describing file, which shows the problem^^J%
+ (file should be as short as possible, not more than 60 lines):^^J^^J%
+ If the file is not at current directory please enter the hole^^J%
+ name (directory inclusive), so LaTeX may load it.^^J^^J%
+ If no testfile exists, because your not reporting a bug at a class^^J%
+ or package, simply press <return>.}
+ \else
+ \typeout{^^J%
+ Name einer KURZEN, SELBSTERKLAERENDEN Datei, bei der das Problem^^J%
+ auftritt (die Datei sollte wirklich so kurz wie moeglich sein,^^J%
+ nicht mehr als 60 Zeilen):^^J^^J%
+ Damit LaTeX diese Datei einlesen kann, geben Sie bitte den kompletten^^J%
+ Namen einschliesslich des Verzeichnisses an, falls die Datei nicht im^^J%
+ aktuellen Verzeichnis zu finden ist.^^J^^J%
+ Falls Sie keinen Fehler in einer der Klassen oder Pakete melden und^^J%
+ daher keine Testdatei existiert, druecken Sie einfach <Return>.}
+ \fi
+ \message{filename> }\read\m@ne to \filename
+\else
+ \let\filename\@empty
+\fi
+
+%%
+%% Try to find the .tex file and .log file
+%%
+
+
+\ifx\filename\@empty
+ \ifinteractive
+ \ifenglish
+ \ReadNumber{^^J^^JNo Testfile.^^J^^J%
+ Three kinds of reports are possible:^^J^^J%
+ 1) SW bug:^^J\@spaces
+ Software bug, you have to add a test file!^^J
+ 2) DOC bug:^^J\@spaces
+ Bug at manual or you do not understand the manual.^^J
+ 3) Ask for change:^^J\@spaces
+ Not a bug, but you'd like a change or simply help.^^J}{3}
+ \else
+ \ReadNumber{^^J^^JKeine Testdatei.^^J^^J%
+ Drei Arten von Meldungen werden unterstuetzt:^^J^^J%
+ 1) SW-Fehler:^^J\@spaces
+ Software-Fehler, unbedingt eine Testdatei beilegen!^^J
+ 2) DOC-Fehler:^^J\@spaces
+ Fehler in oder unverstaendliche Anleitung.^^J
+ 3) Aenderungswunsch:^^J\@spaces
+ Kein Fehler sondern eine Frage nach Aenderung oder Hilfe.^^J}{3}
+ \fi
+ \else
+ \def\answer{0}%
+ \fi
+\else
+ \def\answer{0}%
+ \filename@parse\filename
+
+ \IfFileExists{\filename}{\edef\samplefile{\filename}%
+ \IfFileExists{\filename@area\filename@base.log}{%
+ \edef\logfile{\filename@area\filename@base.log}%
+ }{%
+ \IfFileExists{\filename@area\filename@base.lis}{%
+ \edef\logfile{\filename@area\filename@base.lis}%
+ }{%
+ \ifenglish
+ \typeout{^^J%
+ Log file ``\filename@area\filename@base.log'' not found.^^J%
+ Please add the log file at ``\jobname.msg''.}%
+ \else
+ \typeout{^^J%
+ Logdatei ``\filename@area\filename@base.log'' nicht gefunden.^^J%
+ Bitte ergaenzen Sie das Beispiel in ``\jobname.msg''.}%
+ \fi
+ \pause
+ }%
+ }%
+ }{%
+ \ifenglish
+ \typeout{^^J%
+ Test file ``\filename'' not found.^^J%
+ Please add the test file at ``\jobname.msg''.}
+ \else
+ \typeout{^^J%
+ Beispieldatei ``\filename'' nicht gefunden.^^J%
+ Bitte ergaenzen Sie das Beispiel in ``\jobname.msg''.}
+ \fi
+ \pause
+ }%
+\fi
+
+\ifcase\expandafter\number\answer
+ \ifinteractive\wmsg{>Unterbereich: SW-Fehler}\fi
+ \wmsg*{%
+ Beispieldatei, die das Problem verdeutlicht:^^J%
+ ============================================}
+ \ifx\samplefile\undefinedcommand
+ \ifenglish
+ \typeout{^^J!
+ Please add test file and log file at your report message!}%
+ \else
+ \typeout{^^J!
+ Bitte ergaenzen Sie Beispiel- und LOG-Datei in der Meldung!}%
+ \fi
+ \pause
+ \ifenglish
+ \wmsg*{<REPLACE THIS BY YOUR TEST FILE>}
+ \else
+ \wmsg*{<HIER TESTDATEI EINFUEGEN>}
+ \fi
+ \else
+ %%
+ %% The example file goes here:
+ %%
+ \copytomsg{\samplefile}
+ \ifnum\linecount>60
+ \ifenglish
+ \typeout{%
+ ^^J%
+ !!! Your test file has \the\linecount\space lines.^^J%
+ !!! Large test files make it difficult to find the cause of the
+ problem:^^J%
+ !!! ^^J%
+ !!! Please decrease your test file as much as possible.^^J}
+ \else
+ \typeout{%
+ ^^J%
+ !!! Ihre Testdatei ist \the\linecount\space Zeilen lang.^^J%
+ !!! So grosse Testdateien erschweren die Ursachenfindung:^^J%
+ !!! ^^J%
+ !!! Bitte verkleinern Sie Ihre Testdatei, soweit das ueberhaupt^^J%
+ !!! moeglich ist, so dass das Problem gerade noch auftritt.^^J}
+ \fi
+ \pause
+ \fi
+ \fi
+ \wmsg*{^^J%
+ LOG-Datei vom LaTeX-Lauf der Beispieldatei:^^J%
+ ===========================================}
+ \ifx\logfile\undefinedcommand
+ \ifenglish
+ \typeout{^^J%
+ Log file of your test file not found.^^J%
+ Please add the log file of your test file at ``\jobname.msg''.}
+ \wmsg*{<REPLACE THIS BY THE LOG OF YOUR TEST FILE>}
+ \else
+ \typeout{^^J%
+ Log-Datei zur Testdatei nicht gefunden.^^J%
+ Bitte ergaenzen Sie die LOG-Datei in ``\jobname.msg''.}
+ \wmsg*{<HIER LOG ZUR TESTDATEI EINFUEGEN >}
+ \fi
+ \pause
+ \else
+ \copytomsg{\logfile}
+ \fi
+\or
+ \wmsg{>Unterbereich: DOC-Fehler}
+ \or
+ \wmsg{>Unterbereich: Aenderungswunsch}
+\fi
+
+%%
+%% Closing Banner.
+%%
+\typeout{^^J%
+============================================================}
+
+\ifinteractive
+ \ifenglish
+ \typeout{^^J%
+ You may edit file ``\jobname.msg'' for additional changes.}
+ \else
+ \typeout{^^J%
+ Weiteren Aenderungen koennen sie direkt in der Datei^^J%
+ ``\jobname.msg'' mit Hilfe eines Editors vornehmen.}
+ \fi
+\else
+ \ifenglish
+ \typeout{^^J%
+ The formular of the report will be saved to ``\jobname.msg''.^^J%
+ Please use an editor to replace all information fields, before^^J%
+ sending it.}
+ \else
+ \typeout{^^J%
+ Das Formular fuer die Erstellung der Meldung wurde in die^^J%
+ Datei ``\jobname.msg'' geschrieben, die Sie bitte mit Hilfe^^J%
+ eines Editors ergaenzen, bevor Sie sie abschicken.}
+ \fi
+\fi
+
+\let\ifinteractivetrue\iftrue
+\ifenglish
+ \typeout{^^J%
+ Please send ``\jobname.msg'' to komascript@gmx.info using subject:^^J%
+ \@spaces ``KOMA-BUG:\space\synopsis''^^J%
+ ^^J%
+ Thank you for spending time for a bug report.}
+\else
+ \typeout{^^J%
+ Wenn Sie ueber eMail verfuegen, so senden Sie ``\jobname.msg''^^J%
+ bitte an komascript@gmx.info.^^J%
+ Verwenden Sie dabei bitte als Betreff (Subject):^^J%
+ \@spaces ``KOMA-BUG:\space\synopsis''^^J%
+ ^^J%
+ Danke, dass Sie sich die Zeit genommen haben.}
+\fi
+\wmsg*{^^J%
+ ============================================================^^J
+ Ende der KOMA-Fehlermeldung.^^J%
+ ============================================================}
+
+%%
+%% Close the .msg output stream.
+%%
+\immediate\closeout\msg
+
+%%
+%% This is the TeX primitive \end command.
+%%
+\@@end
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End: