diff options
author | Karl Berry <karl@freefriends.org> | 2015-11-30 22:59:21 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-11-30 22:59:21 +0000 |
commit | af61853c84d7141bbb1a12c61553d47cdec19cdf (patch) | |
tree | 3eab1a1757a2ed1ab2158ed2e62c55083c20f4d7 /Master/texmf-dist | |
parent | 33d76ddabcc1e359bf54570a6b42a6d826f73a45 (diff) |
bibarts (30nov15)
git-svn-id: svn://tug.org/texlive/trunk@38979 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/bibarts/README.txt | 5 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/bibarts/ba-short.pdf | bin | 0 -> 292624 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/bibarts/ba-short.tex | 641 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/bibarts/bibarts.pdf | bin | 235129 -> 956216 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/bibarts/bibarts.tex | 7237 | ||||
-rwxr-xr-x | Master/texmf-dist/doc/latex/bibarts/bibsort.exe | bin | 0 -> 161280 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/bibarts/copying | 339 | ||||
-rwxr-xr-x | Master/texmf-dist/doc/latex/bibarts/gbib209.bat | 68 | ||||
-rwxr-xr-x | Master/texmf-dist/doc/latex/bibarts/gbib2e.bat | 68 | ||||
-rwxr-xr-x | Master/texmf-dist/doc/latex/bibarts/gbibsort.exe | bin | 96768 -> 0 bytes | |||
-rw-r--r-- | Master/texmf-dist/makeindex/bibarts/gbibarts.ist | 6 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/bibarts/bibsort.c | 5419 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/bibarts/gbibsort.c | 623 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/bibarts/bibarts.sty | 4218 |
14 files changed, 15963 insertions, 2661 deletions
diff --git a/Master/texmf-dist/doc/latex/bibarts/README.txt b/Master/texmf-dist/doc/latex/bibarts/README.txt new file mode 100644 index 00000000000..4b3699edbaa --- /dev/null +++ b/Master/texmf-dist/doc/latex/bibarts/README.txt @@ -0,0 +1,5 @@ +BibArts is a LaTeX package to assist in making bibliographical features common in the arts, and the humanities (history, political science, philosophy, etc.). BIBARTS.STY provides commands for quotation, abbreviations, and especially for a formatted citation of literature, journals (periodicals), edited sources, and archive sources. In difference to its forerunner, it helps to use slanted fonts (italics), and is able to set ibidem automatically in footnotes. It will also copy all citation information, abbreviations, and register key words into lists for an automatically generated appendix. That lists could refer to page and footnote numbers. BibArts has nothing to do with BibTeX. +The lists are created by BIBSORT. A file BIBSORT.EXE is part of the package and successfully tested on WINDOWS 8.1. The source code BIBSORT.C is not written for a certain operating system or compiler. +This version 2.0 does no more uses MAKEINDEX. The package has massive extensions in comparison with its forerunners. It provides an emulation for 1.3 texts, but better keep copies of the files of older versions of BibArts. A short English documentation is BA-SHORT.PDF, the full German documentation is BIBARTS.PDF. +Published under the terms of the GNU General Public License. +BibArts 2.0 (C) Timo Baumann 2015 diff --git a/Master/texmf-dist/doc/latex/bibarts/ba-short.pdf b/Master/texmf-dist/doc/latex/bibarts/ba-short.pdf Binary files differnew file mode 100644 index 00000000000..9066d00aebd --- /dev/null +++ b/Master/texmf-dist/doc/latex/bibarts/ba-short.pdf diff --git a/Master/texmf-dist/doc/latex/bibarts/ba-short.tex b/Master/texmf-dist/doc/latex/bibarts/ba-short.tex new file mode 100644 index 00000000000..16bf3f28d9d --- /dev/null +++ b/Master/texmf-dist/doc/latex/bibarts/ba-short.tex @@ -0,0 +1,641 @@ + \documentclass[12pt,a4paper]{article} + \usepackage{bibarts} + \bacaptionsenglish + + \title{The \LaTeX-Package \BibArts \\[.25ex] {\normalsize\slshape + A package to assist in making bibliographical features common in the arts}} + \author{\textsc{Timo Baumann}} + \date{\small Version 2.0, \copyright\,2015} + + \setcounter{secnumdepth}{0} + + + \newcommand{\pkTitle}{k\kern -0.05em Title} + \newcommand{\kTitle}{\sort{kTitle}\protect\pkTitle} + + \newcommand{\pbs}{\string\ \unskip} + \newcommand{\bs}{\protect\pbs} + + \let\lbashortmem=\{ + \let\rbashortmem=\} + \renewcommand{\{}{{\normalfont\lbashortmem}} + \renewcommand{\}}{{\normalfont\rbashortmem}} + +\long\def\Doppelbox#1#2{\nopagebreak\vspace{2.25ex}% + {\fbox{\parbox{.45\textwidth}{\frenchspacing\raggedright\footnotesize\ttfamily + \ignorespaces #1}\hfill\parbox{.45\textwidth}{\vspace{1ex}% + \begin{minipage}{.45\textwidth}\sloppy\small + \renewcommand{\thempfootnote}{\arabic{mpfootnote}}% + \setcounter{mpfootnote}{\arabic{footnote}}% + {\ignorespaces #2}% + \setcounter{footnote}{\arabic{mpfootnote}}% + \end{minipage} + \vspace{1ex}}}\vspace{2.4ex}}} + + +\begin{document} + +\maketitle + +{\small\tableofcontents} + +\vfill\noindent\rule{\textwidth}{.1pt} + +\vspace{1.75ex} +\hbox{\parbox{7.7cm}{\footnotesize\noindent +\textbf{The package consists of eight files 11-29-15:} \\[.75ex] + \begin{tabular}{ll}% + \texttt{bibarts.sty} & The \LaTeX\ style file \\[-1.5pt] + \texttt{ba-short.pdf} & This documentation here \\[-1.5pt] + \texttt{ba-short.tex} & Source of \texttt{ba-short.pdf}\\[-1.5pt] + \texttt{bibarts.pdf} & Full documentation (German) \\[-1.5pt] + \texttt{bibarts.tex} & Source of \texttt{bibarts.pdf} \\[-1.5pt] + \texttt{bibsort.exe} & The sort program \\[-1.5pt] + \texttt{bibsort.c} & Source of \texttt{bibsort.exe} \\[-1.5pt] + \texttt{copying} & The licence of the package \\ + \end{tabular}} +\\ +\hspace*{2.4mm} +\parbox{5.5cm}{\sethyphenation{english}\tiny\sffamily + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +}} + +\vspace{.75ex}\noindent \BibArts~2.0 provides only an \hfill EMULATION +\hfill for 1.3 texts: Keep copies of 1.x? + + +\newpage +\section{Introduction} + Type \verb|\usepackage{bibarts}| into your \textit{file}.\texttt{tex}, and + \verb|\bacaptionsenglish| to switch to English captions (to name pages p., + not S.). They are used here. \verb|\bacaptionsfrench| sets French captions; + default is \verb|\bacaptionsgerman|. + + \vspace{.75ex}\noindent + For citing literature full, you can use then (the page number \verb|[Pg]| + is optional): + + \vspace{-.4ex}\Doppelbox + { + \bs vli\{FirstName\}\{LastName\} + \\ \ \ \{The \bs ktit\{kTitle\}, + \\ \ \ \ Publishing Reference\}[Pg]. + } + { + \vli{FirstName}{LastName} + {The \ktit{\kTitle}, Publishing Reference}[Pg]. + } + + \noindent + Now, \BibArts\ can also write your appendix! \texttt{bibarts.sty} writes + the arguments of your \verb|\vli|-commands into the + \textit{file}.\texttt{aux}, and \texttt{bibsort} creates your + List of Literature: Type \verb|\printvli| (p.\,\pageref{appendix}), + \hspace{.1em}and start \LaTeX\ + \texttt{bibsort} \textit{file} + \LaTeX. + + \vspace{.75ex}\noindent + After having introduced literature in a full v-cite, you may cite it short: + + \vspace{-.6ex}\Doppelbox + { + \bs kli\{LastName\}\{kTitle\}[Pg]. + } + {\vspace{1.75ex} + \kli{LastName}{\kTitle}[Pg]. + } + + \vspace{-.3ex}\noindent + Then, you also can \verb|\printnumvkc| (p.\,\pageref{vkc}) an index of all + short-cited literature (\verb|\kli|, or marked with \verb|\ktit| inside the + last argument of a \verb|\vli|-command). + + \vspace{.75ex}\noindent + Use \verb|\vqu| and \verb|\kqu| \hspace{.1em}in the same way + \hspace{.1em}to cite published historical documents: + +\vspace{-.25ex} +\Doppelbox +{ + ...\bs footnote \b{\b{\{}}See + \\ \hspace{.5em} \bs vqu \{Carl von\} + \{Clausewitz\} + \\ \hspace{2.5em} \b{\{}\bs ktit\{Vom Kriege\}. + \\ \hspace{3em} Hinterlassenes Werk, + \\ \hspace{3em} 3\bs fup\{rd\} ed.\bs\ + \\ \hspace{3em} Frankfurt/M 1991\b{\}}[3].\b{\b{\}}} + \\ ...\bs footnote\{\bs kqu\{Clausewitz\} + \\ \hspace{2.5em} \{Vom Kriege\}[3].\} +} +{ + ...\footnote{See \vqu {Carl von}{Clausewitz} {\ktit{Vom Kriege}. + Hinterlassenes Werk, 3\fup{rd} ed.\ Frankfurt/M 1991}[3].} + \\ ...\footnote{\kqu{Clausewitz} {Vom Kriege}[3].} + \vspace{-.5ex} +} + + \vspace{-.25ex}\noindent + Then, \verb|\printvqu| a list of full \ehinttovquname-entries. $-$ Two + other \BibArts-commands are + + \vspace{-.35ex}\vfill + \Doppelbox + { + \bs per\{Journal\}\string|Vol\string|[Pg] + \\[1ex] + \bs arq\{Unpublished Document\} + \\ \ \{Archive File Sig\}\string_Num\string_(Folio) + } + { + \per{Journal}|Vol|[Pg] + \\[.5ex] + \arq{Unpublished Document} + {Archive File Sig}_Num_(Folio) + } + + \vspace{-.25ex}\vfill\noindent + \verb|\printper| your Periodicals, and \verb|\printarq| the List of Archive + Files. Spaces are forbidden before the optional arguments \verb+[Pg]+, + \verb+(Foilo)+, \verb+|Vol|+, or \verb+_Num_+. + + +\newpage +\section{Switches} + If you write an article (instead of a book), you might use the List of + Literature only for control. Set \verb|\conferize| to get cross references + from \verb|\kli| to \verb|\vli|: + + \Doppelbox + {\bs conferize\ ...\bs footnote\{ + \\[.15ex] \ \ Full-cite: \ \bs vli\{Niklas\} + \\[.05ex] \ \ \ \{Luhmann\} \b{\{}\bs ktit\{Soziale + \\[.15ex] \ \ \ \ \ \ \ \ Systeme\}. Grundri\{\bs ss\} + \\ \ \ \ \ einer allgemeinen Theorie, + \\ \ \ \ \ Frankfurt/M. 1984\b{\}}[22].\} + \\[1.5ex] ... pp.\bs footnote\{\bs notibidemize + \\ \ \ \%no ibidem in this footnote\% + \\ \ \ Short-cite: \bs kli\{Luhmann\} + \\ \ \ \ \ \ \ \{Soziale Systeme\}[23\bs f].\} + } + {\conferize ...\footnote{ + Full-cite: \vli{Niklas}{Luhmann} {\ktit{Soziale Systeme}. + Grundri{\ss} einer allgemeinen Theorie, Frankfurt/M. 1984}[22].} + \texttt{[u, v]} or \texttt{[w-x]} or \texttt{[y\bs f]} or + \texttt{[z\bs baplural]} are creating pp.\footnote{\notibidemize + %no ibidem in this footnote% + Short-cite: \kli{Luhmann} {Soziale Systeme}[23\f].} + } + + \noindent + If you are never using \textit{both k-commands} \verb|\kli| and + \verb|\kqu|, \verb|\notannouncektit| them in your \textit{v-commands} + ({\footnotesize cited as ...} will not be printed at \verb|\vli| and + \verb|\vqu|). + + No historian? Set \verb|\notprinthints| $-$ you will never use \verb|\vqu| + or \verb|\kqu|, and therefore, it is unnecessary to print the hint to the + \ehinttovliname-list at short cites. + + +\section{The extra \texttt{*}\{\textit{argument}\} of v- and k-commands} + + To cite \textit{books from teams}, set co-authors in star-arguments; use + x-commands: + + \Doppelbox + { + Set names ...\bs footnote\{Two:\ + \\ \ \bs xvli\{FirstName\}\{LastName\} + \\ \ \ *\b{\{}\bs vauthor\{co-FirstName\} + \\ \ \ \ \ \ \{co-LastName\}\b{\}} + \\ \ \ \{The \bs ktit\{kTitle2\} Pub\}.\} + \\[1.25ex] + ... to ibidemize.\bs footnote\{ + \\ \ \bs xkli\{LastName\} + \\ \ \ *\{\bs kauthor\{co-LastName\}\} + \\ \ \ \{kTitle2\}[11-14].\} + } + { + Set names in \texttt{\bs vauthor} --\,\texttt{\bs kauthor}.\footnote{Two: + \xvli{FirstName}{LastName} + *{\vauthor{co-FirstName} + {co-LastName}} + {The \ktit{\kTitle2} Pub}.} + + That's necessary to ibidemize.\footnote{\xkli{LastName}*{\kauthor{co-LastName}}{\kTitle2}[11-14].} + } + + \noindent + You may use a \texttt{*}-argument also in \verb|\vli| $-$ to mask text in the + ibidemization: + + \Doppelbox + { + ...\bs footnote\{An edited book is + \\ \ \bs vli\{FirstName\}\{LastName\} + \\ \ \ *\{\bs onlyvoll\{\bs editor\}\} + \\ \ \ \{The \bs ktit\{kTitleEd\} Pub\}[2].\} + \\[1.25ex] + \bs footnote\{ \%Without *-argument:\ + \\ \ \bs kli\{LastName\}\{kTitleEd\}[3, 6].\} + } + { + \texttt{\bs editor}(\texttt{s}) has no sorting + weight.\footnote{An edited book is + \vli{FirstName}{LastName} + *{\onlyvoll{\editor}} + {The \ktit{\kTitle Ed} Pub}[2].} + \footnote{ %Without *-argument:\ + \kli{LastName}{\kTitle Ed}[3, 6].} + } + + + \newpage + \noindent + For books with three or more authors, you have to set all `middle' authors + in \verb|\midvauthor| (or \verb|\midkauthor|), and the `last' in + \verb|\vauthor| (or \verb|\kauthor|): + + \Doppelbox + { + \bs footnote\{See + \\ \ \bs xvli\{Manfred F.\}\{Boemeke\} + \\ \ \ *\b{\{}\bs midvauthor\{Roger\} + \\ \ \ \ \ \ \ \ \ \ \ \{Chickering\} + \\ \ \ \ \ \bs vauthor\{Stig\}\{F\bs\string"orster\}\b{\}} + \\ \ \ \b{\{}\bs ktit\{Anticipating Total War\}. + \\ \ \ \ The German and American + \\ \ \ \ Experiences 1871-{}-1914, + \\ \ \ \ Cambridge/U.K.\bs\ 1999\b{\}}.\} + \\[1ex] + \bs footnote\{ + \\ \ \bs xkli\{Boemeke\} + \\ \ \ *\b{\{}\bs midkauthor\{Chickering\} + \\ \ \ \ \ \bs kauthor\{F\bs\string"orster\}\b{\}} + \\ \ \ \{Anticipating Total War\}[9\bs f]!\} + } + { + \footnote{See + \xvli{Manfred F.}{Boemeke}*{\midvauthor{Roger}{Chickering} + \vauthor{Stig}{F\"orster}}{\ktit{Anticipating Total War}. + The German and American Experiences 1871--1914, Cambridge/U.K.\ 1999}.} + + \footnote{\xkli{Boemeke}*{\midkauthor{Chickering} \kauthor{F\"orster}}{Anticipating Total War}[9\f]!} + } + + +\section{IBIDEM and inner citations} + + To cite articles in journals, use \verb|\per| inside the last argument of a + v-command: + +\Doppelbox +{ +...\bs footnote\{See \bs vqu \{John +\\ \ \ Frederick Charles\} \{Fuller\} +\\ \ \b{\{}Gold Medal (Military) +\\ \ \ \bs ktit\{Prize Essay\} for 1919, +\\ \ \ first published in: +\\ \ \ \bs per\{Journal of the Royal +\\ \ \ \ \ \ \ \ United Service +\\ \ \ \ \ \ \ \ Institution\}\string_458 +\\ \ \ \ \ \ \ \ \ (1920)\string_[239-274]\b{\}}*[240].\} +\\[1.5ex] +...\bs footnote\{ \bs kqu \{Fuller\} +\\ \ \ \ \ \ \ \ \ \ \ \{Prize Essay\}[241].\} +\\[1.5ex] +... here.\bs footnote\{ \bs vqu\{R.\} +\\ \ \{Chevenix Trench\} +\\ \ \{Gold Medal (Military) +\\ \ \ \bs ktit\{Prize Essay\} for 1922, +\\ \ \ in: \bs per\{Journal of the +\\ \ \ \ \ \ \ \ Royal United Service +\\ \ \ \ \ \ \ \ Institution\}\string_470 +\\ \ \ \ \ \ \ \ \ (1923)\string_[199-227]\}*[200].\} +} +{\vspace{-1.02cm} +Do not type spaces before \texttt{*[Pg]}.\footnote{See +\vqu {John Frederick Charles} {Fuller} +{Gold Medal (Military) \ktit{Prize Essay} for 1919, +first published in: \per{Journal of the Royal United Service +Institution}_458 (1920)_[239-274]}*[240].} + +...\footnote{ \kqu {Fuller} {Prize Essay}[241].} + +\BibArts\ creates an inner \textsc{ibidem} +here.\footnote{ \vqu{R.} +{Chevenix Trench} +{Gold Medal (Military) \ktit{Prize Essay} for 1922, +in: \per{Journal of the Royal United Service +Institution}_470 (1923)_[199-227]}*[200].\label{third}} +} + + \noindent + After the main arguments of \verb|\per|, or \verb|\vli|, etc., you are free + to type \verb+_Num_+, or \verb+|Vol|+; both are only printing different + separators (see in note~\ref{third}: {\footnotesize no.\,Num}). + + If an article is in an edited book, also use a v- or k-command inside a + last v-argument. \verb|\printvli| will print the inner title as short title + on the List of Literature; the full inner title appears as separate list + item (see \underline{Pub} below). To cite further articles from the same + book, you may short-cite also inside: + + \Doppelbox{ + ...\bs footnote\{\bs vli\{FN1\}\{LN1\}\b{\{}The + \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \bs ktit\{First\}, + \\ \ in: \bs vli\{iFN\}\{iLN\}\{The \bs ktit\{iT\} + \\ \ \ \bs protect\bs underline\{Pub\}\}\b{\}}.\} + \\[1ex] \bs footnote\{\bs kli\{LN1\}\{First\}.\} + \\[1ex] \bs footnote\{\bs vli[m]\{FN1\}\{LN1\}\{The + \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \bs ktit\{Second\}, + \\ \ in: \bs kli\{iLN\} + \\ \ \ \ \{iT\}[PgBegin-PgEnd]\}*[Pg].\} + } + { + \texttt{\bs vli[f]}...\ or \texttt{\bs kli[f]}...\ would refer to `the same female author'.% + \footnote{\vli{FN1}{LN1}{The \ktit{First}, in: \vli{iFN}{iLN}{The \ktit{\protect\fbox{iT}} \protect\underline{Pub}}}.} + \footnote{\kli{LN1}{First}.} + \footnote{\vli[m]{FN1}{LN1}{The \ktit{Second}, in: \kli{iLN}{\protect\fbox{iT}}[PgBegin-PgEnd]}*[Pg].} + } + +\noindent +If an inner ibidemization as well as (on the List of Literature) an inner +short-citing is not wanted, use \verb|\ntvauthor| instead of the inner +v-command: + +\Doppelbox +{ + \bs footnote\{\bs vli\{Jost\}\{D\bs\string"ulffer\} + \\ \ \{\bs ktit\{Einleitung\}, in: + \\ \ \ \bs ntvauthor\{Jost\}\{D\bs\string"ulffer\} + \\ \ \ Bereit zum Krieg\}[9].\} + \\[1ex] \bs footnote\{\bs kli\{D\bs\string"ulffer\} + \\ \ \{Einleitung\}[9].\} +} +{ + \footnote{\vli{Jost}{D\"ulffer} + {\ktit{Einleitung}, in: + \ntvauthor{Jost}{D\"ulffer} Bereit zum Krieg}[9].} + \footnote{\kli{D\"ulffer} + {Einleitung}[9].} +} + + +\vfill\noindent +If you use \verb|\printnumvli| instead of \verb|\printvli|, the page and +footnote numbers will be printed additionally (\textsc{iLN}: inner\,LastName +/ \fbox{iT}: inner\,k\kern -0.05em Title): + +\vfill +{\baonecolitemdefs\printnumvlilist} + + +\let\memvlititlename=\evlititlename +\renewcommand{\evlititlename}{\texttt{\bs printvli} \ \memvlititlename} + +\let\memvqutitlename=\evqutitlename +\renewcommand{\evqutitlename}{\texttt{\bs printvqu} \ \memvqutitlename} + +\let\membibtitlename=\ebibtitlename +\renewcommand{\ebibtitlename}{\texttt{\bs printbibtitle} \ \membibtitlename} + + +\newpage\noindent +The command sequence \verb|\printbibtitle| \verb|\printvli| \verb|\printvqu| +\label{appendix} will print an easy appendix. If you type \hspace{.01em} +\texttt{bibsort -k} \hspace{.02em} to DOS, you will get \hspace{.005em} +$\sim$ \hspace{.005em} in both v-lists, when the name (first name and last +name) of an author is repeated: + +\printbibtitle \printvli \printvqu + +\vfill\noindent +\verb|\bibsortheads| will print capital letters between two items into the +lists when the initial letter changes, whereas \verb|\bibsortspaces| will +print only a bigger vertical space there instead. Both features are prepared +by \verb|bibsort|. + + +\newpage +\noindent +\subsection*{\texttt{\bs printnumvkc} \ \evkctitlename} +\addcontentsline{toc}{subsection}{\texttt{\bs printnumvkc} \ \evkctitlename} +\verb|\printnumvkc| prints a \texttt{twocolumn}\hy index of all the short +cites you have used, whereas \verb|\printnumvkclist| \label{vkc} just prints +your list without \texttt{headings} or title:\vspace{.5ex} + +{\batwocolitemdefs\printnumvkclist} + +\let\mempertitlename=\epertitlename +\renewcommand{\epertitlename}{\texttt{\bs printper} \ \mempertitlename} +\vspace{-.5ex}\printper + +\renewcommand{\epertitlename}{\texttt{\bs printnumper} \ \mempertitlename} +\vspace{-.5ex}\printnumper + +\let\memarqtitlename=\earqtitlename +\renewcommand{\earqtitlename}{\texttt{\bs printarq} \ \memarqtitlename} +\vspace{-.5ex}\printarq + +\renewcommand{\earqtitlename}{\texttt{\bs printnumarq} \ \memarqtitlename} +\vspace{-.5ex}\printnumarq + +\vfill\noindent +Type \hspace{.01em} \verb|bibsort -??| \hspace{.01em} to DOS to learn about +the sorting order of page numbers. + + +\newpage +\section{Extra features} + +For your \LaTeX\ file, \BibArts\ provides an environment to send unused +literature into the v-lists. If there is no further text inside, such areas +will be invisible: + +\vspace{-1.25ex} +{\footnotesize\begin{verbatim} + !\begin{unused} \sethyphenation{german}% %% other hyphenation pattern + \vqu{Karl}{Marx}{Das \ktit{Kapital}, in: \midvauthor{Karl}{Marx} + \ntvauthor{Friedrich}{Engels} Werke, \ersch|3|[1]{Berlin}{1962--1964}} + \end{unused}! Please note, that %% |3| and ed.[1] are optional +\end{verbatim}} + +\vspace{-1ex}\noindent + !\begin{unused} \sethyphenation{german}% %% other hyphenation pattern + \vqu{Karl}{Marx}{Das \ktit{Kapital}, in: \midvauthor{Karl}{Marx} + \ntvauthor{Friedrich}{Engels} Werke, \ersch|3|[1]{Berlin}{1962--1964}} + \end{unused}! Please note, that \textit{inner} \verb|\vli|\textit{'s from} +\verb|{unused}|-\textit{environments} will not appear as own full entries on the +vli-list; so, you have to repeat them separately. + +\vspace{1.5ex}\noindent +\BibArts\ does not only help to cite. The environment \verb|{originalquote}| +helps to quote from literature or sources. You may call all hyphenation +patterns, which your \LaTeX\ possesses, in the \verb|[|\textit{optional +argument}\verb|]| of the environment: + +\Doppelbox +{ \bs begin\{originalquote\}[german] + \\ \ \ \string"Der Krieg entsteht + \\ \ \ nicht urpl\bs\string"otzlich; seine + \\ \ \ Verbreitung ist nicht das + \\ \ \ Werk eines Augenblicks, + \\ \ \ [...].\string"\bs footnote \b{\{}Quoted from + \\ \ \ \ \bs kqu\{Clausewitz\} + \\ \ \ \ \ \ \ \ \{Vom Kriege\}[22].\b{\}} + \\ \bs end\{originalquote\} +} +{\renewcommand{\originalquotetype}{\footnotesize}% + \begin{originalquote}[german] + "Der Krieg entsteht nicht urpl\"otzlich; seine Verbreitung + ist nicht das Werk eines Augenblicks, + [...]."\footnote {Quoted from + \kqu{Clausewitz} {Vom Kriege}[22].} + \end{originalquote} +} + +\vspace{.5ex}\noindent +In quotations, you may use \verb|\abra| to set additions in small angular +brackets. And \verb|\fabra| affixes the argument to the following text (it +forbids line breaks): + +\vspace{1ex}\noindent +{\small + \verb| \abra{,} => | Red\abra{,} blue and green were the \\[-.25ex] + \verb| \abra{.}\newsentence => | colours\abra{.}\newsentence And \hspace{2.25em} \verb|% spacing| \\[-.25ex] + \verb| \abra{...} \abra{\dots} => | there \abra{...} were \abra{\dots} others, \\[-.25ex] + \verb| \abra{---} => | \abra{---} let's say \abra{---} \\[-.25ex] + \verb| \abra{-} \abra{--} => | green\abra{-}red\abra{--}painted. \\[-.25ex] + \verb| \fabra{`} \fabra{'} => | \hbox to 6em{\fabra{`}Ha\fabra{'},\hfill} \verb|% ASCIIs 96 and 39| \\[-.25ex] + \verb| \fabra{``} \abra{''} => | \fabra{``}Good!\abra{''} \\[-.25ex] + \verb| \fabra{\dq} \abra{\dq} => | \hbox to 6em{\fabra{\dq}Good!\abra{\dq}\hfill} \verb|% \dq represents "| \\[-.25ex] + \verb| \fabra{e}g. => | \hbox to 6em{\fabra{e}g.\hfill} \verb|% unknown = normal|} + +\vspace{2ex}\vfill\noindent +\BibArts\ defines +\hspace{.1em}\verb|S\fup{te}|\hspace{.3em}\verb|=>|\hspace{.3em}S\fup{te} +(if that command for \textit{French up} is undefined), and it provides +commands to set ordinals in English, French and German: + +\vspace{1ex}\vfill\noindent +{\small + \verb| \eordinal{103} Assistant. => | \eordinal{103} Assistant. \\[-.2ex] + \verb| Le \fordinalm{1} homme. => | Le \fordinalm{1} homme. \\[-.25ex] + \verb| La \fordinalf{1} femme. => | La \fordinalf{1} femme. \\[-.2ex] + \verb| Der 1\te August. => | Der 1\te August.} + + + \newpage\noindent + To print abbreviations, use \verb|\abk{|\textit{xyz}\verb|}|. \textit{xyz} + only will appear on the List of Abbreviations (\verb|\printabk| or + \verb|\printnumabk|), when it is defined in the text: + + \vspace{-.25ex} + \Doppelbox + { + \bs abkdef\{HMS\}\{Her Majesty\string's Ship\} + \\[.35ex] \ \ or + \\[.35ex] \bs defabk\{Her Majesty\string's Ship\}\{HMS\} + \\[.35ex] \ \ and then \bs texttt\{bibsort\} + \\[.35ex] \ \ will accept \bs abk\{HMS\}. + \vspace{-1ex}\strut + } + { + \abkdef{HMS}{Her Majesty's Ship} + \\ or + \\ \defabk{Her Majesty's Ship}{HMS} + \\ and then \texttt{bibsort} + \\ will accept \abk{HMS}. + \vspace{-1ex}\strut + } + +\noindent +If a dotted abbreviation is at a dot\hy end of a sentence, you have to +repeat the dot (\verb|\abk{e.\,g.}. Next => |\abk{e.\,g.}. Next) for the +\textit{spacing} (do not use \verb|\@.|)! Use \verb|\printnumabk| (or +\verb|\printabk|) to print a List of Abbreviations: + +\vspace{-.325ex} +\printnumabklist + +\noindent +\BibArts\ provides no index with sub-items, but registers (geographical, +subject, and person). The commands to fill the registers have one argument; +they are invisible in your text, e.\,g.: \verb|\addtogrr{London}|, +\verb|\addtosrr{Ship}|, and \verb|\addtoprr{Churchill}|\,. +\verb|\printnumgrr|, \verb|\printnumsrr|, and \verb|\printnumprr| the +registers in your appendix. That has nothing do do with \textsc{MakeIndex}. + +\vspace{1ex}\noindent +A last feature of \BibArts\ are fill-commands. \verb|\fillper|, +\verb|\fillgrr|, \verb|\fillsrr|, \verb|\fillprr|, and \verb|\fillarq| have +two arguments. The first has to be identical with the argument of a +\verb|\per|-, or a register-command, or the second argument of an +\verb|\arq| command (the archive file informations). You can use +fill-commands to add longer text, which you do not want to type every time: + +\vspace{-.25ex} +\Doppelbox +{\vspace{1ex} + \bs fillprr\{Churchill\} \{1874-1965\} \\[1.5ex] + Churchill \ \bs addtoprr\{Churchill\} + was prime minister.\bs footnote\b{\{} + \\ \ \bs addtoprr\{Churchill\}\% + \\ \ Born Blenheim Palace.\b{\}} \\[1.325ex] + \bs printnumprr + \vspace{1ex} +} +{\vspace{-.875ex}% + \fbox{\begin{minipage}{.95\textwidth} + \setcounter{mpfootnote}{\arabic{footnote}}% + \vspace{.125ex} + \fillprr{Churchill} {1874-1965} + Churchill \addtoprr{Churchill} + was prime minister.\footnote + { \addtoprr{Churchill}% + Born Blenheim Palace.} + \setcounter{footnote}{\arabic{mpfootnote}}% + \end{minipage}} + \\[.75ex] + \fbox{\begin{minipage}{.95\textwidth} + \vspace{.875ex} + \subsubsection*{\eprrtitlename} + \vspace{-.75ex}% + {\footnotesize\printnumprrlist}% + \vspace{-1.375ex}% + \end{minipage}}% + \vspace{-1ex}% +} + +\vspace{.5ex}\vfill\noindent +To change the typeset of \BibArts' arguments, you may only use commands like +\verb|\sffamily| or \verb|\bfseries| in \verb|\renewcommand|, but never +\verb|\textsf| or \verb|\textbf|: + +\vspace{1.5ex}\vfill\noindent +{\small\begin{tabular}{lll} +\textsf{Command} & \textsf{Predefined} & \textsf{Executed on} \\[.325ex] +\verb|\abkemph| & \verb|{\sffamily}| & abbreviations \\ +\verb|\kxxemph| & \verb|{}| & short-cited titles (k\kern -0.05em Titles) \\ +\verb|\peremph| & \verb|{\normalfont\scshape}| & periodicals (no \textit{italics}!) \\ +\verb|\abklistemph| & \verb|{\bfseries}| & abbreviations on the abk-list \\ +\verb|\xrrlistemph| & \verb|{}| & words on grr-, prr-, and srr-lists\\ +\end{tabular}} + + %% BibArts is only able to handle slanted fonts, + %% when you are using only emph-commands. Do not + %% type \textit or \textsl inside the arguments! + +\end{document} diff --git a/Master/texmf-dist/doc/latex/bibarts/bibarts.pdf b/Master/texmf-dist/doc/latex/bibarts/bibarts.pdf Binary files differindex bd2ea707bdf..5a6dfa8dc44 100644 --- a/Master/texmf-dist/doc/latex/bibarts/bibarts.pdf +++ b/Master/texmf-dist/doc/latex/bibarts/bibarts.pdf diff --git a/Master/texmf-dist/doc/latex/bibarts/bibarts.tex b/Master/texmf-dist/doc/latex/bibarts/bibarts.tex index b32d5603caf..16dbf7681d0 100644 --- a/Master/texmf-dist/doc/latex/bibarts/bibarts.tex +++ b/Master/texmf-dist/doc/latex/bibarts/bibarts.tex @@ -1,1404 +1,5909 @@ -%% -%% -%% Dies ist die Dokumentation zu bibarts 1.3. -%% (c) Timo Baumann <28.Mar.1998> -%% -%% -%% -%% siehe unten: BEARBEITUNG DIESES TEXTES -%% -%% -%% -%% ENGLISH ABSTRACT: -%% ================= -%% -%% bibarts helps you to make a bibliography (literature, sources & index). -%% - bibarts switches from english to german, if \newumlaut is defined -%% (in german.sty, \newumlaut is defined). -%% - bibarts switches from LaTeX 2.09 to LaTeX 2e, if \LaTeX2e is defined -%% (see definition of \@footnotetext in bibarts.sty). -%% - If you are no DOS user, you have to compile gbibsort.c using your own -%% compiler, or, you have to use your own sorting program. If you do not -%% use gbibsort, you may not use commands \sort, \male, nor \female. -%% - bibarts.sty defines the following commands: -%% 1 \makebar: Prepares bibliography FILE.bar. -%% You have to perform the following steps: -%% 1.1 latex FILE.tex -%% 1.2 gbibsort FILE.bar FILE.phy -%% 1.3 makeind[e]x FILE.bar -%% 1.4 latex FILE.tex -%% 1.5 latex FILE.tex -%% FILE.bar contains three kinds of items: literature, sources, and -%% index. They are created by commands 2, 3, 4, 5, 9, 10 and 12. -%% 2 \vli{Donald}{Knuth}{The TeX-Book, Reading (Mass.) 1984} -%% - prints "Donald Knuth: The TeX-Book, Reading (Mass.) 1984". -%% - writes "Knuth, Donald: The TeX-Book, Reading (Mass.) 1984" -%% into list of literature. "Knuth" will be underlined. -%% 3 \vqu does the same, but writes into list of sources. -%% 4 \addtovli{a}{b}{c}: Writes "b, a: c" into list of literature. -%% 5 \addtovqu{a}{b}{c}: Writes "b, a: c" into list of sources. -%% 6 \printonlyvli{a}{b}{c}: Prints "a b: c". (2 <=> 4 + 6) -%% 7 \printonlyvqu{a}{b}{c}: Prints "a b: c". (3 <=> 5 + 7) -%% 8 \sort{A} in \vli's, \vqu's, \addtovli's or \addtovqu's arguments -%% will be sorted like if there is an A, but A will not be printed. -%% 9 \bib{HINT}: Prints HINT and writes HINT to index, indexing page -%% number and, if \bib is in a footnote, an exponent after the page -%% number will also show the number of this footnote. -%% 10 \addtobib{HINT} writes HINT to index. (Do not use \sort{A}, but A@) -%% 11 \printonlybib{HINT} prints HINT. (9 <=> 10 + 11) -%% 12 \kurz{SHORT} prints "(in the following SHORT)" and behaves like -%% \addtobib{SHORT}, too. If it is in \vli's, \vqu's, \addtovli's or -%% \addtovqu's arguments, it writes "[SHORT]" into the bibliography. -%% 13 \printvli: Prints list of literature (extracting FILE.phy). -%% 14 \printvqu: Prints list of sources (extracting FILE.phy). -%% 15 \printnumvli: Prints list of literature, but adds to every item -%% the page (and the footnote) number from which the item came from: -%% "TITLE >> PAGENO" or "TITLE >> PAGENO^FOOTNOTENO" -%% (^FOOTNOTENO, if \vli or \addtovli have been in a footnote). -%% 16 \printnumvqu: Prints the list of sources like \printnumvli. -%% 17 If you start gbibsort with option -K, and there is an author in the -%% list of literature or the list of sources more than one time, the -%% name of this author will be printed only the first time, and then -%% instead of his name it will be printed 'similar'. You may change -%% 'similar' to "---" by saying "\renewcommand{\killname}{---}". -%% At the end of \vli's, \vqu's, \addtovli's or \addtovqu's first -%% argument, you may say \female, or \male. Instead of \killname, -%% \femalename ("Dies.") or \malename ("Ders.") will be printed. -%% 18 \printind: Prints the index, extracting FILE.ind. If \bib was -%% in a footnote, footnote number is added as an exponent to page -%% number. All entries coming from footnotes are printed first. -%% 18.1 article: "HINT: PAGENO^FOOTNOTENO, ..., PAGENO, ...," -%% 18.2 report: "HINT -%% Chapter CHAPTERNO: PAGENO^FOOTNOTENO, PAGENO," -%% 18.3 book: "HINT -%% Part PARTNO: -%% Chapter CHAPTERNO: PAGENO^FOOTNOTENO, PAGENO," -%% Write yourself an index style file with the following lines: -%% delim_0 " " -%% delim_1 " " -%% delim_2 " " -%% delim_n "\\komma " -%% delim_t " " -%% Use this style in MakeIndex' command line (-s STYLE). -%% 19 \bibmark{LABEL}: Writes "in the following LABEL" and sets LABEL. -%% LABEL may be Authors' name. (To be used in footnotes.) -%% 20 \bibref{LABEL}: Writes "LABEL (see n. XX on p. YY)". *19 -%% 21 \xbibmark{TEXT}{LABEL}: Writes "in the following TEXT" and sets -%% LABEL. TEXT may be an Authors' name, if this name contains -%% commands, which are not transformed in macro \@markprotect. -%% 22 \xbibref{TEXT}{LABEL}: Writes "TEXT (see n. XX on p. YY)". *21 -%% -%% ================= -%% -%% -%% -%% TableOfFiles: BIBARTS -%% ===================== -%% -%% FILE NAME ? -%% ------------ ----------------------------------------- -%% BIBARTS.STY LaTeX style file. -%% BIBARTS.TEX This file (LaTeX). -%% GBIBSORT.C Ansi C source file of sorting program. -%% GBIBSORT.EXE Sorting program. -%% GBIBARTS.IST MakeIndex style file. English users have -%% to delete the line re-defining "quote". -%% GBIB2E.BAT DOS batch file to make all files. It -%% assumes the existence of the DOS batch -%% file GLTX2E.BAT whitch starts LaTeX. -%% GBIB209.BAT DOS batch file to make all files. It -%% assumes the existence of the DOS batch -%% file GLATEX.BAT whitch starts LaTeX. -%% ------------ ----------------------------------------- -%% \sum 7 -%% -%% ===================== -%% -%% -%% -%% BEARBEITUNG DIESES TEXTES: -%% ========================== -%% -%% 1. Zum Ausprobieren von BiBarts ist es ausreichend, die dazugeh"origen -%% sieben Dateien in ein(em) Verzeichnis zu kopieren (zu entpacken). -%% -%% 2. Je nach dem, ob LaTeX 2.09 oder LaTeX 2e verwendet wird, m"ussen hier -%% im File bibarts.tex die Befehle \documentclass und \usepackage oder -%% \documentstyle auskommentiert werden. -%% -%% 3. DOS & LaTeX 2e: Dreimal in die DOS-Befehls-Zeile -%% gbib2e bibarts -%% eingeben! -%% -%% DOS & LaTeX 2.09: Dreimal in die DOS-Befehls-Zeile -%% gbib209 bibarts -%% eingeben! -%% -%% Falls das nicht funktioniert oder nicht DOS verwendet wird: -%% UNIX: gbibsort.c in ausf"uhrbare Datei "ubersetzen durch Eingabe von -%% gcc -O2 -c gbibsort.c -o gbibsort -%% ALLGEMEIN: Dieses File bibarts.tex mit LaTeX bearbeiten, das dabei -%% erzeugte bibarts.bar auf bibarts.phy sortieren durch Eingabe von -%% gbibsort bibarts.bar bibarts.phy -%% und gbibarts.bar mit -%% makeind(e)x -s gbibarts.ist -g gbibarts.bar -%% bearbeiten und danach bibarts.tex noch zweimal mit LaTeX bearbeiten! -%% -%% 4. END-INSTALLATION: -%% ALLGEMEIN: bibarts.sty in das Verzeichnis f"ur Style-Files kopieren; -%% in Version 2e ist dies wohl C:\EMTEX\TEXINPUT\LATEX2E, in Version 2.09 -%% vermutlich C:\EMTEX\TEXINPUT. Der Index-Style GBIBARTS.IST geh"ort ins -%% Verzeichnis C:\EMTEX\IDXSTYLE. -%% DOS: Falls Sie gbib209.bat oder gbib2e.bat st"andig benutzen wollen, -%% kopieren sie diese Dateien in ein Verzeichnis im PATH. Gleiches gilt -%% f"ur gbibsort.exe. -%% -%% ========================== -%% + \documentclass[12pt,a4paper]{article} + \usepackage{bibarts} %% Reihenfolge ist gleichgueltig. + %\notnegcorrdefabk %% LaTeX 2.09 %% + \usepackage{ngerman} + %\usepackage{german} + %\usepackage[ngermanb]{babel} + %\usepackage[germanb]{babel} + + %\usepackage[utf8]{inputenc} %% wuerde Ein-Zeichen-Umlaute moeglich machen %% + \usepackage[T1]{fontenc} %% Automatische Trennung von Worten mit Umlauten. %% + + +%%\documentstyle[12pt,german,a4,bibarts]{article} + +\hyphenation{Stern-ar-gu-ment +Voll-ein-trag +Satz-ende +Nach-kom-ma-stel-len +De-zi-mal-zah-len-er-ken-nung +Auf-marsch-an-wei-sun-gen +Na-mens-ar-gu-men-te +Nach-na-mens-ar-gu-men-ten +Sprach-ein-stel-lung +Stern-ar-gu-men-te +Text-edi-tor +Zei-len-um-bruch +Zei-len-um-br"u-che +} + + \newcommand{\pdfko}[1]{\kern #1pt + %\rule[-0.4ex]{0.8pt}{2ex}\kern -0.8pt + \strut\ignorespaces}% + %\newcommand{\pdfko}[1]{\strut\ignorespaces}% Falls NICHT mit pdflatex uebersetzt wird + + \newcommand{\pbs}{\string\ \unskip} + \newcommand{\bs}{\protect\pbs} + + \title{Das \LaTeX-Paket \BibArts} + \author{\textsc{Timo Baumann}} + \date{\small Version 2.0, \copyright~2015. + \hspace{.5em}{Zur 1.3\hspace{.075em}\hy Kompatibilit"at S.\,\pageref{compabil}.} + \hspace{.5em}\textbf{Inhalt S.\,\pageref{SectIn}}.} + +\long\def\Doppelbox#1#2{\nopagebreak\vspace{2.25ex}% + {\fbox{\parbox{.45\textwidth}{\raggedright\footnotesize\ttfamily + \ignorespaces #1}\hfill\parbox{.45\textwidth}{\vspace{1ex}% + \begin{minipage}{.45\textwidth}\sloppy\small + \renewcommand{\thempfootnote}{\arabic{mpfootnote}}% + \setcounter{mpfootnote}{\arabic{footnote}}% + {\ignorespaces #2}% + \setcounter{footnote}{\arabic{mpfootnote}}% + \end{minipage} + \vspace{1ex}}}\vspace{2.4ex}}} + \begin{document} + \maketitle - \documentclass[11pt]{article} %% LaTeX 2e - \usepackage{german} %% ^ - \usepackage{a4} %% | - \usepackage{bibarts} %% | - %% | Kommentare - %% | richtig setzen! - %% | - %% v -% \documentstyle[11pt,german,a4,bibarts]{article} %% LaTeX 2.09 + \noindent + \BibArts\ soll \LaTeX\hy Anwender beim Schreiben geisteswissenschaftlicher + Texte unterst"utzen (\kern-.05em\textit{arts faculty}). Der Vorspann eines deutschen + \LaTeX\hy Textdokuments, das das Stylefile \verb|bibarts.sty| einl"adt, + sieht typischerweise so aus: + \vspace{-1.5ex} + {\small\begin{verbatim} + \documentclass[12pt,a4paper]{article} + \usepackage{bibarts} \usepackage{ngerman} + \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} %>DVI + \end{verbatim}} + + \vspace{-4ex}\noindent + Das separate Tippen von Anh"angen kann nun weitgehend entfallen. + Dazu werden Kopien von Literaturangaben, die sich im Haupttext oder + den Fu"snoten befinden, in einer Literaturliste und weiteren Listen + sortiert ausgedruckt. + + \vspace{1ex}\noindent + Der wichtigste dieser Ausdruckbefehle, \verb|\printvli|, verh"alt sich + "ahnlich wie \verb|\tableofcontents| f"ur das Inhaltsverzeichnis: + Dazu muss im \LaTeX\hy Text ja auch + \verb|\section{|\texttt{"Uberschriftentext}\verb|}| markiert werden. + Und f"ur \BibArts\ gilt: + + \Doppelbox + {...\bs footnote\{Ein Beispiel f"ur Geschichtsliteratur ist + \bs vli\{Hans-Ulrich\}\{Wehler\}\{Das Deutsche Kaiserreich, + \\ G"ottingen 1994\}.\} + } + {...\footnote{Ein Beispiel f"ur Geschichtsliteratur ist + \vli{Hans-Ulrich}{Wehler}{Das Deutsche Kaiserreich, + G"ottingen 1994}.} + } + +\noindent +In \verb|\vli| l"asst sich ein sp"ater verwendeter Kurztitel +mit \verb|\ktit| so einf"uhren: + +\Doppelbox +{...\bs footnote\{Soziologie: + \bs vli\{Niklas\} \{Luhmann\} \{\bs ktit\{Soziale Systeme\}. + \\ Grundri"s einer allgemeinen Theorie, 1984: Frankfurt/M.\}.\} +} +{...\footnote{Soziologie: + \vli{Niklas} {Luhmann} {\ktit{Soziale Systeme}. Grundri"s einer + allgemeinen Theorie, 1984: Frankfurt/M.}.\balabel{luhmann}} +} + +\vfill\noindent +Beide Arten der Eingabe (mit und ohne \verb|\ktit|) kommen in die +Literaturliste, die das erw"ahnte \verb|\printvli| ausdruckt. +Dies hat nichts mit \textsc{Bib}\TeX\ zu tun:\pdfko{.25} + + \printvli + + \vspace{1ex}\noindent + Wie von der Erzeugung des Inhaltsverzeichnisses her bekannt, wo + "Anderungen am "Uberschriftentext erst nach zweimaligem Start von \LaTeX\ + im Inhaltsverzeichnis zu sehen sind, so gilt auch f"ur \BibArts: Es + sind zwei Bearbeitungen mit \LaTeX\ n"otig. Aber au"serdem muss nun zwischen + den beiden Bearbeitungen das Programm \verb|bibsort| gestartet + werden, um die Literaturliste zu sortieren. Hei"st eine + \LaTeX\hy Textdatei \verb|meintext.tex|, ist typischerweise + + \vspace{-.5ex} + \begin{verbatim} + bibsort -g1 -k meintext + \end{verbatim} + + \vspace{-3.25ex}\noindent + in die Kommandozeile einzugeben. Dann liest \verb|bibsort| die mit + \verb|\vli|-Li"-teraturangaben bef"ullte Datei \verb|meintext.aux| ein, + sortiert diese Vollzitate "uber die Option + \verb|-g1| nach deutschen Sortierregeln und legt das Ergebnis ab in einer + Datei \verb|meintext.vli|, die im Text mit \verb|\printvli| bei der + zweiten \LaTeX\hy "Ubersetzung ausgedruckt werden kann. Die zus"atzlich + gesetzte Option \verb|-k| \hspace{.3em}sorgt + daf"ur, dass \textit{ein} Autor (Vor- und Nachname gleich), der mit mehreren + Werken zitiert wird, ab seiner zweiten Nennung auf der Literaturliste + als $\sim$ erscheint. + + \vspace{1ex} + Viele Texteditoren k"onnen den Start automatisieren. Falls sich die + Datei \verb|bibsort.exe| im Verzeichnis \verb|C:\pfadangabe| befindet, dann + gilt beispielsweise f"ur das \TeX nicCenter: Der automatisierte Start von + \verb|bibsort| erfolgt durch Eingabe von \verb|C:\pfadangabe\bibsort.exe| + in das Men"u \fbox{Ausgabe} $\Rightarrow$ \fbox{Ausgabeprofile definieren} + $\Rightarrow$ \fbox{Vorbearbeitung} in die Zeile \underline{Anwendung} und + \\[1ex]\verb|%tm -g1 -k| + \ in die Zeile \underline{Argumente} darunter. (Eventuell versionsabh"angig.) + + \vspace{2.75ex}\noindent + Nochmal zum \verb|\ktit|\hy Befehl: Dessen Verwendung im \verb|\vli|\hy Befehl + macht \textit{zus"atzlich} den Ausdruck eines Kurzzitate\hy Verzeichnisses mittels + \verb|\printnumvkc| m"oglich. \textsc{Wehler} fehlt nat"urlich; + aber vgl.\ \textsc{Luhmann} \baref[von]{luhmann}: + + \vspace{1.5ex}\label{vkc}{\footnotesize \batwocolitemdefs\printnumvkclist} + + \newpage + \noindent + Von den Vollzitaten wurden diejenigen, deren Kurztitel mit \verb|\ktit| markiert + war, ausgedruckt als Kurzzitat (Nachname plus Kurztitel). Um \verb|\printvli| zu + nutzen, m"ussen Sie \verb|\ktit| also nicht verwenden $-$ aber dazu, + \verb|\printnumvkc| zu bef"ullen. Hinzu kamen noch weitere echte Kurzzitate; + dazu gleich unten. + + Anwender, die das [L] $-$\,hei"st: \textit{Volltitel findet sich auf der Literaturliste}\,$-$ nicht + wollen, k"onnen im Vorspann \verb|\notprinthints| setzen; das unterdr"uckt den Ausdruck + von [L] und [Q] \,(\kern-.1em\textit{Volltitel im Verzeichnis gedruckter Quellen}). + + + +\section{Vollzitate und Kurzzitate}\label{Sect1} + + Nachdem ein Buch einmal vollzitiert wurde, kann es anschlie"send an + weiteren Belegstellen kurzzitiert werden. Zur formatierten Eingabe von + Literatur dienen in \BibArts\ f"ur Vollzitate die Befehle \verb|\vli| f"ur + Literatur und \verb|\vqu| f"ur gedruckte Quellen (Quelleneditionen); f"ur + Kurzzitate dienen \verb|\kli| und \verb|\kqu|. Letztere haben jeweils ein + Argument weniger als die Vollangaben, weil das Vornamensargument im + Kurzzitat wegf"allt. Der Titel wird im Kurzzitat als Kurztitel angegeben. + Falls dieser Kurztitel im Vollzitat bereits mit \verb|\ktit| markiert + wurde, kann \BibArts\ mitkontrollierten, ob kurzzitierte Literatur weiter + oben in einem \LaTeX-Text bereits eingef"uhrt wurde. Dieser Aufgabe kommt + das Sortierprogramm \verb|bibsort| nach, indem es Warnungen auf den + Bildschirm ausgibt. Ohne vorausgehendes Vollzitat f"uhrt Kurzzitieren der + Quellenedition \verb|\kqu{Clausewitz}{Vom Kriege}| zu der + \verb|bibsort|-Warnung: + + {\scriptsize\begin{verbatim} + %%> Info: Short-qu-title file 1 line 143 is NOT yet introduced. + %% (Clausewitz) (Vom Kriege) + %% ... Change that short-title into missing full-title (\ktit)? + \end{verbatim}} + + \vspace{-2ex}\noindent + Die Kontrolle f"uhrt \BibArts\ mithilfe der Daten f"ur die \verb|.vkc|\hy Datei durch. + Die enth"alt alle Kurzzitate, also sowohl \verb|\ktit| in \underline{v\ko}\hy + Belegen als auch alle \underline{k}\hy Belege\pdfko{.25}\ + (\textit{\underline{c}ites}). + Literatur und gedruckte Quellen werden darin also parallel behandelt. Die + \verb|.vkc|\hy Datei wurde oben durch den Befehl \verb|\printnumvkc| ausgedruckt. + + \vspace{1ex}\noindent + Erfolgt irrt"umlich \textit{erst} das Kurzzitat und + \textit{weiter unten} das Vollzitat ... + +\Doppelbox +{...\bs footnote\{\bs kqu\{Clausewitz\} + \\ \hspace{2em} \{Vom Kriege\}.\} + \ Aber ... \\ + ...\bs footnote \b{\b{\{}}Siehe dazu weiter + \\ \hspace{.5em} \bs vqu \{Carl von\} + \{Clausewitz\} + \\ \hspace{2.5em} \b{\{}\bs ktit\{Vom Kriege\}. + \\ \hspace{3em} Hinterlassenes Werk, + 3.\bs,Auf\string"|l. Frankfurt/M 1991\b{\}}.\b{\b{\}}} +} +{...\footnote{\kqu{Clausewitz} {Vom Kriege}.} + Aber ... + ...\footnote{Siehe dazu weiter \vqu {Carl von}{Clausewitz} {\ktit{Vom Kriege}. + Hinterlassenes Werk, 3.\,Auf"|l.\ Frankfurt/M 1991}.} +} + + \noindent + ... dann warnt \verb|bibsort| danach auf dem + Bildschirm etwa (siehe Folgeseite): + + \vspace{-.75ex} + {\scriptsize\begin{verbatim} + %%> Info: Short-qu-title file 1 line 193 is NOT yet introduced. + %% (Clausewitz) (Vom Kriege) + %% ... Exchange it with the full-title in file 1 line 196. + \end{verbatim}} %% Zeilenangaben nur ausserhalb \Doppelbox brauchbar %% + + \vspace{-2.75ex}\noindent + Und mehrfaches identisches Vollzitieren ... \footnote{\vqu{Carl + von}{Clausewitz}{\ktit{Vom Kriege}. Hinterlassenes Werk, 3.\,Auf"|l.\ + Frankfurt/M 1991}.} ... ergibt die \verb|bibsort|-Warnung: + + \vspace{-.75ex} + {\scriptsize\begin{verbatim} + %%> Info: Identical full-titles file 1 line 196, file 1 line 213: + %% !" (Carl von) (Clausewitz) (\ktit {Vom Kriege}. Hinterlassenes W....) + %% + %%> This have been the first 2 (of 2) identical full-titles. + \end{verbatim}} + + \vspace{-2.75ex}\noindent + \verb|!"| bedeutet, dass der Eintrag \verb|"| enth"alt \textit{und} + von einem Bereich herstammt, an der die \verb|"| \textit{aktiv} waren (hier: \verb+Auf"|l.+); + \texttt{bibsort} sieht etwa in \verb|"a| ein "a. + + Falls Sie einen Autor im Text in direkt aufeinanderfolgenden Fu"snoten mit zwei Schriften + zitieren, gibt \BibArts\ ins \LaTeX-\verb|.log|-File die Warnung aus:% + \balabel{DERS} + + \vspace{-.75ex} + {\footnotesize\begin{verbatim} + BibArts Warning: ...vqu-cmd repeats (first) author's lastname + on input line 180. `{Clausewitz}'. Change to `...vqu[m,f,p]'? + \end{verbatim}} + + \vspace{-3.25ex}\noindent + Diese Warnung verweist darauf, dass der Autorenname + bei der zweiten Nennung in der direkt folgenden Fu"snote ersetzt + werden soll durch den in diesem Fall "ublichen Hinweis, dass er derselbe + ist (\textsc{ders.}). Den entsprechenden Schalter m"ussen Sie + selbst umlegen und dabei das Geschlecht des Autors einstellen. + Die Schalter lassen sich zusammen mit allen v- und k-Befehlen + verwenden. Verf"ugbare Schalter sind + \verb|f| (weiblich), \verb|m| (m"annlich) und \verb|p{}| (plural; S.\,\pageref{p}): + + \vspace{1.ex}{\small\noindent +\verb| \footnote{\vqu [m] {Carl von}{Clausewitz}{\ktit{Strategie}.|\\ +\verb| Hrsg. von \vauthor{Eberhard}{Kessel}, Hamburg 1937}[58].} => |} +{\renewcommand{\thefootnote}{{\bfseries\arabic{footnote}}}% + \footnote{\vqu [m] {Carl von}{Clausewitz}{\ktit{Strategie}. + Hrsg.\ von \vauthor{Eberhard}{Kessel}, Hamburg 1937}[58]. + \hspace{.8em} $\Leftarrow$ \ \texttt{... \{Clausewitz\} \{\bs ktit\{Strategie\}. ...\}[58].}}% +} + +\vspace{1.ex}\noindent +Dabei wurde zudem eine Seitenangabe (...\texttt{\underline{\}[}58]} +\textit{ohne} \underline{Leerzeichen}) gemacht. Falls ein folgendes Kurzzitat auf +dieselbe Seite der Quellenedition verweist, ergibt sich ... +{\renewcommand{\thefootnote}{{\bfseries\itshape\arabic{footnote}}}% + \footnote{\kqu{Clausewitz}{Strategie}[58].\label{ErsterFall} + \hspace{5.95em} $\Leftarrow$ \ \texttt{\bs kqu\{Clausewitz\}\{Strategie\}[58].}} +} ... w"ahrend eine andere Seite (\verb|[60]|) gedruckt wird +als~...~\footnote{\kqu{Clausewitz}{Strategie}[60]. +\hspace{3.05em} $\Leftarrow$ \ \texttt{\bs kqu\{Clausewitz\}\{Strategie\}[60].}} + +\BibArts\ druckte in Fu"snote\,\ref{ErsterFall} nur den Abk"urzungspunkt von \textsc{ebd.}, +nicht aber den direkt folgenden Punkt am Satzende. Dies funktioniert nur, +wenn zwischen \verb|[|\textit{Seitenzahl}\verb|]| und \verb|.| +\textit{keine Klammern oder Leerzeichen} stehen ... \footnote{\textit{\kqu{Clausewitz}{Strategie}[60]}. +\hspace{5.68em} $\Leftarrow$ \ \texttt{\bs textit\b{\{}\bs kqu\{Clausewitz\}\{Strategie\}[60]\b{\}}. +\texttt{\%Fehler}}}! + +Das automatischen Ebenda-Setzen f"uhrt \BibArts\ in einer Fu"snote nicht durch, +wenn in der vorausgehenden Fu"snote zwei verschiedene Werke angegeben sind +(weil dies nicht eindeutig w"are): ... +\footnote{\kqu[m]{Clausewitz}{Strategie}[60] und \kqu[m]{Clausewitz}{Vom Kriege}. +\hspace{3em} \texttt{\%\% Ein Autor mit zwei Werken. \%\%}} +$\leftarrow$ +\footnote{\kqu[m]{Clausewitz}{Strategie}[12]. +\hspace{3.85em} $\Leftarrow$ \ \texttt{\bs kqu[m]\{Clausewitz\}\{Strategie\}[12].}} +... Mit \verb|\notibidemize| l"asst sich das automatische Ebenda-Setzen ausschalten +(nicht demonstriert). + +In jedem Fall ist sinnvoll, im letzten Argument jedes v\fhy Befehls +einen Teil des Volltitels mittels \verb|\ktit| als Kurztitel zu +markieren. \BibArts\ erlaubt aber dennoch das Weglassen von \verb|\ktit|, +und zwar, (1)~um +Anf"anger nicht abzuschrecken, die bei ihren ersten Texten mit \BibArts\ +noch nicht die k-Befehle nutzen wollen, sondern sich "uber die v-Befehle nur +ein Literaturverzeichnis (und evtl.\ ein Verzeichnis von Quelleneditionen) +automatisiert erzeugen lassen m"ochten; (2)~um dem Tippen von Texten nicht im +Wege zu stehen, in denen alle Fu"snotenbelege mittels Vollzitaten +gemacht werden sollen. + +Das Weglassen von \verb|\ktit| ist aber keine gute Methode, im Ausdruck von +Vollzitaten die 'im folgenden ...'\hy Ank"undigung (wie nachfolgend +kurzzitiert werden wird) auszuschalten. Dazu dient \verb|\notannouncektit|. +Dieser Befehl\pdfko{1.5}\ +kann im Dokumentenvorspann global (f"ur den gesamten Text) +erfolgen, oder lokal (g"ultig f"ur v-Befehle, mit denen zusammen es in +einer Klammer steht).\footnote{Die +Vorank"undigung der sp"ateren Kurzzitierweise ist sicherlich dann +"uberfl"ussig, wenn ein bestimmtes Werk nur einmal pro Text angef"uhrt wird; +allerdings gibt \BibArts\ keine\pdfko{1.25}\ Warnung aus, wenn Sie dasselbe Werk sp"ater +doch nochmal in einem k\fhy Befehl kurzzitieren.}\pdfko{1} + +\vspace{1ex}\noindent +Das Beispiel zeigt, wie \verb|\notannouncektit| lokal zu setzen w"are: + +\Doppelbox +{... \bs vli\{Niklas\}\{Luhmann\} \{\bs ktit\{Soziale Systeme\}. + \\ Grundri"s einer allgemeinen Theorie, 1984: Frankfurt/M.\} + \\[1ex] + ... + \b{\b{\{}}\bs notannouncektit + \bs vli\{Niklas\}\{Luhmann\} \b{\{}\bs ktit\{Soziale Systeme\}. + \\ Grundri"s einer allgemeinen Theorie, 1984: Frankfurt/M.\b{\}}\b{\b{\}}} + \\[.25ex] \%\% Zu \}. siehe unten S.\pageref{v-Ausnahme}! \%\% +} +{Annonciert: \vli{Niklas}{Luhmann} {\ktit{Soziale Systeme}. + Grundri"s einer allgemeinen Theorie, 1984: Frankfurt/M.} + \\[2.9ex] Unannonciert: + {\notannouncektit + \vli{Niklas}{Luhmann} {\ktit{Soziale Systeme}. + Grundri"s einer allgemeinen Theorie, 1984: Frankfurt/M.}} +} + +\vspace{.75ex}\noindent +Beide \verb|\vli|-Befehle ergeben $-$\,weil beides mal \verb|\ktit| ja gesetzt +ist\,$-$ jeweils auch Eintr"age in die \verb|.vkc|-Datei (die {\small\balistnumemph\thepage} +in der Liste S.\,\pageref{vkc} hinter {\small\printonlykli{Luhmann}{Soziale Systeme}}). +v\fhy Befehle mit \verb|\ktit| verhalten sich also so, als st"unde ein unsichtbarer +k\fhy Befehl direkt hinter ihnen, der einen Eintrag ins +Kurzzitateverzeichnis macht. Dort in die \verb|.vkc|-Datei hinein +kommen auch Kopien aller weiteren \verb|\kli|- und \verb|\kqu|\hy Befehle. +F"ur Historiker dient das Kurzzitateverzeichnis zus"atzlich zur Kontrolle, +ob \textit{ein} bestimmtes Werk stets als Literatur deklariert wurde (und in +sp"ateren Kurzzitaten niemals irrt"umlich als Quelle). \verb|\printvkc| +listet die verwendeten Kurztitel auf, \verb|\printnumvkc| druckt zudem +indexartig alle Seiten und ggf.\ dazu Fu"snotennummern der Zug"ange aus. + +Das automatische \textsc{ebd.}-Setzen f"uhrt \BibArts\ "ubrigens nur von +Fu"snote zu Fu"snote durch, nie im Haupttext. In \textsc{ebd.} umgewandelt +werden k\fhy Befehle. + +Auch im speziellen Fall des Texttyps \textbf{Aufsatz} $-$\,der hat im Unterschied +zu einem Buch keine Literaturliste\,$-$ ist die Verwendung von \verb|\ktit| +sinnvoll. In solchen Texten ist es n"amlich w"unschenswert, beim Kurzzitat +Querverweise auf das Vollzitat zu setzen, um alle bibliographischen Angaben zu +finden. \BibArts\ bietet deshalb optional an, von jedem v-Befehl +(Vollzitat) eine Marke aus Autornachname und Kurztitel erzeugen zu lassen, +damit zugeh"orige k\fhy Befehle automatisiert einen Querverweis drucken k"onnen. +Das Einschalten dieses Aufsatz\hy Modus erfolgt mit dem \BibArts-Befehl +\verb|\conferize|. Der sollte global gelten, also im Vorspann von +\LaTeX-Textdateien gesetzt werden.\footnote{Dies hat nichts +damit zu tun, ob f"ur den \LaTeX-Text der Dokumentenstil \texttt{\{article\}}\pdfko{.5}\ +oder \texttt{\{book\}} gew"ahlt wird. Vielmehr sind die Auswahl des +Dokumentenstils und das Setzen von \texttt{\bs conferize} zwei voneinander +unabh"angige Entscheidungen. -- Studentische Hausarbeiten werden zwar oft +als Aufs"atze bezeichnet, sollen aber meist eine Literaturliste haben.} +Ein Blick auf die Fu"snoten \ref{vz} und \ref{fz} +im Kurzzitateverzeichnis (S.\,\pageref{vkc}) belegt, dass es sich auch im +\verb|\conferize|\hy Modus zu Kontrollzwecken ausdrucken l"asst. + +\Doppelbox +{\bs conferize\ ...\bs footnote\b{\{} + \\ \ \ Vollzitat: \bs vli\{Niklas\} + \\ \ \ \{Luhmann\} \{\bs ktit\{Soziale + \\ \ \ \ \ \ Systeme\}. Grundri"s einer + \\ \ \ \ \ allgemeinen Theorie, + \\ \ \ \ \ 1984: Frankfurt/M.\}.\b{\}} + \\[.5ex] ...\bs footnote\{\} \ \% kein Ebd. + \\[.5ex] ...\bs footnote\H{\{}Kurzzitat: + \\ \ \ \bs kli\{Luhmann\} \ \ \{Soziale + \\ \ \ \ \ \ Systeme\}[23\bs f].\H{\}} +} +{\conferize ...\footnote{\label{vz}% + Vollzitat: \vli{Niklas}{Luhmann} {\ktit{Soziale Systeme}. + Grundri"s einer allgemeinen Theorie, 1984: Frankfurt/M.}.} + ...\footnote{} + ...\footnote{\label{fz}Kurzzitat: \kli{Luhmann} {Soziale Systeme}[23\f].} +} + + +\noindent +Im Programmcode von \verb|bibarts.sty| wurde gro"ser Aufwand damit +betrieben, dass dies immer funktioniert, also auch dann, wenn sich +\LaTeX\hy Befehle in den Argumenten der +v- und k\fhy Befehle befinden. Dazu durchsucht \BibArts\ sie und kopiert +nur bestimmte Teile von \textit{Nachname} und \textit{Kurztitel} in das +automatisch erzeugte \textit{Schl"usselwort} f"ur die Marke (vorz"uglich +die Buchstaben).\footnote{\BibArts\ versucht weiter, gleiche Buchstaben +mit verschiedenen Akzenten zu unterscheiden; das funktioniert aber nicht +mit allen \LaTeX\hy Applikationen. \BibArts\ bildet das Schl"usselwort +der v- und k\fhy Marke jedenfalls gleich. Hier mit \texttt{ngerman.sty} und +der Notation \texttt{\string"u}\pdfko{1.5}\ f"ur "u w"urde aus \texttt{\bs vli +\{Peter\} \{M\string"uller\} \{Die \bs ktit\{Reise\}, Verlagsstadt 2002\}} +im \texttt{.aux}\hy File die Marke +\texttt{\bs newlabel\{baf.M*uller..Reise\}\{\{{\normalfont +\textit{Fu"snote}}\}\{{\normalfont \textit{Seite}}\}\}} erzeugt.} + +Sorgfalt erfordert mehr das automatische \textsc{ebd.}\hy Setzen, +das im Buch- und im Aufsatz\hy Modus arbeitet. \BibArts\ erkennt zwei +Argumente nur als gleich an, wenn sie zeichengleich sind. Falls Sie +einen Namensteil mit \verb|\underline| unterstreichen und davor (wie +bei 'zerbrechlichen' Befehlen ja immer n"otig) im v\fhy Befehl +\verb|\protect| setzen, das beim zugeh"origen k\fhy Befehl aber mal +vergessen, gibt es zwei Eintr"age in der \verb|.vkc|-Liste und +kein \textsc{ebd.}\hy Setzen. + +Die ohnehin f"ur geisteswissenschaftliche Texte g"ultige Spielregel, dass +jedes Kurzzitat aus Autorennachname plus Kurztitel ein bestimmtes Werk +eindeutig bezeichnen muss, schlie"st aus, dass eine Marke absichtlich +zweimal vorkommt (Kurztitel d"urfen sogar mehrfach gleich +sein, wenn sich nur die Nachnamen unterscheiden). Trotzdem steht +das Befehlspaar \verb|\balabel| und\pdfko{.75}\ +\verb|\baref| bereit, um 'von Hand' Marken setzen zu k"onnen, +wie k\fhy Befehle es\pdfko{.25}\ +im \verb|\conferize|\hy Stil tun (sie merken selbst, ob sie in einer +Fu"snote stehen). In den 'von Hand' zu tippenden Schl"usselworten in den +Argumenten von \verb|\balabel| und \verb|\baref| sind Sonderzeichen +allerdings verboten. + +\Doppelbox +{M"uller \bs balabel\{Mueller\} im + Text.\bs footnote\b{\{}Maier in + \\ \ Fu"snote.\bs balabel\{Maier\}\b{\}} + \\ ... M"uller ist nochmal erw"ahnt \bs baref\{Mueller\} + und Maier ebenfalls \bs baref[vgl.]\{Maier\}. +} +{M"uller \balabel{Mueller} im + Text.\footnote{Maier in + Fu"snote.\balabel{Maier}} + ... M"uller ist nochmal erw"ahnt \baref{Mueller} + und Maier ebenfalls \baref[vgl.]{Maier}. +} + +\noindent +Das \texttt{[}\textit{OptionalArg}\texttt{]} "uberschreibt 'siehe' +(\verb|\grefverbname|; vgl.\ unten S.\,\pageref{grefverbname}). + + +\vspace{2ex}\noindent +Zur"uck zu den v\fhy Befehlen. Bei der Auswahl eines Kurztitels aus +dem Volltitel mit \verb|\ktit| wird es gelegentlich so sein, dass ein im +Volltitel klein geschriebenes Wort ausgew"ahlt werden soll. \BibArts\ +erkennt die Verbindung mit sp"ater in k\fhy Befehlen gro"sgeschriebenen +Kurztiteln mittels \verb|\onlyvoll| und \verb|\onlykurz|: + +\label{Ferguson}% +\Doppelbox +{...\bs footnote\{\bs vli\{Niall\} + \\ \ \{Ferguson\} \b{\b{\{}}Der + \\ \ \bs ktit\b{\{}\bs onlykurz\{F\}\% + \\ \ \ \bs onlyvoll\{f\}alsche\bs onlykurz\{r\} + \\ \ \ Krieg\b{\}}, M"unchen 2001\b{\b{\}}}[22].\} + ...\bs footnote\{\bs kli\{Ferguson\} + \\ \ \{Falscher Krieg\}[23].\} + ...\bs footnote\{\bs clearbamem + \\ \ \bs kli\{Ferguson\}\{Falscher Krieg\}.\} +} +{...\footnote{\vli{Niall} + {Ferguson} {Der + \ktit{\onlykurz{F}% + \onlyvoll{f}alsche\onlykurz{r} Krieg}, + M"unchen 2001}[22].} + ...\footnote{\kli{Ferguson} + {Falscher Krieg}[23].} + ...\footnote{\clearbamem \kli{Ferguson}{Falscher Krieg}.\label{clearbamem}} +} + +\vspace{.5ex}\noindent +Die Fu"snote\,\ref{clearbamem} soll sich auf das ganze +Werk beziehen; nur \textsc{ebd.} wieder mittels \verb|\kli{Ferguson}{Falscher Krieg}[23]| +zu erzeugen, w"are falsch. Statt dessen l"oschte \verb|\clearbamem| die +Zwischenspeicher. Sonst h"atte der \verb|\kli|-Befehl ohne \verb|[|\textit{Seite}\verb|]| +bei der "Ubersetzung mit \LaTeX\ diese Fehlermeldung ausgel"ost: + +\vspace{0.5ex}\label{before} +{\scriptsize\begin{verbatim} + ! Same title, before with :{p}{23}:, has now no page/folio number. + . . . . . . . . . . . . + \errmessage@ba ... + \space . . . . . . . . . . . } + } + l.461 \footnote{\kli{Ferguson}{Falscher Krieg}.} + } +\end{verbatim}} + +Neben Monografien gibt es noch B"ucher, die aus mehreren Aufs"atzen bestehen. +Es ist genug, auch \textbf{Herausgeberwerke} nur einmal vollzuzitieren. Bei der +Ersteinf"uhrung des \textit{zweiten} Aufsatzes darf das Buch (im letzten +Argument des '"au"seren' v\fhy Befehls) kurzzitiert sein, denn es ist ja schon +bekannt. Es steht ein 'inneres' \textsc{ebd.}\hy Setzen an, falls Sie beide +Aufs"atze in aufeinander folgenden Fu"snoten einf"uhren. \BibArts\ +hat daf"ur eine zweite Speicherebene.\footnote{Falls Sie das Herausgeberwerk +sp"ater \textit{eigenst"andig} kurzzitieren wollen (wie unten S.\,\pageref{Ehlert}: +also nicht im letzten Argument eines v- oder k\fhy Befehls) +\textit{und} dort \textsc{[Hrsg.]} nicht mehr setzen wollen, dann m"ussen +Sie hier \textsc{[Hrsg.]} mit \texttt{\bs onlyvoll} im inneren v\fhy Befehl und mit +\texttt{\bs vollout} im inneren k\fhy Befehl maskieren +(Leerzeichen so: \texttt{\{Gro"s\}\bs onlyvoll\{ [Hrsg.]\}}).} + +\vspace{.75ex} +\Doppelbox +{...\bs footnote\{Innen vollzitiert: + \\ \bs vqu \{\} \{\} + \\ \b{\b{\{}}\bs ktit\{Aufmarschanweisungen + \\ \ \ 1912\}, abgedruckt in: + \\ \ \bs xvqu\{Hans\} \{Ehlert\} + \\{} \ \ *\b{\{}\bs midvauthor\{Michael\} + \\ \ \ \ \ \ \{Epkenhans\} + \\ \ \ \ \ \bs vauthor\{Gerhard P.\} + \\ \ \ \ \ \ \{Gro"s\} [Hrsg.]\b{\}} + \\ \ \ \{Der \bs ktit\{Schlieffenplan\}, + \\ \ \ \ Paderborn + \\ \ \ \ 2007\}[462-466]\b{\b{\}}}*[463].\} + \\ \ + \\ ...\bs footnote\{Innen kurz: + \\ \bs vqu \{\} \{\} + \\ \H{\{}\bs ktit\{Aufmarsch 1913/14\}, + \\ \ abgedruckt in: + \\ \ \bs xkqu\{Ehlert\} + \\{}\ \ *\{\bs midkauthor\{Epkenhans\} + \\ \ \ \ \ \bs kauthor\{Gro"s\} [Hrsg.]\} + \\ \ \ \{Schlieffenplan\% + \\ \ \ \}[467-477]\H{\}}*[469].\} +} +{\vspace{1ex} + \fbox{\parbox{.95\textwidth}{Siehe \texttt{.vkc}-Eintr"age oben S.\,\pageref{vkc}: + \\[1ex] \scshape[Anonym]\\{}[Anonym]\\{}[...]\\Ehlert\baslash Epkenhans\baslash Gro"s}}\\ + \\[1ex] ...\footnote{Innen vollzitiert: \vqu {} {} + {\ktit{Aufmarschanweisungen 1912}, + abgedruckt in: \xvqu{Hans} {Ehlert} + *{\midvauthor{Michael} {Epkenhans} + \vauthor{Gerhard P.} {Gro"s} [Hrsg.]} + {Der \ktit{Schlieffenplan}, + Paderborn 2007}[462-466]}*[463].} + + ...\footnote{Innen kurz: \vqu {} {} + {\ktit{\onlyhere{\onlykurz{\,}}Aufmarsch 1913/14}, + abgedruckt in: \xkqu{Ehlert} + *{\midkauthor{Epkenhans} \kauthor{Gro"s} [Hrsg.]} + {Schlieffenplan% + }[467-477]}*[469].} +} + + +\vspace{.75ex}\noindent +\verb|*[463]| und \verb|*[469]| ergeben 'dort: S.' zur Bezeichnung der +zitierten Einzelseite innerhalb des zuvor genannten Seitenbereichs des +Teiltextes. Vor \verb|*[| darf\pdfko{1}\ kein Leerzeichen stehen; vor +\verb|[462-466]| und \verb|[467-477]| auch nicht. Setzen\pdfko{.5}\ +von runden statt eckigen Klammern w"urde Bl.\ statt S.\ ausdrucken. + +Das Beispiel f"uhrte zudem das 'Sternargument' ein, das in allen v- +und k\hy Befehlen nach dem Nachnamensargument \verb|*{|\textit{optional}\verb|}| +stehen darf, um Koautoren aufzunehmen. In v\fhy Befehlen sind vauthor\hy +Formatierer und in k\fhy Befehlen kauthor\fhy Formatierer zu verwenden. +\BibArts\ setzt \textsc{ebd.} nur dann, wenn\pdfko{.5}\ +\textit{auch} gleiche Nachnamen in den vauthor\hy\ und kauthor\hy +Formatierern stehen. + +Dabei benennen \verb|\vauthor| und \verb|\kauthor| stets den letzten von +jeweils mehreren Autoren. Falls $-$\,wie oben\,$-$ mehr als zwei +Autoren genannt werden, sind alle davor im Sternargument mit +\verb|\midvauthor| bzw.\ \verb|\midkauthor| zu kennzeichnen. Die setzen +Schr"agstriche nach dem Nachnamen. Der Schr"agstrich nach dem Erstautor +wird von x\fhy Befehlen erzeugt. Im letzten Beispiel waren das \verb|\xvqu| +und \verb|\xkqu|, bei Literatur sind es \verb|\xvli| und +\verb|\xkli|. + +Auch 'normale' v- und k\fhy Befehlen d"urfen Sternargumente haben. +Nach \verb|\vli| und \verb|\vqu| k"onnen sie Attribute wie +\verb|*{\onlyvoll{[Hrsg.]}}| aufnehmen. Das Sternargument +des v\fhy Befehls ist hier \textit{komplett} mit \verb|\onlyvoll| maskiert, sodass sp"atere +k\fhy Befehle kein Sternargument brauchen (\textsc{ebd.}\hy Setzung). +Statt \verb|[Hrsg.]| k"onnte auch \verb|\editor| verwendet werden +(vgl.\ unten S.\,\pageref{editor}): + +\vspace{-.25ex} +\Doppelbox +{ +\vspace{-.3ex} +...\bs footnote\{\bs vli\{Peter\}\{Maier\} +\\[.4ex] \ \ \ \ \ \ *\b{\b{\{}}\bs onlyvoll\{[Hrsg.]\}\b{\b{\}}} +\\[.3ex] \ \ \ \ \ \ \b{\{}Das \bs ktit\{Buch\}\b{\}}.\} +\\[.7ex] Go!\bs footnote\{\bs kli\{Maier\}\{Buch\}.\} +} +{Nicht in Listen "ubernommen.\footnote{\notktitaddtok +\printonlyvli{Peter}{Maier} *{\onlyvoll{[Hrsg.]}} {Das \ktit{Buch}}.} +Go!\footnote{\printonlykli{Maier}{Buch}.} +} + + +\vfill\noindent +Zur"uck zum 'inneren' \textsc{ebd.}\hy Setzen. Beachten Sie die Fu"snote +in der Mitte: + +\vspace{.5ex} +\Doppelbox +{\scriptsize + ...\bs footnote\{Innen vollzitiert: + \\ \bs vqu \{\} \{\} + \\ \b{\b{\{}}\bs ktit\{Aufmarschanweisungen + \\ \ \ 1912\}, abgedruckt in: + \\ \ \bs xvqu\{Hans\} \{Ehlert\} + \\{} \ \ *\b{\{}\bs midvauthor\{Michael\} + \\ \ \ \ \ \ \{Epkenhans\} + \\ \ \ \ \ \bs vauthor\{Gerhard P.\} + \\ \ \ \ \ \ \{Gro"s\} [Hrsg.]\b{\}} + \\ \ \ \{Der \bs ktit\{Schlieffenplan\}, + \\ \ \ \ Paderborn + \\ \ \ \ 2007\}[462-466]\b{\b{\}}}*[463].\} + \\[1ex] ...\bs footnote\{\bs kqu\{\} + \\ \ \ \ \ \ \{Aufmarschanweisungen + \\ \ \ \ \ \ \ 1912\}[464].\} + \\[1ex] ...\bs footnote\{Innen kurz: + \\ \bs vqu \{\} \{\} + \\ \H{\{}\bs ktit\{Aufmarsch 1913/14\}, + \\ \ abgedruckt in: + \\ \ \bs xkqu\{Ehlert\} + \\{}\ \ *\{\bs midkauthor\{Epkenhans\} + \\ \ \ \ \ \bs kauthor\{Gro"s\} [Hrsg.]\} + \\ \ \ \{Schlieffenplan\% + \\ \ \ \}[467-477]\H{\}}*[469].\} +} +{\vspace{9ex}\showbamem + ...\footnote{Innen vollzitiert: \vqu {} {} + {\ktit{Aufmarschanweisungen 1912}, + abgedruckt in: \xvqu{Hans} {Ehlert} + *{\midvauthor{Michael} {Epkenhans} + \vauthor{Gerhard P.} {Gro"s} [Hrsg.]} + {Der \ktit{Schlieffenplan}, + Paderborn 2007}[462-466]}*[463].\label{InnVoll}} + + ...\footnote{\kqu{} {Aufmarschanweisungen 1912}[464].\label{zweite}} + %% + %\footnote{\kqu{}{Aufmarschanweisungen 1912!!!!!}[464].} %% Aussen anders %% + %% + %\newbox\mybox + %\setbox\mybox=\hbox{\footnotetext{\printonlyvqu{}{} {\xprintonlykqu{Ehlert} + % *{\midkauthor{Epkenhans} \kauthor{Gro"s} [Hrsg.]}{Schlieffenplan}}}} + + ...\footnote{Innen kurz: \vqu {} {} + {\ktit{\onlyhere{\onlykurz{\,}}Aufmarsch 1913/14}, + abgedruckt in: \xkqu{Ehlert} + *{\midkauthor{Epkenhans} \kauthor{Gro"s} [Hrsg.]} + {Schlieffenplan% + }[467-477]}*[469].\label{dritte}} +} + + +\vspace{.5ex}\noindent +Ein k\fhy Befehl, der den Eintrag der "au"seren Speicherebene wiederholt, +l"asst die innere Ebene also unber"uhrt: In Fu"snote\,\ref{dritte} wurde +ein inneres \textsc{ebd.} gesetzt. + +Die Zwischenspeicher lassen sich mit \verb|\showbamem| auch ansehen. +Dies kann bei Problemen mit dem \textsc{ebd.}\hy Setzen +helfen.\footnote{\BibArts\ gibt der \LaTeX-\texttt{minipage}\hy Umgebung +eigene Speicher; die \textsc{ebd.}\hy Setzung in \texttt{minipage}\hy +Fu"snoten erfolgt deshalb unabh"angig von Fu"snoten im "ubrigen Text.} +\BibArts\ druckt auf den Bildschirm aus (\verb|o-ref| bzw.\ \verb|i-ref| nennen +dabei den f"ur \textsc{ebd.} gesuchten Inhalt): + +{\scriptsize\vspace{3ex}\noindent +\verb| FNT |\texttt{\ref{zweite}} +\vspace{-3ex} +\begin{verbatim} + -- outer: {qu}{}{}{Aufmarschanweisungen 1912} -- + ---------- inner: {qu}{Ehlert}{\midkauthor {Epkenhans} + \kauthor {Gro"s} [Hrsg.]}{Schlieffenplan} -- + -- o-ref: {qu}{}{}{Aufmarschanweisungen 1912} -- +\end{verbatim}} + + +\vspace{-.5ex}\noindent +Nun h"atte in der mittleren Fu"snote alternativ auch ein ganz anderer Teil des gleichen +Herausgeberbands kurzzitiert werden k"onnen. Rein logisch d"urfte in der letzten +Fu"snote dann weiterhin \textsc{ebd.} stehen. Steht aber etwas anderes als +\verb|\kqu{}{Aufmarschanweisungen 1912}| in der +zweiten Fu"snote, unterbleibt ohne weitere Ma"snahmen das innere \textsc{ebd.}\hy Setzen in +der dritten.\footnote{Um doch das innere \textsc{ebd.} zu kriegen: +\texttt{\bs newbox\bs mybox} im Vorspann und vor Fu"snote~\ref{dritte}: +\\[.5ex] \hspace*{.75em} \texttt{\bs setbox\bs mybox=\bs hbox\{\bs footnotetext\{\bs printonlyvqu\{\}\{\} +\\ \hspace*{1em} \{\bs xprintonlykqu\{Ehlert\} +\\ \hspace*{1.5em} *\{\bs midkauthor\{Epkenhans\} \bs kauthor\{Gro"s\} [Hrsg.]\} +\\ \hspace*{1.5em} \{Schlieffenplan\}\}\}\}}} + +\vspace{1.5ex}\noindent +Nun wird das Verzeichnis gedruckter Quellen mit \verb|\printnumvqu| gedruckt: + + +\balabel{printnumvqu}\printnumvqu + +\noindent +Der Herausgeberband +\textsc{Ehlert}, Hans\baslash""Michael \textsc{Epkenhans}\baslash""Gerhard P.\pdfko{.25}\ +\textsc{Gro"s} +bekam auf der Liste einen \textit{eigenen} Volleintrag, den \BibArts\ automatisch\pdfko{1}\ +aus dem 'inneren' Vollzitat in Fu"snote~\ref{InnVoll} erzeugte +(S.\,\pageref{InnVoll}). In den Listenpunkten "`Aufmarsch"' und +"`Aufmarschanweisungen"' druckte \BibArts\ die 'inneren'\pdfko{1}\ +Angaben dagegen als Kurzzitat. Damit \BibArts\ dort v\hy\ in k\fhy Angaben +umwandeln kann, m"ussen Kurztitel in 'inneren' v\fhy Befehlen stets mit +\verb|\ktit| markiert\pdfko{1.25}\ +sein (nur bei '"au"seren' v\fhy Befehlen macht \BibArts\ keine Fehlermeldung). + +Beim Ausdruck von v\fhy Listen ergeben Zug"ange, die auf v\fhy Befehle mit leeren +Namensargumenten (\verb|\vqu{}{}{...}|) zur"uckgehen, stets \printonlyvqu{}{}{...}\,.\pdfko{.75}\ +Und trotz \verb|bibsort -k| wird der zweite anonyme Autor nicht als $\sim$ gedruckt.\pdfko{.5} + + +\vspace{2ex}\noindent +Gelegentlich sollen Teile der Literaturangaben nur in der Liste erscheinen, jedoch +nicht in der Fu"snote. Die Reihenangaben hier sind nur in obiger Liste: + +\vspace{.75ex} +\Doppelbox +{...\bs footnote\{\bs vqu \{Karl\}\{Marx\} + \\ \b{\b{\{}}Das \bs ktit\{Kapital\% + \\ \ \bs onlyhere\{\string~I\}\}\% + \\ \ \bs onlyout \{. Kritik der + \\ \ \ politischen "Okonomie, + \\ \ \ erster Band; das ist + \\ \ \ Bd.\bs,23 (1962) von:\}% + \\ \ \bs onlyhere\{, in:\} + \\ \ \bs xvqu [m]\{Karl\}\{Marx\} + \\ \ \ *\{\bs vauthor\{Friedrich\}\{Engels\}\} + \\ \ \ \b{\{}\bs ktit\{Werke\}, + \\ \ \ \ \bs onlyout \{hrsg. vom Institut + \\ \ \ \ \ f"ur Marxismus-Leninismus + \\ \ \ \ \ beim ZK der SED, 40\string~Bde. + \\ \ \ \ \ Berlin 1958--1971\}\% + \\ \ \ \ \bs onlyhere\{Berlin 1962\}\b{\}}\b{\b{\}}}[49].\} + \\ \ + \\ ...\bs footnote\{\bs kqu\{Marx\} + \\ \ \ \{Kapital\bs onlyhere\{\string~I\}\}[49].\} +} +{...\footnote{\vqu {Karl}{Marx} + {\onlyhere{~}Das \ktit{Kapital% + \onlyhere{~I}}% + \onlyout {. + Kritik der politischen "Okonomie, erster Band; + das ist Bd.\,23 (1962) von:}% + \onlyhere{, in:} + \xvqu [m]{Karl}{Marx} + *{\vauthor{Friedrich}{Engels}} + {\ktit{Werke}, \onlyout {hrsg.\ vom Institut f"ur + Marxismus-Leninismus beim ZK der SED, 40~Bde.\ + Berlin 1958--1971}% + \onlyhere{Berlin 1962}}}[49].\balabel{ders}} + + ...\footnote{\kqu{Marx} {Kapital\onlyhere{~I}}[49].\label{I}} +} + +\vspace{.75ex}\noindent +Das Argument von \verb|\onlyhere| wird nur in +Haupttext oder Fu"snote, das Argument von \verb|\onlyout| +nur in den Listen ausgedruckt. Im Beispiel steht von der +"au"seren Angabe die Nummer~("`I"') in der Fu"snote und statt +dessen eine genauere Angabe zum Band auf der Liste. Von +der inneren Angabe wurde die Institution der Herausgeber +nur auf der Liste (ganz unten) ausgedruckt.\kern-1pt\footnote{Falls +Fu"snote~\ref{I} \texttt{\bs kqu\{Marx\}\{Kapital\string~I\}} +enthielte, w"urde dort auch \textsc{ebd.} gesetzt; Ziel war +aber, im Kurzzitateverzeichnis S.\,\pageref{vkc} nur +\textit{einen} Eintrag \textsc{Marx}: Kapital [Q] f"ur alle +Teilb"ande des "`Kapital"' zu bekommen.}\pdfko{.5} + +Ein Vergleich mit der Liste auf der Vorseite zeigt, dass das +\verb|[m]| nach dem\pdfko{1}\ +inneren \verb|\xvqu|\hy Befehl +\textsc{ders.\baslash Engels} erzeugte \baref[Eintrag von]{ders}. + +Neben der Markierung von Text in \BibArts\hy Befehlen mit +\verb|\onlyhere| und\pdfko{1}\ +\verb|\onlyout| gibt es eine zweite M"oglichkeit, +unterschiedliche Eintr"age in Text und Liste zu erzeugen: \BibArts\hy +Hauptbefehle (S.\,\pageref{Hauptbefehle}) lassen sich aufsplitten in +eine printonly- und eine addto\hy Komponente, also in die +Aufgabenteile 'Schreibe an Ort und Stelle' und 'Schreibe in die Liste'. +\label{printonly} \verb|\vqu| beispielsweise l"asst\pdfko{1}\ +sich durch \verb|\printonlyvqu| plus \verb|\addtovqu| ersetzen. Die +Syntax ist identisch. + +\Doppelbox +{...\bs footnote\{ + \\ \ \bs addtovqu\{Carl von\}\{Clausewitz\} + \\ \ \ \b{\b{\{}}\bs ktit\{Strategie\}. Hrsg. von + \\ \ \ \ \bs vauthor\{Eberhard\}\{Kessel\}, + \\ \ \ \ Hamburg 1937\b{\b{\}}}\% + \\[.2ex] \ \bs printonlyvqu\{Carl von\} + \\ \ \ \ \ \{Clausewitz\} + \\ \ \ \b{\{}\bs ktit\{Strategie\}, + \\ \ \ \ Hamburg 1937\b{\}}[58].\} +} +{Der Herausgeber Eberhard Kessel erscheint + nur auf der Liste der gedruckten Quellen, + aber nicht in der Fu"snote.\footnote{ + \addtovqu{Carl von}{Clausewitz} + {\ktit{Strategie}. Hrsg.\ von + \vauthor{Eberhard}{Kessel}, + Hamburg 1937}% + \printonlyvqu{Carl von}{Clausewitz} + {\ktit{Strategie}, + Hamburg 1937}[58].} +} + +\noindent +\verb|\printonlyvqu| erzeugt zusammen mit dem +in seinem letzten Argument stehenden \verb|\ktit| +auch den Eintrag in der \hspace{-.1em}\verb|.vkc|\hy Liste (S.\,\pageref{vkc}; +dies l"asst sich mit \verb|\notktitaddtok| unterbinden). +\verb|\printonlyvqu| und \verb|\ktit| f"ullen weiter +den Zwischenspeicher und \textit{ihre} Argumente sind +relevant f"ur das \textsc{ebd.}\hy Setzen.\footnote +{Eine (irrt"umlich) nach der addto\hy Komponente +getippte Seitenangabe (\texttt{[58]}) w"are kein +Fehler, denn die w"urde \BibArts\ einfach nicht ausdrucken.} + +\verb|\addtovqu| schreibt dagegen nur in die Liste der +gedruckten Quellen. Das Tippen von \verb|\ktit| ist dort +nicht unbedingt n"otig. (Im Text \textit{hier} dient es\pdfko{1}\ +besonders dazu, nur \textit{einen} Listeneintrag +"`Strategie"' zu bekommen.) + +Die Trennung von \BibArts\hy Befehlen in printonly- und +addto\hy Komponente bedeutet im Falle von Kurzititeln, +die im Kurzzitat gro"s und im Vollzitat klein geschrieben +werden sollen, nicht, auf \verb|\onlyvoll| und \verb|\onlykurz| +verzichten zu k"onnen $-$ vgl.\ Ferguson oben S.\,\pageref{vkc} +(\hspace{-.1em}\verb|.vkc|\hy Liste) und S.\,\pageref{Ferguson} (\textsc{ebd.}). + +Die Trennung in printonly- und addto\hy Komponente nimmt +\verb|bibsort| die M"oglichkeit, mitzukontrollieren; Sie sind dann selbst +daf"ur verantwortlich, dass das, was in den Listen steht, sich im Text +auch wirklich befindet. + +Die Argumente der addto\hy Befehle werden im Text nicht ausgedruckt und +folglich auch nicht abgearbeitet. 'Innere' Komponenten "au"serer +addto\hy Befehle m"ussen deshalb danach nochmal separat gesetzt werden. +Denn \BibArts\pdfko{1}\ +macht aus inneren Vollzitaten von addto\hy Befehlen keine eigenst"andigen +Listenpunkte, druckt aber auf den v\hy Listen innere Vollzitate weiterhin +als Kurzzitat. Das Marx\hy Zitat von eben l"asst sich somit auch so erzeugen +(vgl.\ \textsf{\pageref{inad}$^{\ref{inad}}$}\pdfko{1}\ +auf den num\hy Listen) wie hier umgesetzt\footnote{ + %% Text fuer Fussnote und Eintrag ins Kurzzitateverzeichnis: %% + \printonlyvqu {Karl}{Marx} + {Das \ktit{Kapital\onlyhere{~I}}, in: + \xprintonlyvqu [m]{Karl}{Marx} *{\vauthor{Friedrich}{Engels}} + {\ktit{Werke}, Berlin 1962}}[50].% + %% + %% Eintrag des Einzeltextes ins Verzeichnis gedruckter Quellen: %% + \addtovqu{Karl}{Marx}{Das \ktit{Kapital}. Kritik der + politischen "Okonomie, erster Band; das ist Bd.\,23 (1962) + von: \xvqu [m]{Karl}{Marx} *{\vauthor{Friedrich}{Engels}} + {\ktit{Werke}, hrsg.\ vom Institut f"ur + Marxismus-Leninismus beim ZK der SED, 40~Bde.\ + Berlin 1958--1971}}% %% Inneres v erscheint in v-Liste als k + %% + %% Eintrag der vollen Reihe ins Verzeichnis der gedruckten Quellen: %% + \xaddtovqu {Karl}{Marx} *{\vauthor{Friedrich}{Engels}} + {\ktit{Werke}, hrsg.\ vom Institut f"ur + Marxismus-Leninismus beim ZK der SED, 40~Bde.\ + Berlin 1958--1971}\label{inad}} +und auf der Folgeseite vorgemacht: + + +\vspace{-.5ex} +{\footnotesize + \begin{verbatim} + \footnote{ + %% Text fuer Fussnote und Eintrag ins Kurzzitateverzeichnis: %% + \printonlyvqu {Karl}{Marx} + {Das \ktit{Kapital\onlyhere{~I}}, in: + \xprintonlyvqu [m]{Karl}{Marx} *{\vauthor{Friedrich}{Engels}} + {\ktit{Werke}, Berlin 1962}}[50].% + %% Eintrag des Einzeltextes ins Verzeichnis gedruckter Quellen: %% + \addtovqu{Karl}{Marx}{Das \ktit{Kapital}. Kritik der + politischen "Okonomie, erster Band; das ist Bd.\,23 (1962) + von: \xvqu [m]{Karl}{Marx} *{\vauthor{Friedrich}{Engels}} + {\ktit{Werke}, hrsg.\ vom Institut f"ur + Marxismus-Leninismus beim ZK der SED, 40~Bde.\ + Berlin 1958--1971}}% %% Inneres v erscheint in v-Liste als k + %% Eintrag der vollen Reihe ins Verzeichnis gedruckter Quellen: %% + \xaddtovqu {Karl}{Marx} *{\vauthor{Friedrich}{Engels}} + {\ktit{Werke}, hrsg.\ vom Institut f"ur + Marxismus-Leninismus beim ZK der SED, 40~Bde.\ + Berlin 1958--1971}} %% aus Vorausgehendem herauskopieren +\end{verbatim}} + +\noindent +Falls nur \textit{ein} Teil eines Herausgeberwerkes verwendet wird, +ist auf der Literaturliste das 'innere' Kurzzitieren und separate +Vollangabe nicht n"otig. Alternativ kann deshalb auf +innere v\hy\ und k\fhy Befehle ganz verzichtet werden: + +\Doppelbox +{\bs vqu \{Karl\} \{Marx\} + \\ \b{\{}Das \bs ktit\{Kapital\}. Kritik der + \\ \ politischen "Okonomie, erster + \\ \ Band; das ist Bd.\bs,23 (1962) + \\ \ von: \bs midkauthor\{ders.\} + \\ \ \bs ntvauthor\{Friedrich\}\{Engels\} + \\ \ Werke, hrsg. vom Institut + \\ \ f"ur Marxismus-Leninismus + \\ \ beim ZK der SED, + \\ \ \bs ersch\string|40\string|\{Berlin\}\{1958-{}-1971\}\b{\}} +} +{\footnotesize\notktitaddtok + \texttt{\% Nicht in die Listen "ubernommen:} + \\[.5ex] \printonlyvqu {Karl} {Marx} {Das \ktit{Kapital}. Kritik der politischen + "Okonomie, erster Band; das ist Bd.\,23 (1962) von: + \midkauthor{ders.} \ntvauthor{Friedrich}{Engels} + Werke, hrsg.\ vom Institut f"ur + Marxismus-Leninismus beim ZK der SED, + \ersch|40|{Berlin}{1958--1971}} +} + +\vspace{1ex}\noindent +Dies leitet "uber zur \textbf{Umstellung vorgefertigter Textelemente}. +Schr"agstiche definiert \verb|\nsep|, das seinerseits \verb|\baslash| +('\baslash') ausf"uhrt. mid\hy Befehle und\pdfko{1}\ +die Sternargumente von +x\fhy Befehlen nutzen ihn. \verb*|\renewcommand{\nsep}{, }|\pdfko{.75}\ +w"urde Komma statt Schr"agstrich zwischen Namen drucken. Dies kann +auch lokal geschehen: Die jeweils aktuelle Definition von \verb|\nsep| reist +\label{Ausreise} mit jedem v- und k-Zugang \textit{separat} in die Listen +und wird dort reproduziert. (\verb|\baslash|\pdfko{1.75}\ +ist dabei unzerbrechlich, weil es \verb|\protect\pbaslash| ausf"uhrt.) + +Ein weiterer Separator, \verb|\ntsep|, \label{ntsepA} der zwischen Name und +Titel '\ntsep' druckt,\pdfko{.5}\ +sollte dagegen nur im Dokumentenvorspann ge"andert werden. +Ausgef"uhrt wird \verb|\ntsep| von v- und k\fhy Befehlen +sowie \verb|\ntvauthor| und \verb|\ntkauthor|. Gelegentlich +ist ein lokal auf den \textit{Ausdruck der Listen} +beschr"anktes "Andern von\pdfko{1.125}\ +\verb|\ntsep| sinnvoll und k"onnte etwa +\verb*|\renewcommand{\ntsep}{, }| lauten. + +Im letzten Beispiel wurde auch \verb!\ersch|40|{Berlin}{1958--1971}! \label{ersch} +verwendet, was ausgedruckt ergibt: \ersch|40|{Berlin}{1958--1971}. +Dabei ist \verb!|40|! optional. Ein normales Buch kann am Ende des +letztes Arguments eines v\fhy Befehls stets etwas stehen haben wie +\verb!\ersch{Berlin}{2003}! -- das ergibt: \ersch{Berlin}{2003} --; +oder auch \verb!\ersch[2]{Berlin}{2003}!, was \ersch[2]{Berlin}{2003} +ergibt. Und \verb!\ersch{}{}! druckt \ersch{}{} -- also: ohne Ort, ohne +Jahr. Nach \verb|\exponenteditionnumber| druckt +\verb!\ersch|5|[2]{Mainz}{2008}! aus: {\exponenteditionnumber +\ersch|5|[2]{Mainz}{2008}}, also mit $^{2}2008$. Das sonst verwendete +'Auf{\kern.03em}l.,' ist definiert als \verb|{\teskip Auf{\kern.03em}l.,}| +und kann ge"andert werden mittels +\verb+\renewcommand{\gerscheditionname}{\teskip Auf"|lage}+ in 'Auf"|lage'. + + +\vspace{1.25ex}\label{female}\noindent +Falls in den \textit{v\fhy Listen bei Autorwiederholung} \textsc{dies.} +oder \textsc{ders.} statt $\sim$ stehen soll, k"onnen Sie \verb|\female| +bzw.\ \verb|\male| in die v-Befehle zu Anfang der Vornamensargumente +tippen. Beispiel: \verb|\vqu{\male Karl}{Marx}{|...\verb|}| Das muss $-$\,einmal +etwa f"ur die vli-Liste angefangen\,$-$ dann aber in jedem vli-Befehl stehen +(ausgenommen anonyme Autoren \verb|\vli{}{}{|...\verb|}|): Nur so wird w\kern-.1em/m von +\hspace{.2em}\verb|bibsort -k|\hspace{.2em} richtig zugeordnet (gleiche Namen +gelten auch dann als gleich, wenn \verb|\female| oder \verb|\male| vergessen +wird; evtl.\ gilt dann das Geschlecht der vorausgehenden Person). +Sind dann auch alle Koautoren gleich, wird automatisch \textsc{diesn.} +f"ur 'Dieselben' gesetzt. Falls nur die ersten von mehreren Koautoren gleich sind, +wird f"ur \textit{die} weiterhin {\small$\sim$} oder {\small$\sim$\baslash$\sim$} +gesetzt.\pdfko{.5} + +\vspace{.675ex}\noindent +Der \textit{Text}\hskip0pt plus 1pt\ ist mit\hskip0pt plus 1pt\ \verb|\renewcommand| an\hskip0pt plus 1pt\ +\verb|\geademname| ({\small\verb|dies\kern -0.04em.|}\kern-.2em),\pdfko{.75}\ + \verb|\gidemname| ({\small\verb|ders\kern -0.04em.|}\kern-.2em) und +\verb|\giidemname| ({\small\verb|diesn\kern -0.07em.|}\kern-.2em)\pdfko{.75}\ +einstellbar (\textit{nicht die} \textsc{schrift}\textit{!}). Dies wirkt auch auf +\verb|[f]|, \verb|[m]| und \verb|[p]| +bei\pdfko{1.5}\ +v- und k\fhy Befehlen (samt Ausdruck innerer v- oder k\fhy Befehle in den Listen). + + +\vspace{1.25ex}\noindent +Dagegen erfolgt ein \textit{Umstellen von \textsc{ebd.}} mit \label{setibidem} +\verb|\setibidem{g}{ebenda}{}| in\pdfko{1.25}\ +\textsc{ebenda}. Die Voreinstellung ist +\verb|\setibidem{g}{ebd\kern -0.07em}{.}| in\pdfko{1.25}\ +\verb|bibarts.sty|. Das zweite +Argument kann nur entweder leer sein oder einen Punkt enthalten; es dient +dazu, \BibArts\ mitzuteilen, wie beim automatischen\pdfko{.5}\ +\textsc{ebd.}-Setzen mit +einem nach dem k-Befehl stehenden Punkt umgegangen werden soll (um +\textsc{ebd.}.\ zu vermeiden). Nur hier ist \verb|\renewcommand| verboten!\pdfko{1.25} + + +\vspace{1.25ex}\noindent +Die Schrift, in der \textit{Autorennachnamen} gesetzt sind, ist \verb|\authoremph|. +Mit\pdfko{1.25}\ +\verb|\renewcommand{\authoremph}{\upshape}| lie"se sich die voreingestellte +Hervorhebung von \textsc{Nachnamen} beim Ausdruck von v- und k\fhy Befehlen +aufheben. Alternativ kann \verb|\stressing| \textit{ein} Schriftbefehl +ohne~\kern-.15em\verb|\| "ubergeben werden: \textit{Etwa} \verb|\stressing{underline}| +\textit{initiiert +{\itshape\notprinthints\stressing{underline}\printonlykli{Nachname}{}} auch +in kursivem Umfeld.} + + +\vfill\noindent{\sffamily +Sprachabh"angig vorgefertigte Textelemente folgen in Kapitel~\ref{SprachSep} +unten ab S.\,\pageref{SprachSep};} +\\[.25ex]{\sffamily +einstellbare Texthervorhebungen liste ich in Kapitel~\ref{hervor} +unten S.\,\pageref{hervor} auf;} +\\[.25ex]{\sffamily +und der Literaturtyp \textit{Zeitschriften} kommt gleich in +Kapitel~\ref{per} unten ab S.\,\pageref{per}.}% + + +\newpage +Da das \textbf{\textsc{ders.}\hy Setzen} mit \verb|[f]|, \verb|[m]| +oder \verb|[p]| anf"allig f"ur Fehler ist, wenn Textteile im +Texteditor ausgeschnitten und verschoben werden, gibt es +eine weitere \textbf{Kontrollm"oglichkeit}: "Uber den \LaTeX\hy +Bildschirmausdruck hinaus \baref{DERS} k"onnen Sie sich testweise +im Ausdruck selbst informieren lassen: + +\vspace{1ex} +\Doppelbox +{\bs writeidemwarnings + \\ \ \bs footnote\{\bs kqu[m]\{Clausewitz\} + \\ \ \ \ \{Strategie\}[61] und + \\ \ \ \bs kqu\{Clausewitz\} + \\ \ \ \ \{Vom Kriege\}[62].\} + \\[1ex] \ \bs footnote\{\bs kqu[m]\{Clausewitz\} + \\ \ \ \{Strategie\}[63].\} + \\[1ex] \ \bs footnote\{\bs kqu[m]\{Clausewitz\} + \\ \ \ \ \{Vom Kriege\}[64] und + \\ \ \ \bs kli[m]\{Luhmann\}\{Soziale + \\ \ \ \ Systeme\}[65].\} + \\[1ex] \ \bs footnote\{\bs kqu[m]\{Clausewitz\} + \\ \ \ \{Strategie\}[66].\} + \\[1ex] \ \bs footnote\{\bs vqu[m]\{Karl\}\{Marx\} + \\ \ \ \b{\b{\{}}Das + \\ \ \ \ \bs ktit\{Kapital\bs onlyhere\{\string~II\}\}\% + \\ \ \ \ \bs onlyout\{. Kritik der + \\ \ \ \ \ politischen "Okonomie, + \\ \ \ \ \ zweiter Band; das ist + \\ \ \ \ \ Bd.\bs,24 (1962) + \\ \ \ \ \ von:\}\bs onlyhere\{, in:\} + \\ \ \ \ \bs xvqu \{Karl\}\{Marx\} + \\ \ \ \ \ *\{\bs vauthor + \\ \ \ \ \ \ \ \ \{Friedrich\}\{Engels\}\} + \\ \ \ \ \ \b{\{}\bs ktit\{Werke\}, + \\ \ \ \ \ \ \bs onlyout\{hrsg.\ vom Institut + \\ \ \ \ \ \ \ f"ur Marxismus-Leninismus + \\ \ \ \ \ \ \ beim ZK der SED, 40\string~Bde. + \\ \ \ \ \ \ \ Berlin 1958-{}-1971\}\% + \\ \ \ \ \ \ \bs onlyhere\{Berlin + \\ \ \ \ \ \ \ 1962\}\b{\}}\b{\b{\}}}[67].\} +} +{\writeidemwarnings + \footnote{\kqu[m]{Clausewitz} {Strategie}[61] und + \kqu{Clausewitz} {Vom Kriege}[62].} + \\[8.25ex] + \footnote{\kqu[m]{Clausewitz} {Strategie}[63].} + \\[3ex] + \footnote{\kqu[m]{Clausewitz} {Vom Kriege}[64] und + \kli[m]{Luhmann}{Soziale Systeme}[65].} + \\[8.25ex] + \footnote{\kqu[m]{Clausewitz} {Strategie}[66].} + \\[3ex] + \footnote{\vqu[m]{Karl}{Marx} {Das + \ktit{Kapital\onlyhere{~II}}% + \onlyout{. Kritik der politischen + "Okonomie, zweiter Band; das ist Bd.\,24 (1962) + von:}\onlyhere{, in:} \xvqu {Karl}{Marx} + *{\vauthor{Friedrich}{Engels}} {\ktit{Werke}, \onlyout{hrsg.\ + vom Institut f"ur Marxismus-Leninismus beim ZK der SED, + 40~Bde.\ Berlin 1958--1971}% + \onlyhere{Berlin 1962}}}[67]. + \\ + \texttt{\% Vgl.\ DERS. in der Liste \baref[]{printnumvqu}} + } +} + +\vspace{1ex}\noindent +Nach Setzen von \verb|\writeidemwarnings| druckten v- und k\fhy Befehle +dabei in Klammern deren Nachnamensargument hinter folgenden Symbolen aus: + + \vspace{2ex}\noindent + {\small\begin{tabular}{cl}% + $\bullet$ & \textsc{\footnotesize DERS.} \sffamily fehlt m"oglicherweise (gleiche Nachnamen registriert). \\ + $\heartsuit$ & \textsc{\footnotesize DERS.} \sffamily ist offenbar richtig gesetzt (gleiche Nachnamen registriert). \\ + $\nabla$ & \textsc{\footnotesize DERS.} \sffamily wegen fehlender Autoren in vorausgehender Fu"snote unberechtigt. \\ + $\spadesuit$ & \textsc{\footnotesize DERS.} \sffamily "uberscheibt einen Namen, der nicht der vorausgehende ist. \\ + $\clubsuit$ & \textsc{\footnotesize DERS.} \sffamily steht irref"uhrenderweise nach einer Fu"snote mit mehreren Autoren. \\ + \end{tabular}} + +\vspace{2ex}\noindent +\BibArts\ kontrolliert niemals Koautoren. Falls auch die in +aufeinanderfolgenden Fu"snoten gleich sind, lassen sie sich zwar durch +Ersatzworte ersetzen, wozu \BibArts\ bei Fehlern aber nicht warnt. +Hier ein Beispiel ohne Fehler: + +\Doppelbox +{\bs footnote\{.... \bs xkli\{Maier\} + \\ \ *\H{\{}\bs midkauthor\{M"uller\} + \\ \ \ \ \bs kauthor\{Huber\}\H{\}} \{Geld\}[i].\} + \\[1ex] \bs footnote\{\bs xkli[p\{\}]\{Maier\} + \\ \ *\{\bs midkauthor\{M"uller\} + \\ \ \ \ \bs kauthor\{Huber\}\} \{Haus\}[ii].\} + \\[1ex] \bs footnote\{\bs xkli[p\b{\b{\{}} ersten beiden + \\ \ \ \ und \bs kauthor\{Schmidt\}\b{\b{\}}}] + \\ \ \ \{Maier\} *\b{\{}\bs midkauthor\{M"uller\} + \\ \ \ \ \bs kauthor\{Schmidt\}\b{\}} + \\ \ \ \{Vorsorge\}[iii].\} +} +{\texttt{\% Nicht in Listen ausgedruckt \%} + \\[3ex] + \footnote{Lokal erst \xprintonlykli{Maier} + *{\midkauthor{M"uller} \kauthor{Huber}} {Geld}[i].} + + \footnote{\xprintonlykli[p{}]{Maier} + *{\midkauthor{M"uller} \kauthor{Huber}} {Haus}[ii].} + + \footnote{\xprintonlykli[p{ ersten beiden und \kauthor{Schmidt}}] {Maier} + *{\midkauthor{M"uller} \kauthor{Schmidt}} {Vorsorge}[iii].} +} + + +\noindent\label{p}% +Nur mit \verb|[p{}]| oder \verb|[p{|\textit{xx}\verb|}]| werden alle +Namen mit \textsc{diesn.} "uberschrieben (und nicht wie mit \verb|[p]| +nur der erste).\footnote{\texttt{[f\{\}]} und \texttt{[m\{\}]} existieren aus +Symmetriegr"unden, sind aber "uberfl"ussig.} Wenn mehrere, aber eben +nicht alle Autoren \textit{dieselben} sind, m"ussen Sie die zuviel mit +\textsc{diesn.} "uberschriebenen wie gerade gezeigt in \textit{xx} +wieder nennen. + +Um korrekt sortierte Liste zu erzeugen, sollten die 'regul"aren' +Namensargumente von v- und k\fhy Befehlen \textit{in jedem Fall} +richtig bef"ullt sein (obwohl die \textit{in der Fu"snote} +gar nicht gedruckt werden, sondern \textsc{ders.} etc.). + +Falls Sie \textsc{dies.}, \textsc{ders.} und \textsc{diesn.} nicht +verwenden wollen, k"onnen Sie alle diesbez"uglichen Warnungen auch +mit \verb|\notwarnsamename| im Vorspann Ihres \LaTeX\hy Textes +ausschalten. Das unterbindet bei der \LaTeX\hy "Ubersetzung die +Bildschirmwarnung {\small\texttt{cmd repeats (first) author's +lastname}} samt allen weiteren Meldungen f"ur die eben +aufgelisteten Fehlertypen. \textit{Zus"atzlich} wird +\verb|\writeidemwarnings| unwirksam; \BibArts\ druckt also nicht +mehr {\small$\bullet\heartsuit\nabla\spadesuit\clubsuit$}\,. + +\vspace{1.25ex}\noindent +Dass bei \textit{inneren} v- und k\fhy Befehlen gesetzte Attribute \verb|[f]|, +\verb|[m]| und \verb|[p]| in\pdfko{1}\ +die Listen "ubernommen werden, wurde oben +beim Ausdruck des Verzeichnisses der gedruckten Quellen anhand des ersten +Bandes von Marx' Kapital demonstriert. Beim zweiten Band dagegen ist +der 'innere' Marx nicht mit \verb|[m]| versehen; beim "Ubersetzen der +Fu"snote, aus der der Eintrag herstammt, erscheint die Warnung +{\footnotesize\texttt{Inner ...vqu-cmd repeats author's lastname}}. +Falls Sie in\pdfko{.75}\ +diesen F"allen wirklich kein \textsc{ders.} haben wollten, k"onnen +Sie vor den inneren v- oder k\fhy Befehl \verb|\notwarnsamename| +setzen, um die Warnung auszuschalten. + +Bei Ausdruck der v\fhy Listen erfolgt nie eine Warnung, falls der +innere und der "au"sere Autor gleich sind, aber \verb|[f]|, +\verb|[m]| oder \verb|[p]| (meist als \verb|[p{}]|) fehlt. + +\newpage\noindent +Zum \textbf{Zitieren mehrb"andiger Werke} gibt es einen Speicher +f"ur Bandnummern. Das optionale Argument \verb+|+\textit{Band}\verb+|+ +zur \textsc{ebd}.\hy Setzung steht ohne Leerzeichen vor dem +Seitenargument (\verb+\ersch|+\textit{Band}\verb+|+... bef"ullt den Speicher nicht): + +\label{Reinhard}% +\Doppelbox +{\bs footnote\{... \bs vli\{Wolfgang\} + \\ \ \{Reinhard\} \b{\b{\{}}Geschichte der + \\ \ \ \bs ktit\b{\{}\bs onlyvoll\{e\}\% + \\ \ \ \ \ \ \ \ \ \bs onlykurz\{E\}urop"aische\% + \\ \ \ \ \ \ \ \ \ \bs onlyvoll\{n\} Expansion\b{\}}, + \\ \ \ \bs ersch\string|4\string|\{Stuttgart\} + \\ \ \ \ \ \ \ \ \ \ \ \{1983-{}-1990\}\b{\b{\}}}\string|2\string|[98].\} + \\[1ex] \bs footnote\{\bs kli \{Reinhard\} \{Europ"aische Expansion\}\string|2\string|[98].\} + \\[1ex] \bs footnote\{\bs kli \{Reinhard\} \{Europ"aische Expansion\}\string|3\string|[1].\} +} +{\vspace{1.5ex}% + \footnote{Band aus Reihe: \notktitaddtok\printonlyvli{Wolfgang} {Reinhard} {Geschichte der + \ktit{\onlyvoll{e}% + \onlykurz{E}urop"aische% + \onlyvoll{n} Expansion}, + \ersch|4|{Stuttgart} {1983--1990}}|2|[98].\label{Ranf}} + + \footnote{\printonlykli {Reinhard} {Europ"aische Expansion}|2|[98].} + + \footnote{\printonlykli {Reinhard} {Europ"aische Expansion}|3|[1].\label{Rend}} +} + +\noindent +St"unden hier \verb|\vli| und \verb|\kli| statt der +tats"achlich verwendeten printonly-Befehle, ginge ins Kurzzitateverzeichnis +\textsc{Reinhard}: Europ"aische Expansion [L] \hspace{.5em} +\textsf{\pageref{Ranf}$^{\ref{Ranf}-\ref{Rend}}$} +und ins Literaturverzeichnis: +\textsc{Reinhard}, Wolfgang: Geschichte der europ"aischen Expansion, +4 Bde., Stuttgart 1983--1990. + +\vspace{.1ex} +W"urde die Bandangabe \verb+|3|+ (oder Nummer \verb+_n_+) in der letzten +Fu"snote fehlen, dann erschiene w"ahrend der \LaTeX\hy "Ubersetzung die +Fehlermeldung:\vspace{.5ex} +\label{pervol}% +{\small\texttt{!~Same title, before with :\{pervol\}\{2\}:, has now no no./vol number.}}\footnote{ +Eine Warnung bei 'innerer' \textsc{ebd.}\hy Setzung erfolgt nur, +wenn \textit{innen} Band- bzw.\ Seitenangaben fehlen +\textit{und} zuvor (auch) entsprechende '"au"sere' Angaben standen. Sie erhalten\pdfko{1}\ +also \textsc{ebd.}, aber u.\,U. keine Warnung, wenn Sie innere +Bandangaben zu tippen vergessen!} + +\vspace{.75ex}\noindent +Dagegen d"urfte die \verb|[1]| nach der \verb+|3|+ wegbleiben, weil es +sich um einen anderen Band als in der vorausgehenden +Fu"snote handelt. $-$ Im Falle von \textbf{mehrb"andigen Herausgeberwerken} +sind auch 'innere' Bandangaben erlaubt: + +\vspace{-.2ex}% +\Doppelbox +{\vspace{1.75ex}\bs footnote\{\bs vli \{\}\{\} + \\ \ \b{\{}\bs ktit\{Au"sen~1\}, in: + \\ \ \ \bs vli \{\}\{\} \b{\b{\{}}\bs ktit\{Innen\}\b{\b{\}}}\% + \\ \ \ \ \ \ \ \string|12\string|[100-199]\b{\}}*[111].\} + \\[.5ex] \bs footnote\{\bs kli\{\}\{Au"sen~1\}[111].\} + \\[.5ex] \bs footnote\{... \bs vli\{\}\{\} + \\ \ \H{\{}\bs ktit\{Au"sen~2\}, in: \bs kli \{\} + \\ \ \ \ \{Innen\}\string|12\string|[200-299]\H{\}}*[222].\} +} +{\footnote{\notktitaddtok\printonlyvli {}{}% + {\ktit{Au"sen~1}, in: + \printonlyvli {}{} + {\ktit{Innen}}% + |12|[100-199]}*[111].} + \footnote{\printonlykli{}{Au"sen~1}[111].} + \footnote{Gleiche Reihe: \notktitaddtok\printonlyvli{}{} + {\ktit {Au"sen~2}, in: + \printonlykli {} {Innen}|12|[200-299]}*[222].} +} + +\vspace{-.2ex}\noindent +\BibArts\ pr"uft nicht, ob \verb|*[|\textit{Seite}\verb|]| innerhalb des +genannten Seitenintervalls liegt. + +\newpage\noindent +Wie sind \textbf{Werke} in die Listen aufzunehmen, \textbf{die im Text nie +verwendet wurden}, die Sie aber trotzdem im Anhang auf"|listen m"ochten? +Solche Werke d"urfen auf den num\hy Listen nicht mit den Seiten\fhy/""Fu"snotennummern +der Stelle gedruckt werden, an der die Angaben im \hspace{-.15em}\verb|.tex|\hy +File stehen! Die addto\hy Befehle sind also ungeeignet. Statt dessen gibt es die +\verb|{unused}|\hy Umgebung:\balabel{unused} + +\vspace{-.5ex} +{\small\begin{verbatim} + \begin{unused} + \vli{James M.}{McPherson}{\ktit{Battle Cry of Freedom}. The + American Civil War, Oxford 1988}[vi] + %% Beispiel in den Listen nicht umgesetzt %% + \end{unused} +\end{verbatim}} + +\vspace{-.5ex} +%\begin{unused} +%\vli{James M.}{McPherson}{\ktit{Battle Cry of Freedom}. The +%American Civil War, Oxford 1988}[vi] +%\end{unused} %% -%% german muss (wenn verwendet) v o r bibarts eingeladen werden!! -%% +\noindent Seitenzahlen wie hier \verb|[vi]| +werden ignoriert. Damit lassen sich Werke w"ahrend des Schreibens +einfacher von einer Fu"snote in die \verb|{unused}|\hy Umgebung +verschieben. Dort sind sogar addto\hy Befehle +erlaubt (tats"achlich sieht \BibArts\ dort \verb|\vli|\hy Befehle als +\verb|\addtovli|\hy Befehle unbestimmter Herkunft).\pdfko{.125}\ +\verb|\printonlyvli| hat in \verb|{unused}|\hy Umgebungen nat"urlich nichts +zu suchen. Aber sonst d"urfen Sie alle \BibArts\hy Hauptbefehle +wie \verb|\vli| und \verb|\vqu| sowie die\pdfko{1}\ +unten Seite~\pageref{per} +und \pageref{archivquellen} eingef"uhrten Befehle \verb|\per| und \verb|\arq| +nutzen; dazwischen d"urfen Leerzeichen und \textit{einfache} Zeilenumbr"uche +stehen. Wenn Sie sich an diese Regeln halten, haben Sie eine im ausgedruckten +Text unsichtbare Spielwiese. Ganz am Ende Ihrer \hspace{-.15em}\verb|.tex|\hy Datei +$-$ dort insbesondere nach Ende einer \verb|twocolum|\fhy Umgebung oder nach +einem \verb|\newpage|\hy Befehl $-$ haben\pdfko{.5}\ +\verb|{unused}|\hy Umgebungen +nichts zu suchen, da sie dort nicht mehr umgesetzt werden und deshalb in +die Listen nichts geschrieben w"urde. Ein guter Platz zum Sammeln ist +dagegen vor dem zugeh"origen Listenausdruckbefehl. + +\vspace{1ex}\noindent +In \verb|{unused}|\hy Umgebungen gilt "ahnliches, wie f"ur addto\fhy +Befehle au"serhalb: + +\vspace{.5ex}\parbox{1.5em}{(1)}Die dort in v\fhy Befehlen +mit \verb|\ktit| markierten Kurztitel bewirken keinen Eintrag ins +Kurzzitateverzeichnis. Falls gew"unscht, sind dazu +\verb|\kli| oder\pdfko{1.25}\ +\verb|\kqu| in separaten Eintr"agen in die \verb|{unused}|\hy +Umgebung einzuzuf"ugen. + +\vspace{.5ex}\parbox{1.5em}{(2)}Innere v\fhy Befehle erzeugen \textit{nicht +automatisch einen eigenen Volleintrag\pdfko{.75}\ +auf den v\fhy Listen}, werden auf den v\fhy Listen aber (wie immer) als Kurzzitat +ausgedruckt. Innere v\fhy Befehle m"ussen in \verb|{unused}|\hy Umgebungen +deshalb kopiert und danach nochmals separat in die Umgebung eingef"ugt +werden. + + +\vfill\noindent +\textsf{Bevor ich Zeitschriftenbelege vorstelle, kommt nun erst das w"ortliche +Zitieren.} + + +\newpage +\section{W"ortliche Zitate in verschiedenen Sprachen}\label{Sect2} + +Bei l"angeren w"ortlichen Zitaten ist "ublich, diese zur besseren +Erkennbarkeit vom restlichen Text deutlich abzusetzen. \BibArts\ +stellt eine Umgebung bereit:\pdfko{1}\vspace{-.5ex} + +\Doppelbox +{\ \ ... das Zitat auch: + \\[.4ex] \bs begin\{originalquote\} + \\[.35ex] \ \ \string"\string`Der Krieg entsteht + \\ \ \ nicht urpl"otzlich; seine + \\ \ \ Verbreitung ist nicht das + \\ \ \ Werk eines Augenblicks, + \\[.125ex] \ \ [...].\string"\string'\bs footnote \b{\{} + \\[.125ex] \ \ \ \ \bs kqu\{Clausewitz\} + \\[.15ex] \ \ \ \ \ \ \ \ \{Vom Kriege\}[22].\b{\}} + \\[.25ex] \bs end\{originalquote\} +} +{\renewcommand{\originalquotetype}{\footnotesize}% + Der umgebende Text hat den deutschen Trennsatz, und das Zitat auch: + \begin{originalquote} + "`Der Krieg entsteht nicht urpl"otzlich; seine Verbreitung + ist nicht das Werk eines Augen"-blicks, + [...]."'\footnote { + \kqu{Clausewitz} {Vom Kriege}[22].} + \end{originalquote} +} +\vspace{.25ex}\noindent +Gr"unde f"ur die neue Umgebung: Die \LaTeX\hy Umgebung \verb|{quote}| setzt den +vertikalen Abstand zum Fu"snotenbreich viel zu klein, wenn mitten in den +"ubersetzten Zitatblock ein Seitenumbruch f"allt. Damit die +\verb|{originalquote}|\hy Umgebung reagieren kann, versieht \verb|bibarts.sty| +den bestehenden \LaTeX\hy Befehl\pdfko{1.25}\ +\verb|\footnoterule| mit einem Zusatz.\footnote{ +Au"serdem wird der \textit{Fu"snotenbereich} an den Fu"s der Seite geschoben +durch Einf"ugen von zus"atzlichem vertikalem Zwischenraum. +Deshalb sollten Sie zusammen mit \BibArts\ den +\LaTeX\hy Befehl \texttt{\bs flushbottom} +nicht verwenden. $-$ \BibArts\ setzt weiter \texttt{\bs footnotesep} auf +\texttt{2ex}, um den \textit{Abstand zwischen Fu"snoten} zu vergr"o"sern. +Dies k"onnen Sie im Vorspann Ihres \LaTeX\hy Textes r"uckg"angig machen durch Setzen +von \texttt{\bs setlength\{\bs footnotesep\}\{0pt\}\,.}} +Wenn Sie \verb|\footnoterule| anschlie"send\pdfko{1}\ +einfach umdefinieren, dann schalten Sie diese Eigenschaft +aus.\footnote{Um die Dicke des Strichs vor dem Fu"snotenbereich zu +"andern, m"ussen Sie unter \BibArts\pdfko{1.25}\ +den Befehl \texttt{\bs fnrbasave} statt +lehrbuchgem"a"s \texttt{\bs footnoterule} "andern, beispielsweise: \\[.25ex] +\hspace*{2em}{\ttfamily + \bs renewcommand\{\bs fnrbasave\}\{\bs noindent\bs rule\{5cm\}\{0.5mm\}\bs vspace\{1ex\}\} }} + +Ein zweiter Grund f"ur die \verb|{originalquote}|\hy Umgebung betrifft +den Zeilenumbruch. Geistes- und +SozialwissenschaftlerInnen zitieren oft in einer von der Basissprache +ihres Textes abweichenden Sprache. Dann muss zur richtigen Worttrennung +aber \textit{nur} der Trennsatz umgestellt werden. +\verb|\selectlanguage|\pdfko{1.25}\ +aus \texttt{ngerman.sty} bewirkt aber gleichzeitig, +dass ein Kapitel nach Setzen von\pdfko{.5}\ +\verb|{english}| \textit{Chapter} +hei"st und eine Seite pl"otzlich \textit{Page}. \BibArts\ separiert beides +(vgl.\ sprachabh"angige Textelemente unten S.\,\pageref{SprachSep}). +Zur Einstellung des\pdfko{.25}\ +Trennsatzes mit \BibArts\hy Befehlen dienen +dieselben Schl"usselbegriffe, die Sie\pdfko{.5}\ +bisher als Argument f"ur \verb|\selectlanguage| verwendeten. +Folgendes Beispiel\pdfko{1}\ +ist englisch und druckt das Zitat in der Gr"o"se der umgebenden Schrift aus: + + +{\notktitaddtok\renewcommand{\originalquotetype}{} + \begin{originalquote}[english] + "`Virginia brought crucial resources to the Confederacy. + Her population was the South's largest. Her industrial + capacity was nearly as great as that of the seven original + Confederate states combined."'\footnote{Auch englische + Trennung: \printonlyvli{James M.}{McPherson}{\ktit{Battle + Cry of Freedom}. The American Civil War, Oxford 1988}.} + \end{originalquote}} + +\vspace{-.5ex}\noindent +Dieses w"ortliche Zitat wurde mit folgendem \LaTeX\hy Code erzeugt: + +\vspace{-.75ex}{\small\begin{verbatim} + {\renewcommand{\originalquotetype}{} %% Statt \small + \begin{originalquote}[english] + "`Virginia brought crucial resources to the Confederacy. + Her population was the South's largest. Her industrial + capacity was nearly as great as that of the seven original + Confederate states combined."'\footnote{Auch englische + Trennung: \vli{James M.}{McPherson}{\ktit{Battle Cry of + Freedom}. The American Civil War, Oxford 1988}.} + \end{originalquote}} +\end{verbatim}} + + +\vspace{-.5ex}\noindent +Falls dort \verb|\begin{originalquote}[eglihs]| st"unde, w"are die +Fehlermeldung bei der \LaTeX-"Ubersetzung: + +\vspace{-.5ex}{\scriptsize\begin{verbatim} + ** Arg(s) of BibArts' sethyphenation-command: Error around line 1371! + You've called \begin{originalquote}[eglihs]. + <H><return> for immediate help, + <return> to continue. + ! Language-name `eglihs' is undefined. (Old VALUE remains valid: 43). + . . . . . . . . . . . . + \errmessage@ba ... + \space . . . . . . . . . . . } + } + l.1145 \begin{originalquote}[eglihs] +\end{verbatim}} + +\vspace{-.75ex}\noindent +Da oben tats"achlich ein \verb|\printonlyvli|\hy Befehl +steht, ist eine Besonderheit von \BibArts\ nur +S.\,\pageref{Trennbeispiel} bei "`Zum Schluss ..."' zu sehen: +\verb|bibsort| reproduziert den am Zugang g"ultigen Trennsatz +\textit{beim Listenausdruck}. Bei der \LaTeX\hy "Ubersetzung +der \textit{Datei mit der erzeugten Liste} kommen Bildschirm\hy +Meldungen:\label{hyphenation}% + +\vspace{-0.5ex} +{\scriptsize\begin{verbatim} + [BIBSORT] Reproduce hyphenation 0 in line 1210 of BibArts file. + [BIBSORT] Reproduce hyphenation 43 in line 1214 of BibArts file. +\end{verbatim}} + +\vspace{-0.75ex}\noindent +Das ist die Trennsatz\hy Umschaltung \textit{vor} dem englischen Listenpunkt +und das Zur"uckschalten ins Deutsche \textit{dahinter} (43 f"ur deutsch ist +versionsabh"angig). + +\vspace{1.25ex}\noindent +Um Trenns"atze $-$ und nur die $-$ auch au"serhalb von \verb|{originalquote}| +einzustellen, bietet \BibArts\ den weiteren Befehl \verb|\sethyphenation| an. +Ein deutschsprachiges Wort\footnote{In einem Zitat aus \kqu{Clausewitz} +{Vom Kriege}[75 (I.6)].} ist unten f"alschlicherweise franz"osisch getrennt. +Falls Sie diesen Text mit \LaTeX\ "ubersetzen und nicht widers-prechend +getrennt wird, verf"ugt Ihre \LaTeX\hy Version entweder "uber keinen +franz"osischen Trennsatz oder reagiert auf Umschaltungen \textit{in} +Abs"atzen nicht (sondern nur am Absatzkopf): + + \vspace{2ex}% + \noindent\hspace{1.9em}\parbox{12.5cm}{\small\ttfamily + \string"\string`Ein gro"ser Teil der Nachrichten, die man im Kriege \\ + bekommt, ist \{\bs sethyphenation\{french\} widersprechend\}, \\ + ein noch gr"o"serer ist falsch und bei weitem der \\ + gr"o"ste einer ziemlichen Ungewi"sheit unterworfen.\string"\string' + } + + \vspace{2ex}% + \noindent\hspace{1.9em}\parbox{12.5cm}{\small + "`Ein gro"ser Teil der Nachrichten, die man im Kriege + bekommt, ist {\sethyphenation{french} widersprechend}, + ein noch gr"o"serer ist falsch und bei weitem der + gr"o"ste einer ziemlichen Ungewi"sheit unterworfen."' + } + +\vspace{2.5ex}\noindent +Die verschiedenen Befehle zur Trennsatz\hy Einstellung sind +kombinierbar. Falls in einer \verb|{originalquote}|\hy Umgebung +das w"ortliche Zitat eine andere Sprache als der Titel des zitierten +Werkes hat, darf \verb|\sethyphenation| am Kopf\pdfko{1.5}\ +der Fu"snote stehen. Falls Sie \verb|\sethyphenation| oder +\verb|\selectlanguage| zudem \textit{in} den +\BibArts\hy Argumenten verwenden, ist dies (samt Argument) f"ur die +Sortierreihenfolge unerheblich. Speziell aber im Nachnamensargument +von \verb|\vli| und \verb|\kli| sollten Sie solche Befehle wegen der +\textsc{ebd.}\hy Setzung vermeiden. Wenn Sie stattdessen \textit{Trennhilfen} +bei Autornamen nutzen, sollten die \textit{bei allen +v- und k\fhy Nennungen eines Werkes} einheitlich gesetzt +sein.\footnote{Mehrere (ansonsten) zeichengleiche Listenzug"ange, +bei denen \texttt{\bs sethyphenation} oder\pdfko{.5}\ +\texttt{\bs selectlanguage} mal gesetzt und +mal vergessen (oder mit verschiedenen Sprachen besetzt) +wurde, ergeben mehrere Listeneintr"age; uneinheitliche +Trennhilfen \texttt{\bs-} und \texttt{\dq-} auch. +\texttt{bibsort\hspace{.3em}-k} \hspace{.2em}setzt $\sim$ +bei wechselnden Trennhilfen, nicht aber bei vergessenen +set\hy Befehlen.} + +\vspace{1.5ex}\noindent +Nebenbei: Die \verb|{originalquote}|\hy Umgebung und der +\verb|\sethyphenation|\hy Befehl "andern absichtlich auch das +\textit{spacing} nicht, weil dies in einem Text durchgehend gleich sein sollte. +Vgl. unten Kap.\,\ref{nonfrenchspacing} ab S.\,\pageref{nonfrenchspacing} und +Kap.\,\ref{Punkte} ab S.\,\pageref{Punkte}. + +\vspace{1.5ex}\noindent +\BibArts\ reproduziert dar"uber hinaus den \verb|german.sty|\hy\ bzw.\ +\verb|ngerman.sty|\hy Befehl \verb|\originalTeX| beim Listenausdruck, +falls ein Eintrag aus einem Umfeld mit ver"andertem \textit{catcode} f"ur \verb|"| +herstammt. Von den beiden \verb|"a| unten S.\,\pageref{originaltex} +ist nur eines als "a einsortiert. \verb|\originalTeX| schaltet zudem +den englischen Trennsatz ein. W"ahrend der "Ubersetzung einer +\BibArts\hy Liste wird gemeldet: + +\vspace{-.75ex}{\scriptsize\begin{verbatim} + [BIBSORT] Set \baoriginalTeX in line 51 of BibArts file. + [BIBSORT] Reproduce hyphenation 0 in line 52 of BibArts file. + [BIBSORT] Set \bagermanTeX in line 61 of BibArts file. (new) + [BIBSORT] Reproduce hyphenation 43 in line 62 of BibArts file. +\end{verbatim}} + +\vspace{-1ex}\noindent +\verb|\baoriginalTeX| f"uhrt \verb|\originalTeX| aus, \verb|\bagermanTeX| +f"uhrt selbst"andig \verb|\germanTeX| oder \verb|\ngermanTeX| +(mit Meldungen \texttt{\footnotesize (old)} oder \texttt{\footnotesize (new)}) aus, +je nach dem, ob Sie \verb|german.sty| +oder \verb|ngerman.sty| geladen haben.\footnote{Die Zwischenstufe mit +\texttt{\bs baoriginalTeX} bzw.\ \texttt{\bs bagermanTeX} dient dazu, dass +Sie mit \texttt{\bs renewcommand} beide Definitionen ausschalten k"onnen, +falls es in Ihrem Text eine ganz andere Bedeutung hat, wenn sich der +\textit{catcode} des Doppelanf"uhrungszeichens "andert.} +Ganz allgemein kommt \verb|bibarts.sty| damit klar, falls die +Zeichen \verb|~":;!?'`<>| \textit{aktiv} sein sollten, doch "Anderungen +\label{catcode} +des \textit{catcode} reproduziert \verb|bibsort| nur bez"uglich~\verb|"|. + + +\section{Formatierungs- und Editionshilfen}\label{Sect3} + +Um Datumsangaben gutformatiert drucken zu k"onnen, verf"ugt +\BibArts\ f"ur das\pdfko{1}\ +Deutsche "uber den Befehl \verb|\te|, der einen Punkt und ein +kurzes Leerzeichen (ohne Zeilenumbrucherlaubnis) druckt: +\hspace{.4em}\verb|Der 1\te April| \hspace{.4em}\verb|=>| \hspace{.4em}Der 1\te April. + +\vspace{1ex}\noindent +F"ur englische Texte stellt das Paket +\hspace{.1em}\verb|\eordinal{|\textit{arabische Zahl}\verb|}| +\hspace{.2em}bereit: + +\vspace{.75ex}{\small\noindent +\verb| \eordinal{1} Assistant => | \eordinal{1} Assistant. \\ +\verb| \eordinal{2} Assistant => | \eordinal{2} Assistant. \\ +\verb| \eordinal{3} Assistant => | \eordinal{3} Assistant. \\ +\verb| \eordinal{4} Assistant => | \eordinal{4} Assistant. \\ +\verb| \eordinal{11} Assistant => | \eordinal{11} Assistant. \\ +\verb| \eordinal{21} Assistant => | \eordinal{21} Assistant.} + +\vspace{1ex}\noindent +Im Franz"osischen ergibt sich bei \verb|{1}| ein geschlechtsspezifischer Unterschied: + +\vspace{.75ex}{\small\noindent +\verb| Le \fordinalm{1} homme => | Le \fordinalm{1} homme. \\ +\verb| La \fordinalf{1} femme => | La \fordinalf{1} femme. \\ +\verb| Le \fordinalm{2} homme => | Le \fordinalm{2} homme. \\ +\verb| La \fordinalf{2} femme => | La \fordinalf{2} femme.} + +\vspace{1ex}\noindent +Die ordinal\hy Befehle dienen auch als Hilfsbefehle f"ur den Befehl +\verb|\ersch| (oben S.\,\pageref{ersch}). \verb|\ersch| nutzt verschiedene +ordinal\hy Befehle, wenn \verb|\bacaptionsgerman|, +\verb|\bacaptionsenglish| oder \verb|\bacaptionsfrench| gilt +(vgl.\ Kapitel~\ref{SprachSep} unten ab S.\,\pageref{SprachSep}). +\textit{Auf"|l.} und \textit{edition} lassen sich direkt "andern +(\verb|\gerscheditionname| und \verb|\eerscheditionname| unten +S.\,\pageref{erscheditionname}). Weil aber \verb|\ferscheditionname| +das feminine Wort \textit{\'edi\-tion} druckt, setzt \BibArts\ +\verb|\fordinalf| in \verb|\ersch| ein.\footnote{\texttt{\bs ersch} +nutzt unter \texttt{\bs bacaptionsgerman} statt \texttt{\bs te} den +reinen Hilfsbefehl \texttt{\bs gordinal}.} Bei einem maskulinen Wort +m"ussen Sie au"serdem \verb|\fordinal| anpassen:\label{fordinalf}% + +\vspace{.75ex}{\small\noindent +\verb| \bacaptionsfrench| \\ +\verb| \ersch[1]{Paris}{1976} => | {\bacaptionsfrench\ersch[1]{Paris}{1976} \\ +\verb| \renewcommand{\ferscheditionname}{\fupskip classement}| \\[-.25ex] +\verb| \renewcommand{\fordinal}{\fordinalm}| \\[.1ex] +\verb| \ersch[1]{Paris}{1976} => | \renewcommand{\fordinal}{\fordinalm}% +\renewcommand{\ferscheditionname}{\fupskip classement,}% +\ersch[1]{Paris}{1976}}} + +\vspace{1.25ex}\noindent +Zum Hochstellen von freien Texteingaben dient +\verb|\fup{|\textit{\kern-.05em Text}\verb|}| +\hspace{.2em}(\kern-.025em\textit{F}\kern-.05em rench \textit{up}). In\pdfko{.25}\ +schr"aggestelltem Umfeld wird automatisch eine \textit{italics}\hy +Korrektur gesetzt. Die l"asst sich nach \hspace{-.1em}\verb|.| mit \verb|\bahasdot| +unterbinden (vgl.\ Kapitel~\ref{Punkte} ab +S.\,\pageref{Punkte}):\footnote{Ist \texttt{\bs fup} bereits +besetzt, etwa von \texttt{french.sty}, +"uberschreibt \texttt{bibarts.sty} es \textit{nicht}!} + +\vspace{1ex}{\small\noindent +\verb| S\fup{te} Claire => | S\fup{te} Claire \\ +\verb| \textit{S\fup{te} Claire} => | \textit{S\fup{te} Claire} \\ +\verb| \textit{S.\fup{te} Claire} => | \textit{S.\fup{te} Claire} \\ +\verb| \textit{S.\bahasdot\fup{te} Claire} => | \textit{S.\bahasdot\fup{te} Claire}} + + +\newpage\noindent +F"ur \textit{Editionsarbeiten} (w"ortliches Zitieren) stellt \BibArts\ +\verb|\abra{|\textit{Symbol}\verb|}| und\pdfko{1}\ +\verb|\fabra{|\textit{Symbol}\verb|}| +bereit. Als \textit{Symbol} lassen sich i.\,O. vergessene Satzzeichen +nachtragen, die dann in eckigen Klammern (\kern-.1em\textit{a}ngular \textit{bra}ckets) +ausgedruckt werden, um sie als \textit{editorische Zus"atze} zu kennzeichnen. +Der Fixier\hy Befehl \verb|\fabra| verbietet einen Zeilenumbruch direkt +\textit{nach} dem \verb|[|\textit{Symbol}\verb|]|. + +Besonderheit der beiden Befehle ist, dass sie etliche kleine Symbole +automatisch in \textit{h"ohenangepassten} Klammern ausdrucken. 'Unbekannte' +Zeichen werden in ein normales eckiges Klammerpaar gesetzt. Bekannte Symbole sind: + +\vspace{1.75ex}\noindent + \verb| \abra{,} => | Rot\abra{,} blau und gr"un \\[-.5ex] + \verb| \abra{.} => | waren die Farben\abra{.} Und \\[-.5ex] + \verb| \abra{...} => | \abra{...} waren weitere \\[-.5ex] + \verb| \abra{\dots} => | sowie \abra{\dots} mit \\[-.5ex] + \verb| \abra{$-$} => | \abra{$-$} sagen wir \abra{$-$} \\[-.5ex] + \verb| \abra{-} => | gr"un\abra{-} und gelb\abra{-}stichigen \\[-.5ex] + \verb| \abra{--} => | Punkten \abra{--} wenn man so will.\\[-.5ex] + \verb| \abra{---} => | Englischer\abra{---}Gedankenstrich.\\[-.5ex] + \verb| \fabra{`} => | \hbox to 3em{\fabra{`}So,\hfill} \verb| % \glq und \grq werden| \\[-.5ex] + \verb| \fabra{'} => | \hbox to 3em{so\abra{'}.\hfill} \verb| % auch bearbeitet|\\[-.5ex] + \verb| \fabra{\glqq} => | Er sagte: \fabra{\glqq}Das \\[-.5ex] + \verb| \abra{\grqq} => | kann nicht sein.\abra{\grqq} \\[-.5ex] + \verb| \fabra{"`} => | Nochmal: \fabra{"`}Das \\[-.5ex] + \verb| \abra{"'} => | kann nicht sein.\abra{"'} \\[-.5ex] + \verb| \abra{``} => | Dann meiner er: ,,Gut!\abra{``} \\[-.5ex] + \verb| \abra{''} => | ''Good?\abra{''} \\ + \verb| \fabra{g}gf. => | \hbox to 3em{\fabra{g}gf.\hfill} \verb| % unbekannt => 'grosse' Klammern| + + +\vspace{2ex}\noindent +Damit \BibArts\ die \textit{Symbole} erkennen kann, m"ussen sie genau "ubereinstimmen, +d"urfen also auch keine Leerzeichen enthalten. F"ur das \verb|"| in +\verb|"`| und \verb|"'| ist\pdfko{1.25}\ +zudem Voraussetzung, dass es einen \textit{catcode} +von 13 (\textit{aktiv}) hat, wie es nach\pdfko{1}\ +Laden von \verb|german.sty| oder +\verb|ngerman.sty| der Fall ist; diese Style\hy Files stellen auch \verb|\glqq| +und \verb|\grqq| bereit, die Alternativbefehle f"ur "`"' sind. Im +\LaTeX\hy Original\hy US\hy Englisch ist +in \verb|\abra| und \verb|\fabra| also \verb|''| oder \verb|\dq| statt \verb|"| einzusetzen. +\verb|`| und \verb|'| in \verb|\abra| und \verb|\fabra| +werden nur mit \textit{catcode}~12 \underline{erkannt}. + +\vspace{1ex}\vfill\noindent +In den 'kleinen' Klammern der abra-Befehle setzt \BibArts\ +die \textit{Symbole} aufrecht, +weil die sonst in einigen schr"aggestellten Schriften +schlecht zentriert in den Klammern erscheinen w"urden. +\verb|\abra| und \verb|\fabra| machen eine +\textit{italics}\hy Korrektur, die ein direkt vor sie +getipptes \verb|\bahasdot| unterbindet: + +\vspace{1.75ex}\noindent +\verb| \fabra{"`}Haus\abra{"'} => | {\fabra{"`}Haus\abra{"'}} \\ +\verb| \itshape | \\ +\verb| \fabra{"`}Haus\abra{"'} => | {\itshape \fabra{"`}Haus\abra{"'}} \\ +\verb| \fabra{"`}H.\abra{"'} => | {\itshape \fabra{"`}H.\abra{"'}} \\ +\verb| \fabra{"`}H.\bahasdot\abra{"'} => | {\itshape \fabra{"`}H.\bahasdot\abra{"'}} + +\vspace{2ex}\noindent +Weil normale \textit{Minuszeichen} in Worten die Silbentrennung ausschalten, +stellt \BibArts\ zudem \verb|\hy| und \verb|\fhy| bereit. +\verb|\hy| erlaubt die Trennung direkt nach dem gedruckten Minuszeichen +(\verb|Haber\hy Bosch\hy Verfahren =>| Haber\hy Bosch\hy Verfahren), +w"ahrend \verb|\fhy| ein Minuszeichen druckt, das fest am +Folgewort klebt: \verb|Truppenaufmarsch und \fhy abzug =>| +Truppenaufmarsch und \fhy abzug. Gegebenenfalls w"urde auch ab-zug getrennt +(anders als nach~\verb|"~|). + +\vspace{1ex}\noindent +\verb|\hy| machte im Beispiel oben auch ein \textit{kerning} zum V\ko, +das es nach direkt angetippten Minuszeichen nicht gibt: +\hspace{.3em}\verb|Haber-Bosch-Verfahren| +\hspace{.3em}\verb|=>| \hspace{.2em}Haber-Bosch-Verfahren. +Das \textit{kerning} erfolgt vor A, T\ko, v, V\ko, w, W\ko, x, X, y und Y\ko, sowie vor +\verb|`|, \verb|'|, \verb|\glq|, \verb|)|, \verb|]| und \verb|\}| automatisch. +Es funktioniert auch dann, wenn der Buchstabe \textit{einen} Akzent hat +(\kern-.1em\textit{aktives} \hspace{-.1em}\verb|"|, \verb|\"|, +\verb|\.|, \verb|\=|, \verb|\^|, \verb|\'|, \verb|\`|, +\verb|\~|,\pdfko{.75}\ +\verb*|\accent |\textit{num}\verb*| |, +\verb|\b|, \verb|\c|, \verb|\d|, \verb|\H|, \verb|\k|, +\verb|\r|, \verb|\u| oder \verb|\v|; nur \verb|\t| +funktioniert nicht).\pdfko{.5} + +\vspace{1.25ex}\noindent +\verb| -Yser => | -Yser \\ +\verb| \hy Yser => | \hy Yser \\ +\verb| \hy\"Yser => | \hy \"Yser \\ +\verb| \hy\"{Y}ser => | \hy \"Yser + +\vspace{1.5ex}\noindent +Dieses automatische \textit{kerning} l"asst sich durch \verb|\nothyko| +ausschalten (Wiedereinschalten mit \verb|\hyko|). Setzen von +\verb|\hy{}|\hspace{-.15em}\textit{Wort} bzw.\ +\verb|\fhy{}|\hspace{-.15em}\textit{Wort} unterbindet es ebenfalls. +Das folgende Wort kann dann immer noch getrennt werden. +In einem \texttt{Typewriter}\hy Umfeld sollten Sie weiterhin +Minuszeichen '\verb|-|' tippen. + +\vspace{1.5ex}\noindent +\hspace*{-.16em}\textit{Vor} \verb|\hy| oder \verb|\fhy| kann +$-$ falls ein penibler Textsatz gew"unscht ist $-$ kein +automatisches \textit{kerning} durchgef"uhrt werden. \BibArts\ +stellt den Korrekturbefehl \verb|\ko| bereit. Die Kosmetik +ist (\kern-.05em\textit{wenn "uberhaupt!}) n"otig vor Gro"sbuchstaben, die sehr +weit vom Minuszeichen entfernt sind: T\ko, V\ko, W und Y\ko. + +\vspace{1.25ex}\noindent +\verb| T\hy Zacke => | T\hy Zacke \\ +\verb| T\ko\hy Zacke => | T\ko\hy Zacke \\ +\verb| V\hy Form => | V\hy Form \\ +\verb| V\ko\hy Form => | V\ko\hy Form + +\vspace{1.5ex}\noindent +Die Definition von \verb|\ko| kann Ihnen als Beispiel f"ur "ahnliche Befehle dienen + +\vspace{1.25ex}{\small\noindent +\verb| \newcommand{\pko}{\ifhmode\nobreak\hskip -0.07em plus 0em\fi}| \\ +\verb| \newcommand{\ko}{\protect\pko}|\label{ProtectBeispiel}} + +\vspace{1.5ex}\noindent +falls Sie die Korrektur zwischen V und Punkt oder Komma zu klein finden: + +\vspace{1.25ex}\noindent +\verb| V\te Armee => | V\te Armee \\ +\verb| V\ko\te Armee => | V\ko\te Armee + +\vspace{1.5ex}\noindent +Sicher w"are der Abstand von V und \hspace{-.1em}\verb|.| +aber besser in den Ligaturtabellen definiert (worauf +\verb|\te| reagiert: \verb| P\te I und P{}\te I => | +P\te I und P{}\te I). + + + + +\newpage +\section{Abk"urzungen}\label{Sect4} + +\BibArts\ stellt Instrumente zur Verwaltung von Abk"urzungen zur Verf"ugung. +Dies betrifft nicht den Abstand zwischen Buchstaben, oder Buchstaben und +Punkten. Vielmehr k"onnen Sie Abk"urzungen in Ihrem Text weiterhin so +schreiben, wie Sie das wollen; Sie k"onnen aber \BibArts-Befehle nutzen, um +sich ein Abk"urzungsverzeichnis ausdrucken zu lassen und werden von +\verb|bibsort| darauf hingewiesen, ob Sie eine verwendete Abk"urzung bereits +f"ur Ihren Leser definierten. Spielregeln sind: Falls eine Abk"urzung f"ur +den Leser in einer Fu"snote bereits aufgel"ost wurde, darf sie \textit{in weiteren +Fu"snoten} ohne neuerliche Erkl"arung verwendet werden; erfolgte die +Definition der Bedeutung im Haupttext, darf die Abk"urzung danach "uberall +verwendet werden. Das Abk"urzungsverzeichnis wird in jedem Fall mit +Abk"urzung und Auf"|l"osung gef"uttert; \verb|bibsort| warnt, falls mehrfache +Auf"|l"osungen voneinander abweichen. + +Abk"urzungen sind also zun"achst zu definieren. Dabei ist wahlfrei, ob erst +die Abk"urzung und dann ihre Auf"|l"osung gesetzt wird oder umgekehrt: + +\Doppelbox +{... eine + \bs abkdef\{OHG\}\{Offene + \\ \ \ \ Handelsgesellschaft\}. + \\ Oder: \bs defabk\{Offene + \\ \ Handelsgesellschaft\}\{OHG\}. + Nun d"urfen Sie \bs abk\{OHG\} benutzen. +} +{Das Unternehmen ist eine + \abkdef{OHG}{Offene + Handelsgesellschaft}. + Oder: \defabk{Offene + Handelsgesellschaft}{OHG}. + Nun d"urfen Sie \abk{OHG} benutzen. +}\label{defabk} + + +\noindent +Falls Sie die weitere Abk"urzung \abk{GmbH} mit \verb|\abk{GmbH}| setzen, +aber nie definieren, wird sie nicht ins Abk"urzungsverzeichnis "ubernommen; +stattdessen druckt \verb|bibsort| folgende Warnung auf den Bildschirm: + +\vspace{-.5ex} +{\scriptsize\begin{verbatim} + %%> Warning: Abbreviation "GmbH" is NEVER defined! + %% The entry (file 1 line 1528) is rejected. Use \abkdef? +\end{verbatim}} + +\vspace{-.5ex}\noindent +Falls Sie die Abk"urzung mit \verb|\abkdef| oder +\verb|\defabk| definieren, dies im Texteditor aber in einer +Zeile \textit{nach} \verb|\abk{GmbH}| tun, kommt sie ins +Abk"urzungsverzeichnis; es wir aber gewarnt: + +%\abkdef{GmbH}{Gemeinschaft mit beschr"ankter Haftung} + +\vspace{-.5ex} +{\scriptsize\begin{verbatim} + %%> Warning: Abbreviation "GmbH" is used in + %% file 1 line 1528 and def in file 1 line 1543! +\end{verbatim}} + +\vspace{-.5ex}\noindent +Wie erw"ahnt sollen Abk"urzungen, die \textit{nur} in Fu"snoten +aufgel"ost werden, anschlie"send nicht im Haupttext +verwendet werden. Falls Sie tippen ... + +\Doppelbox +{...\bs footnote\b{\{}Ein \bs abkdef\{e.\bs,V.\} + \\ \ \ \ \ \ \ \{eingetragener Verein\} hat + \\ \ mehrere Mitglieder.\b{\}} Der Verein hat \bs abk\{e.\bs,V.\} als Form. +} +{...\footnote{Ein \abkdef{e.\,V.} + {eingetragener Verein} hat + mehrere Mitglieder.} Der Verein hat \abk{e.\,V.} als Form. +} + +\noindent +... erscheinen Abk"urzung und zugeh"orige Auf"|l"osung zwar im +Abk"urzungsverzeichnis, aber \verb|bibsort| macht dennoch die +Bildschirm\hy Meldung: + +{\scriptsize\begin{verbatim} + %%> Warning: Abbreviation "e.\,V." is used in + %% file 1 line 1560 and def in A FNT file 1 line 1561! +\end{verbatim}} + +\noindent +Durch eine Eigenart von \LaTeX2e\ nennt die Meldung +die Zeilennummer, in der die Fu"snote endet,\footnote{In \LaTeX~2.09 evtl.\ auch bez"uglich der Zeile, +in der sie anf"angt.} w"ahrend \verb|\abkdef| im Beispiel sich tats"achlich +in einer vorausgehenden Editorzeile befand. Unabh"angig davon taucht \abk{e.\,V.} im +Abk"urzungsverzeichnis auf, denn die Definition ist ja da. + +Das Verzeichnis +wird nun mit \verb|\printnumabklist| gedruckt. (Die Befehle \verb|\printabk| +und \verb|\printnumabk| erg"aben einen doppelspaltigen Ausdruck in +\verb|\small| beginnend auf einer neuen Seite unter der "Uberschrift +\textbf{Abk"urzungen}, was ich hier aus Platzgr"unden unterlasse). + +{\batwocolitemdefs\printnumabklist}\balabel{abklist} + +\noindent +Die K"opfe der Listenpunkte wurden dabei in \verb|\abklistemph| +ausgedruckt, das\pdfko{1.25}\ +defaultm"a"sig \verb|\bfseries| ausf"uhrt +(\textbf{fett}). Die Seiten, von der die Definitionen\pdfko{.75}\ +herstammen, ist +in der Auf"|listung von Seitenzahlen nicht hervorgehoben. Eine +Hervorhebung einzelner Seitenzahlen sieht \texttt{bibsort} nie vor. + +F"ur Abk"urzungen wie \printonlyabk{u.\,a.}, die Allgemeingut sind und deshalb +vielleicht nicht ins Abk"urzungsverzeichnis sollen, kann +\verb|\printonlyabk{u.\,a.}| genutzt werden, um das +Argument einheitlich in der Schrift aller Abk"urzungen +ausgedruckt zu bekommen. Alternativ k"onnen Sie im Vorspann mittels +\verb|\renewcommand{\abkemph}{}| +die Hervorhebung von Abk"urzungen ausschalten und dann \verb|u.\,a.| tippen. +Die Kontrolle durch \verb|bibsort| entf"allt beidesmal. + +Falls ein Eintrag ins Abk"urzungsverzeichnis soll, man sich die +Auf"|l"osung im Text aber sparen will, hilft die oben eingef"uhrte +\verb|{unused}|\hy Umgebung: + +\vspace{-1.25ex} +{\small +\begin{verbatim} + \begin{unused} + \abkdef{u.\,a.}{unter anderem} %ist umgesetzt% + \end{unused} +\end{verbatim}} +% + \begin{unused} + \abkdef{u.\,a.}{unter anderem} %ist umgesetzt% + \end{unused} + +\vspace{-1.25ex}\noindent +Dann kann \verb|\abk{u.\,a.}| "uberall im Text (also auch davor) +verwendet werden, ohne dass \verb|bibsort| das Fehlen der +Auf"|l"osung bem"akelt. (Von diesem \verb|\abkdef| kommt keine +Seiten\fhy/""Fu"snotennummer in die num\hy Liste.) + +%Wenn das oben nur in einer Fu"snote erkl"arte \verb|\abk{e.\,V.}| jetzt +%nochmal im Haupttext -- anders als oben: \textit{auf einer anderen Seite +%als die Definition} -- verwendet wird (hier: \abk{e.\,V.}), meldet \verb|bibsort| +%diesen Fehler "ubrigens anders: +% +%\vspace{-1ex} +%{\scriptsize\begin{verbatim} +% %%> Warning: Abbreviation "e.\,V." is used +% %% in TEXT file 1 line 1384, whereas all foregoing defs were in FNTs! +%\end{verbatim}} + +\noindent +Mehrfach verwendete Abk"urzungen sowie mehrfach verwendete Auf"|l"osungen +m"ussen zeichengleich sein, um von \verb|bibsort| als gleich erkannt zu +werden. Wird das bereits oben aufgel"oste \abk{OHG} +nochmals erkl"art (vielleicht wollen Sie die Bedeutung einiger bereits definierter +Abk"urzungen am Anfang eines neuen Gro"skapitels nochmal erkl"aren), +wird dies akzeptiert. Wenn Sie dann +aber \abkdef{OHG}{Offene Handelsgschaft} definieren, meldet \verb|bibsort|: + +\vspace{-.5ex} +{\scriptsize\begin{verbatim} + %%> Warning: Different defs for abbreviation "OHG": + %% *Accept file 1 line 1522 "Offene Handelsgesellschaft"; + %% *Reject file 1 line 1643 "Offene Handelsgschaft". +\end{verbatim}} + +\vspace{-1ex}\noindent +und im Abk"urzungsverzeichnis erscheint nur die akzeptierte Variante. + + +\vspace{1ex}\noindent +Falls die Auf"|l"osung einer Abk"urzung im Abk"urzungsverzeichnis anders sein +soll als im Text, lassen sich die Befehle \verb|\abkdef| und \verb|\defabk| +aufsplitten in\pdfko{1.25}\ +ihre Teilkomponenten. Vergleichen Sie "`(Kochsalz)"' hier und in der Liste: + +\Doppelbox +{Das ist \bs addtoabkdef\{NaCl\} + \\ \ \{Natriumchlorid (Kochsalz)\} + \bs printonlyabkdef\{NaCl\} + \\ \ \{Natriumchlorid\}. +} +{Das ist \addtoabkdef{NaCl} + {Natriumchlorid (Kochsalz)} + \printonlyabkdef{NaCl} + {Natriumchlorid}. +} + +\noindent +Dasselbe l"asst sich erreichen durch + +\Doppelbox +{Das ist \bs abkdef\{NaCl\} + \\ \ \b{\{}Natriumchlorid\% + \\ \ \ \ \bs onlyout\{ (Kochsalz)\}\b{\}}. +} +{Das ist \abkdef{NaCl} + {Natriumchlorid% + \onlyout{ (Kochsalz)}}. +} + + +\noindent +\verb|\abk| l"asst sich in \verb|\addtoabk| und +\verb|\printonlyabk| aufspalten. +Es gibt damit zwei Arten f"ur eine in Text und Liste +abweichende Gro"s\fhy/""Kleinschreibung: + +\Doppelbox +{\bs printonlyabk\{E.\bs,V.\}\string's \bs addtoabk\{e.\bs,V.\} + sind beim Amtsgericht anzumelden. + \\[2ex] + \bs abk\b{\{}\bs onlyhere\{E\}\% + \\ \ \ \bs onlyout\{e\}.\bs,V.\b{\}} kann auch + \\ alternativ so notiert sein. +} +{\printonlyabk{E.\,V.}'s \addtoabk{e.\,V.} + sind beim Amtsgericht anzumelden. + + \abk{\onlyhere{E}% + \onlyout{e}.\,V.} kann auch + alternativ so notiert sein. +} + +\vspace{1ex}\noindent +Wie angedeutet, werden das Argument von \verb|\abk| sowie +die Abk"urzungen in \verb|\abkdef| und \verb|\defabk| \textit{im Text} +in der Schrift \verb|\abkemph| gedruckt; der Befehl f"uhrt +defaultm"a"sig \verb|\sffamily| aus ({\sffamily{sans serif}}). +\verb|\renewcommand{\abkemph}{}| druckt Abk"urzungen in +Umfeldschrift aus. Sogar \verb|\itshape| oder \verb|\slshape| w"aren erlaubt; +nur Befehle der Art \verb|\textbf| oder \verb|\textit| sind verboten. + +\vfill\noindent +\textsf{Zu vorgefertigten Elementen im Listenausdruck siehe unten S.\,\pageref{Erklaerung}.} + + +\newpage +\section{\texttt{\bs abk\{X.X.X.\}} unter \texttt{\bs nonfrenchspacing}}\label{Sect5}\label{nonfrenchspacing} + +(1)~Falls Sie \verb|\nonfrenchspacing| einschalten (originaler \LaTeX\hy Textsatz mit +vergr"o"serten Leerzeichen am Satzende), gilt in \LaTeX\ normalerweise eine +Vorschrift f"ur Abk"urzungen, die mit einem Kleinbuchstaben und einem +Punkt enden: \textbf{Wenn der Satz danach weiter geht}, ist \verb*|.\ | zu tippen. + +Im Argument von \verb|\abk| ist dagegen egal, ob der letzte Buchstabe klein oder gro"s ist. +\BibArts\ pr"uft, ob \textit{nach} dem Argument ein Punkt steht; falls nein, geht es davon aus, +dass ein Leerzeichen mit 'normaler' L"ange zu setzen ist:\footnote{Falls +\texttt{ \}? \}! \}: \}; \}, }folgen, stellen die die Leerzeichenl"ange stets eigenst"andig +ein.}\pdfko{1} + +\vspace{1ex} +{\sffamily\nonfrenchspacing\noindent +\verb| Dr. Maier =>| Dr. Maier \verb| %% falsch in US-Voreinstellung| \\ +\verb| Dr.\ Maier =>| Dr.\ Maier \verb| %% ueblich in US-Voreinstellung| \\ +\verb| \abk{Dr.} Maier =>| \printonlyabk{Dr.} Maier \verb| %% ausreichend in BibArts| +} - \makebar +\vspace{2ex}\noindent +(2)~Wenn dagegen eine \textbf{Abk"urzung am Satzende} steht, ist im +\LaTeX\hy Standard '\verb|\nonfrenchspacing|' nur dann etwas zu +unternehmen, falls die Abk"urzung mit einem Gro"sbuchstaben +endet (danach \verb|\@.|~statt \verb|.| setzen). +Nach \verb|\abk| m"ussen Sie \textit{am Satzende} dagegen immer etwas +unternehmen, \textit{wenn der Punkt zur Abk"urzung geh"ort}. +\verb|\abk{NASA}| und \verb|\abk{NASA.}| etwa:\pdfko{.75} +\vspace{1.25ex} +{\sffamily\nonfrenchspacing\noindent +\verb| NASA\@. Next =>| NASA\@. Next \verb| %% US-Voreinstellung richtig| \\ +\verb| \abk{NASA}. Next =>| \printonlyabk{NASA}. Next \verb| %% BibArts Typ 1 richtig| \\ +\verb| \abk{NASA.} Next =>| \printonlyabk{NASA.} Next \verb| %% BibArts Typ 2 falsch!| \\ +\verb| \abk{NASA.}. Next =>| \printonlyabk{NASA.}. Next \verb| %% BibArts Typ 2 richtig| +} -%%% ERLAUBT: -% \pagenumbering{roman} -% \stressing{bf} %% "Andert Betonung des Autorennamens in fett. -% \def\thefootnote{\roman{footnote}} +\vspace{1.5ex}\noindent +Sie d"urfen den 'Satzende-Punkt' also immer zus"atzlich setzen! +Er wird automatisch 'verschluckt', wenn die Abk"urzung selbst +schon mit einem Punkt endet; die 'Verl"angerung' eines nachfolgenden +Leerzeichens bleibt bestehen.\footnote{\BibArts\ +pr"uft erst, ob \texttt{.} einen \texttt{\bs sfcode} von 3000 hat (gilt unter +\texttt{\bs nonfrenchspacing}); falls das nicht gilt, 'verl"angert' es +keine Leerzeichen. Unter \texttt{\bs frenchspacing} hat der Punkt einen +\texttt{\bs sfcode} von 1000; falls Sie einen dritten Wert verwenden, +k"onnen Sie in einer Kopie von \texttt{bibarts.sty} alle +3000er\hy Stellen gegen Ihre Zahl austauschten und die Kopie nutzen.}\pdfko{1.5} + +In jedem Fall sollten Sie direkt nach dem letzten Argument eines \BibArts\hy Befehls +nie \verb|\@| setzen. In \texttt{bibarts.sty} ist die Behandlung von \verb|\@.| auch +beim\pdfko{1.5}\ +automatischen Setzen von \textit{italics}\hy Korrekturen nicht vorgesehen! + +\vspace{2ex}\noindent +Die hier genannten Spielregeln f"ur das \textit{spacing} gelten +auch f"ur andere \BibArts\hy Befehle (vgl.\ unten ab S.\,\pageref{Punkte}). +So viel jetzt schon: Unter \verb|\frenchspacing| (gilt +nach Laden von \verb|german.sty| oder \verb|ngerman.sty|) ist +beim Schreiben an nichts zu denken, weil im deutschen +Textsatz alle Leerzeichen gleich gro"s sind. Sie m"ussen bei +\verb|Typ 2| also nicht \verb*|.}. | setzen; und wenn Sie es doch +t"aten, w"urde halt nur der zweite Punkt nicht ausgedruckt. + + +\section{Zeitschriften und allgemein Bandangaben}\label{Sect6}\label{per} + +\BibArts\ stellt zum Zitieren gedruckter Literatur als weitere Klasse +Zeitschriften bereit. Dabei handelt es sich um Eintr"age mit einem Argument +nach \verb|\per|\pdfko{1}\ +(\textit{periodical}). Typischerweise werden solche Angaben +im letzten Argument von \verb|\vli| stehen, um Aufs"atze in +Zeitschriften anzugeben. Nummer und Jahr der Ausgabe stehen zwischen +\textit{underscores}. Vor \verb|_| darf kein Leerzeichen stehen! + +\Doppelbox +{ +...\bs footnote\{\bs vqu \{John +\\ \ \ Frederick Charles\} \{Fuller\} +\\ \ \H{\{}Gold Medal (Military) +\\ \ \ \bs ktit\{Prize Essay\} for 1919, +\\ \ \ in: \bs per\{Journal of the +\\ \ \ \ \ \ \ \ Royal United Service +\\ \ \ \ \ \ \ \ Institution\}\string_458 +\\ \ \ \ \ \ \ \ \ (1920)\string_[239-274]\H{\}}*[240].\} +\\[1.5ex] +...\bs footnote\{\bs kqu \{Fuller\} +\\ \ \ \ \ \ \ \ \ \ \ \ \{Prize Essay\}[241].\} +\\[1.5ex] +...\bs footnote\{\bs vqu\{R[ichard]\} +\\ \ \{Chevenix Trench\} +\\ \ \{Gold Medal (Military) +\\ \ \ \bs ktit\{Prize Essay\} for 1922, +\\ \ \ in: \bs per\{Journal of the +\\ \ \ \ \ \ \ \ Royal United Service +\\ \ \ \ \ \ \ \ Institution\}\string_470 +\\ \ \ \ \ \ \ \ \ (1923)\string_[199-227]\}*[200].\} +} +{\notktitaddtok +\fbox{Als Beispiel gedruckte Quellen:} +\\[1.5ex] +...\footnote{\printonlyvqu {John\, Frederick\, Charles\,} {Fuller} +{Gold Medal (Military) \ktit{Prize Essay} for 1919, +in: \per{Journal of the Royal United Service +Institution}_458 (1920)_[239-274]}*[240].\balabel{noNr}\label{Fuller1}} + +...\footnote{\printonlykqu {Fuller} +{Prize Essay}[241].\label{Fuller2}} + +...\footnote{\printonlyvqu{R[ichard]\ \ } {Chevenix\ \ Trench} +{Gold Medal (Military) \ktit{Prize Essay} for 1922, +in: \per{Journal of the Royal United Service +Institution}_470 (1923)_[199-227]}*[200].\balabel{Nr}\label{Trench}} +} -%%% VERBOTEN: \def\thefootnote{\Roman{footnote}} +\noindent +Die innere und "au"sere Wiederholung ergab \textsc{ebd.}; +und \verb|\printnumvkc| druckt + +\vspace{-0.25ex} +{\small\begin{description}\parsep 0ex \itemsep -.5ex +\item \textsc{Chevenix Trench}: Prize Essay [Q] \ \textsf{\pageref{Trench}$^{\ref{Trench}}$} +\item \textsc{Fuller}: Prize Essay [Q] \ \textsf{\pageref{Fuller1}$^{\ref{Fuller1},\ \ref{Fuller2}}$} +\end{description}} + +\noindent +In die Liste \verb|\printvqu| kommt (in \verb|bibarts.vqu| tats"achlich nicht umgesetzt): + +\vspace{-0.25ex} +{\small +\begin{description}\parsep 0ex \itemsep -.5ex +\item \textsc{Chevenix Trench}, R[ichard]: Gold Medal (Military) Prize Essay for +1922, in:\pdfko{.5}\ +\textsc{Journal of the Royal United Service Institution} 470 (1923), S.\,199-227. +\item \textsc{Fuller}, John Frederick Charles: Gold Medal (Military) Prize Essay for +1919, in: \textsc{Journal of the Royal United Service Institution} 458 (1920), S.\,239-274. +\end{description}} + +\vspace{-0.25ex}\noindent +Die Zeitschriftenliste wird mit \verb|\printper| oder \verb|\printnumper| gedruckt. +An den Zeitschriftennamen l"asst sich Zusatztext anh"angen (optional) durch: + +\vspace{.5ex}% +{\footnotesize +\hspace{1em}\verb|\fillper{Journal of the Royal United Service Institution}| \\[-.5ex] +\hspace*{10em}\verb|{Zeitschrift gegr|"u\verb|ndet 1857}| +} +\vspace{.5ex}\vfill\noindent +\fillper{Journal of the Royal United Service Institution} +{Zeitschrift gegr"undet 1857}% +\verb|\printnumper| druckt dann die Liste der Zeitschriften (das \verb|.per|-File) so: + +\printnumper + +\noindent +Wenn Zeitschriften abgek"urzt werden und die Abk"urzung zus"atzlich +im Abk"urzungsverzeichnis auftauchen soll \baref{abklist}, vereinfacht +dies \verb|\abkper|: Das f"uhrt \verb|\per| aus und zus"atzlich +\verb|\addtoabk| f"ur das Abk"urzungsverzeichnis. Die Abk"urzung muss +definiert sein, um dort aufgenommen zu werden. + +\Doppelbox +{ +Die \bs abkper\{ZfG.\} \bs addtoabkdef\{ZfG.\}\{Zeitschrift +\\ \ \ \ \ f"ur Geschichtswissenschaft\} ist eine ...: +\bs abkper\{ZfG.\}. +} +{\vspace{.5ex}% +Die \abkper{ZfG.} \addtoabkdef{ZfG.}{Zeitschrift f"ur +Geschichtswissenschaft} ist eine wissenschaftliche Zeitschrift. +Am Satzende: \abkper{ZfG.}. +} +\noindent +In der letzten Fu"snote \baref{Nr} stand nach \textsc{ebd.} +zus"atzlich {\footnotesize Nr.},\pdfko{1}\ +was vorher \baref{noNr} fehlte. Dies geht zur"uck auf die Definitionen + +\vspace{-1ex} +{\small +\begin{verbatim} + \gpername => {\ifbaibidem{, Nr.\,}{\pernosep}} + \gperpname => {\ifbaibidem{, Nr.\,}{\pernosep}} +\end{verbatim}}\label{pernosep} + +\vspace{-1ex}\noindent +worin \verb|\ifbaibidem| sein erstes Argument im Ebenda-Fall und +sonst sein zweites Argument ausf"uhrt (das ein Leerzeichen druckt). +\verb|\gperpname| $-$\,Plural\,$-$ f"uhrt +\BibArts\ statt \verb|\gpername| dann aus, wenn im Argument zwischen +den \textit{underscores} sich ein Minuszeichen, ein Komma, \verb|\f| +oder \verb|\ff| findet, also offenbar\pdfko{1}\ +eine Auf"|listung von mehreren +Zeitschriften enthalten ist. Dies gilt "aquivalent f"ur Bandangaben, +die zwischen senkrechten Strichen stehen (vgl.\ oben S.\,\pageref{Reinhard}) + +\vspace{-1ex} +{\small +\begin{verbatim} + \gvolname => {, Bd.\,} + \gvolpname => {, Bde.\,} +\end{verbatim}} + +\vspace{-1ex}\noindent +wo Singular und Plural erkennbar unterschiedliche Separatoren ausdrucken: + +\Doppelbox +{\vspace{.75ex}% + \bs footnote\{Wieder \bs xkqu \{Marx\} +\\[-1pt] \ \ \ *\{\bs kauthor\{Engels\}\} +\\[-1pt] \ \ \ \{Werke\}\string|11-13\string|.\} +\\[3pt] \bs footnote\{\bs xkqu \{Marx\} +\\[-1pt] \ \ \ *\{\bs kauthor\{Engels\}\} +\\[-1pt] \ \ \ \{Werke\}\string|14\string|.\} +\\[3pt] \bs footnote\{\bs xkqu \{Marx\} +\\[-1pt] \ \ \ *\{\bs kauthor\{Engels\}\} +\\[-1pt] \ \ \ \{Werke\}\string|15\bs f\string|.\} +\\[3pt] \bs footnote\{\bs xkqu \{Marx\} +\\[-1pt] \ \ \ *\{\bs kauthor\{Engels\}\} +\\[-1pt] \ \ \ \{Werke\}\string|17, 18\string|.\} +\vspace{.75ex}% +} +{ +\footnote{Wieder \xkqu {Marx} *{\kauthor{Engels}} {Werke}|11-13|.} +\footnote{\xkqu {Marx} *{\kauthor{Engels}} {Werke}|14|.} - \title{\sf Die \LaTeX-Dokumenten-Stil-Option \bibarts} +\footnote{\xkqu {Marx} *{\kauthor{Engels}} {Werke}|15\f|.} - \author{\sc Timo Baumann} +\footnote{\xkqu {Marx} *{\kauthor{Engels}} {Werke}|17, 18|.} +} - \date{\sf Version 1.3\, vom 28.Mar.1998} +\noindent +\verb|\gpername|, \verb|\gperpname| sowie \verb|\gvolname| +und \verb|\gvolpname| lassen sich etwa\pdfko{.5}\ +(Beispiel ohne \textit{if}) mittels +\verb|\renewcommand{\gpername}{, Heft }| ver"andern: +\verb+\per{ZfG.}_5_+ \verb|=>| +{\renewcommand{\gpername}{, Heft }\per{ZfG.}_5_}. +Die Einstellung des Gedankenstrichs vor den fill\hy Eintr"agen wird +unten S.\,\pageref{perlistopen} behandelt. Das +\verb|\abkper|\hy Argument wird nicht in \verb|\abkemph|, sondern wie +\verb|\per{|\textsc{Argument}\verb|}| in \verb|\peremph| ausgedruckt. +Dessen Definition darf nicht leer sein; zumindest \verb|\upshape| +sollte darin stehen $-$ denn mit \verb|\renewcommand{\peremph}{}| +allein w"urden alle per\hy Befehle, die in schr"aggestelltem +Schriftumfeld stehen, immer etwas melden wie: + +\vspace{-1.125ex} +{\scriptsize\begin{verbatim} + BibArts Warning: Add \upshape to \peremph on input line 1696. +\end{verbatim}} + +\vspace{-1.25ex}\noindent +Falls \BibArts\ nach v-, k- oder per-Befehlen im Eintrag zwischen den +\textit{senkrechten Strichen} bzw.\ zwischen den \textit{underscores} +Singular und Plural nicht richtig erkennt, l"asst sich mit +\verb|\basingular| bzw.\ \verb|\baplural| \textit{am Ende} +nachjustieren:\label{baplural} + + +\Doppelbox +{ +\bs footnote\{\bs abkper \{ZfG.\}\string|11 u. +\\ \ \ 13\string|.\} +\\[1ex] +\bs footnote\{\bs abkper \{ZfG.\}\string|11 u. +\\ \ \ 13\bs baplural\string| (erzwungen).\} +\\[2ex] +\bs footnote\{\bs abkper \{ZfG.\}\string|17, +\\ \ \ 18 oder 19\string|.\} +\\[1ex] +\bs footnote\{\bs abkper \{ZfG.\}\string|17, +\\ \ \ 18 oder 19\bs basingular\string| (dito).\} +\\[1ex] +\bs footnote\{\bs abkper \{ZfG.\}\string_17, +\\ \ \ 18 oder 19\bs basingular\string_.\} +\\[1ex] +\bs footnote\{\bs abkper \{ZfG.\}\string_17, +\\ \ \ 18 oder 19\string_.\} +} +{ +\footnote{\abkper {ZfG.}|11 u. 13|.} +\footnote{\abkper {ZfG.}|11 u. 13\baplural| (erzwungen).} +\footnote{\abkper {ZfG.}|17, 18 oder 19|.} - \flushbottom - \def\Befehl#1{{\tt$\backslash$#1}} - \def\Doppelbox#1#2{\nopagebreak{\fbox{\parbox{.45\textwidth}{\footnotesize\tt - #1}\hfill\parbox{.45\textwidth}{\small\sf\vspace{1ex}#2\vspace{1ex}}}\vspace{1ex}}} - \def\Punkt#1{\begin{itemize}\item{#1}\end{itemize}} - \def\thempfootnote{\thefootnote} - \def\senkrecht{\hbox to .6em{\hfil\boldmath$|$\hfil}} - \def\Klammeraffe{\hbox to .6em{\hfil\tt @\hfil}} - \def\Ausrufezeichen{\hbox to .6em{\hfil\tt !\hfil}} - \def\indexname{\hspace*{.04\textwidth}\fbox{\parbox{.9\textwidth}{\normalsize\tt - \Befehl{renewcommand\{}\Befehl{indexname\}\{Register zu - }\Befehl{bibarts\}}\\ - \Befehl{printind}}}\\[1cm]Register zu \bibarts} +\footnote{\abkper {ZfG.}|17, 18 oder 19\basingular| (dito).} +\footnote{\abkper {ZfG.}_17, 18 oder 19\basingular_.} -\makeatletter +\footnote{\abkper {ZfG.}_17, 18 oder 19_.} +} -\def\@Kapitell#1#2{% - \ifbibarts -%\@vli{\sort{\authorstress #1!!!!!} \protect\bibVkapit {\protect\KapSchr #2} \protect\bibAkapit} -%\@vqu{\sort{\authorstress #1!!!!!} \protect\bibVkapit {\protect\KapSchr #2} \protect\bibAkapit} -\@bib{#1 -- --@ \protect\bibVkapit {\protect\KapSchr #2} \protect\bibAkapit} - \fi +\noindent +\verb+|+...\verb+|+ oder \verb+_+...\verb+_+ w"ahlt der Anwender, sie +f"ullen aber \textit{einen} Speicher. Im \textsc{ebd.}\hy Fall +sollten Sie die m"oglichen Fehlermeldungen oben +S.\,\pageref{before} und \pageref{pervol} beachten. + +\vspace{1ex}\noindent +\verb|\addtoper| und \verb|\printonlyper| verhalten sich wie zu erwarten: + +\Doppelbox +{ +Die \bs printonlyper\{Zeitschrift +\\ \ \ \ f"ur Geschichtswissenschaft\} +\bs addtoper\{ZfG.\} soll als Abk"urzung ins Zeitschriftenverzeichnis. +Alternativ gibt auch +\bs per\b{\{}Z\bs onlyhere\{eitschrift \}\% +\\ \ \ \ \ \ f\bs onlyhere\{"ur \}\% +\\ \ \ \ \ \ G\bs onlyhere +\\ \ \ \ \ \ \ \ \{eschichtswissenschaft\}\% +\\ \ \bs onlyout\{.\}\b{\}} nur einen Eintrag. +} +{ +Die \printonlyper{Zeitschrift f"ur Geschichtswissenschaft} +\addtoper{ZfG.} soll als Abk"urzung ins Zeitschriftenverzeichnis. +Alternativ gibt auch +\per{Z\onlyhere{eitschrift }% +f\onlyhere{"ur }% +G\onlyhere{eschichtswissenschaft}% +\onlyout{.}} nur einen Eintrag. + +\vspace{2ex} +\hfill\fbox{\texttt{\bs printonlyabkper} existiert \textit{nicht}!}\, +\\[.5ex] +\strut\hfill\fbox{\texttt{\bs addtoabkper} existiert \textit{nicht}!}\, +} + +\noindent +Manche Verlage wollen vor der \verb+|+\textit{Nummer}\verb+|+ eines +Bandes oder eines Jahrgangs immer nur ein Leerzeichen haben (statt "`Bd."'). +Deshalb l"asst sich das voreingestellte \verb|\printlongpervol| +auf \verb|\notprintlongpervol| umstellen: + +\Doppelbox +{ +Voreinstellung.\bs footnote\{ +\\ \ \ \bs per\{ZfG.\}\string|23/1 (1975)\string|[2].\} +\\[2.5ex] +\bs notprintlongpervol +\\[1ex] \bs footnote\{ +\\ \ \ \bs per\{ShortMagazine\}\string|24\string|[3].\} +\\[1ex] \bs footnote\{ +\\ \ \ \bs per\{ShortMagazine\}\string|24\string|[4].\} +} +{ +Voreinstellung.\footnote{ +\per {ZfG.}|23/1 (1975)|[2].} + +\ + +\notprintlongpervol +\footnote{ +\per {ShortMagazine}|24|[3].} + +\footnote{ +\per {ShortMagazine}|24|[4].} +}\label{notprintlongpagefolio} + +\noindent +Soll vor der Seitenzahl zudem ein Doppelpunkt statt "`S."' stehen, +kann zus"atzlich \verb|\notprintlongpagefolio| gesetzt werden: + +\Doppelbox +{ +\bs notprintlongpervol +\bs notprintlongpagefolio +\\[1ex] \bs footnote\{ +\\ \ \ \bs per\{ShortMagazine\}\string|25\string|[4].\} +\\[1ex] \bs footnote\{ +\\ \ \ \bs per\{ShortMagazine\}\string|25\string|[5].\} +} +{ +\notprintlongpervol +\notprintlongpagefolio +\footnote{ +\per {ShortMagazine}|25|[4].} + +\footnote{ +\per {ShortMagazine}|25|[5].} } -\def\Kapitell{% -\@Kapitell{a}{A} -\@Kapitell{b}{B} -%\@Kapitell{c}{C} -%\@Kapitell{d}{D} -%\@Kapitell{e}{E} -\@Kapitell{f}{F} -\@Kapitell{g}{G} -%\@Kapitell{h}{H} -%\@Kapitell{i}{I} -%\@Kapitell{j}{J} -\@Kapitell{k}{K} -%\@Kapitell{l}{L} -\@Kapitell{m}{M} -%\@Kapitell{n}{N} -%\@Kapitell{o}{O} -\@Kapitell{p}{P} -%\@Kapitell{q}{Q} -%\@Kapitell{r}{R} -\@Kapitell{s}{S} -%\@Kapitell{t}{T} -%\@Kapitell{u}{U} -\@Kapitell{v}{V} -%\@Kapitell{w}{W} -\@Kapitell{x}{X} -%\@Kapitell{y}{Y} -%\@Kapitell{z}{Z} +\noindent +\verb|\notprintlongpagefolio| allein ergibt (dann druckt +\verb|(|\textit{n}\verb|)| auch nicht "`Bl."'): + +\Doppelbox +{ +\bs notprintlongpagefolio +\\[1ex] \bs footnote\{ +\\ \ \ \bs per\{ShortMagazine\}\string|25\string|[4].\} +\\[1ex] \bs footnote\{ +\\ \ \ \bs per\{ShortMagazine\}\string|25\string|[5].\} } +{ +\notprintlongpagefolio +\footnote{ +\per {ShortMagazine}|25|[4].} -\makeatother +\footnote{ +\per {ShortMagazine}|25|[5].} +} -\Kapitell %% Kapitelle (nach obiger Definition von \@Kapitell: nur im Index) +\noindent +Auf Befehle wie \verb|\kli| oder \verb|\kli| wirken beide ebenfalls, +weswegen die beiden notprint\hy Befehle eher nur im Dokumentenvorspann +gesetzt werden sollten: + +\Doppelbox +{ +\bs notprintlongpervol +\bs notprintlongpagefolio +\\[1ex] \bs footnote\{ +\\ \ \ \bs kqu\{Marx\}\{Kapital\}\string|2|[334].\} +\\[1ex] \bs footnote\{ +\\ \ \ \bs kqu\{Marx\}\{Kapital\}\string|2|[335].\} +\\[1ex] \bs footnote\{ +\\ \ \ \bs kqu\{Marx\}\{Kapital\}\string|3|[66].\} +} +{ +\notprintlongpervol +\notprintlongpagefolio +\footnote{ +\kqu{Marx}{Kapital}|2|[334].} -%% \KapSchr definiert die Schrift der Kapitelle +\footnote{ +\kqu{Marx}{Kapital}|2|[335].} +\footnote{ +\kqu{Marx}{Kapital}|3|[66].} +} +\noindent +Das folgende Beispiel zeigt (unten), was Setzen von +\verb|\notprintlongpervol| und \verb|\notprintlongpagefolio| +zusammen mit \verb|\notannouncektit| ergibt: + +\Doppelbox +{ +\bs notprintlongpagefolio +\\[1ex] +...\bs footnote\{\bs vqu \{John +\\ \ \ Frederick Charles\} \{Fuller\} +\\ \ \H{\{}Gold Medal (Military) +\\ \ \ \bs ktit\{Prize Essay\} for 1919, +\\ \ \ in: \bs per\{Journal of the +\\ \ \ \ \ \ \ \ Royal United Service +\\ \ \ \ \ \ \ \ Institution\}\string_458 +\\ \ \ \ \ \ \ \ \ (1920)\string_[239-274]\H{\}}*[240].\} +\\[1.5ex] +...\bs footnote\{\bs kqu \{Fuller\} +\\ \ \ \ \ \ \ \ \ \ \ \ \{Prize Essay\}[241].\} +\\[1.5ex] +\bs notannouncektit +\bs notprintlongpervol +\\[1ex] +...\bs footnote\{\bs vqu\{R[ichard]\} +\\ \ \{Chevenix Trench\} +\\ \ \{Gold Medal (Military) +\\ \ \ \bs ktit\{Prize Essay\} for 1922, +\\ \ \ in: \bs per\{Journal of the +\\ \ \ \ \ \ \ \ Royal United Service +\\ \ \ \ \ \ \ \ Institution\}\string_470 +\\ \ \ \ \ \ \ \ \ (1923)\string_[199-227]\}*[200].\} +} +{\notktitaddtok +\notprintlongpagefolio +...\footnote{\printonlyvqu {John\, Frederick\, Charles\,} {Fuller} +{Gold Medal (Military) \ktit{Prize Essay} for 1919, +in: \per{Journal of the Royal United Service +Institution}_458 (1920)_[239-274]}*[240].\label{erste}} + +...\footnote{\printonlykqu {Fuller} +{Prize Essay}[241].} + +\notannouncektit +\notprintlongpervol +...\footnote{\printonlyvqu{R[ichard]\ \ } {Chevenix\ \ Trench} +{Gold Medal (Military) \ktit{Prize Essay} for 1922, +in: \per{Journal of the Royal United Service +Institution}_470 (1923)_[199-227]}*[200].} +} +\noindent +\verb|\notprintlongpervol| ordnete an, dass in der letzten Fu"snote +nach dem inneren \textsc{ebd.} (vor 470) kein {\footnotesize Nr.} +ausgedruckt wurde. In Fu"snote~\ref{erste} fehlt {\footnotesize Nr.} +dagegen, weil dort kein \textsc{ebd.} gesetzt ist und +in \verb|\gpername| das zweite Argument von \verb|\ifbaibidem| dann +\verb|\pernosep| ausdruckt, ein gesch"utztes Leerzeichen.\footnote{Alter.: +\texttt{\bs renewcommand\{\bs pernosep\}\{\bs ifbashortcite\{\bs bastrut\bs bakxxcorr\}\{\}\bs\ \}}} + +\vspace{1.5ex}\noindent +Mit \verb|{\notprintlongpagefolio\printvqu}| w"urde +im tats"achlich erzeugten Verzeichnis der gedruckten Quellen der Zugang ... + +\vspace{-1ex} +{\small +\begin{description}\parsep 0ex \itemsep -.5ex +\item \textsc{[Anonym]}: Aufmarschanweisungen 1912, +abgedruckt in: \textsc{Ehlert}\baslash \textsc{Epkenhans}\baslash \textsc{Gro"s} [Hrsg.]: +Schlieffenplan [Q], S. 462-466. +\end{description}} + +\vspace{-1ex}\noindent +... "ubrigens so ausgedruckt werden: + +\vspace{-1ex} +{\small +\begin{description}\parsep 0ex \itemsep -.5ex +\item \textsc{[Anonym]}: Aufmarschanweisungen 1912, +abgedruckt in: \textsc{Ehlert}\baslash \textsc{Epkenhans}\baslash \textsc{Gro"s} [Hrsg.]: +Schlieffenplan [Q]: 462-466. +\end{description}} + +\vspace{-.5ex}\noindent +Falls Sie \verb|\notprintlongpagefolio| im Vorspann Ihres \LaTeX\hy Textes +setzen, kann \verb|{\printlongpagefolio\printvqu}| umgekehrt Ausdrucke +in der Art der oberen Liste erzwingen. + + +\newpage +\section{Archivquellen}\label{Sect7}\label{archivquellen} + +Historische Forschungsliteratur weist h"aufig ein separates Verzeichnis +f"ur \textit{ungedruckte Quellen} auf, die \BibArts\ wiederum aus +Haupttext oder Fu"snoten gewinnen kann. Zudem ist eine korrekte +\textsc{ebd.}\hy Setzung in Fu"snoten n"otig. Beides bew"altigt der Befehl +\verb|\arq| mittels zwei Pflicht- und zwei optionalen Argumenten. +Das erste Pflichtargument nennt ein Schriftst"uck und das zweite eine +Archivsignatur (evtl.\ samt dem Eigennamen des Quellenbestandes). Die +\textsc{ebd.}\hy Setzung kann mal Schriftst"uck \textit{und} Signatur betreffen, +mal nur die\pdfko{.25}\ +Signatur (wenn Sie ein anderes Schriftst"uck aus demselben +Bestand zitieren). Nur das zweite Pflichtargument kommt ins Verzeichnis +ungedruckter Quellen. + +Wenn in aufeinanderfolgenden Fu"snoten verschiedene Mappen eines +Bestandes mit gleicher Hauptsignatur stehen, kann \BibArts\ daraus etwas +wie\pdfko{1}\ +{\footnotesize\textsc{Ebd.}, Bd.\,2} machen. Bandangaben sind dazu in +senkrechte Striche nach dem\pdfko{.5}\ +zweiten Pflichtargument zu setzen. Und wenn die Schriftst"ucke Nummern von +einem Paginierungsstempel haben, k"onnen sie abschlie"send in +runden Klammern stehen. Vor {\small\verb+|+\textit{Band}\verb+|+} und +vor {\small\verb+(+\textit{Blatt}\verb+)+} darf kein Leerzeichen sein: + +\Doppelbox +{ +...\bs footnote\{\bs arq\{Haber am 17.12.1914 an den +Kultusminister\} \{GStAPK, HA\bs ,1, Rep\string~76\string~Vc, Sekt\string~1, +Tit\string~23, Litt\string~A, Nr.\bs ,108\}\string|2\string|(223\bs f).\} +\\[1ex] +...\bs footnote\{\bs arq\{Setsuro Tamaru am 24.12.1914 an +Clara Haber\} \{GStAPK, HA\bs ,1, Rep\string~76\string~Vc, Sekt\string~1, +Tit\string~23, Litt\string~A, Nr.\bs ,108\}\string|2\string|(226-231).\} +\\[1ex] +...\bs footnote\{\bs arq\{Setsuro Tamaru am 24.12.1914 an +Clara Haber\} \{GStAPK, HA\bs ,1, Rep\string~76\string~Vc, Sekt\string~1, +Tit\string~23, Litt\string~A, Nr.\bs ,108\}\string|2\string|(226-231).\} +\\[1ex] +...\bs footnote\{\bs arq\{Valentini am 13.3.1911 an Schmidt\} +\{GStAPK, HA\bs ,1, Rep\string~76\string~Vc, Sekt\string~1, Tit\string~23, Litt\string~A, +Nr.\bs ,108\}\string|1\string|(47).\} +} +{ +...\footnote{\arq{Haber am 17.12.1914 an den +Kultusminister} {GStAPK, HA\,1, Rep~76~Vc, Sekt~1, +Tit~23, Litt~A, Nr.\,108}|2|(223\f).} + +...\footnote{\arq{Setsuro Tamaru am 24.12.1914 an +Clara Haber} {GStAPK, HA\,1, Rep~76~Vc, Sekt~1, +Tit~23, Litt~A, Nr.\,108}|2|(226-231).} + +...\footnote{\arq{Setsuro Tamaru am 24.12.1914 an +Clara Haber} {GStAPK, HA\,1, Rep~76~Vc, Sekt~1, +Tit~23, Litt~A, Nr.\,108}|2|(226-231).} + +...\footnote{\arq{Valentini am 13.3.1911 an Schmidt} +{GStAPK, HA\,1, Rep~76~Vc, Sekt~1, Tit~23, Litt~A, +Nr.\,108}|1|(47).} +} - \begin{document} +\noindent +Blattnummern werden (deutsch) im Singular und Plural gleich angek"undigt: + +\vspace{-.5ex} +{\small +\begin{verbatim} + \gisonfolioname => {, Bl.\,} + \gisonfoliopname => {, Bl.\,} +\end{verbatim}} + +\vfill\noindent +Falls Sie sowohl den Blattbereich eines mehrseitigen Schreibens als auch +das darin zitierte Blatt angeben m"ochten, sollte beides in die runden Klammern: + +\newpage +\Doppelbox +{ +\bs footnote\{Mehrseitig: +\\ \bs arq\{Haber am 3.5.1913 an Kr"uss\} \{GStAPK, HA\bs ,1, +Rep\string~76\string~Vc, Sekt\string~1, Tit\string~23, Litt\string~A, +Nr.\bs ,108\}\string|2\string|(94\bs ,a-e: a).\} +\\[1.5ex] +\bs footnote\{ +\\ \bs arq\{Haber am 3.5.1913 an Kr"uss\} \{GStAPK, HA\bs ,1, +Rep\string~76\string~Vc, Sekt\string~1, Tit\string~23, Litt\string~A, +Nr.\bs ,108\}\string|2\string|(94\bs ,a-e: b).\} +} +{ +\footnote{Mehrseitig: +\arq{Haber am 3.5.1913 an Kr"uss} {GStAPK, HA\,1, +Rep~76~Vc, Sekt~1, Tit~23, Litt~A, Nr.\,108}|2|(94\,a-e: a).} + +\footnote{ +\arq{Haber am 3.5.1913 an Kr"uss} {GStAPK, HA\,1, +Rep~76~Vc, Sekt~1, Tit~23, Litt~A, Nr.\,108}|2|(94\,a-e: b).} +} +\noindent +Eine Alternative w"are, \verb|(94\,a-e)| nur beim Verweis auf das +ganze Schreiben zu tippen und zum Beleg einer speziellen Stelle +nur z.\,B. \verb|(94\,c)| anzugeben. + +\vspace{1ex}\noindent +Zum \textbf{Ausdruck des Archivquellenverzeichnisses} lassen sich optional +"Uberschriften unsichtbar hinzuf"ugen. Die m"ussen +sich dadurch auszeichnen, dass sie mit \textit{den ersten Buchstaben +der "uberschriebenen Signaturen} beginnen: + +\vspace{-.5ex} +{\small +\begin{verbatim} + \arqsection{GStAPK}{Geheimes Staatsarchiv + Preu"sischer Kulturbesitz} + \arqsection{BA} {Bundesarchiv} %% Argument 1 bestimmt Position +\end{verbatim}} + \arqsection{GStAPK}{Geheimes Staatsarchiv + Preu"sischer Kulturbesitz} + \arqsection{BA} {Bundesarchiv} %% Argument 1 bestimmt Position + +\vspace{-.5ex}\noindent +\verb|\arqsubsection| erzeugt eine Unter\fhy, +\verb|\arqsubsubsection| eine Unterunter\hy "Uberschrift +(und muss je in \underline{mehr} Zeichen mit den "uberschriebenen +Signaturen "ubereinstimmen). +\verb|\arqsubsection {GStAPK|\underline{\texttt{, HA}}\verb|} {Hauptabteilung}| +\arqsubsection {GStAPK, HA} {Hauptabteilung} wurde hier verwendet. +Und die Zahl der B"ande in Bestand Nr.\,108 wird mit diesem +unsichtbaren fill\hy Befehl an den zugeh"origen \verb|\arq|\hy Zugang angeh"angt:\pdfko{1} + +\vspace{-.5ex}\noindent +{\small +\begin{verbatim} + \fillarq{GStAPK, HA\,1, Rep~76~Vc, Sekt~1, + Tit~23, Litt~A, Nr.\,108} {2\,Bde.} +\end{verbatim}} + \fillarq{GStAPK, HA\,1, Rep~76~Vc, Sekt~1, + Tit~23, Litt~A, Nr.\,108} {2\,Bde.} + + +\vspace{-.5ex}\noindent +\verb|\printarq| druckt die von \verb|bibsort| erzeugte +\verb|.arq|\hy Datei so aus (vgl.\ S.\,\pageref{newpage}): + +\vfill +\printarq + + +\newpage +Falls Sie \verb|\arq| in \verb|\printonlyarq| und \verb|\addtoarq| +separieren, behalten beide die zwei Pflichtargumente. +Bei \verb|\addtoarq| scheint dies "uberfl"ussig, weil nur die +Hauptsignatur gedruckt wird (in der Liste). Tats"achlich aber wird +das erste Argument von \verb|\arq| genauso wie hier dasjenige von +\verb|\addtoarq|~... + +\Doppelbox +{ +...\bs footnote\b{\{} \bs printonlyarq\{\% +\\ \ \ Gesellschaftsvertrag der KCAG\} +\\ \ \{BA R\bs ,8729\string~4\}(94). +\\[.25ex] \ \bs addtoarq\{Gesellschaftsvertrag +\\ \ \ der KCAG\}\{BA Zwischenarchiv +\\ \ \ Dahlwitz-\string"\string"Hoppegarten +\\ \ \ R\bs ,8729\string~4\}(94) +Die ...\b{\}} +} +{ +...\footnote{ \printonlyarq{% +Gesellschaftsvertrag der KCAG} +{BA R\,8729~4}(94). +\addtoarq{Gesellschaftsvertrag +der KCAG}{BA Zwischenarchiv +Dahlwitz-""Hoppegarten +R\,8729~4}(94) +Die \texttt{(94)} des addto\hy Befehls verschluckt der Fu"snotenausdruck; +dort darf also eine Blattnummer stehen. \textsc{ebd.} 'sucht' die +printonly\hy Komponente.} +} - \maketitle - - \noindent\hrulefill - - \begin{abstract} - In den meisten geisteswissenschaftlichen Disziplinen ist es "ublich, die - "Uberpr"uf"|barkeit von Aussagen mittels Angaben in Fu"snoten - sicherzustellen. Wird ein bestimmtes Schriftwerk zum ersten Mal im Text - erw"ahnt, ist es Standard, in einer Fu"snote dar"uber eine vollst"andige - bib\-lio\-gra\-phische Angabe zu machen, also Vorname und Name des - Autors, sowie Titel, Erscheinungsort und Erscheinungsjahr des Werkes - anzugeben. Bei nochmaligem Verweis auf ein schon in dieser Weise erw"ahntes - Werk wird nur noch der Autorenname und ein signifikanter Teil aus dem - Titel genannt. Zuletzt sind noch alphabetisch geordnete Listen der - verwendeten Schriftwerke abzudrucken. Solche Listen stimmen im wesentlichen - mit den Angaben in den Fu"snoten "uberein, wie sie schon bei den erw"ahnten - "`Erstzitaten"' zu machen waren. Ein st"andiger Abgleich dieser Listen mit - den in Fu"snoten gemachten Angaben ist aber "au"serst m"uhsam --- von dem - h"aufigen Fehler ganz zu schweigen, da"s Erstzitate und bibliographische - Listen unbeabsichtigt Unterschiede aufweisen. Die \LaTeX-Befehle - \Befehl{index} und \Befehl{glossary} l"osen das Problem nur schlecht, - besonders, da sie in Fu"snoten Schwierigkeiten mit l"angeren Eintr"agen - machen. - - \LaTeX-Anwender kennen die L"osung f"ur ein vergleichbares Problem - bez"uglich des Inhaltsverzeichnisses. Hier wird einem Gliederungsbefehl - --- etwa \Befehl{section} --- als Argument Text f"ur eine "Uberschrift - "ubergeben, die sowohl am Ort des Befehls, als auch im Inhaltsverzeichnis - ausgedruckt wird. Das Problem hier unterscheidet sich von dem des - Inhaltsverzeichnisses nur in der Notwendigkeit der alphabetischen - Reihenfolge. Wird die Dokumenten-Stil-Option {\tt bibarts.sty} in das - \LaTeX-File eingeladen, steht der Befehl - \Befehl{makebar}\addtobib{makebar@\protect\Befehl{makebar}} f"ur den - Vorspann des \LaTeX-Files zur Verf"ugung. Dieser Befehl legt eine - Bib\-lio\-gra\-phie-Datei mit dem Suffix {\tt$\!$.bar} an. Befehle namens - \printonlybib{\Befehl{vli}} und - \Befehl{vqu}\addtobib{vqu@\protect\Befehl{vqu}} drucken den Text, der ihnen - in Argumenten "ubergeben wird, am Ort des Befehls aus, schreiben diesen - Text aber auch in die Bib\-lio\-gra\-phie-Datei. Diese Datei kann danach - mit dem f"ur dieses Sortier-Problem geschriebenen Programm {\tt gbibsort} - bearbeitet werden. Die in einer Datei mit Suffix {\tt$\!$.phy} sortiert - abgelegten Angaben k"onnen mit Befehlen ausgedruckt werden, die in {\tt - bibarts.sty} bereitgestellt werden. Um diese Grundidee herum f"ugt sich - noch einiges passendes Beiwerk. - \end{abstract} - - \nobreak\noindent\hrulefill - - \newpage - \noindent\hrulefill - \tableofcontents - \vspace{1ex}\nobreak\noindent\hrulefill\vspace{2ex} - - - \section{\"Anderungen gegen"uber Vers. 1 und Vers. 1.1} - - F"ur diesen Abschnitt werden sich (abgesehen vom zweiten Punkt) nur - diejenigen interessieren, die \bibarts{} schon in einer "alteren Version - kennen. Diese neue Version ist teilweise mit den "alteren inkompatibel. - Die neue Anwendungsweise kann aus dem "ubern"achsten Abschnitt entnommen - werden. - - \begin{itemize} - \item Den Befehlen \Befehl{vli}, - \Befehl{vqu},\addtobib{vqu@\protect\Befehl{vqu}} - \Befehl{addtovli},\addtobib{addtovli@\protect\Befehl{addtovli}} - \Befehl{addtovqu},\addtobib{addtovqu@\protect\Befehl{addtovqu}} - \Befehl{printonlyvli}\addtobib{printonlyvli@\protect\Befehl{printonlyvli}} - und - \Befehl{printonlyvqu}\addtobib{printonlyvqu@\protect\Befehl{printonlyvqu}} - m"ussen ab jetzt drei Argumente "ubergeben werden, statt bisher einem. - - \item Bisher gab es zwei Style-Files namens {\tt bibarts.sty} und {\tt - gbibarts.sty}; das zweitgenannte mu"ste verwendet werden, wenn auch {\tt - german.sty} verwendet wurde. Dies ist nichtmehr der Fall; es gibt jetzt nur - noch ein Style-File mit dem Namen {\tt bibarts.sty}. Es erkennt jetzt - selbst"andig, ob vor {\tt bibarts} das Paket {\tt german} eingeladen - wurde.\footnote{Und zwar anhand der "Uberpr"ufung, ob \Befehl{newumlaut} - ein bekannter Befehl ist.} Nach wie vor mu"s {\tt german} vor {\tt - bibarts} eingeladen werden.\footnote{D.h. bei \LaTeX 2e: - \Befehl{usepackage\{german\}} \Befehl{usepackage\{bibarts\}}, bzw. unter - \LaTeX{} 2.09: \Befehl{documentstyle\{...,german,bibarts\}}.} - - \item Der Befehl - \Befehl{makereportbar}\addtobib{makereportbar@\protect\Befehl{makereportbar}} ist nicht - mehr notwendig und auch nicht mehr definiert. Der Befehl - \Befehl{makebar}\addtobib{makebar@\protect\Befehl{makebar}} kann jetzt - selbst"andig die Unterscheidungen vornehmen, die vorher der Anwender - machen mu"ste, indem er entweder - \Befehl{makebar}\addtobib{makebar@\protect\Befehl{makebar}} oder - \Befehl{makereportbar} schrieb. - - \item Der Anwender soll ab jetzt der Literaturliste, dem Quellenverzeichnis - und dem Stichwortverzeichnis selber eine "Uberschrift geben. Die fr"uher - verwendeten \Befehl{section}-Befehle stehen in {\tt bibarts.sty} noch - hinter Auskommentierungen, die der Anwender ggf.~entfernen - kann.\footnote{Ich habe darauf verzichtet, anhand einer Abpr"ufung - dar"uber, ob die Z"ahler {\tt part} oder {\tt chapter} oder keiner von - beiden verwendet wurde, zu entscheiden, welche Gr"o"se der dazugeh"orige - Gliederungsbefehl haben m"u"ste. Solche Definitionen vorwegzunehmen ist - n"amlich f"ur die Anwender kein Service, die z.B.~unter {\tt book} eben - keine "Uberschrift in Gr"o"se {\tt chapter} haben wollen und sich dann - "uberlegen m"ussen, wie sie die Voreinstellung loswerden sollen.} - - \item Die Datei {\tt bibarts.sty} enth"alt die Definitionen von - \Befehl{@footnotetext} aus \LaTeX{} 2.09 und \LaTeX{} 2e, die hier einen - Zusatz erhalten haben, der bei der "Ubersetzung abpr"ufbar macht, ob man - sich gerade innerhalb oder au"serhalb einer Fu"snote aufh"alt. \bibarts{} - entscheidet sich selbst"andig f"ur die richtige - \LaTeX-Version.\footnote{Und zwar anhand der "Uberpr"ufung, ob - \Befehl{LaTeX2e} ein bekannter Befehl ist.} - - \item \Befehl{makebar}\addtobib{makebar@\protect\Befehl{makebar}} kann - auskommentiert werden, wenn gerade keine Notwendigkeit besteht, "uber - aktuelle bibliographische Listen zu verf"ugen. - - \item Folgendes betrifft nur die Dokumentengr"o"sen {\tt report} und {\tt - book}: \bibarts{} "ubernimmt jetzt, wenn die Gliederungsbefehle - \Befehl{part} und \Befehl{chapter} verwendet werden, in sein - Stichwortverzeichnis den Gliederungsnamen, der tats"achlich am Ort des - \Befehl{bib}-Befehls aktuell war. Denn \Befehl{partname} und - \Befehl{chaptername} k"onnen sich im Laufe des Textes "andern, z.B. von - \frq Teil\flq{} in \frq Anlagen\flq{} und von \frq Kapitel\flq{} in \frq - Anhang\flq. - - \item In den Index werden Teil-, Kapitel-, Seiten- und Fu"snotenz"ahler - jetzt so "ubernommen, wie sie im Text stehen, also z.B. {\tt roman} oder - {\tt Alph}.\footnote{Aber nicht {\tt Roman}; solche Eintr"age werden von - {\sc MakeIndex} zur"uckgewiesen!} - - \end{itemize} - - - \section{\"Anderungen gegen"uber Vers. 1.2 und Vers. 1.2a} - - \begin{itemize} - - \item Ein \underline{I}ndex-\underline{St}yle-File in der Art von {\tt - gbibarts.ist} ist nun notwendige Voraussetzung zum Erzeugen eines - \bibarts-Index.\footnote{F"ur DOS: {\tt gbib2e.bat} bzw. {\tt gbib209.bat} - suchen zun"achst im aktuellen Verzeichnis und dann in - {\tt C:\Befehl{EMTEX}\Befehl{IDXSTYLE}} nach einer Datei {\tt - gbibarts.ist}.} Als Gegenleistung sind die bisherigen Probleme mit dem - Index gel"ost, die auftraten, wenn \Befehl{bib}-Befehle au"serhalb von - Fu"snoten standen. - - \item Dies betrifft ebenfalls den Index. Die Eigenschaft des Befehls - \Befehl{bib} hat jetzt der Befehl \Befehl{addtobib}, der bisher nicht - existierte. \Befehl{addtobib} schreibt nur in den Index, \Befehl{bib} - schreibt ebenfalls in den Index, druckt jetzt aber auch zus"atzlich das - ihm "ubergebene Argument einfach aus. Diese "Anderung wurde vorgenommen, - um einheitliche Verhaltensweisen von (1)~\Befehl{vli}, \Befehl{vqu} und - \Befehl{bib}, sowie auch (2)~\Befehl{addtovli}, \Befehl{addtovqu} und - \Befehl{addtobib} zu erreichen. - - \item Dies betrifft Literatur- und Quellen-Zug"ange. {\tt gbibsort} - kann jetzt mit der Option {\tt -k} gestartet werden. Falls von {\it - einem\/} Autor mehrere Werke zitiert werden, wird der entsprechende Vor- - und Nachname auf der jeweiligen Liste nur einmal ausgedruckt. Alle weiteren - Nennungen werden durch \killname{} ersetzt. Alternativ kann --- das mu"s - aber durchgehend geschehen --- unmittelbar nach dem Vornamen - \Befehl{female}\addtobib{female@\protect\Befehl{female}} oder - \Befehl{male}\addtobib{male@\protect\Befehl{male}} stehen, um statt - \killname{} geschlechts-spezifisch {\tt\femalename} oder {\tt\malename} - ausgedruckt zu bekommen. Der Vorname ist das erste Argument, das - \Befehl{vli}, \Befehl{vqu}, \Befehl{addtovli} oder \Befehl{addtovqu} - "ubergeben werden soll. - - \item Dies betrifft nur Literatur- und Quellen-Zug"ange. \bibarts{} - verf"ugt jetzt "uber ein Instrument, um die Sortier-Reihenfolge der - bibliographischen Listen beeinflussen zu k"onnen. In einem der je drei - Argumente der Befehle \Befehl{vli}, \Befehl{vqu}, \Befehl{addtovli} und - \Befehl{addtovqu} kann jetzt der Befehl \Befehl{sort\{RELEVANT\}} verwendet - werden. {\tt gbibsort} sortiert den Eintrag so, als ob nur {\tt RELEVANT} - zwischen vorausgehendem und nachfolgendem Text im Argument steht; {\tt - RELEVANT} wird aber nirgens ausgedruckt. Zu beachten ist, da"s erstes und - zweites Argument (Vor- und Nachname) ausgetauscht werden, bevor der Eintrag - in das Bibliographie-File geht. Innerhalb des Arguments des Befehls - \Befehl{sort\{ARG\}} darf keine Konstruktion in geschweiften Klammern - stehen. \Befehl{sort}\addtobib{sort@\protect\Befehl{sort}} ist f"ur die - Argumente von \Befehl{bib} und \Befehl{addtobib} ungeeignet.\footnote{Die - Sortier-Reihenfolge im Index ist aber {\sc MakeIndex}-spezifisch mit einem - {\tt @}\addtobib{MakeIndex@{\protect\sc MakeIndex}!\protect\Klammeraffe} - in der Art \Befehl{addtobib\{RELEVANT@TEXT\}} zu erreichen. Das Zeichen - {\tt @}\addtobib{gbibsort@{\protect\tt gbibsort}!\protect\Klammeraffe} wird - im Argument von \Befehl{bib} ausgedruckt; deswegen sollte \Befehl{bib} - zerlegt werden in seine beiden Bestandteile - \Befehl{printonlybib\{TEXT\}}\addtobib{printonlybib@\protect\Befehl{printonlybib}} und - \Befehl{addtobib\{RELEVANT@TEXT\}}. {\tt gbibsort} hat kein - \bib{Maskierungszeichen}; {\tt\{RELEVANT\}@} --- wozu \Befehl{sort} - \addtobib{sort@\protect\Befehl{sort}} expandiert --- wird "`verschluckt"', - {\tt @} ansonsten ausgedruckt.} - - \end{itemize} - - - \section{Vorstellung der Optionen} - - \subsection{Die bibliographischen Listen} - - \subsubsection{Das Bib\-lio\-gra\-phie-File} - - Im folgenden werden bibliographische Angaben in Vorname, Name und restliche - Angaben getrennt. Rest ist dabei Titel, Erscheinungsort und - Erscheinungsjahr. W"ahrend die bibliographische Angabe in einer Fu"snote - die Reihenfolge \frq Vorname, Name, Rest\flq{} aufweisen soll, wird in der - bibliographischen Liste die Reihenfolge \frq Name, Vorname, Rest\flq{} - erwartet. VORNAME, NAME und REST stehen ab jetzt symbolhaft f"ur die drei - Argumente, die nachfolgend beschriebenen Befehlen "ubergeben werden - m"ussen. - - Das Erzeugen der nachfolgend beschriebenen Listen setzt voraus, da"s - \LaTeX{} w"ahrend der "Ubersetzung eine Datei angefertigt, in der die - bibliographischen Daten gesammelt werden. \bibarts{} stellt Befehle bereit, - die das Anfertigen einer solchen Datei erm"oglichen. Diese Datei hat den - Namen der Datei, die mit \LaTeX{} bearbeitet wird und das Suffix {\tt.bar}. - Das zu {\tt bibarts.tex} geh"orende Literaturdaten-File hei"st also - {\tt bibarts.bar}. Sollen ein Literaturverzeichnis oder zus"atzlich auch - ein Quellenverzeichnis zum Ausdruck bereitgestellt werden, mu"s die Datei - {\tt NAME.bar} sortiert werden auf eine Datei {\tt NAME.phy}. Die erzeugte - Datei mu"s also das Suffix {\tt.phy} aufweisen. Im Falle von {\tt - bibarts.tex} mu"s der Inhalt von {\tt bibarts.bar} nach Zeilen sortiert - unter dem Namen {\tt bibarts.phy} abgespeichert werden. Das - Sortierprogramm {\tt gbibsort} l"ost das Sortierproblem. (F"ur DOS ist - die ausf"uhrbare Datei {\tt gbibsort.exe} im Paket \bibarts{} mit - enthalten. Anwender anderer Betriebsysteme m"ussen sich die Quell-Datei - {\tt gbibsort.c} in eine ausf"uhrbare Datei "ubersetzen.\footnote{{\tt - gbibsort.c} ist in ANSI-C geschrieben und l"a"st sich erfahrungsgem"a"s - mit dem GNU-C-Compiler auch auf HPUX und PC-UNIX "ubersetzen.}) Der - Befehl zum Sortieren lautet allgemein {\tt gbibsort QUELLE ZIEL}, also - f"ur {\tt bibarts.tex}: - - \begin{center}{\tt gbibsort bibarts.bar bibarts.phy}\end{center} - - \bibarts{} stellt Befehle bereit, die die erw"unschten Daten aus dieser - alphabetisch sortierten Datei an einer bestimmten Textstelle ausdrucken. - Sie werden unten beschrieben. - - \Punkt{F"ur alle Listen gemeinsam gilt aber folgendes: Ein Befehl im - Vorspann\footnote{Mit dem Begriff Vorspann bezeichne ich in einem - \LaTeX-File den Bereich nach dem Befehl \Befehl{documentclass} bzw. - \Befehl{documentstyle} und vor dem Befehl \Befehl{begin\{document\}}.} mu"s - die Datei {\tt NAME.bar} anlegen. Dieser Befehl hei"st - \Befehl{makebar}\addtobib{makebar@\protect\Befehl{makebar}}.} - - \Doppelbox{\Befehl{makebar}}{Bereitet die Datei vor, die die - bibliographischen Daten aufnehmen soll.} - \addtobib{makebar@\protect\Befehl{makebar}} - - Das Anfertigen dieser Datei kann m"oglicherweise die "Ubersetzung eines - Textes mit \LaTeX{} unerw"unscht verlangsamen. Deswegen kann der Befehl - auch auskommentiert (ein \% davorgeschrieben) werden, wenn eine - "Ubersetzung nicht mit dem Ziel erfolgt, die bibliographischen Daten zu - aktualisieren, sondern anderer "Anderungen wegen erfolgt. Dann bleibt alles - "ubrige gleich, nur wird nicht in das Literaturdaten-File geschrieben. Die - bibliographischen Listen sind lediglich nicht auf dem neuesten Stand, wenn - sie ausgedruckt werden. (F"ur die letzten beiden "Ubersetzungen mu"s der - Befehl \Befehl{makebar}\addtobib{makebar@\protect\Befehl{makebar}} - nat"urlich wirksam sein, also ohne vorangestelltes Kommentarzeichen (\%) - dastehen!) - - Zuletzt noch ein Hinweis auf die M"oglichkeiten von {\tt gbibsort}: - Es versteht in der Kommando-Zeile die Option {\tt -K}, was {\sf author - killing} andeuten soll. Falls ein Autor mehrfach im Literaturverzeichnis - (oder Quellenverzeichnis) erscheint, bewirkt {\tt -K}, da"s Name und - Vorname des Autors nur das erste Mal genannt und danach durch \killname{} - ersetzt werden. Falls das {\sf author killing} benutzt werden soll, gilt: - Die Befehlszeile f"ur die Bearbeitung eines bibliographischen Files zu - einer Datei {\tt text.tex} lautet explizit - \addtobib{gbibsort@{\protect\tt gbibsort}!author killing ({\protect\tt -K})} - - \begin{center}{\tt gbibsort -k text.bar text.phy}\end{center} - - \Punkt{Das Ersetzungszeichen \killname{} wird durch - \Befehl{killname} erzeugt.}\addtobib{killname@\protect\Befehl{killname}} - - \Doppelbox{\Befehl{renewcommand\{}\Befehl{killname\}\{---\}}}{ - "Andert das Ersetzungszeichen in ---.} - \addtobib{killname@\protect\Befehl{killname}} - - \vspace{1ex} - Oft m"ochte man aber geschlechtsspezifische Ersetzungen haben. "Ublich sind - {\tt\femalename} und {\tt\malename}. Unten werden gleich die Befehle - \Befehl{vli}, \Befehl{vqu}, \Befehl{addtovli} und \Befehl{addtovqu} - erkl"art werden. Sie sollen drei Argumente "ubergeben bekommen - (\Befehl{vli\{ARG1\}\{ARG2\}\{ARG3\}}). Das erste soll der Vorname eines - Autors sein. - - \Punkt{Unmittelbar nach dem Vornamen im Voll-Zitat (vor \}) kann - \Befehl{female} oder \Befehl{male} stehen, wenn statt \killname{} - {\tt\femalename} oder {\tt\malename} ausgedruckt werden - soll.}\addtobib{female@\protect\Befehl{female}} - \addtobib{male@\protect\Befehl{male}} - - \Doppelbox{\Befehl{vli\{VORNAME}\Befehl{female\}\{NAME\}\{REST\}}\\ - \Befehl{vli\{VORNAME}\Befehl{male\}\{NAME\}\{REST\}}}{Mehrfachnennungen von - Autoren werden durch \frq{\rm Dies.}\flq{} und \frq{\rm Ders.}\flq{} - ersetzt.} - - \Punkt{{\tt\femalename} und {\tt\malename} werden durch \Befehl{femalename} - und \Befehl{malename} definiert:} - \addtobib{femalename@\protect\Befehl{femalename}} - \addtobib{malename@\protect\Befehl{malename}} - - \Doppelbox{\Befehl{renewcommand\{}\Befehl{malename\}\{Derselbe\}}}{ - "Andert \frq{\rm\malename}\flq{} in \frq{\rm - Derselbe}\flq.} - - \vspace{1ex}\noindent - Zuletzt k"onnen noch F"alle auftreten, die eine "Anderung der - Sortier-Reihen\-fol\-ge der Literaturliste oder des Quellenverzeichnisses - erstrebenswert erscheinen lassen. Dies wird mittels eines Eintrags von - \Befehl{sort} in eines der drei Argumente von \Befehl{vli}, \Befehl{vqu}, - \Befehl{addtovli} oder \Befehl{addtovqu} erreicht. \Befehl{sort\{ARG\}} - wird wie {\tt ARG} sortiert, aber nichts ausgedruckt. - - \Punkt{Ein f"ur {\tt gbibsort} sortier-relevantes, aber nicht - auszudruckendes Wort ist das Argument von \Befehl{sort}: - \addtobib{sort@\protect\Befehl{sort}}} - - \Doppelbox{\Befehl{sort\{RELEVANT\}}}{Greift in die Reihenfolge im - Literatur- oder Quellen-Verzeichnis - ein. Es wird wie {\tt RELEVANT} - sortiert, {\tt RELEVANT} wird aber - nicht ausgedruckt.} - - \vspace{1ex}\noindent - Unter den beiden n"achsten "Uberschriften werden das Literaturverzeichnis - und das Quellenverzeichnis vorgestellt, wie sie mit \bibarts{} erzeugt - werden k"onnen. - - - \subsubsection{Die Literaturangaben} - - Literaturangaben der nachfolgenden Art sind in allen - geisteswissenschaftlichen Disziplinen und auch weit dar"uber hinaus - "ublich. - - \Punkt{Der Befehl \Befehl{vli} druckt die drei ihm "ubergebenen Argumente - an dem Ort aus, an dem \Befehl{vli} steht, und "ubergibt diese Argumente - auch dem Literaturdaten-File. \Befehl{vli} steht f"ur \underline{v}olle - \underline{Li}teraturangabe.} - \addtobib{vli@\protect\Befehl{vli}} - - \Doppelbox{\Befehl{vli\{VORNAME\}\{NAME\}\{REST\}}}{{\rm VORNAME, - \underline{NAME}: REST\/} wird \\ausgedruckt.\\ - {\rm \underline{NAME}, VORNAME: REST\/} wird im\\ - Literaturverzeichnis ausgedruckt.} - - \vspace{1ex} - Der Befehl \Befehl{vli} setzt sich aus den beiden Teilbefehlen - \Befehl{printonlyvli} und - \Befehl{addtovli}\addtobib{addtovli@\protect\Befehl{addtovli}} zusammen, - die auch statt \Befehl{vli} einzeln verwendet werden k"onnen, falls - Unterschiede zwischen den Angaben in Fu"snoten und dem Quellenverzeichnis - erw"unscht sind. Ein m"oglicher Unterschied ist, da"s der Titel einer - Reihe, in der ein Buchtitel erschienen ist, im Literaturverzeichnis - angegeben werden soll, nicht aber in der Fu"snote. Dann ist REST in - beiden F"allen unterschiedlich. - - \Punkt{Der Befehl \Befehl{printonlyvli} druckt die drei ihm "ubergebenen - Argumente wie \Befehl{vli} an dem Ort aus, an dem der Befehl - \Befehl{printonlyvli} steht. Es erfolgt aber keine Wiedergabe im - Literaturverzeichnis.}\addtobib{printonlyvli@\protect\Befehl{printonlyvli}} - - \Doppelbox{\Befehl{printonlyvli\{VORNAME\}\{NAME\}\{REST\}}}{{\rm VORNAME, - \underline{NAME}: REST\/} wird\\ - ausgedruckt.\\ Es erfolgt kein Eintrag - ins\\ Literaturverzeichnis.} - \addtobib{printonlyvli@\protect\Befehl{printonlyvli}} - - \Punkt{Auf den Befehl \Befehl{addtovli} hin erfolgt lediglich ein Eintrag - ins Literaturverzeichnis.}\addtobib{addtovli@\protect\Befehl{addtovli}} - - \Doppelbox{\Befehl{addtovli\{VORNAME\}\{NAME\}\{REST\}}}{{\rm\underline{NAME}, - VORNAME: REST\/} wird dem\\ - Literaturdaten-File "ubergeben.\\ Es erfolgt - kein Ausdruck am Ort des\\ Befehls.} - \addtobib{addtovli@\protect\Befehl{addtovli}} - - \Punkt{Jetzt mu"s das Literaturverzeichnis noch ausgedruckt werden. Die - schon beschriebene Prozedur mu"s zuvor noch durchlaufen werden, um aus der - Datei {\tt FILE.bar} eine alphabetisch sortierte Datei {\tt FILE.phy} zu - erzeugen. Dann kann mittels des Befehls \Befehl{printvli} das - Literaturverzeichnis ausgedruckt werden. Unmittelbar vor - \Befehl{printvli} kann der Anwender, wenn er m"ochte, einen - Gliederungsbefehl seiner Wahl setzen. M"oglich ist:} - - \Doppelbox{\Befehl{section\{Literaturverzeichnis\}}\\ - \Befehl{printvli}}{Druckt die Literaturliste unter der - "Uberschrift \frq Literaturverzeichnis\flq{} aus.} - - \Punkt{Die Befehle \Befehl{vli} und - \Befehl{addtovli}\addtobib{addtovli@\protect\Befehl{addtovli}} notieren in - das Bib\-lio\-gra\-phie-File auch Informationen "uber den Ort, an dem - sie stehen: Die Seitenzahl, weiter auch, ob sie in einer Fu"snote stehen - --- und wenn ja: die Nummer der Fu"snote. So gibt es noch einen zweiten - Befehl, um das Literaturverzeichnis ausdrucken zu k"onnen. Der Befehl - hei"st \Befehl{printnumvli} und unterscheidet sich von \Befehl{printvli} - dadurch, da"s hinter jedem Zugang die Seitenzahl steht, auf der der - Zugang stattfand. Falls der Zugang in einer Fu"snote erfolgte, wird die - Nummer der Fu"snote als Exponent zur Seitenzahl ausgedruckt. Die - Gliederungs"uberschrift zu setzen ist wieder Sache des Anwenders --- - Beispiel: eine \Befehl{subsection}.} - - \Doppelbox{\Befehl{subsection\{Literaturverzeichnis\}}\\ - \Befehl{printnumvli}}{Druckt Literaturliste aus, derart, da"s - auf den Ort zur"uckverwiesen wird, an - dem das Erstzitat steht.} - - \vspace{1ex}\noindent - Nat"urlich kann \Befehl{printnumvli} auch w"ahrend der Entstehung - eines Textes verwendet werden, um bei Korrekturen, die an der - Literaturliste ansetzen, schneller in den Text zur"uckzufinden. Vor der - letzten "Ubersetzung mit \LaTeX{} kann dieser Befehl dann durch - \Befehl{printvli} ersetzt werden, falls die R"uckverweise nicht - erw"unscht sind. - - - \subsubsection{Die Quellenangaben} - - In der Geschichtswissenschaft ist es dar"uberhinaus "ublich, zwischen - Literatur und Quellen zu trennen. Die bibliographischen Angaben - unterscheiden sich zwar nicht qualitativ voneinander, jedoch sollen zwei - bibliographische Listen angefertigt werden: Ein Quellenverzeichnis und ein - Literaturverzeichnis. (Quellen sind Schriften aus der Zeit, "uber die - geschrieben wird, w"ahrend mit Literatur sp"ater verfa"ste Titel - bezeichnet werden, die die behandelte Epoche anhand der Quellen - beschreiben.) Auch hierf"ur h"alt \bibarts{} eine Option offen. - - \Punkt{Der Befehl \Befehl{vqu} druckt die drei ihm "ubergebenen Argumente - sowohl an dem Ort aus, an dem \Befehl{vqu} steht, als auch in das - Quellen-Verzeichnis. \Befehl{vqu} steht f"ur \underline{v}olle - \underline{Qu}ellenangabe.}\addtobib{vqu@\protect\Befehl{vqu}} - - \vspace{-1ex} - \Doppelbox{\Befehl{vqu\{VORNAME\}\{NAME\}\{REST\}}}{{\rm VORNAME, - \underline{NAME}: REST\/} wird \\ausgedruckt.\\ - {\rm\underline{NAME}, VORNAME: REST\/} wird im\\ - Quellenverzeichnis ausgedruckt.} - - \vspace{2ex} - Der Befehl \Befehl{vqu}\addtobib{vqu@\protect\Befehl{vqu}} setzt sich aus - den beiden Teilbefehlen \Befehl{printonlyvqu} und - \Befehl{addtovqu}\addtobib{addtovqu@\protect\Befehl{addtovqu}} zusammen, - die auch statt \Befehl{vqu}\addtobib{vqu@\protect\Befehl{vqu}} einzeln - verwendet werden k"onnen, falls Unterschiede zwischen den Angaben in - Fu"snoten und dem Quellenverzeichnis erw"unscht sind. Ein m"oglicher - Unterschied ist, da"s der Titel einer Reihe, in der die Quellenedition - erschienen ist, im Quellenverzeichnis angegeben werden soll, nicht aber - in der Fu"snote. Dann ist REST in beiden F"allen unterschiedlich. - - \Punkt{Der Befehl \Befehl{printonlyvqu} druckt die drei ihm "ubergebenen - Argumente an dem Ort aus, an dem der Befehl \Befehl{printonlyvqu} steht. - Es erfolgt aber keine Wiedergabe im - Quellenverzeichnis.}\addtobib{printonlyvqu@\protect\Befehl{printonlyvqu}} - - \Doppelbox{\Befehl{printonlyvqu\{VORNAME\}\{NAME\}\{REST\}}}{{\rm VORNAME, - \underline{NAME}: REST\/} wird - \\ausgedruckt.\\ Es erfolgt kein Eintrag - ins \\ Quellenverzeichnis.} - \addtobib{printonlyvqu@\protect\Befehl{printonlyvqu}} - - \Punkt{Auf den Befehl \Befehl{addtovqu} hin erfolgt lediglich ein Eintrag - in das Quellenverzeichnis.}\addtobib{addtovqu@\protect\Befehl{addtovqu}} - - \Doppelbox{\Befehl{addtovqu\{VORNAME\}\{NAME\}\{REST\}}}{{\rm - \underline{NAME}, VORNAME: REST\/} wird - im\\ Quellenverzeichnis ausgedruckt.\\ Es - erfolgt kein Ausdruck am Ort des\\ - Befehls.} - \addtobib{addtovqu@\protect\Befehl{addtovqu}} - - \Punkt{Jetzt mu"s das Quellenverzeichnis noch tats"achlich ausgedruckt - werden. Die schon beschriebene Prozedur mu"s durchlaufen werden, um aus - der Datei {\tt FILE.bar} eine alphabetisch sortierte Datei {\tt FILE.phy} - zu erzeugen. Die Daten f"ur die Literaturliste und das - Quellenverzeichnis entstammen der selben Datei. Aus ihr drucken die - Befehle \Befehl{printvli}, \Befehl{printnumvli}, \Befehl{printvqu} und - \Befehl{printnumvqu} selektiv spezifische Daten aus. Mit dem Befehl - \Befehl{printvqu} kann das Quellenverzeichnis ausgedruckt werden. - Unmittelbar vor den Befehl \Befehl{printvqu} kann der Anwender, wenn er - m"ochte, einen Gliederungsbefehl seiner Wahl setzen. M"oglich ist:} - - \Doppelbox{\Befehl{section\{Quellenverzeichnis\}}\\ - \Befehl{printvqu}}{Druckt das Quellenverzeichnis unter der - "Uberschrift \frq Quellenverzeichnis\flq{} aus.} - - \Punkt{Die Befehle \Befehl{vqu}\addtobib{vqu@\protect\Befehl{vqu}} und - \Befehl{addtovqu}\addtobib{addtovqu@\protect\Befehl{addtovqu}} notieren in - das Bib\-lio\-gra\-phie-File auch Informationen "uber den Ort, an dem - sie stehen: Die Seitenzahl, dann: ob sie in einer Fu"snote stehen --- - und wenn ja: die Nummer der Fu"snote. So gibt es noch einen zweiten - Befehl, um das Quellenverzeichnis ausdrucken zu k"onnen. Der Befehl - hei"st \Befehl{printnumvqu} und unterscheidet sich von \Befehl{printvqu} - dadurch, da"s hinter jedem Eintrag die Seitenzahl steht, auf der der - Zugang stattfand. Falls der Zugang in einer Fu"snote erfolgte, wird die - Nummer der Fu"snote als Exponent zur Seitenzahl ausgedruckt. Als - Gliederungs"uberschrift wurde eine \Befehl{subsection} gew"ahlt.} - - \Doppelbox{\Befehl{subsection\{Quellenverzeichnis\}}\\ - \Befehl{printnumvqu}}{Druckt Quellenverzeichnis aus, derart, - da"s auf den Ort zur"uckverwiesen - wird, an dem das Erstzitat steht.} - - - \subsubsection{Das Kurzzitate-Verzeichnis} - - \Punkt{"Ahnlich den Befehlen \Befehl{index} oder \Befehl{glossary} stellt - \bibarts{} den Befehl \Befehl{bib} zur Verf"ugung. Als Argument mu"s diesem - Befehl ein Stichwort "ubergeben werden. {\tt STICHWORT} kann speziell ein - Kurz-Zitat (Marx, Kapital) sein; das Schriftwerk, auf das sich {\tt - STICHWORT} bezieht, soll vorher schon vollst"andig zitiert worden sein. - Ein Kurz-Zitat besteht aus dem Namen des Autors und (durch Komma - getrennt) einem oder wenigen signifikanten Worten aus dem Titel, die eine - eindeutige Feststellung der vollst"andigen bibliographischen Daten anhand - des Literatur- oder Quellen-Verzeichnisses m"oglich machen. Gegen"uber - dem \LaTeX-Befehl \Befehl{index} wird das Argument von \Befehl{bib} - erweitert indexiert: Hier verweisen die Stichworte n"amlich nicht nur auf - die Seite, sondern auch auf die Nummer der Fu"snote zur"uck, falls der - Befehl in einer Fu"snote steht. Diese Informationen gehen ebenfalls in - das {\tt FILE.bar}. Auch wenn die zuvor vorgestellten Befehle zum - Erzeugen einer Literaturliste oder eines Quellenverzeichnisses nicht - benutzt werden, so mu"s das {\tt FILE.bar} dennoch durch den schon - beschriebenen Befehl - \Befehl{makebar}\addtobib{makebar@\protect\Befehl{makebar}} - bereitgestellt werden.} - - \nopagebreak - \Doppelbox{\Befehl{bib\{STICHWORT\}}}{Stellt einen Eintrag f"ur das - Stichwort-Verzeichnis zur Verf"ugung. - Der Befehl druckt STICHWORT aus.} - - \Punkt{Falls STICHWORT nur im Index erscheinen soll, steht neu der Befehl - \Befehl{addtobib} zur Verf"ugung.} - - \Doppelbox{\Befehl{addtobib\{STICHWORT\}}}{Stellt einen Eintrag f"ur das - Stichwort-Verzeichnis zur Verf"ugung. - Der Befehl druckt nichts aus an - dem Ort, an dem er steht.} - - \vspace{1ex} - Das mittels des Befehls \Befehl{bib} gef"utterte {\tt FILE.bar} mu"s mit - dem Programm {\sc MakeIndex} bearbeitet werden. Zug"ange der Befehle, die - zum Erzeugen der Literatur- und Quellen-Verzeichnisse ebenfalls vorhanden - sein m"ogen, wird der Stichwortprozessor {\sc MakeIndex} als fehlerhaft - einstufen und nicht verwenden. Das ist so erw"unscht. Um eine Datei {\tt - FILE.bar} zu bearbeiten, mu"s unter DOS - - \vspace{-1ex} - \begin{center}{\tt makeindx FILE.bar}\end{center} - - \vspace{-1ex} - \noindent befohlen werden. Unter UNIX lautet der Aufruf - - \vspace{-1ex} - \begin{center}{\tt makeindex FILE.bar}\end{center} - - \vspace{-1ex} - F"ur deutsche Texte mu"s die Option {\tt -g} "ubergeben werden, um die - Sortierreihenfolge auf \underline{g}erman umzuschalten. Das gen"ugt aber - noch nicht: In Grundeinstellung ist \verb|"| das \bib{Maskierungszeichen} - von {\sc MakeIndex}. Maskierungszeichen dienen dazu, \verb+!+, \verb+|+ - und \verb+@+ via \verb+"!+, \verb+"|+ und \verb+"@+ ausdrucken lassen zu - k"onnen. Unmaskiert stellen sie Befehle dar, die das Verhalten von {\sc - MakeIndex} steuern. \verb+"+ wird aber f"ur die deutschen Umlaute - gebraucht, wie mit {\tt german.sty} definiert. Um das Maskierungszeichen - zu "andern, mu"s ein Index-Style-File nach der Option {\tt -s} in der - Befehlszeile stehen. In diesem Index-Style-File kann eine Zeile - - \begin{center}{\tt quote '='}\end{center} - - \noindent - das \bib{Maskierungszeichen} in {\tt =} umbenennen. Erst dann wird die - Option {\tt -g} akzeptiert. Dazu wurde zu \bibarts{} die Datei {\tt - gbibarts.ist} beigef"ugt. Der restliche Inhalt dieser Datei ist - sprachunabh"angig f"ur \bibarts{} notwendig. (In \Befehl{bib} ist \verb+|+ - \addtobib{MakeIndex@{\protect\sc MakeIndex}!\protect\senkrecht} "ubrigens~ - i~m~m~e~r~ schon besetzt!\footnote{Ebenso steht {\tt !}, das in - \Befehl{index} zweimal gebraucht werden darf, in \Befehl{bib} nur einmal - zur Verf"ugung, wenn {\tt chapter}-"Uberschriften, und garnicht, wenn - dar"uber hinaus {\tt part}-"Uberschriften benutzt werden. In {\tt - bibarts.tex} sind also zwei {\tt !} erlaubt. - \addtobib{MakeIndex@{\protect\sc MakeIndex}!\protect\Ausrufezeichen} - (Bedeutung von {\tt !} in Anm.\,\ref{elf}).\label{zehn}}) --- Unter DOS - lautet die Befehlszeile des bei der Bearbeitung von {\tt bibarts.tex} - erzeugten Files {\tt gbibarts.bar} also: - - \begin{center}{\tt makeindx -s gbibarts.ist -g bibarts.bar}\end{center} - - \Punkt{{\sc MakeIndex} fertigt eine Index-Datei {\tt FILE.ind} an. Der - Befehl \Befehl{printind} druckt diese Datei zweispaltig unter der - "Uberschrift Index aus. Der Ausdruck unterscheidet sich vom - normalen \LaTeX-Index: An die Seitenzahlen ist als Exponent die Nummer der - Fu"snote hinzugedruckt, falls der Zugang in einer Fu"snote erfolgte.} - - \Doppelbox{\Befehl{printind}}{Druckt das mit \Befehl{bib} gef"utterte - Stichwortverzeichnis.} - - \Punkt{Falls jedes Zitat in das Kurzzitate-Verzeichnis aufgenommen werden - soll, ist es sinnvoll, neben \Befehl{bib} einen Befehl zu besitzen, der - (1)~innerhalb von \Befehl{vli} oder \Befehl{vqu} im voraus ank"undigt, - wie der Titel kurzzitiert wird, (2)~gleich einen Eintrag ins - Kurzzitate-Verzeichnis macht und (3)~hinter dem Eintrag auf der - Literatur- oder Quellen-Liste in eckigen Klammern ausdruckt, wie - kurz-zitiert wurde.} - - \vspace{-1ex} - \Doppelbox{\Befehl{kurz\{STICHWORT\}}}{Stellt einen Eintrag f"ur das - Stichwort-Verzeichnis zur Verf"ugung. - Der Befehl druckt {\rm (im folgenden - STICHWORT)\/} aus. Falls \Befehl{kurz} - am Ende des dritten Arguments von - \Befehl{vli}, \Befehl{vqu}, - \Befehl{addtovli} oder \Befehl{addtovqu} - steht, wird \\ - {\rm [STICHWORT]\/} am Ende des - Eintrags auf der bibliographischen - Liste stehen.} - \addtobib{kurz@\protect\Befehl{kurz}} - - \vspace{1ex} - Erg"anzen m"ochte ich noch, da"s der Befehl \Befehl{subitem} in den - {\tt FILEs.ind} stehen wird, die von {\sc MakeIndex} erzeugt werden, - nachdem die Gliederungs-"Uberschrift \Befehl{chapter} zum ersten Mal - verwendet wurde und dar"uber hinaus auch \Befehl{subsubitem}, falls - \Befehl{part} verwendet wurde. Sie entsprechen Unter-Stichworten. Mit - Befehlen der Art - \Befehl{renewcommand\{\Befehl{subitem}\}\{\Befehl{hspace\{.3em\}}\}} kann - erzwungen werden, da"s Text nach dem Index-Haupteintrag der Reihe nach - heruntergeschrieben wird. Zur Sicherheit sollte auf den {\sc - MakeIndex}-Befehl {\tt !}, der Stichwort und Unterstichwort trennt, im - Argument von \Befehl{bib} verzichtet werden.\footnote{Zur Erzeugung von - \Befehl{subitem}s verwendet \bibarts{} Ausrufezeichen, die f"ur {\sc - MakeIndex} Befehlscharakter haben. Wenn z.B. - \Befehl{index\{Maier!Arbeit\}} und \Befehl{index\{Maier!Recht\}} - geschrieben wird, gibt es die beiden Unter-Eintr"age Arbeit und Recht - unter dem Haupteintrag Maier. Maximal zwei~{\tt !}~k"onnen verwendet - werden. Damit scheidet die beschriebene Untergliederung mit \Befehl{bib} - aus, wenn \Befehl{part}-"Uberschriften verwendet werden. (Siehe auch - Anm.\,\ref{zehn}.)\label{elf}\addtobib{MakeIndex@{\protect\sc - MakeIndex}!\protect\Ausrufezeichen}} - - - \subsection{Die Verweise} - - Was in diesem Unterabschnitt zu Sprache kommt, hat nichts mit dem - Bib\-lio\-gra\-phie-File zu tun. "`Verweis"' wird hier eine zweite - Zitier-Konvention genannt, die manche Verlage f"ur Aufs"atze verwenden. - Hier werden ebenso wie zuvor anl"a"slich des Erstzitats vollst"andige - bibliographische Angaben gemacht. Wird auf einen Titel ein zweites Mal - eingegangen, wird dieser ebenfalls kurz-zitiert, aber dahinter kommt ein - Verweis auf die vollst"andige erste Angabe. Zu solchen Aufs"atzen - geh"oren keine bibliographischen Listen. - - \Punkt{Nach jedem Erstzitat kann \Befehl{bibmark\{MARKE\}} dazu verwendet - werden, eine Marke zu erzeugen. Im Unterschied zu dem \LaTeX-Befehl - \Befehl{label} wird aber ausgedruckt, wie k"unftig kurzzitiert wird. - {\tt MARKE} und Kurzzitat sind identisch.} - \addtobib{bibmark@\protect\Befehl{bibmark}} - - \Doppelbox{\Befehl{bibmark\{MARKE\}}}{Setzt die Referenz {\tt MARKE} und - druckt aus: {\rm im folgenden - MARKE\/}} - \addtobib{bibmark@\protect\Befehl{bibmark}} - - \Punkt{Mit dem Befehl \Befehl{bibref\{MARKE\}} - \addtobib{bibref@\protect\Befehl{bibref}} kann man sich dann Seitenzahl - und Fu"snotennummer in einer "ubliche Konstruktion zur"uckgeben lassen.} - - \Doppelbox{\Befehl{bibref\{MARKE\}}}{Druckt in Fu"snote aus:\\ - {\rm MARKE (wie Anm.~XX, S.~YY)\/},\\ - ansonsten:\\ - {\rm MARKE (siehe S.~YY)\/}. - } - \addtobib{bibref@\protect\Befehl{bibref}} - - \vspace{1ex} - {\tt MARKE} kann dabei ohne weiteres ein Kurz-Zitat in der Art {\tt Marx, - Kapital} sein. Auch \verb!B"ulow! funktioniert als Marke, denn Umlaute, "s, - Akut, Zirkumflex und Gravis sind in einer Struktur namens - \Befehl{@markprotect} gesch"utzt. Bei hier nicht gesch"utzten Befehlen - m"ussen auszudruckender {\tt TEXT} und Schl"usselbegriff {\tt MARKE} - voneinander getrennt werden. - - \Punkt{Der Befehl \Befehl{xbibmark\{TEXT\}\{MARKE\}} setzt die {\tt MARKE} - und druckt den {\tt TEXT} aus.} - \addtobib{bibmark@\protect\Befehl{bibmark}} - \addtobib{xbibmark@\protect\Befehl{xbibmark}} - - \Doppelbox{\Befehl{xbibmark\{TEXT\}\{MARKE\}}}{Setzt die Referenz {\tt - MARKE} und druckt aus: {\rm - im folgenden TEXT\/}.} - \addtobib{xbibmark@\protect\Befehl{xbibmark}} - - \Punkt{Mit dem Befehl \Befehl{xbibref\{TEXT\}\{MARKE\}} - \addtobib{xbibref@\protect\Befehl{xbibref}} kann man sich dann Seitenzahl - und Fu"snotennummer von {\tt MARKE} zur"uckgeben lassen.} - - \Doppelbox{\Befehl{xbibref\{TEXT\}\{MARKE\}}}{Druckt in Fu"snote aus:\\ - {\rm TEXT (wie Anm.~XX, S.~YY)\/},\\ - ansonsten:\\ - {\rm TEXT (siehe S.~YY)\/}. - } - \addtobib{xbibref@\protect\Befehl{xbibref}} - - \vspace{1ex}\noindent - Alle vier zuletzt angesprochenen Befehle \Befehl{bibmark}-\Befehl{bibref} - und \Befehl{xbibmark}-\Befehl{xbibref} sollen paarweise entweder beide - in Fu"snoten ober au"serhalb von Fu"snoten stehen. F"ur die - Verweis-Schl"usselbegriffe MARKE aller vier Befehle ist das Makro - \Befehl{@markprotect} zust"andig. Die \Befehl{x...}-Befehle sind - eigentlich nichtmehr unbedingt notwendig, denn mit \Befehl{@markprotect} - kann eine unliebsame Expansion von Befehls-Makros durch eine an dieser - Stelle erw"unschte Expansion ausgetauscht werden. Haupts"achlich aus - Gr"unden der Kompatibilit"at mit "alteren \bibarts-Versionen sind die - \Befehl{x...}-Befehle erhalten geblieben. - - \vfill - \noindent\hrulefill - - \vspace{1ex}\nopagebreak\noindent - Auf der n"achsten Seite werden Beispiele zu den bibliographischen Listen - folgen. Hierzu ein Hinweis f"ur DOS: {\tt gbibsort.exe} enth"alt einen - \bib{go32}-Extender. Es ist oft notwendig, f"ur diesen ein Verzeichnis - NAME anzulegen, das dessen {\it paging-files} aufnehmen kann (damit wird - der Arbeitsspeicher virtuell vergr"o"sert). Auf dieses Verzeichnis ist - dann mit {\tt set go32tmp=NAME} eine Umgebungsvariable zu setzen. Dieser - Befehl sollte sinnvollerweise in der Datei {\tt autoexec.bat} stehen. - - \nopagebreak\noindent\hrulefill - - \newpage - \section{Beispiele} - - Nat"urlich kann in die formatierte Ausgabe der Literaturangaben - eingegriffen werden. Die Befehle \Befehl{stressing} - \addtobib{stressing@\protect\Befehl{stressing}} und \Befehl{punctuation} - \addtobib{punctuation@\protect\Befehl{punctuation}} definieren die Betonung - des Autoren-Nachnamens und das Satzzeichen, das zwischen dem Autorennamen - und dem REST steht. Dies betrifft einerseits die Befehle \Befehl{vqu}, - \Befehl{addtovqu} und \Befehl{printonlyvqu}, andererseits \Befehl{vli}, - \Befehl{addtovli} und \Befehl{printonlyvli}. Voreinstellung f"ur - \Befehl{stressing} \addtobib{stressing@\protect\Befehl{stressing}} ist {\tt - underline}. - - \Punkt{\Befehl{stressing} \addtobib{stressing@\protect\Befehl{stressing}} - kann im Vorspann und vor jedem Listen-Ausdruckbefehl stehen. Sein Argument - kann z.B. {\tt sc}, {\tt large}, {\tt underline} oder {\tt fbox} - enthalten.} - - \Doppelbox{\Befehl{stressing\{bf\}}}{"Andert die Betonung des Autorennamens - von unterstreichen auf fett (bold face).} - - \Punkt{\Befehl{punctuation} - \addtobib{punctuation@\protect\Befehl{punctuation}} sollte nur im - Vorspann verwendet werden:} - - \Doppelbox{\Befehl{renewcommand\{}\Befehl{punctuation\}\{,\}}}{"Andert den - Doppelpunkt zwischen VORNAME bzw. NAME und REST in Komma.} - - \vspace{1ex}\noindent - Jetzt soll der Weg eines \Befehl{vli}-Befehls verfolgt - werden: - - \Punkt{Hier steht (und man vergleiche dies mit der Fu"snote - unter besonderer Beachtung der {\sf serifen--losen - Schrift}):} - - \refstepcounter{footnote} -\framebox{\begin{minipage}[t]{.9\textwidth} - \framebox{\parbox{.9\textwidth}{ - ... Text.\Befehl{footnote\{ ... mit Bezug auf}\\ - \Befehl{vli\{Helmut\}\{Kopka\}\{\Befehl{LaTeX}\{\} --} - {\tt Eine Einf"uhrung,\\ - \hspace*{1cm}Bonn 1993\},}\\ - \hspace*{1cm}{\tt S. 187 belegen.\}} - }} \vspace{1ex} - \addtobib{vli@\protect\Befehl{vli}} \vspace{2ex} - - \footnotetrue - ... Text.\footnote{ Ich m"ochte meine Aussagen mit Bezug auf - \vli{Helmut}{Kopka}{\LaTeX{} -- Eine Einf"uhrung, Bonn 1993}, - \addtobib{vli@\protect\Befehl{vli}} \footnotefalse - S. 187 belegen. - \begin{center}\thepage\end{center} - } -\end{minipage}} - - \Punkt{Der \Befehl{vli}-Eintrag "uber Kopka kommt ins - Literaturverzeichnis:} - -\framebox{\begin{minipage}[t]{.9\textwidth} - \framebox{\parbox{.9\textwidth}{ - \Befehl{section*\{Literaturverzeichnis\} \Befehl{printvli}} - }} - \section*{Literaturverzeichnis} \printvli -\end{minipage}} - - \Punkt{Im Literaturverzeichnis kann auch auf die Seite zur"uckverwiesen - werden, auf der der Literatur-Zugang mit \Befehl{vli} stattfand:} - -\framebox{\begin{minipage}[t]{.9\textwidth} - \framebox{\parbox{.9\textwidth}{ - \Befehl{section*\{Literaturverzeichnis\} \Befehl{printnumvli}} - }} - \section*{Literaturverzeichnis} \printnumvli -\end{minipage}} - - \vspace{2ex}\noindent - Wie angegeben, l"a"st sich bei Kopkas Buch sowohl Seite, als auch - Fu"snotennummer nachvollziehen. - - \Punkt{Die Angabe zu Norbert Schwarz steht nicht in einer Fu"snote. Hier - steht:} - -\framebox{\begin{minipage}[t]{.9\textwidth} - \framebox{\parbox{.9\textwidth}{ - \Befehl{vli\{Norbert\}\{Schwarz\}\{Einf"uhrung in}\\ - \hspace*{1cm}{\tt\Befehl{protect}\Befehl{TeX}, Bonn - 1988\Befehl{kurz\{Schwarz\}}\}} - \addtobib{vli@\protect\Befehl{vli}} - }}\vspace{2ex} - - \vli{Norbert}{Schwarz}{Einf"uhrung in \protect\TeX, Bonn - 1988\kurz{Schwarz}} - \addtobib{vli@\protect\Befehl{vli}}\addtobib{kurz@\protect\Befehl{kurz}} -\end{minipage}} - - \Punkt{Die Schriftart, in der hier das Erstzitat "`Kopka"' oder - "`Schwarz"' ausgedruckt ist, kann einheitlich von {\sf sans serif} auf - {\it italics\/} umgestellt werden.} - - \Doppelbox{\Befehl{renewcommand\{}\Befehl{schrift\}\{}\Befehl{it\}}}{ - "Andert die Schrift, in der Erstzitate\\ ausgedruckt werden, in {\it - italics\/}.} - - \Punkt{Das Zeichen $\gg$ in den \Befehl{printnum...}-Listen ist durch den - Befehl \Befehl{verw} definiert; es kann beispielsweise so ge"andert - werden:}\addtobib{verw@\protect\Befehl{verw}} - - \addtobib{verw@\protect\Befehl{verw}} - \Doppelbox{\Befehl{renewcommand\{\Befehl{verw}\}\{; Erstzitat:\~{}\}}}{ - "Andert das Zeichen, das vor den\\ Angaben des Zugangsorts steht.} - - \Punkt{Die Schriftart, in der Literaturverzeichnis und Quellenverzeichnis - ausgedruckt werden, hei"st \Befehl{barschrift}. "Anderungsvorschlag:} - - \Doppelbox{\Befehl{renewcommand\{}\Befehl{barschrift\}\{}\Befehl{rm\}}}{ - "Andert die Schrift der bibliographischen Verzeichnisse in {\rm roman}.} - - \Punkt{Die Schriftart, in der das Stichwortverzeichnis ausgedruckt wird, - hei"st \Befehl{indschrift}. "Anderungsvorschlag:} - - \Doppelbox{\Befehl{renewcommand\{}\Befehl{indschrift\}\{}\Befehl{sf}\}}{ - "Andert die Schrift, in der der Index\\ ausgedruckt wird in {\sf sans - serif}.} - - \vspace{1ex} - Jetzt ein Punkt f"ur Fortgeschrittene: Ein noch nicht erw"ahnter Befehl - hei"st \Befehl{Kapitell}. Falls er genutzt wird, soll er im Vorspann - direkt nach \Befehl{makebar} stehen. Er bewirkt, da"s Gro"s-Buchstaben - A bis Z in gro"ser Schrift in das Quellenverzeichnis, das - Literaturverzeichnis und das Kurzzitateverzeichnis (Index, Register) - ausgedruckt werden. Diese Kapitelle stehen leicht abgesetzt am Anfang - jeder Gruppe von Autoren mit einem bestimmten Anfangsbuchstaben. - \Befehl{Kapitell} ist im Vorspann von {\tt bibarts.tex} modifiziert - worden, denn es sollte dazu unter jeden Buchstaben mindestens ein - Zugang mit dem gleichen Anfangsbuchstaben fallen. Das ist im Register - dieses Textes nicht der Fall. Auf Kapitelle in den Beispielen f"ur - Literatur- und Quellenverzeichnis wurde verzichtet. Der Vorspann von {\tt - bibarts.tex} kann als Beispiel f"ur eigene Texte dienen. Notwendig sind - hier die Befehle \Befehl{makeatletter} und \Befehl{makeatother} vor und - nach Befehlen, die {\tt @} enthalten. - - \vspace{1ex} - Alle vorausgegangenen Beispiele betrafen Einstellungen im Umfeld des - bibliographischen Files und die Einstellungen dar"uber, wie in das - bibliographische File schreibende Befehle ihre Argumente an Ort und - Stelle ausdrucken. - - Doch jetzt zur zweiten Zitierkonvention, den R"uck-Verweisen nach - Kurz-Zitaten auf das vollst"andige Erstzitat. (Es ist keine - Literaturliste oder vergleichbares vorgesehen f"ur das Ende eines Textes, - der diesen Teil der \bibarts-Optionen nutzt.) Es folgt eine - \Befehl{bibref}-\Befehl{bibmark}-Kom\-bi\-na\-tion: - \addtobib{bibref@\protect\Befehl{bibref}} - \addtobib{bibmark@\protect\Befehl{bibmark}} - - \vspace{1ex} -\framebox{\begin{minipage}[t]{.9\textwidth} - \framebox{\parbox{.9\textwidth}{\tt - ... Text.\Befehl{footnote\{In dieser Fu"snote sei\\ - \hspace*{1cm}Lecl\Befehl{`e}rc erstzitiert:}\\ - \hspace*{1cm}Fran\Befehl{c}\{c\}ois Lecl\Befehl{`e}rc: Der kalte - Sommerregen,\\ - \hspace*{1cm}Musterland 1899\\ - \hspace*{.5cm}(\Befehl{bibmark\{Lecl}\Befehl{`erc, - Beruf\}).\}}\\ - Nicht in Fu\Befehl{ss}\{\}note:\\ - \hspace*{.72cm}\Befehl{bibref\{Lecl}\Befehl{`e}rc, Beruf\}\\ - ... Text.\Befehl{footnote\{ Wie schon }\\ - \hspace*{.72cm}\Befehl{bibref\{Lecl}\Befehl{`erc, Beruf\} - sagte ... \}} }} \vspace{2ex} - - \refstepcounter{footnote} \footnotetrue - ... Text.\footnote{ In dieser Fu"snote sei Lecl\`erc erstzitiert: - Fran\c{c}ois Lecl\`erc: Der kalte Sommerregen, Musterland 1899 - (\bibmark{Lecl\`erc, Beruf}). } - \addtobib{bibmark@\protect\Befehl{bibmark}} - \footnotefalse - Nicht in Fu\ss{}note: \bibref{Lecl\`erc, Beruf} - \refstepcounter{footnote} \footnotetrue - ... Text.\footnote{ Wie schon - \addtobib{bibref@\protect\Befehl{bibref}} - \bibref{Lecl\`erc, Beruf} sagte ... - \begin{center}\thepage\end{center} - } - \footnotefalse -\end{minipage}} - \addtobib{bibmark@\protect\Befehl{bibmark}} - - \vspace{1cm}\noindent - Auf der nachfolgenden Seite soll als letztes Beispiel mit - \Befehl{printind} der Index ausgedruckt werden. Diese n"achste Seite wird - vollst"andig fehlen, falls kein Index existiert. - DOS: Der Index wird gleich von {\tt gbib209.bat} oder {\tt gbib2e.bat} - miterzeugt durch Eingabe von {\tt gbib2e bibarts}, falls die installierte - \LaTeX-Version 2$\epsilon$ hei"st, oder {\tt gbib209 bibarts}, falls noch - \LaTeX 2.09 verwendet wird. - - \newpage - \printind - - - \section{Grenzen der M"achtigkeit von \bibarts} - - Die Befehle \Befehl{vli} und - \Befehl{vqu},\addtobib{vqu@\protect\Befehl{vqu}} - \Befehl{addtovli}\addtobib{addtovli@\protect\Befehl{addtovli}} und - \Befehl{addtovqu}\addtobib{addtovqu@\protect\Befehl{addtovqu}} sind einer - wichtigen Beschr"ankung unterworfen: Befehle, die in ihren Argumenten - auftauchen, k"onnen "`zerbrechen"', wenn Befehle Makros sind. Nicht der - Befehl selbst wird in das {\tt FILE.bar} geschrieben, sondern die - expandierten Makros. Solche "`zerbrochenen Befehle"' k"onnen beim - "Ubersetzen mit \LaTeX{} oft nicht mehr verstanden, also nicht - ausgedruckt werden. \TeX{} beschwert sich bei solchen Gelegenheiten auch - oftmals dar"uber, da"s seine Kapazit"at "uberschritten sei ("`... - Sorry"'). Wie bei den befehlen \Befehl{index} oder \Befehl{glossary} - auch, mu"s ein solcher Befehl dann durch ein davorgestelltes - \Befehl{protect} gesch"utzt werden. ODER: In {\tt bibarts.sty} wird - dieser Befehl im Makro \Befehl{@sIcHerUnG} --- so wie dort vorgemacht --- - mit \Befehl{string} gesch"utzt. Hier sind bereits die ganzen Umlaute und - viele andere Akzente (wie Akut, Zirkumflex und Gravis) gegen Zerbrechen - gesch"utzt. Ich empfehle allerdings, die Konstruktion - \Befehl{@ifundefined\{newumlaut\}...} unver"andert zu lassen, denn sie - erkennt den wirklich bedeutsamen Unterschied, ob {\tt german.sty} - verwendet wird, oder nicht. (Das Paket {\tt german} mu"s --- wenn es - verwendet wird --- vor {\tt bibarts} eingeladen werden!) - - Ebenfalls eine Sicherungsstruktur wurde f"ur - \Befehl{bibmark}-\Befehl{bibref}-Kom\-bi\-na\-tio\-nen eingef"uhrt. Diese - Befehle nutzen \Befehl{label}, \Befehl{pageref} und \Befehl{ref}, in deren - Argumente keine Befehle stehen d"urfen. Die Sicherung, die hier z.B. - Umlaute m"oglich macht, hei"st \Befehl{@markprotect}. Die hier - bearbeiteten Befehle sind fast die selben, wie auch im Makro - \Befehl{@sIcHerUnG}. Allerdings werden die Befehle hier nicht - schreibgesch"utzt, sondern in \verb!|X|!-Konstruktionen "ubersetzt, wobei - \verb!X! ein f"ur jeden Befehl anderer Buchstabe ist und \verb!|! dazu - dient, da"s Verwechslungsm"oglichkeiten mit anderen Schl"usselbegriffen - minimiert werden. Da das Makro \Befehl{@markprotect} gleicherma"sen in - den Marken, wie in den Referenzen verwendet wird, kann der Anwender - bedenkenlos Befehle in die Marken setzen --- {\it wenn\/} diese Befehle - in \Befehl{@markprotect} zu Buchstaben expandiert werden. Da - \Befehl{underline} und Umlaute derart bearbeitet werden, ist - - \verb!\bibmark{\underline{M"uller}, Hallo}! - - \verb!\bibref{\underline{M"uller}, Hallo}!\\m"oglich. In - \Befehl{@markprotect} k"onnen --- wie dort vorgemacht --- weitere h"aufig - verwendete Befehle zur Verwendung als Verweis-Schl"usselworte - bereitgestellt werden. F"ur seltene Konstruktionen steht - \Befehl{xbibmark}-\Befehl{xbibref} zur Verf"ugung, die {\tt MARKE} und - auszudruckenden {\tt TEXT} trennen. Verweis-Marken ergeben "ubrigens - \Befehl{newlabel}-Eintr"age im Auxiliary-File mit dem Suffix {\tt .aux}. - - Doch zur"uck zur Bearbeitung des bibliographischen Files. Das Programm {\tt - gbibsort} kann so viele Zeilen sortieren, wie in der Gr"o"se {\tt MAXLINES} - in der Datei {\tt gbibsort.c} zum Zeitpunkt der "Ubersetzung von {\tt - gbibsort.c} in eine ausf"uhrbare Datei festgelegt war. Ebenso d"urfen - Zeilen eines zu sortierenden Files nicht l"anger als {\tt MAXLEN} (1024) - sein. L"angere Zeilen sollten gek"urzt werden, indem ein Rest des - Eintrags in eine Datei (mit dem Namen {\tt DATEI-NAME}) verschoben wird; - anstelle des Restes sollte \Befehl{input\{DATEI-NAME\}} eingetragen - werden. Der Befehl \Befehl{input} mu"s in den \Befehl{vli}-, - \Befehl{vqu}-,\addtobib{vqu@\protect\Befehl{vqu}} - \Befehl{addtovli}-,\addtobib{addtovli@\protect\Befehl{addtovli}} - \Befehl{addtovqu}-Befehlen\addtobib{addtovqu@\protect\Befehl{addtovqu}} - durch ein davorgestelltes \Befehl{protect} oder durch Definition - innerhalb des Makros \Befehl{@sIcHerUnG} vor dem "`Zerbrechen"' - gesch"utzt werden. - - Die Kapazit"at des Befehls \Befehl{bib} hat etwas gr"o"sere - Beschr"ankungen, als die anderen \bibarts-Befehle. - - \vspace{-1ex} - \Punkt{Eintr"age im Stichwortverzeichnis werden sicher richtig sortiert, - wenn sie von Seiten mit Seitenzahlen zwischen 1 und 999 stammen. Zwei - \Befehl{bib}-Befehle mit gleichem Argument dagegen werden, wenn auch nur - einer von beiden auf einer Seite mit einer Seitenzahl $<= 0$ oder $>= - 1000$ steht, nur durch Zufall richtig sortiert.} - - \vspace{-3ex} - \Punkt{Folgendes gilt f"ur das Stichwortverzeichnis in Dokumentengr"o"se - {\tt book} und {\tt part}: Die Sortierhilfen f"ur die Z"ahler {\tt part} - und {\tt chapter} reichen von 1 bis 99. Zwei \Befehl{bib}-Eintr"age mit - gleichem Argument aus Teilen oder Kapiteln mit Nummern ab einhundert - werden nur durch Zufall richtig sortiert. Tats"achlich erh"alt man, wenn - Zug"ange aus mehreren Kapiteln und sowohl aus dem Text als auch aus - Fu"snoten kommen, Ausgaben in der Art} - - \vspace{-2ex} - \framebox{\small\begin{minipage}[t]{.9\textwidth} - \vspace*{1ex} - {\rm STICHWORT}:\\ - \hspace*{1cm}{\it Kapitel 1\/}:\\ - \hspace*{2cm}2$^5$, 5$^8$, 1, 4,\\ - \hspace*{1cm}{\it Kapitel 3\/}:\\ - \hspace*{2cm}23$^5$, 31$^{18}$, 24, 25, - \vspace{1ex} - \end{minipage} - } - - \vspace{2ex} - Zuerst werden kapitelweise alle Zug"ange aus Fu"snoten ausgedruckt und - danach die anderen Zug"ange aus dem jeweiligen Kapitel. - - \vspace{-1ex} - \Punkt{\Befehl{bib} kann nur verwendet werden, wenn ein - \underline{I}ndex-\underline{St}yle-File in der Art von {\tt gbibarts.ist} - verwendet wird. {\tt gbibarts.ist} mu"s neben Sprachspezifika wie {\tt - quote~'='} folgende Zeilen enthalten:} - - \vspace{-3ex} - \begin{verbatim} - delim_0 " " - delim_1 " " - delim_2 " " - delim_n "\\komma " - delim_t " " - \end{verbatim} - - \vspace{-3ex} - \noindent - Solche {\tt STYLE}s werden durch Aufrufe der Art - - \vspace{-1ex} - \begin{center}{\tt makeind(e)x\/ -s\/ STYLE\, FILE}\end{center} - - \vspace{-1ex} - \noindent - bei der Bearbeitung der Datei {\tt FILE} ber"ucksichtigt. - - Der \bibarts-Index verweist zur"uck auf Stellen im Text. Falls der - Index-Zugang \Befehl{bib\{STICHWORT\}} in den Fu"snoten 1, 2 und 3 auf - einer Seite 12 steht, erscheint ein Eintrag {\sf STICHWORT~12$^{1-3}$\/}, - wenn der Index mit \Befehl{printind} ausgedruckt wird. Zusammenfassungen - der Art {\tt 1-3} werden nicht erzeugt, falls \Befehl{bib} oder - \Befehl{addtobib} au"serhalb von Fu"snoten (im normalen Text) verwendet - werden. Falls Zug"ange von den Seiten 1, 2 und 3 kommen, wird {\tt 1}, {\tt - 2}, {\tt 3} dastehen. Es kann daher oft sinnvoll sein, sich auf dem - herk"ommlichen Weg via \Befehl{index\{STICHWORT\}} einen seperaten Index - f"ur Verweise in den Haupt-Text zu machen. Der \bibarts-Index ist insofern - eine gute Grundlage f"ur ein Personenregister, das "ublicherweise von - anderen Registern getrennt wird, die mit den \LaTeX-Befehlen \Befehl{index} - und \Befehl{glossary} erzeugt werden k"onnen. Die Mehrfachausgabe einer - Seitenzahl im \bibarts-Kurzzitate-Index wird immerhin unterdr"uckt, falls - von einer Seite mehrere gleiche Index-Zug"ange kommen. Dies funktioniert - auch dann, falls die Seitennummerierung mittels - \Befehl{pagenumbering\{roman\}} auf kleine r"omische Zahlen umgestellt - wird. \Befehl{pagenumbering\{Roman\}} funktioniert nicht. - - Eine wirklich elegante L"osung dieser Probleme wird erst eine Erweiterung - des Programms {\sc MakeIndex} bringen, das dann nach mehreren Zahlen --- - neben einem Eintrag des Z"ahlers {\tt page} zumindest noch nach dem des - Z"ahlers {\tt footnote} --- sortieren k"onnen mu"s. - - \def\abstractname{Message} - - \vspace{3ex} - \noindent\hrulefill - - \begin{abstract} - Die Idee von \bibarts{} ist, die bibliographischen Angaben an einer - zentralen Stelle {\it im Text\/} zu machen, und diese Informationen unter - m"oglichst wenig Hinzutun des Anwenders an allen notwendigen Stellen - ausgedruckt zu bekommen. So erh"alt man um den Preis des Markierens von - Erstzitaten eine fertige Literaturliste. Sie erscheint an der Stelle, an - der der Ausdruckbefehl plaziert wird. Jede und jeder, die oder der schon - einmal tagelang am Erstellen einer Literaturliste sa"s, wird sofort die - Arbeitsersparnis einsehen: Das Durchsuchen der Fu"snoten nach Erstzitaten - entf"allt vollst"andig. Dieses "`Definieren an zentraler Stelle"' greift - eigentlich eine Idee des Programmierens auf. Dort gilt es als guter Stil, - mehrfach verwendete Gr"o"sen, die jeweils gleich sein sollen, einmal und - endg"ultig an einer Stelle festzulegen. "Anderungen des Programmtextes - lassen sich so besser beherrschen. Soll diese Idee auf das Schreiben von - Texten "uber\-tragen werden, stellt sich die Frage, an welcher Stelle - solche Definitionen sinnvollerweise zu machen sind. +\noindent +... zur Nachvollziehbarkeit als \hspace{.1em} +{\small\verb|%%| \textit{Kommentar}\verb| %%|} +\hspace{.1em} ins \verb|.aux|\hy File "ubertragen: + +\vspace{-.5ex} +{\footnotesize\begin{verbatim} + %\archqentry{BA Zwischenarchiv Dahlwitz-""Hoppegarten + R\,8729~4}{}{{}{}{}{}}{{36}{101}{@}}[13][43](line 2726) + %% (mpf) Gesellschaftsvertrag der KCAG %% +\end{verbatim}} + +\vspace{-.5ex}\noindent +Die Eintr"age {\small\verb|(f)|} bzw.\ {\small\verb|(mpf)|} +dokumentieren, ob der Zugang aus einer normalen oder +\verb|minipage|\hy Fu"snote herstammt (oder leer: nicht aus +einer Fu"snote). + +\vspace{1ex}\noindent +Im \verb|.arq|\hy File erscheinen die gesammelten BA\hy Eintr"age +nach ihrer "Uberschrift: + +\vspace{-.5ex} +{\scriptsize\begin{verbatim} + \archqentry{BA}{Bundesarchiv}{{\pbastrut \ \balistcorr + $-$ }{\bahasdot }{1}{}}{{}{}{-}}[13][43](line 2666) + %% <- List-internal heading (class 1). + + \archqentry{BA Zwischenarchiv Dahlwitz-""Hoppegarten + R\,8729~4}{}{{}{}{}{}}{{36}{}{}}[13][43](line 2782) %% %% + \first@baidx{36, 36$^{101}$, 47, 52$^{110}$} +\end{verbatim}} + +\vspace{-.5ex}\noindent +Dabei ist die Notation ...~\verb|R\,8729~4}| ein Beispiel, wie eine +einzelne Band\hy\ oder Mappennummer $-$\,4\,$-$ alternativ in die Hauptsignatur und damit +direkt ins Verzeichnis ungedruckter Quellen aufgenommen werden kann. + +\vspace{1ex}\noindent +Falls Sie nur darauf hinweisen wollen, dass es einen Bestand oder +eine Akte gibt (also kein Schriftst"uck daraus zitieren), +kann das erste Argument der arq-Befehle auch einfach leer bleiben +(vgl.\ den Kommentar im \verb|.arq|-File oben): + +\Doppelbox +{ +In \bs arq\{\}\{BA Zwischenarchiv +\\ \ \ \ \ \ \ Dahlwitz-\string"\string"Hoppegarten +\\ \ \ \ \ \ \ R\bs ,8729\string~4\} findet sich ... +} +{ +In \arq{}{BA Zwischenarchiv +Dahlwitz-""Hoppegarten +R\,8729~4} findet sich ... +} + +\vfill\noindent +{\sffamily Zur Schrifteinstellung mit }\verb|\arqemph|{\sffamily\ +und }\verb|\arqlistemph|{\sffamily\ unten S.\,\pageref{arqemph1} und \pageref{arqemph2}. \\ +Und S.\,\pageref{Gedankenstriche} wird erkl"art, wie die +fill\hy\ und section\hy Separatoren einzustellen sind.} + + +\newpage +\section{Orts\fhy, Sach\hy\ und Personenregister}\label{Sect8} + +\BibArts\ stellt drei Register zur Verf"ugung. Dies hat \textbf{nichts} +mit \textsc{MakeIndex}\pdfko{1}\ +zu tun. \verb|bibsort| nutzt die gezeigte F"ahigkeit, +auch die Fu"snotennummern zu verarbeiten. Bef"ullt werden die Register mit den Argumenten von +\verb|\addtogrr|\pdfko{1.25}\ +(Ortsregister), \verb|\addtosrr| (Sachregister) und \verb|\addtoprr| +(Personenregister).\pdfko{.75}\ +Ein vielfach verwendetes Stichwort \textit{kann} zudem mittels fill\hy +Befehl einen ausf"uhr"-lich{\small(}\hspace{-.05em}er\hspace{-.05em}{\small)}en +Zusatz erhalten, der nur einmal getippt zu werden braucht. +fill\hy Befehle haben ein benutztes addto\hy Stichwort als +erstes und eine Erg"anzung dazu als zweites Argument. +Alle diese Befehle sind im Text unsichtbar: + +\Doppelbox +{ +\bs fillgrr\{Rom\}\{Stadt in Italien\} +\\[0.4ex] Hier geht es ums Ortsregister (Geografie).\bs footnote\b{\{}Rom +\\[0.1ex] \ \bs \underbar{addtogrr\{Rom\}} ist ein Ort.\b{\}} +\\[0.6ex] Nero lebte in Rom.\bs \underbar{addtogrr\{Rom\}} +\\[0.6ex] \bs printnumgrrlist +} +{ +\fillgrr{Rom}{Stadt in Italien} +Hier geht es ums Ortsregister (Geografie).\footnote{Rom +\addtogrr{Rom} ist ein Ort.} +Nero lebte in Rom.\addtogrr{Rom} + %{\batwocolitemdefs +\printnumgrrlist + %} +} + +\vspace{-.25ex}\noindent +\verb|\printnumgrr| erg"abe einen \verb|\twocolumn|\hy +Ausdruck mit der "Uberschrift \textit{\ggrrtitlename}; +\verb|\printnumprr| und \verb|\printnumsrr| drucken die anderen +Register.\footnote{Falls Eintr"age in den zahlen\hy losen Ausgaben +\texttt{\bs printgrr}, \texttt{\bs printsrr} und \texttt{\bs printprr}\pdfko{1.5}\ +mit einem Punkt enden sollen: +\texttt{\bs renewcommand\{\bs fromnopagexrrsep\}\{\bs bapoint\}}} +Listenk"opfe wie "`Rom"' werden in \verb|\xrrlistemph| ausgedruckt, das \label{xrr} +sich mit \verb|\itshape| etc.\ belegen l"asst; evtl.\ vorhandene fills +behalten die Umfeldschrift. + +\vspace{1ex}\noindent +Neben \verb|\fillgrr| existieren \verb|\fillsrr| und \verb|\fillprr|. +Falls Sie ein Stichwort zweimal und dann mit unterschiedlichen +Zus"atzen bef"ullen, warnt \verb|bibsort|: + +\vspace{-.75ex} +{\scriptsize\begin{verbatim} + %%> Warning: Different fills for head "Rom": + %% *Accept file 1 line 2669 "Stadt in Italien"; + %% *Reject file 1 line 2678 "Stadt in Mittel-Italien". +\end{verbatim}} + +\vspace{-1ex}\noindent +Den Registern lassen sich Querverweise der Art "`Roma $\rightarrow$ Rom"' +hinzuf"ugen: + +\vspace{-1ex}{\small +\begin{verbatim} + {\renewcommand{\xrrlistopen}{\bastrut\ \balistcorr$\rightarrow$ }% + \renewcommand{\xrrlistclose}{}% + \fillgrr{Roma}{Rom}}% %\addtogrr{Roma} nicht verwenden +\end{verbatim}}\label{xrrlistclose}% + +\vspace{-.25ex}\noindent +Serien von fill\hy Befehlen sollten in \verb|{unused}|\hy +Umgebungen \baref[vgl.]{unused}; au"serhalb w"urden Leerzeichen +erzeugt, wenn Sie die Eintr"age zeilenweise antippen. + +\vspace{1.5ex}\noindent +\verb|bibsort| kann keine Unterstichworte erzeugen, sondern erzeugt nur +Hauptstichworte. Es gibt keine Sonderzeichen, wie sie +f"ur den \LaTeX\hy Befehl \verb|\index|\pdfko{1.75}\ +vorgesehen sind. +Argumente werden so eingetippt, dass sie \LaTeX\ auch direkt\pdfko{1}\ +drucken w"urde; nur zerbrechliche Befehle sollten +Sie mit \verb|\protect| sch"utzen.\pdfko{1} + +In den Listen bestimmen allein die Stichworte die Sortierreihenfolge; +die F"ullungen haben kein Gewicht. Falls Sie die Zusatzf"ullungen nicht in +runden Klammern gedruckt haben wollen, k"onnen Sie \verb|\xrrlistopen| +etwa in \verb|{, }| und \verb|\xrrlistclose| in \verb|{}| +"andern.\footnote{Im Beispiel sind wegen des 'niederen' Zeichens +am Kopf von \texttt{\bs xrrlistopen} weder \texttt{\bs bastrut} noch die +\textit{italics}\hy Korrektur \texttt{\bs balistcorr} n"otig; vgl. +unten das Kap.\,\ref{schraegkap} ab S.\,\pageref{schraegkap}.} Dies +bietet sich insbesondere an, wenn Sie in Ihrem Text beispielsweise nur +eine Person \verb|Churchill| haben, aber\pdfko{.75}\ +mehrere \verb|Maier| mit unterschiedlichen +Vornamen. Dann k"onnen Sie in Ihrem Text jeweils kurz \verb|\addtoprr{Churchill}| +sowie \verb|\addtoprr{Maier, Hans}| und \verb|\addtoprr{Maier, Peter}| setzen +$-$ und an einer Stelle des Textes alle\pdfko{.75}\ +\textit{fehlenden} Vornamen erkl"aren (die \texttt{\%} +vermeiden die Erzeugung von Leerraum): + +{\small\begin{verbatim} + %% Verschiedene Stellen mit Namen im Text: + ... Winston Churchill \addtoprr{Churchill} ... + ... Hans Maier \addtoprr{Maier, Hans} ... + ... Peter Maier \addtoprr{Maier, Peter} ... + ... Theobald von Bethmann-Hollweg \addtoprr{Bethmann-Hollweg} ... + + %% Eine Stelle zum Sammeln der optionalen Zusatzfuellungen: + {\renewcommand{\xrrlistopen}{, }% + \renewcommand{\xrrlistclose}{}% + \fillprr{Churchill}{Winston (1874-1965)}% + \fillprr{Bethmann-Hollweg}{Theobald von (1856-1921)}% + }% + %% .... und hier gilt wieder die Default-Klammerung: + \fillsrr{Maier, Peter}{1887-\protect\framebox{????}}% + + \printnumprr +\end{verbatim}} + +\vspace{.25ex}\noindent +Falls \verb|\printnumprr| \textit{ganz am Ende Ihres Textes} steht, sollte immer vorher +gesammelt werden $-$ dahinter werden die fill\hy Befehle nicht mehr ausgef"uhrt. + +\vspace{1.5ex}\noindent +Die lokalen Umdefinitionen von \verb|\xrrlistopen| und +\verb|\xrrlistclose| reisen mit \verb|Churchill| und \verb|Bethmann-Hollweg| +ins \hspace{-.2em}\verb|.prr|\hy File. \verb|\printnumprr| druckt die Liste aus. +Die Eintr"age auf der von \texttt{bibsort} erzeugten Liste ergeben etwa: + +\vspace{-0.25ex} +\begin{description}\itemsep 0pt \parskip 0pt \lineskip 0pt \small +\item Bethmann-Hollweg, Theobald von \\ (1856-1921)\hspace{1.2em}\textsf{35} +\item Churchill, Winston (1874-1965)\hspace{1.2em}\textsf{35} +\item Maier, Hans\hspace{1.2em}\textsf{35} +\item Maier, Peter (1887-\framebox{????})\hspace{1.2em}\textsf{35} +\end{description} + + +\newpage +\section{\texttt{\bs protect} und zerbrechliche Befehle}\label{Sect9}\label{zerbrechen} + +Ein \LaTeX\hy Befehl $-$\,etwa mit +\verb|\newcommand{|\textit{Befehlsname}\verb|}{|\textit{Deklaration}\verb|}| +definiert\,$-$ arbeitet bei der Ausf"uhrung seine Deklaration ab. Die +besteht oft aus mehreren schon vorhandenen \LaTeX\hy Befehlen. Falls +Sie den neuen Befehl\pdfko{.75}\ +\textit{in das Argument} eines \BibArts\hy Befehls wie etwa +\verb|\vli| tippen, wird eine Kopie dieses Eintrags an Ort und Stelle +ausgedruckt und eine zweite Kopie in das \verb|.aux|\hy File geschrieben. +Ist der neue Befehl nicht gesch"utzt, wird er dabei von \LaTeX\ +allerdings teilweise ausgef"uhrt: Enth"alt die Deklaration Befehle, +die ihrerseits gesch"utzt sind, wird \textit{die Deklaration} +ins \verb|.aux|\hy File kopiert; sind\pdfko{1}\ deren Befehle aber ungesch"utzt, +wiederum deren Deklarationen $-$ u.\,s.\,w. + +Wie weit ein Befehl in diesem Sinne 'zerbricht', ist also unklar. Ist +ein neuer Befehl ungesch"utzt, droht zumindest, dass \verb|bibsort| Ihre +Eintr"age nicht richtig sortiert. Schlimmstenfalls wird beim Schreiben +ins \verb|.aux|\hy File oder beim Drucken der daraus erzeugten Liste die +\TeX\hy Kapazit"at "uberschritten und die \LaTeX\hy "Ubersetzung Ihres +Textes abgebrochen. + +Seit \LaTeX2e\ ist letzteres kaum noch ein Problem, da fast alle wichtigen +Befehle gesch"utzt definiert sind. Allerdings bleibt das Risiko, dass +Titel mit Ihren eigenen Neudefinitionen falsch einsortiert werden. Wenn Sie etwa +\verb|\newcommand{\meinspace}{{\hskip 3cm}}| definieren und +\verb|\meinspace| in das Argument eines \verb|\vli|\hy Befehls tippen, +wird dies bei der \LaTeX\hy "Ubersetzung den Eintrag +\verb|{\hskip 3cm}| im \verb|.aux|\hy File ergeben und Ihr +Literaturtitel von \verb|bibsort| im \verb|.vli|\hy File +entsprechend der Zeichenfolge \verb|3cm| einsortiert. + +\underbar{Gegenma"snahme:} Durch Tippen von \verb|\protect\meinspace| +in solche Argumente ist der Befehl gesch"utzt; es wird \verb|\meinspace| +ins \verb|.aux|\hy File kopiert. + +Dabei muss \verb|\protect| also nicht von \verb|\onlyout| maskiert werden! +Vielmehr arbeitet \verb|\protect| in der addto- und der printonly\hy Komponente +des \verb|\vli|\hy Befehls unterschiedliche Deklarationen ab; beim Ausdrucken +tut es nichts. + +Falls Sie eine Eigendefinition sehr oft benutzen, k"onnen Sie $-$\,wie +oben S.\,\pageref{ProtectBeispiel} f"ur \verb|\ko| vorgemacht\,$-$ den +Schutz in eine Doppel\hy Definition einf"ugen. + +Da die \BibArts\hy Befehle meist nur Text aufnehmen sollen, stellt sich das +Problem selten. In \verb|bibarts.sty| habe ich versucht, alle Befehle zu +sichern, die Buchstaben ausdrucken, aber zumindest nicht auf +allen \LaTeX\hy Versionen optimal gesch"utzt sind. (Dieser Schutz erstreckt +sich aber nicht auf die Argumente von \LaTeX\hy Befehlen wie +\verb|\section| oder \verb|\index|!) Nirgendwo gesichert ist "ubrigens +\verb|\underline{X}|, von dem (ohne \verb|\protect| davor) +im \verb|.aux|\hy File \verb|\relax $\@@underline {\hbox {X}}\mathsurround \z@ $\relax| +o.\,"a.\ ankommt. Das wird von \verb|bibsort| zwar zwischen \verb|W| +und \verb|Xa| einsortiert; trotzdem sollten Sie ein neues \verb|.aux|\hy File +bzw.\ die von \verb|bibsort| daraus erzeugten Dateien immer durchsehen, +nachdem Sie einen Befehl in ein \BibArts\hy Argument setzten, +"uber dessen Zerbrechlichkeit/""Unzerbrechlichkeit Sie nichts wissen. + + +\newpage +\section{\textit{Italics}\hy Korrekturen in Separatoren}% +\label{schraegkap}\label{Sect10} + +Zwischen den Argumenten von \BibArts\hy Befehlen werden \textit{vorgefertigte +Textelemente} ausgedruckt, sogenannte \textit{Separatoren}. In Voreinstellung +f"uhren sie eventuell n"otige \textit{italics}\hy Korrekturen selbst"andig +durch. Bei der Anwendung d"urfen Sie ans Ende von \BibArts\hy Argumenten nie +Befehle wie \verb|\/| oder \verb|\relax|\pdfko{.75}\ +tippen und den \verb|\|...\verb|emph|\hy Befehlen f"ur +die Schrift von \BibArts\hy Argumenten nie\pdfko{.25}\ +Befehle der Art \verb|\textbf{|...\verb|}|, sondern +nur der Art \verb|\bfseries| zuweisen.\footnote{\BibArts\ +durchsucht viele Argumente, um zu ermitteln, ob das letzte Zeichen darin ein +Punkt ist, denn dann sollen die automatischen Korrekturen nicht ausgef"uhrt +werden. Nach dem letzten zu druckenden Zeichen darf auch keine \texttt{\{} +mehr im Argument stehen, \texttt{\}} schon.\pdfko{.5}} + +\verb|\showbacorr| macht die Stellen testweise sichtbar, an +denen \BibArts\ \textit{italics}\hy Korrekturen durchf"uhrt. +Da v-, k-, per- und arq\hy Befehle am Anfang stets +in aufrechte Schrift umschalten, ist in schr"aggestelltem +Umfeld immer eine Kopf"|korrektur n"otig. Anders als andere +\BibArts\hy Korrekturen machen Kopf"|korrekturen \textit{wie +entsprechende \LaTeX2e\hy Befehle} nichts \textit{im Text +nach Leerzeichen}. Dieser Typ Korrektur ist \textit{nicht} +in einem \textit{einstellbaren Separator} festgelegt: + +\vspace{1.25ex}\noindent\hspace{.5em} +{\small\itshape\showbacorr +\begin{tabular}{ll} +& \verb| \itshape \showbacorr| \\ +(\printonlyvli{}{}{Rest}) & \verb|(\vli{}{}{Rest})| \\ +(\printonlyvli{}{Nachname}{Rest}) & \verb|(\vli{}{Nachname}{Rest})| \\ +(\printonlyvli{Vorname}{Nachname}{Rest}) & \verb|(\vli{Vorname}{Nachname}{Rest})| \\ +(\printonlykli{}{Kurztitel}) & \verb|(\kli{}{Kurztitel})| \\ +(\printonlykli{Nachname}{Kurztitel}) & \verb|(\kli{Nachname}{Kurztitel})| \\ +(\printonlyper{Zeitschrift}) & \verb|(\per{Zeitschrift})| \\ +(\printonlyarq{}{Bestand}) & \verb|(\arq{}{Bestand})| \\ +(\printonlyarq{Dokument}{Bestand}) & \verb|(\arq{Dokument}{Bestand})| \\ +(\printonlyabkdef{Initialien}{Erkl"arung}) & \verb|(\abkdef{Initialien}{Erkl"arung})| \\ +(\printonlyabk{Initialien}) & \verb|(\abk{Initialien})| \\ +& \verb| \renewcommand{\abkemph}{\upshape}| \\ + \renewcommand{\abkemph}{\upshape}% +(\printonlyabkdef{Initialien}{Erkl"arung}) & \verb|(\abkdef{Initialien}{Erkl"arung})| \\ + \renewcommand{\abkemph}{\upshape}% +(\printonlyabk{Initialien}) & \verb|(\abk{Initialien})| \\ +\end{tabular}}\label{abkA} + +\vspace{1.75ex}\noindent +Vielmehr schaltet \verb|\notbafrontcorr| diesen speziellen Korrekturtyp +aus.\footnote{Diese Kopf"|korrektur +ist \texttt{\bs/} (f"ur andere \textit{italics}\hy Korrekturen setzt \BibArts\ +\texttt{\bs kern 0.1em}).\pdfko{.5}} Den Befehl k"onnen Sie global im Vorspann Ihres +\LaTeX\hy Textes oder lokal setzen (um etwa \verb|\baupcorr| im Text +selbst vor den \BibArts\hy Befehl zu tippen): + +\vspace{-.5ex} +\Doppelbox +{ +\{\bs itshape \bs showbacorr +\\ \ AA \bs notbafrontcorr +\\ \ (\bs arq\{Dokument\}\{Bestand\}). \bs\bs +\\ \ BB \bs bafrontcorr +\\ \ (\bs arq\{Dokument\}\{Bestand\}).\} +} +{ +{\itshape \showbacorr + AA \notbafrontcorr (\printonlyarq{Dokument}{Bestand}). +\\ BB \bafrontcorr (\printonlyarq{Dokument}{Bestand}).} +} + + +\noindent +\verb|\vauthor|, \verb|\midvauthor|, \verb|\kauthor| +und \verb|\mitkauthor| korrigieren ebenfalls unter +\verb|\bafrontcorr| 'am Kopf', falls davor ein zu +druckendes Zeichen steht. + +\vspace{.75ex}\noindent +Nicht\hy einstellbar korrigiert wird \textit{hinter} +\verb|\abk|, \verb|\kli| und \verb|\kqu|. Bei Abk"urzungen +korrigiert \BibArts\ nach \verb|\renewcommand{\abkemph}{\itshape}| +in aufrechtem Umfeld, wenn der Text im Argument von \verb|\abk| +nicht mit einem Punkt endet. \verb|\abk| 'sieht' +\textit{auch das Zeichen nach seinem Argument} und reagiert: + +\vspace{.875ex}\noindent +{\small\verb| {\showbacorr \abk{GmbH}, \abk{GmbH}!} =>|} +{\renewcommand{\abkemph}{\itshape}\showbacorr \abk{GmbH}, \abk{GmbH}!} +\\ +{\small\verb| {\showbacorr \abk{e.\,V.}, \abk{e.\,V.}!} =>|} +{\renewcommand{\abkemph}{\itshape}\showbacorr \abk{e.\,V.}, \abk{e.\,V.}!} + +\vspace{1.125ex}\noindent +Dasselbe gilt f"ur \verb|\renewcommand{\kxxemph}{\itshape}|, \label{kxxA} +mit dem der Kurztitel in \verb|\kli| und \verb|\kqu| \textit{kursiv} +gesetzt wird.\footnote{\texttt{\bs kxxemph} wirkt sich au"serdem noch auf die +Vorank"undigung der Kurzzitate in den v\fhy Befehlen aus; +\renewcommand{\kxxemph}{\bfseries\itshape}\showbacorr +\texttt{\bs renewcommand\{\bs kxxemph\}\{\bs bfseries\bs itshape\}} \texttt{\bs showbacorr} +bewirkt:\pdfko{.5}\ \vli{Niklas} {Luhmann}{\ktit{Soziale Systeme}. Grundri"s +einer allgemeinen Theorie, 1984: Frankfurt/M.}[123].} Im Fall von +\verb|\notprinthints|, das den Ausdruck von {\small [L]} und {\small [Q]} +unterbindet, wird automatisch korrigiert: + +\vspace{.875ex}\noindent +{\small\verb| {\showbacorr \kli{N}{K}, \kli{N}{K}!} =>|} +{\renewcommand{\kxxemph}{\itshape}\notprinthints\showbacorr\printonlykli{N}{K}, \printonlykli{N}{K}!} +\\ +{\small\verb| {\showbacorr \kli{N}{K.}, \kli{N}{K.}!} =>|} +{\renewcommand{\kxxemph}{\itshape}\notprinthints\showbacorr\printonlykli{N}{K.}, \printonlykli{N}{K.}!} + +\vspace{1.125ex}\noindent +Auch im schr"aggestellten Umfeld verhalten sich beide Befehle weiter richtig: + +\vspace{.875ex}\noindent +{\small\verb| {\itshape\showbacorr \abk{GmbH}, \abk{GmbH}!} =>|} +{\itshape\renewcommand{\abkemph}{\itshape}\showbacorr\abk{GmbH}, \abk{GmbH}!}\\ +{\small\verb| {\itshape\showbacorr \kli{N}{K}, \kli{N}{K}!} =>|} +{\itshape\renewcommand{\kxxemph}{\itshape}\notprinthints\showbacorr\printonlykli{N}{K}, \printonlykli{N}{K}!} + + +\vspace{1.77ex}\noindent +\textit{Einstellbare Separatoren} wie \verb|\nsep| lassen sich mit \verb|\renewcommand| +umdefinieren. Vor und nach \underline{\texttt{,} oder \texttt{.}} +sind nie \textit{italics}\hy Korrekturen n"otig, sonst schon: + +\vspace{-.33ex} +\Doppelbox +{ +\bs itshape\bs showbacorr +\\[1.1ex] +\bs renewcommand\{\bs nsep\}\underline{\{,\vphantom{p}} \} +\\[.5ex] ... ... \bs xkqu\{Ehlert\} +\\ \ \string*\b{\{}\bs midkauthor\{Epkenhans\} +\\ \ \ \ \bs kauthor\{Gro"s\} [Hrsg.]\b{\}} +\\ \ \{Schlieffenplan\}[468]. +\\[1.4ex] +\bs renewcommand\{\bs nsep\}\{\underline{/\bs baupcorr\}} +\\[.5ex] ... ... \bs xkqu\{Ehlert\} +\\ \ \string*\{\bs midkauthor\{Epkenhans\} +\\ \ \ \ \bs kauthor\{Gro"s\} [Hrsg.]\} +\\ \ \{Schlieffenplan\}[469]. +} +{ +\itshape\showbacorr\noindent +Ge"anderte \textup{\texttt{\bs nsep}} sind defaultm"a"sig in +Umfeldschrift; formatierte Nachnamen +sind immer aufrecht: + +\vspace{.255cm} +\renewcommand{\nsep}{, } %% nach Komma keine Korrektur %% +... ... \xkqu{Ehlert} *{\midkauthor{Epkenhans} \kauthor{Gro"s} [Hrsg.]} + {Schlieffenplan}[468]. + +\vspace{.255cm} +\renewcommand{\nsep}{/\baupcorr} %% nach + schon %% +... ... \xkqu{Ehlert} *{\midkauthor{Epkenhans} \kauthor{Gro"s} [Hrsg.]} + {Schlieffenplan}[469]. +\vspace{1.05cm}\strut +}% +\label{Ehlert}% + + +\noindent +\verb|\baupcorr| f"uhrt eine Korrektur immer durch, falls es in +in einem schr"aggestellten Umfeld steht. F"ur den \textit{Kopf einer +Separator\hy Definition} ist es ungeeignet, denn es hat keine Information +dar"uber, ob Sie in das \textit{davorstehende\pdfko{1.5}\ +Argument des \BibArts\hy Befehls} Text tippen, der mit einem Punkt endet. + + +\newpage \BibArts\ durchsucht Argumente deshalb +und stellt ortsabh"angige \textit{italics}\hy Korrekuren bereit, +die nach einem Punkt nichts machen. \verb|\balistcorr| ist ein +Beispiel. Wie alle ortsabh"angigen Korrekturen kommt es nur am +Kopf des zugeh"origen Separators zu Einsatz, in diesem Fall von +\verb|\frompagesep|. \label{frompagesep} Der definiert in den +num\hy Listenausdrucken, was vor den Indexzahlen steht: + +\vspace{.25ex} +{\small +\begin{verbatim} + {\renewcommand{\frompagesep}{\balistcorr ; } % HOCH mit Korrektur + \itshape \showbacorr \printnumvlilist } +\end{verbatim}} + +\vspace{-3ex} + {\renewcommand{\frompagesep}{\balistcorr ; } % HOCH mit Korrektur + \itshape \showbacorr \batwocolitemdefs\printnumvlilist } + + +\vspace{-.5ex}{\small +\begin{verbatim} + {\renewcommand{\frompagesep}{, } % NIEDRIG ohne Korrektur + \renewcommand{\ntsep}{\upshape , } % Komma zw. Name und Titel + \itshape \showbacorr \printnumvlilist } +\end{verbatim}} + +\vspace{-3ex} + {\renewcommand{\frompagesep}{, } % NIEDRIG ohne Korr. + \renewcommand{\ntsep}{\upshape , } % Komma zw. Name und Titel + \itshape \showbacorr \baonecolitemdefs\printnumvlilist } + + +\vspace{1.5ex}\noindent +Die Indexzahlen der num-Listen druckt \BibArts\ in +\verb|\balistnumemph| aus, f"ur das \verb|\sffamily| voreingestellt +ist. \label{listnum} Wegen der ggf.\ zu druckenden Exponenten f"uhrt \BibArts\ +dort Umstellungen auf schr"aggestellte Schriften nicht aus. Das Argument +von \verb|\frompagesep| wird ausgedruckt wie die Indexzahlen. + +\vspace{2ex}\noindent +\textit{Italics}\hy Korrekturen sind in Separatoren stets n"otig, +falls dort ein schr"aggesteller Textbereich auf einen aufrecht gedruckten +Textbereich treffen k"onnte und sich dazwischen kein Punkt oder Komma befindet. +Fallunterscheidungen sind m"oglich: Der Separator \verb|\ntsep| f"uhrt +in v- und k\fhy Befehlen zwischen Name und Titel +\verb|{: \ifbashortcite{\bakntsepcorr}{}}| \label{ntsepB} +aus, korrigiert also\pdfko{1.25}\ +nur in k\fhy Befehlen. +Mit \verb|\renewcommand{\kxxemph}{\upshape}| k"onnen Sie\pdfko{1.25}\ +eine stets aufrechte Schrift f"ur den Kurztitel in +\verb|\kli| und \verb|\kqu| einstellen: + +\vspace{-.325ex} +\Doppelbox +{ + \bs renewcommand\{\bs kxxemph\}\{\bs upshape\} +\\ \bs showbacorr \bs itshape +\\ \bs kli\{Ferguson\}\{Falscher Krieg\} +} +{ +\vspace{5ex} +\renewcommand{\kxxemph}{\upshape} +\showbacorr \itshape +\kli{Ferguson}{Falscher Krieg} +} + +\vfill\noindent +Das selbe \verb|\ntsep| korrigiert $-$\,wegen der if\fhy Abfrage\,$-$ in v\fhy Befehlen \textit{nicht}. + +\newpage +\noindent +\BibArts' \textbf{if\hy Befehle} haben zwei Argumente, von denen \BibArts\ das erste +bei Ja und das zweite bei Nein umsetzt. \verb|\ifbaibidem| etwa steht nach +\textsc{ebd.} bereit: + +\vspace{.875ex}{\small\noindent +\verb| \ifbashortcite | \verb|{|\textit{falls k-Befehl}\verb|}| \verb|{|\textit{sonst (falls v-, per oder arq-Befehl)}\verb|}| \\ +\verb| \ifbaperiodical | \verb|{|\textit{falls per-Befehl}\verb|}| \verb|{|\textit{sonst (falls v-, k- oder arq-Befehl)}\verb|}| \\ +\verb| \ifbaprinthints | \verb|{|\textit{unter Voreinstellung}\verb|}| \verb|{|\textit{falls }\verb|\notprinthints|\textit{ gilt}\verb|}| \\ +\verb| \ifbaibidem | \verb|{|\textit{falls k-, per- oder arq-Befehl als }\textsc{ebd.}\textit{ gedruckt}\verb|}| \verb|{|\textit{sonst}\verb|}| \\ +\verb| \ifbahaspervol | \verb|{|\textit{hat }\verb+|n|+ \verb+_n_+\textit{ und }\verb|\notprintlongpagefolio|\textit{ gilt}\verb|}| \verb|{|\textit{sonst}\verb|}| \\ +\verb| \ifbahasdot | \verb|{|\textit{am Separatorenkopf: falls Arg davor mit} + \hspace{-.15em}\verb|.| \hspace{-.1em}\textit{endet}\verb|}| \verb|{|\textit{sonst}\verb|}|} + + +\vspace{1.25ex}\noindent +Die wichtigsten Korrekturbefehle, die \BibArts\ f"ur Separatoren bereitstellt, sind: + +\vspace{.875ex}{\small\noindent +\verb| \balistcorr | in \verb|\frompagesep| (vgl.\ oben S.\,\pageref{frompagesep}) \\ +\verb| \bakntsepcorr | in \verb|\ntsep| vor k-Titeln (vgl.\ oben S.\,\pageref{ntsepA}, \pageref{ntsepB}) \\ +\verb| \bakxxcorr | in \verb|\pagefolioshortsep| (s.\,u); intern nach k-Titeln \\ +\verb| \baabkcorr | in \verb|\abkdefopen|, \verb|\defabkopen| und \verb|\defabkclose|} + + +\vspace{1.325ex}\noindent +Die Definition von \verb|\pagefolioshortsep| k"onnen Sie in \verb|bibarts.sty| +suchen: \verb|\bakxxcorr| wird unter \verb|\notprinthints| plus +\verb|\notprintlongpagefolio| unter bestimmten Bedingungen nach +\verb|\kli| oder \verb|\kqu| ausgef"uhrt (vgl.\ +S.\,\pageref{notprintlongpagefolio}).\footnote{\texttt{\scriptsize\bs notprintlongpagefolio +\bs renewcommand\{\bs kxxemph\}\{\bs itshape\} \bs notprinthints \bs showbacorr} +\\ \hspace*{1cm}\texttt{\scriptsize +\bs kli\{Luhmann\}\{Soziale Systeme\}[23]. => } +\clearbamem\notprintlongpagefolio +\renewcommand{\kxxemph}{\itshape}\notprinthints \showbacorr +\kli{Luhmann}{Soziale Systeme}[23].} + + +\vspace{1.5ex}\noindent +F"ur \textbf{Abk"urzungsdefinitionen} sind die Klammersymbole einstellbar. +Die Separatoren \verb|\abkdefopen|, \verb|\defabkopen| und +\verb|\defabkclose| sollten diese Klammern \textit{und} \verb|\baabkcorr| +enthalten (in \verb|\abkdefopen| und \verb|\defabkclose| davor, in +\verb|\defabkopen| danach). Stehen \verb|\abkdef| oder \verb|\defabk| +(oben S.\,\pageref{defabk}) in Textbereichen mit aufrechter Schrift, +f"uhrt \verb|\baabkcorr| dann eine \textit{Italics}\hy Korrektur aus, wenn +f"ur \verb|\abkemph| eine schr"aggestellte Schrift gilt:\footnote{Oder +wenn in schr"aggestelltem Umfeld \texttt{\bs upshape} f"ur +\texttt{\bs abkemph} gilt.} + +\vspace{-.5ex} +\Doppelbox +{\vspace{.75ex} +\bs renewcommand\{\bs abkemph\}\{\bs itshape\} +\\[.25ex] \ \ \bs showbacorr +\\[.5ex] \b{\{}\bs renewcommand\{\bs abkdefopen\} +\\[.3ex] \ \ \ \ \ \ \{\bs baabkcorr\bs\ [\kern.1em\} +\\[.25ex] \ \bs renewcommand\{\bs abkdefclose\}\{\kern.1em]\} +\\[.5ex] \ \bs abkdef\{OHG\}\{Offene +\\ \ \ \ \ \ Handelsgesellschaft\}\b{\}} \ u.\bs +\\[.5ex] + \b{\b{\{}}\bs renewcommand\{\bs defabkopen\} +\\ \ \ \ \ \ \ \{\bs bastrut\bs\ \string"\string<\bs baabkcorr\}\% +\\[.5ex] \ \bs renewcommand\{\bs defabkclose\} +\\ \ \ \ \ \ \ \{\bs baabkcorr \string"\string>\}\% +\\[.05ex] \ \bs defabk\{Offene +\\ \ \ \ \ \ Handelsgesellschaft\}\{OHG\}.\b{\b{\}}} +} +{\vspace{1ex} + \fbox{\parbox{.95\textwidth}{\sffamily In \texttt{\bs abkdefopen} oder + \texttt{\bs defabkclose} steht \texttt{\bs baabkcorr} \textit{vor} Leerzeichen.}} + \\[5.75ex] + \small\renewcommand{\abkemph}{\itshape} \showbacorr + {\renewcommand{\abkdefopen} {\baabkcorr\ [}% + \renewcommand{\abkdefclose}{]}% + \abkdef{OHG}{Offene Handelsgesellschaft}} u.\ + {\renewcommand{\defabkopen}{\bastrut\ "<\baabkcorr}% + \renewcommand{\defabkclose}{\baabkcorr ">}% + \defabk{Offene Handelsgesellschaft}{OHG}.} + \\[2.75ex] + \fbox{\parbox{.95\textwidth}{\sffamily \texttt{\bs bastrut\bs\ }\,stellt sicher, + dass Zeilenumbr"uche am \texttt{\bs\ }\,stattfinden k"onnen.}} +} + + +\noindent +Wird statt \verb|{OHG}| alternativ \verb|{e.\,V.}| eingesetzt, unterbleibt die +Korrektur: + +\vspace{.5ex} +{\small\renewcommand{\abkemph}{\itshape}\showbacorr +{\renewcommand{\abkdefopen} {\baabkcorr\ [}% + \renewcommand{\abkdefclose}{]}% + \abkdef{e.\,V.}{eingetragener Verein}} und +{\renewcommand{\defabkopen}{\bastrut\ "<\baabkcorr}% + \renewcommand{\defabkclose}{\baabkcorr ">}% + \defabk{eingetragener Verein}{e.\,V.}.} +} + + + +\vspace{1ex}\noindent +\BibArts\ macht nach \verb|\defabkopen| (hier nach "<) +einen in \LaTeX2e von \verb|\itshape|\pdfko{1}\ +ausgedruckten horizontalen +Abstand r"uckg"angig. \LaTeX\,2.09 macht die Korrektur nicht; +die \BibArts\hy Gegenkorrektur sollte dort gleich im +Dokumentenvorspann mit \verb|\notnegcorrdefabk| ausgeschaltet werden. + + +\vspace{1ex}\noindent +Das zweite Argument von \verb|\defabk| ist die +Abk"urzung, die in einstellbarer\pdfko{.5}\ +Schrift gedruckt wird. +\BibArts\ 'sieht' es das \textit{folgende} Zeichen~'!' und korrigiert: + + +\Doppelbox +{ + \bs renewcommand\{\bs abkemph\}\{\bs em\} + \\[.5ex] \bs showbacorr + \\[.5ex] \bs renewcommand\{\bs defabkopen\} + \\ \ \ \ \ \ \ \underline{\{\bs}ifbahasdot\{\bs bastrut\bs\ \} + \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \{ \bs baabkcorr\underline{\}\}} + \\[.5ex] \bs renewcommand\{\bs defabkclose\}\{\} + \\ \ \ \ \%\%=\{\bs defabkclose\}\{\bs baabkcorr\} +\\[2.5ex] + Ein \bs defabk\{eingetragener +\\ \ \ Verein\} \{e.\bs,V.\}! +\\[1.5ex] + \bs defabk \{Offene +\\ \ \ Handelsgesellschaft\}\{OHG\}! +\\[1.5ex] + \bs itshape +\\[.5ex] Noch ein \bs defabk\{eingetragener +\\ \ \ Verein\}\{e.\bs,V.\}! +\\[1.5ex] + \bs defabk\{Offene Handelsges.\} +\\ \ \ \{OHG\}! +} +{ + \vspace{19.4ex} + \renewcommand{\abkemph}{\em} + \showbacorr + \renewcommand{\defabkopen} + {\ifbahasdot{\bastrut\ } + { \baabkcorr}} + \renewcommand{\defabkclose}{} %=%{\defabkclose}{\baabkcorr} + + Ein \defabk {eingetragener Verein} {e.\,V.}! + \\[3.5ex] + \defabk {Offene Handelsgesellschaft}{OHG}! + \\[6.6ex] + \itshape + Noch ein \defabk{eingetragener Verein}{e.\,V.}! + \\[3.6ex] + \printonlydefabk{Offene Handelsges.} {OHG}! +}\label{abkB} + + +\noindent +Nur im obigen Fall bei \verb|\defabkopen| wird +\verb|\ifbahasdot{|\textit{ja}\verb|}{|\textit{nein}\verb|}| +ben"otigt: \verb|\baabkcorr| steht in der Voreinstellung +\textit{nach} einer '\verb|(|' $-$ aber hier, wo +es am Kopf des Separators steht, ist die \textit{italics}\hy +Korrektur nicht immer n"otig. Und im \textit{nein}\hy Fall +steht \verb|\baabkcorr| \textit{nach} dem Leerzeichen: +Wie die meisten corr\hy Befehle w"urde \verb*|\baabkcorr\ | +keinen Zeilenumbruch erlauben (vgl.\ S.\,\pageref{Systematik}). + +\vspace{1ex}\noindent +In den Beispielen oben wurden die Klammersymbole lokal angepasst. +Dies wirkt sich \textit{nicht} auf das \textbf{Abk"urzungsverzeichnis} +aus, denn f"ur dessen Ausdruck gelten eigene +Separatoren: \verb|\abklistopen| und \verb|\abklistclose| +legen fest, was dort vor und nach der \textit{Erkl"arung} +\label{Erklaerung} stehen soll. Im Abk"urzungsverzeichnis +steht die Abk"urzung immer links und die Erkl"arung immer rechts. + +Allerdings reisen die Definitionen von +\verb|\abklistopen| und \verb|\abklistclose| +("ahnlich der Definition von \verb|\nsep|\hspace{.075em}: siehe +oben S.\,\pageref{Ausreise}) mit ins \hspace{-.15em} +\verb|.aux|-File. Falls eine bestimmte Abk"urzung also +im Abk"urzungsverzeichnis ihre eigene Klammerung haben soll, +m"ussen \verb|\abklistopen| und \verb|\abklistclose| lokal +angepasst werden. Beim Umdefinieren sind zerbrechliche +Befehle mit \verb|\protect| zu sch"utzen. Gelten f"ur +mehrere Zug"ange \textit{einer} Abk"urzung unterschiedliche Definitionen +der Listenseparatoren, warnt \texttt{bibsort} mittels +Bildschirmmeldung. Die jeweils erste Definition setzt es f"ur +den Ausdruck der Liste ein. + +\verb|bibarts.sty| +legt f"ur \verb|\abklistopen| zun"achst \verb|{\protect\pabklo}| fest; +das f"uhrt \verb|{\bastrut\hskip 1.2em minus 0.3em\balistcorr}| aus. +"Aquivalent h"angen \verb|\abklistclose| +und \verb|\pabklc| zusammen (das nichts tut: \verb|{}|). + +Zur "Anderung der Listenseparatoren k"onnen Sie vor dem Befehl zum Ausdruck +des Abk"urzungsverzeichnisses die Befehle \verb|\pabklo| oder +\verb|\pabklc| "andern. Dies wirkt sich aus auf alle Eintr"age, +an deren Stellen im Text die Voreinstellungen f"ur +\verb|\abklistopen| und \verb|\abklistclose| nicht ver"andert wurden: + +\vspace{-.25ex}{\small +\begin{verbatim} + {\renewcommand{\pabklo}{\bastrut\ \balistcorr =\ } + \renewcommand{\pabklc}{!} %% ^^ \bastrut\ erlaubt Umbruch nach . + \renewcommand{\abklistemph}{\itshape} + \showbacorr \small \printnumabklist} +\end{verbatim}} + +\vspace{-2.5ex} + {\renewcommand{\pabklo}{\bastrut\ \balistcorr =\ } + \renewcommand{\pabklc}{!} + \renewcommand{\abklistemph}{\itshape} + \showbacorr \small \batwocolitemdefs\printnumabklist} + +\noindent +Ein globales Umdefinieren der beim Listenausdruck +gesetzten Klammerung muss also nicht im Vorspann Ihres +\LaTeX\hy Textes erfolgen. Falls Sie dennoch \verb|\abklistopen| +oder \verb|\abklistclose| im Vorspann umdefinieren, +funktioniert die vorgef"uhrte Anpassung von \verb|\pabklo| +und \verb|\pabklc| nicht. Beide Typen von Neudefinitionen +gelten f"ur alle Zug"ange, die nicht lokal umdefiniert wurden. + +\vspace{1ex}\noindent +So lassen sich Klammer\hy Separatoren f"ur einzelne +Listeneintr"age "andern ... + +\vspace{-.2ex} +\Doppelbox +{\vspace{.3ex} + Der + \\ \b{\{}\bs renewcommand\{\bs abklistopen\}\{, \}\% + \\ \ \bs renewcommand\{\bs abklistclose\} + \\ \ \ \ \ \{ [Erkl"arung am Zugangsort]\}\% + \\ \ \bs abkdef\{S\}\{Sonderfall\}\b{\}} + \\ in der Liste. + \vspace{.3ex} +} +{ + \ \ Der {\renewcommand{\abklistopen}{, }% + \renewcommand{\abklistclose}{ [Erkl"arung am Zugangsort]}% + \abkdef{S}{Sonderfall}} in der Liste. +}\label{InDerTat}% + +\vspace{-.2ex}\noindent +... wobei die Definition von \verb|\abklistopen| der "Ubersichtlichkeit +halber mit einem 'niederen' Zeichen beginnt, +vor dem keine Korrektur n"otig ist; und \verb|\abklistclose| +braucht nie eine. Geschrieben wird ins \verb|.aux|-File etwas wie: + +\vspace{0.325ex} +{\scriptsize\begin{verbatim} + %\abkrzentry{OHG}{Offene Handelsgesellschaft}{{\pabklo }{\pabklc }{}}...(line 2922) + ... + %\abkrzentry{S}{Sonderfall}{{, }{ [Erkl\IeC {\"a}rung am Zugangsort]}{}}...(line 3006) +\end{verbatim}} + + +\vspace{2ex}\noindent +Zum \textbf{Drucken von Archivquellenangaben} in Text oder Fu"snoten: F"ur das +Argument von \verb|\arqsep| gibt es keinen corr-Befehl zur Korrektur +zwischen Dokument und Bestandsangabe, da \BibArts\ f"ur beide Argumente +eine aufrechte Schrift \verb|\arqemph| erzwingt. Z.\,B. \verb|\renewcommand{\arqsep}{: }| +reicht aus. Hier steht ein solcher \verb|\arq|\hy Befehl +{\showbacorr\itshape in schr"aggestelltem Umfeld: +\renewcommand{\arqsep}{: }\arq{Gesellschaftsvertrag der +KCAG}{BA Zwischenarchiv Dahlwitz-""Hoppegarten R\,8729~4}(94)}. + +Eine Abweichung ergibt sich f"ur den Wiederausdruck der Archivangaben: Da +es kein (aufrechtes) \textsc{ebd.} im Archivquellenverzeichnis gibt, darf dort +f"ur \verb|\arqlistemph| (oder f"ur \verb|\arqemph| $-$ siehe S.\,\pageref{arqemph2}) +\textit{kursiv} eingestellt werden: + +\vspace{-.25ex} +{\footnotesize\begin{verbatim} + {\renewcommand{\arqlistemph}{\itshape}\showbacorr \printnumarq} +\end{verbatim}}\label{arqemph1} + +\vspace{-2.5ex} + {\renewcommand{\arqlistemph}{\itshape}\showbacorr \printnumarq} + + +\vspace{2.5ex}\noindent +Auch der im Text verbotene Kursivdruck von Zeitschriftentiteln ist +im \textbf{Zeitschriftenverzeichnis} erlaubt. Falls Sie +\verb|\frompagesep| umdefinieren wollten, um den +num-Listenausdruck zu modifizieren, +sollten Sie an den Anfang \verb|\balistcorr| +setzen, wenn ein 'hohes' Zeichen wie $\rightarrow$ am Anfang steht: + +\vspace{-.5ex} +{\footnotesize\begin{verbatim} + {\renewcommand{\perlistemph}{\itshape}% + \renewcommand{\frompagesep}{\bastrut\hskip0pt\balistcorr$\rightarrow$}% + \showbacorr \printnumper} % ^^^^^^^^^^^^^^^^^ Trennung +\end{verbatim}} + +\vspace{-2.5ex} + {\renewcommand{\perlistemph}{\itshape}% + \renewcommand{\frompagesep}{\bastrut\hskip0pt\balistcorr$\rightarrow$}% + \showbacorr \printnumper} % ^^^^^^^^^^^^^^^^^ Trennung + +\vspace{1ex}\noindent +Die "offnenden und schlie"senden Separatoren f"ur die per\hy Liste +hei"sen (symmetrisch zu den abk\hy Befehlen) \label{perlistopen} +\verb|\perlistopen| und \verb|\perlistclose|. Sie f"uhren +\verb|\protect\pperlo| und \verb|\protect\pperlc| aus, um +beim Schreiben ins \verb|.aux|\hy File nicht zu zerbrechen. +Beim Ausdrucken der per\hy Liste f"uhren \verb|\pperlo| und\pdfko{.5}\ +\verb|\pperlc| gem"a"s Voreinstellung +\verb|{\bastrut\ \balistcorr $-$ }| und \verb|{}| aus. Daran k"onnen +Sie wiederum im Umfeld des Listenausdruckbefehls ansetzen: + +\vspace{-.75ex} +{\small\begin{verbatim} + {\renewcommand{\pperlo}{\bastrut\ \balistcorr ((} + \renewcommand{\pperlc}{))} + \renewcommand{\perlistemph}{\itshape} \showbacorr \printper} +\end{verbatim}} + +\vspace{-3.75ex} + {\renewcommand{\pperlo}{\bastrut\ \balistcorr ((} + \renewcommand{\pperlc}{))} + \renewcommand{\perlistemph}{\itshape} \showbacorr \printper} + + +\vspace{.5ex}\noindent +F"ur das Archivquellenverzeichnis dienen +\verb|\arqlistopen| und \verb|\arqlistclose| als Separatoren. +\label{Gedankenstriche} Sie f"uhren \verb|{\protect\parqlo}| +und \verb|{\protect\parqlc}| aus und expandieren +zu \verb|{\bastrut\hskip 1em minus 0.3em\balistcorr}| und \verb|{}|. +Die "Uberschriften, die im Verzeichnis ungedruckter Quellen +existieren k"onnen, enthalten die oben gezeigten Gedankenstriche, +die von den Befehlen \verb|\arqsectionopen|, \verb|\arqsubsectionopen| +und \verb|\arqsubsubsectionopen|\pdfko{1}\ +initiiert werden, die alle direkt \verb|{\bastrut\ \balistcorr $-$ }| ausf"uhren. + +\vspace{1ex}\noindent +Weiter existieren \verb|\xrrlistopen| und \verb|\xrrlistclose|. +Sie schreiben f"ur die drei \BibArts\hy Register \verb|\protect|\hy gesch"utzt +\verb|\pxrrlo| und \verb|\pxrrlc| ins \verb|.aux|\hy File und expandieren +zu \verb|{\bastrut\ \balistcorr(}| bzw.\ \verb|{)}| \,(vgl.\ oben S.\,\pageref{xrrlistclose}). + + +\vfil +\fbox{\parbox{.9\textwidth}{\footnotesize \vspace{.675ex} +Die mit \texttt{\bs usepackage[T1]\{fontenc\}} eingeladene +Schriftkodierung gibt \LaTeX2e\ die gegen"uber \LaTeX\,2.09 neue F"ahigkeit, +Worte mit deutschen Sonderzeichen eigenst"andig trennen zu k"onnen. +In \texttt{OT1}\hy Schriftkodierung dagegen kann \LaTeX2e\ Silben, die etwa +Umlaute enthalten, auch weiterhin oft nicht umbrechen. Der Vorteil ist +gewaltig. Allerdings kann speziell PDF\LaTeX\ unter \texttt{T1} offenbar die L"ange +von Zeilen nicht mehr genau bestimmen, wenn ein Wort etwa \textit{schr"ag} +hervorgehoben ist. Jedenfalls macht in PDF\hy Dateien die rechte Seite des +Zeilenblocks dann oft Schlangenlinien. Und weil \BibArts\ Dieselbe, Derselbe +und Ebenda in \textsc{small\,caps} setzt, werden solche Zeilen in +PDF\ko\hy\texttt{T1}\hy Dateien bis zu 1,5 Punkte l"anger als andere +ausgeruckt. Dies trat nicht auf in \texttt{ba-short.pdf}, dessen +Quellfile \texttt{ba-short.tex} die defaultm"a"sig geladene Schriftkodierung +\texttt{OT1} aufruft. Das Problem existiert in DVI\hy Files +nach meiner Beobachtung +"uberhaupt nicht (egal, ob mit \texttt{OT1} oder \texttt{T1})!\vspace{.3ex}}} + + +\newpage\noindent +\textbf{Um zu wiederholen:} \BibArts\ setzt $-$\,anders als +\LaTeX\,$-$ zwischen seinen Argumenten auch bei Leerzeichen +\textit{italics}\hy Korrekturen. In v\fhy Befehlen wird nach +\textit{im folgenden} korrigiert; \verb|\gannouncektitname| +endet mit \verb*| \baupcorr|. + +\Doppelbox +{ +\bs showbacorr \bs itshape ...: +\\ \bs vqu\{Carl von\} \{Clausewitz\} +\\ \ \string*\b{\{}(\bs vauthor\{Eberhard\}\{Kessel\}\% +\\ \ \ \ \ \ \ \bs onlyvoll\{ \bs editor\})\b{\}} +\\ \ \{\bs ktit\{Strategie\}, Hanseatische +\\ \ \ \ \ \ \ Verlagsanstalt 1937\} +} +{ +\notktitaddtok +\showbacorr \itshape +...: \printonlyvqu{Carl von} {Clausewitz} +*{(\vauthor{Eberhard}{Kessel}% +\onlyvoll{ \editor})} +{\ktit{Strategie}, Hanseatische Verlagsanstalt 1937} +}\label{editor}% + +\noindent +Das dabei verwendete \verb|\editor| hat kein Sortiergewicht +(Beispiel nicht in der Liste gedruckter Quellen). +F"ur mehrere Herausgeber existiert \verb|\editors|; im\pdfko{1}\ +Deutschen sind sowohl \verb|\geditorname| als auch \verb|\geditorpname| +mit {\small\editor} belegt. Wie viele Textelemente, die in +Umfeldschrift gedruckt werden, kommen die beiden ohne \textit{italics}\hy +Korrekturen aus. Derartige sprachabh"angige Separatoren werden +unten in Kapitel~\ref{SprachSep} ab S.\,\pageref{SprachSep} +behandelt. Anhand der Voreinstellungen k"onnen Sie daraus, ob in +der Deklaration corr\hy Befehle stehen, meist direkt schlussfolgern, +wo Sie bei "Anderungen Korrekturen einf"ugen m"ussten. + +\vspace{1.5ex}\noindent +Es gibt keinen Befehl, um die Schrift \textit{des gesamten 'Rest' +von v\fhy Befehlen} einzustellen. Auch der Volltitel darin l"asst +sich nur eingeschr"ankt hervorheben. Falls Sie innerhalb des +letzten Arguments \verb|\ktit{|...\verb|}| n"amlich einfach +einklammern, kann \BibArts\ den Kurztitel nicht mehr 'sehen'. +Da '"au"sere' v\fhy Befehle kein \verb|\ktit| haben +\textit{m"ussen}, f"allt \BibArts\ diese 'Ausblendung' nicht auf +und\pdfko{1}\ +es macht keine Fehlermeldung. Mit den beiden \LaTeX2e\hy +Befehlen \verb|\itshape|\pdfko{1.25}\ +und \verb|\upshape| gibt es eine L"osung ohne Klammern. Sie +nutzt aus, dass zwischen Titel und Erscheinungsort/""\fhy jahr +ein Komma steht: + +\Doppelbox +{\vspace{-.8ex} +Vers.\string~1: \bs vli\{Niklas\}\{Luhmann\} \b{\{}\bs textit\b{\b{\{}}\bs ktit\{Soziale Systeme\}. +\\ \ \ Grundri"s einer allgemeinen +\\ \ \ Theorie\b{\b{\}}}, 1984: Frankfurt/M.\b{\}}. +\\[2.8ex] +Vers.\string~2: \bs vli\{Niklas\}\{Luhmann\} \H{\{}\bs\underbar{itshape}\bs ktit\{Soziale Systeme\}. +\\ \ Grundri"s einer allgemeinen +\\ \ Theorie\bs\underbar{upshape}, 1984: +\\ \ Frankfurt/M.\H{\}}. \ \%\% RICHTIG \%\% +} +{\vspace{1ex} +Vers.~1: \printonlyvli{Niklas}{Luhmann} {\textit{\ktit{Soziale Systeme}. +Grundri"s einer allgemeinen +Theorie}, 1984: Frankfurt/M.}. +\\[4.1ex] +Vers.~2: \printonlyvli{Niklas}{Luhmann} {\itshape\ktit{Soziale Systeme}. +Grundri"s einer allgemeinen +Theorie\upshape, 1984: Frankfurt/M.}. +}% + + +\vfill\noindent +\textsf{Zur allgemeinen Vermeidung von\hspace{.1em} ..\hspace{.1em} +nach v\fhy Befehlen siehe gleich unten S.\,\pageref{v-Ausnahme}.} + + + +\newpage +\section{Punkte, \,\texttt{\bs bahasdot} \,und \,\texttt{\bs banotdot}}\label{Sect11}\label{Punkte} + +Die \BibArts\hy Befehle, die statt ihrer Argumente auch \textsc{ebd.} +ausdrucken k"onnen,\pdfko{.5}\ +d"urfen den Ausdruck eines unmittelbar nach ihnen +getippten Punktes eigenst"andig unterbinden. Sonst w"urden +am Satzende oft zwei Punkte gedruckt (\kern-.5pt\textsc{ebd.}.). +Diese Befehle sind \verb|\kli|, \verb|\kqu|, \verb|\per| +und \verb|\abkper|, sowie \verb|\arq|. + +\vspace{1ex}\noindent +In englischen Texten (unter \verb|\nonfrenchspacing|) sorgen +Punkte nach \BibArts\hy Befehlen zudem f"ur das richtige +\textit{spacing}: \hspace{.2em}\verb*|}. | am Ende eines der gerade aufgez"ahlten +Befehle bezeichnet ein Satzende und verl"angert das +Leerzeichen~(\kern-.02em\verb*| |\kern.02em).\pdfko{.75}\ +Auch \verb*|\abk{X.X.X.}. | bezeichnet ein Satzende und druckt +\textit{immer} \hspace{.1em}\abk{X.X.X.}. + +Auch im \verb|\frenchspacing| (dt.\ oder frz.\ Texte mit stets gleicher Leerzeichenl"ange) +sollten Sie hinter \verb|\kli| und sogar unter \verb|\notprinthints| tippen: + +\vspace{1ex}{\notprinthints\noindent\small +\verb| [deutsch/franz.:] \kli{Maier}{D.\,D.\,R.}. N =>| \printonlykli{Maier}{D.\,D.\,R.}. N \\ +\verb| \nonfrenchspacing \kli{Maier}{D.\,D.\,R.}. N =>| {\nonfrenchspacing\printonlykli{Maier}{D.\,D.\,R.}. N}} + +\vspace{1.25ex}\noindent +... denn nur dann k"onnen Sie sp"ater wieder auf \verb|\printhints| zur"uckschalten:\pdfko{1}\ + +\vspace{1ex}{\printhints\noindent\small +\verb| [deutsch/franz.:] \kli{Maier}{D.\,D.\,R.}. N =>| \printonlykli{Maier}{D.\,D.\,R.}. N \\ +\verb| \nonfrenchspacing \kli{Maier}{D.\,D.\,R.}. N =>| {\nonfrenchspacing\printonlykli{Maier}{D.\,D.\,R.}. N}} + +\vspace{1.75ex}\noindent +\BibArts\ durchsucht viele Argumente nach Punkten und verhindert ..\ +eigenst"andig. Falls es doch ..\ druckt, 'sieht' es den Punkt +\textit{am Ende des Arguments}\pdfko{.5}\ +nicht. \hspace{.2em}\verb|{|...\verb|\bahasdot}.| \hspace{-.1em}definiert, +den nachfolgenden Punkt zu 'verschlucken'. + +\vspace{1ex}\noindent +Nicht automatisch ist die Punktl"oschung nach optionalen Zusatzargumenten +f"ur Band- oder Seitenangaben. Deshalb sollten Sie etwa +\verb|f.\bahasdot].| \hspace{-.1em}ans\pdfko{1.75}\ +Ende setzen, oder einfach \verb|\f].| oder \verb|\sq].| +(f"ur \textit{folgende} oder \textit{sequentes}), die\pdfko{1.75}\ +beide im Englischen und Deutschen f.\ drucken (und immer \textit{einen} Punkt): + +\vspace{1.25ex}\noindent +{\small +\verb+ \per{ZfG.}[2 f.]. =>+ \per{ZfG.}[2 f.]. \hspace{1cm} \verb|%% falsch!| \\ +\verb+ \per{ZfG.}[2 f.\bahasdot]. =>+ \per{ZfG.}[2 f.\bahasdot]. \\ +\verb+ \per{ZfG.}[2\f]. =>+ \per{ZfG.}[2\f]. +} + +\vspace{1.5ex}\noindent +Ein Sonderfall: \verb|\bahasdot| darf \textit{nicht} +nach \verb|!| oder \verb|?| ans Argumenten\hy Ende\pdfko{1}\ +gesetzt werden, weil dann ggf.\ notwendige \textit{italics}\hy Korrekturen unterbleiben: + +\vspace{1.25ex}\noindent +{\small +{\renewcommand{\kxxemph}{\itshape}\notprinthints \showbacorr + \verb| \renewcommand{\kxxemph}{\itshape} \notprinthints \showbacorr| \\[.25ex] + \verb+ (\kli{Kingsley}{Westward Ho!\bahasdot}) =>+ (\printonlykli{Kingsley}{Westward Ho!\bahasdot}) \\ + \verb+ (\kqu{Sienkiewicz}{Quo vadis?\bahasdot}) =>+ (\printonlykqu{Sienkiewicz}{Quo vadis?\bahasdot}) +}} + +\vspace{1.5ex}\noindent +Vielmehr ist es n"otig, nur das Setzen des nachfolgenden Punktes zu unterbinden, +die \textit{italics}\hy Korrektur aber zu belassen. \verb|\banotdot| ist zu verwenden:\pdfko{1} + +\vspace{1.5ex}\noindent +{\small +{\renewcommand{\kxxemph}{\itshape}\showbacorr\notprinthints +\verb+ (\kli{Kingsley}{Westward Ho!\banotdot}) =>+ (\printonlykli{Kingsley}{Westward Ho!\banotdot}) \\ +\verb+ (\kqu{Sienkiewicz}{Quo vadis?\banotdot}) =>+ (\printonlykqu{Sienkiewicz}{Quo vadis?\banotdot}) +}} + +\vspace{1.75ex}\noindent +Damit \verb|bibsort| stets zeichengleiche Eintr"age bekommt, +muss ein einmal begonnenes Setzen von \verb|\banotdot| beim +jeweiligen Titel immer erfolgen: + +\vspace{1ex}\noindent +{\footnotesize +{\renewcommand{\kxxemph}{\itshape}\notprinthints \showbacorr + \verb| \renewcommand{\kxxemph}{\itshape} \notprinthints \showbacorr| \\[.25ex] + \verb+ (\kli{Kingsley}{Westward Ho!\banotdot}.) =>+ (\printonlykli{Kingsley}{Westward Ho!\banotdot}.) \\ + \verb+ \kli{Kingsley}{Westward Ho!\banotdot}[3]. =>+ \printonlykli{Kingsley}{Westward Ho!\banotdot}[3]. \\ + \verb+ \kqu{Sienkiewicz}{Quo vadis?\banotdot} in =>+ \printonlykqu{Sienkiewicz}{Quo vadis?\banotdot} in \\ + \verb+ \kqu{Sienkiewicz}{Quo vadis?\banotdot}|2| =>+ \printonlykqu{Sienkiewicz}{Quo vadis?\banotdot}|2|% +}}\label{kxxB} + +\vspace{2.5ex}\noindent +Nicht automatisch bew"altigt wird \,\verb|!\banotdot}| \,vor \textit{mehreren} Punkten. +Zur\pdfko{1}\ +L"osung dieses sehr seltenen Problems kann \verb|\strut| nach \verb|}| gesetzt +werden: \verb|\kli{N.}{XX!\banotdot}...| kann zur falschen \textit{italics}-""Korrektur +{\renewcommand{\kxxemph}{\itshape}\notprinthints \showbacorr + \printonlykli{N.}{XX!\banotdot}...\pdfko{.5}\ +f"uhren, w"ahrend +\,\verb|\kli{N.}{XX!\banotdot}\strut...| \,zu\, +\printonlykli{N.}{XX!\banotdot}\strut...} \,f"uhrt.\pdfko{.5}\ + +\vspace{2ex}\noindent +\fbox{\parbox{.98\textwidth}{\hfil\sffamily +Einfacher ist es sicher, wenn Sie sich Kurztitel ohne Satzzeichen aussuchen.}} + + +\vspace{4ex}\noindent +Nach dem letzten Argument von \verb|\vli| oder \verb|\vqu| l"oscht +\BibArts\ einen Punkt\pdfko{1}\ +\textit{im Text} \underline{nie} automatisch, +weil es \textit{dort} das letzte Argument nicht durchsucht. +Falls das letzte Argument eines v\fhy Befehls mit einem Punkt +enden sollte, ist die Verwendung von \verb|\bahasdot| in jeder +Sprache sinnvoll, denn nur dann ist ein sp"aterer Wechsel zwischen +\verb|\announcektit| und \verb|\notannouncektit|\pdfko{1.5}\ +m"oglich (die Ank"undigung der sp"ateren Kurzzitierweise). + +\Doppelbox +{ +\bs notannouncektit +\\ +Vers.\string~1: \bs vli\{Niklas\}\{Luhmann\} \{\bs ktit\{Soziale Systeme\}. Grundri"s +einer allgemeinen Theorie, 1984: Frankfurt/M.\}. \ \ \%\%~FALSCH +\\[1ex] +\% Nicht in die Listen umgesetzt: +\\[.25ex] +Vers.\string~2: \bs vli\{Niklas\}\{Luhmann\} \{\bs ktit\{Soziale Systeme\}. Grundri"s +einer allgemeinen Theorie, 1984: Frankfurt/M.\bs bahasdot\}. Das ... +} +{\vspace{1.1ex} +\notannouncektit +Vers.~1: \vli{Niklas}{Luhmann} {\ktit{Soziale Systeme}. Grundri"s +einer allgemeinen Theorie, 1984: Frankfurt/M.}. +\\[2.375ex] +Vers.~2: \printonlyvli{Niklas}{Luhmann} {\ktit{Soziale Systeme}. Grundri"s +einer allgemeinen Theorie, 1984: Frankfurt/M.\bahasdot}. +Das ist auch unter \texttt{\bs frenchspacing} besser! +}% +\label{v-Ausnahme}% + +\vspace{.25ex}\noindent +Beim Drucken der \textit{Listen} wird im letzten Argument von v\fhy Befehlen +aber nach 'Punkt' gesucht; Frankfurt/M.. ist so in \verb|\printvli| +und \verb|\printvqu|\pdfko{.5}\ +ausgeschlossen (solange nicht etwas wie \verb|.{}}.| +am Ende steht). Vers.\,2 ist in die Listen nicht umgesetzt, +um dort zwei Luhmann\hy Eintr"age zu vermeiden. + +\vfill\noindent +Zusammengefasst gibt es eine Ausnahme bei v\fhy Befehlen, +wenn statt der Voreinstellung \verb|\notannouncektit| verwendet wird. +Falls Sie in deutschen Texten (\texttt{ngerman.sty} setzt +\verb|\frenchspacing|) darauf und auf \verb|\notprinthints| +verzichten, brauchen Sie \verb|\banotdot| und \verb|\bahasdot| +nicht unbedingt zu kennen. + + +\newpage\noindent +F"ur die \textbf{Definition der Textelemente}, die f"ur den Ausdruck zwischen den +Argumenten von \BibArts\hy Befehlen vorgefertigt sind ('Separatoren'), +dient der Befehl \verb|\bapoint| zum Drucken eines Punktes am Separatoren"-\textit{kopf}. +\hspace{.1em}\verb|\bapoint| reagiert auf die Suche nach einem Punkt \textit{am Endes des +Arguments davor}\pdfko{.25}\ +(bzw.\ auf Ihr \verb|\bahasdot| oder \verb|\banotdot|) und druckt dann +\textit{keinen} Punkt. + +Falls Sie im Text in \verb|\arq| zwischen Schriftst"uck und Signatur +einen Punkt statt ein Komma haben wollen, m"ussen Sie \verb|\arqsep| +umdefinieren. Sie sollten nicht \verb*|{. }|\kern.1em\ zuweisen:\kern.2em\ +\verb|\renewcommand{\arqsep}{\bapoint\newsentence}| reagiert automatisch +und druckt keinen Punkt, wenn die sp"atere Eingabe des Schriftst"ucks +bereits selbst mit einem Punkt endet.\footnote{ +\texttt{\,\bs renewcommand\{\bs arqsep\}\{\bs bapoint\bs newsentence\} +\ \% fuer beide spacings!} +\\[.75ex] +%\nonfrenchspacing %%Testen Sie!%% +\renewcommand{\arqsep}{\bapoint\newsentence} +\strut\texttt{ \ \ \ \bs arq\{Gesellschaftsvertrag der KCAG\}\{BA} ... \texttt{ =>} \\[.5ex] +\arq{Gesellschaftsvertrag der KCAG} {BA Zwischenarchiv Dahlwitz-""Hoppegarten R\,8729~4}. +\\[1ex] +\strut\texttt{ \ \ \ \bs arq\{Test!\bs banotdot\}\{BA} ... \texttt{ =>} \\[.5ex] +\clearbamem\arq{Test!\banotdot} {BA Zwischenarchiv Dahlwitz-""Hoppegarten R\,8729~4}. +\\[1ex] +\strut\texttt{ \ \ \ \bs arq\{Abk.\}\{BA} ... \texttt{ =>} \\[.5ex] +\clearbamem\arq{Abk.} {BA Zwischenarchiv Dahlwitz-""Hoppegarten R\,8729~4}.} + +Beim \textit{Ausdruck der Listen} wird \verb|\bapoint| am Ende jedes Listenpunkts +ausgef"uhrt von \verb|\printvli| und \verb|\printvqu| +(durch \verb|\fromnopagevxxsep|) sowie von \verb|\printarq| +(durch \verb|\fromnopagearqsep|) und von +\verb|\printper| (durch \verb|\fromnopagepersep|). Falls Sie die +einzelnen Listenpunkte in \verb|\printvkc| und \verb|\printabk| ebenfalls +hinterpunktet haben wollen, m"ussen Sie einfach +\verb|\renewcommand{\fromnopagevkcsep}{\bapoint}| befehlen +und im gleichen Stil \verb|\fromnopageabksep| umdefinieren. + + +\vspace{1.5ex}\noindent +Obwohl \BibArts\ \textit{im Text} das letzte Argument des v\fhy Befehls nicht +nach Punkten durchsucht, druckt ein dort ans Ende gesetztes +\verb|\ersch{|\textit{Ort}\verb|}{}| mit leerer\pdfko{1}\ +Jahresangabe \ersch{\textit{Ort}}{} mit \textit{einem} Punkt aus. Sie k"onnen am +Satzende also\pdfko{.4}\ +intuitiv vorgehen und den \underline{Punkt\kern-1.5pt} einfach +hinter die Literaturangabe setzen: + +\vspace{.5ex}\noindent +{\small + \verb| \vli{}{}{Titel, \ersch{Bonn}{}}|\underline{\texttt{.}}\verb| => | + \printonlyvli{}{}{Titel, \ersch{Bonn}{}}.} + +\vspace{.5ex}\noindent +Nicht gedruckt wird \oJ. deshalb, weil das leere \verb|\ersch|\hy Argument +\verb|\oJ| ausf"uhrt, das seinerseits ganz am +Ende \verb|\bahasdot| setzt. Da \verb|\oD|, \verb|\oO| und \verb|\oJ|\pdfko{1.25}\ +zun"achst \verb|\protect|\hy gesch"utzt \verb|\poD|, \verb|\poO| und \verb|\poJ| +ausf"uhren, sollte \textit{an diesen} eine Umdefinition von \oD, \oO\ und \oJ\ ansetzen +(ggf.\ mit \verb|\bahasdot|\pdfko{.75}\ +am Ende). \verb|\ersch| verwendet \verb|\oO| +und \verb|\oJ| nur in deutschen Texten; deren\pdfko{1}\ +Umdefinition "andert \verb|\ersch| nur unter +\verb|\bacaptionsgerman| (vgl.\ S.\,\pageref{SprachSep}, \pageref{gerschnoyearname}). + +Die bereits erw"ahnten Befehle \verb|\f| und \verb|\sq| setzen +\verb|\bahasdot| ebenfalls.\pdfko{.75}\ +\textit{Beide} f"uhren von +der Spracheinstellung abh"angig entweder \verb|\gfolpagename|\pdfko{1.25}\ +oder \verb|\efolpagename| oder \verb|\ffolpagename| aus und +drucken f.\ im Deutschen\pdfko{1}\ +und Englischen, aber sq.\ im Franz"osischen. +Es gibt auch \verb|\ff| (und \verb|\sqq|). + + +\newpage\noindent +\textbf{Wiederholung: Anwenderfreie corr-Befehle, }\texttt{\bs bapoint}\textbf{ und }\texttt{\bs bastrut} + +\begin{itemize} +\item Ganz am Anfang der Definition eines Separators k"onnen \verb|\bapoint| + oder\pdfko{1.5}\ + \verb|\bastrut| stehen. Sie schlie"sen sich gegenseitig aus; es + d"urfen nicht beide hintereinander stehen. Falls Sie ganz an den + Anfang eines Separators ein 'echtes' Zeichen setzen (kein + Leerzeichen), sind beide "uberfl"ussig. +\item \verb|\bapoint| tut nichts, wenn das \textit{im \BibArts\hy Befehl + direkt zuvor gesetzte Argument} mit einem Punkt oder \verb|\banotdot| + oder \verb|\bahasdot| endet. Sonst druckt \verb|\bapoint| einen Punkt. +\item \verb|\bastrut| steht vor Leerzeichen (\verb*|\ |) oder + \verb|\hskip|\hy\ oder \verb|\hspace|\hy Befehlen, um ihnen einen + Zeilenumbruch zu erlauben. (Falls das vorausgehend gesetzte Argument + eines \BibArts\hy Befehls mit einem Punkt endet, k"onnte dies sonst + einen Zeilenumbruch oft verbieten.) \verb|\bastrut| ist freilich vor + \verb|~| und anderen gesch"utzten Leerzeichen nicht n"otig. +\item Ist das erste 'echte' Zeichen eines Separators ein hohes Zeichen, + sollten Sie dann einen corr-Befehl davorsetzen, wenn das vorausgehend + gesetzte Argument schr"aggestellt sein k"onnte (weil dort die Schrift + einstellbar ist). Vor Punkt, Komma oder \verb|\bapoint| ist + nie ein corr\hy Befehl n"otig. +\item W"ahrend die \LaTeX\hy eigene \textit{italics}\hy Korrektur \verb|\/| + vor oder nach Leerzeichen nichts tut, treten \BibArts\hy + corr\hy Befehle immer in Aktion. In den Voreinstellungen sind corr\hy + Befehle auch an Leerzeichen gesetzt. Ein Grund ist, dass Sie sich + anhand der Vorfertigungen eines Separators dar"uber informieren + k"onnen, wie der zugeh"orige corr\hy Befehl hei"st. Ob Sie dies in + Ihren Neudefinionenen auch machen, ist freilich wahlfrei. +\item Steht ein corr\hy Befehl vor einem Leerzeichen, unterbindet dies einen + Zeilenumbruch; in umgekehrter Reihenfolge ist einer erlaubt. Weiter + soll \verb|\bastrut| \textbf{nie} \textit{nach} einem corr\hy Befehl + stehen. Um einen Zeilenumbruch zu erlauben, gilt die Reihenfolge + \verb|\bastrut| $-$ Leerzeichen $-$ corr\hy Befehl. Es gibt zwei + Ausnahmen: \verb|\baabkcorr|, wenn es in den Separatoren + \verb|\abkdefopen| oder \verb|\defabkclose| steht; und + \verb|\bakxxcorr| immer: Die m"ussen \textit{vor} Leerzeichen stehen! + Das gilt nach allen Argumenten, f"ur die Schr"agschriften einstellbar + sind $-$ besonders in abk- und k\hy Befehlen.\label{Systematik} +\item Wenn ein Separator von mehreren \BibArts\hy Befehlen benutzt wird, + m"ussen manche corr-Befehle in \BibArts\hy if\hy Argumenten stehen. + \verb|\ifbashortcite| etwa trennt k\fhy Befehle von allen anderen + \BibArts\hy Befehlen. Weiter kann eine Unterscheidung mit + \verb|\ifbaibidem| n"otig werden, weil ein f"ur einen ganzen + \BibArts\hy Befehl eingesetztes \textsc{ebd.} immer aufrecht ist. + \verb|\pernosep| etwa wird nur \textit{sonst} abgearbeitet. +\end{itemize} + + + +\newpage +\section{Sprachabh"angige Separatoren (\kern-.02em\textit{captions})}\label{Sect12}\label{SprachSep} + +Wenn Sie mit dem \BibArts-Befehl \verb|\sethyphenation{|\textit{Sprache}\verb|}| +oder alternativ f"ur Zitatbl"ocke mit +\verb|\begin{originalquote}[|\textit{Sprache}\verb|]| eine bestimmte\pdfko{1.125}\ +Sprache einstellen, wird nur bestimmt, wie Worte getrennt werden (Trennsatz). +Andere Schalter stellen die Basissprache des Textes ein, bestimmen also, +in welcher Sprache Text\hy Separatoren (\kern-.1em\textit{captions}) zu drucken +sind $-$\pdfko{1.25}\ +ob beispielsweise die Abk"urzung f"ur Seite \textit{S.} oder \textit{p.} lautet. +W"ahrend der\pdfko{1.25}\ +Trennsatz oft mehrfach in einem Text f"ur fremdsprachige w"ortliche Zitate +jeweils angepasst wird, bleibt die Sprache der Text\hy Separatoren in einem +Text meist durchgehend gleich. \BibArts\hy \textit{captions} werden also meist +im Vorspann des\pdfko{1.25}\ +\LaTeX\hy Textes festgelegt; \verb|\bacaptionsgerman| +ist voreingestellt. \BibArts\ stellt\pdfko{1.5}\ +gegenw"artig zudem \verb|\bacaptionsenglish| +und \verb|\bacaptionsfrench| bereit.\pdfko{1}\ +Falls Sie \verb|ngerman.sty| nutzen, +m"ussen Sie ggf.\ die dort bereitgestellten Befehle \verb|\captionsenglish| +oder \verb|\captionsfrench| zus"atzlich setzen, denn die\pdfko{1.25}\ +\verb|\bacaptions|...\hy Befehle "andern die Voreinstellungen f"ur +\LaTeX\hy \textit{captions} wie\pdfko{1.75}\ +etwa \textit{\chaptername} (\verb|\chaptername|) nicht. +\verb|\bacaptions|...\hy Befehle "andern nur die\pdfko{1.5}\ +Voreinstellungen f"ur \BibArts\hy Befehle; dementsprechend bewirkt etwa + +\vspace{.75ex}{\small\noindent +\verb| \bacaptionsenglish \vli{}{}{Text}[20] => |{\bacaptionsenglish \printonlyvli{}{}{Text}[20]} \\ +\verb| \bacaptionsgerman \vli{}{}{Text}[20] => |{\bacaptionsgerman \printonlyvli{}{}{Text}[20]}} + +\vspace{1.325ex}\noindent +Bei der \textit{Einstellung} sprachabh"angiger Separatoren gibt es einen +Sonderfall: Wie oben Seite~\pageref{setibidem} +beschrieben, wird \textsc{ebd.}\ mit \verb|\setibidem{g}{ebenda}{}| +in\pdfko{1.5}\ +\textsc{ebenda} umgestellt; im letzten geschweifte Klammerpaar +kann alternativ ein Punkt stehen, falls eine Abk"urzung gedruckt werden +soll (der Punkt, mit dem die Abk"urzung endet). In den beiden anderen +Sprachen lauten die Voreinstellungen \textsc{ibid.} im Franz"osischen +und \textsc{ibidem} im Englischen. Dies l"asst sich "andern, etwa vertauschen.\footnote{ +\texttt{\bs setibidem\{e\}\{ibid\bs kern -0.07em\}\{.\}} \setibidem{e}{ibid\kern -0.07em}{.} \\ +\hspace*{5.5mm} \texttt{\bs setibidem\{f\}\{ibidem\}\{\}} \setibidem{f}{ibidem}{} \\ +\hspace*{5.5mm} \texttt{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \bs kli\{\}\{Text\}[20]. \ => } \bacaptionsgerman \printonlykli{}{Text}[20]. \\ +\hspace*{5.5mm} \texttt{\bs bacaptionsenglish \ \ \ \ \ \bs kli\{\}\{Text\}[20]. \ => } \bacaptionsenglish \printonlykli{}{Text}[20]. \\ +\hspace*{5.5mm} \texttt{\bs bacaptionsfrench \ \ \ \ \ \ \bs kli\{\}\{Text\}[20]. \ => } \bacaptionsfrench \printonlykli{}{Text}[20].} + +\vspace{1ex}\noindent +Alle anderen \textit{captions} d"urfen Sie mit \verb|\renewcommand| "andern, +wenn Ihnen\pdfko{1}\ +die Voreinstellungen von \BibArts\ nicht gefallen. Z.\,B. +\verb|\vli{}{}{Text}| w"urde nach \verb|\renewcommand{\ganonymousname}{[?]}| +ausdrucken: {\renewcommand{\ganonymousname}{[?]} \printonlyvli{}{}{Text}}.\pdfko{.5}\ +Die deutschen \textit{captions} beginnen mit \verb|\g|..., die englischen mit +\verb|\e|...\ und die\pdfko{1}\ +franz"osischen mit \verb|\f|...\,. Ich liste nun die +in \verb|bibarts.sty| definierten Voreinstellungen auf. Nach Silben mit +Sonderzeichen (wie "s oder \'e) ist jeweils die Trennhilfe \verb|\-| +eingesetzt; da diese die erste erlaubte Trennstelle in einem\pdfko{.5}\ +Wort definiert, +sind ggf.\ weitere \verb|\-| im davorstehenden Wortteil zu setzen. + +\vspace{1ex}\noindent{\small +\verb|\ganonymousname => {[Anonym]}| \\[-.8ex] +\verb|\eanonymousname => {[Anonymous]}| \\[-.8ex] +\verb|\fanonymousname => {[Anonyme]}| \\[-.2ex] +Kein Autor in v- oder k-Befehlen eingetippt: \verb|\kli{}{T} =>| \printonlykli{}{T}. +\\[.8ex]% +\verb|\geditorname => {[\kern 0.04em Hrsg.]\kern 0.02em}| \\[-.8ex] +\verb|\eeditorname => {(\kern -0.03em ed.\kern -0.06em)\kern 0.02em}| \\[-.8ex] +\verb|\feditorname => {(\kern -0.03em \'ed.\kern -0.06em)\kern 0.02em}| \\[-.2ex] +Text f"ur Befehl \verb|\editor =>| \editor\ \ (siehe oben S.\,\pageref{editor}). +\\[.8ex]% +\verb|\geditorpname => {[\kern 0.04em Hrsg.]\kern 0.02em}| \\[-.8ex] +\verb|\eeditorpname => {(\kern -0.03em eds.\kern -0.08em)\kern 0.02em}| \\[-.8ex] +\verb|\feditorpname => {(\kern -0.03em \'ed.\kern -0.06em)\kern 0.02em}| \\[-.2ex] +Text f"ur Befehl \verb|\editors| (mehrere Herausgeber); mit \verb|\bacaptionsenglish|: {\bacaptionsenglish\editors}. +\\[.8ex]% +\verb|\gidemname => {ders\kern -0.04em.}| \\[-.8ex] +\verb|\eidemname => {idem}| \\[-.8ex] +\verb|\fidemname => {le m\^e\-me}| \\[-.2ex] +Derselbe Autor wird direkt hintereinander mit verschiedenen Werken zitiert: \\[-.2ex] +\verb|[m]| direkt nach v- und k-Befehlen: \verb|\kli[m]{N}{T} =>| \printonlykli[m]{N}{T}. +\\[.8ex]% +\verb|\geademname => {dies\kern -0.04em.}| \\[-.8ex] +\verb|\eeademname => {eadem}| \\[-.8ex] +\verb|\feademname => {la m\^e\-me}| \\[-.2ex] +\verb|[f]| direkt nach v- und k-Befehlen: \verb|\kli[f]{N}{T} =>| \printonlykli[f]{N}{T}. +\\[.8ex]% +\verb|\giidemname => {diesn\kern -0.07em.}| \\[-.8ex] +\verb|\eiidemname => {iidem}| \\[-.8ex] +\verb|\fiidemname => {les m\^e\-mes}| \\[-.2ex] +\verb|[p]| direkt nach v- und k-Befehlen: \verb|\kli[p]{N}{T} =>| \printonlykli[p]{N}{T}. +\\[.8ex]% +\verb|\gvolname => {, Bd.\,}| \\[-.8ex] +\verb|\evolname => {, vol.\,}| \\[-.8ex] +\verb|\fvolname => {, vol.\,}| \\[-.2ex] +Bandangabe nach v-, k-, arq- und per-Befehlen: \verb+\per{ZfG.}|2| =>+ \per{ZfG.}|2|. +\\[.8ex]% +\verb|\gvolpname => {, Bde.\,}| \\[-.8ex] +\verb|\evolpname => {, vols.\,}| \\[-.8ex] +\verb|\fvolpname => {, vol.\,}| \\[-.2ex] +Nach v-, k-, arq- und per-Befehlen: +\verb+\per{ZfG.}|2-3| =>+ \per{ZfG.}|2-3|.\footnote{\BibArts\ ermittelt + einen vorliegenden Plural selbst"andig, indem es das Argument nach + \texttt{-}, [Komma], \texttt{\bs hy}, \texttt{\bs fhy}, \texttt{\bs f}, + \texttt{\bs ff}, \texttt{\bs sq}, und \texttt{\bs sqq} durchsucht, + oder setzt die Plural\hy \textit{caption}\pdfko{.75}\ + ein, wenn Sie \texttt{\bs baplural} setzen; vgl.\ oben S.\,\pageref{baplural}.} +\\[.8ex]% +\verb|\gpername => {\ifbaibidem{, Nr.\,}{\pernosep}}| \\[-.8ex] +\verb|\epername => {\ifbaibidem{, no.\,}{\pernosep}}| \\[-.8ex] +\verb|\fpername => {\ifbaibidem{, n\fup{o}\,}{\pernosep}}| \\[-.2ex] +Heftangaben im Singular (mit/ohne \textsc{ebd.}) in v-, k-, arq- und per-Befehlen.\footnote{ + \texttt{\bs per\{ZfG.\}\_5\_ und \bs per\{ZfG.\}\_6\_ \ \ \ \ => } + \per{ZfG.}_5_ und \per{ZfG.}_6_.} +\\[.8ex]% +\verb|\gperpname => {\ifbaibidem{, Nr.\,}{\pernosep}}| \\[-.8ex] +\verb|\eperpname => {\ifbaibidem{, no.\,}{\pernosep}}| \\[-.8ex] +\verb|\fperpname => {\ifbaibidem{, n\fup{os}\,}{\pernosep}}| \\[-.2ex] +Heftangaben im Plural (mit/ohne \textsc{ebd.}) in v-, k-, arq- und per-Befehlen. \\[-.2ex] +Beispiel unter \verb|\bacaptionsfrench| in der Fu"snote.\footnote{\bacaptionsfrench + \texttt{\bs per\{Jour\}\_4-5\_ et \bs per\{Jour\}\_6-7\_ \ => } + \printonlyper{Jour}_4-5_ et \printonlyper{Jour}_6-7_.} +\newpage\noindent%\\[.8ex]% +\verb|\gisonfolioname => {, Bl.\,}| \\[-.8ex] +\verb|\eisonfolioname => {, folio\nobreak \ }| \\[-.8ex] +\verb|\fisonfolioname => {, folio\nobreak \ }| \\[-.2ex] +Blattangabe nach v-, k-, arq- und per-Befehlen: \verb|\arq{}{PRO}(2) =>| \printonlyarq{}{PRO}(2). +\\[.8ex]% +\verb|\gisonfoliopname => {, Bl.\,}| \\[-.8ex] +\verb|\eisonfoliopname => {, folii\nobreak \ }| \\[-.8ex] +\verb|\fisonfoliopname => {, folii\nobreak \ }| \\[-.2ex] +Sichtbar in {\bacaptionsenglish\verb|\bacaptionsenglish| \verb|\arq{}{PRO}(2-3) =>| \printonlyarq{}{PRO}(2-3).} +\\[.8ex]% +\verb|\gisonxfolioname => {, dort: Bl.\,}| \\[-.8ex] +\verb|\eisonxfolioname => {, there: Folio\nobreak \ }| \\[-.8ex] +\verb|\fisonxfolioname => {, l\`a: Folio\nobreak \ }| \\[-.2ex] +\verb|*|-Blatt nach v-, k-, arq- und per-Befehlen: \verb|\arq{}{PRO}*(2) =>| \printonlyarq{}{PRO}*(2). +\\[.8ex]% +\verb|\gisonxfoliopname => {, dort: Bl.\,}| \\[-.8ex] +\verb|\eisonxfoliopname => {, there: Folii\nobreak \ }| \\[-.8ex] +\verb|\fisonxfoliopname => {, l\`a: Folii\nobreak \ }| \\[-.2ex] +Sichtbar in {\bacaptionsenglish\verb|\bacaptionsenglish| \verb|\arq{}{PRO}*(2-3) =>| \printonlyarq{}{PRO}*(2-3).} +\\[.8ex]% +\verb|\gisonpagename => {, S.\,}| \\[-.8ex] +\verb|\eisonpagename => {, p.\,}| \\[-.8ex] +\verb|\fisonpagename => {, p.\,}| \\[-.2ex] +Seitenangabe nach v-, k-, arq- und per-Befehlen: \verb|\kli{N}{T}[2] =>| \printonlykli{N}{T}[2]. +\\[.8ex]% +\verb|\gisonpagepname => {, S.\,}| \\[-.8ex] +\verb|\eisonpagepname => {, pp.\,}| \\[-.8ex] +\verb|\fisonpagepname => {, p.\,}| \\[-.2ex] +Sichtbar in {\bacaptionsenglish\verb|\bacaptionsenglish| \verb|\kli{N}{T}[2-3] =>| \printonlykli{N}{T}[2-3].} +\\[.8ex]% +\verb|\gisonxpagename => {, dort: S.\,}| \\[-.8ex] +\verb|\eisonxpagename => {, there: p.\,}| \\[-.8ex] +\verb|\fisonxpagename => {, l\`a: p.\,}| \\[-.2ex] +\verb|*|-Seite nach v-, k-, arq- und per-Befehlen: \verb|\kli{N}{T}*[2] =>| \printonlykli{N}{T}*[2]. +\\[.8ex]% +\verb|\gisonxpagepname => {, dort: S.\,}| \\[-.8ex] +\verb|\eisonxpagepname => {, there: pp.\,}| \\[-.8ex] +\verb|\fisonxpagepname => {, l\`a: p.\,}| \\[-.2ex] +Sichtbar in {\bacaptionsenglish\verb|\bacaptionsenglish| \verb|\kli{N}{T}*[2-3] =>| \printonlykli{N}{T}*[2-3].} +\\[.8ex]% +\verb|\gbibtitlename => {Quellen und Literatur}| \\[-.8ex] +\verb|\ebibtitlename => {Bibliography}| \\[-.8ex] +\verb|\fbibtitlename => {Bibliographie}| \\[-.2ex] +Titel gesamter Belegapparat ("Uberschrift \BibArts-Anhang) \verb|\printbibtitle|. +\\[.8ex]% +\verb|\gabktitlename => {Ab\-k\"ur\-zungen}| \\[-.8ex] +\verb|\eabktitlename => {Abbreviations}| \\[-.8ex] +\verb|\fabktitlename => {Ab\-r\'e\-viations}| \\[-.2ex] +Titel Abk"urzungsverzeichnis \verb|\printabk| und \verb|\printnumabk| bzw.\ \verb|\printabktitle|. +\\[.8ex]% +\verb|\gvlititlename => {Literatur}| \\[-.8ex] +\verb|\evlititlename => {Literature}| \\[-.8ex] +\verb|\fvlititlename => {Travaux}| \\[-.2ex] +Titel Literaturliste \verb|\printvli| und \verb|\printnumvli| bzw.\ \verb|\printvlititle|. +\\[.8ex]% +\verb|\ghinttovliname => {[L]} %\| \\[-.8ex] +\verb|\ehinttovliname => {[L]} % ) Alle ohne italics-Korrektur!| \\[-.8ex] +\verb|\fhinttovliname => {[T]} %/| \\[-.2ex] +Hinweis auf Liste mit vollen Literaturangaben: \verb|\kli{N}{T} =>| \printonlykli{N}{T}. +\\[.8ex]% +\verb|\gvqutitlename => {Gedruckte Quellen}| \\[-.8ex] +\verb|\evqutitlename => {Published Documents}| \\[-.8ex] +\verb|\fvqutitlename => {Sources im\-pri\-m\'ees}| \\[-.2ex] +Titel Verzeichnis gedruckter Quellen \verb|\printvqu| (plus -\verb|num|-) bzw.\ \verb|\printvqutitle|. +\\[.8ex]% +\verb|\ghinttovquname => {[Q]} %\| \\[-.8ex] +\verb|\ehinttovquname => {[D]} % ) Alle ohne italics-Korrektur!| \\[-.8ex] +\verb|\fhinttovquname => {[S]} %/| \\[-.2ex] +Hinweis auf Verzeichnis mit vollen Quellenangaben: \verb|\kqu{N}{T} =>| \printonlykqu{N}{T}. +\\[.8ex]% +\verb|\gpertitlename => {Zeitschriften}| \\[-.8ex] +\verb|\epertitlename => {Periodicals}| \\[-.8ex] +\verb|\fpertitlename => {P\'e\-riodiques}| \\[-.2ex] +Titel Zeitschriftenverzeichnis \verb|\printper| und \verb|\printnumper| bzw.\ \verb|\printpertitle|. +\\[.8ex]% +\verb|\garqtitlename => {Ungedruckte Quellen}| \\[-.8ex] +\verb|\earqtitlename => {Unpublished Documents}| \\[-.8ex] +\verb|\farqtitlename => {Sources in\-\'edi\-tes}| \\[-.2ex] +Titel Archivquellenverzeichnis \verb|\printarq|, \verb|\printnumarq| bzw.\ \verb|\printarqtitle|. +\\[.8ex]% +\verb|\gvkctitlename => {Verwendete Kurztitel}| \\[-.8ex] +\verb|\evkctitlename => {Short Titles}| \\[-.8ex] +\verb|\fvkctitlename => {Titres ab\-r\'e\-g\'ees}| \\[-.2ex] +Titel Kurzzitateverzeichnis \verb|\printnumvkc| und \verb|\printvkc| bzw.\ \verb|\printvkctitle|. +\\[.8ex]% +\verb|\ggrrtitlename => {Ortsregister}| \\[-.8ex] +\verb|\egrrtitlename => {Geographical index}| \\[-.8ex] +\verb|\fgrrtitlename => {Registre g\'eo\-graphique}| \\[-.2ex] +Titel Ortsregister f"ur Liste \verb|\printnumgrr| und \verb|\printgrr| bzw.\ \verb|\printgrrtitle|. +\\[.8ex]% +\verb|\gprrtitlename => {Personenregister}| \\[-.8ex] +\verb|\eprrtitlename => {Person index}| \\[-.8ex] +\verb|\fprrtitlename => {Registre des personnes}| \\[-.2ex] +Titel Personenreg.\ f"ur Liste \verb|\printnumprr| und \verb|\printprr| bzw.\ \verb|\printprrtitle|. +\\[.8ex]% +\verb|\gsrrtitlename => {Sachregister}| \\[-.8ex] +\verb|\esrrtitlename => {Subject index}| \\[-.8ex] +\verb|\fsrrtitlename => {Registre des sujets}| \\[-.2ex] +Titel Sachregister f"ur Liste \verb|\printnumsrr| und \verb|\printsrr| bzw.\ \verb|\printsrrtitle|. +\\[.8ex]% +\verb|\gfolpagename => {\badelspacebefore\,f\kern -0.1pt.\bahasdot}| \\[-.8ex] +\verb|\efolpagename => {\badelspacebefore\,f\kern -0.1pt.\bahasdot}| \\[-.8ex] +\verb|\ffolpagename => {\badelspacebefore\ sq.\bahasdot}| \\[-.2ex] +Abk"urzung 'folgende' (\verb|\f|\,=\,\verb|\sq|): \verb|\per{ZfG.}_2\sq_[3 \f] =>| \per{ZfG.}_2\sq_[3 \f]. +\\[.8ex]% +\verb|\gxfolpagename => {\badelspacebefore\,ff\kern -0.1pt.\bahasdot}| \\[-.8ex] +\verb|\exfolpagename => {\badelspacebefore\,ff\kern -0.1pt.\bahasdot}| \\[-.8ex] +\verb|\fxfolpagename => {\badelspacebefore\ sqq.\bahasdot}| \\[-.2ex] +Abk"urzung 'mehrere folgende': \verb|\per{ZfG.}_2\ff_[3\sqq] =>| \per{ZfG.}_2\ff_[3\sqq]. +\\[3ex]% +\verb|\gannouncektitname => { (\kern 0.015em im folgenden \baupcorr}| \\[-.6ex] +\hspace*{6cm} \verb|\gannouncekendname => {)}| \\[-.4ex] +\verb|\eannouncektitname => { (\kern -0.02em cited as \baupcorr}| \\[-.6ex] +\hspace*{6cm} \verb|\eannouncekendname => {)}| \\[-.4ex] +\verb|\fannouncektitname => { (\kern 0.02em par la suite \baupcorr}| \\[-.6ex] +\hspace*{6cm} \verb|\fannouncekendname => {)}| \\[-.2ex] +\verb|\ktit|""-Ank"undigung: \verb|\vli{V}{N}{\ktit{T}} =>| {\notktitaddtok\printonlyvli{V}{N}{\ktit{T}}}. +\newpage\noindent%\\[.8ex]% +\verb|\grefvbegname => {(}| \\[-.8ex] +\hspace*{1cm} \verb|\grefvendname => {\barefcorr)}| \\[-.8ex] +\verb|\erefvbegname => {[\nobreak \hskip 1pt plus 0pt}| \\[-.8ex] +\hspace*{1cm} \verb|\erefvendname => {\nobreak \hskip 1pt plus 0pt\barefcorr]}| \\[-.8ex] +\verb|\frefvbegname => {(}| \\[-.8ex] +\hspace*{1cm} \verb|\frefvendname => {\barefcorr)}| \\[-.2ex] +Klammern in \verb|\conferize| f"ur k-Befehle: \verb|\kli{Luhmann}{Soziale Systeme} =>| \\[-.5ex] +{\conferize \kli{Luhmann}{Soziale Systeme}}. \\[-.5ex] +Die \textit{italics}\hy Korrektur \verb|\barefcorr| ist f"ur Verweise bes.\ auf \verb|{minipage}|-Fu"snoten. +\\[.8ex]% +\verb|\gconfername => {\kern -0.03em wie}| \\[-.8ex] +\verb|\econfername => {\kern -0.05em cf.\bahasdot}| \\[-.8ex] +\verb|\fconfername => {\kern -0.03em op.\ cit.\bahasdot}| \\[-.2ex] +Bezugsworte im Querverweis des eben genannten \verb|\conferize|-Stils. +\\[.8ex]% +\verb|\grefvpagname => {S.\,}| \\[-.8ex] +\verb|\erefvpagname => {p.\,}| \\[-.8ex] +\verb|\frefvpagname => {p.\,}| \\[-.2ex] +Seitenabk"urzung im Querverweis des eben genannten \verb|\conferize|-Stils; und \\[-.5ex] +ebenso f"ur \BibArts-Querverweise: \verb|\baref{Mueller} =>| \baref{Mueller}, wozu auch \\[-.5ex] +die oben unter \verb|\grefvbegname| ... genannten Klammersymbole benutzt werden. +\\[.8ex]% +\verb|\grefverbname => {siehe}| \label{grefverbname} \\[-.8ex] +\verb|\erefverbname => {see}| \\[-.8ex] +\verb|\frefverbname => {voir}| \\[-.2ex] +Bezugswort im eben genannten \verb|\baref|-Querverweis. +\\[.8ex]% +\verb|\grefvfntname => {, Anm.\,}| \\[-.8ex] +\verb|\erefvfntname => {, n.\,}| \\[-.8ex] +\verb|\frefvfntname => {, n.\,}| \\[-.2ex] +Abk"urzung f"ur '\kern-.05em Anmerkung' oder 'Fu"snote' in den \verb|\conferize|-k-Befehle oben \\[-.5ex] +und f"ur \BibArts\hy Querverweise: \verb|\baref{XX} =>| \baref{XX}.\footnote{ +\balabel{XX}\texttt{\bs balabel\{XX\}}. +\BibArts\ bemerkt automatisch, ob dies in einer Fu"snote steht.} +\\[.8ex]% +\label{erscheditionname}% +\verb|\gerscheditionname => {\teskip Auf{\kern.03em}l.,}| \\[-.8ex] +\verb|\eerscheditionname => {\fupskip edition,}| \\[-.8ex] +\verb|\ferscheditionname => {\fupskip \'edi\-tion,} %%| + \texttt{Vgl. oben S.\pageref{fordinalf}.} \\[-.2ex] +Auf"|lage-Abk"urzung in \verb|\ersch[4]{Stuttgart}{1899} =>| \ersch[4]{Stuttgart}{1899}. +\\[.8ex]% +\verb|\gerschvolumename => {Bd.,} \gerschvolumepname => {Bde.,}| \\[-.8ex] +\verb|\eerschvolumename => {vol.,} \eerschvolumepname => {vols.,}| \\[-.8ex] +\verb|\ferschvolumename => {vol.,} \ferschvolumepname => {vol.,}| \\[-.2ex] +Band-Abk"urzung in \verb+\ersch|3|{Stuttgart}{1899} =>+ \ersch|3|{Stuttgart}{1899}. +\\[.8ex]% +\verb|\gerschnohousename => {\oO,}| {\footnotesize\verb|=> {o.\kern 0.1em O\kern -0.08em.\bahasdot}|}\\[-.8ex] +\verb|\eerschnohousename => {no publishing house,}| \\[-.8ex] +\verb|\ferschnohousename => {sans maison d'{}\'edi\-tion,}| \\[-.2ex] +Kein Verlagsort getippt in \verb|\ersch{}{1899} =>| \ersch{}{1899} \ (Abk"urzung 'ohne Ort'). +\\[.8ex]% +\verb|\gerschnoyearname => {\oJ} | {\footnotesize\verb|=> {o.\kern 0.1em J\kern -0.09em.\bahasdot}|} \\[-.8ex] \label{gerschnoyearname} +\verb|\eerschnoyearname => {no exact year\kern -0.04em}| \\[-.8ex] +\verb|\ferschnoyearname => {sans an\-n\'ee}| \\[-.2ex] +Kein Jahr in \verb|\ersch{Stuttgart}{} =>| \ersch{Stuttgart}{} \ (am Ende von v-Befehlen). +} + +\noindent +Wenn Befehle, die \verb|\bahasdot| oder \verb|\banotdot| nutzen, nicht am +Ende des Arguments eines \BibArts\fhy Hauptbefehls stehen, ist vor Leerzeichen +\verb|\strut| oder \verb|\bastrut| dahinterzusetzen, um einen Zeilenumbruch zu +erlauben: Im freien Text ist also \verb*|\oJ\strut\ | statt \verb*|\oJ\ | zu +setzen. Das gilt auch, wenn ein Befehl \verb|\oJ| ausf"uhrt: +\verb|\ersch{Stuttgart}{}\strut\ next| (\ersch{Stuttgart}{}\strut\ next). +Das m"ussen Sie aber nur wissen, wenn Sie der Unterschied zwischen +\oJ\strut\ und o.\,J. (\verb|\oJ| und \verb|o.\,J.|) st"ort und Sie nicht +einfach \verb|o.\,J.| tippen. + + +\newpage +\section{Die \BibArts\hy Hauptbefehle}\label{Sect13}\label{Hauptbefehle} + +Hier sind die Befehle zur Belegeingabe nochmals zusammengestellt: + +\vspace{4ex} + \begin{tabular}{rrrc}% + \bf Basis & \verb|=| \bf addto-Teil & \verb|+| \bf printonly-Teil & \bf Zusatzf"ullung \\ \hline + & & & \\ + \verb|\vli| & \verb|= \addtovli| & \verb|+ \printonlyvli| & \\ + \verb|\vqu| & \verb|= \addtovqu| & \verb|+ \printonlyvqu| & \\ + \verb|\kli| & \verb|= \addtokli| & \verb|+ \printonlykli| & \\ + \verb|\kqu| & \verb|= \addtokqu| & \verb|+ \printonlykqu| & \\ + & & & \\ + \verb|\xvli| & \verb|= \xaddtovli| & \verb|+ \xprintonlyvli| & \\ + \verb|\xvqu| & \verb|= \xaddtovqu| & \verb|+ \xprintonlyvqu| & \\ + \verb|\xkli| & \verb|= \xaddtokli| & \verb|+ \xprintonlykli| & \\ + \verb|\xkqu| & \verb|= \xaddtokqu| & \verb|+ \xprintonlykqu| & \\ + & & & \\ + \verb|\per| & \verb|= \addtoper| & \verb|+ \printonlyper| & \verb|\fillper| \\ + \verb|\arq| & \verb|= \addtoarq| & \verb|+ \printonlyarq| & \verb|\fillarq| \\ + & & & \\ + \verb|\abkdef| & \verb|= \addtoabkdef| & \verb|+ \printonlyabkdef| & \\ + \verb|\defabk| & \verb|= \addtodefabk| & \verb|+ \printonlydefabk| & \\ + \verb|\abk| & \verb|= \addtoabk| & \verb|+ \printonlyabk| & \\ + & & & \\ + & \verb|\addtogrr| & & \verb|\fillgrr| \\ + & \verb|\addtoprr| & & \verb|\fillprr| \\ + & \verb|\addtosrr| & & \verb|\fillsrr| \\ + \end{tabular} + +\vspace{5.5ex}\noindent +\textbf{Spielregeln:} + +\begin{itemize} +\item k\hy Beleg ('Kurzzitat') erst nach Einf"uhrung eines Werks mittels v\hy Beleg +\item abk erst nach Einf"uhrung durch abkdef oder defabk +\item per hat ein Argument und arq zwei (Schriftst"uck plus Signatur) +\item fill-Befehle k"onnen im zweiten Argument einmal an zentraler Stelle + umf"anglichen Zusatztext aufnehmen, um das Stichwort im ersten Argument + zu erkl"aren; das 'Stichwort' entspricht beim arq-Befehl dem zweiten Argument + (der Signatur), bei per- und rr-Befehlen \textit{dem} Argument\pdfko{1.5} +\end{itemize} + +\vspace{1.5ex}\noindent +Ausserdem existiert noch \verb|\abkper|, das \verb|\abk + \per| ausf"uhrt. + + + +\newpage +\section{Hervorhebung von \BibArts\hy Argumenten}\label{Sect14}\label{hervor} + +Hier eine Zusammenstellung der Befehle f"ur die Einstellung von Schriften: + +\vspace{2.5ex}\noindent +\begin{tabular}{lll} +\textbf{Befehl} & \textbf{Voreinstellung} & \textbf{Alternative} \\[1ex] +\verb|\authoremph| & \verb|{\normalfont\scshape}| & \verb|{\upshape\|\abra{...}\verb|}| \\ +\verb|\kxxemph| & \verb|{}| \ (\verb|\kli|- und \verb|\kqu|\hy Titel)& alles (S.\,\pageref{kxxA}, \pageref{ntsepB}, \pageref{kxxB}) \\ +\verb|\edibidemph| & \verb|{\scshape}| \ (\textsc{ebd.}, \textsc{ders.}\ko)& \textbf{KEINE!} \\ +\verb|\abkemph| & \verb|{\sffamily}| & alles (S.\,\pageref{abkA}, \pageref{abkB}) \\ +\verb|\abklistemph| & \verb|{\bfseries}| & alles; \verb|{\abkemph}| \\ +\verb|\arqemph| & \verb|{\normalfont\sffamily}| & \verb|{\upshape\|\abra{...}\verb|}| \\ +\verb|\arqlistemph| & \verb|{\arqemph\relax\normalsize}| & alles (vgl.\ unten) \\ +\verb|\peremph| & \verb|{\normalfont\scshape}| & \verb|{\upshape\|\abra{...}\verb|}| \\ +\verb|\perlistemph| & \verb|{\peremph}| & alles (siehe\ unten) \\ +\verb|\xrrlistemph| & \verb|{}| \ (Register-Stichworte) & alles (S.\,\pageref{xrr})\\ +\verb|\balistnumemph| & \verb|{\sffamily}| & \verb|{}| (auto-up: S.\,\pageref{listnum}) \\ +\end{tabular}\label{arqemph2} + +\vspace{2ex}\noindent +"Anderungen an diesen Befehlen lassen sich mit \verb|\renewcommand| +durchf"uhren.\pdfko{1}\ +\verb|\authoremph|, \verb|\edibidemph|, \verb|\arqemph| +und \verb|\peremph| l"asst sich auch etwa\pdfko{1.5}\ +\verb|\bfseries| zuweisen, +aber nur \textit{nach} \verb|\upshape| oder besser \verb|\normalfont| +(in\pdfko{1.5}\ +schr"aggestelltem "au"seren Umfeld w"urde \BibArts\ sonst jedesmal +warnen).\footnote{Mit 'alles' sind oben Standardschriften gemeint, keine +negativ geneigten Schriften!} - Sicherlich ist es heute "ublich, bei der Literatur-Recherche - computergest"utzt zu arbeiten. Es existieren schon mehrere andere - Programme oder Formatvorlagen, die die Idee zentralen Definierens in Form - von Datenbanken umsetzen. Aus dem Text heraus kann auf einzelne Eintr"age - in dieser Datenbank verwiesen werden, um sich so Titel ausdrucken lassen - zu k"onnen. Die Frage ist, ob das Instrument zur Datenerfassung auch direkt - zum Schreiben eines Textes benutzt werden soll. - - Mit \bibarts{} wird diese Frage mit {\it nein\/} beantwortet. Ich - jedenfalls kann mir nicht tausende von {\it short cuts\/} oder - Schl"usselbegriffen merken, die auf die einzelnen Titel verweisen. - Die Literatur-Datenbanken m"ussen sowieso durchsucht werden. Die - Optimierungs-Aufgabe dort stellt sich so: Wie schnell kann der Editor, mit - dem der Text geschrieben wird, in einer Datenbank Informationen - auf"|finden und in den Text transferieren? Mit dieser Frage habe - ich mich hier nicht befa"st. Das wesentliche Problem im Rahmen - geisteswissenschaftlicher Zitierkonventionen --- d.h.: der Punkt, wo - Optimierung zuerst ansetzen mu"s --- liegt n"amlich in der Kombination - Erstzitat--Literaturliste. Bibliographische Listen werden (neben ihrem - Selbstzweck) mit \bibarts{} auch zu Kontrollausdrucken f"ur die Erstzitate. - \bibarts{} wurde vor diesem Hintergrund ver"offentlicht, in der Hoffnung, - da"s es als n"utzlich empfunden wird. \hfill {\tt - Timo.Baumann@hist.unibe.ch} - \end{abstract} - - \vspace{-1ex} - \nopagebreak\noindent\hrulefill - - - \end{document} +\vspace{.25ex} +Zudem sollten f"ur \verb|\edibidemph| nur \textsc{kleine kapitelle} +als Basis verwendet +werden, denn nur das umgeht das Problem der +Klein-/""Gro"sschreibung (\textsc{ebd.} und \textsc{ders.} m"ussen ja +nicht immer am Anfang eines Satzes stehen)! + +\vspace{.075ex} +\verb|\arqlistemph| und \verb|\perlistemph| sind so voreingestellt, dass +sie (im wesentlichen) die Einstellungen von \verb|\arqemph| und +\verb|\peremph| f"ur den Listenausdruck "ubernehmen. +F"ur listemph\hy Befehle gilt "ubertragbar: + +\vspace{.25ex} +{\footnotesize +\begin{verbatim} + {\renewcommand{\perlistemph}{\slshape}% + Auf den Ausdruck von \per{ShortMagazine} wirkt sich dies nicht aus! + \renewcommand{\balistnumemph}{} %% Zahlen nicht in sans serif %% + \printnumper} +\end{verbatim}} + +\vspace{.25ex} +{\renewcommand{\perlistemph}{\slshape}% + \hspace{.2em}Auf den Ausdruck von \per{ShortMagazine} wirkt sich dies nicht aus! + \renewcommand{\balistnumemph}{} %% Zahlen nicht in sans serif %% +\vspace{-1.75ex} + \printnumper} + + +\newcommand{\mynwarrow}{\hspace{1cm}\raisebox{1.1ex}{{\footnotesize$\nwarrow$}}\hspace{.3em}}% +\newpage +\section{\BibArts\hy Ein\fhy\ko/\ko\ko Ausschalter (bes.\ \ko f"ur \ko\ko Vorspann)}\label{Sect15} + +\vspace{1ex}\ + +\hspace*{7.5mm} +\begin{tabular}{ll} + \bf Voreinstellung "andern\hspace{1cm} & \bf $\sim$ wiederherstellen\hspace{1.1em}(1/2) \\ \hline + \multicolumn{2}{l}{} \\[1ex] + %% + \verb|\notannouncektit| & \verb| \announcektit| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily v\hy Befehl druckt den sp"ater verwendeten Kurztitel nicht aus}} \\[3ex] + %% + \verb|\notbafrontcorr| & \verb| \bafrontcorr| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily {\normalfont\footnotesize\textit{Italics}\hy}Korrektur am Kopf von \BibArts\hy Befehlen unterlassen}} \\[3ex] + %% + \verb| \baonecolitemdefs| & \verb|\notbaitemdefs| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily \texttt{list}\hy Befehle bekommen item\hy Abst"ande wie \texttt{\bs printvli} etc.\ (lokal)}} \\[3ex] + %% + \verb| \batwocolitemdefs| & \verb|\notbaitemdefs| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily \texttt{list}\hy Befehle bekommen item\hy Abst"ande wie \texttt{\bs printvkc} etc.\ (lokal)}} \\[3ex] + %% + \verb| \conferize| & \verb|\notconferize| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily Verweis vom k\hy Befehl auf Stelle des zugeh"origen v\hy Befehls}} \\[3ex] + %% + \verb| \exponenteditionnumber| & \verb|\notexponenteditionnumber| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily{\normalfont\footnotesize\texttt{\bs ersch}}\hy Befehl druckt Nummer der {\normalfont\footnotesize\texttt{[}}{\normalfont\footnotesize\textit{Auf"|lage}}{\normalfont\footnotesize\texttt{]}} als Exponent}} \\[3ex] + %% + \verb|\nothyko| & \verb| \hyko| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily Automatisches + {\normalfont\footnotesize\textit{kerning}} nach {\normalfont\footnotesize\texttt{\bs hy}} + und {\normalfont\footnotesize\texttt{\bs fhy}} ausschalten: \hyko\fhy Y\ \nothyko\fhy Y}} \\[3ex] + %% + \verb|\notibidemize| & \verb| \ibidemize| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily Automatisches {\normalfont\footnotesize\textsc{ebd.}}\hy setzen von Fu"snote zu Fu"snote ausschalten}} \\[3ex] + %% + \verb|\notktitaddtok| & \verb| \ktitaddtok| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily{\normalfont\footnotesize\texttt{\bs ktit}} in v\fhy Befehl erzeugt keinen \kern-.2em{\normalfont\footnotesize\texttt{.vkc}}\hy Eintrag wie ein k\fhy Befehl}} \\[3ex] + %% + \verb|\notkurzaddtoarq| & \verb| \kurzaddtoarq| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily{\normalfont\footnotesize\texttt{\bs kurz}} + (\kern-.075em {\normalfont\footnotesize\textit{Vorl"aufer}} von + {\normalfont\footnotesize\texttt{\bs ktit}}) erzeugt keinen + \hspace{-.2em}{\normalfont\footnotesize\texttt{.arq}}\hy Eintrag}} \\[3ex] +\end{tabular} + + +\newpage +\section*{\hspace{2em}\BibArts\hy Ein\fhy\ko/\ko\ko Ausschalter (bes.\ \ko f"ur \ko\ko Vorspann)} + +\vspace{1ex}\ + +\hspace*{7.5mm} +\begin{tabular}{ll} + \bf Voreinstellung "andern\hspace{1cm} & \bf $\sim$ wiederherstellen\hspace{1.1em}\hfill (2/2) \\ \hline + \multicolumn{2}{l}{} \\[1ex] + %% + \verb|\notnegcorrdefabk| & \verb| \negcorrdefabk| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily Kein negativer Abstand nach Klammer-Auf in Abk"urzungen}} \\[3ex] + %% + \verb|\notprinthints| & \verb| \printhints| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily k\hy Befehle sollen [L]- bzw\ko.\ [Q]\hy Hinweise auf Liste nicht drucken}} \\[3ex] + %% + \verb|\notprintlongpagefolio| & \verb| \printlongpagefolio| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily 'S.' bei {\normalfont\footnotesize\texttt{[p]}} bzw\ko.\ 'Bl.' bei {\normalfont\footnotesize\texttt{(p)}} nicht drucken}} \\[3ex] + %% + \verb|\notprintlongpervol| & \verb| \printlongpervol| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily 'Bd.' bei {\normalfont\footnotesize\texttt{\string|n\string|}} bzw\ko.\ 'Nr.' bei {\normalfont\footnotesize\texttt{\string_n\string_}} nicht drucken}} \\[3ex] + %% + \verb| \bibsortheads| & \verb|\notbibsortheads| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily Listen: Initialien vor Eintr"agen mit neuem Anfangsbuchstaben}} \\[3ex] + %% + \verb| \bibsortspaces| & \verb|\notbibsortspaces| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily Listen: Abstand zw\ko.\ Eintr"agen mit versch.\ Anfangsbuchstaben}} \\[3ex] + %% + \verb| \showbacorr| & \verb|\notshowbacorr| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily Stelle mit \BibArts{\normalfont\footnotesize\hy\ko\textit{Italics}\hy}Korrektur im Ausdruck markieren}} \\[3ex] + %% + \verb| \showbamem| & \verb|\notshowbamem| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily \BibArts\hy Zwischenspeicher auf Bildschirm drucken (\ko{\normalfont\footnotesize\textsc{ebd.}}\hy Setzung)}} \\[3ex] + %% + \verb|\notwarnsamename| & \verb| \warnsamename| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily Bildschirmwarnung bei Wiederholung von Autornachnamen aus}} \\[3ex] + %% + \verb| \writeidemwarnings| & \verb|\notwriteidemwarnings| \\ + \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily{\normalfont\footnotesize\textsc{ders.}}\hy Setzung im Ausdruck testhalber mit {\small$\bullet\heartsuit\nabla\spadesuit\clubsuit$} markieren}} \\ + %% +\end{tabular} + + +\newpage +\section{\BibArts\hy\hspace{-.025em}1.3\hspace{.075em}\hy Texte unter \BibArts~2.0}\label{Sect16}\label{compabil} + +\BibArts\ hat so viele Neuerungen, dass eine in Version~1.3 +geschriebene \LaTeX\hy Datei "uberarbeitet werden m"usste, +um sie auf \BibArts~2.0 anzupassen. An\pdfko{.25}\ +den Befehlen \verb|\schrift| (f"ur ganze v\fhy Befehle), +\verb|\barschrift| und \verb|\indschrift| mit +\verb|\renewcommand| ansetzende "Anderungen sind heute +\textit{wirkungslos}.\footnote{\texttt{\bs frompagesep} +(oben S.\,\pageref{frompagesep}) ersetzt zudem \texttt{\bs verw}; \kern 1pt und +\texttt{\bs ntsep} (S.\,\pageref{ntsepA}) \texttt{\bs punctuation}\hspace{.05em}.\kern1pt} + +\vspace{.05ex}% +\textbf{Behalten Sie zur "Ubersetzung alter \BibArts\hy Texte +die Programmdateien Ihrer alten \BibArts\hy Version zur"uck!} +... Falls Sie dies vers"aumten: + +\vspace{.075ex}% +\BibArts~1.3 hatte keine automatische \textsc{ebd.}\hy Setzung. +Dort konnte \verb|\kurz|\pdfko{1}\ +ganz am Ende des letzten Arguments +eines v\fhy Befehls stehen; es druckte sein Argument nach +\textsf{im folgenden} (und in v\fhy Listen in eckigen Klammern) +einfach\pdfko{.25}\ +aus. \BibArts~2.0 erkennt alte +\hspace*{-.15em}\texttt{.tex}\hy Dateien und startet eine +Emulation.\footnote{Wird vom alten Vorspannbefehl +\texttt{\bs makebar} eingeschaltet (stehen lassen!) und redefiniert auch +\hspace{-.1em}\texttt{\bs printvli}, das in 1.3 keine "Uberschrift +druckte. Sonst wird \texttt{\bs makebar} nicht\pdfko{1.5}\ +mehr ben"otigt. Es gibt kein \hspace*{-.15em}\texttt{.bar}\hy File mehr: +\BibArts~2.0 nutzt \hspace{-.25em}\texttt{.aux}\hy Files $-$ +\textbf{dazu Kap.\,\ref{bibsort}}.} +Kopien der Argumente von \verb|\kurz| sowie der alten +\verb|\bib|\hy Befehle gehen heute\pdfko{1.125}\ +ins \hspace*{-.15em}\texttt{.arq}\hy +Verzeichnis, das es in \BibArts~1.3 nicht gab; eine +\verb|\printind|\hy Emulation druckt alles aus $-$ nach Bearbeitung +mit \texttt{bibsort}. F"ur \textsc{MakeIndex}\pdfko{1.25}\ +gedachte Steuerzeichen werden jetzt also ausgedruckt +(\kern -.05em vgl.\ unten S.\,\pageref{subitem})! + +\vspace{-.625ex} +\Doppelbox +{ \bs notkurzaddtoarq \% (jetzt nicht) + \\ Fast wie 1.3: \bs vli\{Norbert\} + \\ \ \{Schwarz\} \b{\{}Einf"uhrung in + \\ \ \ \ \bs protect\bs TeX, Bonn + \\ \ \ \ 1988 \bs kurz\{Schwarz\}\b{\}} +} +{\notkurzaddtoarq + \texttt{ \footnotesize \%\% Schwarz steht in \bs arqemph \%\%} \\[.2ex] + Fast wie 1.3: \printonlyvli{Norbert} + {Schwarz} {Einf"uhrung in + \protect\TeX, Bonn + 1988 \kurz{Schwarz}} +} + +\vspace{-.125ex}\noindent +Einige Befehle sind auch in 2.0\hy Texten +brauchbar. \verb|\stressing{underline}| stellt wie in 1.3 die +Autorenhervorhebung ein und ist heute Alternative f"ur +\verb|\renewcommand{\authoremph}{\upshape\underline}|. Auch +das Paar\pdfko{1.125}\ +\verb|\bibmark| und \verb|\bibref| existiert weiter +(die x\fhy Befehle sind nun unn"otig): + +\vspace{-.875ex} +\Doppelbox +{ + Text.\bs footnote\b{\{}Albert Lecl\bs\string`erc: + \\[.25ex] \ \ Der Sommerregen, Paris 1985 + \\[.29ex] \ \ (\bs bibmark\{Lecl\bs\string`erc\}).\b{\}} + \\[.47ex] Schon Lecl\bs\string`erc wollte + \\[.25ex] freie Eingaben.\bs footnote\b{\b{\{}} + \\[.16ex] \ \ \bs bibref\{\bs scshape Lecl\bs\string`erc\}.\b{\b{\}}} +} +{ + Text.\footnote{Albert Lecl\`erc: Der Sommerregen, Paris 1985 (\bibmark{Lecl\`erc}).} + Schon Lecl\`erc wollte freie Eingaben.\footnote{ + \bibref{\scshape Lecl\`erc}.} +} + +\vspace{-.325ex}\noindent +\verb|\bibref| passt sich an, wenn \verb|\bibmark| in +keiner Fu"snote war. Neu sind dazu \textit{captions} +\verb|\gbibmarkname| ('{im folgenden: }'), +\verb|\fbibmarkname| ('{par la suite: }') +und \verb|\ebibmarkname| ('{cited as: }'), +deren Definitionen mit Leerzeichen enden. + + + +\newpage +\section{Listenausdruck (\BibArts-Belegapparat)}\label{Sect17} + +Wie die von \verb|bibsort| erzeugten Dateien (\kern -.05em vgl.\ unten +ab S.\,\pageref{bibsort}) auszudrucken +sind, wurde in den jeweiligen Kapiteln bereits fallweise abgehandelt: +\verb|bibarts.sty| stellt dazu print- und printnum\hy Befehle bereit $-$ wobei +die\pdfko{1.875}\ +print\hy Befehle die Zug"ange als Liste und die printnum\hy Befehle +zus"atzlich hinter jeden Listenpunkt die Zugangsstellen indexartig drucken. +Bei beiden Befehlsklassen enth"alt das Befehlswort zum Ausdruck der +jeweiligen Liste dieselben drei Buchstaben, die auch der Befehl zum +F"ullen der Liste aufweist. Auch das Dateinamen\hy Suffix der von +\verb|bibsort| erzeugten Liste hat diese Zeichen: Eintr"age des +\BibArts\hy Befehls \verb|\vli| kommen in eine Datei \verb|.vli|, +die Sie\pdfko{1}\ +mit \verb|\printvli| oder \verb|\printnumvli| im Anhang +Ihres Textes ausdrucken k"onnen. Entsprechendes gilt f"ur \verb|\vqu|, +\verb|\arq| und \verb|\per|. Ausnahme ist das Kurzzitateverzeichnis +\verb|.vkc|, das die Zug"ange der \verb|\kli|- \textit{und} +\verb|\kqu|\hy Eintr"age erh"alt (sowie der Zug"ange, die \BibArts\ +aus den Argumenten von \verb|\ktit| und den Nachnamensargumenten +der v\fhy Befehle \textit{automatisch} erzeugt); das Kurzzitateverzeichnis +wird mit \verb|\printvkc| oder \verb|\printnumvkc| ausgedruckt. Und +f"ur das\pdfko{.75}\ +Abk"urzungsverzeichnis, das mit \verb|\printabk| oder +\verb|\printnumabk| ausgedruckt\pdfko{.5}\ +wird, bef"ullen die \BibArts\hy Befehle +\verb|\abkdef| oder \verb|\defabk| eine von \verb|bibsort| erzeugte +Datei \verb|.abk|; f"ur so eingef"uhrte Abk"urzungen liefern +\verb|\abk|\hy Befehle weitere Seitenzahlen und ggf.\ Fu"snotennummern, +die \verb|\printnumabk| ausdruckt. + +F"ur alle diese Listen liest \verb|bibsort| das\slash die \verb|.aux|\hy +File{\small(}s{\small)} Ihres \LaTeX\hy Textes ein und erzeugt daraus +die genannten Dateien. Das Namens\hy Pr"afix ist dasjenige des \LaTeX\hy +Haupttextes (die Literaturliste \textit{hier} ist \verb|bibarts.vli|). + +Das Orts\fhy, Personen und Sachregister wird jeweils nur mit addto\hy +Befehlen bef"ullt, etwa \verb|\addtogrr|. Das sind Befehle, die nichts +an Ort und Stelle\pdfko{.75}\ +drucken. Verwechseln Sie die print- und printnum\hy +Befehle nicht mit Befehlen wie \verb|\printonlyvli|, die \textit{nur} +an Ort und Stelle drucken (vgl.\ oben S.\,\pageref{printonly}). + +Die Basis\hy Ausdruckbefehle f"ur die drei Register +sowie das Abk"urzungs\hy\ und das Kurzzitateverzeichnis +stellen eine fixe Schriftgr"o"se und zweispaltigen +Seitenausdruck f"ur den Listenausdruck ein. Beides ist bei +\verb|\printvli|, \verb|\printvqu|, \verb|\printper| und +\verb|\printarq| samt \verb|num|\hy Varianten nicht der Fall. + +Die Listen werden defaultm"a"sig unter "Uberschriften ausgedruckt, +deren vorgefertigter Text Kapitel~\ref{SprachSep} +auf"|listete. "Anderungen dieser "Uberschriftentexte k"onnen Sie mit +\verb|\renewcommand| an den titlename\hy Befehlen durchf"uhren. + +Weiter l"asst sich der Ausdruck von "Uberschrift und Liste +separieren. Die vli\hy "Uberschrift etwa k"onnen Sie mit +\verb|\printvlititle| drucken. Wie auch bei\pdfko{.75}\ +\verb|\printvli| oder \verb|\printnumvli| kommt der +Titel ohne Kapitelnummer ins Inhaltsverzeichnis. Alternativ +k"onnen Sie etwa \verb|\subsection{|\kern -.1em\textit{"Uberschrift}\verb|}| +tippen, falls Sie dort Kapitelnummern haben wollen. +Die Liste l"asst sich darunter in beiden F"allen mit \verb|\printvlilist| +oder \verb|\printnumvlilist| ausdrucken. + + +\noindent +\verb|\printbibtitle| ist "Uberschrift f"ur den gesamten Belegapparat, +defaultm"a"sig in section\hy Gr"o"se. Die anderen title\hy Befehle +verwenden eine Gr"o"se kleiner: + +\vspace{1.25ex}{\small\noindent +\verb| |\hbox to 14em{\textit{Beide drucken "Uberschrift}\hfill}% +\verb| |\hbox to 8.6em{\textit{mit Text im dt.}\hfill}% +\verb| |\hbox to 6em{\textit{Default}\hfill} \\[-.25ex] +\verb| \printbibtitle => \gbibtitlename => section| \\[-.5ex] +\verb| \printvli \printvlititle => \gvlititlename => subsection| \\[-.5ex] +\verb| \printvqu \printvqutitle => \gvqutitlename => subsection| \\[-.5ex] +\verb| \printabk \printabktitle => \gabktitlename => subsection| \\[-.5ex] +\verb| \printper \printpertitle => \gpertitlename => subsection| \\[-.5ex] +\verb| \printarq \printarqtitle => \garqtitlename => subsection| \\[-.5ex] +\verb| \printvkc \printvkctitle => \gvkctitlename => subsection| \\[-.5ex] +\verb| \printgrr \printgrrtitle => \ggrrtitlename => subsection| \\[-.5ex] +\verb| \printprr \printprrtitle => \gprrtitlename => subsection| \\[-.5ex] +\verb| \printsrr \printsrrtitle => \gsrrtitlename => subsection|} + +\vspace{1.25ex}\noindent +Hinter print\fhy, printnum\hy\ und title\hy Befehlen kann ein +optionales Argument die "Uberschriftengr"o"se "andern, +\verb|\printvli[section]| etwa. Einzusetzen ist ein +"Uberschriftenbefehl ohne \textit{backslash}. Bei Befehlen, die +Listen zweispaltig drucken (unten), ist \verb|[chapter]| +verboten. Die "Uberschrift kommt stets ins Inhaltsverzeichnis +(\verb|\tableofcontents|) und unter \verb|\pagestyle{headings}| +in die Kopfzeile; Befehle, die zwei Spalten anordnen, setzen +die Anfangsseite \texttt{plain}. \hspace{.1em}(Die list\hy +Befehle setzen nichts in Kopfzeile oder Inhaltsverzeichnis.) + +\vspace{1ex}\noindent +Die normalen print\hy Befehle drucken "Uberschrift \hspace{-.1em}\textit{und} +nachformatierte Listen: + +\vspace{.75ex}{\small\noindent +\verb| \printvli = \printvlititle + \printvlilist |in \textit{Umfeldschrift} \\[-.5ex] +\verb| \printvqu = \printvqutitle + \printvqulist |in \textit{Umfeldschrift} \\[-.5ex] +\verb| \printabk = \printabktitle + \printabklist |in \verb|\twocolumn| und \\[-.5ex] +\verb| \footnotesize| \\[-.5ex] +\verb| \printper = \printpertitle + \printperlist |in \textit{Umfeldschrift} \\[-.5ex] +\verb| \printarq = \printarqtitle + \printarqlist |in \textit{Umfeldschrift} \\[-.5ex] +\verb| \printvkc = \printvkctitle + \printvkclist |in \verb|\twocolumn\small| \\[-.5ex] +\verb| \printgrr = \printgrrtitle + \printgrrlist |in \verb|\twocolumn\small| \\[-.5ex] +\verb| \printprr = \printprrtitle + \printprrlist |in \verb|\twocolumn\small| \\[-.5ex] +\verb| \printsrr = \printsrrtitle + \printsrrlist |in \verb|\twocolumn\small|} + +\vspace{1.25ex}\noindent +Die printnum\hy Befehle verhalten sich beim Ausdruck ebenso wie die genannten +print\hy Befehle, nur f"uhren sie stattdessen \verb|\printnum|...\verb|list|\hy +Befehle aus. + +\vspace{1ex}\noindent +Eine "Uberschrift mit Nummerierung \textbf{A} w"are +(nicht umgesetzt):\footnote{ +...\,\texttt{\bs pagestyle\{headings\}}\,\textit{"Uberschrift} +\texttt{\bs pagestyle\{myheadings\}}\,...\,\texttt{\bs end\{appendix\}} \\ +druckt die Kopfzeile von \textit{"Uberschrift} im \textit{ganzen} Appendix +(dann kein \texttt{\bs markboth} setzen!).\hspace*{.2em}} + +\vspace{-1.25ex} +{\footnotesize +\begin{verbatim} + \clearpage \begin{appendix} \pagestyle{headings} + \section{Belegapparat und Register}\thispagestyle{plain}\vspace{7mm} + {\small \printarq \newpage \printvqu \printvli \newpage}\printnumgrr + \end{appendix} %Einspaltige Bereiche enden mit \newpage (Kopfzeile!) +\end{verbatim}} + +\vspace{-1ex}\vfill\noindent +\verb|\print|...\verb|list|- und \verb|\printnum|...\verb|list|\hy Befehle +schalten \textit{nie} \verb|\twocolumn| ein: + +\newpage +\noindent{\small +\verb| \clearpage {\pagestyle{headings}\small \printbibtitle \printvqu| \\ +\verb| \printvli \printvkctitle\baonecolitemdefs\printnumvkclist \newpage}|} + +\vspace*{1.5ex} + {\pagestyle{headings}\small \printbibtitle \printvqu + \printvli \printvkctitle\baonecolitemdefs\printnumvkclist \newpage} + + + +\twocolumn[\subsubsection*{Auf"|listung der print-, printnum-, title-, list- und num...list-Befehle} +Hier \texttt{[}\kern-.05em\textit{OptArg}\texttt{]}'s f"ur "Uberschriften, die eine Stufe gr"o"ser als der Default sind. Die jeweils ersten zwei Befehle sind in den title- und einen list-Befehl teilbar. \\ +\strut \\ +\texttt{\bs printbibtitle\lbrack chapter\rbrack} \hfill +{\footnotesize Dokumentenklasse \texttt{\{report\}}\ }\vspace{1.75ex}] +\noindent +%% +\textbf{\gvlititlename} \\[0.25ex] +\verb|\printvli[section]| \\ +\verb|\printnumvli[section]| \\[0.5ex] +\verb|\printvlititle[section]| \\ +\verb|\printvlilist| \\ +\verb|\printnumvlilist| \\[1.75ex] +%% +\textbf{\gvqutitlename} \\[0.25ex] +\verb|\printvqu[section]| \\ +\verb|\printnumvqu[section]| \\[0.5ex] +\verb|\printvqutitle[section]| \\ +\verb|\printvqulist| \\ +\verb|\printnumvqulist| \\[1.75ex] +%% +\textbf{\gvkctitlename} \\[0.25ex] +\verb|\printvkc[section]|~$^{(t, s)}$ \\ +\verb|\printnumvkc[section]|~$^{(t, s)}$ \\[0.5ex] +\verb|\printvkctitle[section]| \\ +\verb|\printvkclist| \\ +\verb|\printnumvkclist| \\[1.75ex] +%% +\textbf{\gpertitlename} \\[0.25ex] +\verb|\printper[section]| \\ +\verb|\printnumper[section]| \\[0.5ex] +\verb|\printpertitle[section]| \\ +\verb|\printperlist| \\ +\verb|\printnumperlist| \\[1.75ex] +%% +\textbf{\garqtitlename} \\[0.25ex] +\verb|\printarq[section]| \\ +\verb|\printnumarq[section]| \\[0.5ex] +\verb|\printarqtitle[section]| \\ +\verb|\printarqlist| \\ +\verb|\printnumarqlist| \\[1.75ex] +%% +\textbf{\gabktitlename} \\[0.25ex] +\verb|\printabk[section]|~$^{(t, f)}$ \\ +\verb|\printnumabk[section]|~$^{(t, f)}$ \\[0.5ex] +\verb|\printabktitle[section]| \\ +\verb|\printabklist| \\ +\verb|\printnumabklist| \\[1.75ex] +%% +\textbf{\ggrrtitlename} \\[0.25ex] +\verb|\printgrr[section]|~$^{(t, s)}$ \\ +\verb|\printnumgrr[section]|~$^{(t, s)}$ \\[0.5ex] +\verb|\printgrrtitle[section]| \\ +\verb|\printgrrlist| \\ +\verb|\printnumgrrlist| \\[1.75ex] +%% +\textbf{\gprrtitlename} \\[0.25ex] +\verb|\printprr[section]|~$^{(t, s)}$ \\ +\verb|\printnumprr[section]|~$^{(t, s)}$ \\[0.5ex] +\verb|\printprrtitle[section]| \\ +\verb|\printprrlist| \\ +\verb|\printnumprrlist| \\[1.75ex] +%% +\textbf{\gsrrtitlename} \\[0.25ex] +\verb|\printsrr[section]|~$^{(t, s)}$ \\ +\verb|\printnumsrr[section]|~$^{(t, s)}$ \\[0.5ex] +\verb|\printsrrtitle[section]| \\ +\verb|\printsrrlist| \\ +\verb|\printnumsrrlist|\\[1.75ex] +%% +\textbf{Legende} \\[0.25ex] +{\footnotesize +\hbox to 2em{$^{(t, f)}$\hfill} \verb|\twocolumn \footnotesize| \\[-.5ex] +\hbox to 2em{$^{(t, s)}$\hfill} \verb|\twocolumn \small| \\[-.25ex] +Befehle, die \verb|[|\textit{Arg}\verb|]| annehmen, erzeugen \\[-.5ex] +$-$ "Uberschrift in \textit{Default}\fhy/\kern-.1em\textit{Arg}\fhy Gr"o"se \\[-.65ex] +$-$ Inhaltsverzeichnis-Eintrag (\kern-.05em\textit{dito}) \\[-.65ex] +$-$ Kopfzeilen-Eintrag unter \texttt{headings}} +\onecolumn + + +\newpage\noindent +\verb|bibsort| bereitet f"ur den Ausdruck der Listen vor, +den Wechsel von Eintr"agen mit unterschiedlichen Anfangsbuchstaben zu betonen. +Es gibt vergr"o"serte Abst"ande und Buchstaben: +\verb|{\bibsortspaces\printnumvkc}| und\pdfko{1.5}\ +\verb|{\bibsortheads\printnumvkc}| erg"aben tats"achlich jeweils eigenen Seiten: + +\vspace{-1ex}\noindent\hspace{1em}% +\parbox[t]{.45\textwidth} +{\subsection*{\gvkctitlename}\vspace{\batwocoltopskip}\bibsortspaces\batwocolitemdefs\small\printnumvkclist} +\hspace{.5em}% +{\makeatletter\def\@baitemdefs{\parsep 0pt \itemsep 0pt \parskip 0pt \lineskip 0pt \rightskip 1cm minus 1cm}\makeatother +\parbox[t]{.45\textwidth} +{\subsection*{\gvkctitlename}\vspace{\batwocoltopskip}\bibsortheads\small\printnumvkclist}}% +\label{head}% + +\vfill\noindent +print\hy Befehle, die \textit{selbst} zweispaltig drucken, +setzen strikte Vorgaben f"ur Abst"ande um, etwa +\verb|\itemsep| \verb|0pt|. Dagegen gelten \textit{f"ur list\hy Befehle} +nur die Vorgaben der \verb|{description}|\hy Liste. +\verb|\batwocolitemdefs| stellt dazu Abst"ande f"ur zweispaltigen Ausdruck +ein; es wird wie \verb|\small| vor list\hy Befehle gesetzt. + +\vspace{1ex}\noindent +F"ur list\hy Befehle in einspaltigem Umfeld dient +\verb|\baonecolitemdefs|, das viel weniger Vorgaben +macht und Spielr"aume l"asst. Eigene Definitionen +legt etwa +\verb|{\bamyitemdefs{\rightskip| \verb|1cm minus| \verb|1cm}\printvkclist}| +fest. Alle f"ur \verb|\print|...\verb|list| oder +\verb|\printnum|...\verb|list| eventuell gemachten itemdef\hy Vorgaben +schaltet \verb|\notbaitemdefs| aus (es stellt die +Voreinstellung wieder her). + +\vspace{1.5ex}\noindent +\verb|\printvkclist| l"asst sich \textit{mit Zus"atzen} +genauso wie \verb|\printvkc| ausdrucken +(weil die {\small\texttt{[}...\texttt{]}} abschirmen, w"are +eine Kopfzeile danach nochmal zu definieren): + +\vspace{1.ex}{\small\noindent +\verb| \twocolumn[\printvkctitle\vspace{\batwocoltopskip}] %\markboth|...\\ +\verb| {\small\bibsortheads \batwocolitemdefs\printvkclist}\onecolumn|} + +\vspace{1.25ex}\noindent +\verb|\batwocoltopskip| wird eigenst"andig von Befehlen, die +zweispaltigen Druck anordnen, gesetzt, und nur, wenn +\verb|\bibsortspaces| oder \verb|\bibsortheads| gilt. +Und das \verb|\batwocolitemdefs| w"urden list\hy Befehle unter +"au"serem \verb|\twocolumn| bei \textit{gleichzeitigem} +\verb|\bibsortheads| sogar selbst setzen (dann kann +nur noch z.\,B. \verb|\renewcommand{\baselinestretch}{1.1}| +die Zeilenabst"ande "andern). + +\vspace{1.5ex}\noindent +\verb|\bibsortspaces| und \verb|\bibsortheads| schalten sich +gegenseitig ab: Automatisch gilt also immer nur eines von beiden. +Zudem l"ost \verb|\notbibsortheads| auch \verb|\notbibsortspaces| +aus $-$ und umgekehrt. + +\vspace{1.5ex}\noindent +Beim Archivquellenverzeichnis kann ein Konflikt auftreten: +Sie sollten sich entscheiden, ob Sie \verb|\bibsortspaces| +bzw.\ \hspace{-.05em}\verb|\bibsortheads| aktivieren +m"ochten, \textit{oder} \verb|\arqsection|, +\verb|\arqsubsection| und \verb|\arqsubsubsection| nutzen. +Und nur im Archivquellenverzeichnis k"onnen Sie \textit{innerhalb +einer Liste} in den Seitenumbruch eingreifen. Umbruchbefehle +wie \verb|\newpage| k"onnen direkt nach \verb|\arqsection|, +\verb|\arqsubsection| oder \verb|\arqsubsubsection| optional +"ubergeben werden:\label{newpage} +\verb|\arqsection[\newpage]{BA}{Bundesarchiv}| \hspace{.1em}ist ein Beispiel. +Zerbrechliche Befehle sollten mit \verb|\protect| gesch"utzt werden. +Befehle mit Argumenten in eckigen Klammern wie \verb|\rule[2ex]{1cm}{1cm}| lassen +sich so einsetzen: +...\verb|[\protect\rule\lbrack 2ex\rbrack{1cm}{1cm}]|...\footnote{Ist +eine arq\hy "Uberschrift der allererste Listeneintrag, dann sind \textit{nur} +Abstandsbefehle wie etwa \texttt{\bs vspace} im optionalen Argument +erlaubt, denn \texttt{bibsort} setzt die optionalen Argumente innerhalb +des \texttt{.arq}\hy Files in eine Zeile \textit{vor} die arq\hy section; +in einer \LaTeX\hy Liste darf jedoch zu druckender Text oder +\texttt{\bs rule} erst \textit{nach} dem ersten \texttt{\bs item}\hy Befehl stehen.} +Einfach l"asst sich \textit{zus"atzlicher Abstand zum vorausgehenden +Listenpunkt} etwa mit \verb|\arqsection| \verb|[\vspace{2ex}]| \verb|{B}{Bund}| +einstellen.\footnote{\texttt{\bs arqsectionbegin}, +\texttt{\bs arqsubsectionbegin} und \texttt{\bs arqsubsubsectionbegin} +legen den Basisabstand fest; sie werden von \texttt{[}...\texttt{]} +nicht "uberschrieben, sondern \textit{danach} ausgef"uhrt. Diese Befehle sind +untereinander austariert; Anf"anger sollten sie unver"andert lassen.} + +\vspace{1ex}\vfill\noindent +{\sffamily Die list\hy Befehle m"ussen Sie nicht verwenden; sie dienen nur f"ur Sonderw"unsche.} + + +\newpage +\section{\texttt{bibsort}}\label{Sect18}\label{bibsort} + +\verb|bibsort| ist das Sortierprogramm von \BibArts\kern.1em. Eine +Datei \verb|bibsort.exe| liegt dem Paket neben \verb|bibarts.sty| bei. +Beide zusammen sollen den Anhang Ihres \LaTeX\hy Textes erzeugen. +Anwender, bei denen \verb|bibsort.exe| nicht startet, sollten +\verb|bibsort.c| mit einem f"ur ihr Betriebsystem +geeigneten C\fhy Compiler selbst in eine Bin"ardatei "ubersetzen und +diese statt beigelegtem \verb|bibsort.exe| einsetzen. Theoretisch +wird kein bestimmtes Betriebsystem vorausgesetzt. +Bei mir machte der DEVCPP\hy Editor Schwierigkeiten, +der \verb|gcc| pers"onlich nie.\footnote{\texttt{bibsort.c} ist in +ANSI~C; die Kommandozeilen \texttt{gcc -c bibsort.c -o bibsort.o} +und \texttt{gcc bibsort.o -o bibsort.exe} ergaben bei mir eine +Bin"ardatei (\texttt{Dev-Cpp\_5.4.0}).} + +\BibArts\ kommt heute (Version 2.0) ohne \textsc{MakeIndex} aus. +\verb|bibsort| verarbeitet keine Steuerzeichen, hat kein +Maskierungszeichen f"ur Steuerzeichen und kein +Steuerfile.\footnote{\BibArts\,1.3 brauchte \textsc{MakeIndex}, um einen +Belegstellenindex zu erzeugen (siehe S.\,\pageref{compabil}).} +Anders als bei \textsc{MakeIndex} gibt es keine \verb|\subitem|s.\label{subitem}% + +Ganz oben wurde bereits erkl"art, wie \verb|bibsort.exe| zusammen mit +speziellen \LaTeX\hy Editoren benutzt wird. Ansonsten kann es durch Antippen +von \verb|bibsort| plus Dateinamens\hy Pr"afix und Optionen in der +Eingabeauf"|forderung des Betriebsystems gestartet werden. Bei +\LaTeX\hy Texten, die aus mehreren Dateien bestehen, ist das Namenspr"afix der Hauptdatei +anzutippen. \verb|bibsort| liest die zugeh"orige \hspace{-.1em}\texttt{.aux}\hy Datei ein; +die ggf.\ enthaltene \verb|\@include|\hy Liste wird abgearbeitet, sodass auch +bei sequenzieller "Ubersetzung eines \LaTeX\hy Textes (wenn \verb|\includeonly| +nicht alle Dateien nennt) f"ur den \BibArts\hy Anhang immer vollst"andige Listen +erzeugt werden. F"ur \verb|bibarts.tex| hier ist +\verb|bibarts| das Namenspr"afix. Die aus +\verb|bibarts.aux| erzeugte Datei \verb|bibarts.vli| enth"alt die +Literaturliste, \verb|bibarts.abk| das Abk"urzungsverzeichnis etc. + +\verb|bibsort| liest aus einer \hspace{-.1em}\texttt{.aux}\hy Datei nur die Zeilen ein, die +mit \BibArts\ erzeugt wurden. In einem ersten Schritt sortiert es +diese Zeilen klein\fhy\slash gro"s\hy schreibungs\hy invariant. Das Programm sortiert +in Grundeinstellung "a, "o und "u als a, o und u; \verb|\ss| und \verb|\3| +(sowie \verb|"s|, falls \verb|"| \textit{aktiv} ist\footnote{\BibArts\ +"ubergibt jedem Eintrag ins \hspace{-.1em}\texttt{.aux}\hy File den an der +entsprechenden Stelle g"ultigen \textit{catcode} von \string" und die +zur Worttrennung eingestellte Sprache. Beides wird beim Ausdruck +des entsprechenden Listenpunkts reproduziert (vgl.\ oben S.\,\pageref{hyphenation}\,f.). +Dies "andert ggf.\ Zeilenumbr"uche in den Listen und daneben Ausdruck und +Sortierreihenfolge etwa von~\texttt{\string"a}.}) +werden als \verb|s| sortiert. Wird \texttt{bibsort} die Option \ko\verb|-g2| "ubergeben, +sortiert es "s als \verb|ss|\pdfko{.5}\ +(deutsch modern bzw.\ Lexikon); mit \ko\verb|-g1| (deutsches Telefonbuch) +gelten zudem die Umlaute als \verb|ae|, \verb|oe| und \verb|ue|. Zahlen +werden \textit{in Grundeinstellung} vor Buchstaben sortiert; mit \ko\verb|-g1| oder \ko\verb|-g2| +ist es umgekehrt. Nur, wenn Zeilen anhand der enthaltenen Zahlen sowie +gro"s\fhy\slash klein\hy invarianten Buchstaben keinen Unterschied gegen"uber +anderen Zeilen aufweisen, wird die Gro"s\fhy\slash Klein\hy Schreibung beachtet, +danach etwaige Akzente auf den Buchstaben, zuletzt Satzzeichen. + +Etliche Einstellungen sind nicht ver"anderbar. Etwa wird \verb|\o|~(\o) im +ersten Schritt immer als \verb|o| einsortiert, dann vor allen \verb|o|'s mit +'aufgesetzten' Akzenten. Ebenso nicht\hy einstellbar ist, dass +\verb|$\alpha$| als \verb|a| einsortiert wird. Um im Einzelfall abweichende +Sortierreihenfolgen zu erzwingen, k"onnen Sie den \BibArts\hy Befehl +\verb|\sort{|\textit{Zeichenfolge}\verb|}| \balabel{sort} verwenden (dessen Argument +sortiert, aber nicht ausgedruckt wird). Die meisten weiteren \LaTeX\hy Befehle +ignoriert\pdfko{1}\ +\verb|bibsort| einfach. Bei anderen wie etwa \verb|\parbox| werden +$-$\,in der Routine\pdfko{1}\ +\verb|transformtable| in \verb|bibsort.c| definiert\,$-$ +die L"angen\hy\ und Positionierungs\hy Angaben ignoriert. Au"serdem wird +\verb|\diskretionary{A}{B}{C}| wie \verb|C| sortiert, \verb|"ck| bei +\textit{aktivem} \verb|"| wie \verb|ck|. Und in +\verb|\protect\pageref{XX}| wird das Schl"usselwort +\verb|XX| als nicht zu druckender Text erkannt (vgl.\ \verb|\pageref{X1}|). + +\vspace{.75ex}\noindent +Nur \verb|bibsort| in der Eingabeauf"|forderung getippt druckt auf den Bildschirm: + +{\scriptsize +\begin{verbatim} + %%> This is BIBSORT 2.0 (for help: bibsort -?) + %% BIBSORT is part of BibArts 2.0 (C) Timo Baumann 2015. + %% I read a LaTeX .AUX file (follow \@input), and I write my output in files + %% .VLI literature .VQU published sources .GRR geographic index + %% .VKC short titles .ARQ unpublished sources .PRR person index + %% .PER periodicals .ABK abbreviations .SRR subject index + %% + %% BIBSORT <LaTeXFile> [<OutFile>] [-g1/2] [-x] [-l] [-p] [-k] [-d] + %% + %% DefaultSort: 0, .., 9, (A a), (B b), .., (s \ss S), .., (Z z) and + %% (a [\.\'\`\^\"\=\~]a \aa=\r{a} [\b\c\k\d\H\t\u\v]{a} \ae), b, .. + %% -g1/2 GermanSort: (a A), .., (z Z), 0, .., 9; and (\" or active "): + %% -g1 GermanTelefonebookStyle: "a = \"a = ae, ..., "s = \ss = ss; + %% -g2 ModernGermanDictionary: "a = \"a = a, ..., "s = \ss = ss. + %% -x DoNotExpectGERMAN.STY: Active "-characters do NOT produce umlauts. + %% -l IgnoreSpaces. -p Point: Sort "P.S." before "Peter". + %% -k Kill: Idemize multiple used authors on list of literature. + %% -d Dos: Use '\' instead of '/' in path(s) of include-files. + %% -?? More options: -s1 -f1 -c -t1 -i=j -m + %% -r Read informations about my license and documentation files. + %% + %%> I give up my job, because I get no <FileNamePrefix> of an auxiliary file. +\end{verbatim}} + +\noindent +Dabei ist die ganze Serie der neun Hilfsdateien aufgelistet, die \verb|bibsort| +erzeugen kann $-$ \textit{und l"oschen darf}, falls keine Eintr"age da +sind!\footnote{Wenn Sie z.\,B. +\ko\texttt{\bs vli} in Ihrem Text verwenden, erzeugt \texttt{bibsort} eine Datei +\ko\texttt{.vli}; falls\pdfko{1}\ +Sie \texttt{\bs vli} sp"ater wieder l"oschen und Ihr mit +\LaTeX\ "ubersetzter Text derartige Literaturangaben dann nicht mehr enth"alt, +l"oscht ein weiterer Start von \texttt{bibsort} die \ko\texttt{.vli}\hy Datei. +$-$\pdfko{1}\ +Unter \texttt{\bs nofiles} bleiben die \ko\texttt{.aux}\hy Files unver"andert +stehen und \texttt{bibsort} erzeugt die Datei\pdfko{1}\ +\texttt{.vli} immer wieder gleich, d.h.: ohne neue/""ver"anderte +\texttt{\bs vli}\hy Befehle im Text aufzunehmen.\pdfko{.325}} + +\vspace{.075ex} +\verb|-d| dient dazu, dass \verb|bibsort| Dateien findet, wenn in +\verb|\include|\hy Argumenten Pfadangaben stehen; dort m"ussen Sie \verb|/| +verwenden (was aber \textit{einige\pdfko{1}\ +Betriebsysteme} nicht akzeptieren): +\hspace{.1em} \verb|bibsort -d| \hspace{.1em} ruft Dateien mit \verb|\| auf. + +\vspace{.175ex} +Die Option \ko\verb|-k| zum Drucken von $\sim$ auf der Literaturliste +f"ur mehrfach genannte Autoren wurde schon erkl"art. Vgl.\ +\verb|\female| und \verb|\male| oben S.\,\pageref{female}. + +\vspace{.75ex}\noindent +Nun ein Beispiel f"ur die Sortierreihenfolge (\verb|\printprr| ohne Seitenverweise): + + + \newcommand{\demotext}[1]{\nosort{\protect\printdemotext{#1}}}% +{\newcommand{\printdemotext}[1]{{\hskip 0.1cm plus 0.5cm\footnotesize\texttt{#1}}}% + \renewcommand{\gprrtitlename}{Das zweckentfremdete Personenregister als Beispiel}% + \printprr} + +\addtoprr{\"y\demotext{ \bs\protect\string"y}} +\addtoprr{ya} +\addtoprr{DiFabio} +\addtoprr{Di Niro} +\addtoprr{ba} +\addtoprr{ a} +\addtoprr{5.000} +\addtoprr{0,5} +\addtoprr{0.5} +\addtoprr{0.a6} +\addtoprr{0.26} +\addtoprr{0.25} +\addtoprr{0,251} +\addtoprr{0.251} +\addtoprr{1.500} +\addtoprr{1,500} +\addtoprr{1501} +\addtoprr{1,5} +\addtoprr{1,1} +\addtoprr{1,125} +\addtoprr{1,45} +\addtoprr{1.750} +\addtoprr{1,75} +\addtoprr{$\frac{2}{2}$\demotext{ \$\bs frac\{2\}\{2\}\$}} +\addtoprr{$\frac{2} {2}$\demotext{ \$\bs frac\{2\} \{2\}\$}} +\addtoprr{$\frac{10}{2}$} +\addtoprr{$\frac{13}{1}$} +\addtoprr{$\frac{3}{4}$} +\addtoprr{$\frac{5}{2}$} +\addtoprr{$\frac{4}{3}$} +\addtoprr{$\frac{3}{3}$} +\addtoprr{$\frac{1}{3}$} +\addtoprr{\sort{9,5}$\frac{19}{2}$\demotext{ \bs sort\{9,5\}\$\bs frac\{19\}\{2\}\$}} +\addtoprr{$\frac{b}{a}$\demotext{ \$\bs frac\{b\}\{a\}\$}} +\addtoprr{1} +\addtoprr{14\te Auf"|l.\demotext{ 14\bs te Auf\string"\string|l.}} +\addtoprr{15} +\addtoprr{22} +\addtoprr{2} +\addtoprr{\protect\underline{2}\demotext{ \bs protect\bs underline\{2\}}} +\addtoprr{b \sort{b}c\demotext{ \ \ \ b \bs sort\{b\}c}} +\addtoprr{b\sort{b} c\demotext{ b\bs sort\{b\} c}} +\addtoprr{b\sort{b}b\demotext{ b\bs sort\{b\}b}} +\addtoprr{b\sort{b}a\demotext{ b\bs sort\{b\}a}} +\addtoprr{b\sort{b}\demotext{ \ b\bs sort\{b\}}} +\addtoprr{*b\demotext{ \protect\string*b}} +\addtoprr{bb} +\addtoprr{bc} +\addtoprr{$b$\demotext{ \ \$b\$}} +\addtoprr{b$^{2}$\demotext{ b\$\protect\string^\{2\}\$}} +\addtoprr{b$_{2}$\demotext{ b\$\protect\string_\{2\}\$}} +\addtoprr{b\fup{2}\demotext{ \ b\bs fup\{2\}}} +\addtoprr{b\fup{b}\demotext{ \ \ b\bs fup\{b\}}} +\addtoprr{b1} +\addtoprr{b2} +\addtoprr{b 2} +\addtoprr{b3} +\addtoprr{b20} +\addtoprr{b98} +\addtoprr{b100} +\addtoprr{b\fup{\baRomannum{99}}\demotext{ b\bs fup\{\bs baRomannum\{99\}\}}} +\addtoprr{{c}\demotext{ \{c\}}} +\addtoprr{{}c\demotext{ \{\}c}} +\addtoprr{c{}\demotext{ c\{\}}} +\addtoprr{"a\demotext{ \protect\string"a}} +\addtoprr{\"a\demotext{ \bs\protect\string"a}} +\addtoprr{"A\demotext{ \protect\string"A}} +\addtoprr{\"A\demotext{ \bs\protect\string"A}} +\addtoprr{ae} +\addtoprr{\c{\"a}\demotext{ \bs c\{\bs\protect\string"a\}}} +\addtoprr{af} +\addtoprr{sr} +\addtoprr{st} +\addtoprr{ss} +\addtoprr{\3\demotext{ \bs 3}} +\addtoprr{\ss\demotext{ \bs ss}} +\addtoprr{"s\demotext{ \protect\string"s}} +\addtoprr{Stra"se\demotext{ \ \ Stra\protect\string"se}} +\addtoprr{Stra{\ss}e\demotext{ \ \ Stra\{\bs ss\}e}} +\addtoprr{Stra"sburg\demotext{ Stra\protect\string"sburg}} +\addtoprr{Stra{\ss}burg\demotext{ Stra\{\bs ss\}burg}} + + \addtoprr{Zum Schluss die Worttrennung american im \label{Trennbeispiel} deutschen Trennsatz} +{\sethyphenation{english} + \addtoprr{Zum Schluss die Worttrennung american im englischen Trennsatz}} + +\addtoprr{A} +\addtoprr{B} +\addtoprr{C} +\addtoprr{D} +\addtoprr{E} +\addtoprr{F} +\addtoprr{G} +\addtoprr{H} +\addtoprr{I} +\addtoprr{J} +\addtoprr{K} +\addtoprr{L} +\addtoprr{M} +\addtoprr{N} +\addtoprr{O} +\addtoprr{P} +\addtoprr{Q} +\addtoprr{R} +\addtoprr{S} +\addtoprr{T} + +\addtoprr{W} +\addtoprr{X} +\addtoprr{Y} +\addtoprr{Z} +\addtoprr{Ba} +\addtoprr{Ca} +\addtoprr{Da} +\addtoprr{Ea} +\addtoprr{Fa} +\addtoprr{Ga} +\addtoprr{Ha} +\addtoprr{Ia} +\addtoprr{Ja} +\addtoprr{Ka} +\addtoprr{La} +\addtoprr{Ma} +\addtoprr{Na} +\addtoprr{Oa} +\addtoprr{"o\demotext{ \protect\string"o}} +\addtoprr{Ra} +\addtoprr{Sa} +\addtoprr{Ta} +\addtoprr{Ti} + +\addtoprr{Xa} +\addtoprr{Ya} +\addtoprr{Za} + +\addtoprr{a} +\addtoprr{b} +\addtoprr{c} +\addtoprr{d} +\addtoprr{e} +\addtoprr{f} +\addtoprr{g} +\addtoprr{h} +\addtoprr{i} +\addtoprr{j} +\addtoprr{k} +\addtoprr{l} +\addtoprr{m} +\addtoprr{n} +\addtoprr{o} +\addtoprr{p} +\addtoprr{q} +\addtoprr{r} +\addtoprr{s} +\addtoprr{t} +\addtoprr{u} +\addtoprr{v} +\addtoprr{w} +\addtoprr{x} +\addtoprr{y} +\addtoprr{z} +\addtoprr{aa} +\addtoprr{ba} +\addtoprr{ca} +\addtoprr{da} +\addtoprr{ea} +\addtoprr{fa} +\addtoprr{ga} +\addtoprr{ha} +\addtoprr{ia} +\addtoprr{ja} +\addtoprr{ka} +\addtoprr{la} +\addtoprr{na} +\addtoprr{oa} +\addtoprr{pa} +\addtoprr{ra} +\addtoprr{sa} +\addtoprr{ta} +\addtoprr{ti} + +\addtoprr{xa} +\addtoprr{ya} +\addtoprr{za} + +\addtoprr{ph} +\addtoprr{pi} +\addtoprr{ps} +\addtoprr{pt} +\addtoprr{Ph} +\addtoprr{Pi} +\addtoprr{Ps} +\addtoprr{Pt} + +\addtoprr{b a} +\addtoprr{B a} + +\addtoprr{0000000000} +\addtoprr{100000000} +\addtoprr{2~100~000,7\demotext{ 2\protect\string~100\protect\string~000,7}} +\addtoprr{2\,100\,000,65\demotext{ 2\bs,100\bs,000,65}} +\addtoprr{2.099.999} +\addtoprr{2.100.001} +\addtoprr{\sort{2.100.000}2,1\,Mio\demotext{ \ \ \bs sort\{2.100.000\}2,1\bs,Mio}} +\addtoprr{\baromannum{14}\te Bd.\demotext{ \bs baromannum\{14\}\bs te Bd.}} +\addtoprr{\baRomannum{15}\te Bd.\demotext{ \bs baRomannum\{15\}\bs te Bd.}} +\addtoprr{3000000} +\addtoprr{400000} +\addtoprr{50000} +\addtoprr{6000} +\addtoprr{700} +\addtoprr{9} +\addtoprr{.} +\addtoprr{,} +\addtoprr{;} +\addtoprr{:} +\addtoprr{?} +\addtoprr{!} +\addtoprr{?`\demotext{ \protect\string?{}\protect\string`}} +\addtoprr{!`\demotext{ \protect\string!{}\protect\string`}} +\addtoprr{*\demotext{ *}} +\addtoprr{\$\demotext{ \bs\protect\$}} +\addtoprr{\#\demotext{ \bs\protect\#}} +\addtoprr{"`a"'\demotext{ \protect\string"\protect\string`a\protect\string"\protect\string'}} +\addtoprr{"<a">\demotext{ \protect\string"\protect\string<a\protect\string"\protect\string>}} +\addtoprr{\nosort{'}a'\demotext{ \bs nosort\{{\protect\string'}\}a'}} +\addtoprr{'a'\demotext{ {\protect\string'}a{\protect\string'}}} +\addtoprr{a'a\demotext{ a\protect\string'a \ \ \%\% vgl. \bs nosort\{\protect\string'\}a}} +{\originalTeX\addtoprr{"a\demotext{ \{\bs originalTeX\bs addtoprr\{\protect\string"a\}\}\protect\label{originaltex}}}} +\addtoprr{\glqq a\grqq\demotext{ \bs glqq a\bs grqq}} +\addtoprr{b\$2\demotext{ b\bs\$2}} +\addtoprr{b\&2\demotext{ b\bs\&2}} +\addtoprr{b/2} +\addtoprr{$b\;2$\demotext{ \$b\bs;2\$}} +\addtoprr{$b\:2$\demotext{ \$b\bs:2\$}} +\addtoprr{(b)} +\addtoprr{[b]} +\addtoprr{\{b\demotext{ \bs\{b}} +\addtoprr{\%\demotext{ \bs\%}} +\addtoprr{b\_2\demotext{ b\bs\protect\string_2}} +\addtoprr{b=2} +\addtoprr{b<2} +\addtoprr{b>2} +\addtoprr{b@2} +\addtoprr{b|2\demotext{ b\protect\string|2}} +\addtoprr{b+2} +\addtoprr{b-2} +\addtoprr{b--2\demotext{ \ b{\protect\string-}{\protect\string-}2}} +\addtoprr{b---2\demotext{ b{\protect\string-}{\protect\string-}{\protect\string-}2}} +\addtoprr{Ae} +\addtoprr{Ac} +\addtoprr{Af} +\addtoprr{\.{b}\demotext{ \bs.\{b\}}} +\addtoprr{$\dot{b}$\demotext{ \$\bs dot\{b\}\$}} +\addtoprr{\'{b}\demotext{ \bs\protect\string'\{b\}}} +\addtoprr{$\acute{b}$\demotext{ \$\bs acute\{b\}\$}} +\addtoprr{\`{b}\demotext{ \bs\protect\string`\{b\}}} +\addtoprr{$\grave{b}$\demotext{ \$\bs grave\{b\}\$}} +\addtoprr{\^{b}\demotext{ \bs\protect\string^\{b\}}} +\addtoprr{$\hat{b}$\demotext{ \$\bs hat\{b\}\$}} +\addtoprr{$\ddot{b}$\demotext{ \$\bs ddot\{b\}\$}} +\addtoprr{\={b}\demotext{ \bs=\{b\}}} +\addtoprr{$\bar{b}$\demotext{ \$\bs bar\{b\}\$}} +\addtoprr{$\vec{b}$\demotext{ \$\bs vec\{b\}\$}} +\addtoprr{\~{b}\demotext{ \bs\protect\string~\{b\}}} +\addtoprr{$\tilde{b}$\demotext{ \$\bs tilde\{b\}\$}} +\addtoprr{\r{a}\demotext{ \bs r\{a\}}} +\addtoprr{\r{A}\demotext{ \bs r\{A\}}} +\addtoprr{\aa\demotext{ \bs aa}} +\addtoprr{\AA\demotext{ \bs AA}} +\addtoprr{\r{b}\demotext{ \bs r\{b\}}} +\addtoprr{$\protect\mathring{b}$\demotext{ \$\bs protect\bs mathring\{b\}\$}} +\addtoprr{\b{b}\demotext{ \bs b\{b\}}} +\addtoprr{\c{b}\demotext{ \bs c\{b\}}} +\addtoprr{\k{b}\demotext{ \bs k\{b\}}} +\addtoprr{\d{b}\demotext{ \bs d\{b\}}} +\addtoprr{\H{b}\demotext{ \bs H\{b\}}} +\addtoprr{\t{b}\demotext{ \bs t\{b\}}} +\addtoprr{\u{b}\demotext{ \bs u\{b\}}} +\addtoprr{$\breve{b}$\demotext{ \$\bs breve\{b\}\$}} +\addtoprr{\v{b}\demotext{ \bs v\{b\}}} +\addtoprr{$\check{b}$\demotext{ \$\bs check\{b\}\$}} +\addtoprr{\protect\underline{b}\demotext{ \bs protect\bs underline\{b\}}} +\addtoprr{\protect\underbar{b}\demotext{ \bs protect\bs underbar\{b\}}} +\addtoprr{ab} +\addtoprr{a b} +\addtoprr{a\,b\demotext{ a\bs,b}} +\addtoprr{a\protect\space b\demotext{ a\bs protect\bs space b}} +\addtoprr{a\relax b\demotext{ a\bs relax b}} +\addtoprr{a!b\demotext{ a\string!b}} +\addtoprr{aa} +\addtoprr{ab} +\addtoprr{a"-b\demotext{ a\protect\string"{\protect\string-}b}} +\addtoprr{a\-b\demotext{ a\bs{\protect\string-}b}} +\addtoprr{ac} +\addtoprr{\i\demotext{ \bs i}} +\addtoprr{\'\i\demotext{ \bs\protect\string'\bs i}} +\addtoprr{\^\i\demotext{ \bs\protect\string^\bs i}} +\addtoprr{\`\i\demotext{ \bs\protect\string`\bs i}} +\addtoprr{$\imath$\demotext{ \$\bs imath\$}} +\addtoprr{\j\demotext{ \bs j}} +\addtoprr{$\jmath$\demotext{ \$\bs jmath\$}} +\addtoprr{\ae\demotext{ \bs ae}} +\addtoprr{\AE\demotext{ \bs AE}} +\addtoprr{\copyright\demotext{ \bs copyright}} +\addtoprr{\dh\demotext{ \bs dh}} +\addtoprr{\dj\demotext{ \bs dj}} +\addtoprr{\DH\demotext{ \bs DH}} +\addtoprr{\DJ\demotext{ \bs DJ}} +\addtoprr{\l\demotext{ \bs l}} +\addtoprr{$\ell$\demotext{ \$\bs ell\$}} +\addtoprr{\ij\demotext{ \bs ij wird niederl.\ als i sortiert}} +\addtoprr{\IJ\demotext{ \bs IJ wird prim"ar als I sortiert}} +\addtoprr{$\Im$\demotext{ \$\bs Im\$}} +\addtoprr{\L\demotext{ \bs L}} +\addtoprr{\LaTeX\demotext{ \bs LaTeX}} +\addtoprr{LATEX} +\addtoprr{LaTeX} +\addtoprr{\ng\demotext{ \bs ng}} +\addtoprr{\NG\demotext{ \bs NG}} +\addtoprr{\o\demotext{ \bs o}} +\addtoprr{\O\demotext{ \bs O}} +\addtoprr{\oe\demotext{ \bs oe}} +\addtoprr{\OE\demotext{ \bs OE}} +\addtoprr{\textsterling\demotext{ \bs textsterling}} +\addtoprr{\pounds\demotext{ \bs pounds}} +\addtoprr{\textregistered\demotext{ \bs textregistered}} +\addtoprr{$\Re$\demotext{ \$\bs Re\$}} +\addtoprr{\th\demotext{ \bs th}} +\addtoprr{\TH\demotext{ \bs TH}} +\addtoprr{\protect\TeX\demotext{ \bs protect\bs TeX}} +\addtoprr{TEX\demotext{ TEX}} +\addtoprr{TeX\demotext{ TeX}} +\addtoprr{$\alpha$\demotext{ \$\bs alpha\$}} +\addtoprr{$\beta$\demotext{ \$\bs beta\$}} +\addtoprr{$\chi$\demotext{ \$\bs chi\$}} +\addtoprr{$\delta$\demotext{ \$\bs delta\$}} +\addtoprr{$\Delta$\demotext{ \$\bs Delta\$}} +\addtoprr{$\epsilon$\demotext{ \$\bs epsilon\$}} +\addtoprr{$\varepsilon$\demotext{ \$\bs varepsilon\$}} +\addtoprr{$\eta$\demotext{ \$\bs eta\$}} +\addtoprr{$\gamma$\demotext{ \$\bs gamma\$}} +\addtoprr{$\Gamma$\demotext{ \$\bs Gamma\$}} +\addtoprr{$\iota$\demotext{ \$\bs iota\$}} +\addtoprr{$\kappa$\demotext{ \$\bs kappa\$}} +\addtoprr{$\lambda$\demotext{ \$\bs lambda\$}} +\addtoprr{$\Lambda$\demotext{ \$\bs Lambda\$}} +\addtoprr{$\mu$\demotext{ \$\bs mu\$}} +\addtoprr{$\nu$\demotext{ \$\bs nu\$}} +\addtoprr{\d{$\tilde\nu$}\demotext{ \bs d\{\$\bs tilde\bs nu\$\}}} +\addtoprr{$\tilde\nu$\demotext{ \$\bs tilde\bs nu\$}} +\addtoprr{$\breve\nu$\demotext{ \$\bs breve\bs nu\$}} +\addtoprr{$\omicron$\demotext{ \$\bs omicron\$ (bibarts.sty)}} %% existiert in LaTeX nicht +\addtoprr{$\omega$\demotext{ \$\bs omega\$}} +\addtoprr{$\Omega$\demotext{ \$\bs Omega\$}} +\addtoprr{$\pi$\demotext{ \$\bs pi\$}} +\addtoprr{$\Pi$\demotext{ \$\bs Pi\$}} +\addtoprr{$\varpi$\demotext{ \$\bs varpi\$}} +\addtoprr{$\phi$\demotext{ \$\bs phi\$}} +\addtoprr{$\Phi$\demotext{ \$\bs Phi\$}} +\addtoprr{$\varphi$\demotext{ \$\bs varphi\$}} +\addtoprr{$\psi$\demotext{ \$\bs psi\$}} +\addtoprr{$\Psi$\demotext{ \$\bs Psi\$}} +\addtoprr{$\rho$\demotext{ \$\bs rho\$}} +\addtoprr{$\varrho$\demotext{ \$\bs varrho\$}} +\addtoprr{$\sigma$\demotext{ \$\bs sigma\$}} +\addtoprr{$\Sigma$\demotext{ \$\bs Sigma\$}} +\addtoprr{$\varsigma$\demotext{ \$\bs varsigma\$}} +\addtoprr{$\tau$\demotext{ \$\bs tau\$}} +\addtoprr{$\theta$\demotext{ \ \$\bs theta\$}} +\addtoprr{$\Theta$\demotext{ \$\bs Theta\$}} +\addtoprr{$\vartheta$\demotext{ \$\bs vartheta\$}} +\addtoprr{$\xi$\demotext{ \$\bs xi\$}} +\addtoprr{$\Xi$\demotext{ \$\bs Xi\$}} +\addtoprr{$\upsilon$\demotext{ \$\bs upsilon\$}} +\addtoprr{$\Upsilon$\demotext{ \$\bs Upsilon\$}} +\addtoprr{$\zeta$\demotext{ \$\bs zeta\$}} + +\addtoprr{b\\[-2mm]b\demotext{ b\bs\bs[-2mm]b}} +\addtoprr{b\vspace{2mm}b\demotext{ b\bs vspace\{2mm\}b}} +\addtoprr{b\hspace{2mm}b\demotext{ \ b\bs hspace\{2mm\}b}} +\addtoprr{b\index{X}b\demotext{ \ \ b\bs index\{X\}b}} +\addtoprr{b \index{X}b\demotext{ \ \ b \bs index\{X\}b}} +\addtoprr{b \index{X} b\demotext{ \ \ b \bs index\{X\} b}} +\addtoprr{b\glossary{X}b\demotext{ \ b\bs glossary\{X\}b}} +\addtoprr{b \label{X1} b\demotext{ \ b \bs label\{X1\} b}} +\addtoprr{b \pageref{X1} b\demotext{ b \bs pageref\{X1\} b}} +\addtoprr{b \baref{X2} b\demotext{ b \bs baref\{X2\} b}} +\addtoprr{b \balabel{X2} b\demotext{ \ b \bs balabel\{X2\} b}} +\addtoprr{b \protect\pageref{X1} b\demotext{ b \bs protect\bs pageref\{X1\} b}} +\addtoprr{b\protect\linebreak[1]b\demotext{ \ \ \ b\bs protect\bs linebreak[1]b}} +\addtoprr{b\protect\nolinebreak[1]b\demotext{ b\bs protect\bs nolinebreak[1]b}} +\addtoprr{b\protect\pagebreak[2]b\demotext{ b\bs protect\bs pagebreak[2]b}} +\addtoprr{b\protect\nopagebreak[2]b\demotext{ b\bs protect\bs nopagebreak[2]b}} +\addtoprr{b\protect\footnote[144]{X} b\demotext{ b\bs protect\bs footnote[144]\{X\} b}} +\addtoprr{b\protect\footnotetext[145]{Y} b\demotext{ b\bs protect\bs footnotetext[145]\{Y\} b}} +\addtoprr{b\protect\footnotemark[146] b\demotext{ b\bs protect\bs footnotemark[146] b}} +\addtoprr{b\protect\framebox [1cm][l]{b}\demotext{ b\bs protect\bs framebox [1cm][l]\{b\}}} +\addtoprr{b\protect\makebox [1cm][r]{b}\demotext{ b\bs protect\bs makebox [1cm][r]\{b\}}} +\addtoprr{b\protect\parbox[t]{5mm}{b}\demotext{ b\bs protect\bs parbox[t]\{5mm\}\{b\}}} +\addtoprr{b\protect\raisebox{0.5ex} [3mm] [3mm] {b}\demotext{ b\bs protect\bs raisebox\{0.5ex\} [3mm] [3mm] \{b\}}} +\addtoprr{b\protect\rule[1mm] {1mm} {2mm}b\demotext{ b\bs protect\bs rule[1mm] \{1mm\} \{2mm\}b}} +% +\addtoprr{b Nach Titel\demotext{ \ \ b Nach Titel}} +\addtoprr{b \vli {Vor} {Nach} {Titel}\demotext{ \ \ b \bs vli \{Vor\} \{{\bf Nach}\} \{Titel\}}} +\addtoprr{b \vli {Vor} {Nach}{Titel}\demotext{ \ b \bs vli \{Vor\} \{{\bf Nach}\}\{Titel\}}} +\addtoprr{b \kli {Nach} {Titel}\demotext{ \ b \bs kli \{{\bf Nach}\} \{Titel\}}} +\addtoprr{b \kli [f]{Nach} {Titel}\demotext{ \ b \bs kli [f]\{{\bf Nach}\} \{Titel\}}} +\addtoprr{b \vli[m] {Vor} {Nach} {Titel}\demotext{ \ \ \ b \bs vli[m] \{Vor\} \{{\bf Nach}\} \{Titel\}}} +\addtoprr{b Nach\demotext{ \ b Nach}} +\addtoprr{b Nach Vor\demotext{ \ \ \ \ b Nach Vor}} +\addtoprr{b Nach Vor U\demotext{ \ \ \ \ b Nach Vor U}} +\addtoprr{b Nach Titel-a\demotext{ \ \ \ b Nach Titel-a}} +\addtoprr{b \vauthor{Vor}{Nach}\demotext{ b \bs vauthor\{Vor\}\{{\bf Nach}\}}} +\addtoprr{b \kauthor{Nach}\demotext{ \ \ b \bs kauthor\{{\bf Nach}\}}} +% +\addtoprr{\protect\begin{large}b\protect \end{large}b\demotext{ \bs protect\bs begin\{large\}b\bs protect \bs end\{large\}b}} +\addtoprr{b\protect\typeout{9}b\demotext{ b\bs protect\bs typeout\{9\}b}} +\addtoprr{b\message{9}b\demotext{ b\bs message\{9\}b}} +\addtoprr{b\mathhexbox{1}{2}{3}b\demotext{ b\bs mathhexbox\{1\}\{2\}\{3\}b}} +\addtoprr{b\protect\phantom{X}b\demotext{ \ b\bs protect\bs phantom\{X\}b}} +\addtoprr{b\protect\vphantom{X}b\demotext{ \ b\bs protect\bs vphantom\{X\}b}} +\addtoprr{b\protect\hphantom{X}b\demotext{ \ b\bs protect\bs hphantom\{X\}b}} +\addtoprr{b\sethyphenation{french}b\demotext{ b\bs sethyphenation\{french\}b}} +\addtoprr{b\selectlanguage{french}b\demotext{ b\bs selectlanguage\{french\}b}} +\addtoprr{b\discretionary{a-}{c} {b}\demotext{ b\bs discretionary\{a-\}\{c\} \{b\}}} + +\noindent +Zur Erzeugung der vorausgehenden Liste bekam \verb|bibsort| als +\textit{Sortier}\hy Optio"-n(en) \texttt{\bibsortargs} "ubergeben +(\verb|\bibsortargs| steht hier vor '"ubergeben', um die +zuletzt verwendeten Optionsschalter auszudrucken\footnote{ +\texttt{\bs bibsortargs} listet ein evtl.\ gesetztes \texttt{-k} +nur nach Ausdruck von v\fhy Listen auf. Die\pdfko{1}\ +Optionen \texttt{-d} und \texttt{-m} werden nie ausgedruckt; +sie beeinflussen das Druckergebnis nicht.}). + +Die Liste zeigte auch die meisten \LaTeX\hy Befehle, +die \verb|bibsort| verarbeitet. In \verb|bibsort.c| k"onnen Sie in +\verb|weighttable| genau sehen, welche Befehle einen Sortierwert erhalten. +\LaTeX\hy Befehlsnamen \textit{aus Buchstaben} m"ussen in dieser Liste mit \verb|\t| +enden, \textit{aus einzelnen Zeichen} bestehende Befehle wie \verb|\"| d"urfen das nicht. Au"ser den +eben vorgef"uhrten Befehlen wird noch \verb|\ul| wie eine Unterstreichung +sortiert; auch zwei in \LaTeX\,2.09 auftretende Expansionsstufen +von \copyright\ und \pounds\ (\verb|\pcopyright| und \verb|\ppounds|) +werden ber"ucksichtigt. + +'Unbekannte' Befehle sortiert \verb|bibsort| "ahnlich wie Satzzeichen, +gewichtet sie also nur, wenn Zeilen sonst nur \textit{gleiche Buchstaben +und Zahlen} enthalten. + +Fu"snotenexponenten (\verb|\footnotemark[146]|) werden absichtlich nicht gewichtet, +mathematischen Exponenten(\verb|$^{2}$|) schon. +\verb|bibsort| macht auch Unterschiede zwischen der Ausdruckreihenfolge +und der Sortierreihenfolge: +Die Argumente von \verb|\vauthor| und \verb|\midvauthor| sowie \verb|\ntvauthor| +sortiert \verb|bibsort| zuerst nach Nachnamen, und nur bei gleichen Nachnamen +\textit{anschlie"send} nach Vornamen. +Und Argumente nach etlichen Befehlen werden 'ausgerichtet' sortiert; +insbesondere in 'inneren' v- und k\hy Befehlen ist es deshalb egal, ob Sie +\verb|{A}{B}| oder \verb*|{A} {B}| tippen: sortiert wird in beiden F"allen +\verb*|A B|. + + +\vspace{1ex}\noindent +Die Spracheinstellung bestimmt, worin \verb|bibsort| eine +\textbf{Dezimalzahl} sieht: Mit \verb|-g1| oder \verb|-g2| kommt +\verb|0,251| \textit{vor} \verb|0,5| (deutsche 'Nachkommastellen'), +\textit{sonst} zwischen 22 und 700 (englisch gelesen +nulltausendzweihunderteinundf"unfzig). + +\textit{Strukturierungszeichen zum besseren +Lesen gro"ser Zahlen} werden im Englischen und Deutschen erkannt: +\verb|1.000| wird mit \ko\verb|-g1| oder \ko\verb|-g2| als tausend verstanden, +sonst als 1 und danach 0, denn englisch stellt \verb|1,000| die Zahl Tausend dar. +Mit \ko\verb|-g1| oder \ko\verb|-g2| wird \verb|0.251| als 251 verstanden +$-$ nur bei \textit{drei} 'Nachpunktstellen' ist '.' Strukturierungszeichen: +\verb|Bd.\,3.1| gilt als 'drei-Punkt-eins' und wird vor \verb|Bd.\,10.2| +einsortiert, aber \verb|Bd.\,3.100| danach. + +Bei Punkt und Komma l"asst sich die f"ur einen Text einmal gew"ahlte +Sprachkonvention sp"ater also nur noch schwer "andern. Setzen der Punkte oder +Kommata in geschweifte Klammern schaltet jedoch die Dezimalzahlenerkennung aus; +\texttt{100\{.\}200} gelten als zwei Zahlen 100 und 200 hintereinander. + +Sprachunabh"angig gelten einzelne Leerzeichen, einzelne \verb|\,| oder +\verb|~| \textit{vor\pdfko{1}\ +Dreierkolonnen von Zahlzeichen} nicht als +Unterbrechung einer Zahl. Dementsprechend steht \verb|1\,000\,000| +immer f"ur eine Million. Und \verb|1000| ist +freilich immer tausend. Die Zahlenerkennung funktioniert bis zu +999.999.999.999.999 vor dem 'Komma' (deutsch) und bis zu zus"atzlich +16 Stellen nach dem 'Komma' (wobei dort keine Strukturierungszeichen enthalten +sein d"urfen: 0,0000000000000001 ist die kleinste korrekt sortierbare Zahl). +Falls \verb|bibsort| l"angere Zahlen vorfindet, ignoriert es die +Zahlzeichen nach der 15ten bzw.\ 16ten Stelle einfach bei der Zusammenstellung +der 'h"oheren' Sortierschichten (die zuerst die Reihenfolge bestimmen); +die weiteren Nachkommastellen werden als neue Zahlen begriffen. + +Negative Zahlen werden f"alschlicherweise nach ihrem Betrag sortiert. +F"ur ein Buch, das 700 v.\,Chr.\ erschien, k"onnen Sie 1/700 im +Taschenrechner bestimmen und unter \verb|-g1| oder \verb|-g2| dann +\verb|\sort{0,001429}700 v.\,Chr.| im\pdfko{1}\ +Text setzen; +entsprechend lassen sich alle 'negativen' Jahre vor das +Jahr \verb|+1|\pdfko{1}\ +einsortieren (das Jahr \verb|0| kommt aber +weiterhin vor \textit{allen} anderen Zahlen). + +Etwas anderes als Punkte zwischen Zahlen sind Punkte nach +Buchstaben, n"amlich Abk"urzungen. Die Option \ko\verb|-p| sorgt daf"ur, +dass dort ein \ko\verb|.| im\pdfko{1.25}\ Unterschied zu anderen +Satzzeichen "ahnlich wie ein Buchstabe z"ahlt. + +\verb|-l| bringt \verb|bibsort| dazu, Leerzeichen nicht zu gewichten. +Dann wird \verb|DiFabio| vor \verb|Di Niro| einsortiert (entgegen der +Grundeinstellung). \verb|-l|~wirkt sich allerdings nur auf Leerzeichen +\textit{in} Argumenten der \BibArts\hy Befehle aus; falls Sie +\verb|\vli{Di}{Niro}{|...\verb|}| tippen, hat es keine Auswirkung. + +Wie erw"ahnt, gibt es f"ur jede \BibArts\hy Liste einen +num\hy Ausdruckbefehl (etwa \verb|\printnumvkc|). +Dieser druckt hinter den Text des Listenpunktes die Seitenzahlen und eventuell Fu"snotennummern aus, +von denen mehrere textgleiche Zug"ange herstammen. Die Reihenfolge, +in der Zahlentypen ausgedruckt werden, ist nicht einstellbar. +Sie lautet (interne Bezeichnungen Typ 4 bis 10): + +\vspace{1.3ex}{\small\sffamily +\hspace{.5cm}\begin{tabular}{rl} + T4 & \verb|\fnsymbol|,\footnotemark\ also \hspace{.5em} {\small + $* \hspace{1em} \dagger \hspace{1em} \ddagger \hspace{1em} \mathchar "278 \hspace{1em} \mathchar "27B \hspace{1em} \delimiter "026B30D \hspace{1em} ** \hspace{1em} \dagger \dagger \hspace{1em} \ddagger \ddagger$} \\ + T5,6 & r"omische Zahlen aus \,\verb|i v x l c d m|\,, dann aus \,\verb|I V X L C D M| \\ + T7 & arabische Zahlen aus \,\verb|0| \,bis \,\verb|9| \\ + T8,9 & Buchstaben\hy Z"ahler aus \,\verb|a| \,bis \,\verb|z|\,, dann aus \,\verb|A| \,bis \,\verb|Z| \\ + T10 & Zeichenfolgen, die nicht als Zahl (an)erkannt werden \\ +\end{tabular}}\footnotetext{\texttt{\bs mathchar \string"278} +\,sowie \texttt{\bs ensuremath \{\bs mathsection \}} +werden als $\mathchar "278$~(Symbolz"ahlerstand~4) akzeptiert, +\texttt{\bs mathchar \string"27B} +\,sowie \texttt{\bs ensuremath \{\bs mathparagraph \}} +als $\mathchar "27B$~(5).} + +\vspace{1.4ex}\noindent +Ein Unterschied zwischen der Seiten- und Fu"snoten-Nummerierung ergibt sich +trotz der einheitlichen Reihenfolge, in der die Zahlentypen ausgedruckt +werden, "uber die Reihenfolge, in der \verb|bibsort| seine Instrumente +anwendet: Bei den Seitenzahlen pr"uft es erst auf kleine r"omische Zahlen +und dann auf kleine Buchstaben. Das bedeutet, dass ein \verb|c| +defaultm"a"sig als 100 \textit{gilt}, egal, ob es von \verb|\pagenumbering{roman}| +oder von \verb|\pagenumbering{alph}| herstammt (und Drei bedeuten \textit{soll}). +Doch ein Instrumententausch ist m"oglich: Falls Sie in Ihrer Einleitung gro"se +r"omische Seitenzahlen wollen, k"onnen Sie \verb|-s1| setzen. In diesem +Fall d"urfen Sie zudem \verb|\pagenumbering{alph}| in Ihrem\pdfko{.25}\ +Appendix setzen +(ohne \verb|-s1| steht Ihnen \verb|\pagenumbering{Alph}| frei). + +\vspace{.1ex} +Beim Auslesen der Fu"snotennummern pr"uft \verb|bibsort| defaultm"a"sig +erst\pdfko{1}\ +auf gro"se r"omische Zahlen und dann auf gro"se Buchstabenz"ahler, danach erst +auf kleine Buchstabenz"ahler und dann auf kleine r"omische Zahlen. Das +bedeutet, dass Sie zur Fu"snotennummerierung (neben Symbolen und arabischen +Zahlen) defaultm"a"sig nur gro"se r"omische Zahlen und/""oder +Kleinbuchstaben nutzen k"onnen. Hier dreht dies +\ko\verb|-f1| um: Dann sind kleine r"omische Zahlen\pdfko{.75}\ +und Gro"sbuchstaben als Fu"snotennummern m"oglich.\footnote +{Falls Sie \texttt{\bs renewcommand\{\bs thefootnote\}\{\bs Alph\{footnote\}\}} +ohne \texttt{-f1} verwenden, wird \texttt{bibsort} +drei Zug"ange \texttt{\bs per\{ZfG.\}} aus den Fu"snoten +{\renewcommand{\thefootnote}{\Alph{footnote}}\footnotemark[1] \footnotemark[2] \footnotemark[3]} +nicht indexartig als $^{A-C}$ zusammenfassen k"onnen, sondern +die Zahlentypen falsch erkennen: \texttt{\bs printnumper} w"urde\pdfko{1}\ +dann hinter den Listenpunkt ZfG.\ die Folge +\textit{Seitenzahl}\kern1pt$^{C}$$^{,}$ $^{A}$$^{,}$ $^{B}$ ausdrucken.} + +\verb|bibsort| akzeptiert in den Zahlenargumenten die +"ublichen Befehle zur\pdfko{.75}\ +Einstellung des Schriftgrades. +Beispielsweise akzeptiert \BibArts\ Ihre Eingabe: + +\vspace{.675ex}\noindent{\small +\verb| \renewcommand{\thempfootnote}{\itshape\Alph{mpfootnote}}|} + +\vspace{.75ex}\noindent +Entsprechendes gilt f"ur \verb|\thepage| und \verb|\thefootnote|. +Schriftgr"o"sen\hy Befehle wie \verb|\large| weist \verb|bibsort| dagegen +zur Index\hy Zahlenverarbeitung zur"uck\pdfko{.5}\ +und wertet solche Nummern als +'TEXT'. Es gibt aber \verb|\bapageframe| und\pdfko{1.25}\ +\verb|\bafootnoteframe|, +um Zusatztext vor und nach dem Z"ahler f"ur \verb|bibsort| zu\pdfko{1.25}\ +kennzeichnen. Sie werden initiiert etwa durch (geht nicht mit +\textsc{MakeIndex}!)\pdfko{1} + +\vspace{.75ex}\noindent{\small +\verb| \renewcommand{\thepage}{{\bapageframe{\roman{page}}}}| \\ +\verb| \renewcommand{\thefootnote}{{\bafootnoteframe{\arabic{footnote}}}}|} + +\vspace{1ex}\noindent +und drucken gem"a"s Voreinstellung die Seitenzahl (auf der Seite!) +und die Fu"snotenexponenten in Schr"agstrichen aus. +\verb|bibsort| druckt diese 'Klammern'\pdfko{.5}\ +nicht aus, erkennt aber den +Wert des Z"ahlers. $-$ Falls Sie andere Symbole\pdfko{1.5}\ +ausgedruckt haben wollen, k"onnen Sie beispielsweise so ansetzen: + +\vspace{.875ex}\noindent{\small +\verb| \renewcommand{\pbapageframe}[1]{\{#1\}}| \\ +\verb| \renewcommand{\pbafootnoteframe}[1]{(#1)}| \\ +\verb| \renewcommand{\thepage}{{\bapageframe{\roman{page}}}}| \\ +\verb| \renewcommand{\thefootnote}| \\ +\verb| {{\bfseries\bafootnoteframe{\arabic{footnote}}}}|} + +\vspace{1.125ex}\noindent +Das w"urde die Seitenzahl in geschweiften Klammern und die +Fu"snotennummer fett in fetten runden Klammern ausdrucken +(sowie auch \LaTeX- \ko und\pdfko{1.25}\ +\BibArts\hy Querverweise, die auf +solche Seiten oder Fu"snoten zeigen). + +\vspace{.125ex} +Nummern, die als 'TEXT' gelten, druckt \verb|bibsort| +als \textsf{$^{\{{\,A\/}\}}$$^{,}$ $^{\{{\,B\/}\}}$$^{,}$ $^{\{{\,C\/}\}}$} +aus;\pdfko{1.25}\ +Sie k"onnen mit \verb|-c| den Ausdruck der geschweiften Klammern +unterdr"ucken. Leere Z"ahlerstandsausdrucke\footnote{Tritt auf bei +'r"omische Seite Null'.} gibt \verb|bibsort| als \verb|[]| wieder; +und Ausdrucke\pdfko{1.25}\ +von Z"ahler"uberl"aufen\footnote{Wenn Z"ahlerst"ande +gr"o"ser 26 in Buchstaben ausgedruckt werden sollen.} als +\verb|()|; beides kann nicht ausgeschaltet werden. + +\vspace{1.5ex}\noindent +Und noch weitere Optionsschalter von \verb|bibsort|: + +\vspace{.15ex} +\verb|-t1| stellt einen Versuch dar, Zeichen aus der zweiten +H"alfte der ASCII\hy Codetabelle auszudrucken; das kommt aber +anscheinend nur vor, wenn Sie kein \verb|{inputenc}| setzen +und Zeichen des erweiterten Teils trotzdem tippen. In was +umgewandelt wird, ist in \verb|bibsort.c| in \verb|teinzerw| fix +definiert. + +\vspace{.05ex} +\verb|-i=j| sortiert \verb|i| unter \verb|j|; Zug"ange mit +\textit{beiden} Anfangsbuchstaben bilden in den Listen also +\textit{einen} Block (wie in alten deutschen Zettelkatalogen). + + +\vspace{1.5ex}\noindent +Neben \verb|\sort| \baref{sort} l"asst sich die Sortierreihenfolge +mit dem Befehl \verb|\nosort| steuern. Sein Argument wird gedruckt, +aber zur Bestimmung der Sortierreihenfolge weitgehend ausgeblendet. +\verb|\nosort| wird gebraucht, wenn zwei gleiche Buchstabenfolgen +(oder Zahlen) einmal geklammert und einmal ungeklammert auftauchen +und die 'nackten' Buchstaben zuerst einsortiert werden sollen. (Das +ist defaultm"a"sig umgekehrt wegen der Spielregel 'Zeichen zuerst': +die oberen Sortierschichten finden zwischen \verb|'a'| und \verb|a| +keinen Unterschied, die unteren vergleichen danach \verb|'| mit +\verb|a|.) Wie in der Liste vorgemacht, w"are \verb|\nosort{'}a'| +zu setzen. $-$ Sie k"onnen alternativ auch mit + +\vspace{-1.5ex}{\small +\begin{verbatim} + \newcommand{\Acmd}{'} + \newcommand{\cmd}{\protect\Acmd} + \addtoprr{\cmd a'} +\end{verbatim}} + +\vspace{-1.5ex}\noindent +erzwingen, dass 'a' nach a und vor \verb|\glqq a\grqq| +(\glqq a\grqq) einsortiert wird +(wegen des A in \verb|\Acmd| gegen"uber g in \verb|\grqq|). +Dies wirkt aber nur, wenn nicht bereits weitere +Buchstaben oder Zahlen nach \verb|a| unterschiedlich sind! + +\vspace{1ex}\noindent +\verb|bibsort| schreibt keine Protokolldatei, sondern setzt seine +Fehlermeldungen als Kommentarzeilen in die erzeugten Dateien. +Wenn anders sortiert wird als erwartet, k"onnen Sie \ko\verb|-m| +setzen; dann f"ugt \verb|bibsort| zu jedem Eintrag als\pdfko{1.25}\ +\LaTeX\hy +Kommentar seine zum Sortieren genutzten Meta\hy Zeilen hinzu. +(Die\pdfko{.25}\ +Sonderzeichen zur Nachbewertung bilden manche Editoren +nur teilweise ab!) + +\vspace{1ex}\noindent +Wie oben S.\,\pageref{head} vorgef"uhrt, bewirkt \verb|\bibsortheads|, +dass Bl"ocke mit gleichen Anfangsbuchstaben in den Listen mit +"Uberschriftenbuchstaben versehen werden; \verb|\bibsortspaces| +setzt an diesen Stellen nur vergr"o"serte vertikale Abst"ande. +Die Buchstaben stellt \verb|bibsort| in allen neun +Dateien immer bereit;\pdfko{.5}\ +\verb|\bibsortheads| ordnet +nur an, dies nicht mehr auszublenden. Ein Umstellen +der Schrift der "Uberschriftenbuchstaben ist nicht vorgesehen. + + +\vfill\noindent +\verb|bibsort| sortiert \verb|\fnsymbol| "ubrigens deswegen zuerst ein, +weil \LaTeX\ diese\pdfko{1.5}\ +Marken f"ur Fu"snoten in seiner Titelkonstruktion +vorsieht. In \verb|\title| k"onnen\pdfko{1.25}\ +Sie leider keine +\BibArts\hy Befehle in \verb|\protect\footnote{|...\verb|}| +einsetzen. Sie m"ussen \verb|\footnote| in +\verb|\footnotemark| und \verb|\footnotetext| trennen, sonst droht\pdfko{1}\ +ein Speicher"uberlauf. Beispiel ist ein einfacher kleiner Text: + + +\newpage + +\vspace{.5cm}\noindent +\begin{verbatim} +\documentclass[12pt,a4paper]{article} + \usepackage{ngerman} \usepackage{bibarts} + + \author{Peter Maier} + \title{Aufsatz\footnotemark[1]} + + +\begin{document} + +{\renewcommand{\thefootnote}{\fnsymbol{footnote}} + \footnotetext[1]{Vgl.\ dazu \vli{Niall}{Ferguson}{Der + \ktit{\onlykurz{F}\onlyvoll{f}alsche\onlykurz{r} Krieg}, + M"unchen 2001}[22].}} + +\maketitle + +\noindent +Der erste Satz.\footnote{\kli{Ferguson}{Falscher Krieg}[23].} + +\end{document} +\end{verbatim} + +\vfill +\begin{minipage}{.9\textwidth} +\vspace{1.5cm}\noindent +{\renewcommand{\thempfootnote}{\fnsymbol{mpfootnote}}% +\begin{center} +{\LARGE \hspace*{.4em}Aufsatz$^{*}$}\\[4.05ex] +{\large Peter Maier}\\[2.65ex] +{\large \today}\\ +\end{center} + \footnotetext[1]{Vgl.\ dazu \vli{Niall}{Ferguson}{Der + \ktit{\onlykurz{F}\onlyvoll{f}alsche\onlykurz{r} Krieg}, + M"unchen 2001}[22].}% +}% +{\renewcommand{\thempfootnote}{\arabic{mpfootnote}}% +\vspace{4ex}\noindent +Der erste Satz.\footnote{\kli{Ferguson}{Falscher Krieg}[23].}} +\vspace{2cm} +\end{minipage} + + + +\newpage +\thispagestyle{empty} +\section*{Inhaltsbeschreibung}\label{SectIn} +\newcommand\tocline[2]{\hbox to .5cm{\hfill\bfseries{\ref{#1}}} \ {#2} \dotfill\hbox to .5cm {\hfill\ttfamily\pageref{#1}}} + +\strut \\[-1ex] +\hspace*{2cm}\textsf{Zun"achst werden die zentralen \BibArts\hy Befehle erkl"art:} \\[.875ex] +\tocline{Sect1} {Vollzitate und Kurzzitate} \\[.25ex] +\tocline{Sect2} {W"ortliche Zitate in verschiedenen Sprachen} \\[.25ex] +\tocline{Sect3}{Formatierungs- und Editionshilfen} \\[.25ex] +\tocline{Sect4} {Abk"urzungen} \\[.25ex] +\tocline{Sect5} {\texttt{\bs abk\{X.X.X.\}} unter \texttt{\bs nonfrenchspacing}} \\[.25ex] +\tocline{Sect6} {Zeitschriften und allgemein Bandangaben} \\[.25ex] +\tocline{Sect7} {Archivquellen} \\[.25ex] +\tocline{Sect8} {Orts\fhy, Sach\hy\ und Personenregister} \\[1.5ex] +\hspace*{2cm}\textsf{Dann beschreibe ich Sonderf"alle und Hintergrundbefehle:} \\[.875ex] +\tocline{Sect9} {\texttt{\bs protect} und zerbrechliche Befehle} \\[.25ex] +\tocline{Sect10} {\textit{Italics}\hy Korrekturen in Separatoren} \\[.25ex] +\tocline{Sect11}{Punkte, \,\texttt{\bs bahasdot} \,und \,\texttt{\bs banotdot}} \\[.25ex] +\tocline{Sect12}{Sprachabh"angige Separatoren (\kern-.02em\textit{captions})} \\[1.5ex] +\hspace*{2cm}\textsf{Hier kommen Zusammenstellungen nach Aufgabentyp:} \\[.875ex] +\tocline{Sect13}{Die \BibArts\hy Hauptbefehle} \\[.25ex] +\tocline{Sect14}{Hervorhebung von \BibArts\hy Argumenten} \\[.25ex] +\tocline{Sect15}{\BibArts\hy Ein\fhy\ko/\ko\ko Ausschalter (bes.\ \ko f"ur \ko\ko Vorspann)} \\[.25ex] +\tocline{Sect16}{\BibArts\hy\hspace{-.025em}1.3\hspace{.075em}\hy Texte unter \BibArts~2.0} \\[.25ex] +\tocline{Sect17}{Listenausdruck (\BibArts-Belegapparat)} \\[1.5ex] +\hspace*{2cm}\textsf{Und zuletzt Sortierprogramm und Sortierreihenfolge:} \\[.875ex] +\tocline{Sect18}{\texttt{bibsort}} \\ \strut + + + +\vfill +\hbox{\parbox{7.7cm}{\footnotesize\noindent +\textbf{Das Paket enth"alt acht Dateien (29.11.15):} \\[1.5ex] + \begin{tabular}{ll}% + \texttt{bibarts.sty} & Das \LaTeX-Style-File \\[-1.5pt] + \texttt{bibarts.pdf} & Diese Dokumentation hier \\[-1.5pt] + \texttt{bibarts.tex} & Quellcode von \texttt{bibarts.pdf} \\[-1.5pt] + \texttt{ba-short.pdf} & Englische Kurzdokumentation \\[-1.5pt] + \texttt{ba-short.tex} & Quellcode von \texttt{ba-short.pdf}\\[-1.5pt] + \texttt{bibsort.exe} & Das Sortierprogramm \\[-1.5pt] + \texttt{bibsort.c} & Quellcode von \texttt{bibsort.exe} \\[-1.5pt] + \texttt{copying} & Die Lizenz des Pakets \\ + \end{tabular}} +\\ +\hspace*{2.4mm} +\parbox{5.6cm}{\sethyphenation{english}\tiny\sffamily + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +}} + +{\footnotesize\vspace{2ex}\noindent \BibArts\ ist kostenlos. Bitte +dokumentieren Sie "Anderungen vor der Weitergabe. +Zur Diskussion schreiben Sie Emails an +\texttt{bibarts}\kern.075em(\kern-.05em at\kern-.075em)\kern.075em\texttt{gmx.de}\kern.05em; +ich werde nach M"oglichkeit antworten.} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%\tableofcontents + + +\end{document} diff --git a/Master/texmf-dist/doc/latex/bibarts/bibsort.exe b/Master/texmf-dist/doc/latex/bibarts/bibsort.exe Binary files differnew file mode 100755 index 00000000000..768e6362436 --- /dev/null +++ b/Master/texmf-dist/doc/latex/bibarts/bibsort.exe diff --git a/Master/texmf-dist/doc/latex/bibarts/copying b/Master/texmf-dist/doc/latex/bibarts/copying new file mode 100644 index 00000000000..a43ea2126fb --- /dev/null +++ b/Master/texmf-dist/doc/latex/bibarts/copying @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) 19yy <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/Master/texmf-dist/doc/latex/bibarts/gbib209.bat b/Master/texmf-dist/doc/latex/bibarts/gbib209.bat deleted file mode 100755 index e7db11067a9..00000000000 --- a/Master/texmf-dist/doc/latex/bibarts/gbib209.bat +++ /dev/null @@ -1,68 +0,0 @@ -@echo off - -REM See english abstract on the first lines of bibarts.tex. - -REM Zur Bearbeitung von bibarts.tex soll dreimal -REM gbib209 bibarts -REM eingegeben werden, falls LaTeX mit glatex gestartet werden soll und -REM gbib2e bibarts -REM soll dreimal eingegeben werden, falls LaTeX mit gltx2e gestartet -REM werden soll. - -REM bibarts 1.3, Timo Baumann, 28.Mar.1998; keinerlei Haftung! - - -if "%1"=="" goto INFO - -if not exist %1.tex goto TEXT_EXISTIERT_NICHT - -if exist %1.bar GBIBSORT %1.bar %1.phy -k - -if exist C:\EMTEX\IDXSTYLE\GBIBARTS.IST goto GBIBARTS_IST_IST_DA -if exist GBIBARTS.IST goto HIER - -echo Die Datei GBIBARTS.IST konnte nicht unter C:\EMTEX\IDXSTYLE\GBIBARTS.IST -echo gefunden werden. -echo . -echo "%1.bar" wird jetzt bearbeitet mit den Kommandos in der Befehls-Zeile: -echo MAKEINDX -l %1.bar -if exist %1.bar MAKEINDX -l %1.bar -goto WEITER - -:GBIBARTS_IST_IST_DA -if exist %1.bar MAKEINDX -s C:\EMTEX\IDXSTYLE\GBIBARTS.IST -g -l %1.bar -goto WEITER - -:HIER -if exist %1.bar MAKEINDX -s GBIBARTS.IST -g -l %1.bar -goto WEITER - -:WEITER - -call GLATEX %1.tex - -goto ENDE - -:INFO -echo ------------------------------------------------------------------------- -echo BIBARTS 1.3: %0 = Start von LaTeX mit GLATEX.BAT. -echo Zur Bearbeitung von BIBARTS.TEX soll dreimal eingegeben werden: -echo gbib209 bibarts -echo Hiermit werden GLATEX.BAT, GBIBSORT.EXE und MAKEINDX.EXE -echo (mit Index-STyle File GBIBARTS.IST) aufgerufen. -echo GBIBARTS.IST soll nach C:\EMTEX\IDXSTYLE kopiert werden. -echo Allgemein k"onnen Texte bearbeitet werden durch Eingabe von -echo gbib209 [ LaTeX-File.TEX [ ohne .TEX angeben ] ] -echo . -echo gbib2e.bat, gbib209.BAT und GBIBSORT.EXE sollten in ein Verzeich- -echo nis kopiert werden, das sich im PATH des Betriebsystems befindet. -echo ------------------------------------------------------------------------- - -goto ENDE - -:TEXT_EXISTIERT_NICHT -echo Eine Datei "%1.tex" existiert nicht. Bearbeitet werden k"onnen: -dir *.tex /B - - -:ENDE diff --git a/Master/texmf-dist/doc/latex/bibarts/gbib2e.bat b/Master/texmf-dist/doc/latex/bibarts/gbib2e.bat deleted file mode 100755 index 356f6ae69ad..00000000000 --- a/Master/texmf-dist/doc/latex/bibarts/gbib2e.bat +++ /dev/null @@ -1,68 +0,0 @@ -@echo off - -REM See english abstract on the first lines of bibarts.tex. - -REM Zur Bearbeitung von bibarts.tex soll dreimal -REM gbib209 bibarts -REM eingegeben werden, falls LaTeX mit glatex gestartet werden soll und -REM gbib2e bibarts -REM soll dreimal eingegeben werden, falls LaTeX mit gltx2e gestartet -REM werden soll. - -REM bibarts 1.3, Timo Baumann, 28.Mar.1998; keinerlei Haftung! - - -if "%1"=="" goto INFO - -if not exist %1.tex goto TEXT_EXISTIERT_NICHT - -if exist %1.bar GBIBSORT %1.bar %1.phy -k - -if exist C:\EMTEX\IDXSTYLE\GBIBARTS.IST goto GBIBARTS_IST_IST_DA -if exist GBIBARTS.IST goto HIER - -echo Die Datei GBIBARTS.IST konnte nicht unter C:\EMTEX\IDXSTYLE\GBIBARTS.IST -echo gefunden werden. -echo . -echo "%1.bar" wird jetzt bearbeitet mit den Kommandos in der Befehls-Zeile: -echo MAKEINDX -l %1.bar -if exist %1.bar MAKEINDX -l %1.bar -goto WEITER - -:GBIBARTS_IST_IST_DA -if exist %1.bar MAKEINDX -s C:\EMTEX\IDXSTYLE\GBIBARTS.IST -g -l %1.bar -goto WEITER - -:HIER -if exist %1.bar MAKEINDX -s GBIBARTS.IST -g -l %1.bar -goto WEITER - -:WEITER - -call gltx2e %1.tex - -goto ENDE - -:INFO -echo ------------------------------------------------------------------------- -echo BIBARTS 1.3: %0 = Start von LaTeX mit GLATEX.BAT. -echo Zur Bearbeitung von BIBARTS.TEX soll dreimal eingegeben werden: -echo gbib2e bibarts -echo Hiermit werden gltx2e.BAT, GBIBSORT.EXE und MAKEINDX.EXE -echo (mit Index-STyle File GBIBARTS.IST) aufgerufen. -echo GBIBARTS.IST soll nach C:\EMTEX\IDXSTYLE kopiert werden. -echo Allgemein k"onnen Texte bearbeitet werden durch Eingabe von -echo gbib2e [ LaTeX-File.TEX [ ohne .TEX angeben ] ] -echo . -echo gbib2e.bat, gbib2e.BAT und GBIBSORT.EXE sollten in ein Verzeich- -echo nis kopiert werden, das sich im PATH des Betriebsystems befindet. -echo ------------------------------------------------------------------------- - -goto ENDE - -:TEXT_EXISTIERT_NICHT -echo Eine Datei "%1.tex" existiert nicht. Bearbeitet werden k"onnen: -dir *.tex /B - - -:ENDE diff --git a/Master/texmf-dist/doc/latex/bibarts/gbibsort.exe b/Master/texmf-dist/doc/latex/bibarts/gbibsort.exe Binary files differdeleted file mode 100755 index 8c01b858433..00000000000 --- a/Master/texmf-dist/doc/latex/bibarts/gbibsort.exe +++ /dev/null diff --git a/Master/texmf-dist/makeindex/bibarts/gbibarts.ist b/Master/texmf-dist/makeindex/bibarts/gbibarts.ist deleted file mode 100644 index 852266c7050..00000000000 --- a/Master/texmf-dist/makeindex/bibarts/gbibarts.ist +++ /dev/null @@ -1,6 +0,0 @@ -quote '=' -delim_0 " " -delim_1 " " -delim_2 " " -delim_n "\\komma " -delim_t " " diff --git a/Master/texmf-dist/source/latex/bibarts/bibsort.c b/Master/texmf-dist/source/latex/bibarts/bibsort.c new file mode 100644 index 00000000000..bc606324e6e --- /dev/null +++ b/Master/texmf-dist/source/latex/bibarts/bibsort.c @@ -0,0 +1,5419 @@ +/* BibArts 2.0 assists you to write LaTeX texts in arts and humanities. */ +/* This file BIBSORT.C, and BIBARTS.STY, are parts of BibArts 2.0. */ +/* Copyright (C) 2015 Timo Baumann bibarts[at]gmx.de (11-29-2015) */ + +/* This program is free software; you can redistribute it and/or modify */ +/* it under the terms of the GNU General Public License as published by */ +/* the Free Software Foundation; either version 2 of the License, or */ +/* (at your option) any later version. */ + +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU General Public License for more details. */ + +/* You should have received a copy of the GNU General Public License */ +/* along with this program; if not, write to the Free Software */ +/* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +/* The C-compiled binary of this file should now read LaTeX .AUX files. */ +/* It will not read .BAR files of BibArts versions 1.x. BIBARTS.STY in */ +/* Version 2.0 ONLY has an EMULATION for 1.3 texts: Keep copies of 1.x? */ + + +/* Do not write into this file when you do not have a qualified text */ +/* editor - it contains control chars: '', '', '', '', | Are the */ +/* '', '', '', '', '', '', '', '', '', '', '', | |'s in */ +/* '', '', '', '', '', '', '', '', '', and ''. | a line? */ + + + +/* +I have tested BIBSORT.C with several C compilers. I had problems with +the DEVCPP.EXE editor (Dev-Cpp_5.4.0_TDM-GCC_x64_4.7.1). Sucessful was: +"C:\Program Files (x86)\Dev-Cpp\MinGW64\bin\gcc.exe" -O2 -c bibsort.c -o bibsort.o +"C:\Program Files (x86)\Dev-Cpp\MinGW64\bin\gcc.exe" bibsort.o -o bibsort.exe +*/ + + + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <ctype.h> +#include <limits.h> +#include <time.h> + + + + +#define MAXLINES 65536 +#define MAXLEN 4096 +#define MAXFILES 128 +#define MAXFILENAMLEN 256 + +#define LEVE_OPEN 1 + +#define IKILLNAME "\\Ikillname{}" /* -K: Damit wird ARG1 und ARG2 einer */ + /* Zeile ersetzt, falls diese in der */ + /* vorausgehenden Zeile gleich sind; */ +#define NKILLNAME "\\killname{}" /* ... und weitere gleiche Namen. */ +#define PLURALCHAR 'P' /* "\\Pkillname{}" */ +#define MALE "\\male" +#define FEMALE "\\female" +#define NOTDOT "\\banotdot" +#define HASDOT "\\bahasdot" +#define RELAX "\\relax" /* Auch um folgende spaces zu ignorieren */ +#define TeXITEM "\\item" +#define TYPEOUT "\\typeout@ba" +#define IeC "\\IeC" +#define IeClen 4 +#define PREPARESPACE "\\bibsortpreparespace" +#define PREPAREXSPACE "\\bibsortpreparexspace" +#define PREPAREHEAD "\\bibsortpreparehead" + +#define ABKDEF "\\abkdef" + +#define BAFALSE "{false}" + + +#define NOKILLAUTHORS 0 +#define DOKILLAUTHORS 1 +#define DOKILLABBREVS 2 +#define DOKILLREGISTS 3 +#define DOKILLK 4 + +#define OPENB "\'{\'" +#define CLOSEB "\'}\'" +#define NUMLEN 16 + +int ignorespaces = 0; +int registpoints = 0; +char *lineptr[MAXLINES]; + + +#define PCOLS 2 +#define PCOLSSORT 1 +#define ACOLS 2 +#define ACOLSSORT 1 +#define KCOLS 4 +#define KTIT "\\ktit" +#define VCOLS 4 +#define IS_Q 2 +#define IS_V 1 +#define NO_V 0 +#define MAXBACOLS 4 +char *subAptr[MAXBACOLS][MAXLINES]; +char *subBptr[MAXBACOLS][MAXLINES]; +char *subCptr[MAXBACOLS][MAXLINES]; + +#define ACCEPTLINE 0 +#define REJECTLINE 1 +#define DOUBLELINE 2 /* \ */ +#define DIFFERLINE 3 /* Erst ***nach*** */ +#define UNDEFILINE 4 /* QQsort vergeben */ +#define ABBREVLINE 5 /* / */ +#define REDEF1LINE 6 +#define REDEF2LINE 7 +int leval[MAXLINES]; + +#define BARESTCOLS 5 +#define PAGEFNTCOL 1 +#define PAGECOL BARESTCOLS +#define FNTCOL (BARESTCOLS+1) +#define BAALLRCOLS (BARESTCOLS+2) +char *subRptr[BAALLRCOLS][MAXLINES]; +int pagewgt[MAXLINES]; +int fntwgt[MAXLINES]; + +#define STUFFRCOL 0 +#define KENTRY 0 +#define VENTRY 1 +#define ERRENTRY 2 +#define VENTRYCH 'v' +#define KENTRYCH 'k' + +#define ERRINPUTLINENO "line \?\?" +#define ERRINPUTLINENOLEN 7 + +#define OVERFLOWTXT "Counter too large" + /* vgl. -> "\\errmessage\t" */ +#define MISSINGSYMB "\\erri@ba" +#define MISSINGERMS "??" +#define OVERFLOWSYMB "()" +#define EMPTYSYMB "[]" +char *TEXTSYMBOPEN[] = { "\\{{", "{", NULL }; +char *TEXTSYMBCLOSE[] = { "\\/}\\}", "\\/}", NULL }; +int notext = 0; + +int dqsort[MAXLINES]; +#define MINCATCODE 0 +#define MAXCATCODE 15 +#define ERRCATCODE MINCATCODE-1 +const char bareststr[] = "{}{}[][]()"; +#define DQCOL 2 +#define TeXACTIVE 13 +#define TeXPASSIVE 12 +#define LANCOL 3 +#define GERMANTEX "\\bagermanTeX" /* err-def ist \bagermanTeX#1{} */ +#define ORIGINALTEX "\\baoriginalTeX" /* err-def ist \baoriginalTeX#1{} */ +#define HYPHENATION "\\language=" +#define LINECOL 4 +#define OLDBIGROMAN "\\uppercase" +#define NEWFNSYMBOL "\\ensuremath" +#define TEXFILELINE "\\line@ba" + +#define BALOOPSPACE "\\ " +#define BAINDEXLIST " \\first@baidx{" +#define BAINDEXFOLL " \\follo@baidx{" +#define BAINDEXEND "}\n" +#define BAINDEXLOOPS 5 + + +#define BADNUM 0 +#define GOODNUM 1 +#define CHECKNUM 0 +#define ANALYZENUM 1 +#define HASOFLOW 0 +#define HASNOOFLOW 1 + +#define MAXMESSN 10 +#define MAXINFO 10 + +FILE *infile, *outfile; +char *filelist[MAXFILES]; + +int upperascii = 0; +int german = 0; +int nogsty = 0; +int encode = 0; +int EinlROEMseiten = 0; +int ALPHmpfootnotes = 0; +int igleichj = 0; + +void print_two(int line, int left, int right); + +char *mydefault = ""; +char *nofnt = "(nofnt)"; /* nur "" wuerde Fehler machen */ +char *unused = "(unused)"; +void myfree(char *p) { if (p != mydefault && p != nofnt && p != unused && p != NULL) free(p); } + + +void openfailed(const char *s) +{ + fprintf(stderr, "%%%% == Failed to open \"%s\". ==\n", s); +} + + +void announceexit(const char *s) +{ + fprintf(stderr, "%%%%> I give up my job, because I %s.\n", s); +} + + +char *strnmalloc(const char *q, int len) +{ char *p = mydefault; + if (len < 1) { printf("\nmallocError: len=%d\n\n", len); len = 1; } + p = (char *) calloc(1, len); + if (p == NULL) + { + printf("%%%%\n%%%%> Error: Not enough memory.\n"); + announceexit("could not alloc enough memory"); + exit(1); + } + else strncpy(p, q, len-1); + return p; +} +#define HASFNTCH '@' +#define HASUNUCH '-' + + +/*--------------------------------------------------------------------------*/ + + +void licenseinfo(void) +{ + printf("%%%% I guess that I am a bin-compilation of BIBSORT.C. My job is to read\n"); + printf("%%%% entries in LaTeX .AUX files which are made by BIBARTS.STY. Use e.g.\n"); + printf("%%%% \\vli{FirstName}{FamilyName}{BookTitle, Year} and \\printvli in your\n"); + printf("%%%% .TEX file. For usage, see BA-SHORT.PDF (engl) or BIBARTS.PDF (ger).\n"); + printf("%%%%\n"); + printf("%%%% This program is free software; you can redistribute it and/or modify\n"); + printf("%%%% it under the terms of the GNU General Public License as published by\n"); + printf("%%%% the Free Software Foundation; either version 2 of the License, or\n"); + printf("%%%% (at your option) any later version.\n"); + printf("%%%%\n"); + printf("%%%% This program is distributed in the hope that it will be useful,\n"); + printf("%%%% but WITHOUT ANY WARRANTY; without even the implied warranty of\n"); + printf("%%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"); + printf("%%%% GNU General Public License for more details.\n"); + printf("%%%%\n"); + printf("%%%% You should have received a copy of the GNU General Public License\n"); + printf("%%%% along with this program; if not, write to the Free Software\n"); + printf("%%%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n"); + printf("%%%%\n"); +} + + +void moreinfo(void) +{ + printf("%%%% The \\printnum... cmds in your LaTeX file will print your entrys with\n"); + printf("%%%% page and footnote numbers (where they\'re used) as index: 2-5, 7$^{2}$.\n"); + printf("%%%% I provide the page and footnote numbers ALWAYS in the following order:\n"); + printf("%%%% - fnsymbol - roman - arabic - letter (z=26, aa=27, ab=28) - TEXT\n"); + printf("%%%% Default: *small roman page numbers* are page numbers of introduction;\n"); + printf("%%%% *capital letter page numbers* are page numbers of appendix;\n"); + printf("%%%% *small letter footnote marks* are footnote marks in minipages.\n"); + printf("%%%% Numbers, which I cound not evaluate, are typed %sTEXT%s.\n", TEXTSYMBOPEN[0], TEXTSYMBCLOSE[0]); + printf("%%%%\n"); + printf("%%%% BIBSORT <LaTeXFile> [<OutFile>] [-s1] [-f1] [-c] [-t1] [-i=j] [-m]\n"); + printf("%%%%\n"); + printf("%%%% -s1 Page numbers: EVALUATE capital roman nums before capital letters.\n"); + printf("%%%% -f1 Footnote marks: EVALUATE small roman nums before small letters.\n"); + printf("%%%% -c I type TEXT numbers as %sTEXT%s.\n", TEXTSYMBOPEN[1], TEXTSYMBCLOSE[1]); + printf("%%%% -t1 You use [T1]{fontenc} and NO [...]{inputenc}: I sort ASCIIs > 127\n"); + printf("%%%% (default: I do not expect ASCIIs > 127 in your .AUX file).\n"); + printf("%%%% -i=j I sort \'i\' as \'j\' (prussian instructions).\n"); + printf("%%%% -m Write into files the meta args which I use to sort your lines.\n"); + printf("%%%%\n"); +} + + +void info(void) +{ + printf("%%%% I read a LaTeX .AUX file (follow \\@input), and I write my output in files\n"); + printf("%%%% .VLI literature .VQU published sources .GRR geographic index\n"); + printf("%%%% .VKC short titles .ARQ unpublished sources .PRR person index\n"); + printf("%%%% .PER periodicals .ABK abbreviations .SRR subject index\n"); + printf("%%%%\n"); + printf("%%%% BIBSORT <LaTeXFile> [<OutFile>] [-g1/2] [-x] [-l] [-p] [-k] [-d]\n"); + printf("%%%%\n"); + printf("%%%% DefaultSort: 0, .., 9, (A a), (B b), .., (s \\ss S), .., (Z z) and\n"); /* udtable */ + printf("%%%% (a [\\.\\'\\`\\^\\\"\\=\\~]a \\aa=\\r{a} [\\b\\c\\k\\d\\H\\t\\u\\v]{a} \\ae), b, ..\n"); + printf("%%%% -g1/2 GermanSort: (a A), .., (z Z), 0, .., 9; and (\\\" or active \"):\n"); + printf("%%%% -g1 GermanTelefonebookStyle: \"a = \\\"a = ae, ..., \"s = \\ss = ss;\n"); /* gweight */ + printf("%%%% -g2 ModernGermanDictionary: \"a = \\\"a = a, ..., \"s = \\ss = ss.\n"); /* mweight */ + printf("%%%% -x DoNotExpectGERMAN.STY: Active \"-characters do NOT produce umlauts.\n"); + printf("%%%% -l IgnoreSpaces. -p Point: Sort \"P.S.\" before \"Peter\".\n"); + printf("%%%% -k Kill: Idemize multiple used authors on list of literature.\n"); + printf("%%%% -d Dos: Use '\\' instead of '/' in path(s) of include-files.\n"); + printf("%%%% -\?\? More options: -s1 -f1 -c -t1 -i=j -m\n"); + printf("%%%% -r Read informations about my license and documentation files.\n"); + printf("%%%%\n"); +} + + +/*--------------------------------------------------------------------------*/ + + +int artithmetic_overflow(const char *cc) +{ + printf("%%%%\n%%%%> Warning: Arithmetic overflow num=%s.\n", cc); + + return INT_MAX; +} + + +int getarabicnum(const char *p) +{ + int num = 0, vor = 1; + const char *mem; + + while (*p == ' ') ++p; mem = p; + + if (*p == '-') { vor = -1; ++p; } + + while (*p >= '0' && *p <= '9' && num >= 0) + num = (10 * num) + (*p++ - '0'); + + if (num < 0) num = artithmetic_overflow(mem); + + return num * vor; +} + + +int firstoverlettergan(const char *p) +{ + while (*p == ' ' || isalpha(*p) != 0) ++p; + + return getarabicnum(p); +} + + +int secondoverlettergan(const char *p) +{ + while (*p == ' ' || isalpha(*p) != 0) ++p; + while (*p >= '0' && *p <= '9') ++p; + while (*p == ' ' || isalpha(*p) != 0) ++p; + + return getarabicnum(p); +} + + +int getLetterletternum(const char *p) +{ + int num = 0, vor = 1; + const char *mem; + + while (*p == ' ') ++p; mem = p; + + if (*p == '-') { vor = -1; ++p; } + + while (num >= 0) + { + if (*p >= 'A' && *p <= 'Z') num = (26 * num) + (*p++ - 'A' + 1); + else if (*p >= 'a' && *p <= 'z') num = (26 * num) + (*p++ - 'a' + 1); + else break; + } + + if (num < 0) num = artithmetic_overflow(mem); + + return num * vor; +} + + +int getRomanromannum(const char *p) +{ + int val = 0, nextval, num = 0, vor = 1; + const char *mem; + + while (*p == ' ') ++p; mem = p; + + if (*p == '-') { vor = -1; ++p; } + + while (*p != '\0' && num >= 0) + { + if (*p == 'i' || *p == 'I') val = 1; + else if (*p == 'v' || *p == 'V') val = 5; + else if (*p == 'x' || *p == 'X') val = 10; + else if (*p == 'l' || *p == 'L') val = 50; + else if (*p == 'c' || *p == 'C') val = 100; + else if (*p == 'd' || *p == 'D') val = 500; + else if (*p == 'm' || *p == 'M') val = 1000; + else break; + + if (*(p+1) == '\0') nextval = 0; + else if (*(p+1) == 'i' || *(p+1) == 'I') nextval = 1; + else if (*(p+1) == 'v' || *(p+1) == 'V') nextval = 5; + else if (*(p+1) == 'x' || *(p+1) == 'X') nextval = 10; + else if (*(p+1) == 'l' || *(p+1) == 'L') nextval = 50; + else if (*(p+1) == 'c' || *(p+1) == 'C') nextval = 100; + else if (*(p+1) == 'd' || *(p+1) == 'D') nextval = 500; + else if (*(p+1) == 'm' || *(p+1) == 'M') nextval = 1000; + else nextval = 0; + + if (nextval > val) { num = num - val + nextval; ++p; } + else num = num + val; + + ++p; + } + + if (num < 0) num = artithmetic_overflow(mem); + + return num * vor; +} + +/*--------------------------------------------------------------------------*/ + + +int has_o_flow(const char *p) +{ + int r = HASNOOFLOW; + + if (isinstr(p, OVERFLOWTXT) == 1) r = HASOFLOW; + + return r; +} + + +int endnumberline(const char *p, int r) +{ + int len = strlen(RELAX); + + while (*p == ' ') ++p; + if (*p == '}') ++p; + while (strncmp(p, RELAX, len) == 0) p+=len; + while (*p == ' ') ++p; + + if (*p != '\0') r = BADNUM; + + return r; +} + + +/* ALT */ +/* "*\relax " */ /* 1 */ +/* "\dagger \relax " */ /* 2 */ +/* "\ddagger \relax " */ /* 3 */ +/* "\mathchar "278\relax " */ /* 4 */ +/* "\mathchar "27B\relax " */ /* 5 */ +/* "\delimiter "26B30D \relax " */ /* 6 */ +/* "**\relax " */ /* 7 */ +/* "\dagger \dagger \relax " */ /* 8 */ +/* "\ddagger \ddagger \relax " */ /* 9 */ + +/* NEU */ +/* "*" */ /* 1 */ +/* "\dagger " */ /* 2 */ +/* "\ddagger " */ /* 3 */ +/* "\mathchar "278" */ /* 4 */ +/* "\mathchar "27B" */ /* 5 */ +/* "\delimiter "026B30D " */ /* 6 */ +/* "**" */ /* 7 */ +/* "\dagger \dagger " */ /* 8 */ +/* "\ddagger \ddagger " */ /* 9 */ + +/* GANZ NEU */ +/* "\ensuremath {*}" */ /* 1 */ +/* "\ensuremath {\dagger }" */ /* 2 */ +/* "\ensuremath {\ddagger }" */ /* 3 */ +/* "\ensuremath {\mathsection }" */ /* 4 */ +/* "\ensuremath {\mathparagraph }" */ /* 5 */ +/* "\ensuremath {\delimiter "026B30D }" */ /* 6 */ +/* "\ensuremath {**}" */ /* 7 */ +/* "\ensuremath {\dagger \dagger }" */ /* 8 */ +/* "\ensuremath {\ddagger \ddagger }" */ /* 9 */ + + +int nextsymbolnum(int oldnum, int beginnum) +{ + if (oldnum == 0) return beginnum; + else return oldnum + 6; +} + + +int evalsymbol(const char *p, const int job) +{ + int r = BADNUM, num = 0, len, cmdtyp = 0, cmd = 0, vor = 1; + const char *mem; + + while (*p == ' ') ++p; + if (lcmdcmp(p, NEWFNSYMBOL) == 0) p += strlen(NEWFNSYMBOL); + while (*p == ' ') ++p; + if (*p == '{') ++p; + mem = p; + + if (*p == '-') { vor = -1; ++p; } + + while (num >= 0) + { + if ((cmd == 0 || cmd == 6) && cmdtyp < 2 && strncmp(p, "\\delimiter", (len=strlen("\\delimiter"))) == 0) + { + r = BADNUM; /* folgen muessen \"26B30D oder \"026B30D */ + cmdtyp = 2; /* cmd == 6 cmd == 6 */ + } + else if ((cmd == 0 || cmd == 6) && cmdtyp == 2 && strncmp(p, "\"26B30D", (len=strlen("\"26B30D"))) == 0) + { + r = GOODNUM; + num = nextsymbolnum(num, (cmd = 6)); + cmdtyp = 1; + } + else if ((cmd == 0 || cmd == 6) && cmdtyp == 2 && strncmp(p, "\"026B30D", (len=strlen("\"026B30D"))) == 0) + { + r = GOODNUM; + num = nextsymbolnum(num, (cmd = 6)); /* ebenfalls */ + cmdtyp = 1; + } + else if ((cmd == 0 || cmd == 4 || cmd == 5) && cmdtyp < 2 && strncmp(p, "\\mathchar", (len=strlen("\\mathchar"))) == 0) + { + r = BADNUM; /* folgen muessen \"27B oder \"278 */ + cmdtyp = 3; /* cmd == 5 cmd == 4 */ + } + else if ((cmd == 0 || cmd == 5) && cmdtyp == 3 && strncmp(p, "\"27B", (len=strlen("\"27B"))) == 0) + { + r = GOODNUM; + num = nextsymbolnum(num, (cmd = 5)); + cmdtyp = 1; + } + else if ((cmd == 0 || cmd == 5) && cmdtyp < 2 && strncmp(p, "\\mathparagraph", (len=strlen("\\mathparagraph"))) == 0) + { + r = GOODNUM; + num = nextsymbolnum(num, (cmd = 5)); + cmdtyp = 1; + } + else if ((cmd == 0 || cmd == 4) && cmdtyp == 3 && strncmp(p, "\"278", (len=strlen("\"278"))) == 0) + { + r = GOODNUM; + num = nextsymbolnum(num, (cmd = 4)); + cmdtyp = 1; + } + else if ((cmd == 0 || cmd == 4) && cmdtyp < 2 && strncmp(p, "\\mathsection", (len=strlen("\\mathsection"))) == 0) + { + r = GOODNUM; + num = nextsymbolnum(num, (cmd = 4)); + cmdtyp = 1; + } + else if ((cmd == 0 || cmd == 3) && cmdtyp < 2 && strncmp(p, "\\ddagger", (len=strlen("\\ddagger"))) == 0) + { + r = GOODNUM; + num = nextsymbolnum(num, (cmd = 3)); + cmdtyp = 1; + } + else if ((cmd == 0 || cmd == 2) && cmdtyp < 2 && strncmp(p, "\\dagger", (len=strlen("\\dagger"))) == 0) + { + r = GOODNUM; + num = nextsymbolnum(num, (cmd = 2)); + cmdtyp = 1; + } + else if ((cmd == 0 || cmd == 1) && cmdtyp < 2 && strncmp(p, "*", (len=strlen("*"))) == 0) + { + r = GOODNUM; + num = nextsymbolnum(num, (cmd = 1)); + cmdtyp = 0; + } + else if (cmdtyp > 0 && *p == ' ') len=1; + else break; + + p += len; + } + + if (num < 0) num = artithmetic_overflow(mem); + + r = endnumberline(p, r); + + if (job == CHECKNUM) return r; + else return num * vor; +} + + +int evalroman(const char *p, const int job) +{ + int r = BADNUM, num = 0; + const char *mem; + + while (*p == ' ') ++p; mem = p; + + if (*p == '-') ++p; + + while (*p != '\0') + { + if ( *p == 'i' + || *p == 'v' + || *p == 'x' + || *p == 'l' + || *p == 'c' + || *p == 'd' + || *p == 'm' + ) + { ++p; + r = GOODNUM; + } + else break; + } + + r = endnumberline(p, r); + + if (job != CHECKNUM && r == GOODNUM) num = getRomanromannum(mem); + + if (job == CHECKNUM) return r; + else return num; +} + + +int evalRoman(const char *p, const int job) +{ + int r = BADNUM, num = 0, len = strlen(OLDBIGROMAN), vor = 1; + const char *mem; + + while (*p == ' ') ++p; mem = p; + + if ( strncmp(p, OLDBIGROMAN, len) == 0 + || (*p == '-' && strncmp((p+1), OLDBIGROMAN, len) == 0) + ) + { + if (*p == '-') { vor = -1; ++p; } + p += len; + while (*p == ' ') ++p; + if (*p == '{') + { ++p; /* kleine roem. Zahl, die gross gedruckt wird */ + if (*p == '}') r = GOODNUM; /* OLDBIGROMAN + " {}" */ + else + r = evalroman(p, CHECKNUM); /* Der job ist in jedem Fall checken */ + if (vor < 0 && (*p == ' ' || *p == '-')) r = BADNUM; + mem = p; + } + else r = BADNUM; + } + else + { + if (*p == '-') ++p; + + while (*p != '\0') + { + if ( *p == 'I' + || *p == 'V' + || *p == 'X' + || *p == 'L' + || *p == 'C' + || *p == 'D' + || *p == 'M' + ) + { ++p; + r = GOODNUM; + } + else break; + } + + r = endnumberline(p, r); + } + + if (job != CHECKNUM && r == GOODNUM) + { num = getRomanromannum(mem); + if (num < 0 && vor < 0) r = BADNUM; + } + + if (job == CHECKNUM) return r; + else return num * vor; /* vor == -1 von OLDBIGROMAN */ +} + + +int evalarabic(const char *p, const int job) +{ + int r = BADNUM, num = 0; + const char *mem; + + while (*p == ' ') ++p; mem = p; + + if (*p == '-') ++p; + + while (*p != '\0') + { + if ( *p >= '0' + && *p <= '9' + ) + { ++p; + r = GOODNUM; + } + else break; + } + + r = endnumberline(p, r); + + if (job != CHECKNUM && r == GOODNUM) num = getarabicnum(mem); + + if (job == CHECKNUM) return r; + else return num; +} + + +int evalletter(const char *p, const int job) +{ + int r = BADNUM, num = 0; + const char *mem; + + while (*p == ' ') ++p; mem = p; + + if (*p == '-') ++p; + + while (*p != '\0') + { + if ( *p >= 'a' + && *p <= 'z' + ) + { ++p; + r = GOODNUM; + } + else break; + } + + r = endnumberline(p, r); + + if (job != CHECKNUM && r == GOODNUM) num = getLetterletternum(mem); + + if (job == CHECKNUM) return r; + else return num; +} + + +int evalLetter(const char *p, const int job) +{ + int r = BADNUM, num = 0; + const char *mem; + + while (*p == ' ') ++p; mem = p; + + if (*p == '-') ++p; + + while (*p != '\0') + { + if ( *p >= 'A' + && *p <= 'Z' + ) + { ++p; + r = GOODNUM; + } + else break; + } + + r = endnumberline(p, r); + + if (job != CHECKNUM && r == GOODNUM) num = getLetterletternum(mem); + + if (job == CHECKNUM) return r; + else return num; +} + + +int isinstr(const char *p, const char *s) +{ + const char *pp, *ss; + + while (*p != '\0') + { + pp = p; ss = s; + while (*pp == *ss && *pp != '\0') { ++pp; ++ss; } + if (*ss == '\0') return 1; + ++p; + } + + return 0; +} + + + /* Typen-Gewichtung nicht mit Abpruef-Reihenfolge verwechseln! */ + /* Zahl fuer Typen-Gewichtung ist gleichzeitig Typen-Identifizierer. */ + /* Abpruef-Reihenfolge legen pgnumberweight + fntnumberweight fest, */ + /* die auch entscheiden, ob etwa DC=600 oder DC=4*3=12 gesehen wird. */ + /* !! \uppercase{xx} = OLDBIGROMAN gilt NIE als Buchstabenzaehler !! */ +#define INTERNALERR 0 +#define UNUSED 1 /* muss anfuehren (kleinster Wert)! */ +#define NOFOOTNOTE 2 +#define EMPTYNUM 3 /* Alph, alph, Roman, roman, symbol < 1 */ +#define SYMBOL 4 +#define SMALLROMAN 5 +#define BIGROMAN 6 +#define ARABIC 7 +#define SMALLLETTER 8 +#define BIGLETTER 9 +#define TEXT 10 +#define MISSNUM 11 /* Beschaedigte Zeile */ +#define OVERFLOW 12 + +int pgnumberweight(const char *p) +{ + int r = INTERNALERR; /* primaer i, ii, ..., 1, 2, ..., A, B, *C*, ... */ + + + if (EinlROEMseiten == 1) + { + if (p == unused) r = UNUSED; + else if (p == mydefault) r = MISSNUM; + else if (p == nofnt) r = INTERNALERR; + else if (*p == '\0') r = EMPTYNUM; + else if (has_o_flow(p) == HASOFLOW) r = OVERFLOW; + else if (evalarabic(p, CHECKNUM) == GOODNUM) r = ARABIC; + else if (evalRoman (p, CHECKNUM) == GOODNUM) r = BIGROMAN; + else if (evalLetter(p, CHECKNUM) == GOODNUM) r = BIGLETTER; + else if (evalletter(p, CHECKNUM) == GOODNUM) r = SMALLLETTER; + else if (evalroman (p, CHECKNUM) == GOODNUM) r = SMALLROMAN; + else if (evalsymbol(p, CHECKNUM) == GOODNUM) r = SYMBOL; + else r = TEXT; + } + else + { + if (p == unused) r = UNUSED; + else if (p == mydefault) r = MISSNUM; + else if (p == nofnt) r = INTERNALERR; + else if (*p == '\0') r = EMPTYNUM; + else if (has_o_flow(p) == HASOFLOW) r = OVERFLOW; + else if (evalarabic(p, CHECKNUM) == GOODNUM) r = ARABIC; + else if (evalroman (p, CHECKNUM) == GOODNUM) r = SMALLROMAN; + else if (evalletter(p, CHECKNUM) == GOODNUM) r = SMALLLETTER; + else if (evalLetter(p, CHECKNUM) == GOODNUM) r = BIGLETTER; + else if (evalRoman (p, CHECKNUM) == GOODNUM) r = BIGROMAN; + else if (evalsymbol(p, CHECKNUM) == GOODNUM) r = SYMBOL; + else r = TEXT; + } + /* OLDBIGROMAN + " {}" */ + if (r == BIGROMAN && evalRoman (p, ANALYZENUM) == 0) r = EMPTYNUM; + + + return r; +} + + +int fntnumberweight(const char *p) +{ + int r = INTERNALERR; /* primaer I, II, ..., 1, 2, ..., a, b, *c*, ... */ + + + if (ALPHmpfootnotes == 1) + { + if (p == mydefault) r = MISSNUM; + else if (p == nofnt) r = NOFOOTNOTE; + else if (p == unused) r = INTERNALERR; + else if (*p == '\0') r = EMPTYNUM; + else if (has_o_flow(p) == HASOFLOW) r = OVERFLOW; + else if (evalarabic(p, CHECKNUM) == GOODNUM) r = ARABIC; + else if (evalroman (p, CHECKNUM) == GOODNUM) r = SMALLROMAN; + else if (evalletter(p, CHECKNUM) == GOODNUM) r = SMALLLETTER; + else if (evalLetter(p, CHECKNUM) == GOODNUM) r = BIGLETTER; + else if (evalRoman (p, CHECKNUM) == GOODNUM) r = BIGROMAN; + else if (evalsymbol(p, CHECKNUM) == GOODNUM) r = SYMBOL; + else r = TEXT; + } + else + { + if (p == mydefault) r = MISSNUM; + else if (p == nofnt) r = NOFOOTNOTE; + else if (p == unused) r = INTERNALERR; + else if (*p == '\0') r = EMPTYNUM; + else if (has_o_flow(p) == HASOFLOW) r = OVERFLOW; + else if (evalarabic(p, CHECKNUM) == GOODNUM) r = ARABIC; + else if (evalRoman (p, CHECKNUM) == GOODNUM) r = BIGROMAN; + else if (evalLetter(p, CHECKNUM) == GOODNUM) r = BIGLETTER; + else if (evalletter(p, CHECKNUM) == GOODNUM) r = SMALLLETTER; + else if (evalroman (p, CHECKNUM) == GOODNUM) r = SMALLROMAN; + else if (evalsymbol(p, CHECKNUM) == GOODNUM) r = SYMBOL; + else r = TEXT; + } + + /* OLDBIGROMAN + " {}" */ + if (r == BIGROMAN && evalRoman (p, ANALYZENUM) == 0) r = EMPTYNUM; + + + return r; +} + + +/*--------------------------------------------------------------------------*/ + + +int issonder(const char p) +{ + if (p > '\0' && p < ' ') return 1; + return 0; +} + + + /* Neugewichtung der Ascii-Zeichen 33 und 48 bis 126. */ + + /* Im Deutschen werden Zeichen vor Buchstaben und */ + /* Buchstaben vor Zahlen einsortiert. */ + /* Im Konfliktfall stehen Kleinbuchstaben vor grossen. */ + +int bewerten(char zz) +{ + switch(zz) + { + case '\0': return 0; + + case ' ': return 32; /* ASCII 32 \ / normales Leerzeichen */ + case '~': return 33; /* ASCII 126 / \ geschuetztes Leereichen */ + + case '!': return 48; /* ASCII 33 \ */ + case ':': return 49; /* ASCII 58 | */ + case ';': return 50; /* ASCII 59 | */ + case '<': return 51; /* ASCII 60 | */ + case '=': return 52; /* ASCII 61 | */ + case '>': return 53; /* ASCII 62 | */ + case '\?':return 54; /* ASCII 63 | */ + case '@': return 55; /* ASCII 64 | */ + case '[': return 56; /* ASCII 91 \ */ + case ']': return 57; /* ASCII 93 > Zeichen vor Buchstaben */ + /* / */ + case '^': return 58; /* ASCII 94 | */ + case '_': return 59; /* ASCII 95 | */ + case '`': return 60; /* ASCII 96 | */ + /* | */ + case '{': return 61; /* ASCII 123 | */ + case '|': return 62; /* ASCII 124 | */ + case '}': return 63; /* ASCII 125 / */ + + case 'a': return 64; /* ASCII 97 \ */ + case 'A': return 65; /* ASCII 65 | */ + case 'b': return 66; /* ASCII 98 | */ + case 'B': return 67; /* ASCII 66 | */ + case 'c': return 68; /* ASCII 99 | */ + case 'C': return 69; /* ASCII 67 | */ + case 'd': return 70; /* ASCII 100 | */ + case 'D': return 71; /* ASCII 68 | */ + case 'e': return 72; /* ASCII 101 | */ + case 'E': return 73; /* ASCII 69 | */ + case 'f': return 74; /* ASCII 102 | */ + case 'F': return 75; /* ASCII 70 | */ + case 'g': return 76; /* ASCII 103 | */ + case 'G': return 77; /* ASCII 71 | */ + case 'h': return 78; /* ASCII 104 | */ + case 'H': return 79; /* ASCII 72 | */ + case 'i': return 80; /* ASCII 105 | */ + case 'I': return 81; /* ASCII 73 | */ + case 'j': return 82; /* ASCII 106 | */ + case 'J': return 83; /* ASCII 74 | */ + case 'k': return 84; /* ASCII 107 | */ + case 'K': return 85; /* ASCII 75 | */ + case 'l': return 86; /* ASCII 108 | */ + case 'L': return 87; /* ASCII 76 | */ + case 'm': return 88; /* ASCII 109 | */ + case 'M': return 89; /* ASCII 77 | */ + case 'n': return 90; /* ASCII 110 | */ + case 'N': return 91; /* ASCII 78 | */ + case 'o': return 92; /* ASCII 111 | */ + case 'O': return 93; /* ASCII 79 | */ + case 'p': return 94; /* ASCII 112 \ */ + case 'P': return 95; /* ASCII 80 > Buchstaben: a, A, ... */ + case 'q': return 96; /* ASCII 113 / */ + case 'Q': return 97; /* ASCII 81 | */ + case 'r': return 98; /* ASCII 114 | */ + case 'R': return 99; /* ASCII 82 | */ + case 's': return 100; /* ASCII 115 | */ + case 'S': return 101; /* ASCII 83 | */ + case 't': return 102; /* ASCII 116 | */ + case 'T': return 103; /* ASCII 84 | */ + case 'u': return 104; /* ASCII 117 | */ + case 'U': return 105; /* ASCII 85 | */ + case 'v': return 106; /* ASCII 118 | */ + case 'V': return 107; /* ASCII 86 | */ + case 'w': return 108; /* ASCII 119 | */ + case 'W': return 109; /* ASCII 87 | */ + case 'x': return 110; /* ASCII 120 | */ + case 'X': return 111; /* ASCII 88 | */ + case 'y': return 112; /* ASCII 121 | */ + case 'Y': return 113; /* ASCII 89 | */ + case 'z': return 114; /* ASCII 122 | */ + case 'Z': return 115; /* ASCII 90 / */ + + case '0': return 116; /* ASCII 48 \ */ + case '1': return 117; /* ASCII 49 | */ + case '2': return 118; /* ASCII 50 | */ + case '3': return 119; /* ASCII 51 | */ + case '4': return 120; /* ASCII 52 \ */ + case '5': return 121; /* ASCII 53 > Zahlen */ + case '6': return 122; /* ASCII 54 / */ + case '7': return 123; /* ASCII 55 | */ + case '8': return 124; /* ASCII 56 | */ + case '9': return 125; /* ASCII 57 / */ + + case '\\':return 126; /* ASCII 92 > Unbekannter Akzent? */ + + default : if (issonder(zz) == 1) return zz + 256; + return zz; + } +} + + + + /* Im Defaultfall werden Zeichen vor Zahlen und */ + /* Zahlen vor Buchstaben einsortiert. */ + /* Im Konfliktfall stehen Grossbuchstaben vor kleinen. */ + +int dcompare(char zz) +{ + switch(zz) + { + case '\0': return 0; + + case ' ': return 32; /* ASCII 32 \ / normales Leerzeichen */ + case '~': return 33; /* ASCII 126 / \ geschuetztes Leereichen */ + + case '!': return 48; /* ASCII 33 \ */ + case ':': return 49; /* ASCII 58 | */ + case ';': return 50; /* ASCII 59 | */ + case '<': return 51; /* ASCII 60 | */ + case '=': return 52; /* ASCII 61 | */ + case '>': return 53; /* ASCII 62 | */ + case '\?':return 54; /* ASCII 63 | */ + case '@': return 55; /* ASCII 64 | */ + case '[': return 56; /* ASCII 91 \ */ + case ']': return 57; /* ASCII 93 > Zeichen vor Zahlen */ + /* / */ + case '^': return 58; /* ASCII 94 | */ + case '_': return 59; /* ASCII 95 | */ + case '`': return 60; /* ASCII 96 | */ + /* | */ + case '{': return 61; /* ASCII 123 | */ + case '|': return 62; /* ASCII 124 | */ + case '}': return 63; /* ASCII 125 / */ + + case '0': return 64; /* ASCII 48 \ */ + case '1': return 65; /* ASCII 49 | */ + case '2': return 66; /* ASCII 50 | */ + case '3': return 67; /* ASCII 51 | */ + case '4': return 68; /* ASCII 52 \ */ + case '5': return 69; /* ASCII 53 > Zahlen vor Buchstaben */ + case '6': return 70; /* ASCII 54 / */ + case '7': return 71; /* ASCII 55 | */ + case '8': return 72; /* ASCII 56 | */ + case '9': return 73; /* ASCII 57 / */ + + case 'A': return 74; /* ASCII 65 \ */ + case 'a': return 75; /* ASCII 97 | */ + case 'B': return 76; /* ASCII 66 | */ + case 'b': return 77; /* ASCII 98 | */ + case 'C': return 78; /* ASCII 67 | */ + case 'c': return 79; /* ASCII 99 | */ + case 'D': return 80; /* ASCII 68 | */ + case 'd': return 81; /* ASCII 100 | */ + case 'E': return 82; /* ASCII 69 | */ + case 'e': return 83; /* ASCII 101 | */ + case 'F': return 84; /* ASCII 70 | */ + case 'f': return 85; /* ASCII 102 | */ + case 'G': return 86; /* ASCII 71 | */ + case 'g': return 87; /* ASCII 103 | */ + case 'H': return 88; /* ASCII 72 | */ + case 'h': return 89; /* ASCII 104 | */ + case 'I': return 90; /* ASCII 73 | */ + case 'i': return 91; /* ASCII 105 | */ + case 'J': return 92; /* ASCII 74 | */ + case 'j': return 93; /* ASCII 106 | */ + case 'K': return 94; /* ASCII 75 | */ + case 'k': return 95; /* ASCII 107 | */ + case 'L': return 96; /* ASCII 76 | */ + case 'l': return 97; /* ASCII 108 | */ + case 'M': return 98; /* ASCII 77 | */ + case 'm': return 99; /* ASCII 109 | */ + case 'N': return 100; /* ASCII 78 | */ + case 'n': return 101; /* ASCII 110 | */ + case 'O': return 102; /* ASCII 79 | */ + case 'o': return 103; /* ASCII 111 \ */ + case 'P': return 104; /* ASCII 80 > Buchstaben: A, a, ... */ + case 'p': return 105; /* ASCII 112 / */ + case 'Q': return 106; /* ASCII 81 | */ + case 'q': return 107; /* ASCII 113 | */ + case 'R': return 108; /* ASCII 82 | */ + case 'r': return 109; /* ASCII 114 | */ + case 'S': return 110; /* ASCII 83 | */ + case 's': return 111; /* ASCII 115 | */ + case 'T': return 112; /* ASCII 84 | */ + case 't': return 113; /* ASCII 116 | */ + case 'U': return 114; /* ASCII 85 | */ + case 'u': return 115; /* ASCII 117 | */ + case 'V': return 116; /* ASCII 86 | */ + case 'v': return 117; /* ASCII 118 | */ + case 'W': return 118; /* ASCII 87 | */ + case 'w': return 119; /* ASCII 119 | */ + case 'X': return 120; /* ASCII 88 | */ + case 'x': return 121; /* ASCII 120 | */ + case 'Y': return 122; /* ASCII 89 | */ + case 'y': return 123; /* ASCII 121 | */ + case 'Z': return 124; /* ASCII 90 | */ + case 'z': return 125; /* ASCII 122 / */ + + case '\\':return 126; /* ASCII 92 > Unbekannter Akzent? */ + + default : if (issonder(zz) == 1) return zz + 256; + return zz; + } +} + + +/*--------------------------------------------------------------------------*/ + + +int igspstrcmp(const char *p, const char *q) +{ + while (1) + { + while (*p == ' ') ++p; + while (*q == ' ') ++q; + if (*p == *q && *p != '\0') { ++p; ++q; } else break; + } + + return bewerten(*p) - bewerten(*q); +} + + +int numcmp(const int w, const char *p, const char *q) +{ + int j; + + if (w == EMPTYNUM) j = 0; + else if (w == NOFOOTNOTE) j = 0; + else if (w == UNUSED) j = 0; + else if (w == SMALLROMAN) j = evalroman (p, ANALYZENUM) - evalroman (q, ANALYZENUM); + else if (w == BIGROMAN) j = evalRoman (p, ANALYZENUM) - evalRoman (q, ANALYZENUM); + else if (w == ARABIC) j = evalarabic(p, ANALYZENUM) - evalarabic(q, ANALYZENUM); + else if (w == SMALLLETTER) j = evalletter(p, ANALYZENUM) - evalletter(q, ANALYZENUM); + else if (w == BIGLETTER) j = evalLetter(p, ANALYZENUM) - evalLetter(q, ANALYZENUM); + else if (w == SYMBOL) j = evalsymbol(p, ANALYZENUM) - evalsymbol(q, ANALYZENUM); + else if (w == TEXT) j = igspstrcmp(p, q); + else if (w == MISSNUM) j = 0; + else if (w == OVERFLOW) j = 0; + else printf("%%%%\n%%%%> INTERNAL ERROR: UNKNOWN PAGE-WEIGHT NUMBER\n"); + + + return j; +} + + +void QQsort(int left, int right, const int deep, const int deepsort) +{ + int i, last, j, l; + + void swap (int, int); + if (left >= right) return; + swap(left, (left + right)/2); + last = left; + + for (i = left + 1; i <= right; i++) + { + j = 0; l = 0; + while (l < deepsort) + { + if ((j=vergleich(subCptr[l][i], subCptr[l][left])) != 0) break; + if ((j=Vergleich(subBptr[l][i], subBptr[l][left])) != 0) break; + if ((j=vergleich(subBptr[l][i], subBptr[l][left])) != 0) break; + ++l; + } + + l = 0; + if (j == 0) + while (l < deepsort && (j=vergleich(subAptr[l][i], subAptr[l][left])) == 0) ++l; + + + if (j == 0) + j = leval[i] - leval[left]; + + if (j == 0) + j = pagewgt[i] - pagewgt[left]; + + if (j == 0) /* pagewgt[i] == pagewgt[left] */ + j = numcmp(pagewgt[i], subRptr[PAGECOL][i], subRptr[PAGECOL][left]); + + if (j == 0) + j = fntwgt[i] - fntwgt[left]; + + if (j == 0) /* fntwgt[i] == fntwgt[left] */ + j = numcmp( fntwgt[i], subRptr[FNTCOL][i], subRptr[FNTCOL][left]); + + if (j == 0) + j = firstoverlettergan(subRptr[LINECOL][i]) - firstoverlettergan(subRptr[LINECOL][left]); + + if (j == 0) + j = secondoverlettergan(subRptr[LINECOL][i]) - secondoverlettergan(subRptr[LINECOL][left]); + + l = deepsort; + if (j == 0) + while (l < deep && (j=vergleich(subAptr[l][i], subAptr[l][left])) == 0) ++l; + + + if (j < 0) swap(++last, i); + } + + + swap(left, last); + QQsort(left, last - 1, deep, deepsort); + QQsort(last + 1, right, deep, deepsort); +} + + +/*--------------------------------------------------------------------------*/ + + +void swap(int i, int j) +{ + char *temp; + int l, temi; + + temp = lineptr[i]; + lineptr[i] = lineptr[j]; + lineptr[j] = temp; + + temi = pagewgt[i]; + pagewgt[i] = pagewgt[j]; + pagewgt[j] = temi; + + temi = fntwgt[i]; + fntwgt[i] = fntwgt[j]; + fntwgt[j] = temi; + + temi = dqsort[i]; + dqsort[i] = dqsort[j]; + dqsort[j] = temi; + + temi = leval[i]; + leval[i] = leval[j]; + leval[j] = temi; + + l = 0; + while (l < MAXBACOLS) + { + temp = subAptr[l][i]; + subAptr[l][i] = subAptr[l][j]; + subAptr[l][j] = temp; + ++l; + } + + l = 0; + while (l < MAXBACOLS) + { + temp = subBptr[l][i]; + subBptr[l][i] = subBptr[l][j]; + subBptr[l][j] = temp; + ++l; + } + + l = 0; + while (l < MAXBACOLS) + { + temp = subCptr[l][i]; + subCptr[l][i] = subCptr[l][j]; + subCptr[l][j] = temp; + ++l; + } + + l = 0; + while (l < BAALLRCOLS) + { + temp = subRptr[l][i]; + subRptr[l][i] = subRptr[l][j]; + subRptr[l][j] = temp; + ++l; + } +} + + +/*--------------------------------------------------------------------------*/ + + +int vergleich(const char *a, const char *b) +{ + while (*a != '\0' && *a == *b) { ++a; ++b; } + + if (german > 0) return bewerten(*a) - bewerten(*b); + else return dcompare(*a) - dcompare(*b); +} + + +int Vergleich(const char *a, const char *b) +{ + while (1) + { + while (issonder(*a) == 1) ++a; + while (issonder(*b) == 1) ++b; + if (*a == '\0' || *a != *b) break; + ++a; ++b; + } + + if (german > 0) return bewerten(*a) - bewerten(*b); + else return dcompare(*a) - dcompare(*b); +} + + +/*--------------------------------------------------------------------------*/ + + +int myfgetc(void) +{ + int c = fgetc(infile); + + if (c == '\t') c = ' '; + + return c; +} + + +int ignFRONTSPACESgetline(char s[], int lim) +{ + int c,i; + i=0; + while( (c=myfgetc()) == ' '); + if (--lim > 0 && c != EOF && c != '\n') + s[i++] = c; + while(--lim > 0 && (c=myfgetc()) != EOF && c != '\n') + s[i++] = c; + if (c == '\n') s[i++] = c; + s[i] = '\0'; + return i; +} + + +/*--------------------------------------------------------------------------*/ + + +int nextbracket(const char *p, const char opench, const char closech) +{ + int c = 0, r = 0; + + while (*p != '\0') + { + if (*p == '\\' && *(p+1) != '\0') { ++p; ++r; } + else if (*p == opench) ++c; + else if (*p == closech) --c; + ++p; ++r; + if (c == 0) break; + } + + if (c != 0) r = -r; + + return r; +} + + +void loesche_arg(char *s, char *p, const char *com, const int comlen, const char op, const char cl) +{ + int len; + char *mem; + + while (*p != '\0') + { + if (strncmp(p, com, comlen) == 0) + { + mem = p; + p += comlen; + while (*p == ' ') ++p; + if (*p == op && (len = nextbracket(p, op, cl)) > 1) p += len; + else + { p = mem; + *s++ = *p++; + } + } + else *s++ = *p++; + } + + *s = '\0'; +} + + +void entkerne_arg(char *s, const char *p, const char *com, const int comlen, const char op, const char cl) +{ + int l; + const char *mem; + + while (*p != '\0') + { + if (strncmp(p, com, comlen) == 0) + { + mem = p; + p += comlen; + while (*p == ' ') ++p; + if (*p == op && (l = nextbracket(p, op, cl)) > 1) + { + ++p; + while (--l > 1) *s++ = *p++; + ++p; + } + else + { p = mem; + *s++ = *p++; + } + } + else *s++ = *p++; + } + + *s = '\0'; +} + + +#define ENTKERNEN 0 +#define LOESCHEN 1 + +void killcmdarg(int i, int nlines, const char *cmd, int steuer) +{ + int l; + const int cmdlen = strlen(cmd); + char buf[MAXLEN]; + + if (cmdlen > 0) + { + while(i < nlines) + { + if (steuer == LOESCHEN) + loesche_arg(buf, lineptr[i], cmd, cmdlen, '{', '}'); + else + if (steuer == ENTKERNEN) + entkerne_arg(buf, lineptr[i], cmd, cmdlen, '{', '}'); + + if ((l = strlen(buf)) != strlen(lineptr[i])) + { + myfree(lineptr[i]); + lineptr[i] = strnmalloc(buf, l+1); + } + + ++i; + } + } +} + + + +/*--------------------------------------------------------------------------*/ + + +char *standardnum(char a[], char *p) +{ + int j, beforenum = 0; + char *top = p; + + j = 0; while (j < NUMLEN-1) a[j++] = '0'; a[j] = '\0'; + + while (beforenum < NUMLEN-1 && isdigit(*p) != 0) + { + j = 1; while (j < NUMLEN-1) { a[j-1] = a[j]; ++j; } + a[NUMLEN-2] = *p; + ++beforenum; + ++p; + + if (german == 0) + { + if ((*p == ',' || *p == ' ') && isdigit(*(p+1)) != 0 && isdigit(*(p+2)) != 0 && isdigit(*(p+3)) != 0 && isdigit(*(p+4)) == 0) ++p; + } + else + { + if ((*p == '.' || *p == ' ') && isdigit(*(p+1)) != 0 && isdigit(*(p+2)) != 0 && isdigit(*(p+3)) != 0 && isdigit(*(p+4)) == 0) ++p; + } + } + + if (german == 0) + { + if (*p == '.' && isdigit(*(p+1)) != 0) + { + j = NUMLEN-1; while (j < 2*NUMLEN-1 && isdigit(*(p+1)) != 0) { ++p; a[j++] = *p; } + ++p; a[j] = '\0'; + } + } + else + { + if (*p == ',' && isdigit(*(p+1)) != 0) + { + j = NUMLEN-1; while (j < 2*NUMLEN-1 && isdigit(*(p+1)) != 0) { ++p; a[j++] = *p; } + ++p; a[j] = '\0'; + } + } + + if (isdigit(*p) != 0) + { + printf("%%%%\n%%%%> Warning: Can\'t sort too long number \"%.*s...\".\n", 30, top); + while (isdigit(*p) != 0) ++p; + } + + return p; +} + + +int isLaTeXcmdletter(char a) +{ + if (isalpha(a) != 0 || a == '@') + return 1; + return 0; +} + + +char *fillsubAptr(const char *p, int len) +{ + char buf[MAXLEN]; + int i; + + ++p; len -= 2; + while (*p == ' ') { ++p; --len; } + strcpy(buf, p); + + buf[len] = '\0'; + if (len > 0 && buf[len-1] == ' ') + { i = 2; + while (len-i >= 0 && buf[len-i] == ' ') ++i; + while (len-i >= 0 && isLaTeXcmdletter(buf[len-i]) != 0) ++i; + if (len-i < 0 || buf[len-i] != '\\') + { printf("%%%%\n%%%%> Warning: %s does not fit tightly after ", CLOSEB); + if (strlen(buf) > 30) printf("\"%.27s...", buf); + else printf("\"%s", buf); + printf("\".\n"); + } + } + while (len > 0 && buf[len-1] == ' ') --len; + + return strnmalloc(buf, len+1); +} + + +char *setptrtofirstbracket(char *p) +{ + while (*p != '\0') + { + if (*p == '\\' && *(p+1) != '\0') ++p; + ++p; + if (*p == '{') break; + } + return p; +} + + +void ignoreadditionaltext(const char *p, const char *i, const char *f) +{ + while(*p == ' ') ++p; + if (*p != '\0' && *p != '%') + { printf("%%%%\n%%%%> Warning: Ignore additional text \"%.*s\"\n", 40, p); + printf("%%%% after \"%s\" -> \"%.*s\".\n", i, 58-strlen(i), f); + if (*p == '\\') + printf("%%%% ** I grap only one \\cmd per line! Fix that, and start me again! **\n"); + } +} + + +void telldefault(int rest) +{ + printf("%%%% ** Missing %d argument(s). The \'%%\' remains in my output.\n", rest); +} + + +char *makeAR(char *p, int lastline, int alllines, char bb, char eb, const char *ident, int linec, int i, char schalt) +{ + int len; + + while (*p == ' ') ++p; + + if (*p != bb) + { printf("%%%%\n%%%%> %s error in arg %d: Missing \'%c\'.\n", ident, i+lastline, bb); + telldefault(alllines-i); + return NULL; + } + else + { + if ((len = nextbracket(p, bb, eb)) < 0) + { printf("%%%%\n%%%%> %s error in arg %d: Missing \'%c\' after \"%.*s\".\n", ident, i+lastline, eb, -len, p); + telldefault(alllines-i); + return NULL; + } + if (schalt == 'A') subAptr[i][linec] = fillsubAptr(p, len); + if (schalt == 'R') subRptr[i][linec] = strnmalloc(p+1, len-1); + p += len; + } + + return p; +} + + +void dodqdeepsort(int linec, int alllines, int deepsort) +{ + int num; + + while(linec < alllines) + { + if ( nogsty == 0 + && userusesdq(deepsort, linec) == 1 + && (num = getarabicnum(subRptr[DQCOL][linec])) >= MINCATCODE + && num <= MAXCATCODE + ) dqsort[linec] = num; + else dqsort[linec] = ERRCATCODE; + ++linec; + } +} + + +void dopgfntnumberweight(int linec, int alllines) +{ + while(linec < alllines) + { + pagewgt[linec] = pgnumberweight(subRptr[PAGECOL][linec]); + fntwgt[linec] = fntnumberweight(subRptr[FNTCOL][linec]); + ++linec; + } +} + + +int over_fonts(char *p, int start) +{ + int i, l, neu = 0; + + const char *fonts[] = + { + NEWFNSYMBOL, /* start == 0 */ + "\\rmfamily", /* start == 1 */ + "\\sffamily", + "\\ttfamily", + "\\mdseries", + "\\bfseries", + "\\upshape", + "\\itshape", + "\\slshape", + "\\scshape", + "\\em", + "\\normalfont", + "\\textrm", + "\\rm", + "\\textsf", + "\\sf", + "\\texttt", + "\\tt", + "\\textmd", + "\\textbf", + "\\bf", + "\\textup", + "\\textit", + "\\it", + "\\textsl", + "\\sl", + "\\textsc", + "\\sc", + "\\emph", + "\\textnormal", + "\\bapageframe", + "\\pbapageframe", + "\\bafootnoteframe", + "\\pbafootnoteframe", + RELAX, + NULL, + }; +#define FONTC 35 + + + while(*p == '{' && *(p+1) == '}') + { + p += 2; neu += 2; + while (*p == ' ') { ++p; ++neu; } + } + + + while(*p == '\\') + { + i = start; + l = 0; + while (i < FONTC && lcmdcmp(p, fonts[i]) != 0) ++i; + if (i < FONTC && lcmdcmp(p, fonts[i]) == 0 && (l=strlen(fonts[i])) > 0) + { + p+=l; + neu+=l; + while (*p == ' ') { ++p; ++neu; } + } + else if (l == 0) break; + } + + return neu; +} + + + +void set_inner_number_on_subRptr(char *p, int len, int col, int line, int start) +{ + int neu; + + neu = over_fonts(p, start); /* start==0: $^{\ensuremath {f}}$ unnoetig */ + len -= neu; + p += neu; + + while (*p == '{' && len > 2 && nextbracket(p, '{', '}') == len-1) + { + ++p; len -= 2; + + while (*p == ' ') { ++p; --len; } + + neu = over_fonts(p, start); + len -= neu; + p += neu; + } + + subRptr[col][line] = strnmalloc(p, len); +} + + +void getbrackets(int linec, int alllines, const char *ident, int deep, int filenum) +{ + char *p, buf[MAXLEN]; + int len, i; + + while(linec < alllines) + { + i = 0; while (i < MAXBACOLS) subAptr[i++][linec] = mydefault; + i = 0; while (i < BAALLRCOLS) subRptr[i++][linec] = mydefault; + leval[linec] = ACCEPTLINE; + + + p = lineptr[linec]; + p = setptrtofirstbracket(p); + + i = 0; + while (i < deep) + { + if ((p = makeAR(p, 1, deep+BARESTCOLS, '{', '}', ident, linec, i, 'A')) == NULL) + { + leval[linec] = REJECTLINE; + break; + } + ++i; + } + + if (i == deep) + { + i = 0; + while (i < BARESTCOLS) + { + if ((p = makeAR(p, BARESTCOLS, BARESTCOLS, bareststr[2*i], bareststr[2*i+1], ident, linec, i, 'R')) == NULL) + { + leval[linec] = REJECTLINE; + break; + } + ++i; + } + if (p != NULL) ignoreadditionaltext(p, ident, subAptr[0][linec]); + + p = subRptr[PAGEFNTCOL][linec]; + while (*p == ' ') ++p; + if (*p == '{' && (len = nextbracket(p, '{', '}')) > 1) + { + while (*(p+1) == ' ') { ++p; --len; } + + set_inner_number_on_subRptr(p+1, len-1, PAGECOL, linec, 1); + + p += len; + while (*p == ' ') ++p; + if (*p == '{' && (len = nextbracket(p, '{', '}')) > 1) + { + while (*(p+1) == ' ') { ++p; --len; } + + set_inner_number_on_subRptr(p+1, len-1, FNTCOL, linec, 0); + + p += len; + while (*p == ' ') ++p; + if (*p == '{' && (len = nextbracket(p, '{', '}')) > 1) + { + while (*(p+1) == ' ') { ++p; --len; } + if (*(p+1) == HASUNUCH) + { + myfree(subRptr[PAGECOL][linec]); + subRptr[PAGECOL][linec] = unused; /* UNUSED */ + } + if (*(p+1) != HASFNTCH) + { + if (*subRptr[FNTCOL][linec] != '\0') + printf("%%%%\n%%%%> Warning: Ignore unexpected FNT-num \"%s\".\n", subRptr[FNTCOL][linec]); + myfree(subRptr[FNTCOL][linec]); + subRptr[FNTCOL][linec] = nofnt; /* NOFOOTNOTE */ + } + if (*(p+1) != '}' && *(p+1) != HASFNTCH && *(p+1) != HASUNUCH) + { printf("%%%%\n%%%%> %s warning (part 3 of arg %d):\n", ident, deep+2); + printf("%%%% Get no {} or {%c} or {%s}!\n", HASFNTCH, HASUNUCH); + } + p += len; + while (*p == ' ') ++p; + if (*p != '\0') + { printf("%%%%\n%%%%> %s warning (parts of arg %d):\n", ident, deep+2); + printf("%%%% Unexpected text after {page}{footnote}{} number!\n"); + } + } + else + { printf("%%%%\n%%%%> %s warning (part 3 of arg %d):\n", ident, deep+2); + printf("%%%% Get no {} or {%c}!\n", HASFNTCH); + } + } + else + { printf("%%%%\n%%%%> %s warning (part 2 of arg %d):\n", ident, deep+2); + printf("%%%% Get no {footnote} number!\n"); + } + } + else + { printf("%%%%\n%%%%> %s warning (all 3 parts of arg %d):\n", ident, deep+2); + printf("%%%% Get no {page}{footnote}{} number!\n"); + } + } + + if (filenum > -1) + { + sprintf(buf, "file %d ", filenum); + + if (firstoverlettergan(subRptr[LINECOL][linec]) > 0) + { + strncat(buf, subRptr[LINECOL][linec], MAXLEN-strlen(buf)-strlen(subRptr[LINECOL][linec])-1); + } + else + { + printf("%%%%\n%%%%> %s error in last arg: No line-number!\n", ident); + strncat(buf, ERRINPUTLINENO, MAXLEN-strlen(buf)-ERRINPUTLINENOLEN-1); + } + + myfree(subRptr[LINECOL][linec]); + subRptr[LINECOL][linec] = strnmalloc(buf, strlen(buf)+1); + } + + ++linec; + } +} + + /* ohne Aequivalent in MathMode sind \\b \\c \\k \\d \\H \\t */ +const char *weighttable[][2] = { + { "\\.", "" }, /* CTL+A */ /* MARK_POINT */ + { "\\dot\t", "" }, + { "\\\'", "" }, /* CTL+B */ + { "\\acute\t", "" }, + { "\\`", "" }, /* CTL+C */ + { "\\grave\t", "" }, + { "\\^", "" }, /* CTL+D */ + { "\\hat\t", "" }, + { "\\ddot\t", "" }, /* CTL+E umlaut */ + { "\\ij\t", "i" }, /* Niederlaendische */ + { "\\IJ\t", "I" }, /* Sondersortierung */ + { "\\=", "" }, /* CTL+F */ + { "\\bar\t", "" }, + { "\\vec\t", "" }, /* Ctl+G */ + { "\\~", "" }, /* CTL+K */ /* MARK_TILDE */ + { "\\tilde\t", "" }, + { "\\aa\t", "a" }, /* CTL+L */ /* \\r a \\r A */ + { "\\AA\t", "A" }, + { "\\r\t", "" }, /* \\AA \\aa */ + { "\\mathring\t", "" }, + { "\\b\t", "" }, /* CTL+N */ + { "\\c\t", "" }, /* CTL+O */ + { "\\k\t", "" }, /* CTL+P */ /* rechte Tilde */ + { "\\d\t", "" }, /* CTL+Q */ + { "\\H\t", "" }, /* CTL+R */ + { "\\t\t", "" }, /* CTL+S */ + { "\\u\t", "" }, /* CTL+T */ + { "\\breve\t", "" }, + { "\\v\t", "" }, /* CTL+U */ + { "\\check\t", "" }, + { "\\underline\t", "" }, /* CTL+V */ + { "\\underbar\t", "" }, /* CTL+W */ + { "\\ul\t", "" }, /* CTL+W */ + { "\\,", " " }, + { "\\space\t", " " }, + { "\\i\t", "i" }, + { "\\imath\t", "i" }, + { "\\j\t", "j" }, + { "\\jmath\t", "j" }, + { "\\ae\t", "ae" }, /* \ */ /* zweiteilig */ + { "\\AE\t", "Ae" }, /* | */ /* <=> Oe */ + { "\\BibArts\t", "BibArts"}, /* | */ + { "\\pBibArts\t", "BibArts"}, /* | */ + { "\\textcent\t", "c" }, /* | */ + { "\\pcopyright\t", "c" }, /* | */ + { "\\copyright\t", "c" }, /* | */ + { "\\textcopyright\t", "c" }, /* | */ + { "\\textcelsius\t", "C" }, /* | */ + { "\\dh\t", "d" }, /* | */ + { "\\dj\t", "d" }, /* | */ + { "\\DH\t", "D" }, /* | */ + { "\\DJ\t", "D" }, /* | */ /* =\\DH */ + { "\\texteuro\t", "E" }, /* | */ + { "\\textflorin\t", "f" }, /* | */ + { "\\l\t", "l" }, /* | */ + { "\\ell\t", "l" }, /* | */ + { "\\Im\t", "I" }, /* | */ + { "\\L\t", "L" }, /* | */ + { "\\LaTeX\t", "LaTeX" }, /* | */ + { "\\ng\t", "n" }, /* | */ + { "\\NG\t", "N" }, /*CTL_X/Y*/ + { "\\o\t", "o" }, /* | */ + { "\\O\t", "O" }, /* | */ + { "\\oe\t", "oe" }, /* | */ + { "\\OE\t", "Oe" }, /* | */ + { "\\textsterling\t", "P" }, /* | */ + { "\\ppounds\t", "P" }, /* | */ + { "\\pounds\t", "P" }, /* | */ + { "\\Re\t", "R" }, /* | */ + { "\\textregistered\t", "R" }, /* | */ + { "\\th\t", "th" }, /* | */ + { "\\TH\t", "Th" }, /* | */ + { "\\TeX\t", "TeX" }, /* | */ + { "\\textwon\t", "W" }, /* | */ + { "\\textyen\t", "Y" }, /* / */ + { "\\alpha\t", "a" }, /* 28 */ + { "\\beta\t", "b" }, + { "\\chi\t", "ch" }, + { "\\delta\t", "d" }, + { "\\Delta\t", "D" }, + { "\\epsilon\t", "e" }, + { "\\varepsilon\t", "e" }, /* 29 */ + { "\\eta\t", "e" }, /* 30 */ + { "\\gamma\t", "g" }, + { "\\Gamma\t", "G" }, + { "\\iota\t", "i" }, + { "\\kappa\t", "k" }, + { "\\varkappa\t", "k" }, + { "\\lambda\t", "l" }, + { "\\Lambda\t", "L" }, + { "\\mu\t", "m" }, + { "\\nu\t", "n" }, + { "\\omicron\t", "o" }, /* existiert in *LaTeX* nicht */ + { "\\omega\t", "o" }, + { "\\Omega\t", "O" }, + { "\\pi\t", "p" }, + { "\\Pi\t", "P" }, + { "\\varpi\t", "p" }, + { "\\phi\t", "ph" }, + { "\\Phi\t", "Ph" }, + { "\\varphi\t", "ph" }, + { "\\psi\t", "ps" }, + { "\\Psi\t", "Ps" }, + { "\\rho\t", "r" }, + { "\\varrho\t", "r" }, + { "\\sigma\t", "s" }, + { "\\Sigma\t", "S" }, + { "\\varsigma\t", "s" }, + { "\\tau\t", "t" }, + { "\\theta\t", "th" }, + { "\\Theta\t", "Th" }, + { "\\vartheta\t", "th" }, + { "\\xi\t", "x" }, + { "\\Xi\t", "X" }, + { "\\upsilon\t", "y" }, + { "\\Upsilon\t", "Y" }, + { "\\zeta\t", "z" }, + { NULL, NULL }}; +#define NLATEX 117 + + +const char *udtable[][2] = { + { "\\\"a", "a" }, /* \ \"a */ + { "\\\"o", "o" }, /* | \"o */ + { "\\\"u", "u" }, /* CTL+E \"u */ + { "\\\"A", "A" }, /* | \"A */ + { "\\\"O", "O" }, /* | \"O */ + { "\\\"U", "U" }, /* | \"U */ + { "\\ss\t", "s" }, /* \ss */ + { "\\SS\t", "SS" }, /* \SS */ + { "\\\"", "" }, /* / \" */ + { "\\3", "s" }, /* \3 */ + { NULL, NULL }}; +#define NUMTEX 10 + +const char *gstylist[][2] = { + { "\"a", NULL }, /* \ "a */ + { "\"o", NULL }, /* | "o */ + { "\"u", NULL }, /* CTL+E "u */ + { "\"A", NULL }, /* | "A */ + { "\"O", NULL }, /* | "O */ + { "\"U", NULL }, /* | "U */ + { "\"s", NULL }, /* "s */ + { "\"S", NULL }, /* "S */ + { "\"", NULL }, /* / " */ + { NULL, NULL }}; +#define NUMGER 9 + + +const char *gweight[][2] = { + { NULL, "ae" }, /* \ \"a "a */ + { NULL, "oe" }, /* | \"o "o */ + { NULL, "ue" }, /* CTL+E \"u "u */ + { NULL, "Ae" }, /* | \"A "A */ + { NULL, "Oe" }, /* | \"O "O */ + { NULL, "Ue" }, /* | \"U "U */ + { NULL, "ss" }, /* \ss "s */ + { NULL, "SS" }, /* \SS "S */ + { NULL, "" }, /* / \" " */ + { NULL, "ss" }, /* \3 [] */ + { NULL, NULL }}; + +const char *mweight[][2] = { + { NULL, "a" }, /* \ \"a "a */ + { NULL, "o" }, /* | \"o "o */ + { NULL, "u" }, /* CTL+E \"u "u */ + { NULL, "A" }, /* | \"A "A */ + { NULL, "O" }, /* | \"O "O */ + { NULL, "U" }, /* | \"U "U */ + { NULL, "ss" }, /* \ss "s */ + { NULL, "SS" }, /* \SS "S */ + { NULL, "" }, /* / \" " */ + { NULL, "ss" }, /* \3 [] */ + { NULL, NULL }}; + + + +int texlistnum(const char *p, int n, const char *list[][2]) +{ + const char *entry, *line; + int i = 0; + + while (i < n) + { + entry = list[i][0]; + line = p; + while (*line == *entry && *entry != '\0' && *entry != '\t') + { ++line; ++entry; + } + if (*entry == '\0' || (*entry == '\t' && isLaTeXcmdletter(*line) == 0)) break; + ++i; + } + + if (i == n) return -1; + else return i; +} + + +int insposmaxstr(char s[], const char *p, int pos, int max) +{ + while(*p != '\0' && pos < max) s[pos++] = *p++; + s[pos] = '\0'; + return pos; +} + + +int llstrlen(const char *s) +{ + int len = 0; + + while (*s != '\0' && *s != '\t') { ++s; ++len; } + + return len; +} + + +char *overspacesafterlettercmd(int len, const char *q, char *p) +{ + if (len > 0 && isLaTeXcmdletter(*(q+1)) != 0) while (*p == ' ') ++p; + + return p; +} + + +int insertweight(char in[], int i, int pos, int max) +{ + if (german == 1) pos = insposmaxstr(in, gweight[i][1], pos, max); + else if (german == 2) pos = insposmaxstr(in, mweight[i][1], pos, max); + else pos = insposmaxstr(in, udtable[i][1], pos, max); + + return pos; +} + + +void nzvorziehen(char in[], char *p) +{ + int pos = 0, l; + char mem; + + while (*p != '\0') + { + if (issonder(*p) == 1) + { + l = pos; + while (issonder(*p) == 1) in[l++] = *p++; + mem = in[l-1]; + in[l-1] = in[pos]; + in[pos] = mem; + pos = l; + } + else in[pos++] = *p++; + } + in[pos] = '\0'; +} + + +char *austauschen(char in[], char *p, int dqcat) +{ + int pos = 0, i, len; + + while (*p != '\0' && pos < MAXLEN-1) + { + if (*p == '\\') + { + if ((i=texlistnum(p, NUMTEX, udtable)) > -1) + { p += (len=llstrlen( udtable[i][0])); + pos = insertweight(in, i, pos, MAXLEN-1); + p = overspacesafterlettercmd(len, udtable[i][0], p); + } + else if ((i=texlistnum(p, NLATEX, weighttable)) > -1) + { p += (len=llstrlen( weighttable[i][0])); + pos = insposmaxstr(in, weighttable[i][1], pos, MAXLEN-1); + p = overspacesafterlettercmd(len, weighttable[i][0], p); + } + else if (isLaTeXcmdletter(*(p+1)) != 0) + { ++p; while (isLaTeXcmdletter(*p) != 0) ++p; + while (*p == ' ') ++p; + } + else + { + if (issonder(*p) == 0) in[pos++] = *p; + ++p; + } + } + else + if (*p == '\"' && dqcat == TeXACTIVE) /* nogsty == 0 */ + { + if (*(p+1) == '\"') p += 2; + else if ((i=texlistnum(p, NUMGER, gstylist)) > -1) + { p += llstrlen( gstylist[i][0]); + pos = insertweight(in, i, pos, MAXLEN-1); + } + else + { + if (issonder(*p) == 0) in[pos++] = *p; + ++p; + } + } + else if (*p == '~') /* nur zusammen mit MARK_TILDE */ + { + in[pos++] = ' '; + ++p; + } + else + { + if (issonder(*p) == 0) in[pos++] = *p; + ++p; + } + } + + in[pos] = '\0'; + + return in; +} + + +void kill_unnecessary_spaces(char *s, char *p) +{ + + while (*p == ' ') ++p; + + while (*p != '\0') + { + if (*p == ' ' && *(p+1) == ' ') ++p; + else if (*p == ' ' && *(p+1) == '\0') break; + else *s++ = *p++; + } + + *s = '\0'; +} + + +void swapBCstrs(const int linec) +{ + char *p; + + p = subBptr[0][linec]; + subBptr[0][linec] = subBptr[1][linec]; + subBptr[1][linec] = p; + + p = subCptr[0][linec]; + subCptr[0][linec] = subCptr[1][linec]; + subCptr[1][linec] = p; +} + + +static char *teinzerw[] = { + "\\u{A}", /* 128 */ + "\\k{A}", /* 129 */ + "\\\'C", /* 130 */ + "\\v{C}", /* 131 */ + "\\v{D}", /* 132 */ + "\\v{E}", /* 133 */ + "\\k{E}", /* 134 */ + "\\u{G}", /* 135 */ + "\\\'L", /* 136 */ + "\\v{L}", /* 137 */ + "\\L{}", /* 138 */ + "\\\'N", /* 139 */ + "\\v{N}", /* 140 */ + "\\NG{}", /* 141 */ + "\\H{O}", /* 142 */ + "\\\'R", /* 143 */ + "\\v{R}", /* 144 */ + "\\\'S", /* 145 */ + "\\v{S}", /* 146 */ + "\\c{S}", /* 147 */ + "\\v{T}", /* 148 */ + "\\c{T}", /* 149 */ + "\\H{U}", /* 150 */ + "\\r{U}", /* 151 */ + "\\\"Y", /* 152 */ + "\\\'Z", /* 153 */ + "\\v{Z}", /* 154 */ + "\\.Z", /* 155 */ + "\\IJ{}", /* 156 */ + "\\.I", /* 157 */ + "\\dj{}", /* 158 */ + "\\S{}", /* 159 */ /* eigentl. "\\textsection{}" */ + "\\u{a}", /* 160 */ + "\\k{a}", /* 161 */ + "\\\'c", /* 162 */ + "\\v{c}", /* 163 */ + "\\v{d}", /* 164 */ + "\\v{e}", /* 165 */ + "\\k{e}", /* 166 */ + "\\u{g}", /* 167 */ + "\\\'l", /* 168 */ + "\\v{l}", /* 169 */ + "\\l{}", /* 170 */ + "\\\'n", /* 171 */ + "\\v{n}", /* 172 */ + "\\ng{}", /* 173 */ + "\\H{o}", /* 174 */ + "\\\'r", /* 175 */ + "\\v{r}", /* 176 */ + "\\\'s", /* 177 */ + "\\v{s}", /* 178 */ + "\\c{s}", /* 179 */ + "\\v{t}", /* 180 */ + "\\c{t}", /* 181 */ + "\\H{u}", /* 182 */ + "\\r{u}", /* 183 */ + "\\\"y", /* 184 */ + "\\\'z", /* 185 */ + "\\v{z}", /* 186 */ + "\\.z", /* 187 */ + "\\ij{}", /* 188 */ + "!`", /* 189 */ /* eigentl. "\\textexclamdown{}" */ + "\?`", /* 190 */ /* eigentl. "\\textquestiondown{}" */ + "\\pounds{}",/* 191 */ /* eigentl. "\\textsterling{}" */ + "\\`A", /* 192 */ + "\\\'A", /* 193 */ + "\\^A", /* 194 */ + "\\~A", /* 195 */ + "\\\"A", /* 196 */ + "\\r{A}", /* 197 */ + "\\AE{}", /* 198 */ + "\\c{C}", /* 199 */ + "\\`E", /* 200 */ + "\\\'E", /* 201 */ + "\\^E", /* 202 */ + "\\\"E", /* 203 */ + "\\`I", /* 204 */ + "\\\'I", /* 205 */ + "\\^I", /* 206 */ + "\\\"I", /* 207 */ + "\\DH{}", /* 208 "\\DJ{}", 208 */ + "\\~N", /* 209 */ + "\\`O", /* 210 */ + "\\\'O", /* 211 */ + "\\^O", /* 212 */ + "\\~O", /* 213 */ + "\\\"O", /* 214 */ + "\\OE{}", /* 215 */ + "\\O{}", /* 216 */ + "\\`U", /* 217 */ + "\\\'U", /* 218 */ + "\\^U", /* 219 */ + "\\\"U", /* 220 */ + "\\\'Y", /* 221 */ + "\\TH{}", /* 222 */ + "\\SS{}", /* 223 */ + "\\`a", /* 224 */ + "\\\'a", /* 225 */ + "\\^a", /* 226 */ + "\\~a", /* 227 */ + "\\\"a", /* 228 */ + "\\r{a}", /* 229 */ + "\\ae{}", /* 230 */ + "\\c{c}", /* 231 */ + "\\`e", /* 232 */ + "\\\'e", /* 233 */ + "\\^e", /* 234 */ + "\\\"e", /* 235 */ + "\\`\\i{}", /* 236 */ + "\\\'\\i{}", /* 237 */ + "\\^\\i{}", /* 238 */ + "\\\"\\i{}", /* 239 */ + "\\dh{}", /* 240 */ + "\\~n", /* 241 */ + "\\`o", /* 242 */ + "\\\'o", /* 243 */ + "\\^o", /* 244 */ + "\\~o", /* 245 */ + "\\\"o", /* 246 */ + "\\oe{}", /* 247 */ + "\\o{}", /* 248 */ + "\\`u", /* 249 */ + "\\\'u", /* 250 */ + "\\^u", /* 251 */ + "\\\"u", /* 252 */ + "\\\'y", /* 253 */ + "\\th{}", /* 254 */ + "\\ss{}"}; /* 255 */ + +char *getTONEenc(unsigned char c) +{ + if (c >= 128 && c <= 255) + return teinzerw[c-128]; + else return ""; +} + + +void erweitert(char in[], const char *p) +{ + int pos = 0; + + if (encode == 1) + { + while (*p != '\0' && pos < MAXLEN-1) + { + if (*p < 0) pos = insposmaxstr(in, getTONEenc(upperascii = *p), pos, MAXLEN-1); + else in[pos++] = *p; + ++p; + } + } + else + { + while (*p != '\0' && pos < MAXLEN-1) + { + if (*p > 0) in[pos++] = *p; + else upperascii = *p; + ++p; + } + } + in[pos] = '\0'; +} + + +const char *transformtable[][2] = { + { "\\\\", "[]" }, + { "\\vspace\t", "{}" }, + { "\\hspace\t", "{}" }, + { "\\nosort\t", "{}" }, + { "\\index\t", "{}" }, + { "\\glossary\t", "{}" }, + { "\\label\t", "{}" }, + { "\\pbalabel\t", "{}" }, + { "\\balabel\t", "{}" }, + { "\\pageref\t", "{}" }, + { "\\pbaref\t", "[]{}" }, + { "\\baref\t", "[]{}" }, + { "\\ref\t", "{}" }, + { "\\linebreak\t", "[]" }, + { "\\nolinebreak\t", "[]" }, + { "\\pagebreak\t", "[]" }, + { "\\nopagebreak\t", "[]" }, + { "\\footnote\t", "[]{}" }, + { "\\footnotetext\t", "[]{}" }, + { "\\footnotemark\t", "[]" }, + { "\\framebox\t", "[][]" }, + { "\\makebox\t", "[][]" }, + { "\\parbox\t", "[]{}" }, + { "\\raisebox\t", "{}[][]" }, + { "\\rule\t", "[]{}{}" }, + { "\\printonlyvqu\t", "[]{}{}*{}{}" }, + { "\\printonlyvli\t", "[]{}{}*{}{}" }, + { "\\xprintonlyvqu\t", "[]{}{}*{}{}" }, + { "\\xprintonlyvli\t", "[]{}{}*{}{}" }, + { "\\shadowv\t", "[]{}{}{}{}" }, + { "\\addtovli\t", "[]{}{}{}{}" }, + { "\\addtovqu\t", "[]{}{}{}{}" }, + { "\\xaddtovli\t", "[]{}{}{}{}" }, + { "\\xaddtovqu\t", "[]{}{}{}{}" }, + { "\\printonlykqu\t", "[]{}*{}{}" }, + { "\\printonlykli\t", "[]{}*{}{}" }, + { "\\xprintonlykqu\t", "[]{}*{}{}" }, + { "\\xprintonlykli\t", "[]{}*{}{}" }, + { "\\shadowk\t", "[]{}{}{}" }, + { "\\addtokli\t", "[]{}{}{}" }, + { "\\addtokqu\t", "[]{}{}{}" }, + { "\\xaddtokli\t", "[]{}{}{}" }, + { "\\xaddtokqu\t", "[]{}{}{}" }, + { "\\frac\t", "{}{}" }, + { "\\vauthor\t", "{}{}" }, + { "\\midvauthor\t", "{}{}" }, + { "\\kauthor\t", "{}" }, + { "\\midkauthor\t", "{}" }, + { "\\begin\t", "{}" }, + { "\\end\t", "{}" }, + { "\\ersch\t", "{}[]{}{}" }, + { "\\persch\t", "{}[]{}{}" }, + { "\\printonlyper\t", "{}" }, + { "\\shadowo\t", "{}" }, + { "\\addtoper\t", "{}" }, + { "\\shadowt\t", "{}{}" }, + { "\\addtoarq\t", "{}{}" }, + { "\\shadowone\t", "{}" }, + { "\\addtoabk\t", "{}" }, + { "\\addtogrr\t", "{}" }, + { "\\addtoprr\t", "{}" }, + { "\\addtosrr\t", "{}" }, + { "\\shadowtwo\t", "{}{}" }, + { "\\fillper\t", "{}{}" }, + { "\\fillarq\t", "{}{}" }, + { "\\fillgrr\t", "{}{}" }, + { "\\fillprr\t", "{}{}" }, + { "\\fillsrr\t", "{}{}" }, + { "\\addtodefabk\t", "{}{}" }, + { "\\addtoabkdef\t", "{}{}" }, + { "\\errmessage\t", "{}" }, + { "\\GenericError\t", "{}{}{}{}" }, + { "\\message\t", "{}" }, + { "\\typeout\t", "{}" }, + { "\\mathhexbox\t", "{}{}{}" }, + { "\\phantom\t", "{}" }, + { "\\vphantom\t", "{}" }, + { "\\hphantom\t", "{}" }, + { "\\showhyphens\t", "{}" }, + {"\\sethyphenation\t", "{}" }, + {"\\selectlanguage\t", "{}" }, + { "\\discretionary\t", "{}{}" }, + { "\\pstressing\t", "{}" }, + { "\\stressing\t", "{}" }, + { "\\pxbibmark\t", "{}{}" }, /* Nur \\p... */ + { "\\pxbibref\t", "{}" }, /* bearbeiten! */ + { "\\pbibmark\t", "{}" }, + { "\\bibmark\t", "{}" }, + { "\\outkurz\t", "{}" }, + { "\\delkurz\t", "{}" }, + { NULL, NULL }}; +#define NUMTRANSV 90 + + +/* Muessen im Bereich von issonder liegen: */ +#define WINGBR 25 +#define ANGUBR 24 +#define ROUNDBR 23 +#define OPTSTAR 22 + +char *bracketsformward(char *q, char c) +{ + if (c == '}') *q = WINGBR; + else if (c == ']') *q = ANGUBR; + else if (c == ')') *q = ROUNDBR; + else printf("%%%%\n%%%%> INTERNAL ERROR: BRACKETS LOST\n"); + return q; +} + + +void exchange_v(char *p, const char *bra, int num) +{ + int l = 0, la = 0, i = 0, lb = 0, j = 0, k; + char buf[MAXLEN], fub[MAXLEN], *lp = p, *anf = p; + + while (*p == ' ') { ++p; ++la; } + if ((l=nextbracket(p, *(bra+(3*num+1)), *(bra+(3*num+2)))) > 0) + { + la += l; while (i < la) buf[i++] = *lp++; + p += l; + if (*(bra+(3*(num+1))) == '') + { + while (*p == ' ') { ++p; ++lb; } + if ((l=nextbracket(p, *(bra+(3*(num+1)+1)), *(bra+(3*(num+1)+2)))) > 0) + { + lb += l; while (j < lb) fub[j++] = *lp++; + k = 0; while (k < j) *anf++ = fub[k++]; + k = 0; while (k < i) *anf++ = buf[k++]; + } + } + else printf("%%%%\n%%%%> INTERNAL ERROR: No formatter Strg+Q after Strg+P\n"); + } +} + + +char *handletransformarg(char *p, const char *bra) +{ + int l = 0, num = 0; + char *q = p; + + while (*(bra+(3*num)) != '\0' && *q != '\0') + { + if ('' == *(bra+(3*num)) || '' == *(bra+(3*num))) + { + while (*q == ' ') ++q; + if ((l=nextbracket(q, *(bra+(3*num+1)), *(bra+(3*num+2)))) < 2) l = 0; + q += l; + if ('' == *(bra+(3*num))) + { + while (*q == ' ') ++q; + } + p = q; + } + else + if ('' == *(bra+(3*num))) + { + if (*(bra+(3*num+1)) == '' && *(bra+(3*num+2)) == '') + { + if ((l=nextbracket(q, '(', ')')) < 2 && (l=nextbracket(q, '[', ']')) < 2) l = 0; + } + else + if (*(bra+(3*num+1)) == '' && *(bra+(3*num+2)) == '') + { + if (*q == '_') + { + l = 1; + while (*(q+l) != '_' && *(q+l) != '\0') ++l; + if (*(q+l) == '_') ++l; + else if (*(q+l) == '\0') l = 0; + } + else + if (*q == '|') + { + l = 1; + while (*(q+l) != '|' && *(q+l) != '\0') ++l; + if (*(q+l) == '|') ++l; + else if (*(q+l) == '\0') l = 0; + } + else l = 0; + } + else l = 0; + q += l; + p = q; + } + else + if ('' == *(bra+(3*num))) + { + while (*q == ' ') ++q; + if (*q == '*') + { + ++q; + while (*q == ' ') ++q; + if ((l=nextbracket(q, *(bra+(3*num+1)), *(bra+(3*num+2)))) < 2) l = 0; + q += l; + p = q; + } + } + else + if ('' == *(bra+(3*num))) + { + while (*q == ' ') ++q; + if (*q == '*') ++q; + while (*q == ' ') ++q; + if (*q != *(bra+(3*num+1)) || (l=nextbracket(q, *(bra+(3*num+1)), *(bra+(3*num+2)))) < 2) l = 0; + q += l; + p = q; + } + else + if ('' == *(bra+(3*num)) || '' == *(bra+(3*num)) || '' == *(bra+(3*num))) + { + if ('' == *(bra+(3*num))) exchange_v(q, bra, num); + while (*q == ' ') ++q; + if ((l=nextbracket(q, *(bra+(3*num+1)), *(bra+(3*num+2)))) < 2) l = 0; + if (l > 0) + { + q += l-1; + q = bracketsformward(q, *(bra+(3*num+2))); + ++q; + } + } + else + if ('*' == *(bra+(3*num))) + { + while (*q == ' ') ++q; + if (*q == '*') + { *q = OPTSTAR; + ++q; + while (*q == ' ') ++q; + if ((l=nextbracket(q, *(bra+(3*num+1)), *(bra+(3*num+2)))) < 2) l = 0; + if (l > 0) + { + q += l-1; + q = bracketsformward(q, *(bra+(3*num+2))); + ++q; + } + } + } + ++num; + } + + return p; +} + + +void transformline(char buf[], char *p) +{ + int pos = 0, i, l; + + while (*p != '\0' && pos < MAXLEN-2) + { + if (*p == '\\') + { + if ((i=texlistnum(p, NUMTRANSV, transformtable)) > -1) + { + if (*(p+1) == '\\') buf[pos++] = ' '; + p += llstrlen(transformtable[i][0]); + p = handletransformarg(p, transformtable[i][1]); + } + else buf[pos++] = *p++; + } + else + if (issonder(*p) == 1) + { + if (*p == OPTSTAR); + else + { + if (*p == WINGBR) buf[pos++] = '}'; + else if (*p == ANGUBR) buf[pos++] = ']'; + else if (*p == ROUNDBR) buf[pos++] = ')'; + else printf("%%%%\n%%%%> INTERNAL ERROR: unknown bracket symbol\n"); + buf[pos++] = ' '; + } + ++p; + while (*p == ' ') ++p; + } + else buf[pos++] = *p++; + } + + buf[pos] = '\0'; +} + + +void nosondercpy(char *s, const char *p) +{ + while (*p != '\0') + { if (issonder(*p) == 0) *s++ = *p; + ++p; + } + *s = '\0'; +} + + +void vorbereiten(int linec, int alllines, int deepsort, int ventry) +{ + char *p, in[MAXLEN], out[MAXLEN], num[2*NUMLEN], last, buf[MAXLEN]; + int pos, i, l; + + /* dqsort geht bis zur Tiefe deepsort, nicht deep */ + + while (linec < alllines) + { + i = 0; while (i < MAXBACOLS) subBptr[i++][linec] = mydefault; + i = 0; while (i < MAXBACOLS) subCptr[i++][linec] = mydefault; + + + i = 0; + while (i < deepsort) + { + nosondercpy ( in, subAptr[i][linec]); + transformline(buf, in); /* veraendert zweites Arg! */ + erweitert ( in, buf); + p = austauschen(buf, in, dqsort[linec]); + pos = 0; last = '\0'; + while (*p != '\0' && pos < MAXLEN-1) + { + if ( isalpha (*p) != 0 + || issonder(*p) == 1 + || (*p == ' ') + || (*p == '.' && registpoints == 1) /* nur zusammen mit MARK_POINT */ + ) + { + if (*p == ' ' && ignorespaces == 1) + out[pos] = ''; /* 31 */ /* "" */ + else out[pos] = *p; + ++pos; + } + else + if (isdigit(*p) != 0 && last != '\\') + { + p = standardnum(num, p); + out[pos] = '\0'; + strncat(out, num, MAXLEN-strlen(out)-1); + pos = strlen(out); + --p; + } + last = *p; + ++p; + } + + out[pos] = '\0'; + + kill_unnecessary_spaces(in, out); + + nzvorziehen(out, in); + + subBptr[i][linec] = strnmalloc(out, strlen(out)+1); + + pos = 0; + l = 0; + while (out[pos] != '\0') + { + if (issonder(out[pos]) == 0) + { + in[l] = toupper(out[pos]); + if (igleichj == 1 && in[l] == 'I') in[l] = 'J'; + ++l; + } + ++pos; + } + subCptr[i][linec] = strnmalloc(in, l+1); + + ++i; + } + + if (ventry == IS_V && *subAptr[0][linec] == '\0') swapBCstrs(linec); + + ++linec; + } +} + + +int isvintroduced(int i) +{ + const char *p = subRptr[STUFFRCOL][i]; + + while (*p == ' ') ++p; + + if (*p == '{') + { + p += nextbracket(p, '{', '}'); + while (*p == ' ') ++p; + + if (*p == '{') + { + p += nextbracket(p, '{', '}'); + while (*p == ' ') ++p; + + if (*p == '{') + { + ++p; + while (*p == ' ') ++p; + + if (*p == KENTRYCH) + { + ++p; + while (*p == ' ') ++p; + + if (*p == '}') return KENTRY; + } + + if (*p == VENTRYCH) + { + ++p; + while (*p == ' ') ++p; + + if (*p == '}') return VENTRY; + } + } + } + } + + return ERRENTRY; +} + + +int getthirdnum(int i) +{ + const char *p = subRptr[STUFFRCOL][i]; + + while (*p == ' ') ++p; + + if (*p == '{') + { + p += nextbracket(p, '{', '}'); + while (*p == ' ') ++p; + + if (*p == '{') + { + p += nextbracket(p, '{', '}'); + while (*p == ' ') ++p; + + if (*p == '{') + { + ++p; + while (*p == ' ') ++p; + + return getarabicnum(p); + } + } + } + + return 0; +} + + +int notfirstaccepted(int line) +{ + int r = 0, acceptbefore = 0; + + while(r < line) + { if (leval[r] == ACCEPTLINE) { ++acceptbefore; break; } + ++r; + } + + return acceptbefore; +} + + +void dofourtharg(int line) +{ + const char *p = subRptr[STUFFRCOL][line]; + int l = 0; + + while (*p == ' ') ++p; + + if (*p == '{') + { + p += nextbracket(p, '{', '}'); + while (*p == ' ') ++p; + + if (*p == '{') + { + p += nextbracket(p, '{', '}'); + while (*p == ' ') ++p; + + if (*p == '{') + { + p += nextbracket(p, '{', '}'); + while (*p == ' ') ++p; + + if (*p == '{') + { + l = nextbracket(p, '{', '}'); + + if (l > 2) + { + ++p; l -= 2; + while (*p == ' ') { ++p; --l; }; + + if (l > 0) + { + fprintf(outfile, " %.*s\n %%%% <- Your extra-command(s)", l, p); + if (notfirstaccepted(line) == 0) + fprintf(outfile, " before the 1st item", l, p); + fprintf(outfile, ".\n"); + } + } + } + } + } + } + +} + + +void getfirsttwoargs(char *s, const char *p) +{ + int len; + + while (*p == ' ') ++p; + + if (*p == '{') + { + if ((len=nextbracket(p, '{', '}')) < MAXLEN-1) + { + while(len-- > 0) *s++ = *p++; + + while (*p == ' ') ++p; + + if (*p == '{') + { + if (len + (len=nextbracket(p, '{', '}')) < MAXLEN-1) + { + while(len-- > 0) *s++ = *p++; + } + } + } + } + *s = '\0'; +} + + +int spacebreak(int cloop) +{ + + fprintf(outfile, "%s", BALOOPSPACE); + + if (cloop >= BAINDEXLOOPS) + { + fprintf(outfile, "%s", BAINDEXEND); + cloop = 0; + fprintf(outfile, "%s", BAINDEXFOLL); + ++cloop; + } + + return cloop; +} + + +char *negnum(char *p) +{ + if (*p == '-') return "\\,"; + return ""; +} + + +int printipagefnt(const char *arraysep, int begin, int end, int lasti, int cloop) +{ + int fnc, pnc; + + if ( lasti > -1 + && pagewgt[begin] == pagewgt[lasti] + && numcmp(pagewgt[begin], subRptr[PAGECOL][lasti], subRptr[PAGECOL][begin]) == 0 + ) + { + fprintf(outfile, "$^{,}$"); + cloop = spacebreak(cloop); + } + else + { + fprintf(outfile, "%s", arraysep); + if (pagewgt[begin] == MISSNUM) fprintf(outfile, "{%s}", MISSINGSYMB); + else if (pagewgt[begin] == EMPTYNUM) fprintf(outfile, "%s", EMPTYSYMB); + else if (pagewgt[begin] == OVERFLOW) fprintf(outfile, "%s", OVERFLOWSYMB); + else if (pagewgt[begin] == INTERNALERR) printf("%%%%\n%%%%> INTERNAL ERROR: Bad pageno\n"); + else if (pagewgt[begin] == UNUSED) printf("%%%%\n%%%%> INTERNAL ERROR: Unused pageno\n"); + else if (pagewgt[begin] == TEXT) fprintf(outfile, "%s%s%s", TEXTSYMBOPEN[notext], subRptr[PAGECOL][begin], TEXTSYMBCLOSE[notext]); + else fprintf(outfile, "%s", subRptr[PAGECOL][begin]); + } + + if (end > begin) + { + fnc = numcmp( fntwgt[begin], subRptr[FNTCOL][end], subRptr[FNTCOL][begin]); + pnc = numcmp(pagewgt[begin], subRptr[PAGECOL][end], subRptr[PAGECOL][begin]); + if (fnc == 1) + { + if (pnc > 0) fprintf(outfile, "$^{%s}$,", subRptr[FNTCOL][begin]); + else fprintf(outfile, "$^{%s}$$^{,}$", subRptr[FNTCOL][begin]); + cloop = spacebreak(cloop); + if (pnc > 0) fprintf(outfile, "%s$^{", subRptr[PAGECOL][end]); + else fprintf(outfile, "$^{"); + } + else + if (fnc > 1) + { + if (pnc > 0) fprintf(outfile, "$^{%s}$--%s%s$^{", subRptr[FNTCOL][begin], negnum(subRptr[PAGECOL][end]), subRptr[PAGECOL][end]); + else fprintf(outfile, "$^{%s-", subRptr[FNTCOL][begin]); + } + else + if ( fntwgt[end] != INTERNALERR + && fntwgt[end] != NOFOOTNOTE + ) fprintf(outfile, "$^{"); + } + else fprintf(outfile, "$^{"); + + if ( fntwgt[end] == MISSNUM) fprintf(outfile, "%s}$", MISSINGSYMB); + else if ( fntwgt[end] == EMPTYNUM) fprintf(outfile, "%s}$", EMPTYSYMB); + else if ( fntwgt[end] == OVERFLOW) fprintf(outfile, "%s}$", OVERFLOWSYMB); + else if ( fntwgt[end] == INTERNALERR) printf("%%%%\n%%%%> INTERNAL ERROR: Bad fntno\n"); + else if ( fntwgt[end] == NOFOOTNOTE) printf("%%%%\n%%%%> INTERNAL ERROR: That is not a footnote\n"); + else if ( fntwgt[end] == TEXT) fprintf(outfile, "%s%s%s}$", TEXTSYMBOPEN[notext], subRptr[FNTCOL][end], TEXTSYMBCLOSE[notext]); + else fprintf(outfile, "%s%s}$", negnum(subRptr[FNTCOL][end]), subRptr[FNTCOL][end]); + + return cloop; +} + + +int printipage(const char *arraysep, int begin, int end, int cloop) +{ + int pnc; + + fprintf(outfile, "%s", arraysep); + if (pagewgt[begin] == MISSNUM) fprintf(outfile, "{%s}", MISSINGSYMB); + else if (pagewgt[begin] == EMPTYNUM) fprintf(outfile, "%s", EMPTYSYMB); + else if (pagewgt[begin] == OVERFLOW) fprintf(outfile, "%s", OVERFLOWSYMB); + else if (pagewgt[begin] == TEXT) fprintf(outfile, "%s%s%s", TEXTSYMBOPEN[notext], subRptr[PAGECOL][begin], TEXTSYMBCLOSE[notext]); + else fprintf(outfile, "%s", subRptr[PAGECOL][begin]); + + if (end > begin) + { + pnc = numcmp(pagewgt[begin], subRptr[PAGECOL][end], subRptr[PAGECOL][begin]); + if (pnc == 1) + { + fprintf(outfile, ","); + cloop = spacebreak(cloop); + fprintf(outfile, "%s", subRptr[PAGECOL][end]); + } + else if (pnc > 1) fprintf(outfile, "--%s%s", negnum(subRptr[PAGECOL][end]), subRptr[PAGECOL][end]); + } + + return cloop; +} + + +void makeipagefnt(int i, int line, int end) +{ + int begblock, lasti = -1, j, cloop = -1; + char *asfirst = ""; + char *assecond = ", "; + char *arraysep = asfirst; + + + while (i <= end && pagewgt[i] == UNUSED) ++i; + + + if (i <= end) + { + + while (i <= end) + { + if (cloop == -1) + { + fprintf(outfile, "%s", BAINDEXLIST); + cloop = 0; + } + else if (cloop == 0) printf("%%%%\n%%%%> INTERNAL ERROR: cloop == 0\n"); + + ++cloop; + + begblock = i; + + if (fntwgt[i] == NOFOOTNOTE) /* Seiten ohne FNTs */ + { + while (i < end) + { + if ( fntwgt[i] == NOFOOTNOTE + && fntwgt[i+1] == NOFOOTNOTE + && pagewgt[i] != MISSNUM + && pagewgt[i] == pagewgt[i+1] + && (pagewgt[i] != TEXT || strcmp(subRptr[PAGECOL][i], subRptr[PAGECOL][i+1]) == 0) + && (pagewgt[i] == TEXT || (j=numcmp(pagewgt[i], subRptr[PAGECOL][i+1], subRptr[PAGECOL][i])) == 0 || j == 1) + ) ++i; + else break; + } + cloop = printipage(arraysep, begblock, i, cloop); + lasti = -1; + } + else /* Seiten mit FNTs */ + { + while (i < end) + { + if ( fntwgt[i] != NOFOOTNOTE + && pagewgt[i] != MISSNUM + && pagewgt[i] == pagewgt[i+1] + && (pagewgt[i] != TEXT || strcmp(subRptr[PAGECOL][i], subRptr[PAGECOL][i+1]) == 0) + && (pagewgt[i] == TEXT || (j=numcmp(pagewgt[i], subRptr[PAGECOL][i+1], subRptr[PAGECOL][i])) == 0 || j == 1) + && fntwgt[i] != MISSNUM + && fntwgt[i] == fntwgt[i+1] + && ( fntwgt[i] != TEXT || strcmp(subRptr[ FNTCOL][i], subRptr[ FNTCOL][i+1]) == 0) + && ( fntwgt[i] == TEXT || (j=numcmp( fntwgt[i], subRptr[ FNTCOL][i+1], subRptr[ FNTCOL][i])) == 0 || j == 1) + ) ++i; + else break; + } + cloop = printipagefnt(arraysep, begblock, i, lasti, cloop); + lasti = i; + } + + ++i; + arraysep = assecond; + } + + if (cloop != 0) + fprintf(outfile, "%s", BAINDEXEND); + } +} + + +void makeindex(const int nlines, const int line, const int deepsort) +{ + int i, j, begin, end; + + i = line; + while (i > 0 && leval[i-1] != REJECTLINE) + { + j = 0; + while (j < deepsort && texcmp(subAptr[j][i], subAptr[j][i-1], dqsort[i], dqsort[i-1]) == 0) ++j; + if (j < deepsort) break; + --i; + } + begin = i; + + i = line; + while (i < nlines-1 && leval[i+1] != REJECTLINE) + { + j = 0; + while (j < deepsort && texcmp(subAptr[j][i], subAptr[j][i+1], dqsort[i], dqsort[i+1]) == 0) ++j; + if (j < deepsort) break; + ++i; + } + end = i; + + makeipagefnt(begin, line, end); +} + + +void printsortline(int line, int deepsort) +{ + int l = 0; + + if (deepsort > 0) + { + fprintf(outfile, " %%%%META%%%%"); + + while (l < deepsort) + { + fprintf(outfile, " (%s)", subBptr[l][line]); + ++l; + } + + fprintf(outfile, "\n"); + } +} + + +int writetheline(char *p, const int nlines, const int line, const int deepsort, int filec, int printsort) +{ + int doprint = 0, pagenum = 0, fntnum = 0, uu = 0, tn = getthirdnum(line), j; + + if (*p != '%') + { if (leval[line] != ACCEPTLINE) + *p = '%'; + printf("%%%%\n%%%%> INTERNAL ERROR: LINE WITHOUT \'%%\'\n"); + } + + + if (leval[line] == ACCEPTLINE) + { + j = line-1; + while (j > 0 && leval[j] != ACCEPTLINE) --j; + if ( j < 0 + || (leval[j] == ACCEPTLINE && *subCptr[0][j] != *subCptr[0][line]) + || (leval[j] != ACCEPTLINE) + ) + { + if (leval[j] != ACCEPTLINE && j != 0) printf("%%%%\n%%%%> INTERNAL ERROR: misplaced %s/%s\n", PREPARESPACE, PREPAREHEAD); + + if (isalpha(*subCptr[0][line]) != 0) + { + fprintf(outfile, "\n\n"); + if (line > 0 && leval[j] == ACCEPTLINE) + fprintf(outfile, "%s\n", PREPARESPACE); + fprintf(outfile, "%s{%c}\n\n", PREPAREHEAD, *subCptr[0][line]); + } + else if (line > 0 && isdigit(*subCptr[0][line]) != 0) + { + fprintf(outfile, "\n\n%s\n", PREPARESPACE); + fprintf(outfile, "%s\n\n", PREPAREXSPACE); + } + } + } + + + if (leval[line] == ACCEPTLINE) { doprint = 1; ++p; } + else if (leval[line] == REJECTLINE) { doprint = 2; } + else if (leval[line] == DOUBLELINE) { doprint = 0; /* *p = '!'; */ } + else if (leval[line] == DIFFERLINE) { doprint = 4; /* *p = ':'; */ } + else if (leval[line] == UNDEFILINE) { doprint = 5; /* *p = '*'; */ } + else if (leval[line] == REDEF1LINE) { doprint = 6; } + else if (leval[line] == REDEF2LINE) { doprint = 7; } + else if (leval[line] == ABBREVLINE) { doprint = 0; /* *p = '+'; */ } + else printf("%%%%\n%%%%> INTERNAL ERROR: UNKNOWN WRITELINES-leval\n"); + + if (pagewgt[line] == EMPTYNUM) pagenum = 1; + else if (pagewgt[line] == MISSNUM) pagenum = 2; + else if (pagewgt[line] == TEXT) pagenum = 3; + else if (pagewgt[line] == OVERFLOW) pagenum = 4; + + if (pagewgt[line] == UNUSED) uu = 1; + + if ( fntwgt[line] == EMPTYNUM) fntnum = 1; + else if ( fntwgt[line] == MISSNUM) fntnum = 2; + else if ( fntwgt[line] == TEXT) fntnum = 3; + else if ( fntwgt[line] == OVERFLOW) fntnum = 4; + + + if (tn > 0 && doprint == 1 && leval[line] == ACCEPTLINE) dofourtharg(line); + + if (doprint == 2) fprintf(outfile, "%%%% *Reject entry* (syntax error or empty):\n"); + + if (doprint > 0 || pagenum > 0 || fntnum > 0 || uu > 0) + { + if (filec > 1) fprintf(outfile, "%%%% Entry from %s ...\n", subRptr[LINECOL][line]); + if (printsort == 1 && doprint == 1) printsortline(line, deepsort); + fprintf(outfile, "%s\n", p); + } + + if (doprint > 3) { fprintf(outfile, "%%%% <- TextArg-Warning"); + if (uu == 0) fprintf(outfile, " (NUMBERS of entry are not necessarily rejected)"); + fprintf(outfile, ":\n"); + } + if (doprint == 4) fprintf(outfile, "%%%% HEAD is explained different now; that new explanation is ignored.\n"); + if (doprint == 5) fprintf(outfile, "%%%% HEAD is not (yet\?) explained.\n"); + if (doprint == 6) fprintf(outfile, "%%%% HEAD is explained again (short-title mismatch).\n"); + if (doprint == 7) fprintf(outfile, "%%%% HEAD is explained again (risky when open/close seps are different).\n"); + + + if (pagenum > 0 || fntnum > 0) + fprintf(outfile, "%%%% <- Counter-Warning (TEXT of entry is not necessarily rejected):\n"); + + if (pagenum > 0) fprintf(outfile, "%%%% * Page-num "); + if (pagenum == 1) fprintf(outfile, "empty.\n"); /* EMPTYNUM */ + if (pagenum == 2) fprintf(outfile, "missing.\n"); /* MISSNUM */ + if (pagenum == 3) fprintf(outfile, "not valid and SORTED as TEXT.\n"); + if (pagenum == 4) fprintf(outfile, "contains \"%s\" (guess Alph/alph/fnsymbol overflow).\n", OVERFLOWTXT); + + if (tn == 0 && uu == 1) fprintf(outfile, "%%%% <- Def is in an {unused}-environment or is a \\fill...-cmd.\n"); + if (tn > 0 && uu == 1) fprintf(outfile, "%%%% <- List-internal heading (class %d).\n", tn); + + if ( fntnum > 0) fprintf(outfile, "%%%% * Footnote-num "); + if ( fntnum == 1) fprintf(outfile, "empty.\n"); /* EMPTYNUM */ + if ( fntnum == 2) fprintf(outfile, "missing.\n"); /* MISSNUM */ + if ( fntnum == 3) fprintf(outfile, "not valid and SORTED as TEXT.\n"); + if ( fntnum == 4) fprintf(outfile, "contains \"%s\" (guess Alph/alph/fnsymbol overflow).\n", OVERFLOWTXT); + + + if (doprint == 1 && nlines > 0) makeindex(nlines, line, deepsort); + + if (doprint >= 2 || pagenum > 0 || fntnum > 0 || (doprint == 1 && nlines > 0) || uu > 0) + fprintf(outfile, "\n"); + + + if (pagenum > 0 && fntnum > 0) return 2; + if (pagenum > 0 || fntnum > 0) return 1; + return 0; +} + + +void allerrorout(const char *s) +{ + fprintf(outfile, "%s %s\n", TeXITEM, s); + fprintf(outfile, "%s{BibArts warning: %s}%s\n", TYPEOUT, s, RELAX); + printf("%%%% -> %s\n", s); +} + + +static void timestamp (FILE *file) +{ + time_t t; + struct tm *tp; + + if (time (&t) == -1) return; + + tp = localtime(&t); + if (german == 0) + fprintf (file, "%%%%> Begin output (month-day-year) %.2d-%.2d-%.4d %.2d:%.2d:%.2d\n", + 1+tp->tm_mon, tp->tm_mday, 1900+tp->tm_year, + tp->tm_hour, tp->tm_min, tp->tm_sec); + else + fprintf (file, "%%%%> Begin output (day.month.year) %.2d.%.2d.%.4d %.2d:%.2d:%.2d\n", + tp->tm_mday, 1+tp->tm_mon, 1900+tp->tm_year, + tp->tm_hour, tp->tm_min, tp->tm_sec); +} + + +void printfilelist(FILE *file, int filec, int cc, int kill, const char *vor, const char *nach) +{ + int i = 0; + + if (cc == 1) + fprintf(file, "\n%%%% BibArts 2.0 (C) Timo Baumann 2015 [%s]\n", __DATE__); + + fprintf(file, "%%%%\n"); + timestamp(file); + fprintf(file, "%%%% Sort arg(s):\n"); + fprintf(file, "%s", vor); + if (german == 1) fprintf(file, " -g1"); + if (german == 2) fprintf(file, " -g2"); + if (nogsty == 1) fprintf(file, " -x"); + if (ignorespaces == 1) fprintf(file, " -l"); + if (registpoints == 1) fprintf(file, " -p"); + if (encode == 1) fprintf(file, " -t1"); + if (kill == DOKILLAUTHORS) fprintf(file, " -k"); + if (EinlROEMseiten == 1) fprintf(file, " -s1"); + if (ALPHmpfootnotes == 1) fprintf(file, " -f1"); + if (igleichj == 1) fprintf(file, " -i=j"); + if (notext == 1) fprintf(file, " -c"); + + if ( german == 0 + && nogsty == 0 + && ignorespaces == 0 + && registpoints == 0 + && encode == 0 + && kill != DOKILLAUTHORS + && EinlROEMseiten == 0 + && ALPHmpfootnotes == 0 + && igleichj == 0 + && notext == 0 + ) fprintf(file, " Default"); + fprintf(file, "%s\n", nach); + fprintf(file, "%%%%> Input file list:\n"); + + if (filec == 1) + fprintf(file, "%%%% only \"%s\".\n", filelist[i]); + else + while (i < filec) + { + fprintf(file, "%%%% %.3d \"%s\".\n", i+1, filelist[i]); + ++i; + } + + if (cc == 1) + fprintf(file, "\n\n"); + else printf("%%%%\n"); +} + + +int writelines(int nlines, const int dqcol, const int lancol, const int commentANDignlines, const int deepsort, int filec, int kill, int printsort) +{ + int i = 0, dqcat, lancat = 0, lancatbuf, extralines = 0, didsetorig, nerr = 0; + + printfilelist(outfile, filec, 1, kill, "\\gdef\\bibsortargs{", " }"); + + while (i < nlines && leval[i] != ACCEPTLINE) + { + nerr = nerr + writetheline(lineptr[i], 0, i, 0, filec, printsort); + ++i; + } + + /* Wegen 2. Arg von abk ist hier dqsort ungeeignet! */ + + if (nlines-commentANDignlines > 0) + { + if ((dqcol > -1 && nogsty == 0) || lancol > -1) fprintf(outfile, "\n"); + + if (dqcol > -1 && nogsty == 0) + { dqcat = getarabicnum(subRptr[dqcol][i]); + if (dqcat == TeXACTIVE) + { fprintf(outfile, " \\ifnum\\catcode\\grave@ba\\\"=%d%s{\\message{ [BIBSORT] Begin list setting \\string%s. }}\\fi\n", TeXPASSIVE, GERMANTEX, GERMANTEX); + ++extralines; + } + else if (dqcat == TeXPASSIVE) + { fprintf(outfile, " \\ifnum\\catcode\\grave@ba\\\"=%d%s{\\message{ [BIBSORT] Begin list setting \\string%s. }}\\fi\n", TeXACTIVE, ORIGINALTEX, ORIGINALTEX); + ++extralines; + } + } + + if (lancol > -1) + { lancat = getarabicnum(subRptr[lancol][i]); + fprintf(outfile, " \\ifnum\\language=%d\\else%s%d\\message{ [BIBSORT] Begin list setting hyphenation %d. }\\fi\n", lancat, HYPHENATION, lancat, lancat); + ++extralines; + } + + if ((dqcol > -1 && nogsty == 0) || lancol > -1) fprintf(outfile, "\n"); + + nerr = nerr + writetheline(lineptr[i], nlines, i, deepsort, filec, printsort); + + ++i; + } + else if (nlines > 0) allerrorout("BIBSORT did reject all your entries."); + + + while (i < nlines) + { + didsetorig = -1; + if (dqcol > -1 && nogsty == 0 && leval[i] == ACCEPTLINE) + { + if (dqcat == TeXACTIVE && (dqcat = getarabicnum(subRptr[dqcol][i])) == TeXPASSIVE) + { fprintf(outfile, " %s{\\message{ [BIBSORT] Set \\string%s \\space in line %s \\space of BibArts file. }}%s\n", ORIGINALTEX, ORIGINALTEX, TEXFILELINE, RELAX); + ++extralines; + didsetorig = 0; + } + else if (dqcat == TeXPASSIVE && (dqcat = getarabicnum(subRptr[dqcol][i])) == TeXACTIVE) + { fprintf(outfile, " %s{\\message{ [BIBSORT] Set \\string%s \\space in line %s \\space of BibArts file. }}%s\n", GERMANTEX, GERMANTEX, TEXFILELINE, RELAX); + ++extralines; + didsetorig = 1; + } + } + + if (lancol > -1 && leval[i] == ACCEPTLINE) + { if ( lancat != (lancatbuf = getarabicnum(subRptr[lancol][i])) + || didsetorig != -1 + ) + { lancat = lancatbuf; + fprintf(outfile, " %s%d\\message{ [BIBSORT] Reproduce hyphenation %d in line %s \\space of BibArts file. }%s\n", HYPHENATION, lancat, lancat, TEXFILELINE, RELAX); + ++extralines; + } + } + + nerr = nerr + writetheline(lineptr[i], nlines, i, deepsort, filec, printsort); + + ++i; + } + + if (nerr > 0) + { + printf("%%%% !!!\n"); + printf("%%%% I\'ve marked %d page/footnote number(s)\n", nerr); + printf("%%%% as \"%s\", \"%s\", \"%s\", and \"%s...%s\" for\n", OVERFLOWSYMB, EMPTYSYMB, MISSINGERMS, TEXTSYMBOPEN[notext], TEXTSYMBCLOSE[notext]); + printf("%%%% counter overflow / empty / missing / invalid (TEXT).\n"); + if (notext == 0 && (strcmp(TEXTSYMBOPEN[0], TEXTSYMBOPEN[1]) != 0 || strcmp(TEXTSYMBCLOSE[0], TEXTSYMBCLOSE[1]) != 0)) + { + printf("%%%% Use opt -c to set invalids "); + if (*TEXTSYMBOPEN[1] != '\0' || *TEXTSYMBCLOSE[1] != '\0') + printf("as \"%s...%s\"", TEXTSYMBOPEN[1], TEXTSYMBCLOSE[1]); + else printf("naked"); + printf(".\n"); + } + printf("%%%% !!!\n"); + } + + return extralines; +} + + +/*--------------------------------------------------------------------------*/ + + + /* Autoren, die mehrfach vorkommen, werden genannt */ + /* und ab dann durch P|IKILLNAME/NKILLNAME ersetzt */ + + +int authorcmp(const char *s, const char *p, int dqcats, int dqcatp) +{ + int mlen = strlen(MALE), flen = strlen(FEMALE), cont = 1; + int hlen = strlen(HASDOT), nlen = strlen(NOTDOT); + + while(1) + { + if (lcmdcmp(s, MALE) == 0) { s += mlen; while (*s == ' ') ++s; cont = 0; } + if (lcmdcmp(s, FEMALE) == 0) { s += flen; while (*s == ' ') ++s; cont = 0; } + if (lcmdcmp(s, HASDOT) == 0) { s += hlen; while (*s == ' ') ++s; cont = 0; } + if (lcmdcmp(s, NOTDOT) == 0) { s += nlen; while (*s == ' ') ++s; cont = 0; } + if (strncmp(s, "\\-", 2) == 0) { s += 2; cont = 0; } + + if (lcmdcmp(p, MALE) == 0) { p += mlen; while (*p == ' ') ++p; cont = 0; } + if (lcmdcmp(p, FEMALE) == 0) { p += flen; while (*p == ' ') ++p; cont = 0; } + if (lcmdcmp(p, HASDOT) == 0) { p += hlen; while (*p == ' ') ++p; cont = 0; } + if (lcmdcmp(p, NOTDOT) == 0) { p += nlen; while (*p == ' ') ++p; cont = 0; } + if (strncmp(p, "\\-", 2) == 0) { p += 2; cont = 0; } + + if (nogsty == 0) + { + if (dqcats == TeXACTIVE) + { + if (strncmp(s, "\"\"", 2) == 0) { s += 2; cont = 0; } + if (strncmp(s, "\"-", 2) == 0) { s += 2; cont = 0; } + } + if (dqcatp == TeXACTIVE) + { + if (strncmp(p, "\"\"", 2) == 0) { p += 2; cont = 0; } + if (strncmp(p, "\"-", 2) == 0) { p += 2; cont = 0; } + } + } + + if (cont == 1) + { + if (*s != '\0' && *p == *s) + { + if (*s == '\\' && *(s+1) != '\0' && *(p+1) == *(s+1)) { ++p; ++s; } + else + if (*s == '\"' && dqcats != dqcatp) break; + ++p; ++s; + } + else break; + } + else if (*s == '\0' || *p == '\0') break; + + cont = 1; + } + + if (*p == '\0' && *s == '\0') return 0; + return 1; +} + + +int texcmp(const char *s, const char *p, int dqcats, int dqcatp) +{ + while(1) + { + if (*s != '\0' && *p == *s) + { + if (*s == '\\' && *(s+1) != '\0' && *(p+1) == *(s+1)) { ++p; ++s; } + else + if (*s == '\"' && dqcats != dqcatp) break; + ++p; ++s; + } + else break; + } + + if (*p == '\0' && *s == '\0') return 0; + return 1; +} + + +int lcmdcmp(const char *s, const char *p) +{ + int r = 1; + + while (*s != '\0') + { + if (*s == *p) { ++s; ++p; } + else break; + + if (*p == '\0' && isLaTeXcmdletter(*s) == 0) + { + r = 0; + break; + } + } + + return r; +} + + +int findFEmale(const char *s) +{ + int r = 0; + + while(*s != '\0') + { + if ( lcmdcmp(s, MALE) == 0 + || lcmdcmp(s, FEMALE) == 0 + ) + { r = 1; + break; + } + ++s; + } + + return r; +} + + +int insertfalse(const char *p, char a[], int i) +{ + int n; + const char *err = "%%%% baaddx-error\n"; + + while (*p == ' ') ++p; + n = nextbracket(p, '{', '}'); if (n < 2) printf(err); + while (n-- > 0 && i < MAXLEN) a[i++] = *p++; + + while (*p == ' ') ++p; + if (*p == '{' && i < MAXLEN) + { a[i++] = *p++; + + while (*p == ' ') ++p; + n = nextbracket(p, '{', '}'); if (n < 2) printf(err); + while (n-- > 0 && i < MAXLEN) a[i++] = *p++; + + while (*p == ' ') ++p; + n = nextbracket(p, '{', '}'); if (n < 2) printf(err); + while (n-- > 0) p++; + + if (i + strlen(BAFALSE) < MAXLEN) + { + a[i] = '\0'; strcat(a, BAFALSE); i += strlen(BAFALSE); + } + } + else printf(err); + + while (*p != '\0' && i < MAXLEN) a[i++] = *p++; + + return i; +} + + +int count_rejected(int nlines) +{ + int ret = 0, i = 0; + + while (i < nlines) + { + if (leval[i] == REJECTLINE) + ++ret; /* parallel zu double_or_empty_abbreviation */ + ++i; + } + + return ret; +} + + +int checkifabbrisdefined(int nlines, int ret, char *Thead, const char *Thold, int Thint, int i) +{ + int found = 2, pwgt, fwgt; + char *pg, *fnt, *tline; + + if ( leval[i] != REJECTLINE + && *subAptr[1][i] == '\0' + && ( *Thold == '\0' + || texcmp(subAptr[0][i], Thead, dqsort[i], Thint) != 0 + ) + ) + { + leval[i] = UNDEFILINE; + ++ret; + found = 0; + } + + + Thead = subAptr[0][i]; + Thint = dqsort[i]; + pg = subRptr[PAGECOL][i]; + fnt = subRptr[FNTCOL][i]; + tline = subRptr[LINECOL][i]; + pwgt = pagewgt[i]; + fwgt = fntwgt[i]; + + if (found == 0) + { + while (++i < nlines && texcmp(subAptr[0][i], Thead, dqsort[i], Thint) == 0) + { + if ( leval[i] != REJECTLINE + && *subAptr[1][i] != '\0' + ) + { found = 1; + break; + } + } + } + + if (found == 0) + { printf("%%%%\n%%%%> Warning: Abbreviation \"%s\" is NEVER defined!\n", Thead); + printf("%%%% The entry (%s", tline); + if (Thint > -1) printf(", \":%d", Thint); + printf(") is rejected. Use %s\?\n", ABKDEF); + } + + if (found == 1 && + ( strcmp(tline, subRptr[LINECOL][i]) != 0 + || strcmp( fnt, subRptr[FNTCOL][i] ) != 0 + ) + ) + { + printf("%%%%\n%%%%> Warning: Abbreviation \"%s\" is used in\n", Thead); + printf("%%%% "); + if (fnt != nofnt) + { printf("A FNT "); + if (fwgt != fntwgt[i] && subRptr[FNTCOL][i] != nofnt && strcmp(pg, subRptr[PAGECOL][i]) == 0) + printf("T%d ", fwgt); + } + printf("%s and def in ", tline); + if (subRptr[FNTCOL][i] != nofnt) + { + printf("A FNT "); + if (fwgt != fntwgt[i] && fnt != nofnt && strcmp(pg, subRptr[PAGECOL][i]) == 0) + printf("T%d ", fntwgt[i]); + } + printf("%s!\n", subRptr[LINECOL][i]); + } + + return ret; +} + + +int entkerne_IeC(char buf[], const char *s) +{ + if (strlen(s) < MAXLEN) + entkerne_arg(buf, s, IeC, IeClen, '{', '}'); + else strncpy(buf, s, MAXLEN-1); + + return strlen(buf); +} + + +void maxprint(int len, const char *s) +{ + char buf[MAXLEN]; + int buflen = entkerne_IeC(buf, s); + + if (len > 4 && buflen > len) printf("%.*s....", len-4, buf); + else printf("%s", buf); +} + + +void printdline(int len, const char *s) +{ + printf("\""); + maxprint(len, s); + printf("\""); +} + + +void printD(const char *txt, const char *head, const char *Thold, const char *Trej, int i, int mem, int nmsg) +{ + int prnlen = 0; + + if (nmsg == 0) + { + printf("%%%%\n%%%%> Warning: Different %s ", txt); + printdline(50 - strlen(txt), head); + printf(":\n"); + + printf("%%%% *Accept "); + if (mem > -1) + { + printf("%s ", subRptr[LINECOL][mem]); + prnlen = 60 - strlen(subRptr[LINECOL][mem]); + } + printdline(prnlen, Thold); + printf(";\n"); + } + + printf("%%%% *Reject %s ", subRptr[LINECOL][i]); + + if (strcmp(Thold, Trej) == 0) + printf("(same string with other dq-catcode %d)", getarabicnum(subRptr[DQCOL][i])); + else printdline(60 - strlen(subRptr[LINECOL][i]), Trej); + + printf(".\n"); +} + + +int twoargsSTUFFcmp(const char *txt, int i, int mem, int messn) +{ + char a_buf[MAXLEN], b_buf[MAXLEN]; + + if (mem > -1) + { + getfirsttwoargs(a_buf, subRptr[STUFFRCOL][i]); + getfirsttwoargs(b_buf, subRptr[STUFFRCOL][mem]); + + if (texcmp(a_buf, b_buf, getarabicnum(subRptr[DQCOL][i]), getarabicnum(subRptr[DQCOL][mem])) != 0) + { + if (messn < MAXMESSN) + { + printD(txt, subAptr[0][i], b_buf, a_buf, i, mem, messn); + } + ++messn; + } + } + + return messn; +} + + +int xstrcmp(const char *a, const char *b, int mem, int i) +{ + if ( ( nogsty == 1 + || (mem > -1 && getarabicnum(subRptr[DQCOL][i]) == getarabicnum(subRptr[DQCOL][mem])) + || userusesdq(PCOLS, i) == 0 + ) + && strcmp(a, b) == 0 + ) return 0; + return 1; +} + + +void printT(int i) +{ + printf("%%%% "); + print_two(i, 0, 1); + printf("\n"); +} + + +void warnFEmaleT(int nlines) +{ + int i = 0; + + while (i < nlines) + { + if ( findFEmale(subAptr[0][i]) != 0 + || findFEmale(subAptr[1][i]) != 0 + ) + { + printf("%%%%\n%%%%> Warning: %s or %s in entry %s:\n", FEMALE, MALE, subRptr[LINECOL][i]); + printT(i); + } + ++i; + } +} + + +void checkSTUFFblock(const char *msg, int i, const int nlines, const int deepsort, const int deep) +{ + const int mem = i; + const char *TheadA = subAptr[0][mem]; + const char *TheadB = subAptr[1][mem]; + const char *TheadC = subAptr[2][mem]; + const char *TheadD = subAptr[3][mem]; + const int Thint = dqsort[mem]; + int messn = 0; + + + if ( deepsort != deep + && deepsort != deep-1 + ) + { + printf("%%%%\n%%%%> INTERNAL ERROR: deep/deepsort\n"); + } + else + { + while (++i < nlines) + { + if (leval[i] == REJECTLINE); + else + if ( (deepsort > 0 && texcmp(subAptr[0][i], TheadA, dqsort[i], Thint) != 0) + || (deepsort > 1 && texcmp(subAptr[1][i], TheadB, dqsort[i], Thint) != 0) + || (deepsort > 2 && texcmp(subAptr[2][i], TheadC, dqsort[i], Thint) != 0) + || (deepsort > 3 && texcmp(subAptr[3][i], TheadD, dqsort[i], Thint) != 0) + ) + { + break; + } + else if ( deepsort == deep + || (*subAptr[deep-1][i] != '\0' && texcmp(subAptr[deep-1][i], subAptr[deep-1][mem], getarabicnum(subRptr[DQCOL][i]), getarabicnum(subRptr[DQCOL][mem])) == 0) + ) + { + messn = twoargsSTUFFcmp(msg, i, mem, messn); + } + } + + if (messn > MAXMESSN) printf("%%%% *** Report the first %d different seps (of %d) for that entry. ***\n", MAXMESSN, messn); + } +} + + +int double_or_empty_abbreviation(int nlines, int deepsort, int deep) +{ + int i, ret = 0, Thint = -1, mem = -1; + char *Thead = "", *Thold = "", *Thart = NULL, *oldmsg = NULL, *oldstuffA = NULL, *oldstuffB = NULL; + + /* dqsort geht bis zur Tiefe deepsort, nicht deep */ + + + warnFEmaleT(nlines); + + + i = 0; while (i < nlines) + { + if (leval[i] == REJECTLINE) + { + ++ret; /* Anzahl bereits auskommentierter Zeilen */ + } + else + if (*subAptr[0][i] == '\0') + { + leval[i] = REJECTLINE; + printf("%%%%\n%%%%> Reject empty abbreviation in %s!\n", subRptr[LINECOL][i]); + ++ret; + } + ++i; + } + + + ret = checkifabbrisdefined(nlines, ret, Thead, Thold, Thint, 0); + + i = 1; while (i < nlines) + { + if ( leval[i-1] != REJECTLINE + && *subAptr[0][i-1] != '\0' + && *subAptr[1][i-1] != '\0' + ) + { + if ( *Thold == '\0' + || texcmp(subAptr[0][i-1], Thead, dqsort[i-1], Thint) != 0 + ) + { Thold = subAptr[1][i-1]; + mem = i-1; + Thart = subRptr[FNTCOL][i-1]; + } + else + if (Thart != nofnt && subRptr[FNTCOL][i-1] == nofnt) + { + Thart = subRptr[FNTCOL][i-1]; + } + Thead = subAptr[0][i-1]; + Thint = dqsort[i-1]; + } + + if ( leval[i] != REJECTLINE + && *subAptr[0][i] != '\0' + && *subAptr[1][i] == '\0' + && Thart != NULL + && Thart != nofnt + && subRptr[FNTCOL][i] == nofnt + && texcmp(subAptr[0][i], Thead, dqsort[i], Thint) == 0 + ) + { + if (oldmsg == NULL || strcmp(oldmsg, subAptr[0][i]) != 0) + printf("%%%%\n%%%%> Warning: Abbreviation \"%s\" is used in\n", subAptr[0][i]); + printf("%%%% TEXT %s, whereas all foregoing defs were in FNTs!\n", subRptr[LINECOL][i]); + oldmsg = subAptr[0][i]; + } + + ret = checkifabbrisdefined(nlines, ret, Thead, Thold, Thint, i); + + if ( leval[i] != REJECTLINE + && *subAptr[1][i] == '\0' + && *Thold != '\0' + && texcmp(subAptr[0][i], Thead, dqsort[i], Thint) == 0 + ) + { + leval[i] = ABBREVLINE; + ++ret; + } + + if ( leval[i] != REJECTLINE + && *subAptr[1][i] != '\0' + && *Thead != '\0' + && texcmp(subAptr[0][i], Thead, dqsort[i], Thint) == 0 + ) + { + if (xstrcmp(Thold, subAptr[1][i], mem, i) != 0) /* leval[i] sagt nichts zu Arg2 */ + { + printD("defs for abbreviation", subAptr[0][i], Thold, subAptr[1][i], i, mem, 0); + leval[i] = DIFFERLINE; + ++ret; + } + else + { + leval[i] = DOUBLELINE; + ++ret; + /* printf("%%%%\n%%%%> Reject repeated def for abbreviation \"%s\" -> \"%s\"!\n", subAptr[0][i], subAptr[1][i]); + */ + if ( (oldstuffA == NULL && oldstuffB == NULL) + || strcmp(oldstuffA, subAptr[0][mem]) != 0 + || strcmp(oldstuffB, subAptr[1][mem]) != 0 + ) + checkSTUFFblock("abkdef-open/-close seps after", mem, nlines, deepsort, deep); + oldstuffA = subAptr[0][mem]; + oldstuffB = subAptr[1][mem]; + } + } + ++i; + } + + return ret; +} + + +void printcline(int len, const char *s) +{ + printf("("); + maxprint(len, s); + printf(") "); +} + + + +#define LMAX 26 +#define RMAX 36 + +void print_two(int i, int e, int z) +{ + char bufa[MAXLEN], bufb[MAXLEN]; + int llen, rlen; + + llen = entkerne_IeC(bufa, subAptr[e][i]); + rlen = entkerne_IeC(bufb, subAptr[z][i]); + + if (llen > LMAX && rlen > RMAX) + { + rlen = RMAX; + llen = LMAX; + } + else + if (llen + rlen > LMAX + RMAX) + { + if (llen > LMAX) llen = LMAX+RMAX-rlen; + if (rlen > RMAX) rlen = LMAX+RMAX-llen; + } + + printcline(llen, bufa); + printcline(rlen, bufb); +} + + +#define LEFTMAX 16 +#define MIDMAX 18 +#define RIGHTMAX 24 + +void print_three(int i, int e, int z, int d) +{ + char bufa[MAXLEN], bufb[MAXLEN], bufc[MAXLEN]; + int llen, mlen, rlen, vari; + + llen = entkerne_IeC(bufa, subAptr[e][i]); + mlen = entkerne_IeC(bufb, subAptr[z][i]); + rlen = entkerne_IeC(bufc, subAptr[d][i]); + + if (llen > LEFTMAX && mlen > MIDMAX && rlen > RIGHTMAX) + { + rlen = RIGHTMAX; + mlen = MIDMAX; + llen = LEFTMAX; + } + else + if (llen + mlen + rlen > LEFTMAX + MIDMAX + RIGHTMAX) + { + if (rlen <= RIGHTMAX && mlen <= MIDMAX) + { + llen = LEFTMAX + RIGHTMAX-rlen + MIDMAX-mlen; + } + else + if (mlen <= MIDMAX && llen <= LEFTMAX) + { + rlen = RIGHTMAX + MIDMAX-mlen + LEFTMAX-llen; + } + else + if (rlen <= RIGHTMAX && llen <= LEFTMAX) + { + mlen = MIDMAX + RIGHTMAX-rlen + LEFTMAX-llen; + } + else + if (rlen <= RIGHTMAX) + { + vari = RIGHTMAX-rlen; + if (llen > LEFTMAX + vari && mlen > MIDMAX) + { + llen = LEFTMAX + vari; + mlen = MIDMAX; + } + else + if (mlen + llen > MIDMAX + LEFTMAX + vari) + { + if (llen > LEFTMAX+vari) llen = MIDMAX+ LEFTMAX+vari-mlen; + if (mlen > MIDMAX) mlen = MIDMAX+ LEFTMAX+vari-llen; + } + } + else + if (llen <= LEFTMAX) + { + vari = LEFTMAX-llen; + if (mlen > MIDMAX + vari && rlen > RIGHTMAX) + { + mlen = MIDMAX + vari; + rlen = RIGHTMAX; + } + else + if (mlen + rlen > MIDMAX + RIGHTMAX + vari) + { + if (mlen > MIDMAX+vari) mlen = MIDMAX+RIGHTMAX+vari-rlen; + if (rlen > RIGHTMAX) rlen = MIDMAX+RIGHTMAX+vari-mlen; + } + } + else + if (mlen <= MIDMAX) + { + vari = MIDMAX-mlen; + if (llen > LEFTMAX + vari && rlen > RIGHTMAX) + { + llen = LEFTMAX + vari; + rlen = RIGHTMAX; + } + else + if (rlen + llen > RIGHTMAX + LEFTMAX + vari) + { + if (llen > LEFTMAX+vari) llen = RIGHTMAX+LEFTMAX+vari-rlen; + if (rlen > RIGHTMAX) rlen = RIGHTMAX+LEFTMAX+vari-llen; + } + } + } + + if (llen + mlen + rlen > LEFTMAX + MIDMAX + RIGHTMAX) + printf("%%%%\n%%%%> INTERNAL ERROR: Bad screen print\n"); + + printcline(llen, bufa); + printcline(mlen, bufb); + printcline(rlen, bufc); +} + + +#define MAXA 12 +#define MAXB 8 +#define MAXC 16 +#define MAXD 18 +#define ALLMAX (MAXA+MAXB+MAXC+MAXD) + +void print_four(int i) +{ + char bufa[MAXLEN], bufb[MAXLEN], bufc[MAXLEN], bufd[MAXLEN]; + int lena, lenb, lenc, lend; + int over, overa = 0, overb = 0, overc = 0, overd = 0; + + lena = entkerne_IeC(bufa, subAptr[1][i]); /* (Vorname) */ + lenb = entkerne_IeC(bufb, subAptr[0][i]); + lenc = entkerne_IeC(bufc, subAptr[2][i]); + lend = entkerne_IeC(bufd, subAptr[3][i]); + + if (lena + lenb + lenc + lend > ALLMAX) + { + if (lena < MAXA) overa = MAXA - lena; + if (lenb < MAXB) overb = MAXB - lenb; + if (lenc < MAXC) overc = MAXC - lenc; + if (lend < MAXD) overd = MAXD - lend; + + over = overa + overb + overc + overd; + overa = 0; overb = 0; overc = 0; overd = 0; + + while (over > 0) + { + if (lena-overa > MAXA && over > 0) { ++overa; --over; } + if (lenb-overb > MAXB && over > 0) { ++overb; --over; } + if (lenc-overc > MAXC && over > 0) { ++overc; --over; } + if (lend-overd > MAXD && over > 0) { ++overd; --over; } + } + + over = overa + overb + overc + overd; + + while(lena + lenb + lenc + lend + over > ALLMAX) + { + if (lena + lenb + lenc + lend + over > ALLMAX && lena > MAXA) --lena; + if (lena + lenb + lenc + lend + over > ALLMAX && lenb > MAXB) --lenb; + if (lena + lenb + lenc + lend + over > ALLMAX && lenc > MAXC) --lenc; + if (lena + lenb + lenc + lend + over > ALLMAX && lend > MAXD) --lend; + } + } + + printcline(lena+overa, bufa); /* (Vorname) */ + printcline(lenb+overb, bufb); + printcline(lenc+overc, bufc); + printcline(lend+overd, bufd); +} + + +void fitssingleentry(int i, int nlines, int arq, const char *suffix) +{ + int l; + + if ( leval[i] != REJECTLINE + && *subAptr[1][i] != '\0' + && (arq != IS_Q || getthirdnum(i) == 0) + ) + { + l = i; + while (l > 0) + { + if (leval[l-1] == REJECTLINE); + else if (texcmp(subAptr[0][l-1], subAptr[0][i], dqsort[l-1], dqsort[i]) != 0) break; + else if (*subAptr[1][l-1] == '\0') { --l; break; } + --l; + } + + if (leval[l] == REJECTLINE || *subAptr[1][l] != '\0') + { + while (l < nlines-1) + { + if (leval[l+1] == REJECTLINE); + else if (texcmp(subAptr[0][l+1], subAptr[0][i], dqsort[l+1], dqsort[i]) != 0) break; + else if (*subAptr[1][l+1] == '\0') { ++l; break; } + ++l; + } + } + + if (leval[l] == REJECTLINE || *subAptr[1][l] != '\0') + { + printf("%%%%\n%%%%> Info: \\fill%s in %s fits NO single entry:\n", suffix, subRptr[LINECOL][i]); + printT(i); + } + } +} + + +void misplaced_heading(int heada, int line) +{ + printf("%%%%\n%%%%> Warning: Misplaced %d-heading (from %s):\n", heada, subRptr[LINECOL][line]); + printT(line); +} + + +int double_or_empty_arqperregisters(int nlines, int arq, const char *suffix, int deepsort, int deep) +{ + int i, ret = 0, ThintA = -1, mem = -1, lastmem = mem, len, heada, headb; + char *TheadA = "", *heredefault = "", *TheadB = heredefault, *oldstuffA = NULL, *oldstuffB = NULL; + + + warnFEmaleT(nlines); + + + i = 0; while (i < nlines) + { + if (leval[i] == REJECTLINE) + { + ++ret; /* Anzahl bereits auskommentierter Zeilen */ + } + else + if (*subAptr[0][i] == '\0') + { + printf("%%%%\n%%%%> Warning: Empty entry in %s", subRptr[LINECOL][i]); + if (*subAptr[1][i] != '\0') + { + if (arq == IS_Q && (heada=getthirdnum(i)) > 0) + printf(" (%d-heading)", heada); + else printf(" (\\fill%s-cmd)", suffix); + } + printf(".\n"); + leval[i] = REJECTLINE; + ++ret; + } + ++i; + } + + + fitssingleentry(0, nlines, arq, suffix); + + + i = 1; while (i < nlines) + { + if ( leval[i-1] != REJECTLINE + && *subAptr[0][i-1] != '\0' + && texcmp(subAptr[0][i-1], TheadA, dqsort[i-1], ThintA) != 0 + ) + { + TheadA = subAptr[0][i-1]; + ThintA = dqsort[i-1]; + + if (pagewgt[i-1] == UNUSED) + { + mem = i-1; + TheadB = subAptr[1][i-1]; + } + else + { + mem = -1; + TheadB = heredefault; + } + } + + /* da deepsort < deep wird subAptr[1][i] von dqsort nicht erfasst */ + if ( leval[i] != REJECTLINE + && *TheadA != '\0' + && texcmp(subAptr[0][i], TheadA, dqsort[i], ThintA) == 0 + ) + { + if (*subAptr[1][i] == '\0') + { + leval[i] = DOUBLELINE; + } + else + { + if (xstrcmp(TheadB, subAptr[1][i], mem, i) == 0) /* leval[i] sagt nichts zu Arg2 */ + { + leval[i] = REDEF2LINE; + if ( (oldstuffA == NULL && oldstuffB == NULL) + || strcmp(oldstuffA, subAptr[0][mem]) != 0 + || strcmp(oldstuffB, subAptr[1][mem]) != 0 + ) + checkSTUFFblock("open/close seps after", mem, nlines, deepsort, deep); + oldstuffA = subAptr[0][mem]; + oldstuffB = subAptr[1][mem]; + } + else + { + printD("fills for head", subAptr[0][i], TheadB, subAptr[1][i], i, mem, 0); + if (arq == IS_Q && getthirdnum(i) == 1) + printf("%%%% ... A list-internal heading is shadowed.\n"); + leval[i] = DIFFERLINE; + } + } + + ++ret; + } + + + if ( arq == IS_Q + && ( leval[i] == ACCEPTLINE + || leval[i] == REDEF2LINE + || leval[i] == DOUBLELINE + ) + ) + { + if ( mem > lastmem + && (heada=getthirdnum(mem)) > 0 + ) + { + len = strlen(TheadA); + headb = getthirdnum(i); + if ( strncmp(subAptr[0][i], TheadA, len) != 0 + || len >= strlen(subAptr[0][i]) + || (headb < heada && headb > 0) + ) + { + misplaced_heading(heada, mem); + printf("%%%% ... That"); + if (texcmp(subAptr[0][i], TheadA, dqsort[i], ThintA) == 0) + printf(" melts into "); + else + { + printf("\'s before "); + if (strcmp(subAptr[0][i], TheadA) == 0) printf("[\"!] "); + } + if (headb > 0) + { + printf("%d-heading", headb); + printf(" (from %s):\n", subRptr[LINECOL][i]); + printT(i); + } + else printf("list item (from %s).\n", subRptr[LINECOL][i]); + } + } + lastmem = mem; + } + + + fitssingleentry(i, nlines, arq, suffix); + + ++i; + } + + + return ret; +} + + +void printV(int i) +{ + printf("%%%% "); + if (dqsort[i] == TeXACTIVE) + printf( "!\" "); + else + printf( " "); + + if (*subAptr[2][i] == '\0') + { + print_three(i, 1, 0, 3); /* (Vorname) (Nachname) (Rest) */ + } + else + { + print_four(i); + } + printf("\n"); +} + + +void printK(int i) +{ + printf("%%%% "); + if (dqsort[i] == TeXACTIVE) + printf( "!\" "); + else + printf( " "); + + if (*subAptr[1][i] == '\0') + { + print_two(i, 0, 2); + } + else + { + print_three(i, 0, 1, 2); + } + printf("\n"); +} + + +int checkifisfullcited(int i, int nlines, int ret) +{ + char *TheadA = subAptr[0][i]; + char *TheadB = subAptr[1][i]; + char *TheadC = subAptr[2][i]; + char *TheadD = subAptr[3][i]; + int Thint = dqsort[i], mem = i, j = i, cnt = 0, rest = nlines; + + + + + if ( leval[i] != REJECTLINE + && isvintroduced(i) == KENTRY + ) + { + printf("%%%%\n%%%%> Info: Short-%s-title %s is NOT yet introduced.\n", subAptr[3][i], subRptr[LINECOL][i]); + printK(i); + + + while (++i < nlines) + { + if (leval[i] == REJECTLINE); + else + if ( texcmp(subAptr[0][i], TheadA, dqsort[i], Thint) != 0 + || texcmp(subAptr[1][i], TheadB, dqsort[i], Thint) != 0 + || texcmp(subAptr[2][i], TheadC, dqsort[i], Thint) != 0 + || texcmp(subAptr[3][i], TheadD, dqsort[i], Thint) != 0 + ) + break; + else + if (isvintroduced(i) == VENTRY) + { + if (subRptr[FNTCOL][j] != nofnt && subRptr[FNTCOL][i] != nofnt && fntwgt[j] != fntwgt[i] && strcmp(subRptr[PAGECOL][j], subRptr[PAGECOL][i]) == 0) + printf("%%%% Full titel %s and short title in FNTs T%d T%d.\n", subRptr[LINECOL][i], fntwgt[i], fntwgt[j]); + else + printf("%%%% ... Exchange it with the full-title in %s.\n", subRptr[LINECOL][i]); + mem = i; + + leval[j] = DOUBLELINE; + ++ret; + + break; + } + else + { + leval[i] = DOUBLELINE; + ++ret; + } + } + if (mem == j) + { + if (findFEmale(subAptr[0][mem]) != 0 || findFEmale(subAptr[1][mem]) != 0 || findFEmale(subAptr[2][mem]) != 0) + printf("%%%% ... Delete misplaced cmd %s or %s.\n", FEMALE, MALE); + else + printf("%%%% ... Change that short-title into missing full-title (%s)\?\n", KTIT); + } + + rest = i; + } + + i = mem; + if ( leval[i] != REJECTLINE + && isvintroduced(i) == VENTRY + ) + { + while (++i < nlines) + { + if (leval[i] == REJECTLINE); + else + if ( texcmp(subAptr[0][i], TheadA, dqsort[i], Thint) != 0 + || texcmp(subAptr[1][i], TheadB, dqsort[i], Thint) != 0 + || texcmp(subAptr[2][i], TheadC, dqsort[i], Thint) != 0 + || texcmp(subAptr[3][i], TheadD, dqsort[i], Thint) != 0 + ) + break; + else + if (isvintroduced(i) == VENTRY) + { + ++cnt; + if (cnt == 1) + printf("%%%%\n%%%%> Info: "); + else printf("%%%%> "); + printf("Introduction %d of ", cnt+1); + if (cnt > 1) printf("that "); + printf("short-%s-title in %s.\n", subAptr[3][i], subRptr[LINECOL][i]); + if (cnt == 1) + { + printK(i); + printf("%%%% First introduction has been in %s (%s).\n", subRptr[LINECOL][mem], KTIT); + } + + leval[i] = REDEF1LINE; + ++ret; + } + else + { + leval[i] = DOUBLELINE; + ++ret; + } + } + + rest = i; + } + + i = rest; + while (++i < nlines) + { + if (leval[i] == REJECTLINE); + else + if ( texcmp(subAptr[0][i], TheadA, dqsort[i], Thint) == 0 + && texcmp(subAptr[1][i], TheadB, dqsort[i], Thint) == 0 + && texcmp(subAptr[2][i], TheadC, dqsort[i], Thint) == 0 + && texcmp(subAptr[3][i], TheadD, dqsort[i], Thint) == 0 + ) + { + leval[i] = DOUBLELINE; + ++ret; + } + else break; + } + + return ret; +} + + +void checkmanipulationk(int i) +{ + + if ( leval[i] != REJECTLINE + && isvintroduced(i) == ERRENTRY + ) + { + printf("%%%%\n%%%%> Warning: Citation %s has unknown status.\n", subRptr[LINECOL][i]); + printK(i); + } +} + + +void checkshortmismatch(int i, const int nlines, const int mem) +{ + while (i < nlines) + { + if ( texcmp(subAptr[0][i], subAptr[0][mem], dqsort[i], dqsort[mem]) == 0 + && texcmp(subAptr[1][i], subAptr[1][mem], dqsort[i], dqsort[mem]) == 0 + && texcmp(subAptr[2][i], subAptr[2][mem], dqsort[i], dqsort[mem]) == 0 + && texcmp(subAptr[3][i], subAptr[3][mem], dqsort[i], dqsort[mem]) != 0 + ) + { + printf("%%%%\n%%%%> Warning: SAME short-title used for ...li and ...qu:\n"); + printK(i); + printf("%%%% See %s in %s and %s in %s.\n", subAptr[3][i], subRptr[LINECOL][i], subAptr[3][mem], subRptr[LINECOL][mem]); + } + else break; + + ++i; + } +} + + +int double_k(int nlines, int deepsort) +{ + int i, ret = 0, mem = 0; + char *TheadA = subAptr[0][0]; + char *TheadB = subAptr[1][0]; + char *TheadC = subAptr[2][0]; + char *TheadD = subAptr[3][0]; + int Thint = dqsort[0]; + + + i = 0; while (i < nlines) + { + if ( findFEmale(subAptr[0][i]) != 0 + || findFEmale(subAptr[1][i]) != 0 + || findFEmale(subAptr[2][i]) != 0 + ) + { + printf("%%%%\n%%%%> Warning: %s or %s in short-%s-title %s:\n", FEMALE, MALE, subAptr[3][i], subRptr[LINECOL][i]); + printK(i); + if (isvintroduced(i) == VENTRY) + printf("%%%% ... That k-entry was generated automatically from a v-entry.\n"); + } + ++i; + } + + i = 0; while (i < nlines) + { + if (leval[i] == REJECTLINE) + { + ++ret; /* Anzahl bereits auskommentierter Zeilen */ + } + ++i; + } + + ret = checkifisfullcited(0, nlines, ret); + checkmanipulationk(0); + + i = 1; while (i < nlines) + { + if ( leval[i-1] != REJECTLINE + && ( + texcmp(subAptr[0][i], TheadA, dqsort[i], Thint) != 0 + || texcmp(subAptr[1][i], TheadB, dqsort[i], Thint) != 0 + || texcmp(subAptr[2][i], TheadC, dqsort[i], Thint) != 0 + || texcmp(subAptr[3][i], TheadD, dqsort[i], Thint) != 0 + ) + ) + { + TheadA = subAptr[0][i]; + TheadB = subAptr[1][i]; + TheadC = subAptr[2][i]; + TheadD = subAptr[3][i]; + Thint = dqsort[i]; + ret = checkifisfullcited(i, nlines, ret); + checkshortmismatch(i, nlines, mem); + mem = i; + checkSTUFFblock("vkc-seps after", i, nlines, deepsort, deepsort); + } + + checkmanipulationk(i); + + ++i; + } + + return ret; +} + + +int doubleventries(int nlines, int deepsort) +{ + int ret = 0, i = 1, alast = -1, ainfos = 0, aget = 0, mem = -1; + + /* geht davon aus, dass count_rejected nur REJECTLINE behandelt */ + /* und doubleauthor commentANDignlines unveraendert laesst! */ + + while (i < nlines) + { + if ( texcmp(subAptr[0][i], subAptr[0][i-1], dqsort[i], dqsort[i-1]) == 0 + && texcmp(subAptr[1][i], subAptr[1][i-1], dqsort[i], dqsort[i-1]) == 0 + && texcmp(subAptr[2][i], subAptr[2][i-1], dqsort[i], dqsort[i-1]) == 0 + && texcmp(subAptr[3][i], subAptr[3][i-1], dqsort[i], dqsort[i-1]) == 0 + ) + { + if (mem < 0) mem = i-1; + + if (alast < i-1) + { + if (ainfos < MAXINFO) + { + printf("%%%%\n%%%%> Info: Identical full-titles %s, %s:\n", subRptr[LINECOL][i-1], subRptr[LINECOL][i]); + printV(i); + ainfos+=2; + } + aget +=2; + } + else + { + if (ainfos < MAXINFO) + { + printf("%%%%> ... and the same entry again from %s.\n", subRptr[LINECOL][i]); + ainfos+=1; + } + aget +=1; + } + alast = i; + + + if ( leval[i] != REJECTLINE + && leval[i-1] != REJECTLINE + ) + { + leval[i] = DOUBLELINE; + ++ret; + + if (mem == i-1) checkSTUFFblock("v-seps after", mem, nlines, deepsort, deepsort); + } + } + else mem = -1; + + ++i; + } + + if (ainfos > 1) + printf("%%%%\n%%%%> This have been the first %d (of %d) identical full-titles.\n", ainfos, aget); + + return ret; +} + + +int doubleauthor(const char *entry, int nlines) +{ + int i, num = 0, len = strlen(entry), killpos, hint, Adq; + char a[MAXLEN], *p, xx[1], *AAp, *ABp, *ACp; + + strcpy(a, entry); + + i = 0; while (i < nlines) + { + if (findFEmale(subAptr[0][i]) != 0) + { printf("%%%%\n%%%%> Warning: %s or %s in lastname %s:\n", FEMALE, MALE, subRptr[LINECOL][i]); + printV(i); + } + if (findFEmale(subAptr[2][i]) != 0) + { printf("%%%%\n%%%%> Warning: %s or %s in OptArg %s:\n", FEMALE, MALE, subRptr[LINECOL][i]); + printV(i); + } + ++i; + } + + while(--nlines > 0) + { + if (*subAptr[0][nlines] == '\0' && *subAptr[1][nlines] == '\0') continue; + if (leval[nlines] == REJECTLINE) continue; + + hint = nlines-1; + while(hint >= 0 && leval[hint] == REJECTLINE) --hint; + if (hint < 0) break; + AAp = subAptr[0][hint]; + ABp = subAptr[1][hint]; + Adq = dqsort[hint]; + ACp = subAptr[2][hint]; + + if ( authorcmp(subAptr[0][nlines], AAp, dqsort[nlines], Adq) == 0 + && authorcmp(subAptr[1][nlines], ABp, dqsort[nlines], Adq) == 0 + ) + { + i = len; p = lineptr[nlines] + len; + + while (*p == ' ') { a[i++] = ' '; ++p; } + a[i++] = '{'; a[i] = '\0'; + p += nextbracket(p, '{', '}'); + killpos = i + 1; + strcat(a, IKILLNAME); i = i + strlen(IKILLNAME); + a[i++] = '}'; + + while (*p == ' ') { a[i++] = ' '; ++p; } + a[i++] = '{'; + p += nextbracket(p, '{', '}'); + a[i++] = '}'; + + while (*p == ' ') { a[i++] = ' '; ++p; } + a[i++] = '{'; + p += nextbracket(p, '{', '}'); + + if (findFEmale(ABp) == 0 && findFEmale(subAptr[1][nlines]) == 1) + { printf("%%%%\n%%%%> Warning: No %s or %s in firstname %s:\n", FEMALE, MALE, subRptr[LINECOL][hint]); + printV(hint); + } + + xx[0] = '0'; + i = subdoubleauthors(0, 0, a, i, i, ACp, subAptr[2][nlines], hint, nlines, findFEmale(ABp), xx); + if (i < 0) + { i = -i; a[killpos] = PLURALCHAR; + a[i++] = '}'; + if (xx[0] != '0') i = insertfalse(p, a, i); + else while (*p != '\0' && i < MAXLEN) a[i++] = *p++; + } + else + { a[i++] = '}'; + while (*p != '\0' && i < MAXLEN) a[i++] = *p++; + } + + + if (i < MAXLEN) + { ++num; + myfree(lineptr[nlines]); + lineptr[nlines] = strnmalloc(a, i+1); + } + else printf("%%%%\n%%%%> Error: Can\'t replace {%s}{%s} by %s (too long)\n", subAptr[0][nlines], subAptr[1][nlines], IKILLNAME); + } + } + return num; +} + + +void pauthorbrackwarn(int nline, const char *head) +{ + printf("%%%%\n%%%%> Warning outfile entry %d (in arg 3): Missing brackets as %s{..}{..}\n", nline+1, head); +} + + +const char *authortable[][2] = { + { "\\vauthor\t", "\\vauthor" }, + { "\\midvauthor\t", "\\midvauthor" }, + {NULL, NULL}}; +#define NAUTHOR 2 + + +int findauthor(const char *s) +{ + int r = 0; + + while(*s != '\0') + { + if (*s == '\\') + { + if (*(s+1) == '\\') + { + ++s; ++r; + } + else if (texlistnum(s, NAUTHOR, authortable) > -1) break; + } + ++s; ++r; + } + + if (*s == '\0') r = -1; + + return r; +} + + +int subdoubleauthors(int found, int addtxt, char a[], int remi, int i, const char *q, const char *p, int qline, int pline, int fe, char xx[]) +{ + int ql = 0, pl, len, haveto, havedone = 0, ntxt = 0, nn, j; + char qbuf[MAXLEN] = "", pbuf[MAXLEN] = ""; + const char *pmem, *qin = q, *pin = p; + const char *head; + + while(*q != '\0') + { + haveto = 0; + if ((j=texlistnum(q, NAUTHOR, authortable)) > -1) + { + head = authortable[j][1]; + haveto = 1; + } + else if (*q != ' ') ntxt = 1; + + if (haveto == 1) + { + q += llstrlen(authortable[j][0]); + while(*q == ' ') ++q; + if (*q == '{' && (ql = nextbracket(q, '{', '}')) > 1) + { + strncpy(qbuf, q, ql); + q += ql; + while(*q == ' ') ++q; + ql = ql + (len=nextbracket(q, '{', '}')); + if (len > 1) + { + strncat(qbuf, q, len); + q += len; + } + } + break; + } + else + if (*q == '\\' && *(q+1) == '\\') + { + ntxt = 1; + q++; + } + + q++; + } + + + while(*p != '\0' && i < MAXLEN-1) + { + haveto = 0; + if ((j=texlistnum(p, NAUTHOR, authortable)) > -1) + { + head = authortable[j][1]; + haveto = 1; + } + else if (*p != ' ') ntxt = 1; + + if (haveto == 1) + { + pmem = p; + p += llstrlen(authortable[j][0]); + while(*p == ' ') ++p; + if (*p == '{' && (pl = nextbracket(p, '{', '}')) > 1) + { + strncpy(pbuf, p, pl); + p += pl; + while(*p == ' ') ++p; + pl = pl + (len=nextbracket(p, '{', '}')); + if (len > 1) + { strncat(pbuf, p, len); + p += len; + if ( authorcmp(qbuf, pbuf, dqsort[qline], dqsort[pline]) == 0 + && strcmp(qbuf, "{}{}") != 0 + && strcmp(qbuf, "{ }{ }") != 0 + && i + strlen(head) + 4 + strlen(NKILLNAME) + 1 < MAXLEN + ) + { + a[i] = '\0'; + strcat(a, head); i += strlen(head); + strcat(a, " {}{"); i += 4; + strcat(a, NKILLNAME); i += strlen(NKILLNAME); + strcat(a, "}"); i += 1; + havedone = 1; + } + else + { p = pmem; + } + } + else + { p = pmem; pauthorbrackwarn(pline, head); + } + break; + } + else + { p = pmem; pauthorbrackwarn(pline, head); + } + } + else + if (*p == '\\' && *(p+1) == '\\') + { + ntxt = 1; + a[i++] = *p++; + } + + a[i++] = *p++; + } + + + if (havedone == 0) + { + if (found > 0 && addtxt == 0 && fe == 1 && findauthor(qin) == -1) + { nn = 1; i = remi; + p = pin; + while (*p == ' ') ++p; + if (ntxt == 1) xx[0] = '1'; + } else nn = 0; + + while (*p != '\0' && i < MAXLEN) a[i++] = *p++; + if (nn == 1) i = -i; + } + else + { if (ntxt > 0) addtxt = ntxt; + i = subdoubleauthors(++found, addtxt, a, remi, i, q, p, qline, pline, fe, xx); + } + + return i; +} + + +/*--------------------------------------------------------------------------*/ + + +int readlines(int maxlines, int nlines, const char *head) +{ + int len, headlen = strlen(head); + char *p, linestr[MAXLEN]; + + while ((len = ignFRONTSPACESgetline(linestr, MAXLEN)) > 0) + { + if ( strncmp(linestr, head, headlen) == 0 + && isLaTeXcmdletter(*(linestr+headlen)) == 0 + ) + { + if ( nlines >= maxlines + || (p = (char *) malloc(len)) == NULL + ) return -1; + else + { linestr[len-1] = '\0'; + strcpy(p, linestr); + lineptr[nlines++] = p; + } + } + } + return nlines; +} + + +/*--------------------------------------------------------------------------*/ + + /* Kehrt mit -argc+1 zur"uck, wenn Option da ist. */ + +int single_option(int argc, char *argv[], char a[], char b[]) +{ + + int l = 1, c; + int _found = 0; + + while (l < argc) + { + if (strcmp(argv[l], a) == 0 || strcmp(argv[l], b) == 0) + { _found = 1; + /* myfree(argv[l]); */ + --argc; + c = l; + while (c < argc) + { argv[c] = argv[c+1]; + ++c; + } + --l; + } + ++l; + } + if (_found == 1) return -argc; + else return argc; +} + + +/*--------------------------------------------------------------------------*/ + + /* Erkennt unbekannte Optionen. */ + +int surp_option(int argc, char *argv[]) +{ + int l = 1, c; + char a[2]; + + while (l < argc) + { + strncpy(a, argv[l], 1); + if (a[0] == '-') + { printf("%%%%\n%%%%> Error: Get unknown option \"%s\"!\n", argv[l]); + /* myfree(argv[l]); */ + --argc; + c = l; + while (c < argc) + { argv[c] = argv[c+1]; + ++c; + } + --l; + } + ++l; + } + return argc; +} + + +/*--------------------------------------------------------------------------*/ + + +char *makename(const char *prefix, const char *suffix) +{ + char fname[MAXFILENAMLEN]; + strncpy(fname, prefix, MAXFILENAMLEN-1); + strncat(fname, suffix, MAXFILENAMLEN-strlen(prefix)-1); + return strnmalloc(fname, MAXFILENAMLEN); +} + + +int dofile(int filenum, char *filenam, int nlines, const char *entry, const char *cmdA, const char *cmdB, const char *cmdC, const char *cmdD, int deep, int deepsort, int ventry) +{ + int alllines = nlines; + + infile = fopen(filenam, "r"); + + if (infile != NULL) + { + printf("%%%%> Search *\"%s\"* in file \"%s\" ...\n", entry, filenam); + + if ((alllines = readlines(MAXLINES, nlines, entry)) >= 0) + { + if (alllines-nlines > 0 && MAXLINES > 0) + { + printf("%%%% ^^^^^^^^^^^ ... get %d line(s)", alllines-nlines); + if (alllines*100/MAXLINES > 0) + printf(" [reach %d%% of capacity]", alllines*100/MAXLINES); + printf(".\n"); + } + killcmdarg(nlines, alllines, cmdA, LOESCHEN); /* vor QQsort */ + killcmdarg(nlines, alllines, cmdB, LOESCHEN); /* vor QQsort */ + killcmdarg(nlines, alllines, cmdC, ENTKERNEN); /* vor QQsort */ + killcmdarg(nlines, alllines, cmdD, ENTKERNEN); /* vor QQsort */ + getbrackets(nlines, alllines, entry, deep, filenum); + dopgfntnumberweight(nlines, alllines); + dodqdeepsort(nlines, alllines, deepsort); + vorbereiten(nlines, alllines, deepsort, ventry); + } + else printf("%%%%\n%%%%> Error: More than %d input entries.\n", MAXLINES); /* exit(1) bei dofile */ + } + else + { printf("%%%%\n%%%%> Error: No file \"%s\".\n", filenam); + openfailed(filenam); + } + + if (infile != NULL) fclose(infile); + + return alllines; +} + + +char *switchtodospath(char s[]) +{ + int i = 0; + + while (s[i] != '\0') + { + if (s[i] == '/') s[i] = '\\'; + ++i; + } + + return s; +} + + +int getfilenames(int nlines, int usedospath) +{ + int i = 0, j = 0, len; + char *p; + + while (i < nlines) + { + p = setptrtofirstbracket(lineptr[i]); + if (*p == '{' && (len=nextbracket(p, '{', '}')) > 2) + { filelist[j] = strnmalloc(p+1, len-1); + p += len; + if (usedospath == 1) + filelist[j] = switchtodospath(filelist[j]); + ignoreadditionaltext(p, "\\@input", filelist[j]); + ++j; + } + else printf("%%%%\n%%%%> Error after \\@input-cmd %d: Empty, or not matching brackets.\n", i+1); + myfree(lineptr[i]); + ++i; + } + if (i != j && i != 0) printf("%%%% %d input file(s) remain(s).\n", j); + return j; +} + + +int userusesdq(int deepsort, int linec) +{ + int i = 0; + char *p; + + while (i < deepsort) + { + p = subAptr[i++][linec]; + while (*p != '\0') + { + if (*p == '\"') return 1; + if (*p == '\\' && *(p+1) != '\0') ++p; + ++p; + } + } + + return 0; +} + + +void freeall(int nlines, int deep, int deepsort) +{ + int linec = 0, i; + + if (deepsort > deep) printf("%%%%\n%%%%> INTERNAL ERROR: deepsort > deep\n"); + + while(linec < nlines) + { myfree(lineptr[linec]); + i = 0; while (i < deep) myfree(subAptr[i++][linec]); + i = 0; while (i < deepsort) myfree(subBptr[i++][linec]); + while (i < deep ) if (subBptr[i++][linec] != mydefault) printf("%%%%\n%%%%> INTERNAL ERROR: FREEALL\n"); + i = 0; while (i < deepsort) myfree(subCptr[i++][linec]); + while (i < deep ) if (subCptr[i++][linec] != mydefault) printf("%%%%\n%%%%> INTERNAL ERROR: FREEALL\n"); + i = 0; while (i < BAALLRCOLS) myfree(subRptr[i++][linec]); + ++linec; + } +} + + +void prepareoutput(const char *entry, const char *suffix, int deep, int deepsort, int filec, char *argv[], int argc, int kill, const char *cmdA, const char *cmdB, const char *cmdC, const char *cmdD, int ventry, int printsort) +{ + int nlines = 0, i = 0, extralines = 0, commentANDignlines = 0; + int filenum = -1; + char *outname = mydefault; + + if (argc == 2) outname = makename(argv[1], suffix); + if (argc > 2) outname = makename(argv[2], suffix); + + + while (i < filec) + { + if (filec > 0) filenum = i+1; + if ((nlines = dofile(filenum, filelist[i++], nlines, entry, cmdA, cmdB, cmdC, cmdD, deep, deepsort, ventry)) < 0) + { + announceexit("get a too big list of entries"); + exit(1); + } + } + + if (MAXLINES > 0 && nlines*100/MAXLINES > 90) + printf("%%%% *** WARNING: Have capacity for only %d further entries! ***\n%%%%\n", MAXLINES-nlines); + + + if (nlines > 0) + { + if (nlines > 1) printf("%%%% Sort %d lines. Wait.\n", nlines); + QQsort(0, nlines-1, deep, deepsort); + + + if (kill == DOKILLAUTHORS && nlines > 1) + { printf("%%%%> -k: Search multiply used authors ...\n"); + printf("%%%% -k: Authors in %d line(s) IDEMized [identical full-titles included].\n", doubleauthor(entry, nlines)); + commentANDignlines = count_rejected(nlines); + } + else + if (kill == DOKILLABBREVS && nlines > 0) + { printf("%%%% Search multiply used or empty abbreviations ...\n"); + commentANDignlines = double_or_empty_abbreviation(nlines, deepsort, deep); + } + else + if (kill == DOKILLREGISTS && nlines > 0) + { printf("%%%% Search multiply used or empty entries ...\n"); + if (*suffix == '.') + commentANDignlines = double_or_empty_arqperregisters(nlines, ventry, suffix+1, deepsort, deep); + else printf("%%%%\n%%%%> INTERNAL ERROR with \\fill...\n"); + } + else + if (kill == DOKILLK && nlines > 0) + { printf("%%%% Search multiply used short-titles ...\n"); + commentANDignlines = double_k(nlines, deepsort); + } + else commentANDignlines = count_rejected(nlines); + + + if (kill == DOKILLAUTHORS || kill == NOKILLAUTHORS) + { + if (deep == VCOLS && ventry == IS_V) + commentANDignlines = commentANDignlines + doubleventries(nlines, deepsort); + else printf("%%%%\n%%%%> INTERNAL ERROR with doubleventries\n"); + } + + + if ((outfile = fopen(outname, "w")) == NULL) + { + printf("%%%%\n%%%%> Error: Can\'t write to file \"%s\".\n", outname); + openfailed(outname); + } + else + { printf("%%%%> Write %d item(s) to file \"%s\".\n", nlines-commentANDignlines, outname); + if ((extralines = writelines(nlines, DQCOL, LANCOL, commentANDignlines, deepsort, filec, kill, printsort)) > 0) + printf("%%%% (Have added %d line(s) containing commands for LaTeX.)\n", extralines); + } + + if (outfile != NULL) { fclose(outfile); fflush(outfile); } + freeall(nlines, deep, deepsort); + + printf("%%%% ======================================\n"); + } + else + { + printf("%%%% No entries. "); + if ((outfile = fopen(outname, "r")) != NULL) + { + fclose(outfile); fflush(outfile); + if ((outfile = fopen(outname, "w")) != NULL) + { + fclose(outfile); fflush(outfile); + printf("*DELETE* old"); + remove(outname); + } + else printf("CAN\'T delete"); + } + else printf("Do NOT create"); + printf(" file \"%s\".\n", outname); + } + + myfree(outname); +} + + +char *getmyname(char *p, int max) +{ + char *m = p; + int pos = strlen(p); + + if (pos > max) + while(*p != '\0') + { + if (*p == '/' || *p == '\\') + { + m = p+1; + if (pos <= max) break; + } + ++p; --pos; + } + return m; +} + + +int main(int argc, char *argv[]) +{ + int nlines=0; + int i; + int kill = NOKILLAUTHORS; + int usedospath = 0; + int filec; + int get_g = 0; + int printsort = 0; + char *inname = mydefault; + + + printf("\n%%%%> This is BIBSORT 2.0 (for help: %s -\?)\n", getmyname(argv[0], 37)); + fprintf(stderr, "%%%% BIBSORT is part of BibArts 2.0 (C) Timo Baumann 2015.\n"); + + + argc = single_option(argc, argv, "-c", "-C"); + if (argc < 0) + { argc = -argc; + notext = 1; + } + + argc = single_option(argc, argv, "-S1", "-s1"); + if (argc < 0) + { argc = -argc; + EinlROEMseiten = 1; + } + + argc = single_option(argc, argv, "-F1", "-f1"); + if (argc < 0) + { argc = -argc; + ALPHmpfootnotes = 1; + } + + argc = single_option(argc, argv, "-i=j", "-I=J"); + if (argc < 0) + { argc = -argc; + igleichj = 1; + } + + argc = single_option(argc, argv, "-D", "-d"); + if (argc < 0) + { argc = -argc; + usedospath = 1; + } + + argc = single_option(argc, argv, "-K", "-k"); + if (argc < 0) + { argc = -argc; + kill = DOKILLAUTHORS; + } + + argc = single_option(argc, argv, "-L", "-l"); + if (argc < 0) + { argc = -argc; + ignorespaces = 1; + } + + argc = single_option(argc, argv, "-P", "-p"); + if (argc < 0) + { argc = -argc; + registpoints = 1; + } + + argc = single_option(argc, argv, "-T1", "-t1"); + if (argc < 0) + { argc = -argc; + encode = 1; + } + + argc = single_option(argc, argv, "-X", "-x"); + if (argc < 0) + { argc = -argc; + nogsty = 1; + } + + argc = single_option(argc, argv, "-M", "-m"); + if (argc < 0) + { argc = -argc; + printsort = 1; + } + + argc = single_option(argc, argv, "-G1", "-g1"); + if (argc < 0) + { argc = -argc; + ++get_g; + german = 1; + } + + argc = single_option(argc, argv, "-G2", "-g2"); + if (argc < 0) + { argc = -argc; + if (get_g == 0) german = 2; + ++get_g; + } + + if (get_g > 1) + { + announceexit("get opt -g1 *and* -g2"); + exit(1); + } + + argc = single_option(argc, argv, "-\?", "-h"); + if (argc < 0) + { + argc = -argc; + info(); + announceexit("get your question for help"); + exit(1); + } + + argc = single_option(argc, argv, "-\?\?", "-hh"); + if (argc < 0) + { + argc = -argc; + moreinfo(); + announceexit("get your question for more help"); + exit(1); + } + + argc = single_option(argc, argv, "-R", "-r"); + if (argc < 0) + { + argc = -argc; + licenseinfo(); + announceexit("get your question for license informations"); + exit(1); + } + + if (argc < 2) + { if (argc == 1) info(); + announceexit("get no <FileNamePrefix> of an auxiliary file"); + exit(1); + } + + if (argc != surp_option(argc, argv)) + { + announceexit("get an unknown -[option]"); + exit(1); + } + + + if (argc == 2 || argc == 3) + { inname = makename(argv[1], ".aux"); + infile = fopen(inname, "r"); + } + else + { printf("%%%%\n%%%%> Error: Too many arguments.\n"); + announceexit("get too many file names in command line"); + exit(1); + } + + if (infile == NULL) + { + printf("%%%%\n%%%%> Error: No file \"%s\".\n", inname); + openfailed(inname); + announceexit("did not get the name of an existing file"); + exit(0); /* damit TeXnicCenter danach trotzdem LaTeX startet */ + } + + if ((nlines = readlines(MAXFILES, 0, "\\@input")) == 0) + { + printf("%%%%> No \\@input cmds in \"%s\":\n", inname); + filelist[0] = inname; + filec = 1; + } + else + if (nlines < 0) + { + printf("%%%%> Error: To many \\@input cmds in \"%s\".\n", inname); + announceexit("can not handle such a big list of files"); + exit(1); + } + else + { + printf("%%%%> Try to work list of %d \\@input files in \"%s\":\n", nlines, inname); + nlines = getfilenames(nlines, usedospath); + if (nlines < 1) + { + announceexit("get a too big input file"); + exit(1); + } + filec = nlines; + } + + if (infile != NULL) fclose(infile); + + printfilelist( stdout, filec, 0, kill, "%% ", ""); + + prepareoutput("%\\literentry", ".vli", VCOLS, VCOLS, filec, argv, argc, kill, "\\onlykurz", "\\onlyhere", "\\onlyvoll", "\\onlyout", IS_V, printsort); + prepareoutput("%\\quellentry", ".vqu", VCOLS, VCOLS, filec, argv, argc, kill, "\\onlykurz", "\\onlyhere", "\\onlyvoll", "\\onlyout", IS_V, printsort); + prepareoutput("%\\vkcitentry", ".vkc", KCOLS, KCOLS, filec, argv, argc, DOKILLK, "\\onlyvoll", "\\onlyhere", "\\onlykurz", "\\onlyout", NO_V, printsort); + + prepareoutput("%\\abkrzentry", ".abk", ACOLS, ACOLSSORT, filec, argv, argc, DOKILLABBREVS, "", "\\onlyhere", "", "\\onlyout", NO_V, printsort); + prepareoutput("%\\perioentry", ".per", PCOLS, PCOLSSORT, filec, argv, argc, DOKILLREGISTS, "", "\\onlyhere", "", "\\onlyout", NO_V, printsort); + prepareoutput("%\\archqentry", ".arq", PCOLS, PCOLSSORT, filec, argv, argc, DOKILLREGISTS, "", "\\onlyhere", "", "\\onlyout", IS_Q, printsort); + + prepareoutput("%\\geogrentry", ".grr", PCOLS, PCOLSSORT, filec, argv, argc, DOKILLREGISTS, "", "\\onlyhere", "", "\\onlyout", NO_V, printsort); + prepareoutput("%\\persrentry", ".prr", PCOLS, PCOLSSORT, filec, argv, argc, DOKILLREGISTS, "", "\\onlyhere", "", "\\onlyout", NO_V, printsort); + prepareoutput("%\\subjrentry", ".srr", PCOLS, PCOLSSORT, filec, argv, argc, DOKILLREGISTS, "", "\\onlyhere", "", "\\onlyout", NO_V, printsort); + + if (upperascii < 0) + { + if (encode == 1) + { + printf("%%%%\n%%%%> -t1: Gave 8-bit character %d sorting weight \"%s\" ....\n", ((unsigned char)upperascii), getTONEenc(upperascii)); + fprintf(stderr, "%%%% Did NOT ignore upper ascii characters ({T1} and no {inputenc} assumed).\n"); + } + else + { + printf("%%%%\n%%%%> Info: Gave 8-bit character %d NO sorting weight. Use -t1\?\n", ((unsigned char)upperascii)); + fprintf(stderr, "%%%% Did ignore all upper ascii characters ({OT1} and no {inputenc} assumed).\n"); + } + } + else if (encode == 1) + printf("%%%%\n%%%%> -t1 is unnecessary: No upper ascii characters found.\n"); + + return 0; +} + + +/*--------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------*/ diff --git a/Master/texmf-dist/source/latex/bibarts/gbibsort.c b/Master/texmf-dist/source/latex/bibarts/gbibsort.c deleted file mode 100644 index b0de041d69c..00000000000 --- a/Master/texmf-dist/source/latex/bibarts/gbibsort.c +++ /dev/null @@ -1,623 +0,0 @@ -#include <stdio.h> -#include <string.h> - - -#define MAXLINES 10000 -#define MAXLEN 1024 - -#define LEVE_OPEN 1 - -#define INDEXNAME "\\indexentry" /* Zeilen mit diesem Kopf "ubergehen. */ -#define INDEXNAMELEN 11 /* L"ange von INDEXNAME. */ - /* F"ur solche Zeilen ist MakeIndex */ - /* zust"andig. */ - -#define KILLNAME "\\Ikillname{}" /* -K: Damit wird ARG1 und ARG2 einer */ - /* Zeile ersetzt, falls diese in der */ - /* vorausgehenden Zeile gleich sind. */ - -char *lineptr[MAXLINES]; -FILE *infile, *outfile; - - -/*--------------------------------------------------------------------------*/ - - - -void info(){ char p[]="%"; -printf(" %s%s +-----------------------------------------------------------------+\n", p, p); -printf(" %s%s | GBIBSORT sorts the lines of a file following german rules. |\n", p, p); -printf(" %s%s | GBIBSORT is part of BIBARTS, Version 1.3. |\n", p, p); -printf(" %s%s | (c) Timo Baumann <28.Mar.1998> |\n", p, p); -printf(" %s%s | |\n", p, p); -printf(" %s%s | BIBARTS.STY ist eine LaTeX-Dokumenten-Stil-Option; siehe dazu |\n", p, p); -printf(" %s%s | BIBARTS.TEX. (LaTeX erzeugt mit BIBARTS.STY ein [File].BAR.) |\n", p, p); -printf(" %s%s | |\n", p, p); -printf(" %s%s | GBIBSORT sortiert zeilenweise: Es liest das angegebene File und |\n", p, p); -printf(" %s%s | sortiert Zeichen vor Buchstaben (a vor A ...), dann Zahlen. |\n", p, p); -printf(" %s%s | ABER: Die LaTeX-Sonderzeichen \\\"a und \"a werden als ae usw. |\n", p, p); -printf(" %s%s | sortiert und \'\\\', \'{\', \'}\', \'^\', \'`\', \'-\', \' \' nicht gewichtet. |\n", p, p); -printf(" %s%s | {RELEVANT}@ wird wie RELEVANT sortiert, aber nicht ausgegeben. |\n", p, p); -printf(" %s%s | Option -K ersetzt mehrfach genannte Autoren ab dem 2. Mal. |\n", p, p); -printf(" %s%s | |\n", p, p); -printf(" %s%s | BENUTZUNG: gbibsort [File].BAR [[Schreib-File].PHY] |\n", p, p); -printf(" %s%s | Autor Killing: gbibsort [File].BAR [[Schreib-File].PHY] -k |\n", p, p); -printf(" %s%s | |\n", p, p); -printf(" %s%s | Falls GBIB209.BAT oder GBIB2E.BAT fehlen --- sie enthalten: |\n", p, p); -printf(" %s%s | IF EXIST %s1.bar GBIBSORT %s1.bar %s1.phy |\n", p, p, p, p, p); -printf(" %s%s | IF EXIST %s1.bar MAKEINDX %s1.bar |\n", p, p, p, p); -printf(" %s%s | IF EXIST %s1.tex CALL [LaTeX] %s1 |\n", p, p, p, p); -printf(" %s%s +-----------------------------------------------------------------+\n", p, p); - } - - -/*--------------------------------------------------------------------------*/ - - -/* CopyLeft: a) Verantwortung - b) Benutzung - c) Distribuntion */ - -/* a) Keinerlei Haftung ! */ -/* b) Keine Funktions-Garantie ! */ -/* Der Anwender erkennt die Punkte a) - c) an. */ -/* c) GBIBSORT.C und damit erstellte ausf"uhrbare */ -/* Dateien d"urfen nur weitergegeben werden, wenn */ -/* 1. daf"ur keine Kosten erhoben werden, */ -/* die "uber diejenigen f"ur ihren */ -/* Transfer hinausgehen ! */ -/* 2. vorgenommene "Anderungen */ -/* kommentiert sind ! */ - - -/*--------------------------------------------------------------------------*/ - - /* Neugewichtung der Zeichen 48 - 126 des ASCII-Codes. */ - /* 1-47 [und ggf. 127-254] bleiben gleich! -> default. */ - /* 127-254 kommen in FILE.bar aber auch niemals vor! */ - - /* Im Deutschen werden Zeichen vor Buchstaben und */ - /* Buchstaben vor Zahlen einsortiert. */ - /* Im Konfliktfall stehen Kleinbuchstaben vor grossen. */ - - /* Da der ASCII-Code eine andere Reihenfolge hat, */ - /* muss den Zeichen innerhalb des angegebenen Bereichs */ - /* eine neue INTEGER-Zahl zugeordnet werden. */ - -int bewerten(char zz) -{ - switch(zz) - { - case ':': return 48; /* ASCII 58 \ */ - case ';': return 49; /* ASCII 59 | */ - case '<': return 50; /* ASCII 60 | */ - case '=': return 51; /* ASCII 61 | */ - case '>': return 52; /* ASCII 62 | */ - case '?': return 53; /* ASCII 63 | */ - case '@': return 54; /* ASCII 64 | */ - /* | */ - case '[': return 55; /* ASCII 91 \ */ - case '\\':return 56; /* ASCII 92 > Zeichen vor Buchstaben */ - case ']': return 57; /* ASCII 93 / */ - case '^': return 58; /* ASCII 94 | */ - case '_': return 59; /* ASCII 95 | */ - case '`': return 60; /* ASCII 96 | */ - /* | */ - case '{': return 61; /* ASCII 123 | */ - case '|': return 62; /* ASCII 124 | */ - case '}': return 63; /* ASCII 125 | */ - case '~': return 64; /* ASCII 126 / */ - - case 'a': return 65; /* ASCII 97 \ */ - case 'A': return 66; /* ASCII 65 | */ - case 'b': return 67; /* ASCII 98 | */ - case 'B': return 68; /* ASCII 66 | */ - case 'c': return 69; /* ASCII 99 | */ - case 'C': return 70; /* ASCII 67 | */ - case 'd': return 71; /* ASCII 100 | */ - case 'D': return 72; /* ASCII 68 | */ - case 'e': return 73; /* ASCII 101 | */ - case 'E': return 74; /* ASCII 69 | */ - case 'f': return 75; /* ASCII 102 | */ - case 'F': return 76; /* ASCII 70 | */ - case 'g': return 77; /* ASCII 103 | */ - case 'G': return 78; /* ASCII 71 | */ - case 'h': return 79; /* ASCII 104 | */ - case 'H': return 80; /* ASCII 72 | */ - case 'i': return 81; /* ASCII 105 | */ - case 'I': return 82; /* ASCII 73 | */ - case 'j': return 83; /* ASCII 106 | */ - case 'J': return 84; /* ASCII 74 | */ - case 'k': return 85; /* ASCII 107 | */ - case 'K': return 86; /* ASCII 75 | */ - case 'l': return 87; /* ASCII 108 | */ - case 'L': return 88; /* ASCII 76 | */ - case 'm': return 89; /* ASCII 109 | */ - case 'M': return 90; /* ASCII 77 | */ - case 'n': return 91; /* ASCII 110 | */ - case 'N': return 92; /* ASCII 78 | */ - case 'o': return 93; /* ASCII 111 | */ - case 'O': return 94; /* ASCII 79 | */ - case 'p': return 95; /* ASCII 112 \ */ - case 'P': return 96; /* ASCII 80 > Buchstaben: a, A, ... */ - case 'q': return 97; /* ASCII 113 / */ - case 'Q': return 98; /* ASCII 81 | */ - case 'r': return 99; /* ASCII 114 | */ - case 'R': return 100; /* ASCII 82 | */ - case 's': return 101; /* ASCII 115 | */ - case 'S': return 102; /* ASCII 83 | */ - case 't': return 103; /* ASCII 116 | */ - case 'T': return 104; /* ASCII 84 | */ - case 'u': return 105; /* ASCII 117 | */ - case 'U': return 106; /* ASCII 85 | */ - case 'v': return 107; /* ASCII 118 | */ - case 'V': return 108; /* ASCII 86 | */ - case 'w': return 109; /* ASCII 119 | */ - case 'W': return 110; /* ASCII 87 | */ - case 'x': return 111; /* ASCII 120 | */ - case 'X': return 112; /* ASCII 88 | */ - case 'y': return 113; /* ASCII 121 | */ - case 'Y': return 114; /* ASCII 89 | */ - case 'z': return 115; /* ASCII 122 | */ - case 'Z': return 116; /* ASCII 90 / */ - - case '0': return 117; /* ASCII 48 \ */ - case '1': return 118; /* ASCII 49 | */ - case '2': return 119; /* ASCII 50 | */ - case '3': return 120; /* ASCII 51 | */ - case '4': return 121; /* ASCII 52 \ */ - case '5': return 122; /* ASCII 53 > Zahlen */ - case '6': return 123; /* ASCII 54 / */ - case '7': return 124; /* ASCII 55 | */ - case '8': return 125; /* ASCII 56 | */ - case '9': return 126; /* ASCII 57 / */ - - default : return zz; - } -} - - -/*--------------------------------------------------------------------------*/ - - /* Dies ist die eigentliche Sortier-Funktion. */ - /* Sie zerteilt das Sortierproblem in viele triviale: */ - /* Wie sind z w e i Eintr"age zu sortieren? */ - -void QQsort(void *v[], int left, int right, int (*comp)(void *, void *)) -{ - int i, last; - void swap (void *v[], int, int); - if (left >= right) return; - swap(v, left, (left + right)/2); - last = left; - for (i = left + 1; i <= right; i++) - if ((*comp)(v[i], v[left]) < 0) - swap(v, ++last, i); - swap(v, left, last); - QQsort(v, left, last - 1, comp); - QQsort(v, last + 1, right, comp); -} - - -/*--------------------------------------------------------------------------*/ - - /* Wenn zwei Eintr"age in der falschen Reihenfolge */ - /* sortiert sind, werden die Zeiger, die auf sie */ - /* weisen, ausgetauscht. */ - -void swap(void *v[], int i, int j) -{ - void *temp; - temp = v[i]; - v[i] = v[j]; - v[j] = temp; -} - - -/*--------------------------------------------------------------------------*/ - - /* Hier werden Leerzeichen, Backslash, geschweifte */ - /* Klammern, Tilden und Minus-Zeichen gleich "uber- */ - /* gangen, um \"a und "a, \ss und \ss{}, a~b und a b, */ - /* Info und In\-fo gleich gewichtet zu bekommen. */ - /* \ss und "s werden als ss, "[x] und \"[x] als [x]e */ - /* sortiert, aber original ausgedruckt. */ - /* `[x], ^[x] und '[x] werden als [x] gewichtet. */ - - /* \newumlaut muss nicht beachtet werden, denn mit */ - /* dem GBIBARTS.STY-Makro \@sIcHerUnG konnte es unter- */ - /* dr"uckt werden, dass dies in [File].BAR erscheint. */ - - /* Da in [File].BAR die Umlaute und "s immer expan- */ - /* diert sind, muss auf die Ein-Zeichen-Umlaute, wie */ - /* sie im erweiterten ASCII-Code definiert sind, */ - /* keine R"ucksicht genommen werden. */ - -int vergleich(const void *s1,const void *s2) -{ - int a1=1, b1=1, a2=1, b2=1, a3=1, b3=1, a=1, b=1; - - while (a == b) - { - while (overjump(*((char *)s1)) > 0) s1 = (char *)s1 + 1; - while (overjump(*((char *)s2)) > 0) s2 = (char *)s2 + 1; - - a3 = a2; b3 = b2; - a2 = a1; b2 = b1; - a1 = bewerten(*((char *)s1)); b1 = bewerten(*((char *)s2)); - s1 = (char *)s1 + 1; s2 = (char *)s2 + 1; - - a = a2 ; b = b2 ; - - if ( /* Abpr"ufen, ob ein Um- */ - ( a2 == bewerten('\"') ) /* laut vorhanden ist */ - ) - { a = a1; } - - if ( - ( b2 == bewerten('\"') ) - ) - { b = b1; } - - if ( - ( a3 == bewerten('\"') ) - && ( a2 != bewerten('s') ) /* "s ist kein Umlaut */ - ) - { a = bewerten('e'); } /* "a als ae etc. */ - - if ( - ( b3 == bewerten('\"') ) - && ( b2 != bewerten('s') ) - ) - { b = bewerten('e'); } - - } - - if (a > b ) {return 1;} - else {return -1;} -} - - -/*--------------------------------------------------------------------------*/ - - -int getline(char s[], int lim) -{ - int c,i; - i=0; - while(--lim > 0 && (c=fgetc(infile)) != EOF && c != '\n') - s[i++] = c; - if (c == '\n') s[i++] = c; - s[i] = '\0'; - return i; -} - - -/*--------------------------------------------------------------------------*/ - - /* Definiert f"ur vergleich, welche Zeichen "uber- */ - /* gangen werden sollen in der Frage, ob zwei */ - /* Zeilen gleich sind. */ - -int overjump(int a) -{ - if ( a == ' ' /* Leerzeichen */ - || a == '\\' /* Backslash */ - || a == '{' /* { */ - || a == '}' /* } */ - || a == '~' /* Tilde */ - || a == '-' /* \- */ - || a == '\'' /* \' */ - || a == '`' /* \` */ - || a == '^' /* \^ */ - || a == '@' /* {...}@ */ - ) - return 1; - else return -1; -} - - -/*--------------------------------------------------------------------------*/ - - /* Definiert f"ur TeXvergleich, welche Zeichen */ - /* nicht gewichtet werden sollen in der Frage, ob */ - /* zwei Zeilen gleich sind. */ - -int vergljump(int a) -{ - if ( a == ' ' /* Leerzeichen */ - || a == '\\' /* Backslash */ - || a == '~' /* Tilde */ - || a == '-' /* \- */ - || a == '\'' /* \' */ - || a == '`' /* \` */ - || a == '^' /* \^ */ - || a == '@' /* {...}@ */ - ) - return 1; - else return -1; -} - - -/*--------------------------------------------------------------------------*/ - - /* {...}@ wird aus der Zeile gel"oscht. */ - -void killsort(char *lineptr[], int nlines) -{ - char a[MAXLEN], b[MAXLEN]; - int i, j, m; - - while(nlines-- > 0) - { strcpy(a, *lineptr); - i = 0; j = 0; m = 0; - while(a[i]!='\0') - { - if (a[i] == '{') m = j; - if (a[i] == '}' && a[i+1] == '@' && a[i+2] != '\0') - { j = m; ++i; ++i; } - b[j] = a[i]; - ++i; ++j; - } - b[j++] = '\0'; - free(*lineptr); - *lineptr = (char *)malloc(j*sizeof(char)); - strcpy(*lineptr++, b); - } -} - - -/*--------------------------------------------------------------------------*/ - - -void writelines(char *lineptr[], int nlines) -{ - while(nlines-- > 0) - fprintf(outfile,"%s\n", *lineptr++); -} - - -/*--------------------------------------------------------------------------*/ - - /* Hier wird f"ur doubleauthor bestimmt, ob Name */ - /* und Vorname zweier Zeilen gleich sind. */ - -int TeXvergleich(const void *s1,const void *s2) -{ int i = 0, j = 0, k = 0, l = 0; - - while(1) - { - while (vergljump(*((char *)s1)) > 0) ++s1; - while (vergljump(*((char *)s2)) > 0) ++s2; - - if (*(char *)s1 == '{') ++i; - else if (*(char *)s1 == '}') { --i; if (i==LEVE_OPEN) ++j; } - if (*(char *)s1 == '{') ++k; - else if (*(char *)s1 == '}') { --k; if (k==LEVE_OPEN) ++l; } - - if (*(char *)s1 == '\0' && *(char *)s2 == '\0') return 0; - else if (j == 2 && l == 2) return 2; - - if (*(char *)s1 == '\0') return 1; - else if (*(char *)s2 == '\0') return -1; - - if (*(char *)s1 == *(char *)s2) { ++s1; ++s2; } - else if (*(char *)s1 > *(char *)s2) return 1; - else if (*(char *)s1 < *(char *)s2) return -1; - - } -} - - -/*--------------------------------------------------------------------------*/ - - /* Autoren, die mehrfach vorkommen, werden einmal */ - /* genannt, und dann durch KILLNAME ersetzt. */ - -void doubleauthor(char *lineptr[], int nlines) -{ - int j, i, h; - char a[MAXLEN]; - - while(--nlines > 0) - { if (TeXvergleich(lineptr[nlines], lineptr[nlines-1]) == 2) - { - strcpy(a, lineptr[nlines]); - j = 0; h = 0; i = 0; - while(1) - { if(a[j]=='{') ++i; - else if(a[j]=='}') { --i; if (i==LEVE_OPEN) ++h; } - ++j; - if (h==2 || a[j]=='\0') break; - } - if (h==2) - { i = 0; - while(a[i]!='\0' && a[i]!='{') ++i; - a[i+1]='\0'; /* '{' soll bleiben! */ - strcat(a, KILLNAME); - i = i + strlen(KILLNAME); - while(a[j]!='\0') a[++i] = a[j++]; - a[++i] = '\0'; - free(lineptr[nlines]); - lineptr[nlines] = (char *)malloc((++i)*sizeof(char)); - strcpy(lineptr[nlines], a); - } - } - } -} - - -/*--------------------------------------------------------------------------*/ - - /* Zeilen, die mit INDEXNAME beginnen, werden */ - /* nicht aufgenommen. */ - -int readlines(char *Lineptr[], int maxlines) -{ - int len, nlines; - char *p, line[MAXLEN]; - nlines = 0; - while ((len = getline(line,MAXLEN)) > 0) - if (strncmp(line, INDEXNAME, INDEXNAMELEN)==0) continue; - else if (nlines >= maxlines || - (p = (char *)malloc(len*sizeof(char))) == NULL) - return -1; - else { - line[len-1] = '\0'; - strcpy(p, line); - Lineptr[nlines++] = p; - } - return nlines; -} - - -/*--------------------------------------------------------------------------*/ - - /* Kehrt mit -argc+1 zur"uck, wenn Option da ist. */ - -int single_option(int argc, char *argv[], char a[]) -{ - - int l = 1, c; - int _found = 0; - - while (l < argc) - { - if (strcmp(argv[l], a) == 0) - { _found = 1; - /* free(argv[l]); */ - --argc; - c = l; - while (c < argc) - { argv[c] = argv[c+1]; - ++c; - } - --l; - } - ++l; - } - if (_found == 1) return -argc; - else return argc; -} - - -/*--------------------------------------------------------------------------*/ - - /* Erkennt unbekannte Optionen. */ - -int surp_option(int argc, char *argv[]) -{ - - char p[]=" %% "; - int l = 1, c; - char a[2]; - - while (l < argc) - { - strncpy(a, argv[l], 1); - if (a[0] == '-') - { printf("\n%s *** BREAK: Get unknown option \"%s\"!\n", p, argv[l]); - /* free(argv[l]); */ - --argc; - c = l; - while (c < argc) - { argv[c] = argv[c+1]; - ++c; - } - --l; - } - ++l; - } - return argc; -} - - -/*--------------------------------------------------------------------------*/ - - -int main(int argc, char *argv[]) -{ - char p[]=" %% "; - int nlines=0; - int i; - int kill = 0; - - argc = single_option(argc, argv, "-K"); - if (argc < 0) - { argc = -argc; - kill = 1; - } - - argc = single_option(argc, argv, "-k"); - if (argc < 0) - { argc = -argc; - kill = 1; - } - - if (argc == 1) { - info(); - exit(1); - } - - if (argc != surp_option(argc, argv)) exit(1); - - if (argc == 2) - { - infile = fopen(argv[1],"r"); - outfile = stdout; - } - else if (argc == 3) - { - if (strcmp(argv[1], argv[2]) == 0) - { - printf("\n%s Quelle und Ziel d\"urfen nicht identisch sein.\n", p); - exit(1); - } - infile = fopen(argv[1],"r"); - outfile = fopen(argv[2],"w"); - } - else { - printf("\n%s Zu viele Argumente.\n", p); - exit(1); - } - - if (infile == NULL) - { - printf("\n%s \"%s\" kann nicht gelesen werden.\n", p, argv[1]); - exit(1); - } - if (outfile == NULL) - { - printf("\n%s Betriebsystem verhindert Ausgabe in \"%s\".\n", p, argv[2]); - printf("%s Gegebenenfalls Schutz gegen \"Uberschreiben entfernen.\n", p); - exit(1); - } - - - if ((nlines = readlines(lineptr, MAXLINES)) >= 0) - { - printf("\n%s GBIBSORT sortiert \"%s\" alphabetisch", p, argv[1]); - QQsort((void **) lineptr, 0, nlines-1, - (int (*)(void*,void*))(vergleich)); - killsort(lineptr, nlines); - if (kill == 1) - { printf("\n%s --- wobei mehrfach genannte Autoren bei wiederholter Nennung\n", p, KILLNAME); - printf("%s durch %s ersetzt werden", p, KILLNAME); - doubleauthor(lineptr, nlines); - } - printf(".\n"); - printf("%s Ausgabe ", p); - if (argc == 2) printf("auf die Standard-Ausgabe.\n"); - else printf("in \"%s\".\n", argv[2]); - writelines(lineptr, nlines); - return 0; - } - else - { - printf("Fehler: Datei zu gross.\n"); - return 1; - } - -} - - -/*--------------------------------------------------------------------------*/ -/*--------------------------------------------------------------------------*/ diff --git a/Master/texmf-dist/tex/latex/bibarts/bibarts.sty b/Master/texmf-dist/tex/latex/bibarts/bibarts.sty index 73a73322f0f..c465025b071 100644 --- a/Master/texmf-dist/tex/latex/bibarts/bibarts.sty +++ b/Master/texmf-dist/tex/latex/bibarts/bibarts.sty @@ -1,579 +1,3737 @@ -\message{ bibarts BIBLIOGRAPHY -- 1.3 -- <28.Mar.1998> } - -%% -%% ENGLISH ABSTRACT: -%% ================= +%% BibArts 2.0 assists you to write LaTeX texts in arts and humanities. +%% This file BIBARTS.STY, and BIBSORT.C/.EXE, are parts of BibArts 2.0. +%% Copyright (C) 2015 Timo Baumann bibarts[at]gmx.de (11-29-2015) %% -%% bibarts helps you to make a bibliography (literature, sources & index). -%% - bibarts switches from english to german, if \newumlaut is defined -%% (in german.sty, \newumlaut is defined). -%% - bibarts switches from LaTeX 2.09 to LaTeX 2e, if \LaTeX2e is defined -%% (see definition of \@footnotetext in bibarts.sty). -%% - If you are no DOS user, you have to compile gbibsort.c using your own -%% compiler, or, you have to use your own sorting program. If you do not -%% use gbibsort, you may not use commands \sort, \male, nor \female. -%% - bibarts.sty defines the following commands: -%% 1 \makebar: Prepares bibliography FILE.bar. -%% You have to perform the following steps: -%% 1.1 latex FILE.tex -%% 1.2 gbibsort FILE.bar FILE.phy -%% 1.3 makeind[e]x FILE.bar -%% 1.4 latex FILE.tex -%% 1.5 latex FILE.tex -%% FILE.bar contains three kinds of items: literature, sources, and -%% index. They are created by commands 2, 3, 4, 5, 9, 10 and 12. -%% 2 \vli{Donald}{Knuth}{The TeX-Book, Reading (Mass.) 1984} -%% - prints "Donald Knuth: The TeX-Book, Reading (Mass.) 1984". -%% - writes "Knuth, Donald: The TeX-Book, Reading (Mass.) 1984" -%% into list of literature. "Knuth" will be underlined. -%% 3 \vqu does the same, but writes into list of sources. -%% 4 \addtovli{a}{b}{c}: Writes "b, a: c" into list of literature. -%% 5 \addtovqu{a}{b}{c}: Writes "b, a: c" into list of sources. -%% 6 \printonlyvli{a}{b}{c}: Prints "a b: c". (2 <=> 4 + 6) -%% 7 \printonlyvqu{a}{b}{c}: Prints "a b: c". (3 <=> 5 + 7) -%% 8 \sort{A} in \vli's, \vqu's, \addtovli's or \addtovqu's arguments -%% will be sorted like if there is an A, but A will not be printed. -%% 9 \bib{HINT}: Prints HINT and writes HINT to index, indexing page -%% number and, if \bib is in a footnote, an exponent after the page -%% number will also show the number of this footnote. -%% 10 \addtobib{HINT} writes HINT to index. (Do not use \sort{A}, but A@) -%% 11 \printonlybib{HINT} prints HINT. (9 <=> 10 + 11) -%% 12 \kurz{SHORT} prints "(in the following SHORT)" and behaves like -%% \addtobib{SHORT}, too. If it is in \vli's, \vqu's, \addtovli's or -%% \addtovqu's arguments, it writes "[SHORT]" into the bibliography. -%% 13 \printvli: Prints list of literature (extracting FILE.phy). -%% 14 \printvqu: Prints list of sources (extracting FILE.phy). -%% 15 \printnumvli: Prints list of literature, but adds to every item -%% the page (and the footnote) number from which the item came from: -%% "TITLE >> PAGENO" or "TITLE >> PAGENO^FOOTNOTENO" -%% (^FOOTNOTENO, if \vli or \addtovli have been in a footnote). -%% 16 \printnumvqu: Prints the list of sources like \printnumvli. -%% 17 If you start gbibsort with option -K, and there is an author in the -%% list of literature or the list of sources more than one time, the -%% name of this author will be printed only the first time, and then -%% instead of his name it will be printed 'similar'. You may change -%% 'similar' to "---" by saying "\renewcommand{\killname}{---}". -%% At the end of \vli's, \vqu's, \addtovli's or \addtovqu's first -%% argument, you may say \female, or \male. Instead of \killname, -%% \femalename ("Dies.") or \malename ("Ders.") will be printed. -%% 18 \printind: Prints the index, extracting FILE.ind. If \bib was -%% in a footnote, footnote number is added as an exponent to page -%% number. All entries coming from footnotes are printed first. -%% 18.1 article: "HINT: PAGENO^FOOTNOTENO, ..., PAGENO, ...," -%% 18.2 report: "HINT -%% Chapter CHAPTERNO: PAGENO^FOOTNOTENO, PAGENO," -%% 18.3 book: "HINT -%% Part PARTNO: -%% Chapter CHAPTERNO: PAGENO^FOOTNOTENO, PAGENO," -%% Write yourself an index style file with the following lines: -%% delim_0 " " -%% delim_1 " " -%% delim_2 " " -%% delim_n "\\komma " -%% delim_t " " -%% Use this style in MakeIndex' command line (-s STYLE). -%% 19 \bibmark{LABEL}: Writes "in the following LABEL" and sets LABEL. -%% LABEL may be Authors' name. (To be used in footnotes.) -%% 20 \bibref{LABEL}: Writes "LABEL (see n. XX on p. YY)". *19 -%% 21 \xbibmark{TEXT}{LABEL}: Writes "in the following TEXT" and sets -%% LABEL. TEXT may be an Authors' name, if this name contains -%% commands, which are not transformed in macro \@markprotect. -%% 22 \xbibref{TEXT}{LABEL}: Writes "TEXT (see n. XX on p. YY)". *21 +%% This program is free software; you can redistribute it and/or modify +%% it under the terms of the GNU General Public License as published by +%% the Free Software Foundation; either version 2 of the License, or +%% (at your option) any later version. %% -%% ================= +%% This program is distributed in the hope that it will be useful, +%% but WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +%% GNU General Public License for more details. %% +%% You should have received a copy of the GNU General Public License +%% along with this program; if not, write to the Free Software +%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + + +%% INTRODUCTION +%% \usepackage{bibarts} in your file, and e. g. set \bacaptionsenglish; +%% use \footnote{\vli{FirstName}{LastName}{The \ktit{Title} Pub}[Pg].}; +%% start LaTeX + BIBSORT + LaTeX and \printvli your list of literature. +%% After having introduced literature in a full v-cite, you cite short: +%% Use \footnote{\kli{LastName}{Title}[Pg].} for your short cites. Use +%% \vqu and \kqu the same way; then \printvqu published documents. Use +%% \per{Journal}|Vol|[Pg], and \arq{Document}{Arcive File}_Vol_(Folio); +%% \printper your Periodicals and \printarq your List of Archive Files. +%% Spaces are forbidden before OptArgs [Pg], (Foilo), |Vol|, and _Vol_. +%% \printnumvkc an index of Names + short Titles used in v- and k-cmds. %% -%% (c) Timo Baumann +%% SWITCHES +%% Set \conferize, and get cross references from \kli to \vli (essays). +%% If you are never using k-cmds, \notannouncektit them in your v-cmds. +%% No historian? Set \notprinthints; you are never using \vqu or \kqu. %% -%% CopyLeft: a) Verantwortung - b) Benutzung - c) Distribuntion +%% IBIDEMIZATION AND INNER CITATIONS +%% In a \footnote, BibArts 2.0 prints 'ibidem' instead of the arguments +%% of \kli, \kqu, \per, and \arq, WHEN you are repeating your citation. +%% To cite books from teams, set x-cmds, and type co-authors in *-Args: +%% \xvli{FirstName}{LastName} *{\vauthor{coFN}{coLN}}{The \ktit{T} Pub} +%% and \xkli{LastName}*{\kauthor{coLN}}{T} are making the ibidemization +%% (further authors: \midvauthor-\midkauthor BEFORE \vauthor-\kauthor). +%% For essays in journals, use \per INSIDE the last v-Arg. If an essay +%% is in an edition, also use a v- or k-cmd INSIDE a last v-Arg. After +%% \vli{FN1}{LN1}{The \ktit{T1}, in: \vli{iFN}{iLN}{The \ktit{iT} Pub}} +%% \printvli will print the entry of that title with the inner title as +%% short title, and the full inner title appears as SEPARATE list item. +%% To use further essays from the same book, you may short-cite inside: +%% \vli{FN2}{LN2}{The \ktit{T2}, in: \kli{iLN}{iT}[PgBegin-PgEnd]}*[Pg] +%% That - in the very next footnote! - will set an INNER IBIDEMIZATION, +%% whereas \footnote{\kli{LN1}{T1}[Pg].} can do an OUTER IBIDEMIZATION. +%% \vli{FN1}{LN1}{The \ktit{T1}, in: \ntvauthor{FN}{LN} Full Title Pub} +%% instead will do NO INNER IBIDEMIZATION and \printvli a single entry. %% -%% Der Anwender erkennt die Punkte a) - c) an. -%% a) Keinerlei Haftung ! -%% b) Keine Funktions-Garantie ! -%% c) bibarts.sty und bibarts.tex d"urfen -%% nur weitergegeben werden, wenn -%% 1. daf"ur keine Kosten erhoben werden, -%% die "uber diejenigen f"ur ihren -%% Transfer hinausgehen ! -%% 2. vorgenommene "Anderungen -%% kommentiert sind ! -%% - - -%% Verweise: - -\def\stressing#1{\def\@stress{#1}} - -\stressing{underline} %% -> \underline{NAME}; you may change {underline} - %% to {rm}, {sf}, ..., but do NOT use '\' in front! - -\def\punctuation{:} %% Satzzeichen zwischen NAME und REST (nicht Index!). - -\def\killname{$\sim$} -\def\femalename{Dies.} %% \vli{...}{...\female}{...} -\def\malename{Ders.} %% \vli{...}{...\male}{...} -\def\seenotename{\@ifundefined{newumlaut}{see n.}{wie Anm.}} -\def\onname{\@ifundefined{newumlaut}{on}{auf}} -\def\pgname{\@ifundefined{newumlaut}{p.}{S.}} -\@ifundefined{seename}{\def\seename{see}}{} - %% 2. Arg. ist leer, denn in GERMAN.STY steht \def\seename{siehe}! - -\def\bibref#1{{\schrift #1 \@markprotect (\iffootnote - \seenotename\,\ref{#1} \onname{} \else \seename{} \fi - \pgname\,\pageref{#1})}} - -\def\xbibref#1#2{{\schrift #1 \@markprotect (\iffootnote - \seenotename\,\ref{#2} \onname{} \else \seename{} \fi - \pgname\,\pageref{#2})}} - -\def\bibmark#1{{\schrift\quotename{} #1\@markprotect\label{#1}}} -\def\xbibmark#1#2{{\schrift\quotename{} #1\@markprotect\label{#2}}} -\def\quotename{\@ifundefined{newumlaut}{in the following}{im folgenden}:} - -\def\kurz#1{ (\schrift{\quotename{} \protect\bib{#1}})} - -\def\@markprotect{% -\@ifundefined{newumlaut}{}{% -\def"{|Q|}}% -\def\IeC{|IeC|}% %% Falls LaTeX2e -\def~{|T|}% -\def\"{|A|}% -\def\'{|B|}% -\def\`{|C|}% -\def\^{|D|}% -\def\AA{|AA|}% -\def\aa{|aa|}% -\def\ae{|ae|}% -\def\AE{|AE|}% -\def\b{|b|}% -\def\c{|c|}% -\def\P{|P|}% -\def\S{|S|}% -\def\copyright{|copyright|}% -\def\pounds{|pounds|}% -\def\={|=|}% -\def\.{|.|}% -\def\ss{|ss|}% -\def\underline{|U|}% +%% COMPATIBILITY +%% Change \DeclareRobustCommand into \def HERE when you use LaTeX 2.09. +%% Then, you still NOT have to \protect BibArts-cmds in args of v-cmds. +%% BibArts 2.0 ONLY has an EMULATION for 1.3 texts: Keep copies of 1.x? + + + + + %% INTERNE MINIMALIA %% + +%% ~"<`'>:;!? could be active: + +\def\grave@ba{\string`} + {\catcode\grave@ba\~=13% + \catcode\grave@ba\"=13% + \catcode\grave@ba\:=13% + \catcode\grave@ba\;=13% + \catcode\grave@ba\!=13% + \catcode\grave@ba\?=13% + \catcode\grave@ba\'=13% + \catcode\grave@ba\`=13% + \catcode\grave@ba\<=13% + \catcode\grave@ba\>=13% +\gdef\protectchars@active{% + \ifnum\catcode\grave@ba\~=13\def~{\string~}\fi% + \ifnum\catcode\grave@ba\"=13\def"{\string"}\fi% + \ifnum\catcode\grave@ba\:=13\def:{\string:}\fi% + \ifnum\catcode\grave@ba\;=13\def;{\string;}\fi% + \ifnum\catcode\grave@ba\!=13\def!{\string!}\fi% + \ifnum\catcode\grave@ba\?=13\def?{\string?}\fi% + \ifnum\catcode\grave@ba\'=13\def'{\string'}\fi% + \ifnum\catcode\grave@ba\`=13\def`{\string`}\fi% + \ifnum\catcode\grave@ba\<=13\def<{\string<}\fi% + \ifnum\catcode\grave@ba\>=13\def>{\string>}\fi% +}% +} + + +\def\typeout@ba#1{{\protectchars@active\typeout{#1}}} + +\def\errmessage@ba#1{{\protectchars@active\errmessage{#1.^^J \space. . . . . . . . . . . }}} + +\typeout@ba{Style Option BibArts, Version 2.0 [2015] ...} + +\def\msg@bafontsubst#1#2{\typeout@ba{{\string#1 ...} is unknown; I'll substitute {\string#2 ...}.}} + +\expandafter\ifx\csname bfseries\endcsname\relax\def\bfseries{\bf}\msg@bafontsubst{\bfseries}{\bf}\fi +\expandafter\ifx\csname scshape\endcsname\relax\def\scshape{\sc}\msg@bafontsubst{\scshape}{\sc}\fi +\expandafter\ifx\csname sffamily\endcsname\relax\def\sffamily{\sf}\msg@bafontsubst{\sffamily}{\sf}\fi +\expandafter\ifx\csname slshape\endcsname\relax\def\slshape{\sl}\msg@bafontsubst{\slshape}{\sl}\def\ba@sls{}\else\let\ba@sls=\slshape\fi +\expandafter\ifx\csname itshape\endcsname\relax\def\itshape{\it}\msg@bafontsubst{\itshape}{\it}\def\ba@its{}\else\let\ba@its=\itshape\fi +\expandafter\ifx\csname normalfont\endcsname\relax\def\normalfont{\rm}\msg@bafontsubst{\normalfont}{\rm}\fi +\expandafter\ifx\csname upshape\endcsname\relax + \def\pupshape{\ifdim\fontdimen\@ne\font=\z@\else\rm\relax\fi}% + \def\upshape{\protect\pupshape}\msg@bafontsubst{\upshape}{\rm[if it/sl]}\fi + +%%%%%% + + + %% Korrekturen fuer Schraegschriften %% + + +\def\undefcorr@ba{\type@bawarn{Ignore misplaced corr-cmd}} +\def\undefcorrpba{\protect\undefcorr@ba} +\def\resetcorr@ba{\gdef\baabkcorr{\protect\undefcorrpba}\gdef\bakxxcorr{\protect\undefcorrpba}\gdef\balistcorr{\protect\undefcorrpba}\gdef\barefcorr{\protect\undefcorrpba}} +\resetcorr@ba + +\def\setup@ba#1#2{{#1{\ifdim\fontdimen\@ne\font=\z@{\ignorespaces #2\ba@textmode}\else + \if@reportbaup\type@bawarn{Add \string\upshape \space to \string#1}\fi + {\upshape{\ignorespaces #2\ba@textmode}}\fi}}} + +\def\init@bacorr#1#2#3{\ifdim\lastskip=\hasdotcode@ba\gdef#3{}\else + {\let\@testa=-\bagetnext@arg#1\endlist@ba + \ifx\@testa-\makecorrcmd@ba{#2}{#3}\else\gdef#3{}\@bahasdot\fi}\fi} + +\def\init@baXcorr#1#2#3{\ifdim\lastskip=\hasdotcode@ba\gdef#3{}\else + {\let\@testa=-\bagetnext@arg#1\endlist@ba + \ifx\@testa-\makeXcorrcmd@ba{#2}{#3}\else\gdef#3{}\@bahasdot\fi}\fi} + +\def\finddot@ba#1{\ifdim\lastskip=\hasdotcode@ba\let\@testa=+\else + \bagetnext@arg#1\endlist@ba\fi} + +\def\corrrrule@ba{\vrule width 0.1pt height 3pt depth 1pt\kern -0.1pt} +\let\TeXitcorr@ba=\/ +\def\dofrco@ba@abk{% %% \ba@textmode ist bereits gesetzt %% + \if@bafrontcorr\ifhmode + \TeXitcorr@ba \if@showbacorr\ifdim\lastkern=\z@\else\corrrrule@ba\fi\fi + \fi\fi} +\def\dofrco@ba{\ba@textmode + \if@bafrontcorr\ifhmode + \TeXitcorr@ba \if@showbacorr\ifdim\lastkern=\z@\else\corrrrule@ba\fi\fi + \fi\fi} + +\def\@bacorrkern{\kern0.1em\if@showbacorr\corrrrule@ba\fi} +\def\@baXcorrkern{\kern0.1em\if@showbacorr\corrrrule@ba\kern-0.1em\strut\kern0.1em\fi} +\def\@banegkern{\kern-0.1em} + +\def\makeXcorrcmd@ba#1#2{{#1{\ifdim\fontdimen\@ne\font=\z@% + \gdef#2{}\else\gdef#2{\ifdim\fontdimen\@ne\font=\z@\nulskip@ba\strut\@baXcorrkern\fi{}}\fi}}} + +\def\makecorrcmd@ba#1#2{{#1{\ifdim\fontdimen\@ne\font=\z@% + \gdef#2{}\else\gdef#2{\ifdim\fontdimen\@ne\font=\z@\@bacorrkern\nulskip@ba\fi}\fi}}} + +\def\@baupcorr{\ifhmode\ifdim\fontdimen\@ne\font=\z@\else\@bacorrkern\nulskip@ba\fi\fi} +\def\pbaupcorr{\iflasthasdot@ba{\nulskip@ba\strut}{\@baupcorr}} +\def\baupcorr{\protect\pbaupcorr} + +\def\@badowncorr{\ifhmode\ifdim\fontdimen\@ne\font=\z@\@banegkern\nulskip@ba\fi\fi} +\def\@baendcorr{\ifhmode\ifdim\fontdimen\@ne\font=\z@\else\@banegkern\nulskip@ba\fi\fi} + +\def\bagetnext@arg{\afterassignment\do@ba@pt\let\next@ba= } +\def\do@ba@pt{% + \ifx \next@ba\endlist@ba \let\next@ba\relax + \else + \ifx .\next@ba \let\@testa=+\else + \ifx\egroup\next@ba \else + \let\@testa=-% + \fi\fi + \let\next@ba\bagetnext@arg + \fi \next@ba} + + + + %% emphes %% + +\def\kxxemph{} %{\itshape} + +\def\peremph{\normalfont\scshape} %{\upshape} + +\def\authoremph{\normalfont\scshape} %{\upshape} + +\def\balistnumemph{\sffamily} %{} %{\small\itshape} + +\def\arqemph{\normalfont\sffamily} %{\upshape} + +\def\edibidemph{\scshape} %% do not change because of IBIDEM %% + + + + %% types %% + +\def\originalquotetype{\small} +%\def\originalquotetype{\small\itshape} + +\def\balisttype{} +%\def\balisttype{\slshape} + + + + %% names and seps for lists %% + +\def\killname{$\sim$\kern 0.05em} +\def\femalename{\cap@ba{eadem}} %% \vli{\female ...}{...}{...} +\def\malename{\cap@ba{idem}} %% \vli{\male ...}{...}{...} + + +\newif\ifgendering\genderingfalse +\newif\iffemale\femalefalse +\def\female{\global\genderingtrue\global\femaletrue} %% not for use in \vauthor ... +\def\male{\global\genderingtrue\global\femalefalse} %% ... or \midvauthor! +\def\Ikillname{\ifgendering + \iffemale \femalename \else \malename \fi + \else \killname \fi} +\def\Pkillname{\cap@ba{iidem}} + + +\def\bakntsepcorr{\ifdim\fontdimen\@ne\font=\z@\else{\kxxemph{\ifdim\fontdimen\@ne\font=\z@\@bacorrkern\nulskip@ba\fi}}\fi} +\def\ntsep{: \ifbashortcite{\bakntsepcorr}{}} + + +\def\nsep{\baslash} +%\def\nsep{, } +%\def\nsep{ / \baupcorr} +%\def\nsep{\upshape{\protect\nolinebreak[3] /\protect\linebreak[3] }} + + +\def\listlnfnsep{, } + +\def\arqsep{, } %{; } %{: } +%\def\arqsep{\bapoint\newsentence} %{\@\bapoint\space} %{\bapoint\space} %{\bapoint\ } + + + + + %% switches %% + + +\def\pannouncektit{\@heraldktittrue} +\def\announcektit{\protect\pannouncektit} + +\def\pnotannouncektit{\@heraldktitfalse} +\def\notannouncektit{\protect\pnotannouncektit} + +\def\pshowbacorr{\@showbacorrtrue} +\def\showbacorr{\protect\pshowbacorr} + +\def\pnotshowbacorr{\@showbacorrfalse} +\def\notshowbacorr{\protect\pnotshowbacorr} + +\def\pnotbafrontcorr{\@bafrontcorrfalse} +\def\notbafrontcorr{\protect\pnotbafrontcorr} + +\def\pbafrontcorr{\@bafrontcorrtrue} +\def\bafrontcorr{\protect\pbafrontcorr} + +\def\pprinthints{\@printhinttrue} +\def\printhints{\protect\pprinthints} + +\def\pnotprinthints{\@printhintfalse} +\def\notprinthints{\protect\pnotprinthints} + +\def\pktitaddtok{\@makektitktrue} +\def\ktitaddtok{\protect\pktitaddtok} + +\def\pnotktitaddtok{\@makektitkfalse} +\def\notktitaddtok{\protect\pnotktitaddtok} + + +\def\pkurzaddtoarq{\@kurztoarqtrue} +\def\kurzaddtoarq{\protect\pkurzaddtoarq} + +\def\pnotkurzaddtoarq{\@kurztoarqfalse} +\def\notkurzaddtoarq{\protect\pnotkurzaddtoarq} + + +\def\pibidemize{\@ibidemizetrue} +\def\ibidemize{\protect\pibidemize} + +\def\pnotibidemize{\@ibidemizefalse} +\def\notibidemize{\protect\pnotibidemize} + +\def\pclearbamem{\clearmem@ba} +\def\clearbamem{\protect\pclearbamem} + +\def\pshowbamem{\@bashowmemtrue} +\def\showbamem{\protect\pshowbamem} + +\def\pnotshowbamem{\@bashowmemfalse} +\def\notshowbamem{\protect\pnotshowbamem} + + +\def\pnotwriteidemwarnings{\wriwarn@bafalse} +\def\notwriteidemwarnings{\protect\pnotwriteidemwarnings} + +\def\pwriteidemwarnings{\wriwarn@batrue} +\def\writeidemwarnings{\protect\pwriteidemwarnings} +%% \bullet : Ders. fehlt moeglicherweise (gleiche Nachnamen registriert). +%% \heartsuit: Ders. ist offenbar richtig gesetzt (gleiche Nachnamen registriert). +%% \nabla : Ders. wegen fehlender Autoren in vorausgehender Fussnote unberechtigt. +%% \spadesuit: Ders. ueberscheibt einen Namen, der nicht der vorausgehende ist. +%% \clubsuit : Ders. steht irrefuehrenderweise nach einer Fussnote mit mehreren Autoren. + + +\def\pconferize{\ba@varstringtrue} +\def\conferize{\protect\pconferize} + +\def\pnotconferize{\ba@varstringfalse} +\def\notconferize{\protect\pnotconferize} + +\def\pexeditnum{\@bamathaufltrue} +\def\exponenteditionnumber{\protect\pexeditnum} + +\def\pnotexeditnum{\@bamathauflfalse} +\def\notexponenteditionnumber{\protect\pnotexeditnum} + +\def\pprintlpafo{\@prnbapftrue} +\def\printlongpagefolio{\protect\pprintlpafo} + +\def\pnotprintlpafo{\@prnbapffalse} +\def\notprintlongpagefolio{\protect\pnotprintlpafo} + +\def\pprintlpevo{\@prnbapevotrue} +\def\printlongpervol{\protect\pprintlpevo} + +\def\pnotprintlpevo{\@prnbapevofalse} +\def\notprintlongpervol{\protect\pnotprintlpevo} + +\def\if@batone#1#2{{\def\@testa{T1}\ifx\@testa\encodingdefault{#1}\else{#2}\fi}} +\def\ifbatone{\protect\if@batone} +\def\ifbaibidem#1#2{\ifx\isibidem@ba+{#1}\else{#2}\fi} +\def\ifbaperiodical#1#2{\if@perba{#1}\else{#2}\fi} +\def\ifbashortcite#1#2{\if@kxxba{#1}\else{#2}\fi} +\def\ifbaprinthints#1#2{\if@printhint{#1}\else{#2}\fi} +\def\ifbahaspervol#1#2{\ifx\lockpevo@ba+{#1}\else{#2}\fi} + +\def\hasdotcode@ba{0.0011pt} +\def\notdotcode@ba{0.0021pt} +\def\@bahasdot{{\nobreak \hskip \hasdotcode@ba}} +\def\@banotdot{{\nobreak \hskip \notdotcode@ba}} +\def\pbahasdot{\@bahasdot} +\def\pbanotdot{\@banotdot} +\def\bahasdot{\protect\pbahasdot} +\def\banotdot{\protect\pbanotdot} +\def\iflasthasdot@ba#1#2{\ifdim\lastskip=\hasdotcode@ba #1\relax\else #2\relax\fi} +\def\pifbahasdot#1#2{\iflasthasdot@ba{{#1}}{{#2}}} +\def\ifbahasdot{\protect\pifbahasdot} +\def\iflastnotdot@ba#1#2{\ifdim\lastskip=\notdotcode@ba #1\relax\else #2\relax\fi} +\def\pbapoint{\iflasthasdot@ba{\nulskip@ba\strut}{\iflastnotdot@ba{\nulskip@ba\strut}{.}}} +\def\bapoint{\protect\pbapoint} + +\def\pbadelsb{\ifhmode\ifdim\lastkern=\z@\else\kern-\lastkern\nobreak\fi + \ifdim\lastskip=\z@\nobreak\else\ifdim\lastskip=\hasdotcode@ba\nobreak\else\ifdim\lastskip=\notdotcode@ba\nobreak\else\hskip-\lastskip\fi\fi\fi\fi} +\def\badelspacebefore{\protect\pbadelsb} + +\def\pernosep{\ifbashortcite{\bakxxcorr}{}\nobreak\ } +%\def\pernosep{\ifbashortcite{\bastrut\bakxxcorr}{}\ } +\def\pervolshortsep{\ifbaperiodical{\ifbaibidem{, }{\pernosep}}{, }} +\def\pagefolioshortsep{\ifbaperiodical{\ifbaibidem{: }{\ifbahaspervol{: }{: }}}{% + \ifbashortcite{\ifbaibidem{: }{\ifbahaspervol{: }{\ifbaprinthints{: }{\bakxxcorr : }}}}{: }}} + + +\def\pwnsn{\@wnsntrue} +\def\warnsamename{\protect\pwnsn} + +\def\pnotwnsn{\@wnsnfalse} +\def\notwarnsamename{\protect\pnotwnsn} + +\def\@bastrut{\iflasthasdot@ba{\strut}{}\iflastnotdot@ba{\strut}{}} +\def\pbastrut{\protect\@bastrut} +\def\bastrut{\protect\pbastrut} +\def\frompagesep{\bastrut\hskip 1.25em minus 0.25em\balistcorr} +%\def\frompagesep{, } +%\def\frompagesep{\balistcorr; } +%\def\frompagesep{\bapoint\space ---\nobreak\ } + +\def\fromnopagevxxsep{\bapoint} +\def\fromnopagevkcsep{} %{\bapoint} + +\def\fromnopagexrrsep{} +\def\fromnopagearqsep{\bapoint} +\def\fromnopageabksep{} %{\bapoint} +\def\fromnopagepersep{\bapoint} + + \def\pxrrlo{\bastrut\ \balistcorr(} + \def\pxrrlc{)} +\def\xrrlistopen{\protect\pxrrlo} +\def\xrrlistclose{\protect\pxrrlc} + + \def\parqlo{\bastrut\hskip 1em minus 0.3em\balistcorr} + \def\parqlc{} +\def\arqlistopen{\protect\parqlo} +\def\arqlistclose{\protect\parqlc} + +\def\arqsectionopen{\bastrut\ \balistcorr $-$ } +\def\arqsectionclose{\bahasdot} +\def\arqsubsectionopen{\bastrut\ \balistcorr $-$ } +\def\arqsubsectionclose{\bahasdot} +\def\arqsubsubsectionopen{\bastrut\ \balistcorr $-$ } +\def\arqsubsubsectionclose{\bahasdot} + +\def\arqsectionbegin{\vskip 4ex plus 1ex minus 1ex\pagebreak[3]\normalsize\bfseries} +\def\arqsubsectionbegin{\vskip 3.5ex plus 0.8ex minus 0.8ex\pagebreak[2]\small\bfseries} +\def\arqsubsubsectionbegin{\vskip 3ex plus 0.6ex minus 0.6ex\pagebreak[2]\footnotesize\bfseries} +\def\arqsectionend{\nopagebreak[3]\vspace{0.5ex}\nopagebreak[3]} +\def\arqsubsectionend{\nopagebreak[3]\vspace{0.5ex}\nopagebreak[3]} +\def\arqsubsubsectionend{\nopagebreak[3]\vspace{0.5ex}\nopagebreak[3]} + + \def\pperlo{\bastrut\ \balistcorr $-$ } + \def\pperlc{} +\def\perlistopen{\protect\pperlo} +\def\perlistclose{\protect\pperlc} + + \def\pabklo{\bastrut\hskip 1.2em minus 0.3em\balistcorr} + \def\pabklc{} +\def\abklistopen{\protect\pabklo} +\def\abklistclose{\protect\pabklc} + +\def\abkdefopen{\baabkcorr\ (} +\def\abkdefclose{)} +\def\defabkopen{\bastrut\ (\baabkcorr} +\def\defabkclose{\baabkcorr)} + +\def\xrrlistemph{} %{\itshape} +\def\arqlistemph{\arqemph\relax\normalsize} +\def\perlistemph{\peremph} +\def\abklistemph{\bfseries} %{\abkemph} + + + + + %% Captions %% + + +\newif\if@ibidhp\@ibidhpfalse +\newif\if@giep\@giepfalse +\newif\if@fiep\@fiepfalse +\newif\if@eiep\@eiepfalse + +\def\psetibid#1#2#3{%\@bsphack + \def\@testa{#1}% + \ifx#1g\def\gibidemname{#2#3}\ifx#3.\@gieptrue\else\@giepfalse\fi\fi + \ifx#1f\def\fibidemname{#2#3}\ifx#3.\@fieptrue\else\@fiepfalse\fi\fi + \ifx#1e\def\eibidemname{#2#3}\ifx#3.\@eieptrue\else\@eiepfalse\fi\fi + \ifx\@testa\langcap@ba\ifx#3.\@ibidhptrue\else\@ibidhpfalse\fi\fi + {\errhelp{Usage: + ^^J\setibidem{g}{abbr}{.} OR \setibidem{e}{abbr}{.} OR \setibidem{f}{abbr}{.} + ^^J\setibidem{g}{text}{} OR \setibidem{e}{text}{} OR \setibidem{f}{text}{}}% + \ifx#1g\else\ifx#1f\else\ifx#1e\else\errorcontextlines=-1% + \@qqertypeout{setibid}{...}\errmessage@ba{Reject undefined language {#1}}% + \fi\fi\fi}% + \def\@testa{}%\@esphack + } +\def\setibidem{\protect\psetibid} + +\def\cap@ba#1{{\csname \langcap@ba#1name\endcsname}} +\def\pbacaptionsgerman{\def\langcap@ba{g}\if@giep\@ibidhptrue\else\@ibidhpfalse\fi} +\def\pbacaptionsfrench{\def\langcap@ba{f}\if@fiep\@ibidhptrue\else\@ibidhpfalse\fi} +\def\pbacaptionsenglish{\def\langcap@ba{e}\if@eiep\@ibidhptrue\else\@ibidhpfalse\fi} +\def\bacaptionsgerman{\protect\pbacaptionsgerman} +\let\bacaptionsngerman=\bacaptionsgerman +\def\bacaptionsfrench{\protect\pbacaptionsfrench} +\def\bacaptionsenglish{\protect\pbacaptionsenglish} + +\expandafter\ifx\csname fup\endcsname\relax +\def\pfup#1{\iflasthasdot@ba{}{\@baupcorr}\escb@ba + \lower-0.75ex\hbox{\scriptsize\textup{\ignorespaces #1\ba@textmode}}{\@baendcorr}{\kern 0.01pt}}% +\def\fup{\protect\pfup}% +\else +\typeout{\string\fup-command used. I do not redefine.}% +\fi + +\expandafter\ifx\csname editor\endcsname\relax +%\def\peditor{\dofrco@ba\setup@ba{\edibidemph}{\cap@ba{editor}}}% +\def\peditor{\cap@ba{editor}}% +\def\editor{\protect\peditor}% +\else +\typeout{\string\editor-command used. I do not redefine.}% +\fi + +\expandafter\ifx\csname editors\endcsname\relax +%\def\peditors{\dofrco@ba\setup@ba{\edibidemph}{\cap@ba{editorp}}}% +\def\peditors{\cap@ba{editorp}}% +\def\editors{\protect\peditors}% +\else +\typeout{\string\editors-command used. I do not redefine.}% +\fi + +\def\ibidemname@ba{\setup@ba{\edibidemph}{\cap@ba{ibidem}}} + +\def\pbaplural{\let\@testb=+} +\def\baplural{\protect\pbaplural} + +\def\pbasingular{\let\@testb=.} +\def\basingular{\protect\pbasingular} %% at the end of __||()[] %% + +{\catcode\grave@ba\;=12\gdef\dopassemi@ba{\ifx;\next@ba \let\@testb=+\fi}} +{\catcode\grave@ba\;=13\gdef\doaktsemi@ba{\ifx;\next@ba \let\@testb=+\fi}} +\def\kommin@string#1{\getnext@km#1\endlist@ba} +\def\getnext@km{\afterassignment\do@ba@km\let\next@ba= } +\def\do@ba@km{% + \ifx \next@ba\endlist@ba \let\next@ba\relax + \else + \ifx -\next@ba \let\@testb=+\fi + \ifx ,\next@ba \let\@testb=+\fi + \ifx \hy\next@ba \let\@testb=+\fi + \ifx \fhy\next@ba \let\@testb=+\fi + \ifx \phy\next@ba \let\@testb=+\fi + \ifx\pfhy\next@ba \let\@testb=+\fi + \ifx \f\next@ba \let\@testb=+\fi + \ifx \ff\next@ba \let\@testb=+\fi + \ifx \pf\next@ba \let\@testb=+\fi + \ifx \pff\next@ba \let\@testb=+\fi + \ifx \sq\next@ba \let\@testb=+\fi + \ifx \sqq\next@ba \let\@testb=+\fi + \ifx \psq\next@ba \let\@testb=+\fi + \ifx\psqq\next@ba \let\@testb=+\fi + \ifx \basingular\next@ba \basingular\fi + \ifx \baplural \next@ba \baplural \fi + \ifx\pbasingular\next@ba \basingular\fi + \ifx\pbaplural \next@ba \baplural \fi + \dopassemi@ba + \doaktsemi@ba + \let\next@ba\getnext@km + \fi \next@ba} + +\def\erripfpevo@ba#1{%{ \erri@ba}% + \ifx#1x\type@bawarn{Empty [] or ()}\else\type@bawarn{Empty || or __}\fi} + +\def\printpf@ba#1#2{\if@pfvba{\errorcontextlines=-1% + \def\@testa{#2}% + \let\@testb=.% + \ifx\@testa\@leer \erripfpevo@ba{x}\else + \ifx\@testa\@leerz\erripfpevo@ba{x}\else + \if@prnbapf\kommin@string{#2}\fi + {\if@prnbapf\ifx.\@testb\cap@ba{#1}\else\cap@ba{#1p}\fi + \else\pagefolioshortsep\fi + {\ignorespaces #2}}\fi\fi}\fi} + +\def\printpevo@ba#1#2{\if@pfvba{\errorcontextlines=-1% + \def\@testa{#1}% + \let\@testb=.% + \ifx\@testa\@leer \erripfpevo@ba{}\else + \ifx\@testa\@leerz\erripfpevo@ba{}\else + \if@prnbapevo\kommin@string{#1}\fi + {\if@prnbapevo\ifx.\@testb\cap@ba{#2}\else\cap@ba{#2p}\fi + \else\pervolshortsep\fi + {\ignorespaces #1}}\fi\fi}\fi} + +\def\prints@ba#1#2{{\@herefunctions + \def\@testa{#2}% + \def\@testb{#1}% + \ifx\@testa\@leer \global\let\isibidem@ba=-% + \else\ifx\@testa\@leerz \global\let\isibidem@ba=-% + \else{\upshape{% + \let\@testa=-% + \ifx\@testb\@leer {\ignorespaces #2\ba@textmode}\finddot@ba{#2}\else + \ifx\@testb\@leerz {\ignorespaces #2\ba@textmode}\finddot@ba{#2}\else + {\ignorespaces #1\ba@textmode}\finddot@ba{#1}\fi\fi + \ifx\@testa+\@bahasdot\fi \arqsep}}% + \fi\fi}} + +\def\initprintpf@ba#1#2#3{\if@pfvba + {\@memfunctions\@outsavety\@herefunctions\fillpref@ba{#2}{#3}}% + {\if@footnote + \ifx\pmem@ba\pref@ba + \ifx\isibidem@ba-\printpf@ba{#1}{#3}% + \else\ifx\lastp@ba+\printpf@ba{#1}{#3}% + \else \global\let\lookpage@ba=+% + \fi + \fi + \else\printpf@ba{#1}{#3}% + \if@baouter + \ifx\isibidem@ba+\ifx\pos@ba1\else\global\let\thisp@ba=+\fi\fi + \fi + \fi + \else\printpf@ba{#1}{#3}\fi + \global\let\lastp@ba=-% + }\global\let\pmem@ba=\pref@ba\fi} + +\def\initprintpevo@ba#1#2{\if@pfvba + {\@memfunctions\@outsavety\@herefunctions\fillvolref@ba{#1}}% + {\if@footnote + \ifx\volmem@ba\volref@ba + \ifx\isibidem@ba-\printpevo@ba{#1}{#2}% + \else\ifx\lastvol@ba+\printpevo@ba{#1}{#2}% + \else \global\let\onlypevo@ba=-% + \fi + \fi + \else\printpevo@ba{#1}{#2}% + \fillpmem@ba{}{}% + \global\let\pfilled@ba=-% + \if@baouter + \ifx\isibidem@ba+\ifx\pos@ba1\else\global\let\thisvol@ba=+\fi\fi + \fi + \fi + \else\printpevo@ba{#1}{#2}\fi + \global\let\lastvol@ba=-% + }\global\let\volmem@ba=\volref@ba\fi} + + +\def\initprints@ba#1#2{% + {\@memfunctions\@outsavety\@herefunctions\fillsref@ba{#2}}% + {\if@footnote + \ifx\smem@ba\sref@ba + \ifx\isibidem@ba-\prints@ba{#1}{#2}% + \else \ifx\lasts@ba+\prints@ba{#1}{#2}\fi + \fi + \else\prints@ba{#1}{#2}% + \if@baouter + \ifx\isibidem@ba+\ifx\pos@ba1\else\global\let\thiss@ba=+\fi\fi + \fi + \fi + \else\prints@ba{#1}{#2}\fi + \global\let\lasts@ba=-% + }\global\let\smem@ba=\sref@ba} + +\def\@bapg#1{\initprintpf@ba{isonpage}{p}{#1}} +\def\@baxpg#1{\initprintpf@ba{isonxpage}{p}{#1}} +\def\@bafolio#1{\initprintpf@ba{isonfolio}{f}{#1}} +\def\@baxfolio#1{\initprintpf@ba{isonxfolio}{f}{#1}} + + +\bacaptionsgerman %% Voreinstellung = deutsch +%% German: +\def\ganonymousname{[Anonym]} +\def\geditorname{[\kern 0.04em Hrsg.]\kern 0.02em} +\let\geditorpname=\geditorname +\setibidem{g}{ebd\kern -0.07em}{.} +\def\gidemname{ders\kern -0.04em.} +\def\geademname{dies\kern -0.04em.} +\def\giidemname{diesn\kern -0.07em.} +\def\gvolname{, Bd.\,} +\def\gvolpname{, Bde.\,} %% +\def\gpername{\ifbaibidem{, Nr.\,}{\pernosep}} +\def\gperpname{\ifbaibidem{, Nr.\,}{\pernosep}} %% +\def\gisonfolioname{, Bl.\,} +\def\gisonfoliopname{, Bl.\,} %% , - ; \hy \fhy \f \ff +\def\gisonxfolioname{, dort: Bl.\,} +\def\gisonxfoliopname{, dort: Bl.\,} %% oder \baplural im +\def\gisonpagename{, S.\,} +\def\gisonpagepname{, S.\,} %% \print[pf/pv]@ba-Argument. +\def\gisonxpagename{, dort: S.\,} +\def\gisonxpagepname{, dort: S.\,} %% +\def\gabktitlename{Ab\-k\"ur\-zungen} +\def\gbibtitlename{Quellen und Literatur} %% (Bibliographie:) +\def\gvlititlename{Literatur} %% <- [L] (Sekundaerliteratur) +\def\gvqutitlename{Gedruckte Quellen} %% <- [Q] (Primaerliteratur) +\def\ghinttovliname{[L]} %% -> [L] Literatur +\def\ghinttovquname{[Q]} %% -> [Q] Gedruckte Quellen +\def\gpertitlename{Zeitschriften} %% +\def\garqtitlename{Ungedruckte Quellen} %% +\def\gvkctitlename{Verwendete Kurztitel} %% +\def\ggrrtitlename{Ortsregister} %% +\def\gprrtitlename{Personenregister} %% +\def\gsrrtitlename{Sachregister} %% +\def\gannouncektitname{ (\kern 0.015em im folgenden \baupcorr} +\def\gannouncekendname{)} +\def\grefvbegname{(} +\def\grefverbname{siehe} +\def\grefvpagname{S.\,} +\def\grefvfntname{, Anm.\,} +\def\grefvendname{\barefcorr)} +\def\gconfername{\kern -0.03em wie} +\def\gerscheditionname{\teskip Auf{\kern.03em}l.,} +\def\gerschvolumename{Bd.,} +\def\gerschvolumepname{Bde.,} +\def\gerschnohousename{\oO,} %{ohne Ort,} +\def\gerschnoyearname{\oJ} %.% %{ohne Jahr} + \def\oD{\protect\poD} \def\poD{o.\kern 0.1em D\kern -0.08em.\bahasdot} + \def\oO{\protect\poO} \def\poO{o.\kern 0.1em O\kern -0.08em.\bahasdot} + \def\oJ{\protect\poJ} \def\poJ{o.\kern 0.1em J\kern -0.09em.\bahasdot} +\def\gfolpagename{\badelspacebefore\,f\kern -0.1pt.\bahasdot} +\def\gxfolpagename{\badelspacebefore\,ff\kern -0.1pt.\bahasdot} + +\expandafter\ifx\csname f\endcsname\relax + \def\f{\protect\pf}% + \def\pf{\cap@ba{folpage}}% +\else +\typeout{\string\f-command used. I do not redefine.}% +\fi + +\expandafter\ifx\csname sq\endcsname\relax + \def\sq{\protect\psq}% + \def\psq{\cap@ba{folpage}}% +\else +\typeout{\string\sq-command used. I do not redefine.}% +\fi + +\expandafter\ifx\csname ff\endcsname\relax + \def\ff{\protect\pff}% + \def\pff{\cap@ba{xfolpage}}% +\else +\typeout{\string\ff-command used. I do not redefine.}% +\fi + +\expandafter\ifx\csname sqq\endcsname\relax + \def\sqq{\protect\psqq}% + \def\psqq{\cap@ba{xfolpage}}% +\else +\typeout{\string\sqq-command used. I do not redefine.}% +\fi + +%% French: +\def\fanonymousname{[Anonyme]} +\def\feditorname{(\kern -0.03em \'ed.\kern -0.06em)\kern 0.02em} +\let\feditorpname=\feditorname +\setibidem{f}{ibid\kern -0.07em}{.} +\def\fidemname{le m\^e\-me} +\def\feademname{la m\^e\-me} +\def\fiidemname{les m\^e\-mes} +\def\fvolname{, vol.\,} +\def\fvolpname{, vol.\,} %% +\def\fpername{\ifbaibidem{, n\fup{o}\,}{\pernosep}} +\def\fperpname{\ifbaibidem{, n\fup{os}\,}{\pernosep}} %% +\def\fisonfolioname{, folio\nobreak \ } +\def\fisonfoliopname{, folii\nobreak \ } %% , - ; \hy \fhy \sq \sqq +\def\fisonxfolioname{, l\`a: Folio\nobreak \ } +\def\fisonxfoliopname{, l\`a: Folii\nobreak \ } %% oder \baplural im +\def\fisonpagename{, p.\,} +\def\fisonpagepname{, p.\,} %% \print[pf/pv]@ba-Argument. +\def\fisonxpagename{, l\`a: p.\,} +\def\fisonxpagepname{, l\`a: p.\,} %% +\def\fabktitlename{Ab\-r\'e\-viations} +\def\fbibtitlename{Bibliographie} %% (Travaux+Sources:) +\def\fvlititlename{Travaux} %% <- [T] +\def\fvqutitlename{Sources im\-pri\-m\'ees} %% <- [S] +\def\fhinttovliname{[T]} %% -> [T] Travaux +\def\fhinttovquname{[S]} %% -> [S] Sources imprim\'ees +\def\fpertitlename{P\'e\-riodiques} %% +\def\farqtitlename{Sources in\-\'edi\-tes} %% +\def\fvkctitlename{Titres ab\-r\'e\-g\'ees} %% +\def\fgrrtitlename{Registre g\'eo\-graphique} %% +\def\fprrtitlename{Registre des personnes} %% +\def\fsrrtitlename{Registre des sujets} %% +\def\fannouncektitname{ (\kern 0.02em par la suite \baupcorr} +\def\fannouncekendname{)} +\def\frefvbegname{(} +\def\frefverbname{voir} +\def\frefvpagname{p.\,} +\def\frefvfntname{, n.\,} +\def\frefvendname{\barefcorr)} +\def\fconfername{\kern -0.03em op.\ cit.\bahasdot} +\def\ferscheditionname{\fupskip \'edi\-tion,} %% -> \fordinal=\fordinalf +\def\ferschvolumename{vol.,} +\def\ferschvolumepname{vol.,} +\def\ferschnohousename{sans maison d'{}\'edi\-tion,} +\def\ferschnoyearname{sans an\-n\'ee} %%... de publication +\def\ffolpagename{\badelspacebefore\ sq.\bahasdot} +\def\fxfolpagename{\badelspacebefore\ sqq.\bahasdot} + +%% English: +\def\eanonymousname{[Anonymous]} +\def\eeditorname{(\kern -0.03em ed.\kern -0.06em)\kern 0.02em} +\def\eeditorpname{(\kern -0.03em eds.\kern -0.08em)\kern 0.02em} +\setibidem{e}{ibidem}{} +\def\eidemname{idem} +\def\eeademname{eadem} +\def\eiidemname{iidem} +\def\evolname{, vol.\,} +\def\evolpname{, vols.\,} %% +\def\epername{\ifbaibidem{, no.\,}{\pernosep}} +\def\eperpname{\ifbaibidem{, no.\,}{\pernosep}} %% +\def\eisonfolioname{, folio\nobreak \ }%{, f.\,} +\def\eisonfoliopname{, folii\nobreak \ } %% , - ; \hy \fhy \f \ff +\def\eisonxfolioname{, there: Folio\nobreak \ } +\def\eisonxfoliopname{, there: Folii\nobreak \ } %% oder \baplural im +\def\eisonpagename{, p.\,} +\def\eisonpagepname{, pp.\,} %% \print[pf/pv]@ba-Argument. +\def\eisonxpagename{, there: p.\,} +\def\eisonxpagepname{, there: pp.\,} %% +\def\eabktitlename{Abbreviations} +\def\ebibtitlename{Bibliography} %% (Literature+Sources:) +\def\evlititlename{Literature} %% <- [L] (Secondary Literature) +\def\evqutitlename{Published Documents} %% <- [D] (Primary Literature) +\def\ehinttovliname{[L]} %% -> [L] Literature +\def\ehinttovquname{[D]} %% -> [D] Printed Sources +\def\epertitlename{Periodicals} %% +\def\earqtitlename{Unpublished Documents} %% +\def\evkctitlename{Short Titles} %% +\def\egrrtitlename{Geographical index} %% +\def\eprrtitlename{Person index} %% +\def\esrrtitlename{Subject index} %% +\def\eannouncektitname{ (\kern -0.02em cited as \baupcorr} +\def\eannouncekendname{)} +\def\erefvbegname{[\nobreak \hskip 1pt plus 0pt} +\def\erefverbname{see} +\def\erefvpagname{p.\,} +\def\erefvfntname{, n.\,} +\def\erefvendname{\nobreak \hskip 1pt plus 0pt\barefcorr]} +\def\econfername{\kern -0.05em cf.\bahasdot} +\def\eerscheditionname{\fupskip edition,} +\def\eerschvolumename{vol.,} +\def\eerschvolumepname{vols.,} +\def\eerschnohousename{no publishing house,} +\def\eerschnoyearname{no exact year\kern -0.04em} %%... of publication +\def\efolpagename{\badelspacebefore\,f\kern -0.1pt.\bahasdot} +\def\exfolpagename{\badelspacebefore\,ff\kern -0.1pt.\bahasdot} + +\def\pnewsentence{{\ifnum\sfcode\grave@ba\.=3000\spacefactor3000\@leerz\fi\@leerz}} +\def\newsentence{\protect\pnewsentence} +\def\spacefactorMMM@ba{\if@unusedbib\else\ifhmode\ifnum\sfcode\grave@ba\.=3000\spacefactor3000\fi\fi\fi} +\def\spacefactorM@ba{\if@unusedbib\else\ifhmode\ifnum\sfcode\grave@ba\.=3000\spacefactor1000\fi\fi\fi} + +%%%%%% + +\def\ba@textmode{\ifmmode $\type@bawarn{Set forgotten \string$}\fi} + + +\def\@herefunctions{% + \errorcontextlines=-1% + \def\onlyout##1{}% %% Genauso in \@hereRfunctions. + \def\onlyhere##1{##1}% %% Dito. + \def\onlyvoll##1{##1}% %% Umgekehrt in \@hereRfunctions. + \def\onlykurz##1{}% %% Dito. + \def\sort##1{}% + \def\verb{\errmessage{verbatim is forbidden inside BibArts args}}% +} + + +%%%%%% + + +\def\@outsavety{% %% \nsep nicht schuetzen! %% + \protectchars@active% + \def\newpage{\protect\newpage}% + \def\frq{\protect\frq}% + \def\flq{\protect\flq}% + \def\frqq{\protect\frqq}% + \def\flqq{\protect\flqq}% + \def\"{\string\"}% + \def\ddot{\protect\ddot}% + \def\.{\string\.}% + \def\dot{\protect\dot}% + \def\={\string\=}% + \def\bar{\protect\bar}% + \def\vec{\protect\vec}% + \def\^{\string\^}% + \def\hat{\protect\hat}% + \def\'{\string\'}% + \def\acute{\protect\acute}% + \def\`{\string\`}% + \def\grave{\protect\grave}% + \def\~{\string\~}% + \def\tilde{\protect\tilde}% + \def\P{\protect\P}% + \def\S{\protect\S}% + \def\aa{\protect\aa}% + \def\ae{\protect\ae}% + \def\AA{\protect\AA}% + \def\AE{\protect\AE}% + \def\b{\protect\b}% + \def\c{\protect\c}% + \def\d{\protect\d}% + \def\H{\protect\H}% + \def\i{\protect\i}% + \def\j{\protect\j}% + \def\l{\protect\l}% + \def\L{\protect\L}% + \def\o{\protect\o}% + \def\O{\protect\O}% + \def\ss{\protect\ss}% + \def\3{\string\3}% + \def\k{\protect\k}% + \def\r{\protect\r}% + \def\t{\protect\t}% + \def\u{\protect\u}% + \def\breve{\protect\breve}% + \def\v{\protect\v}% + \def\check{\protect\check}% + \def\,{\string\,}% + \def\*{\string\*}% + \def\@{\string\@}% + \def\-{\string\-}% + \def\_{\string\_}% + \def\${\string\$}% + \def\\{\string\\}% + \def\{{\string\{}% + \def\}{\string\}}% + \def\leavevmode{\protect\leavevmode}% + \def\rlap{\protect\rlap}% + \def\llap{\protect\llap}% + \def\nobreak{\protect\nobreak}% + \def\mathhexbox{\protect\mathhexbox}% + \def\authoremph{\protect\authoremph}% + \def\cal{\protect\cal}% + \def\mit{\protect\mit}% + \def\footnotesize{\protect\footnotesize}% + \def\huge{\protect\huge}% + \def\Huge{\protect\Huge}% + \def\large{\protect\large}% + \def\Large{\protect\Large}% + \def\LARGE{\protect\LARGE}% + \def\scriptsize{\protect\scriptsize}% + \def\small{\protect\small}% + \def\tiny{\protect\tiny}% + \def\normalsize{\protect\normalsize}% + %\def\label##1{}% + \def\label{\protect\label}% %% 2.09 und 2e wohl unterschiedlich %% + \def\index{\protect\index}% + \def\glossary{\protect\glossary}% + \def\omicron{\protect\omicron}% + \def\selectlanguage{\protect\selectlanguage}% + \def\sethyphenation{\protect\sethyphenation}% + \def\frac{\protect\frac}% + \def\nosort{\protect\nosort}% +} + + +%%%%%% + + +%% In 2.09 mehrzeilige Eintraege ins .AUX-File verhindern: +\expandafter\ifx\csname GenericError\endcsname\relax + \typeout@ba{* Redefine \string\@ctrerr \space to get single-line entries in .aux-file.}% + \def\@ctrerr{{\errorcontextlines=-1\errmessage{Counter too large (alph/Alph/fnsymbol)}}}% +\fi + + +\def\@outfunctions{% + \errorcontextlines=-1% + \def\protect{\noexpand\noexpand\noexpand}% + \def\protect@onlyout{\protect}% + \def\par{}% %% Fehlermeldungen verringen %% + \if@unusedbib\def\setn@ba{{}{}{-}}\fi% + \def\onlyhere{\protect\onlyhere}% + \def\onlyout{\protect\onlyout}% + \def\onlyvoll{\protect\onlyvoll}% + \def\onlykurz{\protect\onlykurz}% + \def\kurz{\if@baouter\protect\outkurz\else\protect\delkurz\fi}% + \def\ktit{\protect\ktit}% + \def\vauthor{\protect\vauthor}% + \def\midvauthor{\protect\midvauthor}% + \def\kauthor{\protect\kauthor}% + \def\midkauthor{\protect\midkauthor}% + \def\addtovli{\protect\shadowv}% + \def\addtovqu{\protect\shadowv}% + \def\addtokli{\protect\shadowk}% + \def\addtokqu{\protect\shadowk}% + \def\vli{\protect\printonlyvli}% + \def\vqu{\protect\printonlyvqu}% + \def\kli{\protect\printonlykli}% + \def\kqu{\protect\printonlykqu}% + \def\printonlyvli{\protect\printonlyvli}% + \def\printonlyvqu{\protect\printonlyvqu}% + \def\printonlykli{\protect\printonlykli}% + \def\printonlykqu{\protect\printonlykqu}% + \def\xaddtovli{\protect\shadowv}% + \def\xaddtovqu{\protect\shadowv}% + \def\xaddtokli{\protect\shadowk}% + \def\xaddtokqu{\protect\shadowk}% + \def\xvli{\protect\xprintonlyvli}% + \def\xvqu{\protect\xprintonlyvqu}% + \def\xkli{\protect\xprintonlykli}% + \def\xkqu{\protect\xprintonlykqu}% + \def\xprintonlyvli{\protect\xprintonlyvli}% + \def\xprintonlyvqu{\protect\xprintonlyvqu}% + \def\xprintonlykli{\protect\xprintonlykli}% + \def\xprintonlykqu{\protect\xprintonlykqu}% + \def\per{\protect\printonlyper}% + \def\abkper{\protect\printonlyper}% + \def\fillper{\protect\shadowtwo}% + \def\arq{\protect\printonlyarq}% + \def\fillarq{\protect\shadowtwo}% + \def\fillgrr{\protect\shadowtwo}% + \def\fillprr{\protect\shadowtwo}% + \def\fillsrr{\protect\shadowtwo}% + \def\abk{\protect\printonlyabk}% + \def\defabk{\protect\printonlydefabk}% + \def\abkdef{\protect\printonlyabkdef}% + \def\addtoper{\protect\shadowo}% + \def\addtoarq{\protect\shadowt}% + \def\addtoabk{\protect\shadowone}% + \def\addtodefabk{\protect\shadowtwo}% + \def\addtoabkdef{\protect\shadowtwo}% + \def\addtogrr{\protect\shadowone}% + \def\addtoprr{\protect\shadowone}% + \def\addtosrr{\protect\shadowone}% + \def\printonlyper{\protect\printonlyper}% + \def\printonlyarq{\protect\printonlyarq}% + \def\printonlyabk{\protect\printonlyabk}% + \def\printonlydefabk{\protect\printonlydefabk}% + \def\printonlyabkdef{\protect\printonlyabkdef}% + \def\female{\protect\female}% + \def\male{\protect\male}% + \def\sort{\protect\sort}% + \def\bahasdot{\protect\bahasdot}% + \def\balistcorr{\protect\balistcorr}% + \def\verb{\errmessage{verbatim is forbidden inside BibArts args}}% +} + + +%%%%%% + + +\def\@memfunctions{% + \errorcontextlines=-1% + \def\protect{\noexpand\noexpand\noexpand}% + \def\kurz{\protect\kurz}% + \def\ktit{\protect\ktit}% + \def\addtovli{\protect\addtovli}% + \def\addtovqu{\protect\addtovqu}% + \def\addtokli{\protect\addtokli}% + \def\addtokqu{\protect\addtokqu}% + \def\printonlyvli{\protect\printonlyvli}% + \def\printonlyvqu{\protect\printonlyvqu}% + \def\printonlykli{\protect\printonlykli}% + \def\printonlykqu{\protect\printonlykqu}% + \def\vli{\protect\vli}% + \def\vqu{\protect\vqu}% + \def\kli{\protect\kli}% + \def\kqu{\protect\kqu}% + \def\xaddtovli{\protect\xaddtovli}% + \def\xaddtovqu{\protect\xaddtovqu}% + \def\xaddtokli{\protect\xaddtokli}% + \def\xaddtokqu{\protect\xaddtokqu}% + \def\xprintonlyvli{\protect\xprintonlyvli}% + \def\xprintonlyvqu{\protect\xprintonlyvqu}% + \def\xprintonlykli{\protect\xprintonlykli}% + \def\xprintonlykqu{\protect\xprintonlykqu}% + \def\xvli{\protect\xvli}% + \def\xvqu{\protect\xvqu}% + \def\xkli{\protect\xkli}% + \def\xkqu{\protect\xkqu}% + \def\per{\protect\per}% + \def\abkper{\protect\abkper}% + \def\fillper{\protect\fillper}% + \def\arq{\protect\arq}% + \def\fillarq{\protect\fillarq}% + \def\fillgrr{\protect\fillgrr}% + \def\fillprr{\protect\fillprr}% + \def\fillsrr{\protect\fillsrr}% + \def\abk{\protect\abk}% + \def\abkdef{\protect\abkdef}% + \def\defabk{\protect\defabk}% + \def\addtoper{\protect\addtoper}% + \def\addtoarq{\protect\addtoarq}% + \def\addtoabk{\protect\addtoabk}% + \def\addtoabkdef{\protect\addtoabkdef}% + \def\addtodefabk{\protect\addtodefabk}% + \def\addtogrr{\protect\addtogrr}% + \def\addtoprr{\protect\addtoprr}% + \def\addtosrr{\protect\addtosrr}% + \def\printonlyper{\protect\printonlyper}% + \def\printonlyarq{\protect\printonlyarq}% + \def\printonlyabk{\protect\printonlyabk}% + \def\printonlyabkdef{\protect\printonlyabkdef}% + \def\printonlydefabk{\protect\printonlydefabk}% + \def\onlyhere{\protect\onlyhere}% + \def\onlyout{\protect\onlyout}% + \def\onlyvoll{\protect\onlyvoll}% + \def\onlykurz{\protect\onlykurz}% + \def\vauthor{\protect\vauthor}% + \def\midvauthor{\protect\midvauthor}% + \def\kauthor{\protect\kauthor}% + \def\midkauthor{\protect\midkauthor}% + \def\female{}% + \def\male{}% + \def\sort{\protect\sort}% %% Nur wirksam in \protec@scr %% + \def\bahasdot{}% + \def\banotdot{}% } -%% Ausgabe von Sonderzeichen ins BAR-File: - -%% F"ur \[addto]vli und \[addto]vqu sortierrelevante, -%% aber nicht auszudruckende Eintr"age: - -\def\sort#1{} - - -%% Zeichen, das "{NAME}, {VORNAME}" mehrfach genannter Autoren -%% ab der zweiten Nennung in den Listen ersetzt, -%% falls GBIBSORT mit der Option -K gestartet wird: - -\newcounter{sex} -\setcounter{sex}{0} -\def\thesex{\arabic{sex}} -\def\female{\setcounter{sex}{1}} -\def\male{\setcounter{sex}{2}} -\def\Ikillname{\ifnum\thesex=0\killname\fi\ifnum\thesex=1\femalename\fi\ifnum\thesex=2\malename\fi} - -\def\@sIcHerUnG{% -\def\female{{\punctuation}@\string\female}% %% \vli{Pamela\female}{..}{..} -\def\male{{\punctuation}@\string\male}% %% \vli{Peter\male}{..}{..} -\def\kurz##1{{} [##1]}% %% \vli{..}{..}{..\kurz{KK}} -\def\sort##1{{##1}@}% %% ##1 RELEVANT zum sortieren, aber nicht drucken. -\def\LaTeX{\string\LaTeX}% -\@ifundefined{newumlaut}{}{% %% falls nicht german -\def"{\string"}}% %% Alternative 1: %% \def"{\string"\} | NICHT F"UR -\def\"{\string\"}% %% Alternative 2: %% \def\"{\string"} | LaTeX2e ! -\def\IeC{}% %% Falls LaTeX2e -\def~{\string~}% -\def\~{\string\~}% -\def\'{\string\'}% -\def\`{\string\`}% -\def\^{\string\^}% -\def\AA{\string\AA}% -\def\aa{\string\aa}% -\def\ae{\string\ae}% -\def\AE{\string\AE}% -\def\b{\string\b{}}% -\def\c{\string\c{}}% -\def\P{\string\P}% -\def\S{\string\S}% -\def\copyright{\string\copyright}% -\def\pounds{\string\pounds}% -\def\={\string\=}% -\def\.{\string\.}% -\def\ss{\string\ss}% -\def\authorstress{\string\authorstress}% -\def\underline{\string\underline}% +%%%%%% + + +\def\@hereRfunctions{% + \def\onlyout##1{}% %% Genauso in \@herefunctions + \def\onlyhere##1{##1}% %% Genauso in \@herefunctions + \def\onlyvoll##1{}% %% Umgekehrt in \@herefunctions + \def\onlykurz##1{##1}% %% Umgekehrt in \@herefunctions + \def\vauthor##1##2{\kauthor{##2}}% %% Vgl. \@hereFfunctions %% + \def\midvauthor##1##2{\kauthor{##2}{\nsep}\ignorespaces}% + \def\sort##1{}% } -%% Die Schrift, in der die im Befehl stehenden -%% Angaben in der Fu"snote ausgedruckt werden: +\def\@hereFfunctions{% + \def\vauthor##1##2{\kauthor{##2}}% %% Vgl. \@hereRfunctions %% + \def\midvauthor##1##2{\midkauthor{##2}}% +} + + +%%%%%% + + + %% commands for users %% + + +\def\pBibArts{{\upshape{B\kern -.7pt\lower .5ex\hbox{i}\kern -1.45pt\lower -.285ex\hbox{\itshape{b}}\kern -2.5pt\lower .5ex\hbox{A}\kern -2.6pt\lower -.6ex\hbox{r}\kern -1.4pt\lower .2ex\hbox{t}\kern -1.4pt\lower -.303ex\hbox{s}}}} +\def\BibArts{\protect\pBibArts} + + +\def\onlyhere{\command@misplace{\onlyhere}} +\def\onlyout{\command@misplace{\onlyout}} +\def\onlyvoll{\command@misplace{\onlyvoll}} +\def\onlykurz{\command@misplace{\onlykurz}} +\def\nosort{} +\expandafter\ifx\csname sort\endcsname\relax + \def\sort{\command@misplace{\sort}}% + \else \typeout@ba{ \string\sort\space is already defined ... + ^^J \space I *only* change its local definition inside BibArts' arguments.}% +\fi +\def\ktit{{\errhelp{ + ^^JUse `\ktit{short-title}' only in the last argument of ...v..-cmds + ^^Jto mark a part of the full-cited title (for being the short-title), + ^^Je.g. \vli{Herbert} {Smith} {The \ktit{Story}, \ersch{Paris}{1977}}[22]. + ^^JIf you want to cite Smith's Story again, you may use the short-title + ^^Jlater as last argument of a ...k..-cmd, e.g. \kli{Smith} {Story}[37]. + ^^JThe use of \ktit - and ...k.. - is necessary to set IBIDEM (in footnotes).^^J}% + \errmessage@ba{Misplaced \string\ktit-cmd}}} +\def\kurz#1{\unskip{\cap@ba{announcektit}}\if@kurztoarq{\@initaddtoarq[]{}{#1}}\fi{\@herefunctions\setup@ba{\arqemph}{#1}}{\cap@ba{announcekend}}} +\def\kurz@ktit#1{\unskip\type@bawarn{\string\kurz\space and \string\ktit\space used}} +\def\outkurz#1{\unskip{} [{#1\ba@textmode}]} +\def\delkurz#1{\unskip} + +\def\vollout#1{\onlyvoll{\onlyout{#1}}} +\def\vollhere#1{\onlyvoll{\onlyhere{#1}}} + +\def\protmva#1#2{\dofrco@ba\@printvname{#1}{\bastrut\ }{#2}{0}{\nsep}\ignorespaces} +\def\midvauthor{\protect\protmva} + +\def\protva#1#2{\dofrco@ba\@printvname{#1}{\bastrut\ }{#2}{0}} +\def\vauthor{\protect\protva} + +\def\ntvauthor#1#2{\protect@onlyout\vauthor{#1}{#2}\protect\ntsepnta} + +\def\protmka#1{\dofrco@ba\@printkname{#1}{\nsep}\ignorespaces} +\def\midkauthor{\protect\protmka} + +\def\protka#1{\dofrco@ba\@printkname{#1}} +\def\kauthor{\protect\protka} + +\def\ntkauthor#1{\protect@onlyout\kauthor{#1}\protect\ntsepnta} + +\def\protect@onlyout{} +\def\ntsepnta{{\ntsep}\ignorespaces} + +\def\printcatcode#1{\the\catcode\grave@ba#1} + %% use e. g. \printcatcode{\"} to get the value of " %% + + +%%%%%% + + + %% internal %% + + +\def\nulskip@ba{{\nobreak \hskip 0pt plus 0pt}} + +\def\pbaslash{{\nobreak \hskip 0.24em plus 0.08em\lower -0.26ex\hbox{% + \normalfont\scriptsize /}\penalty-\@m\hskip .2em plus 0.08em}} +\def\baslash{\protect\pbaslash} + +\expandafter\ifx\csname inputlineno\endcsname\relax + \typeout@ba{Install missing count \string\inputlineno: Can't handle file line numbers.}% + \newcount\inputlineno\inputlineno=-1\fi + +\def\line@ba{\the\inputlineno} +\def\lang@ba{\the\language} +\def\catq@ba{\the\catcode\grave@ba\"} +\def\erri@ba{\ifnum\catcode\grave@ba\?=13\string?\string?\else??\fi} +\def\setn@ba{{\thepage}\if@footnote{\@thefnmark}{@}\else{}{}\fi} + +{\catcode\grave@ba\%=12\gdef\commentch@ba{%}} + +\def\@leer{} +\def\@leerz{ } %% \ifx %% + +\newif\if@kurztoarq\@kurztoarqtrue +\newif\if@reportbaup\@reportbauptrue +\newif\if@bafrontcorr\@bafrontcorrtrue +\newif\if@showbacorr\@showbacorrfalse +\newif\if@bamathaufl\@bamathauflfalse +\newif\if@heraldktit\@heraldktittrue +\newif\if@baouter\@baoutertrue +\newif\if@rheraldktit\@rheraldktittrue +\newif\if@printhint\@printhinttrue +\newif\if@footnote\@footnotefalse +\newif\if@makektitk\@makektitktrue +\newif\if@ibidemize\@ibidemizetrue +\newif\ifwriwarn@ba\wriwarn@bafalse +\newif\if@bashowmem\@bashowmemfalse +\newif\ifba@varstring\ba@varstringfalse +\newif\if@allowconferize\@allowconferizetrue +\newif\if@prnbapf\@prnbapftrue +\newif\if@prnbapevo\@prnbapevotrue +\newif\if@pfvba +\newif\if@perba +\newif\if@kxxba +\newif\if@vxxbalist\@vxxbalistfalse +\newif\if@wnsn\@wnsntrue + + +\def\makeibid@ba{% + \if@bashowmem + \if@baminipage + \protec@scr{^^J Minipage-FNT \thempfootnote}\else + \protec@scr{^^J FNT \thefootnote}\fi + \protec@scr{^^J -- outer: \space \tmemo@ba \space -- }% + \protec@scr{ ---------- inner: \space \tmemi@ba \space -- }% + \if@baouter\protec@scr{ -- o-ref: \space \tref@ba \space -- ^^J}\else + \protec@scr{ ---------- i-ref: \space \tref@ba \space -- ^^J}\fi + \fi + \global\let\isibidem@ba=-% + \if@baouter\global\let\lookpage@ba=-\fi + \if@footnote \if@baouter\makethiso@ba\else\makethisi@ba\fi + \if@baouter + \ifx\lastto@ba+% + \ifx\tmemo@ba\tref@ba \global\let\isibidem@ba=+% + \ifx\thisti@ba-\global\let\thisti@ba=+\fi + \else + \filltmemi@ba{}{}{}{}% + \ifx\thisti@ba+\global\let\thisti@ba=.\fi + \fi + \fi + \else + \ifx\lastti@ba+% + \ifx\tmemi@ba\tref@ba \global\let\isibidem@ba=+\fi + \fi + \fi + \fi} + +\def\makelast@ba{% + \if@footnote + \global\let\pmem@ba=\pref@ba + \global\let\volmem@ba=\volref@ba + \if@baouter + \global\let\tmemo@ba=\tref@ba + \global\let\lastto@ba=+% + \global\let\nmem@ba=\nref@ba + \else + \global\let\tmemi@ba=\tref@ba + \global\let\lastti@ba=+% + \fi + \fi} + + +%%% Kosmetik fuer Fussnotennummer im Text koennte von hier ... + +\expandafter\ifx\csname @footnotemark\endcsname\relax +\else +\let\ba@footnmark=\@footnotemark +\def\@footnotemark{\ifhmode{\nobreak \hskip 0.04em plus 0.01em}\else\leavevmode\fi\ba@footnmark}% +\fi + +%%% ... bis hier auskommentiert werden. + + +\let\lastto@ba=+ %% \vli{A}{B+}{\ktit{C}} and \kli{B+}{C} in first fnt %% +\def\makethiso@ba{% + \ifx\thisto@ba+\ifx\tmemo@ba\tref@ba\else\global\let\thisto@ba=.\fi\fi + \ifx\thisto@ba-\global\let\thisto@ba=+\fi + \ifx\pos@ba1\global\let\pos@ba=2\fi + \ifx\pos@ba0\global\let\pos@ba=1\fi} + +\let\lastti@ba=+ +\def\makethisi@ba{% + \ifx\thisti@ba+\ifx\tmemi@ba\tref@ba\else\global\let\thisti@ba=.\fi\fi + \ifx\thisti@ba-\global\let\thisti@ba=+\fi} + +\let\lastn@ba=- +\expandafter\ifx\csname @footnotetext\endcsname\relax +\type@bawarn{No footnote numbers}% +\else +\let\ba@footnotetext=\@footnotetext +\long\def\@footnotetext#1{\ba@footnotetext{% + \global\let\thisto@ba=-% + \global\let\thisti@ba=-% + \global\let\thisp@ba=-% + \global\let\thisvol@ba=-% + \global\let\thiss@ba=-% + \global\let\thisn@ba=-% + \global\let\pos@ba=0% + \kern 0.1em\nulskip@ba{\@footnotetrue\ignorespaces + #1\nulskip@ba\ba@textmode}\global\let\lastto@ba=\thisto@ba + \global\let\lastti@ba=\thisti@ba + \global\let\lastp@ba=\thisp@ba + \global\let\lastvol@ba=\thisvol@ba + \global\let\lasts@ba=\thiss@ba + \global\let\lastn@ba=\thisn@ba}}% +\fi + +\expandafter\ifx\csname @mpfootnotetext\endcsname\relax +\type@bawarn{No minipage-footnote numbers}% +\else +\let\ba@mpfootnotetext=\@mpfootnotetext +\long\def\@mpfootnotetext#1{\ba@mpfootnotetext{% + \global\let\thisto@ba=-% + \global\let\thisti@ba=-% + \global\let\thisp@ba=-% + \global\let\thisvol@ba=-% + \global\let\thiss@ba=-% + \global\let\thisn@ba=-% + \global\let\pos@ba=0% + \kern 0.1em\nulskip@ba{\@footnotetrue\ignorespaces + #1\nulskip@ba\ba@textmode}\global\let\lastto@ba=\thisto@ba + \global\let\lastti@ba=\thisti@ba + \global\let\lastp@ba=\thisp@ba + \global\let\lastvol@ba=\thisvol@ba + \global\let\lasts@ba=\thiss@ba + \global\let\lastn@ba=\thisn@ba}}% +\fi + + +\newif\if@baminipage\@baminipagefalse +\newif\if@bainnerminipage\@bainnerminipagefalse + +\let\ba@minipg=\minipage +\def\minipage{\if@baminipage\@bainnerminipagetrue\else + \savemem@ba\clearmem@ba + \global\let\lastto@ba=+% + \global\let\lastti@ba=+% + %\global\let\lastp@ba=-% + %\global\let\lastvol@ba=-% + %\global\let\lasts@ba=-% + \global\let\lastn@ba=-% + \global\let\pfilled@ba=-% + \global\let\pevofilled@ba=-% + \fi + \global\@baminipagetrue\ba@minipg} + +\let\ba@endminipg=\endminipage +\def\endminipage{\if@bainnerminipage\else + \restoremem@ba\global\@baminipagefalse\fi + \ba@endminipg} + +\def\savemem@ba{% + \global\let\Stmemo@ba=\tmemo@ba + \global\let\Stmemi@ba=\tmemi@ba + \global\let\Stref@ba=\tref@ba + \global\let\Snmem@ba=\nmem@ba + \global\let\Snref@ba=\nref@ba + \global\let\Spmem@ba=\pmem@ba + \global\let\Spref@ba=\pref@ba + \global\let\Svolmem@ba=\volmem@ba + \global\let\Svolref@ba=\volref@ba + \global\let\Ssmem@ba=\smem@ba + \global\let\Ssref@ba=\sref@ba + \global\let\Slastto@ba=\lastto@ba + \global\let\Slastti@ba=\lastti@ba + \global\let\Slastp@ba=\lastp@ba + \global\let\Slastvol@ba=\lastvol@ba + \global\let\Slasts@ba=\lasts@ba + \global\let\Slastn@ba=\lastn@ba + \global\let\Spfilled@ba=\pfilled@ba + \global\let\Svolfilled@ba=\pevofilled@ba + } + +\def\restoremem@ba{% + \global\let\tmemo@ba=\Stmemo@ba \global\let\Stmemo@ba\relax + \global\let\tmemi@ba=\Stmemi@ba \global\let\Stmemi@ba\relax + \global\let\tref@ba=\Stref@ba \global\let\Stref@ba\relax + \global\let\nmem@ba=\Snmem@ba \global\let\Snmem@ba\relax + \global\let\nref@ba=\Snref@ba \global\let\Snref@ba\relax + \global\let\pmem@ba=\Spmem@ba \global\let\Spmem@ba\relax + \global\let\pref@ba=\Spref@ba \global\let\Spref@ba\relax + \global\let\volmem@ba=\Svolmem@ba \global\let\Svolmem@ba\relax + \global\let\volref@ba=\Svolref@ba \global\let\Svolref@ba\relax + \global\let\smem@ba=\Ssmem@ba \global\let\Ssmem@ba\relax + \global\let\sref@ba=\Ssref@ba \global\let\Ssref@ba\relax + \global\let\lastto@ba=\Slastto@ba \global\let\Slastto@ba\relax + \global\let\lastti@ba=\Slastti@ba \global\let\Slastti@ba\relax + \global\let\lastp@ba=\Slastp@ba \global\let\Slastp@ba\relax + \global\let\lastvol@ba=\Slastvol@ba\global\let\Slastvol@ba\relax + \global\let\lasts@ba=\Slasts@ba \global\let\Slasts@ba\relax + \global\let\lastn@ba=\Slastn@ba \global\let\Slastn@ba\relax + \global\let\pfilled@ba=\Spfilled@ba\global\let\Spfilled@ba\relax + \global\let\pevofilled@ba=\Svolfilled@ba\global\let\Svolfilled@ba\relax + } + + + +\def\anon@ba{\nulskip@ba\setup@ba{\authoremph}{\cap@ba{anonymous}}} + +\def\@printvname#1#2#3#4{{\upshape + \def\@testa{#1}% + \def\@testb{#3}% + \def\@testc{\male}% + \ifx\@testa\@testc\def\@testa{}\fi + \ifx\@testb\@testc\def\@testb{}\fi + \def\@testc{\female}% + \ifx\@testa\@testc\def\@testa{}\fi + \ifx\@testb\@testc\def\@testb{}\fi + \ifx\@testa\@leer\ifx\@testb\@leer\anon@ba\fi\fi + \ifx\@testa\@leerz\ifx\@testb\@leer\anon@ba\fi\fi + \ifx\@testa\@leer\ifx\@testb\@leerz\anon@ba\fi\fi + \ifx\@testa\@leerz\ifx\@testb\@leerz\anon@ba\fi\fi + \ifx\@testa\@leer\else\ifx\@testa\@leerz\else + \ifnum #4=1% + \ifx\@testb\@leer\setup@ba{\authoremph}{#1}\else\ifx\@testb\@leerz\setup@ba{\authoremph}{#1}\else\setup@ba{\authoremph}{#1}{#2}\fi\fi %% kein \underline{#1#2} + \else\ifx\@testb\@leer{\ignorespaces #1\ba@textmode}\else\ifx\@testb\@leerz{\ignorespaces #1\ba@textmode}\else + {\ignorespaces #1#2\ba@textmode}\fi\fi + \fi + \fi\fi + \ifnum #4=0\setup@ba{\authoremph}{#3}\else{\ignorespaces #3\ba@textmode}\fi}} + +\def\@printkname#1{{% + \def\@testa{#1}% + \ifx\@testa\@leer\anon@ba\else + \ifx\@testa\@leerz\anon@ba\else + \setup@ba{\authoremph}{#1}\fi\fi}} + + +\newbox\testbox@ba + +\def\@printlastarg#1#2{{% + \setbox\testbox@ba=\hbox{#2{\ignorespaces #1\ba@textmode}}% + \ifdim\ht\testbox@ba=0pt% + \if@kxxba + \if@printhint + \else + \gdef\bakxxcorr{}% + \gdef\balistcorr{}% + \fi + \fi + \else + {\ntsep}{\unhbox\testbox@ba}% + \if@kxxba + \let\@testa=-\finddot@ba{#1}% + \ifx\@testa+\@bahasdot\fi + \let\@testb+% + \do@banohint{\let\@testb-}% + \ifx\@testb+% + \@bastrut + \ifx\@testa-{\bakxxcorr}\fi + \makecorrcmd@ba{}{\balistcorr}% + \else + \ifx\@testa+\gdef\bakxxcorr{}\fi + \ifx\@testa-\makecorrcmd@ba{\kxxemph}{\balistcorr}\else + \gdef\balistcorr{}\fi + \fi + \else + \if@vxxbalist + \init@bacorr{#1}{}{\balistcorr}% + \fi + \fi + \fi}} + + +\def\@printoptarg#1#2{{% + \def\@testa{#2}% + \setbox\testbox@ba=\hbox{\ignorespaces #1\ba@textmode}% + \ifdim\ht\testbox@ba=0pt\else + \ifx\@testa\@leer{\@leerz}\else %% space before *{...} %% + {#2}\fi\fi %% #2 is \nsep at \x... %% + {\unhbox\testbox@ba}}} + + +\newif\ifreprint@ba\reprint@bafalse +\newif\if@baktit\@baktitfalse +\def\@nobaktit#1{\if@baktit\else \ifmem@baouter\else + {\errorcontextlines=-1\@qqertypeout{...v#1}{(inner ...v#1-cmd)}% + \errhelp{ + ^^JIf you use a ...v#1-cmd inside the last arg of a ...v..-cmd, it is necessary + ^^Jto use \ktit{...} to mark a part of the inner title as short title, because, + ^^Jon the v#1-list, I transform inner full titles into short titles. For that + ^^Jlist, I've inserted `??' as inner short title. (In case of an inner \vli, or + ^^J\vqu, the inner full title will also be printed separately on the v..-list.)^^J}% + \errmessage@ba{Missing \string\ktit{...} in last arg}}\fi\fi} + +\def\@initvprintonly#1#2#3#4#5#6#7#8{{% %% #1 == li, qu %% + \resetcorr@ba + {\@memfunctions\@outsavety\@hereRfunctions\@hereFfunctions\fillnref@ba{#4}}% + \if@footnote\global\let\isibidem@ba=-\warn@baname{v#1}{#2}% + \if@baouter\global\let\nmem@ba=\nref@ba\fi + \fi + %%%% + \let\ifmem@baouter=\if@baouter + \@baouterfalse + \let\@firstherald=\if@heraldktit + \@heraldktitfalse + \ifmem@baouter{\filltmemo@ba{}{}{}{}}\else{\filltmemi@ba{}{}{}{}}\fi + \def\@testa{#6}% + \def\execute@ktit{\@nobaktit{#1}}% + \@baktitfalse + \def\ktit##1{\@baktittrue + \def\kurz{\kurz@ktit}% + \ba@varlabel{#4}{#5}{##1}% + \if@footnote + {\@memfunctions\@outsavety\@hereRfunctions\@hereFfunctions + \ifmem@baouter\filltmemo@ba{#1}{#4}{#5}{##1}\global\let\lastto@ba=+% + \else \filltmemi@ba{#1}{#4}{#5}{##1}\global\let\lastti@ba=+% + \fi}% + \fi + \if@makektitk{\@initaddtok{#4}{#5}{##1}{#1}{{\nsep}{#8}{v}}{1}}\fi + \ifreprint@ba \def\execute@ktit{{\@kxxbatrue\@kprintonly{#1}{#2}{#4}{#5}{##1}{#7}}}% + \else \def\execute@ktit{{\@firstherald\if@rheraldktit + \cap@ba{announcektit}\@rootponly{#1}{#4}*{#5}{##1}{#7}% + \do@banohint{{\bakxxcorr}}\cap@ba{announcekend}\fi\fi}}% + \fi ##1\ba@textmode}% + \ifreprint@ba + {\setbox\testbox@ba=\hbox{#6\relax + \if@baktit \global\let\gargc@ba=\execute@ktit + \else \gdef\gargc@ba{\@kxxbatrue\@kprintonly{#1}{#2}{#4}{#5}{\erri@ba}{#7}}% + \type@bawarn{Missing inner \string\ktit; use `??' as short title}% + \fi}% + {\@hereRfunctions\gargc@ba}% %% <-> \@rootponly %% + \global\let\gargc@ba=\relax + }% + \else + \ifx\@testa\@leer{\@vprintonly{#1}{#2}{#3}{#4}{#5}{}{#7}}\else + \ifx\@testa\@leerz{\@vprintonly{#1}{#2}{#3}{#4}{#5}{}{#7}}\else + {\@vprintonly{#1}{#2}{#3}{#4}{#5}{#6\relax\execute@ktit}{#7}}\fi\fi + \fi + }\if@footnote \if@baouter\makethiso@ba\else\makethisi@ba\fi \fi} + + +\def\clearmem@ba{{\@footnotetrue\filltmemo@ba{}{}{}{}\filltmemi@ba{}{}{}{}% + \fillpmem@ba{}{}\fillvolmem@ba{}\fillnmem@ba{}}} + +\def\filltmemo@ba#1#2#3#4{\if@footnote +\global\edef\tmemo@ba{{#1}{#2}{#3}{#4}}\fi} +{\@footnotetrue\filltmemo@ba{}{}{}{}} + +\def\filltmemi@ba#1#2#3#4{\if@footnote +\global\edef\tmemi@ba{{#1}{#2}{#3}{#4}}\fi} +{\@footnotetrue\filltmemi@ba{}{}{}{}} + +\def\filltref@ba#1#2#3#4{\if@footnote +\global\edef\tref@ba{{#1}{#2}{#3}{#4}}\fi} +{\@footnotetrue\filltref@ba{}{}{}{}} + +\def\fillnmem@ba#1{\if@footnote +\global\edef\nmem@ba{#1}\fi} +{\@footnotetrue\fillnmem@ba{}} + +\def\fillnref@ba#1{\if@footnote +\global\edef\nref@ba{#1}\fi} +{\@footnotetrue\fillnref@ba{}} + +\def\errmsg@bawarn#1#2#3{{\errorcontextlines=-1\type@bawarn{...#1-cmd}% + \protec@scr{ \space\space\space [#2] overwrites `{\nref@ba}',}% + \protec@scr{ \space\space\space but the foregoing #3.^^J^^J}}} + +\def\wrimsg@bawarn#1{\ifwriwarn@ba{#1}\{{\nref@ba}\}\penalty\@m \ \fi} + +\def\warn@baname#1#2{% + %%%% + \if@baouter + \ifx\thisn@ba+\ifx\nmem@ba\nref@ba\else\global\let\thisn@ba=.\fi\fi + \ifx\thisn@ba-\global\let\thisn@ba=+\fi + \fi + %%%% + {\if@wnsn + \def\@testa{#2}% + \ifx\isibidem@ba-% + \ifx\nmem@ba\nref@ba\ifx\lastn@ba+% + \ifx\@testa\@leer + \ifx\nmem@ba\@leer\else\ifx\nmem@ba\@leerz\else + \ifwriwarn@ba{$\bullet$\penalty\@m \ }\fi + \if@baouter \type@bawarn{...#1-cmd repeats (first) author's lastname}% + \else \type@bawarn{Inner ...#1-cmd repeats author's lastname}% + \fi + \protec@scr{ \space\space\space `{\nmem@ba}'. Change to `...#1[m,f,p]'??^^J}% + \fi\fi + \else + \wrimsg@bawarn{\boldmath$\heartsuit$}% + \fi + \fi\fi + \ifx\@testa\@leer\else + \ifx\lastn@ba-% + \wrimsg@bawarn{\boldmath$\nabla$}% + \errmsg@bawarn{#1}{#2}{footnote contains no authors (or is missed)}\fi + \ifx\lastn@ba+\ifx\nmem@ba\nref@ba\else + \wrimsg@bawarn{$\spadesuit$}% + \errmsg@bawarn{#1}{#2}{lastname is `{\nmem@ba}'}\fi\fi + \ifx\lastn@ba.% + \wrimsg@bawarn{$\clubsuit$}% + \errmsg@bawarn{#1}{#2}{footnote contains different authors}\fi + \fi + \fi + \fi}% + %%%% + \global\let\lastn@ba=+} + +\def\fillpmem@ba#1#2{\if@footnote +\global\edef\pmem@ba{{#1}{#2}}\fi} +{\@footnotetrue\fillpmem@ba{}{}} + +\def\fillpref@ba#1#2{\if@footnote +\global\edef\pref@ba{{#1}{#2}}\fi} +{\@footnotetrue\fillpref@ba{}{}} + +\def\fillvolmem@ba#1{\if@footnote +\global\edef\volmem@ba{#1}\fi} +{\@footnotetrue\fillvolmem@ba{}} + +\def\fillvolref@ba#1{\if@footnote +\global\edef\volref@ba{#1}\fi} +{\@footnotetrue\fillvolref@ba{}} + +\def\fillsmem@ba#1{\if@footnote +\global\edef\smem@ba{#1}\fi} +{\@footnotetrue\fillsmem@ba{}} + +\def\fillsref@ba#1{\if@footnote +\global\edef\sref@ba{#1}\fi} +{\@footnotetrue\fillsref@ba{}} + + +\def\@vprintonly#1#2#3#4#5#6#7{{% + \@herefunctions + \def\@testa{#2}% + \ifx\@testa\@leer \@printvname{#3}{\bastrut\ }{#4}{0}% + \@printoptarg{#5}{#7}% + \else\oletter@ba{v#1}{#2}{\@printoptarg{#5}{#7}}% + \fi %% #1 == li, qu %% + \@printlastarg{#6}{}\@heraldktitfalse}} + + + +\def\@initprinthint#1{\if@printhint + {\setbox\testbox@ba=\hbox{\cap@ba{hinttov#1}}% + \ifdim\ht\testbox@ba=0pt{ []}\else + \ifx\bakxxcorr\@leer \penalty\@m \ \else \ \fi + \unhbox\testbox@ba\fi}\fi} + %% \cap@ba{hinttovli} \cap@ba{hinttovqu} %% + +\def\@initkprintonly#1#2#3#4#5#6{\if@ibidemize\else\clearmem@ba\fi + \resetcorr@ba + {\@memfunctions\@outsavety\@herefunctions\filltref@ba{#1}{#3}{#4}{#5}\fillnref@ba{#3}}% + \makeibid@ba + \if@footnote\warn@baname{k#1}{#2}\fi + \ifx\isibidem@ba-{\@herefunctions\@kprintonly{#1}{#2}{#3}{#4}{#5}{#6}}% + \else\ibidemname@ba + \fi + \makelast@ba} + + +\def\getoletter@ba#1{\let\next@ba=#1} + +\def\oletter@ba#1#2#3{{% + \def\oarga@ba{}% + \let\oargb@ba=\strut + \setbox\testbox@ba=\hbox{\expandafter\getoletter@ba #2\relax + \ifx\next@ba m\getom@ba #2\fi + \ifx\next@ba f\getof@ba #2\fi + \ifx\next@ba p\getop@ba #2\fi + \ifx\next@ba m\else \ifx\next@ba f\else \ifx\next@ba p\else + \global\let\oarga@ba=\erri@ba + \errorcontextlines=-1\@qqerrmsg{...#1}{Bad syntax IN your [#2]-Arg.}% + \errmessage@ba{You only may use [m], [f], [p], [m{...}], [f{...}], OR [p{...}] there}\fi\fi\fi}% + {\oarga@ba}\ifx\oargb@ba\strut{#3}\else{\oargb@ba}\fi + \global\let\oarga@ba=\relax \global\let\oargb@ba=\relax}} + +\def\setoa@ba#1{\global\def\oarga@ba{\setup@ba{\edibidemph}{\cap@ba{#1}}}} + +\def\geto@ba#1#2{\setoa@ba{#1}\global\def\oargb@ba{#2}} + +\def\getom@ba m{\@ifnextchar\bgroup{\geto@ba{idem}}{\setoa@ba{idem}}} +\def\getof@ba f{\@ifnextchar\bgroup{\geto@ba{eadem}}{\setoa@ba{eadem}}} +\def\getop@ba p{\@ifnextchar\bgroup{\geto@ba{iidem}}{\setoa@ba{iidem}}} + + +\def\@kprintonly#1#2#3#4#5#6{{% + \makeXcorrcmd@ba{\kxxemph}{\bakxxcorr}% + \def\@testa{#2}% + \ifx\@testa\@leer \@printkname{#3}\@printoptarg{#4}{#6}% + \else \oletter@ba{k#1}{#2}{\@printoptarg{#4}{#6}}% + \fi}% + \@printlastarg{#5}{\kxxemph}% + \if@allowconferize + \ifba@varstring\ \ba@varref{#3}{#4}{#5}% + \else \@initprinthint{#1}% + \fi + \else \@initprinthint{#1}% %% #1 == li, qu %% + \fi} + + +\def\@rootponly#1#2*#3#4#5{{% + \makeXcorrcmd@ba{\kxxemph}{\bakxxcorr}% + \@hereRfunctions + \@printkname{#2}% + \@printoptarg{#3}{#5}% + {\@kxxbatrue\@printlastarg{#4}{\kxxemph}}% + \@initprinthint{#1}}} %% #1 == li, qu %% + + +%%%%% + + +\def\next@ba{} + +\def\getk@bapg#1]{\@bapg{#1}\bk@bapg} +\def\getxk@bapg#1]{\@baxpg{#1}\bk@bapg} +\def\getkf@bapg#1){\@bafolio{#1}\bk@bapg} +\def\getxkf@bapg#1){\@baxfolio{#1}\bk@bapg} +\def\getvolno@ba#1|{\initprintpevo@ba{#1}{vol}\ak@bapg} +\def\getperno@ba#1_{\initprintpevo@ba{#1}{per}\ak@bapg} + +\def\xk@bapg{\afterassignment\getxkch@bapg\let\next@ba= } +\def\getxkch@bapg{% + \ifx\next@ba[\let\next@ba=\getxk@bapg + \global\let\pfilled@ba=+% + \else + \ifx\next@ba(\let\next@ba=\getxkf@bapg + \global\let\pfilled@ba=+% + \fi\fi + \pknext@ba} + +\def\lessinfoerror@ba#1#2#3#4#5{\if@baouter{ \erri@ba}{\errorcontextlines-1% + \@qqertypeout{#2}{Automatic IBIDEM-setting in footnote:}% + \errhelp{ + ^^JThe BibArts command before has had a #1 as #2-number, + ^^Jbut the command now has none. The titles are the same. I set IBIDEM, + ^^Jbut did you mean the whole #5? Later, you may type `passim', + ^^Jor what you've forgotten, as #2-number. (Then, you may set your + ^^Jwhole BibArts-\cmd in {#4\cmd...}).^^J}% + \errmessage@ba{Same title, before with :#3:, has now no #1 number}}\else + \type@bawarn{Check #1 after inner IBIDEM}\fi} + +\def\do@banohint#1{\if@printhint\else\ifba@varstring\else #1\fi\fi} + +\def\makeendcorr@ba{\ifx\isibidem@ba-% + \ifx\next@ba,\else\ifx\next@ba.\else\ifx\next@ba\strut\else + \ifx\next@ba[\else\ifx\next@ba(\else\ifx\next@ba*\else\ifx\next@ba|\else\ifx\next@ba_\else + \if@kxxba\do@banohint{{\bakxxcorr}}\fi + \fi\fi\fi\fi\fi + \fi\fi\fi + \ifx\next@ba.% + \ifdim\lastskip=\notdotcode@ba + \if@kxxba\if@printhint\else{\bakxxcorr}\@banotdot\fi\fi + \fi + \fi + \fi + \ifx\next@ba.\else + \spacefactorM@ba + \fi} + +\let\pfilled@ba=- +\let\pevofilled@ba=- +\def\ak@bapg{\afterassignment\getakch@bapg\let\next@ba= } +\def\getakch@bapg{% + \ifx\last@ba-\makeendcorr@ba\fi + \global\let\last@ba=+% + \ifx\lockpevo@ba-\ifx\next@ba|\else\ifx\next@ba_\else + \if@pfvba + \ifx\isibidem@ba+\ifx\pevofilled@ba+% + \ifx\volref@ba\@leer\else\lessinfoerror@ba{no./vol}{_n_- or |n|}{{pervol}{\volref@ba}}{\notprintlongpervol}{series}\fi + \fi\fi + \fillvolmem@ba{}% + \global\let\pevofilled@ba=-% + \fi + \fi\fi\fi + \ifx\next@ba[% + \let\next@ba=\getk@bapg \if@pfvba\global\let\pfilled@ba=+\fi + \else\ifx\next@ba(% + \let\next@ba=\getkf@bapg \if@pfvba\global\let\pfilled@ba=+\fi + \else\ifx\next@ba*% + \let\next@ba=\xk@bapg + \else\ifx\next@ba|% + \ifx\lockpevo@ba-\if@pfvba\global\let\lockpevo@ba=+\fi + \let\next@ba=\getvolno@ba \if@pfvba\global\let\onlypevo@ba=+\fi + \fi \if@pfvba\global\let\pevofilled@ba=+\fi + \else\ifx\next@ba_% + \ifx\lockpevo@ba-\if@pfvba\global\let\lockpevo@ba=+\fi + \let\next@ba=\getperno@ba \if@pfvba\global\let\onlypevo@ba=+\fi + \fi \if@pfvba\global\let\pevofilled@ba=+\fi + \else + \if@pfvba + \ifx\isibidem@ba+\ifx\pfilled@ba+% + \lessinfoerror@ba{page/folio}{[n]- or (n)}{\pref@ba}{\notprintlongpagefolio}{document}% + \ifx\lockpevo@ba-% + \fillvolmem@ba{}% + \global\let\pevofilled@ba=-% + \fi + \fi\fi + \fillpmem@ba{}{}% + \global\let\pfilled@ba=-% + \ifx\next@ba.% + \ifx\isibidem@ba+% + \ifx\onlypevo@ba-% + \if@ibidhp\let\next@ba=\relax\spacefactorMMM@ba\fi + \fi + \fi + \else + \spacefactorM@ba \@bastrut + \fi + \fi\fi\fi\fi\fi\fi + \pknext@ba} %% ||__ %% + +\def\bk@bapg{\afterassignment\getbkch@bapg\let\next@ba= } +\def\getbkch@bapg{% + \ifx\next@ba.\if@ibidhp + \ifx\lookpage@ba+\let\next@ba=\relax\spacefactorMMM@ba\fi + \fi \else \spacefactorM@ba \@bastrut \fi + \pknext@ba} %% []()*[]*() %% + +\def\pknext@ba{% + \if@pfvba + \ifx.\next@ba + \iflasthasdot@ba{\strut\let\next@ba\relax}{}% + \iflastnotdot@ba{\strut\let\next@ba\relax}{}% + \spacefactorMMM@ba + \fi + \else \if@filesw \if@nobreak\ifvmode\nobreak\fi\fi \fi + \if@unusedbib\ignorespaces\else\@esphack\fi + \fi + \next@ba} + +\def\pkcheck@ba{% + \global\let\last@ba=-% + \global\let\onlypevo@ba=-% + \global\let\lockpevo@ba=-% + \if@unusedbib\@pfvbafalse\fi + \ak@bapg} +\def\pvcheck@ba{% + \global\let\isibidem@ba=-% + \global\let\lookpage@ba=-% + \pkcheck@ba} + + +%%%%% + + +\def\checkNvrun@AbcDe#1{\@kxxbafalse\@perbafalse\@ifnextchar[{\Check@LocalvArg{#1}}{\Check@LocalvArg{#1}[]}} + +\def\Check@LocalvArg#1[#2]{\@ifnextchar\bgroup{\Check@ObligatoryvArgA{#1}[#2]}% + {\Check@ObligatoryvArgA{#1}[#2]{\erri@ba}}} + +\def\Check@ObligatoryvArgA#1[#2]#3{\@ifnextchar\bgroup{\Check@ObligatoryvArgB{#1}[#2]{#3}}% + {{\errorcontextlines=-1\@qqerrhlp{#1}% + \Check@ObligatoryvArgB{#1}[#2]{#3}{\erri@ba}% + \errmessage@ba{#1 - CONTINUE - : \space Missing author's \ifx\erri@ba #3firstname(s) and \fi lastname as \ifx\erri@ba #3{a1}\fi{a2}}}}} + +\def\Check@ObligatoryvArgB#1[#2]#3#4{\@ifnextchar *{\Check@OptionalvStar{#1}[#2]{#3}{#4}}% + {\Check@OptionalvArg{#1}[#2]{#3}{#4}*{}}} + +\def\Check@OptionalvStar#1[#2]#3#4*{\@ifnextchar\bgroup{\Check@OptionalvArg{#1}[#2]{#3}{#4}*}% + {\Check@OptionalvArg{#1}[#2]{#3}{#4}*{\erri@ba}}} + +\def\Check@OptionalvArg#1[#2]#3#4*#5{\@ifnextchar\bgroup{\Check@ObligatoryLastvArg{#1}[#2]{#3}{#4}*{#5}}% + {{\errorcontextlines=-1\@qqerrmsg{#1}{Registered lastname (a2): {#4}}% + \Check@ObligatoryLastvArg{#1}[#2]{#3}{#4}*{#5}{\erri@ba}% + \errmessage@ba{#1: \space Missing OBLIGATORY Arg3 (LastArg). \space You may choose, + ^^J \space when you fix the problem later: \space Type a full-cited title as {a3}, + ^^J \space OR set `*'-option, and type supplements and a full title as *{op}{a3}}}}} + +\def\Check@ObligatoryLastvArg#1[#2]#3#4*#5#6{\csname @#1\endcsname[#2]{#3}{#4}*{#5}{#6\@leer}\pvcheck@ba} + + + + +\def\checkNkrun@AbCd#1{\@kxxbatrue\@perbafalse\@ifnextchar[{\Check@LocalkArg{#1}}{\Check@LocalkArg{#1}[]}} + +\def\Check@LocalkArg#1[#2]{\@ifnextchar\bgroup{\Check@ObligatorykArgA{#1}[#2]}% + {{\errorcontextlines=-1\@qqerrhlp{#1}% + \Check@ObligatorykArgA{#1}[#2]{\erri@ba}% + \errmessage@ba{#1 - CONTINUE - : + ^^J \space Missing even author's lastname as {a1}}}}} + +\def\Check@ObligatorykArgA#1[#2]#3{\@ifnextchar *{\Check@OptionalkStar{#1}[#2]{#3}}% + {\Check@OptionalkArg{#1}[#2]{#3}*{}}} + +\def\Check@OptionalkStar#1[#2]#3*{\@ifnextchar\bgroup{\Check@OptionalkArg{#1}[#2]{#3}*}% + {\Check@OptionalkArg{#1}[#2]{#3}*{\erri@ba}}} + +\def\Check@OptionalkArg#1[#2]#3*#4{\@ifnextchar\bgroup{\Check@ObligatoryLastkArg{#1}[#2]{#3}*{#4}}% + {{\errorcontextlines=-1\@qqerrmsg{#1}{Registered lastname (a1): {#3}}% + \Check@ObligatoryLastkArg{#1}[#2]{#3}*{#4}{\erri@ba}% + \errmessage@ba{#1: \space Missing OBLIGATORY Arg2 (LastArg). \space You may choose, + ^^J \space when you fix the problem later: \space Type a short-cited title as {a2}, + ^^J \space OR set `*'-option, and type supplements and a short title as *{op}{a2}}}}} + +\def\Check@ObligatoryLastkArg#1[#2]#3*#4#5{\csname @#1\endcsname[#2]{#3}*{#4}{#5}\pkcheck@ba} + + +%%%%%% + + +\def\type@bawarn#1{\typeout@ba{ \space BibArts Warning: #1 on input line \line@ba.}} + +\def\protec@scr#1{{\@outsavety\@memfunctions\message{#1}}} + +\def\@qqertypeout#1#2{% + \typeout@ba{^^J \space ** Arg(s) of BibArts' #1-command: Error around line \line@ba!}% + \protec@scr{ \space\space\space\space #2}% + \typeout@ba{ \space <H><return> \space for immediate help, + ^^J \space <return> \space\space\space\space to continue.}} + +\def\command@misplace#1{\type@bawarn{\string#1\space was ignored: + ^^J\space\space\space\space You've used it outside the args of ....li, ....qu, ...per, or ...arq}} + +\def\@qqerrhlp#1{\errhelp{% + ^^JTeX reports errors by SETTING UP in quoting your text - AFTER the error. + ^^JIn case of footnotes, TeX reports only the end of the last footnote-line. + ^^JIf TeX quotes nothing HERE, you've forgotten to type an/some argument(s).^^J + ^^J...v..-commands have syntax ...v..{a1}{a2}{a3} , or ...v..{a1}{a2}*{op}{a3} + ^^J...k..-commands have syntax ...k..{a1}{a2} , or ...k..{a1}*{op}{a2} + ^^J -- you may use an op-Arg as [m,f,p] after ...v..- or ...k...commands -- + ^^J...per-commands have syntax ...per {periodical revue name} + ^^J...arq-commands have syntax ...arq {source-doc} {archive-abbrev./shelfmark}^^J + ^^JAdd numbers as |volume| and/or [page] or (folio) immediate after the last arg.^^J + ^^JI've inserted arg(s) for that/those you probably have forgotten to type + ^^Jbehind your #1-command. I put `??' into that/those arg(s). + ^^JThat should fix the problem for the moment. <return> to continue.^^J}} + +\def\@fqerrhlp#1{\errhelp{% + ^^JCommands \addtogrr, \addtosrr, and \addtoprr have ONE {arg} . Their + ^^Jfill...-commands have syntax e.g. \fillgrr{arg} {additional text to arg} ; + ^^Jand \per{arg} could also be filled in the list with \fillper{arg} {add} : + ^^J{arg} always should be identical to the ONE {arg} of the base command. + ^^JAbbreviation definitions are ...abkdef{arg}{def} and ...defabk{def}{arg} + ^^Jto write out \abk{a.b.c.} ; no fill-commands exist for abbreviations. + ^^JIn case of \arq{document/paper} {archive/shelfmark} , only the second arg + ^^Jgoes to the list - where \arqsection{s1} {s2} could create a heading: + ^^Js1 should BEGIN with the same characters as does {archive/shelfmark}, + ^^Jbut s1 should have NOT ALL the characters of {archive/shelfmark} + ^^J(e.g. \arq{X to Y} {PRO~1} and \arqsection{PRO} {Public Record Office} ). + ^^J\fillarq{PRO~1} {Name of the file} could FILL the second arg of \arq.^^J + ^^JI've inserted default-arg(s) for that/those you probably have forgotten + ^^Jto type behind your #1-command. You have to fix that problem later. + ^^J<return> to continue.^^J}} + +\def\@qqerrmsg#1#2{\@qqerrhlp{#1}\@qqertypeout{#1}{#2}} +\def\@fqerrmsg#1{\@fqerrhlp{#1}\@qqertypeout{#1}{...}} + + +%%%%%% + + + %% VOLLZITATE: LITERATUR, GEDRUCKTE QUELLEN %% + + %% Benutzeranwendungen %% + + +\def\shadowv{\@bsphack\@pfvbafalse\checkNvrun@AbcDe{shadowv}} %% ... \@shadowv + + +\DeclareRobustCommand\vli{\dofrco@ba\@pfvbatrue\leavevmode\checkNvrun@AbcDe{vli}} %% ... \@vli + +\DeclareRobustCommand\vqu{\dofrco@ba\@pfvbatrue\leavevmode\checkNvrun@AbcDe{vqu}} %% ... \@vqu + + +\DeclareRobustCommand\printonlyvli{\dofrco@ba\@pfvbatrue\checkNvrun@AbcDe{printonlyvli}} %% ... \@printonlyvli + +\DeclareRobustCommand\printonlyvqu{\dofrco@ba\@pfvbatrue\checkNvrun@AbcDe{printonlyvqu}} %% ... \@printonlyvqu + + +\DeclareRobustCommand\addtovli{\@bsphack\@pfvbafalse\checkNvrun@AbcDe{addtovli}} %% ... \@addtovli + +\DeclareRobustCommand\addtovqu{\@bsphack\@pfvbafalse\checkNvrun@AbcDe{addtovqu}} %% ... \@addtovqu + + + +\DeclareRobustCommand\xvli{\dofrco@ba\@pfvbatrue\leavevmode\checkNvrun@AbcDe{xvli}} %% ... \@xvli + +\DeclareRobustCommand\xvqu{\dofrco@ba\@pfvbatrue\leavevmode\checkNvrun@AbcDe{xvqu}} %% ... \@xvqu + + +\DeclareRobustCommand\xprintonlyvli{\dofrco@ba\@pfvbatrue\checkNvrun@AbcDe{xprintonlyvli}} %% ... \@xprintonlyvli + +\DeclareRobustCommand\xprintonlyvqu{\dofrco@ba\@pfvbatrue\checkNvrun@AbcDe{xprintonlyvqu}} %% ... \@xprintonlyvqu + + +\DeclareRobustCommand\xaddtovli{\@bsphack\@pfvbafalse\checkNvrun@AbcDe{xaddtovli}} %% ... \@xaddtovli + +\DeclareRobustCommand\xaddtovqu{\@bsphack\@pfvbafalse\checkNvrun@AbcDe{xaddtovqu}} %% ... \@xaddtovqu + + + + + %% Interna %% + + +\def\@shadowv[#1]#2#3*#4#5{} + + +\def\@vli[#1]#2#3*#4#5{\@addtovli[]{#2}{#3}*{#4}{#5}\@printonlyvli[#1]{#2}{#3}*{#4}{#5}} + +\def\@vqu[#1]#2#3*#4#5{\@addtovqu[]{#2}{#3}*{#4}{#5}\@printonlyvqu[#1]{#2}{#3}*{#4}{#5}} + -\def\schrift{\sf} +\def\@xvli[#1]#2#3*#4#5{\@xaddtovli[]{#2}{#3}*{#4}{#5}\@xprintonlyvli[#1]{#2}{#3}*{#4}{#5}} +\def\@xvqu[#1]#2#3*#4#5{\@xaddtovqu[]{#2}{#3}*{#4}{#5}\@xprintonlyvqu[#1]{#2}{#3}*{#4}{#5}} - -%% Die Schrift, in der das mit \printvli aufgerufene -%% Literatur-Verzeichnis und das mit \printvqu -%% aufgerufene Quellen-Verzeichnis ausgedruckt wird: -\def\barschrift{\small} +\def\@printonlyvli[#1]#2#3*#4#5{\@initvprintonly{li}{#1}{#2}{#3}{#4}{#5}{}{false}} +\def\@printonlyvqu[#1]#2#3*#4#5{\@initvprintonly{qu}{#1}{#2}{#3}{#4}{#5}{}{false}} -%% Die Schrift, in der Stichworte und Seitenzahlen -%% des Index ausgedruckt werden: -\def\indschrift{\sf} +\def\@xprintonlyvli[#1]#2#3*#4#5{\@initvprintonly{li}{#1}{#2}{#3}{#4}{#5}{\nsep}{true}} +\def\@xprintonlyvqu[#1]#2#3*#4#5{\@initvprintonly{qu}{#1}{#2}{#3}{#4}{#5}{\nsep}{true}} -\def\authorstress#1{\csname\@stress\endcsname{#1}} -%% Nur Ausdruck an Ort und Stelle: +\def\@addtovli[#1]#2#3*#4#5{\@initaddtovli{#2}{#3}{#4}{#5}{{\nsep}{false}}} -\def\printonlyvli#1#2#3{{\schrift #1 {\authorstress{#2}}{\punctuation} #3}} -\def\printonlyvqu#1#2#3{{\schrift #1 {\authorstress{#2}}{\punctuation} #3}} -\def\printonlybib#1{{\schrift #1}} +\def\@addtovqu[#1]#2#3*#4#5{\@initaddtovqu{#2}{#3}{#4}{#5}{{\nsep}{false}}} +\def\@xaddtovli[#1]#2#3*#4#5{\@initaddtovli{#2}{#3}{#4}{#5}{{\nsep}{true}}} -%% Nur schreiben ins Auswurffile: +\def\@xaddtovqu[#1]#2#3*#4#5{\@initaddtovqu{#2}{#3}{#4}{#5}{{\nsep}{true}}} -\def\addtovli#1#2#3{\ifbibarts\@vli{{\authorstress{#2}}, {#1}{\punctuation} {#3}}\fi} -\def\addtovqu#1#2#3{\ifbibarts\@vqu{{\authorstress{#2}}, {#1}{\punctuation} {#3}}\fi} -\def\addtobib#1{\ifbibarts\@bib{#1:}\fi} +\def\@initaddtovli#1#2#3#4#5{\if@filesw {\let\thepage\relax + \@outsavety\@outfunctions + \edef\@tempa{\write\@auxout{\commentch@ba\string + \literentry{#2}{#1}{#3}{#4}{#5{}}{\setn@ba}[\catq@ba][\lang@ba](line \line@ba)}}% + \expandafter}\@tempa \fi} -%% Schreiben an Ort und Stelle und ins Auswurffile: +\def\@initaddtovqu#1#2#3#4#5{\if@filesw {\let\thepage\relax + \@outsavety\@outfunctions + \edef\@tempa{\write\@auxout{\commentch@ba\string + \quellentry{#2}{#1}{#3}{#4}{#5{}}{\setn@ba}[\catq@ba][\lang@ba](line \line@ba)}}% + \expandafter}\@tempa \fi} -\def\vli#1#2#3{\addtovli{#1}{#2}{#3}\printonlyvli{#1}{#2}{#3}} -\def\vqu#1#2#3{\addtovqu{#1}{#2}{#3}\printonlyvqu{#1}{#2}{#3}} -\def\bib#1{\addtobib{#1}\printonlybib{#1}} +\def\literentry#1#2#3#4#5#6[#7][#8](#9){} -%% Erzeugen von "Kapitell-Ueberschriften" in den Listen: +\def\quellentry#1#2#3#4#5#6[#7][#8](#9){} -\def\KapSchr{\large\bf} -\def\Kapitell{% -\@Kapitell{a}{A} -\@Kapitell{b}{B} -\@Kapitell{c}{C} -\@Kapitell{d}{D} -\@Kapitell{e}{E} -\@Kapitell{f}{F} -\@Kapitell{g}{G} -\@Kapitell{h}{H} -\@Kapitell{i}{I} -\@Kapitell{j}{J} -\@Kapitell{k}{K} -\@Kapitell{l}{L} -\@Kapitell{m}{M} -\@Kapitell{n}{N} -\@Kapitell{o}{O} -\@Kapitell{p}{P} -\@Kapitell{q}{Q} -\@Kapitell{r}{R} -\@Kapitell{s}{S} -\@Kapitell{t}{T} -\@Kapitell{u}{U} -\@Kapitell{v}{V} -\@Kapitell{w}{W} -\@Kapitell{x}{X} -\@Kapitell{y}{Y} -\@Kapitell{z}{Z} +%%%%%% + + + %% KURZZITATE: LITERATUR, GEDRUCKTE QUELLEN %% + + %% Benutzeranwendungen %% + + +\def\shadowk{\@bsphack\@pfvbafalse\checkNkrun@AbCd{shadowk}} %% ... \@shadowk + + +\DeclareRobustCommand\kli{\dofrco@ba\@pfvbatrue\leavevmode\checkNkrun@AbCd{kli}} %% ... \@kli + +\DeclareRobustCommand\kqu{\dofrco@ba\@pfvbatrue\leavevmode\checkNkrun@AbCd{kqu}} %% ... \@kqu + + +\DeclareRobustCommand\printonlykli{\dofrco@ba\@pfvbatrue\checkNkrun@AbCd{printonlykli}} %% ... \@printonlykli + +\DeclareRobustCommand\printonlykqu{\dofrco@ba\@pfvbatrue\checkNkrun@AbCd{printonlykqu}} %% ... \@printonlykqu + + +\DeclareRobustCommand\addtokli{\@bsphack\@pfvbafalse\checkNkrun@AbCd{addtokli}} %% ... \@addtokli + +\DeclareRobustCommand\addtokqu{\@bsphack\@pfvbafalse\checkNkrun@AbCd{addtokqu}} %% ... \@addtokqu + + + +\DeclareRobustCommand\xkli{\dofrco@ba\@pfvbatrue\leavevmode\checkNkrun@AbCd{xkli}} %% ... \@xkli + +\DeclareRobustCommand\xkqu{\dofrco@ba\@pfvbatrue\leavevmode\checkNkrun@AbCd{xkqu}} %% ... \@xkqu + + +\DeclareRobustCommand\xprintonlykli{\dofrco@ba\@pfvbatrue\checkNkrun@AbCd{xprintonlykli}} %% ... \@xprintonlykli + +\DeclareRobustCommand\xprintonlykqu{\dofrco@ba\@pfvbatrue\checkNkrun@AbCd{xprintonlykqu}} %% ... \@xprintonlykqu + + +\DeclareRobustCommand\xaddtokli{\@bsphack\@pfvbafalse\checkNkrun@AbCd{xaddtokli}} %% ... \@xaddtokli + +\DeclareRobustCommand\xaddtokqu{\@bsphack\@pfvbafalse\checkNkrun@AbCd{xaddtokqu}} %% ... \@xaddtokqu + + + + + %% Interna %% + + +\def\@shadowk[#1]#2*#3#4{} + + +\def\@kli[#1]#2*#3#4{\@addtokli[]{#2}*{#3}{#4}\@printonlykli[#1]{#2}*{#3}{#4}} + +\def\@kqu[#1]#2*#3#4{\@addtokqu[]{#2}*{#3}{#4}\@printonlykqu[#1]{#2}*{#3}{#4}} + + +\def\@xkli[#1]#2*#3#4{\@xaddtokli[]{#2}*{#3}{#4}\@xprintonlykli[#1]{#2}*{#3}{#4}} + +\def\@xkqu[#1]#2*#3#4{\@xaddtokqu[]{#2}*{#3}{#4}\@xprintonlykqu[#1]{#2}*{#3}{#4}} + + +\def\@printonlykli[#1]#2*#3#4{\@initkprintonly{li}{#1}{#2}{#3}{#4}{}} + +\def\@printonlykqu[#1]#2*#3#4{\@initkprintonly{qu}{#1}{#2}{#3}{#4}{}} + + +\def\@xprintonlykli[#1]#2*#3#4{\@initkprintonly{li}{#1}{#2}{#3}{#4}{\nsep}} + +\def\@xprintonlykqu[#1]#2*#3#4{\@initkprintonly{qu}{#1}{#2}{#3}{#4}{\nsep}} + + +\def\@addtokli[#1]#2*#3#4{\@initaddtok{#2}{#3}{#4}{li}{{\nsep}{false}{k}}{0}} + +\def\@addtokqu[#1]#2*#3#4{\@initaddtok{#2}{#3}{#4}{qu}{{\nsep}{false}{k}}{0}} + + +\def\@xaddtokli[#1]#2*#3#4{\@initaddtok{#2}{#3}{#4}{li}{{\nsep}{true}{k}}{0}} + +\def\@xaddtokqu[#1]#2*#3#4{\@initaddtok{#2}{#3}{#4}{qu}{{\nsep}{true}{k}}{0}} + + +\def\@initaddtok#1#2#3#4#5#6{\if@filesw {\let\thepage\relax + \@outsavety\@outfunctions \ifnum#6=1\@hereFfunctions\fi + \edef\@tempa{\write\@auxout{\commentch@ba\string + \vkcitentry{#1}{#2}{#3}{#4}{#5}{\setn@ba}[\catq@ba][\lang@ba](line \line@ba)}}% + \expandafter}\@tempa \fi} + + +\def\vkcitentry#1#2#3#4#5#6[#7][#8](#9){} + +%%%%%% + + + %% ZEITSCHRIFTEN und ARCHIVQUELLEN %% + + %% Benutzeranwendungen %% + +\def\checkNonerun@a#1{\@kxxbafalse\@perbatrue\@ifnextchar\bgroup{\Check@perArg{#1}}{% + {\errorcontextlines=-1\@qqerrmsg{#1}{...}% + \Check@perArg{#1}{\erri@ba}% + \errmessage@ba{#1: Missing Arg (periodical revue name)}}}} + +\def\Check@perArg#1#2{\csname @#1\endcsname{#2}\pkcheck@ba} + + +\def\checkNtworun@ab#1{\@kxxbafalse\@perbafalse\@ifnextchar[{\Check@LocalarqArg{#1}}{\Check@LocalarqArg{#1}[]}} + +\def\Check@LocalarqArg#1[#2]{\@ifnextchar\bgroup{\Check@arqArga{#1}[#2]}{% + {\Check@arqArga{#1}[#2]{\erri@ba}}}} + +\def\Check@arqArga#1[#2]#3{\@ifnextchar\bgroup{\Check@arqArgb{#1}[#2]{#3}}{% + {\errorcontextlines=-1\@qqerrmsg{#1}{Registered doc (a1): {#3}}% + \Check@arqArgb{#1}[#2]{#3}{\erri@ba}% + \errmessage@ba{#1: Missing second Arg (archive abbrev./shelfmark [title])}}}} + +\def\Check@arqArgb#1[#2]#3#4{\csname @#1\endcsname[#2]{#3}{#4}\pkcheck@ba} + + +\def\checkNrun@one#1{\@ifnextchar\bgroup{\Check@oneArg{#1}}{% + {\errorcontextlines=-1\@fqerrmsg{#1}% + \Check@oneArg{#1}{}\errmessage@ba{#1: \space Missing Arg}}}} + +\def\Check@oneArg#1#2{\csname @#1\endcsname{#2}} + + +\def\checkNrun@two#1{\@ifnextchar\bgroup{\Check@FirstOfTwoArgs{#1}}{% + {\Check@FirstOfTwoArgs{#1}{}}}} + +\def\Check@FirstOfTwoArgs#1#2{\@ifnextchar\bgroup{\Check@SecondOfTwoArgs{#1}{#2}}{% + {\errorcontextlines=-1\@fqerrmsg{#1}% + \Check@SecondOfTwoArgs{#1}{#2}{\erri@ba}{\@outsavety\@memfunctions\errmessage@ba{#1: \space Missing 2nd Arg (after `#2')}}}}} + +\def\Check@SecondOfTwoArgs#1#2#3{\csname @#1\endcsname{#2}{#3}} + + +\def\shadowone{\checkNrun@one{shadowone}} %% \@shadowone %% +\def\shadowtwo{\checkNrun@two{shadowtwo}} %% \@shadowtwo %% + +\def\shadowo{\@bsphack\@pfvbafalse\checkNonerun@a{shadowo}} %% \@shadowo +\def\shadowt{\@bsphack\@pfvbafalse\checkNtworun@ab{shadowt}} %% \@shadowt + +\DeclareRobustCommand\per{\dofrco@ba\@pfvbatrue\leavevmode\checkNonerun@a{per}} %% \@per +\DeclareRobustCommand\arq{\dofrco@ba\@pfvbatrue\leavevmode\checkNtworun@ab{arq}} %% \@arq + +\DeclareRobustCommand\printonlyper{\dofrco@ba\@pfvbatrue\checkNonerun@a{printonlyper}} %% \@printonlyper +\DeclareRobustCommand\printonlyarq{\dofrco@ba\@pfvbatrue\checkNtworun@ab{printonlyarq}} %% \@printonlyarq + +\DeclareRobustCommand\addtoper{\@bsphack\@pfvbafalse\checkNonerun@a{addtoper}} %% \@addtoper +\DeclareRobustCommand\addtoarq{\@bsphack\@pfvbafalse\checkNtworun@ab{addtoarq}} %% \@addtoarq + + + %% Interna %% + +\def\@shadowo#1{} +\def\@shadowt[#1]#2#3{} + +\def\@shadowone#1{\@bsphack\if@unusedbib\ignorespaces\else\@esphack\fi} +\def\@shadowtwo#1#2{\@bsphack\if@unusedbib\ignorespaces\else\@esphack\fi} + +\def\@per#1{\@addtoper{#1}\@printonlyper{#1}} +\def\@arq[#1]#2#3{\@initaddtoarq[\ifx#1\@leer\else\lbrack #1\rbrack\space\space\fi]{#2}{#3}\@printonlyarq[#1]{#2}{#3}} + +\def\@printonlyper#1{\if@ibidemize\else\clearmem@ba\fi + \resetcorr@ba + {\@memfunctions\@outsavety\@herefunctions\filltref@ba{per}{#1}{}{}\fillnref@ba{}}% + \makeibid@ba + \nulskip@ba + \ifx\isibidem@ba-{\@herefunctions\setup@ba{\peremph}{#1}}% + \let\@testa=-\finddot@ba{#1}% + \ifx\@testa+\@bahasdot\fi + \else + \ibidemname@ba + \fi + \makelast@ba} + +\def\@printonlyarq[#1]#2#3{\if@ibidemize\else\clearmem@ba\fi + \resetcorr@ba + {\@memfunctions\@outsavety\@herefunctions\filltref@ba{arq}{#3}{}{}\fillnref@ba{}}% + \makeibid@ba + \nulskip@ba + \initprints@ba{#1}{#2}% + \ifx\isibidem@ba-{\@herefunctions\setup@ba{\arqemph}{#3}}% + \let\@testa=-\finddot@ba{#3}% + \ifx\@testa+\@bahasdot\fi + \else + \ibidemname@ba + \fi + \makelast@ba} + +\def\@addtoper#1{\if@filesw {\let\thepage\relax + \@outsavety\@outfunctions + \edef\@tempa{\write\@auxout{\commentch@ba\string + \perioentry{#1}{}{{}{}{}{}}{\setn@ba}[\catq@ba][\lang@ba](line \line@ba)}}% + \expandafter}\@tempa \fi} + +\DeclareRobustCommand\fillper{\checkNrun@two{fillper}} +\def\@fillper#1#2{\@bsphack \if@filesw {\let\thepage\relax + \@outsavety\@outfunctions + \edef\@tempa{\write\@auxout{\commentch@ba\string + \perioentry{#1}{#2}{{\perlistopen}{\perlistclose}{}{}}{{}{}{-}}[\catq@ba][\lang@ba](line \line@ba)}}% + \expandafter}\@tempa \fi + \if@unusedbib\ignorespaces\else\@esphack\fi} + +\def\@addtoarq[#1]#2#3{\@initaddtoarq[]{#2}{#3}} + +\def\@initaddtoarq[#1]#2#3{\if@filesw {\let\thepage\relax + \@outsavety\@outfunctions + \edef\@tempa{\write\@auxout{\commentch@ba\string + \archqentry{#3}{}{{}{}{}{}}{\setn@ba}[\catq@ba][\lang@ba](line \line@ba) + \space\commentch@ba\commentch@ba \space + \if@unusedbib (u) \space \else \if@footnote\if@baminipage (mpf) \else (f) \fi \space \fi\fi + #1#2 \commentch@ba\commentch@ba}}% + \expandafter}\@tempa \fi} + +\DeclareRobustCommand\fillarq{\checkNrun@two{fillarq}} +\def\@fillarq#1#2{\@bsphack \if@filesw {\let\thepage\relax + \@outsavety\@outfunctions + \edef\@tempa{\write\@auxout{\commentch@ba\string + \archqentry{#1}{#2}{{\arqlistopen}{\arqlistclose}{}{}}{{}{}{-}}[\catq@ba][\lang@ba](line \line@ba)}}% + \expandafter}\@tempa \fi + \if@unusedbib\ignorespaces\else\@esphack\fi} + +\DeclareRobustCommand\arqsection{\checkNrun@aBC{arqsection}} +\DeclareRobustCommand\arqsubsection{\checkNrun@aBC{arqsubsection}} +\DeclareRobustCommand\arqsubsubsection{\checkNrun@aBC{arqsubsubsection}} + +\def\checkNrun@aBC#1{\@ifnextchar[{\Check@optionOfarqsec{#1}}% + {\Check@optionOfarqsec{#1}[]}} + +\def\Check@optionOfarqsec#1[#2]{\@ifnextchar\bgroup{\Check@FirstOfarqsec{#1}[#2]}{% + {\Check@FirstOfarqsec{#1}[#2]{}}}} + +\def\Check@FirstOfarqsec#1[#2]#3{\@ifnextchar\bgroup{\Check@SecondOfarqsec{#1}[#2]{#3}}{% + {\errorcontextlines=-1\@fqerrmsg{#1}% + \Check@SecondOfarqsec{#1}[#2]{#3}{\erri@ba}{\@outsavety\@memfunctions\errmessage@ba{#1: \space Missing 2nd Arg}}}}} + +\def\Check@SecondOfarqsec#1[#2]#3#4{\csname @#1\endcsname{#2}{#3}{#4}} + + +\def\@arqsection#1#2#3{\@arqcontent{#2}{#3}{\arqsectionopen}{\arqsectionclose}{1}{#1}} +\def\@arqsubsection#1#2#3{\@arqcontent{#2}{#3}{\arqsubsectionopen}{\arqsubsectionclose}{2}{#1}} +\def\@arqsubsubsection#1#2#3{\@arqcontent{#2}{#3}{\arqsubsubsectionopen}{\arqsubsubsectionclose}{3}{#1}} +\def\@arqcontent#1#2#3#4#5#6{\@bsphack \if@filesw {\let\thepage\relax + \@outsavety\@outfunctions + \edef\@tempa{\write\@auxout{\commentch@ba\string + \archqentry{#1}{#2}{{#3}{#4}{#5}{#6}}{{}{}{-}}[\catq@ba][\lang@ba](line \line@ba)}}% + \expandafter}\@tempa \fi + \if@unusedbib\ignorespaces\else\@esphack\fi} + + +\def\perioentry#1#2#3#4[#5][#6](#7){} +\def\archqentry#1#2#3#4[#5][#6](#7){} + + +%%%%%% + + + %% ABKUERZUNGEN %% + +\def\abkemph{\sffamily} +\def\dofrco@baabk{\ba@textmode + \if@bafrontcorr{\abkemph{\ifdim\fontdimen\@ne\font=\z@\dofrco@ba@abk\fi}}\fi} + +\def\next@printabk{\afterassignment\@makeendabk\let\next@ba= } +\def\@makeendabk{\ifx\next@ba,% + \else\ifx\next@ba.% + \iflasthasdot@ba{\strut\let\next@ba\relax}{}% + \iflastnotdot@ba{\strut\let\next@ba\relax\baabkcorr}{}% + \spacefactorMMM@ba + \else\ifx\next@ba\strut + \nulskip@ba\strut\let\next@ba\relax + \else\nulskip@ba\strut\baabkcorr\fi\fi\fi + \next@ba} +\def\@abk#1{\@initaddtoabk{#1}\@printonlyabk{#1}% + \let\@testa=-\finddot@ba{#1}% + \ifx\@testa+\@bahasdot\fi + \next@printabk} +\DeclareRobustCommand\abk{\dofrco@baabk\leavevmode\resetcorr@ba\checkNrun@one{abk}} %% \@abk %% + +\def\@printonlyabk#1{{\@herefunctions\printfirstarg@ba{\abkemph}{#1}{abk...}}% + \init@baXcorr{#1}{\abkemph}{\baabkcorr}} + +\def\@cprintonlyabk#1{\@printonlyabk{#1}% + \let\@testa=-\finddot@ba{#1}% + \ifx\@testa+\@bahasdot\fi + \next@printabk} +\DeclareRobustCommand\printonlyabk{\dofrco@baabk\resetcorr@ba\checkNrun@one{cprintonlyabk}} %% \@cprintonlyabk %% + +\def\@addtoabk#1{\@initaddtoabk{#1}} +\DeclareRobustCommand\addtoabk{\checkNrun@one{addtoabk}} %% \@addtoabk %% + +\def\@abkdef#1#2{\@initabkdef{#1}{#2}\@printonlyabkdef{#1}{#2}} +\DeclareRobustCommand\abkdef{\dofrco@baabk\leavevmode\resetcorr@ba\checkNrun@two{abkdef}} %% \@abkdef %% + +\def\@defabk#1#2{\@initabkdef{#2}{#1}\@printonlydefabk{#1}{#2}} +\DeclareRobustCommand\defabk{\ba@textmode\leavevmode\resetcorr@ba\checkNrun@two{defabk}} %% \@defabk %% + +\def\@printonlyabkdef#1#2{\@printonlyabk{#1}\strut + {\@herefunctions\@banonumtrue\printsecondarg@ba{\abkdefopen}{#2}{\abkdefclose}{\abkemph}}\next@printabk} +\DeclareRobustCommand\printonlyabkdef{\dofrco@baabk\resetcorr@ba\checkNrun@two{printonlyabkdef}} %% \@printonlyabkdef %% + + +\newif\if@ba@newLTX\@ba@newLTXfalse +\def\pndefabk{\@ba@newLTXfalse} +\def\negcorrdefabk{\protect\pndefabk} +\def\pnndefabk{\@ba@newLTXtrue} +\def\notnegcorrdefabk{\protect\pnndefabk} + +\def\@printonlydefabk#1#2{{\@herefunctions\ignorespaces #1}\nulskip@ba\strut + {\abkemph{\ifdim\fontdimen\@ne\font=\z@\gdef\baabkcorr{\@baupcorr}\else + \if@ba@newLTX\gdef\baabkcorr{}\else\gdef\baabkcorr{\@badowncorr}\fi\fi}}% + {\let\@testa=-\finddot@ba{#1}% + \ifx\@testa+\@bahasdot\fi + }% + {\defabkopen}\@printonlyabk{#2}% + {\let\@testa=-\finddot@ba{#2}% + \ifx\@testa+\@bahasdot + {\defabkclose}\gdef\baabkcorr{}% + \else + \setbox\testbox@ba=\hbox{\def\corrrrule@ba{}\defabkclose}% + \ifdim\ht\testbox@ba=0pt% + \def\baabkcorr{}{\defabkclose}% + \else + {\defabkclose}\gdef\baabkcorr{}% + \fi + \fi + }\spacefactorM@ba\next@printabk} + +\DeclareRobustCommand\printonlydefabk{\ba@textmode\resetcorr@ba\checkNrun@two{printonlydefabk}} %% \@printonlydefabk %% + +\def\@addtoabkdef#1#2{\@initabkdef{#1}{#2}} +\DeclareRobustCommand\addtoabkdef{\checkNrun@two{addtoabkdef}} %% \@addtoabkdef %% + +\def\@addtodefabk#1#2{\@initabkdef{#2}{#1}} +\DeclareRobustCommand\addtodefabk{\checkNrun@two{addtodefabk}} %% \@addtodefabk %% + +\def\@initabkdef#1#2{\if@unusedbib\else\@bsphack\fi + \if@filesw {\let\thepage\relax + \@outsavety\@outfunctions + \def\baabkcorr{\balistcorr}% + \edef\@tempa{\write\@auxout{\commentch@ba\string + \abkrzentry{#1}{#2}{{\abklistopen}{\abklistclose}{}{}}{\setn@ba}[\catq@ba][\lang@ba](line \line@ba)}}% + \expandafter}\@tempa + \if@nobreak\ifvmode\nobreak\fi\fi \fi + \if@unusedbib\ignorespaces\else\@esphack\fi} + +\def\@initaddtoabk#1{\if@unusedbib\else\@bsphack\fi + \if@filesw {\let\thepage\relax + \@outsavety\@outfunctions + \edef\@tempa{\write\@auxout{\commentch@ba\string + \abkrzentry{#1}{}{{}{}{}{}}{\setn@ba}[\catq@ba][\lang@ba](line \line@ba)}}% + \expandafter}\@tempa + \if@nobreak\ifvmode\nobreak\fi\fi \fi + \if@unusedbib\ignorespaces\else\@esphack\fi} + +\def\@abkper#1{\@addtoabk{#1}\checkNonerun@a{per}{#1}} %% \@per %% +\DeclareRobustCommand\abkper{\dofrco@ba\@pfvbatrue\leavevmode\checkNrun@one{abkper}} %% \@abkper %% + +\def\abkrzentry#1#2#3#4[#5][#6](#7){} + + + +\def\@addtogrr#1{\@initaddtoreg{\geogrentry}{#1}{}{\setn@ba}} +\DeclareRobustCommand\addtogrr{\checkNrun@one{addtogrr}} %% \@addtogrr %% + +\def\@addtoprr#1{\@initaddtoreg{\persrentry}{#1}{}{\setn@ba}} +\DeclareRobustCommand\addtoprr{\checkNrun@one{addtoprr}} %% \@addtoprr %% + +\def\@addtosrr#1{\@initaddtoreg{\subjrentry}{#1}{}{\setn@ba}} +\DeclareRobustCommand\addtosrr{\checkNrun@one{addtosrr}} %% \@addtosrr %% + + +\def\@fillgrr#1#2{\@initaddtoreg{\geogrentry}{#1}{#2}{{}{}{-}}} +\DeclareRobustCommand\fillgrr{\checkNrun@two{fillgrr}} %% \@fillgrr %% + +\def\@fillprr#1#2{\@initaddtoreg{\persrentry}{#1}{#2}{{}{}{-}}} +\DeclareRobustCommand\fillprr{\checkNrun@two{fillprr}} %% \@fillprr %% + +\def\@fillsrr#1#2{\@initaddtoreg{\subjrentry}{#1}{#2}{{}{}{-}}} +\DeclareRobustCommand\fillsrr{\checkNrun@two{fillsrr}} %% \@fillsrr %% + + +\def\@initaddtoreg#1#2#3#4{\if@unusedbib\else\@bsphack\fi + \if@filesw {\let\thepage\relax + \@outsavety\@outfunctions + \edef\@tempa{\write\@auxout{\commentch@ba\string + #1{#2}{#3}{{\xrrlistopen}{\xrrlistclose}{}{}}{#4}[\catq@ba][\lang@ba](line \line@ba)}}% + \expandafter}\@tempa + \if@nobreak\ifvmode\nobreak\fi\fi \fi + \if@unusedbib\ignorespaces\else\@esphack\fi} + + +\def\geogrentry#1#2#3#4[#5][#6](#7){} +\def\persrentry#1#2#3#4[#5][#6](#7){} +\def\subjrentry#1#2#3#4[#5][#6](#7){} + +%%%%%% + + + %% lists %% + +\expandafter\ifx\csname MakeUppercase\endcsname\relax +\def\uc@ba{\uppercase}% +\else +\def\uc@ba{\MakeUppercase}% +\fi + +\expandafter\ifx\csname @mkboth\endcsname\relax +\def\bamarkboth#1{}% +\else +\def\bamarkboth#1{\@mkboth{\uc@ba{\cap@ba{#1}}}{\uc@ba{\cap@ba{#1}}}}% +\fi + +\def\titleline@ba#1#2{{\csname #2\endcsname*{\cap@ba{#1title}}\relax}} +\def\contents@ba#1#2#3{\expandafter\ifx\csname #2\endcsname\relax + {\errorcontextlines=-1\@qqertypeout{print#1title}{...}% + \errhelp{Your [OptArg] is unknown.}% + \errmessage@ba{Undefined title size}}% + \else\addcontentsline{toc}{#2}{\cap@ba{#1title}}\fi + \bamarkboth{#1title}{#3}} +\def\printlist@ba#1#2#3{{\csname @print#2#3list\endcsname{#1}}} + +\def\title@ba#1[#2]{\titleline@ba{#1}{#2}\contents@ba{#1}{#2}{}} +\def\Check@batitle#1#2{\@ifnextchar[{\title@ba{#1}}{\title@ba{#1}[#2]}} + +\def\balist@ba#1#2#3[#4]{\if@oldba\else\titleline@ba{#3}{#4}\contents@ba{#3}{#4}{}\fi \printlist@ba{#1}{#2}{#3}} +\def\Check@balist#1#2#3#4{\@ifnextchar[{\balist@ba{#1}{#2}{#3}}{\balist@ba{#1}{#2}{#3}[#4]}} + +\def\batwocoltopskip{10pt} +\def\dotcbalist@ba#1#2#3[#4]{\twocolumn[\titleline@ba{#3}{#4}% + \if@bibsorthead \vskip \batwocoltopskip\else\if@bibsortspace\vskip \batwocoltopskip\fi\fi]\relax + \contents@ba{#3}{#4}{\thispagestyle{plain}}\printlist@ba{#1}{#2}{#3}} +\def\tcbalist@ba#1#2#3#4[#5]{{% + #2{\if@twocolumn\dotcbalist@ba{#1}{#3}{#4}[#5]\clearpage + \else \dotcbalist@ba{#1}{#3}{#4}[#5]\onecolumn + \fi}}} +\def\Check@tcbalist#1#2#3#4#5{\@ifnextchar[{\tcbalist@ba{#1}{#2}{#3}{#4}}{\tcbalist@ba{#1}{#2}{#3}{#4}[#5]}} + + +\def\printabktitle{\ba@textmode\Check@batitle{abk}{subsection}} +\def\printarqtitle{\ba@textmode\Check@batitle{arq}{subsection}} +\def\printbibtitle{\ba@textmode\Check@batitle{bib}{section}} +\def\printgrrtitle{\ba@textmode\Check@batitle{grr}{subsection}} +\def\printpertitle{\ba@textmode\Check@batitle{per}{subsection}} +\def\printprrtitle{\ba@textmode\Check@batitle{prr}{subsection}} +\def\printsrrtitle{\ba@textmode\Check@batitle{srr}{subsection}} +\def\printvkctitle{\ba@textmode\Check@batitle{vkc}{subsection}} +\def\printvlititle{\ba@textmode\Check@batitle{vli}{subsection}} +\def\printvqutitle{\ba@textmode\Check@batitle{vqu}{subsection}} + + +\def\@balistnumemph{\normalfont\balistnumemph\relax\upshape} +\def\@baloopspace{\def\ {\penalty\@m\hskip 0.25em plus 0.2em minus 0.1em}} +\def\@baindexlist{% + \def\first@baidx##1{\leavevmode + {\@baloopspace\@balistnumemph{{\frompagesep}##1}}\ignorespaces}% + \def\follo@baidx##1{{\@baloopspace\@balistnumemph{##1}}\ignorespaces}} + +\newif\if@banonum\@banonumfalse + +\def\@printnumvlilist#1{\resetcorr@ba{\@vxxbalisttrue\@kxxbafalse\def\literentry{\@listventry}\@baindexlist\@balist{vli}{#1}}} + \def\printnumvlilist{\ba@textmode\@printnumvlilist{\@baitemdefs}} + +\def\@printvlilist#1{\resetcorr@ba{\@vxxbalisttrue\@kxxbafalse\@banonumtrue\def\literentry{\@listventry}\@balist{vli}{#1}}} + \def\printvlilist{\ba@textmode\@printvlilist{\@baitemdefs}} + + +\def\@printnumvqulist#1{\resetcorr@ba{\@vxxbalisttrue\@kxxbafalse\def\quellentry{\@listventry}\@baindexlist\@balist{vqu}{#1}}} + \def\printnumvqulist{\ba@textmode\@printnumvqulist{\@baitemdefs}} + +\def\@printvqulist#1{\resetcorr@ba{\@vxxbalisttrue\@kxxbafalse\@banonumtrue\def\quellentry{\@listventry}\@balist{vqu}{#1}}} + \def\printvqulist{\ba@textmode\@printvqulist{\@baitemdefs}} + + +\def\@printnumperlist#1{\resetcorr@ba{\def\perioentry{\@perioentry}\@baindexlist\@balist{per}{#1}}} + \def\printnumperlist{\ba@textmode\@printnumperlist{\@baitemdefs}} + +\def\@printperlist#1{\resetcorr@ba{\@banonumtrue\def\perioentry{\@perioentry}\@balist{per}{#1}}} + \def\printperlist{\ba@textmode\@printperlist{\@baitemdefs}} + + +\def\@printnumarqlist#1{\resetcorr@ba{\def\archqentry{\@archqentry}\@baindexlist\@balist{arq}{#1}}} + \def\printnumarqlist{\ba@textmode\@printnumarqlist{\@baitemdefs}} + +\def\@printarqlist#1{\resetcorr@ba{\@banonumtrue\def\archqentry{\@archqentry}\@balist{arq}{#1}}} + \def\printarqlist{\ba@textmode\@printarqlist{\@baitemdefs}} + + +\def\@printabklist#1{{\@banonumtrue\def\abkrzentry{\@abkrzentry}% + \@balist{abk}{#1}}} + \def\printabklist{\ba@textmode\@printabklist{\@baitemdefs}} + +\def\@printnumabklist#1{\resetcorr@ba{\def\abkrzentry{\@abkrzentry}% + \@baindexlist + \@balist{abk}{#1}}} + \def\printnumabklist{\ba@textmode\@printnumabklist{\@baitemdefs}} + + +\def\@printvkclist#1{\resetcorr@ba{\@kxxbatrue\@banonumtrue\def\vkcitentry{\@vkcitentry}% + \makeXcorrcmd@ba{\kxxemph}{\bakxxcorr}% + \@balist{vkc}{#1}}} + \def\printvkclist{\ba@textmode\@printvkclist{\@baitemdefs}} + +\def\@printnumvkclist#1{\resetcorr@ba{\@kxxbatrue\def\vkcitentry{\@vkcitentry}% + \makeXcorrcmd@ba{\kxxemph}{\bakxxcorr}% + \@baindexlist + \@balist{vkc}{#1}}} + \def\printnumvkclist{\ba@textmode\@printnumvkclist{\@baitemdefs}} + + +\def\@printgrrlist#1{\resetcorr@ba{\@banonumtrue\def\geogrentry{\@baTWOentry}% + \@balist{grr}{#1}}} + \def\printgrrlist{\ba@textmode\@printgrrlist{\@baitemdefs}} + +\def\@printnumgrrlist#1{\resetcorr@ba{\def\geogrentry{\@baTWOentry}% + \@baindexlist + \@balist{grr}{#1}}} + \def\printnumgrrlist{\ba@textmode\@printnumgrrlist{\@baitemdefs}} + + +\def\@printprrlist#1{\resetcorr@ba{\@banonumtrue\def\persrentry{\@baTWOentry}% + \@balist{prr}{#1}}} + \def\printprrlist{\ba@textmode\@printprrlist{\@baitemdefs}} + +\def\@printnumprrlist#1{\resetcorr@ba{\def\persrentry{\@baTWOentry}% + \@baindexlist + \@balist{prr}{#1}}} + \def\printnumprrlist{\ba@textmode\@printnumprrlist{\@baitemdefs}} + + +\def\@printsrrlist#1{\resetcorr@ba{\@banonumtrue\def\subjrentry{\@baTWOentry}% + \@balist{srr}{#1}}} + \def\printsrrlist{\ba@textmode\@printsrrlist{\@baitemdefs}} + +\def\@printnumsrrlist#1{\resetcorr@ba{\def\subjrentry{\@baTWOentry}% + \@baindexlist + \@balist{srr}{#1}}} + \def\printnumsrrlist{\ba@textmode\@printnumsrrlist{\@baitemdefs}} + + +\def\printnumvli{\ba@textmode\Check@balist{\@baonecoldefs}{num}{vli}{subsection}} +\def\printnumvqu{\ba@textmode\Check@balist{\@baonecoldefs}{num}{vqu}{subsection}} +\def\printnumper{\ba@textmode\Check@balist{\@baonecoldefs}{num}{per}{subsection}} +\def\printnumarq{\ba@textmode\Check@balist{\@baonecoldefs}{num}{arq}{subsection}} + +\def\printvli{\ba@textmode\Check@balist{\@baonecoldefs}{}{vli}{subsection}} +\def\printvqu{\ba@textmode\Check@balist{\@baonecoldefs}{}{vqu}{subsection}} +\def\printper{\ba@textmode\Check@balist{\@baonecoldefs}{}{per}{subsection}} +\def\printarq{\ba@textmode\Check@balist{\@baonecoldefs}{}{arq}{subsection}} + +\def\printabk{\ba@textmode\Check@tcbalist{\@batwocoldefs}{\footnotesize}{}{abk}{subsection}} +\def\printnumabk{\ba@textmode\Check@tcbalist{\@batwocoldefs}{\footnotesize}{num}{abk}{subsection}} + +\def\printvkc{\ba@textmode\Check@tcbalist{\@batwocoldefs}{\small}{}{vkc}{subsection}} +\def\printnumvkc{\ba@textmode\Check@tcbalist{\@batwocoldefs}{\small}{num}{vkc}{subsection}} + +\def\printgrr{\ba@textmode\Check@tcbalist{\@batwocoldefs}{\small}{}{grr}{subsection}} +\def\printnumgrr{\ba@textmode\Check@tcbalist{\@batwocoldefs}{\small}{num}{grr}{subsection}} + +\def\printprr{\ba@textmode\Check@tcbalist{\@batwocoldefs}{\small}{}{prr}{subsection}} +\def\printnumprr{\ba@textmode\Check@tcbalist{\@batwocoldefs}{\small}{num}{prr}{subsection}} + +\def\printsrr{\ba@textmode\Check@tcbalist{\@batwocoldefs}{\small}{}{srr}{subsection}} +\def\printnumsrr{\ba@textmode\Check@tcbalist{\@batwocoldefs}{\small}{num}{srr}{subsection}} + + + +\def\info@emptyba#1{\typeout@ba{BibArts Warning: No ...entries in \jobname.#1 on input line \line@ba.}% + {\item{}\BibArts: File \jobname.#1 was empty. Did you start + \LaTeX\ only once\string? Or did you forget to command + \string`BIBSORT \jobname\string'\string?}} + + +\def\ignore@unused#1{\type@bawarn{Can't `addto' \string#1}} + + +\def\@reprintfunctions{% + \def\onlyhere##1{}% + \def\onlyout##1{##1}% + \def\onlyvoll##1{##1}% + \def\onlykurz##1{}% + \def\ktit##1{##1\ba@textmode}% + \@fileswfalse% %% has no influence on \label, \index, \glossary! %% + \def\sort##1{}% } +\def\@reprintkfunctions{% %% when bibsort is not used %% + \def\onlyhere##1{}% + \def\onlyout##1{##1}% + \def\onlyvoll##1{}% + \def\onlykurz##1{##1}% +} -\newif\if@kapitell\@kapitellfalse -\def\bibVkapit{\vspace{3ex}\pagebreak[3]} -\def\bibAkapit{\vspace{.5ex}\@kapitelltrue\nopagebreak} -\def\@Kapitell#1#2{% - \ifbibarts -\@vli{\sort{\authorstress #1!!!!!} \protect\bibVkapit {\protect\KapSchr #2} \protect\bibAkapit} -\@vqu{\sort{\authorstress #1!!!!!} \protect\bibVkapit {\protect\KapSchr #2} \protect\bibAkapit} -\@bib{#1 -- --@ \protect\bibVkapit {\protect\KapSchr #2} \protect\bibAkapit} +\def\language@barep#1#2{% + \ifnum\language=#1% + \else\typeout@ba{BibArts list line \line@ba: Reproduce hyphenation #1 as in LaTeX file #2.}% + \language=#1% + \fi} + +\def\activech@barep#1#2{ + \ifnum\catcode\grave@ba\"=#1% + \else\typeout@ba{^^JBibArts warning for page \thepage\space (entry from LaTeX file #2): " troubles! + ^^J \space\space I can't reproduce DOUBLEQUOTE in line \line@ba\space of the current BibArts file. + ^^J \space\space The catcode of that character has been #1 in your LaTeX file, instead + ^^J \space\space of \the\catcode\grave@ba\", which is - and remains - the value here in the BibArts list. + ^^J \space\space If you use [N]GERMAN.STY: DID YOU START bibsort USING OPTION -x ?? + ^^J \space\space If you've used e.g. \string\"a instead of "a there, you may ignore that warning. + ^^J}% + \fi} + +%% No \message without GERMAN.STY: %% +\def\bagermanTeX#1{% + \expandafter\ifx\csname ngermanTeX\endcsname\relax\else \ngermanTeX{#1}\message{(new)}\fi + \expandafter\ifx\csname germanTeX\endcsname\relax\else \germanTeX{#1}\message{(old)}\fi} +\def\baoriginalTeX#1{% + \expandafter\ifx\csname originalTeX\endcsname\relax\else\originalTeX{#1}\fi} + + +\newif\if@baaddx\@baaddxfalse +\def\addxadd@ba#1#2#3{\def\nsep{#1}\relax\csname @baaddx#2\endcsname} + +\def\first@baidx#1{\ignorespaces} +\def\follo@baidx#1{\ignorespaces} + +\def\@listventry#1#2#3#4#5#6[#7][#8](#9){% + \addxadd@ba#5\relax\relax\relax + \language@barep{#8}{#9}% + \activech@barep{#7}{#9}% + \item{}\@printvname{#1}{\listlnfnsep}{#2}{1}% + \if@baaddx\@printoptarg{#3}{\nsep}\else\@printoptarg{#3}{}\fi + {\reprint@batrue \@printlastarg{#4}{}}\if@banonum{\fromnopagevxxsep}\fi\@reportbaupfalse\ignorespaces} + +\def\@vkcitentry#1#2#3#4#5#6[#7][#8](#9){\@reprintkfunctions + \addxadd@ba#5\relax\relax\relax + \language@barep{#8}{#9}% + \activech@barep{#7}{#9}% + \item{}\@printkname{#1}% + \if@baaddx\@printoptarg{#2}{\nsep}\else\@printoptarg{#2}{}\fi + \@printlastarg{#3}{\kxxemph}\@initprinthint{#4}% + \if@banonum{\fromnopagevkcsep}\fi + \@reportbaupfalse\ignorespaces} + + +\def\printfirstarg@ba#1#2#3{{\nulskip@ba + \setbox\testbox@ba=\hbox{#1{\ignorespaces #2\ba@textmode}}% + \ifdim\ht\testbox@ba=0pt{\erri@ba}\type@bawarn{Empty ...#3}\else{\unhbox\testbox@ba}\fi}} + +\def\printsecondarg@ba#1#2#3#4{{% + \setbox\testbox@ba=\hbox{\ignorespaces #2\ba@textmode}% + \ifdim\ht\testbox@ba=0pt{#4{\ifdim\fontdimen\@ne\font=\z@\gdef\balistcorr{}\fi}}\else + {#1}{\unhbox\testbox@ba}% + \init@bacorr{#2}{}{\balistcorr}% + \gdef\baabkcorr{\balistcorr}% + {#3}\if@banonum\spacefactorM@ba\else + \setbox\testbox@ba=\hbox{#3}% + \ifdim\ht\testbox@ba=0pt\else + \init@bacorr{#3}{}{\balistcorr}% + \fi + \fi + \fi}} + +\def\addTadd@ba#1#2#3#4{\def\@baopen{#1}\relax\def\@baclose{#2}} +\def\addAadd@ba#1#2#3#4{% + \ifx#31\arqsectionbegin\relax\fi + \ifx#32\arqsubsectionbegin\relax\fi + \ifx#33\arqsubsubsectionbegin\relax\fi + \def\@baopen{#1}\relax\def\@baclose{#2}} +\def\addBadd@ba#1#2#3#4{% + \ifx#31\arqsectionend\relax\fi + \ifx#32\arqsubsectionend\relax\fi + \ifx#33\arqsubsubsectionend\relax\fi} + +\def\@baTWOentry#1#2#3#4[#5][#6](#7){% + \addTadd@ba#3\relax\relax\relax\relax + \language@barep{#6}{#7}% + \activech@barep{#5}{#7}% + \item{}\printfirstarg@ba{\xrrlistemph}{#1}{.rr}% + \init@bacorr{#1}{\xrrlistemph}{\balistcorr}% + \printsecondarg@ba{\@baopen}{#2}{\@baclose}{\xrrlistemph}% + \if@banonum{\fromnopagexrrsep}\fi \@reportbaupfalse\ignorespaces} + +\def\@archqentry#1#2#3#4[#5][#6](#7){{% + \addAadd@ba#3% + \language@barep{#6}{#7}% + \activech@barep{#5}{#7}% + \item{}\printfirstarg@ba{\arqlistemph}{#1}{arq}% + \init@bacorr{#1}{\arqlistemph}{\balistcorr}% + \printsecondarg@ba{\@baopen}{#2}{\@baclose}{\arqlistemph}% + \if@banonum{\fromnopagearqsep}\addBadd@ba#3\relax\else + \ifdim\lastskip=\hasdotcode@ba\addBadd@ba#3\relax\@bahasdot\else + \addBadd@ba#3\relax\fi + \fi}% + \@reportbaupfalse\ignorespaces} + +\def\@perioentry#1#2#3#4[#5][#6](#7){% + \addTadd@ba#3\relax\relax\relax\relax + \language@barep{#6}{#7}% + \activech@barep{#5}{#7}% + \item{}\printfirstarg@ba{\perlistemph}{#1}{per}% + \init@bacorr{#1}{\perlistemph}{\balistcorr}% + \printsecondarg@ba{\@baopen}{#2}{\@baclose}{\perlistemph}% + \if@banonum{\fromnopagepersep}\fi \@reportbaupfalse\ignorespaces} + +\def\@abkrzentry#1#2#3#4[#5][#6](#7){% + \addTadd@ba#3\relax\relax\relax\relax + \language@barep{#6}{#7}% + \activech@barep{#5}{#7}% + \item{}\printfirstarg@ba{\abklistemph}{#1}{abk...}% + \init@bacorr{#1}{\abklistemph}{\balistcorr}% + \printsecondarg@ba{\@baopen}{#2}{\@baclose}{\abklistemph}% + \if@banonum{\fromnopageabksep}\fi \@reportbaupfalse\ignorespaces} + +\def\bamyitemdefs#1{\@bsphack\def\@baitemdefs{#1}\@esphack} +\def\batwocolitemdefs{\def\@baitemdefs{\@batwocoldefs}} +\def\@batwocoldefs{\parsep 0ex \itemsep 0pt \parskip 0pt \lineskip 0pt \rightskip 1cm minus 1cm} +\def\baonecolitemdefs{\def\@baitemdefs{\@baonecoldefs}} +\def\@baonecoldefs{\parsep 0ex \itemsep -.5ex} +\def\notbaitemdefs{\def\@baitemdefs{}} +\notbaitemdefs + +\def\listparm@ba{} +\def\@balist#1#2{\message{ \string<\string< #1\string:}% + {\errorcontextlines=-1\catcode\grave@ba\@=11\balisttype{}% + \@herefunctions\@reprintfunctions\@rheraldktitfalse + \@allowconferizefalse \genderingfalse + %%% + \gdef\listparm@ba{#2}% + %%% + \if@bibsortspace + \let\bibsortpreparespace\do@bibsortspace + \fi + %%% + \if@bibsorthead + \let\bibsortpreparexspace\do@bibsortspace + \if@twocolumn + \let\bibsortpreparehead\do@twocolumnbsh + {\edef\@testa{\listparm@ba}% + \ifx\@testa\@batwocoldefs + \else + \type@bawarn{Set TWOcolitemdefs (TWOcol+heads)}% + \gdef\listparm@ba{\@batwocoldefs}% + \fi}% + \else + \let\bibsortpreparehead\do@onecolumnbsh + {\edef\@testa{\listparm@ba}% + \ifx\@testa\@batwocoldefs + \type@bawarn{Reject TWOcolitemdefs (ONEcol+heads)}% + \gdef\listparm@ba{}% + \fi}% \fi + \fi + %%% + \sloppy\begin{description} + \listparm@ba\relax + \@input{\jobname.#1} + \def\@noitemerr{\info@emptyba{#1}} + \end{description}\fussy}\message{\string>\string> }} + + + +\def\@hereUfunctions{% + \def\par{}% + \def\vli{\addtovli}% + \def\vqu{\addtovqu}% + \def\kli{\addtokli}% + \def\kqu{\addtokqu}% + \def\printonlyvli{\ignore@unused{\printonlyvli}\shadowv}% + \def\printonlyvqu{\ignore@unused{\printonlyvqu}\shadowv}% + \def\printonlykli{\ignore@unused{\printonlykli}\shadowk}% + \def\printonlykqu{\ignore@unused{\printonlykqu}\shadowk}% + \def\xvli{\xaddtovli}% + \def\xvqu{\xaddtovqu}% + \def\xkli{\xaddtokli}% + \def\xkqu{\xaddtokqu}% + \def\xprintonlyvli{\ignore@unused{\xprintonlyvli}\shadowv}% + \def\xprintonlyvqu{\ignore@unused{\xprintonlyvqu}\shadowv}% + \def\xprintonlykli{\ignore@unused{\xprintonlykli}\shadowk}% + \def\xprintonlykqu{\ignore@unused{\xprintonlykqu}\shadowk}% + \def\per{\addtoper}% + \def\abkper{\addtoper}% + \def\arq{\addtoarq}% + \def\abk{\ignore@unused{\abk}\shadowone}% + \def\addtoabk{\ignore@unused{\addtoabk}\shadowone}% + \def\abkdef{\addtoabkdef}% + \def\defabk{\addtodefabk}% + \def\printonlyper{\ignore@unused{\printonlyper}\shadowo}% + \def\printonlyarq{\ignore@unused{\printonlyarq}\shadowt}% + \def\printonlyabk{\ignore@unused{\printonlyabk}\shadowone}% + \def\printonlyabkdef{\ignore@unused{\printonlyabkdef}\shadowtwo}% + \def\printonlydefabk{\ignore@unused{\printonlydefabk}\shadowtwo}% } +\newif\if@unusedbib\@unusedbibfalse + +\expandafter\ifx\csname newenvironment\endcsname\relax +\else\newenvironment{unused}{\@unusedbibtrue\@hereUfunctions\ignorespaces}{}\fi + + +%%%%%% + -%% Auswurffile: (Diese Konstruktion hat latex.tex als Vorbild.) - -\newif\ifbibarts\bibartsfalse - -\def\makebar{\bibartstrue\if@filesw\newwrite\@barfile% -\immediate\openout\@barfile=\jobname.bar% -\def\@bib{\@bsphack\begingroup% -\def\protect####1{\string####1\space}% N"utzlichkeit unklar. -\@sIcHerUnG% -\@sanitize\@wrbbar}% -\def\@vqu{\@bsphack\begingroup% -\def\protect####1{\string####1\space}% N"utzlichkeit unklar. -\@sIcHerUnG% -\@sanitize\@wrqbar}% -\def\@vli{\@bsphack\begingroup% -\def\protect####1{\string####1\space}% N"utzlichkeit unklar. -\@sIcHerUnG% -\@sanitize\@wrlbar}% -\typeout{Volltiteldatei \jobname.bar vorbereitet. }\fi} - - -\def\@wrbbar#1{% -\@ifundefined{thepart}{}{\ifnum\value{part}>0% -\ifnum\value{part}<10\def\G{\string!\string\G{\arabic{part}}{\partname~\thepart}}\fi% -\ifnum\value{part}>9\ifnum\value{part}<100\def\G{\string!\string\I{\arabic{part}}{\partname~\thepart}}\fi\fi% -\fi}% -\@ifundefined{thechapter}{}{\ifnum\value{chapter}>0% -\ifnum\value{chapter}<10\def\E{\string!\string\E{\arabic{chapter}}{\chaptername~\thechapter}}\fi% -\ifnum\value{chapter}>9\ifnum\value{chapter}<100\def\E{\string!\string\F{\arabic{chapter}}{\chaptername~\thechapter}}\fi\fi% -\fi}% -\ifnum\value{page}<10\def\X{\string|X}\else% -\ifnum\value{page}<100\def\X{\string|Y}\else% -\def\X{\string|Z}\fi\fi% -\ifnum\value{page}<10\def\x{\string|x{\arabic{page}}{\thepage}}\else% -\ifnum\value{page}<100\def\x{\string|y{\arabic{page}}{\thepage}}\else% -\def\x{\string|z{\arabic{page}}{\thepage}}\fi\fi% -\stepcounter{arts}% -\iffootnote% -\edef\@tempa{\write\@barfile{\string% -\indexentry{#1\G\E\X{}{\thepage}}{\thefootnote}}}% %[] -\else% -\edef\@tempa{\write\@barfile{\string% -\indexentry{#1\G\E\x}{\thearts}}}% %[] -\fi% -\expandafter\endgroup\@tempa% -\if@nobreak \ifvmode\nobreak\fi\fi\@esphack} - - -\def\@wrqbar#1{% -\ifnum\value{page}<10\def\X{\string\X}\else% -\ifnum\value{page}<100\def\X{\string\Y}\else% -\def\X{\string\Z}\fi\fi% -\def\F{\string\F}\def\E{\string\E}% -\stepcounter{arts}% -\iffootnote% -\edef\@tempa{\write\@barfile{\string% -\quellentry{#1\X{}{\thepage}}{\F{}{\thefootnote}}}}% %[] -\else% -\edef\@tempa{\write\@barfile{\string% -\quellentry{#1\X{}{\thepage}}{\E{}{\thearts}}}}% -\fi% -\expandafter\endgroup\@tempa% -\if@nobreak \ifvmode\nobreak\fi\fi\@esphack} - - -\def\@wrlbar#1{% -\ifnum\value{page}<10\def\X{\string\X}\else% -\ifnum\value{page}<100\def\X{\string\Y}\else% -\def\X{\string\Z}\fi\fi% -\def\F{\string\F}\def\E{\string\E}% -\stepcounter{arts}% -\iffootnote% -\edef\@tempa{\write\@barfile{\string% -\literentry{#1\X{}{\thepage}}{\F{}{\thefootnote}}}}% %[] -\else% -\edef\@tempa{\write\@barfile{\string% -\literentry{#1\X{}{\thepage}}{\E{}{\thearts}}}}% -\fi% -\expandafter\endgroup\@tempa% -\if@nobreak \ifvmode\nobreak\fi\fi\@esphack} - - - \def\x{}\def\y{}\def\z{} - \def\X{}\def\Y{}\def\Z{} - \def\F{}\def\E{} - \def\G{}\def\I{} - - - -%% Ausdruck des erzeugten Files (.phy und .ind): - -\newif\ifquelle -\newif\ifliteratur -\newif\ifindex - -\def\indexentry#1#2{\ifindex\if@kapitell\item{#1}\else\item{#1}{#2}\fi\fi} -\def\literentry#1#2{\ifliteratur\if@kapitell\item{#1}\else\item{#1}{#2}\fi\fi} -\def\quellentry#1#2{\ifquelle\if@kapitell\item{#1}\else\item{#1}{#2}\fi\fi} - - - -\def\info{{\item Das File {\tt\jobname.tex} mu\ss\ ein weiteres Mal - \LaTeX--bearbeitet werden, um hier etwas sehen - zu k\"onnen. {\tt\jobname.bar} sollte zuvor - alphabetisch auf\\ {\tt \jobname.phy} sortiert werden. - --- Oder fehlt der Befehl {\tt $\backslash$makebar} - im Vorspann?}} - - -\def\verw{ $\gg$ } - \def\LiTbox#1#2{\if@kapitell\@kapitellfalse\else\verw{#2}\fi} -\def\LITfBOX#1#2{\if@kapitell\@kapitellfalse\else$^{#2}$\fi} - - -\def\printnumvqu{{%%%%\section{Quellenverzeichnis} - \quelletrue\literaturfalse\indexfalse - \barschrift - \def\X{\LiTbox}\def\Y{\LiTbox}\def\Z{\LiTbox} - \def\x{\LiTbox}\def\y{\LiTbox}\def\z{\LiTbox} - \def\E{\NeIn}\def\F{\LITfBOX} - \def\G{\NeIn}\def\I{\NeIn} - \message{|> VQU } - \begin{description} - \parsep 0ex \itemsep -.5ex - \@input{\jobname.phy} - \def\@noitemerr{\@warning{Leeres \jobname.phy-File}\info} - \end{description}\message{<|} - }} - - -\def\printnumvli{{%%%%\section{Literaturverzeichnis} - \literaturtrue\quellefalse\indexfalse - \barschrift - \def\X{\LiTbox}\def\Y{\LiTbox}\def\Z{\LiTbox} - \def\x{\LiTbox}\def\y{\LiTbox}\def\z{\LiTbox} - \def\E{\NeIn}\def\F{\LITfBOX} - \def\G{\NeIn}\def\I{\NeIn} - \message{|> VLI } - \begin{description} - \parsep 0ex \itemsep -.5ex - \@input{\jobname.phy} - \def\@noitemerr{\@warning{Leeres \jobname.phy-File}\info} - \end{description}\message{<|} - }} - - -\def\NeIn#1#2{} - -\def\printvqu{{%%%%\section{Quellenverzeichnis} - \literaturfalse\quelletrue\indexfalse - \barschrift - \def\X{\NeIn}\def\Y{\NeIn}\def\Z{\NeIn} - \def\x{\NeIn}\def\y{\NeIn}\def\z{\NeIn} - \def\E{\NeIn}\def\F{\NeIn} - \def\G{\NeIn}\def\I{\NeIn} - \message{|> VQU } - \begin{description} - \parsep 0ex \itemsep -.5ex - \@input{\jobname.phy} - \def\@noitemerr{\@warning{Leeres \jobname.phy-File}\info} - \end{description}\message{<|} - }} - - -\def\printvli{{%%%%\section{Literaturverzeichnis} - \literaturtrue\quellefalse\indexfalse - \barschrift - \def\X{\NeIn}\def\Y{\NeIn}\def\Z{\NeIn} - \def\x{\NeIn}\def\y{\NeIn}\def\z{\NeIn} - \def\E{\NeIn}\def\F{\NeIn} - \def\G{\NeIn}\def\I{\NeIn} - \message{|> VLI } - \begin{description} - \parsep 0ex \itemsep -.5ex - \@input{\jobname.phy} - \def\@noitemerr{\@warning{Leeres \jobname.phy-File}\info} - \end{description}\message{<|} - }} - - -%\def\BiBbox#1#2{{#2}} -% -%\def\printbib{{%%%%\section{indexentries} -% \indextrue\literaturfalse\quellefalse -% \footnotesize -% \catcode`\|=0 -% \def\X{\BiBbox}\def\Y{\BiBbox}\def\Z{\BiBbox} -% \def\x{\BiBbox}\def\y{\BiBbox}\def\z{\BiBbox} -% \def\E{\iNDExKAP}\def\F{\iNDExKAP} -% \def\G{\iNDExPAR}\def\I{\iNDExPAR} -% \message{|> BIB } -% \begin{description} -% \parsep 0ex \itemsep -.5ex -% \@input{\jobname.phy} -% \def\@noitemerr{\@warning{Leeres \jobname.phy-File}\info} -% \end{description} -% \message{<|} -% }} - - -\newcounter{CH} -\def\theCH{\arabic{CH}} - - -\newif\ifkomma\kommafalse -\def\komma{\ifkomma{}, \fi} - -\def\iNDExBOX#1#2#3{\if@kapitell\@kapitellfalse\else{\ifnum\theCH=#1\else{\indschrift #2}{, }\fi}\setcounter{CH}{#1}\fi} -\def\IndeXbox#1#2#3{\if@kapitell\@kapitellfalse\else{{\indschrift #2}}\raisebox{1ex}{\kommatrue{\scriptsize #3}\kommafalse}{, }\fi} -\def\iNDExKAP#1#2{\setcounter{CH}{-5000}{\it #2}\/: } -\def\iNDExPAR#1#2{\setcounter{CH}{-5000}{\it #2}\/: } - -\def\printind{{% \theindex -UMGEBUNG HAT \indexname ALS "UBERSCHRIFT - \barschrift - %\def\bibVkapit{} - \everypar{\setcounter{CH}{-5000}} - \def\x{\iNDExBOX}\def\X{\IndeXbox} - \def\y{\iNDExBOX}\def\Y{\IndeXbox} - \def\z{\iNDExBOX}\def\Z{\IndeXbox} - \def\E{\iNDExKAP}\def\F{\iNDExKAP} % - \def\G{\iNDExPAR}\def\I{\iNDExPAR} % - \begin{sloppy} \@input{\jobname.ind} \end{sloppy} - }} - - - -%% LOGO: - -\def\bibarts{{\rm B\kern -.05em\lower .5ex\hbox{i}\kern -.15em\lower -.28ex\hbox{\it b}\kern -.17em\lower .5ex\hbox{A}\kern -.29em\lower -.72ex\hbox{r}\kern -.13em\lower .2ex\hbox{t}\kern -.13em\lower -.303ex\hbox{s}}} - - - - -%% BIBINDEX \def\@footnotetext STAMMEN AUS latex.tex -%% UND latex.ltx. MIT AUSNAHME VON -%% \footnotetrue UND \footnotefalse -%% EVTL. SOLLTE DIESE STRUKTUR ERSETZT WERDEN, -%% WENN SIE IN EINER ANDEREN LaTeX-VERSION -%% ANDERS IST. - -\newif\iffootnote - -\@ifundefined{LaTeX2e}{%%%%%% dann LaTeX 2.09 (aus latex.tex) -\long\def\@footnotetext#1{\footnotetrue\insert\footins{\reset@font\footnotesize - \interlinepenalty\interfootnotelinepenalty - \splittopskip\footnotesep - \splitmaxdepth \dp\strutbox \floatingpenalty \@MM - \hsize\columnwidth \@parboxrestore - \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext - {\rule{\z@}{\footnotesep}\ignorespaces - #1\strut}}\footnotefalse}}{%%%%%% ansonsten LaTeX 2e (aus latex.ltx) -\long\def\@footnotetext#1{\footnotetrue\insert\footins{% - \reset@font\footnotesize - \interlinepenalty\interfootnotelinepenalty - \splittopskip\footnotesep - \splitmaxdepth \dp\strutbox \floatingpenalty \@MM - \hsize\columnwidth \@parboxrestore - \protected@edef\@currentlabel{% - \csname p@footnote\endcsname\@thefnmark + %% TRENNSATZ-EINSTELLUNG %% + + +\expandafter\ifx\csname language\endcsname\relax + \typeout@ba{Install missing count \string\language: Hyphenation features will probably not work.}% + \newcount\language +\fi + +\def\psethyphenation#1{\@bsphack\sethyphen@ba{#1}{You've called \string\sethyphenation{#1}.}\@esphack} +\def\sethyphenation{\protect\psethyphenation} + +\def\sethyphen@ba#1#2{% + \expandafter \ifx\csname l@#1\endcsname\relax + {\errhelp{ + ^^JI will not set `#1' hyphenation, + ^^Jbecause that `[LanguageName]' is no preloaded feature. + ^^JYou have to fix that later: <return>.^^J + }% + \errorcontextlines=-1\@qqertypeout{sethyphenation}{#2}% + \errmessage@ba{Language-name `#1' is undefined. (Old VALUE remains valid: \lang@ba)}% + }% + \else \ifnum255=\csname l@#1\endcsname + {\errhelp{ + ^^JLanguage `#1' is defined, but as hyphenation 255. + ^^JThat probably is an error-value for a not preloaded feature. + ^^JI myself will NOT set \language= 255.^^J }% - \color@begingroup - \@makefntext{% - \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox} - \color@endgroup}\footnotefalse}} + \errorcontextlines=-1\@qqertypeout{sethyphenation}{#2}% + \errmessage@ba{No `#1' hyphenation. (Old VALUE remains valid: \lang@ba)}% + }% + \else\language=\csname l@#1\endcsname + \fi + \fi} + +\def\Check@originalquote[#1]{\begin{quote}\originalquotetype{}\ifx #1\erri@ba\else + \sethyphen@ba{#1}{You've called \string\begin{originalquote}[#1].}\fi} + +\expandafter\ifx\csname newenvironment\endcsname\relax +\else\newenvironment{originalquote}{\def\bakorr@fnr{{\vskip\topsep}{\vskip\partopsep}}% + \@ifnextchar[{\Check@originalquote}{\Check@originalquote[\erri@ba]}}{\end{quote}\pagebreak[2]}% +\fi + + +%%%%%%%%%% + + + %% Querverweise %% + +%% No italics-corr on 2.09: %% +\expandafter\ifx\csname ba@its\endcsname\relax +\def\prepare@baref{}% +\else +\def\prepare@baref{\gdef\barefcorr{}% + \def\itshape{\ba@its\makecorrcmd@ba{}{\barefcorr}}% + \def\slshape{\ba@sls\makecorrcmd@ba{}{\barefcorr}}% +}% +\fi + +\def\insref@ba#1{{% + \def\@testa{#1}% + \ifx\@testa\@leerz\else\ifx\@testa\@leer\else + {\ignorespaces #1}\penalty\@m \ \fi\fi}} + +\def\ba@ref[#1]#2{{\gdef\barefcorr{}% + \cap@ba{refvbeg}\insref@ba{#1}\cap@ba{refvpag}% + \expandafter\ifx\csname r@baf.#2\endcsname\relax + {\prepare@baref\pageref{#2}}\else + {\prepare@baref\pageref{baf.#2}}\cap@ba{refvfnt}{\prepare@baref\ref{baf.#2}}\fi + \cap@ba{refvend}}} +\def\pbaref{\@ifnextchar[{\ba@ref}{\ba@ref[\cap@ba{refverb}]}} +\def\baref{\protect\pbaref} + +\def\ba@label#1{\@bsphack + \if@footnote + \@ifundefined{r@#1}{}{\@warning{Label \string`#1\string' multiply defined [BibArts]}}% + \if@baminipage{\let\@currentlabel=\thempfootnote\label{baf.#1}}% + \else {\let\@currentlabel=\thefootnote \label{baf.#1}}% + \fi + \else {\let\@currentlabel=\@leer \label{#1}}% + \fi + \@esphack} +\def\pbalabel{\ba@label} +\def\balabel{\protect\pbalabel} +%% + +\def\ba@varref#1#2#3{% + \makevarstring@ba{#1}{#2}{#3}\ba@ref[\cap@ba{confer}]{\insvarstring@ba}} + +\def\ba@varlabel#1#2#3{\ifba@varstring\if@filesw\if@allowconferize + \makevarstring@ba{#1}{#2}{#3}\ba@label{\insvarstring@ba}\fi\fi\fi} + + %% BA-Codes fuer Sonderzeichen innerhalb von \newlabel: + %% ------------------------------------------------------ + %% /X \l \L \o \O [X = l, L, o, O]. + %% *V \"V (und "V falls "=\active) [V = Vokal] + %% *s \ss \3 (und "s falls "=\active) + %% [ \` + %% ] \' + %% | \^ + %% = \= <ueberstrichen> + %% @ \b <unterstrichen> + %% + \c + %% - \~ + %% ( \. <ueberpunktet> + %% ) \d <unterpunktet> + %% oe \oe + %% OE \OE + %% ae \ae + %% AE \AE + %% aa \aa + %% AA \AA + %% i \i + %% j \j + + +\newif\if@bains@lab +\newcount\count@ba + +\def\reset@allbalabvars{% + \global\let\bavar@xA=\@leer + \global\let\bavar@xB=\@leer + \global\let\bavar@xC=\@leer + \global\let\bavar@xD=\@leer + \global\let\bavar@xE=\@leer + \global\let\bavar@xF=\@leer + \global\let\bavar@xG=\@leer + \global\let\bavar@xH=\@leer + \global\let\bavar@xI=\@leer + \global\let\bavar@xJ=\@leer + \global\let\bavar@xK=\@leer + \global\let\bavar@xL=\@leer + \global\let\bavar@yA=\@leer + \global\let\bavar@yB=\@leer + \global\let\bavar@yC=\@leer + \global\let\bavar@yD=\@leer + \global\let\bavar@yE=\@leer + \global\let\bavar@yF=\@leer + \global\let\bavar@yG=\@leer + \global\let\bavar@yH=\@leer + \global\let\bavar@yI=\@leer + \global\let\bavar@yJ=\@leer + \global\let\bavar@yK=\@leer + \global\let\bavar@yL=\@leer + \global\let\bavar@zA=\@leer + \global\let\bavar@zB=\@leer + \global\let\bavar@zC=\@leer + \global\let\bavar@zD=\@leer + \global\let\bavar@zE=\@leer + \global\let\bavar@zF=\@leer + \global\let\bavar@zG=\@leer + \global\let\bavar@zH=\@leer + \global\let\bavar@zI=\@leer + \global\let\bavar@zJ=\@leer + \global\let\bavar@zK=\@leer + \global\let\bavar@zL=\@leer + \global\let\bavar@zM=\@leer + \global\let\bavar@zN=\@leer + \global\let\bavar@zO=\@leer + \global\let\bavar@zP=\@leer + \global\let\bavar@zQ=\@leer + \global\let\bavar@zR=\@leer + \global\let\bavar@zS=\@leer + \global\let\bavar@zT=\@leer + \global\let\bavar@zU=\@leer + \global\let\bavar@zV=\@leer + \global\let\bavar@zW=\@leer + \global\let\bavar@zX=\@leer + } + +\def\makevarstring@ba#1#2#3{% + \reset@allbalabvars + {\@hereRfunctions + \ifba@varstring \@bains@labtrue + \getnext@baA#1\endlist@ba \@bains@labtrue + \getnext@baB#2\endlist@ba \@bains@labtrue + \getnext@baC#3\endlist@ba\fi}} + +\def\endlist@ba{\endlist@ba} + +\def\getnext@baA{\afterassignment\doba@labA\let\next@ba= } +\def\getnext@baB{\afterassignment\doba@labB\let\next@ba= } +\def\getnext@baC{\afterassignment\doba@labC\let\next@ba= } + +{\catcode\grave@ba\"=13% +\global\def\sonderz@banext#1{% + \ifx\ss\next@ba \let\next@ba=*\csname savn@bavar#1\endcsname \let\next@ba=s\csname savn@bavar#1\endcsname\fi + \ifx \3\next@ba \let\next@ba=*\csname savn@bavar#1\endcsname \let\next@ba=s\csname savn@bavar#1\endcsname\fi + \ifx\oe\next@ba \let\next@ba=o\csname savn@bavar#1\endcsname \let\next@ba=e\csname savn@bavar#1\endcsname\fi + \ifx\OE\next@ba \let\next@ba=O\csname savn@bavar#1\endcsname \let\next@ba=E\csname savn@bavar#1\endcsname\fi + \ifx\ae\next@ba \let\next@ba=a\csname savn@bavar#1\endcsname \let\next@ba=e\csname savn@bavar#1\endcsname\fi + \ifx\AE\next@ba \let\next@ba=A\csname savn@bavar#1\endcsname \let\next@ba=E\csname savn@bavar#1\endcsname\fi + \ifx\aa\next@ba \let\next@ba=a\csname savn@bavar#1\endcsname \let\next@ba=a\csname savn@bavar#1\endcsname\fi + \ifx\AA\next@ba \let\next@ba=A\csname savn@bavar#1\endcsname \let\next@ba=A\csname savn@bavar#1\endcsname\fi + \ifx \o\next@ba \let\next@ba=/\csname savn@bavar#1\endcsname \let\next@ba=o\csname savn@bavar#1\endcsname\fi + \ifx \O\next@ba \let\next@ba=/\csname savn@bavar#1\endcsname \let\next@ba=O\csname savn@bavar#1\endcsname\fi + \ifx \l\next@ba \let\next@ba=/\csname savn@bavar#1\endcsname \let\next@ba=l\csname savn@bavar#1\endcsname\fi + \ifx \L\next@ba \let\next@ba=/\csname savn@bavar#1\endcsname \let\next@ba=L\csname savn@bavar#1\endcsname\fi + \ifx \i\next@ba \let\next@ba=i\csname savn@bavar#1\endcsname\fi + \ifx \j\next@ba \let\next@ba=j\csname savn@bavar#1\endcsname\fi + \ifx \"\next@ba \let\next@ba=*\csname savn@bavar#1\endcsname\fi + \ifx "\next@ba \let\next@ba=*\csname savn@bavar#1\endcsname\fi + \ifx \`\next@ba \let\next@ba=[\csname savn@bavar#1\endcsname\fi + \ifx \'\next@ba \let\next@ba=]\csname savn@bavar#1\endcsname\fi + \ifx \^\next@ba \let\next@ba=|\csname savn@bavar#1\endcsname\fi + \ifx \~\next@ba \let\next@ba=-\csname savn@bavar#1\endcsname\fi + \ifx \=\next@ba \let\next@ba==\csname savn@bavar#1\endcsname\fi + \ifx \.\next@ba \let\next@ba=(\csname savn@bavar#1\endcsname\fi + \ifx \b\next@ba \let\next@ba=@\csname savn@bavar#1\endcsname\fi + \ifx \d\next@ba \let\next@ba=)\csname savn@bavar#1\endcsname\fi + \ifx \c\next@ba \let\next@ba=+\csname savn@bavar#1\endcsname\fi +}% +} + + + {\catcode\grave@ba\~=12% + \catcode\grave@ba\"=12% + \catcode\grave@ba\:=12% + \catcode\grave@ba\;=12% + \catcode\grave@ba\!=12% + \catcode\grave@ba\?=12% + \catcode\grave@ba\'=12% + \catcode\grave@ba\`=12% + \catcode\grave@ba\<=12% + \catcode\grave@ba\>=12% +\global\def\prepnumplussonder@ba#1{% + \ifx "\next@ba \else\ifx .\next@ba \else\ifx ,\next@ba \else\ifx /\next@ba \else + \ifx *\next@ba \else\ifx [\next@ba \else\ifx ]\next@ba \else\ifx |\next@ba \else + \ifx -\next@ba \else\ifx =\next@ba \else\ifx +\next@ba \else\ifx (\next@ba \else + \ifx )\next@ba \else\ifx @\next@ba \else + \ifx ~\next@ba \else\ifx :\next@ba \else\ifx ;\next@ba \else\ifx !\next@ba \else + \ifx ?\next@ba \else\ifx `\next@ba \else\ifx '\next@ba \else + \ifx <\next@ba \else\ifx >\next@ba \else + \ifcat 1\next@ba \csname savn@bavar#1\endcsname + \else \sonderz@banext{#1}% + \fi + \fi\fi + \fi\fi\fi + \fi\fi\fi\fi + \fi\fi + \fi\fi\fi\fi + \fi\fi\fi\fi + \fi\fi\fi\fi}% +} +\def\analyselabeltext@ba#1{% + \ifx \onlyvoll\next@ba \@bains@labfalse \count@ba0 \else + \ifx \onlyout \next@ba \@bains@labfalse \count@ba0 \else + \ifx \vauthor \next@ba \@bains@labfalse \count@ba0 \else + \ifx \midvauthor \next@ba \@bains@labfalse \count@ba0 + \fi\fi\fi\fi + \if@bains@lab + \ifcat A\next@ba \csname savn@bavar#1\endcsname + \else \prepnumplussonder@ba{#1}% + \fi + \else + \ifx \bgroup\next@ba \advance\count@ba by 1 \else + \ifx \egroup\next@ba \advance\count@ba by -1 + \ifnum 0=\count@ba \@bains@labtrue + \fi\fi\fi + \fi} + +\def\doba@labA{% + \ifx\next@ba\endlist@ba \let\next@ba\@leer + \else \ifx\bavar@xL\@leer \analyselabeltext@ba{A}\fi + \let\next@ba\getnext@baA + \fi \next@ba} + +\def\doba@labB{% + \ifx\next@ba\endlist@ba \let\next@ba\@leer + \else \ifx\bavar@yL\@leer \analyselabeltext@ba{B}\fi + \let\next@ba\getnext@baB + \fi \next@ba} + +\def\doba@labC{% + \ifx\next@ba\endlist@ba \let\next@ba\@leer + \else \ifx\bavar@zX\@leer \analyselabeltext@ba{C}\fi + \let\next@ba\getnext@baC + \fi \next@ba} + +\def\savn@bavarA{% + \ifx\bavar@xA\@leer \global\let\bavar@xA=\next@ba \else + \ifx\bavar@xB\@leer \global\let\bavar@xB=\next@ba \else + \ifx\bavar@xC\@leer \global\let\bavar@xC=\next@ba \else + \ifx\bavar@xD\@leer \global\let\bavar@xD=\next@ba \else + \ifx\bavar@xE\@leer \global\let\bavar@xE=\next@ba \else + \ifx\bavar@xF\@leer \global\let\bavar@xF=\next@ba \else + \ifx\bavar@xG\@leer \global\let\bavar@xG=\next@ba \else + \ifx\bavar@xH\@leer \global\let\bavar@xH=\next@ba \else + \ifx\bavar@xI\@leer \global\let\bavar@xI=\next@ba \else + \ifx\bavar@xJ\@leer \global\let\bavar@xJ=\next@ba \else + \ifx\bavar@xK\@leer \global\let\bavar@xK=\next@ba \else + \ifx\bavar@xL\@leer \global\let\bavar@xL=\next@ba + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} + +\def\savn@bavarB{% + \ifx\bavar@yA\@leer \global\let\bavar@yA=\next@ba \else + \ifx\bavar@yB\@leer \global\let\bavar@yB=\next@ba \else + \ifx\bavar@yC\@leer \global\let\bavar@yC=\next@ba \else + \ifx\bavar@yD\@leer \global\let\bavar@yD=\next@ba \else + \ifx\bavar@yE\@leer \global\let\bavar@yE=\next@ba \else + \ifx\bavar@yF\@leer \global\let\bavar@yF=\next@ba \else + \ifx\bavar@yG\@leer \global\let\bavar@yG=\next@ba \else + \ifx\bavar@yH\@leer \global\let\bavar@yH=\next@ba \else + \ifx\bavar@yI\@leer \global\let\bavar@yI=\next@ba \else + \ifx\bavar@yJ\@leer \global\let\bavar@yJ=\next@ba \else + \ifx\bavar@yK\@leer \global\let\bavar@yK=\next@ba \else + \ifx\bavar@yL\@leer \global\let\bavar@yL=\next@ba + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} + +\def\savn@bavarC{% + \ifx\bavar@zA\@leer \global\let\bavar@zA=\next@ba \else + \ifx\bavar@zB\@leer \global\let\bavar@zB=\next@ba \else + \ifx\bavar@zC\@leer \global\let\bavar@zC=\next@ba \else + \ifx\bavar@zD\@leer \global\let\bavar@zD=\next@ba \else + \ifx\bavar@zE\@leer \global\let\bavar@zE=\next@ba \else + \ifx\bavar@zF\@leer \global\let\bavar@zF=\next@ba \else + \ifx\bavar@zG\@leer \global\let\bavar@zG=\next@ba \else + \ifx\bavar@zH\@leer \global\let\bavar@zH=\next@ba \else + \ifx\bavar@zI\@leer \global\let\bavar@zI=\next@ba \else + \ifx\bavar@zJ\@leer \global\let\bavar@zJ=\next@ba \else + \ifx\bavar@zK\@leer \global\let\bavar@zK=\next@ba \else + \ifx\bavar@zL\@leer \global\let\bavar@zL=\next@ba \else + \ifx\bavar@zM\@leer \global\let\bavar@zM=\next@ba \else + \ifx\bavar@zN\@leer \global\let\bavar@zN=\next@ba \else + \ifx\bavar@zO\@leer \global\let\bavar@zO=\next@ba \else + \ifx\bavar@zP\@leer \global\let\bavar@zP=\next@ba \else + \ifx\bavar@zQ\@leer \global\let\bavar@zQ=\next@ba \else + \ifx\bavar@zR\@leer \global\let\bavar@zR=\next@ba \else + \ifx\bavar@zS\@leer \global\let\bavar@zS=\next@ba \else + \ifx\bavar@zT\@leer \global\let\bavar@zT=\next@ba \else + \ifx\bavar@zU\@leer \global\let\bavar@zU=\next@ba \else + \ifx\bavar@zV\@leer \global\let\bavar@zV=\next@ba \else + \ifx\bavar@zW\@leer \global\let\bavar@zW=\next@ba \else + \ifx\bavar@zX\@leer \global\let\bavar@zX=\next@ba + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} + +\def\spendother@ba#1{% + \ifx 1#11\fi + \ifx 2#12\fi + \ifx 3#13\fi + \ifx 4#14\fi + \ifx 5#15\fi + \ifx 6#16\fi + \ifx 7#17\fi + \ifx 8#18\fi + \ifx 9#19\fi + \ifx 0#10\fi + \ifx [#1[\fi %% \` %% + \ifx ]#1]\fi %% \' %% + \ifx |#1|\fi %% \^ %% + \ifx @#1@\fi %% \b %% + \ifx (#1(\fi %% \. %% + \ifx )#1)\fi %% \d %% + \ifx *#1*\fi %% \" " %% + \ifx +#1+\fi %% \c %% + \ifx -#1-\fi %% \~ %% + \ifx /#1/\fi %% \o \O \l \L %% + \ifx =#1=\fi %% \= %% + }% + +\def\spendletter@ba#1{% + \ifx a#1a\fi + \ifx b#1b\fi + \ifx c#1c\fi + \ifx d#1d\fi + \ifx e#1e\fi + \ifx f#1f\fi + \ifx g#1g\fi + \ifx h#1h\fi + \ifx i#1i\fi + \ifx j#1j\fi + \ifx k#1k\fi + \ifx l#1l\fi + \ifx m#1m\fi + \ifx n#1n\fi + \ifx o#1o\fi + \ifx p#1p\fi + \ifx q#1q\fi + \ifx r#1r\fi + \ifx s#1s\fi + \ifx t#1t\fi + \ifx u#1u\fi + \ifx v#1v\fi + \ifx w#1w\fi + \ifx x#1x\fi + \ifx y#1y\fi + \ifx z#1z\fi + \ifx A#1A\fi + \ifx B#1B\fi + \ifx C#1C\fi + \ifx D#1D\fi + \ifx E#1E\fi + \ifx F#1F\fi + \ifx G#1G\fi + \ifx H#1H\fi + \ifx I#1I\fi + \ifx J#1J\fi + \ifx K#1K\fi + \ifx L#1L\fi + \ifx M#1M\fi + \ifx N#1N\fi + \ifx O#1O\fi + \ifx P#1P\fi + \ifx Q#1Q\fi + \ifx R#1R\fi + \ifx S#1S\fi + \ifx T#1T\fi + \ifx U#1U\fi + \ifx V#1V\fi + \ifx W#1W\fi + \ifx X#1X\fi + \ifx Y#1Y\fi + \ifx Z#1Z\fi + }% + +\def\spendchar@ba#1{\ifcat#1A\spendletter@ba{#1}\else\spendother@ba{#1}\fi} + +\def\insvarstring@ba{% + \ifx \bavar@xA\@leer \else + \spendchar@ba \bavar@xA + \ifx \bavar@xB\@leer \else + \spendchar@ba \bavar@xB + \ifx \bavar@xC\@leer \else + \spendchar@ba \bavar@xC + \ifx \bavar@xD\@leer \else + \spendchar@ba \bavar@xD + \ifx \bavar@xE\@leer \else + \spendchar@ba \bavar@xE + \ifx \bavar@xF\@leer \else + \spendchar@ba \bavar@xF + \ifx \bavar@xG\@leer \else + \spendchar@ba \bavar@xG + \ifx \bavar@xH\@leer \else + \spendchar@ba \bavar@xH + \ifx \bavar@xI\@leer \else + \spendchar@ba \bavar@xI + \ifx \bavar@xJ\@leer \else + \spendchar@ba \bavar@xJ + \ifx \bavar@xK\@leer \else + \spendchar@ba \bavar@xK + \ifx \bavar@xL\@leer \else + \spendchar@ba \bavar@xL + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + .% + \ifx \bavar@yA\@leer \else + \spendchar@ba \bavar@yA + \ifx \bavar@yB\@leer \else + \spendchar@ba \bavar@yB + \ifx \bavar@yC\@leer \else + \spendchar@ba \bavar@yC + \ifx \bavar@yD\@leer \else + \spendchar@ba \bavar@yD + \ifx \bavar@yE\@leer \else + \spendchar@ba \bavar@yE + \ifx \bavar@yF\@leer \else + \spendchar@ba \bavar@yF + \ifx \bavar@yG\@leer \else + \spendchar@ba \bavar@yG + \ifx \bavar@yH\@leer \else + \spendchar@ba \bavar@yH + \ifx \bavar@yI\@leer \else + \spendchar@ba \bavar@yI + \ifx \bavar@yJ\@leer \else + \spendchar@ba \bavar@yJ + \ifx \bavar@yK\@leer \else + \spendchar@ba \bavar@yK + \ifx \bavar@yL\@leer \else + \spendchar@ba \bavar@yL + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + .% + \ifx \bavar@zA\@leer \else + \spendchar@ba \bavar@zA + \ifx \bavar@zB\@leer \else + \spendchar@ba \bavar@zB + \ifx \bavar@zC\@leer \else + \spendchar@ba \bavar@zC + \ifx \bavar@zD\@leer \else + \spendchar@ba \bavar@zD + \ifx \bavar@zE\@leer \else + \spendchar@ba \bavar@zE + \ifx \bavar@zF\@leer \else + \spendchar@ba \bavar@zF + \ifx \bavar@zG\@leer \else + \spendchar@ba \bavar@zG + \ifx \bavar@zH\@leer \else + \spendchar@ba \bavar@zH + \ifx \bavar@zI\@leer \else + \spendchar@ba \bavar@zI + \ifx \bavar@zJ\@leer \else + \spendchar@ba \bavar@zJ + \ifx \bavar@zK\@leer \else + \spendchar@ba \bavar@zK + \ifx \bavar@zL\@leer \else + \spendchar@ba \bavar@zL + \ifx \bavar@zM\@leer \else + \spendchar@ba \bavar@zM + \ifx \bavar@zN\@leer \else + \spendchar@ba \bavar@zN + \ifx \bavar@zO\@leer \else + \spendchar@ba \bavar@zO + \ifx \bavar@zP\@leer \else + \spendchar@ba \bavar@zP + \ifx \bavar@zQ\@leer \else + \spendchar@ba \bavar@zQ + \ifx \bavar@zR\@leer \else + \spendchar@ba \bavar@zR + \ifx \bavar@zS\@leer \else + \spendchar@ba \bavar@zS + \ifx \bavar@zT\@leer \else + \spendchar@ba \bavar@zT + \ifx \bavar@zU\@leer \else + \spendchar@ba \bavar@zU + \ifx \bavar@zV\@leer \else + \spendchar@ba \bavar@zV + \ifx \bavar@zW\@leer \else + \spendchar@ba \bavar@zW + \ifx \bavar@zX\@leer \else + \spendchar@ba \bavar@zX + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + } + + +%%%%%% + + + %% Hilfsbefehle %% + + +\def\ncn@ersch#1{{\csname #1erschnohousename\endcsname}} +\def\nyn@ersch#1{{\csname #1erschnoyearname\endcsname}} + +{\catcode\grave@ba\>=12% +\gdef\@@ersch#1|#2|[#3]#4#5{\nulskip@ba + {\def\@testa{#2}% + \ifx\@testa\@leer \else + \ifx\@testa\@leerz\else + {\ignorespaces #2}\kern -0.1em\penalty\@m \ + \ifnum#2>1{\csname #1erschvolumepname\endcsname}\else + {\csname #1erschvolumename\endcsname}\fi \penalty-\@m \ + \fi\fi}% + \nulskip@ba{\def\@testa{#3}\def\@testb{#4}% + \if@bamathaufl + \ifx\@testb\@leer \ncn@ersch{#1}\ \else + \ifx\@testb\@leerz\ncn@ersch{#1}\ \else + {\ignorespaces #4\ba@textmode}\ + \fi\fi + \ifx\@testa\@leer \else \ifx\@testa\@leerz \else + \kern -0.4pt\fup{#3}\kern 0.4pt\nulskip@ba + \fi\fi + \else + \ifx\@testa\@leer \else \ifx\@testa\@leerz \else + {\csname #1ordinal\endcsname{#3\ba@textmode}}% + {\setbox\testbox@ba=\hbox{\ignorespaces\csname #1erscheditionname\endcsname}% + \ifdim\ht\testbox@ba=0pt\else{\unhbox\testbox@ba}\fi}\ + \fi\fi + \ifx\@testb\@leer \ncn@ersch{#1}\ \else + \ifx\@testb\@leerz\ncn@ersch{#1}\ \else + {\ignorespaces #4\ba@textmode}\ + \fi\fi + \fi}% + {\def\@testa{#5}% + \ifx\@testa\@leer \nyn@ersch{#1}\else + \ifx\@testa\@leerz\nyn@ersch{#1}\else + {\ignorespaces #5\ba@textmode}% + \fi\fi}}% +} +\def\@ersch#1|#2|{\@ifnextchar[{\@@ersch{#1}|#2|}{\@@ersch{#1}|#2|[]}} +\def\persch#1{\leavevmode\ba@textmode\@ifnextchar|{\@ersch{#1}}{\@ersch{#1}||}} +\def\ersch{\protect\persch{\langcap@ba}} + +\def\peordinal#1{{\errorcontextlines=-1\leavevmode \count@ba #1\relax + \ifnum\count@ba\string<0 \count@ba -\count@ba\fi + \loop \ifnum\count@ba\string>999 \advance\count@ba -1000\repeat + \loop \ifnum\count@ba\string>99 \advance\count@ba -100\repeat + \loop \ifnum\count@ba\string>29 \advance\count@ba -10\repeat + \ifnum\count@ba\string>19 \advance\count@ba -20\fi + {\ignorespaces #1}\kern 0.8pt% + \fup{\ifcase\number\count@ba th\or + \kern -1.4pt st\or nd\or rd\or \kern -0.7pt th\or th\or th\or th\or th\or th\or th\or %% 1-10 + \kern -1.4pt th\or th\or th\or \kern -0.7pt th\else th\fi \kern 0.2pt}\nulskip@ba}} %% 11-14 +\def\eordinal{\protect\peordinal} + + +\def\pfordinal#1#2{{\errorcontextlines=-1\leavevmode \count@ba #2\relax + \ifnum\count@ba\string<0 \count@ba -\count@ba\fi + \loop \ifnum\count@ba\string>1019 \advance\count@ba -1000\repeat + \loop \ifnum\count@ba\string>119 \advance\count@ba -100\repeat + \loop \ifnum\count@ba\string>19 \advance\count@ba -10\repeat + {\ignorespaces #2}\kern 0.8pt% + \fup{\ifcase\number\count@ba e\or + \kern -1.4pt{#1}\kern 0.2pt \or e\or \kern -0.3pt e\or \kern -0.7pt e\or \kern -0.3pt e\or e\or e\or e\or e\or e\or %% 1-10 + \kern -1.4pt e\or e\or \kern -0.3pt e\or \kern -0.7pt e\or \kern -0.3pt e\else e\fi}\nulskip@ba}} %% 11-14 +\def\fordinalf{\protect\pfordinal{re}} +\def\fordinalm{\protect\pfordinal{er}} +\let\fordinal=\fordinalf %\let\fordinal=\fordinalm + +\def\pgordinal#1{{\ignorespaces #1.}\nulskip@ba} +\def\gordinal{\protect\pgordinal} + +\expandafter\ifx\csname pteskip\endcsname\relax + \def\pteskip{\nobreak \hskip 0.2em plus 0.1em minus 0.05em}% +\fi + \def\teskip{\protect\pteskip} + +\expandafter\ifx\csname pfupskip\endcsname\relax + \def\pfupskip{\nobreak \hskip 0.2em plus 0.1em minus 0.05em}% +\fi + \def\fupskip{\protect\pfupskip} + +%%% + +\def\next@hy{} +\def\test@hy{} +\def\txen@hy{} + +\def\Atest@hy{A@} + +\def\acckorr@hy#1{% + \def\test@hy{#1}% + \ifx#1A\kern -0.06em\fi \ifx\test@hy\Atest@hy\kern -0.06em\fi + \ifx#1V\kern -0.1em\fi + \ifx#1W\kern -0.1em\fi + \ifx#1T\kern -0.1em\fi + \ifx#1v\kern -0.04em\fi + \ifx#1w\kern -0.04em\fi + \ifx#1X\kern -0.06em\fi + \ifx#1Y\kern -0.12em\fi + \ifx#1y\kern -0.04em\fi + \ifx#1x\kern -0.04em\fi + \txen@hy{#1}} + +\def\accentnum@hy#1 #2{% + \ifx#2A\kern -0.06em\fi + \ifx#2V\kern -0.1em\fi + \ifx#2W\kern -0.1em\fi + \ifx#2T\kern -0.1em\fi + \ifx#2v\kern -0.04em\fi + \ifx#2w\kern -0.04em\fi + \ifx#2X\kern -0.06em\fi + \ifx#2Y\kern -0.12em\fi + \ifx#2y\kern -0.04em\fi + \ifx#2x\kern -0.04em\fi + \accent #1 #2} + +\def\aktacckorr@hy#1{\ifx#1\dq@prtct \else + \message{[ HYKO: Get unexpected \string#1 ] }\fi + \acckorr@hy} + +\def\getarg@hy{\afterassignment\nextarg@hy\let\txen@hy= } + +\def\nextarg@hy{\bgroup + \ifx\txen@hy\accent + \expandafter\accentnum@hy\else + \expandafter\txen@hy\fi} + +\def\gonext@hy{\let\txen@hy=\next@hy \let\next@hy=\acckorr@hy} +\def\goact@hy{\let\txen@hy=\next@hy \let\next@hy=\aktacckorr@hy} + +{\catcode`\"=13% + \catcode`\`=12% + \catcode`\'=12% +\gdef\hykorr@hy{% + \if@hyko + \ifx\next@hy A\kern -0.06em\fi + \ifx\next@hy V\kern -0.1em\fi + \ifx\next@hy W\kern -0.1em\fi + \ifx\next@hy T\kern -0.1em\fi + \ifx\next@hy v\kern -0.04em\fi + \ifx\next@hy w\kern -0.04em\fi + \ifx\next@hy X\kern -0.06em\fi + \ifx\next@hy Y\kern -0.12em\fi + \ifx\next@hy y\kern -0.04em\fi + \ifx\next@hy x\kern -0.04em\fi + \ifx\next@hy "\gonext@hy\fi + \ifx\next@hy \newumlaut\gonext@hy\fi + \ifx\next@hy \active@dq\goact@hy \fi + \ifx\next@hy \bgroup \let\next@hy=\getarg@hy\fi + \ifx\next@hy \accent\let\next@hy=\accentnum@hy\fi + \ifx\next@hy \"\gonext@hy\fi + \ifx\next@hy \.\gonext@hy\fi + \ifx\next@hy \=\gonext@hy\fi + \ifx\next@hy \^\gonext@hy\fi + \ifx\next@hy \'\gonext@hy\fi + \ifx\next@hy \`\gonext@hy\fi + \ifx\next@hy \~\gonext@hy\fi + \ifx\next@hy \b\gonext@hy\fi \ifx\next@hy \pb\gonext@hy\fi + \ifx\next@hy \c\gonext@hy\fi \ifx\next@hy \pc\gonext@hy\fi + \ifx\next@hy \d\gonext@hy\fi \ifx\next@hy \pd\gonext@hy\fi + \ifx\next@hy \H\gonext@hy\fi + \ifx\next@hy \k\gonext@hy\fi + \ifx\next@hy \r\gonext@hy\fi + \ifx\next@hy \u\gonext@hy\fi + \ifx\next@hy \v\gonext@hy\fi + \ifx\next@hy `\kern 0.04em\fi + \ifx\next@hy '\kern 0.04em\fi + \ifx\next@hy \glq\kern 0.04em\fi \ifx\next@hy \@glq\kern 0.04em\fi + \ifx\next@hy ]\kern -0.04em\fi + \ifx\next@hy )\kern -0.04em\fi + \ifx\next@hy \}\kern -0.05em\fi \ifx\next@hy \@rb\kern -0.05em\fi + \fi + \nulskip@ba\next@hy}% +} + +\def\after@hy{\afterassignment\hykorr@hy\let\next@hy= } + +\newif\if@hyko\@hykotrue + +\def\phyko{\@hykotrue}% +\def\hyko{\protect\phyko}% + +\def\pnothyko{\@hykofalse}% +\def\nothyko{\protect\pnothyko}% + +\def\phy{\nulskip@ba\ifmmode\hbox{-}\else\discretionary{-}{}{-}\fi\after@hy} +%\def\phy{\nulskip@ba\ifmmode\hbox{-}\else\discretionary{-}{}{-}\fi\nulskip@ba} +\def\pfhy{\nulskip@ba\hbox{-}\after@hy} +%\def\pfhy{\nulskip@ba\hbox{-}\nulskip@ba} + +\def\hy{\protect\phy} +\def\fhy{\protect\pfhy} + +%%% + +\def\te{.\protect\pteskip} + +\def\pko{\ifhmode\nobreak\hskip -0.07em plus 0em\fi} +\def\ko{\protect\pko} + + +\expandafter\ifx\csname omicron\endcsname\relax +\def\omicron{o} +\fi + + +%% Dummy for systems with parameter stack size=60 %% +\expandafter\ifx\csname footnotetext\endcsname\relax +\else +{\setbox\testbox@ba=\hbox{\footnotetext{\printonlyvli{}{}{}}}}\clearmem@ba +\fi + + +\def\escb@ba{\ifvmode\leavevmode\lower -1ex\hbox{\strut}\else\nulskip@ba\fi} + +\def\babbrack#1{\escb@ba\textup{% + \lower 0.25ex\hbox{\tiny[}\hbox{#1}% + \lower 0.25ex\hbox{\tiny]}\kern 0.02em{}}} + +\def\bambrack#1{\iflasthasdot@ba{}{\@baupcorr}\escb@ba\textup{% + \lower -0.5ex\hbox{\lower 1.5pt\hbox{\tiny[}}\hbox{#1}% + \lower -0.5ex\hbox{\lower 1.5pt\hbox{\tiny]}}\kern 0.02em{}}} + +\def\batbrack#1{\iflasthasdot@ba{}{\@baupcorr}\escb@ba\textup{% + \lower -1.4ex\hbox{\lower 3pt\hbox{\tiny[}}\hbox{#1}% + \lower -1.4ex\hbox{\lower 3pt\hbox{\tiny]}}}{\@baendcorr}\kern 0.02em{}} + + +{\expandafter\ifx\csname dq\endcsname\relax + \catcode\grave@ba\"=12% + \gdef\dq{"}% + \fi + \catcode\grave@ba\"=13% + \catcode\grave@ba\'=12% + \catcode\grave@ba\`=12% +\gdef\@abra#1{{\errorcontextlines=-1% + \def\@testa{#1}% + \def\testS{``}% + \def\testT{''}% + \def\tests{`}% + \def\testt{'}% + \def\testk{,}% + \def\testp{.}% + \def\testm{$-$}% + \def\testh{-}% + \def\testH{--}% + \def\testL{---}% + \def\testl{\glq}% + \def\testr{\grq}% + \def\testO{\glqq}% + \def\testC{\grqq}% + \def\testQ{\dq}% + \def\testo{"`}% + \def\testc{"'}% + \def\testd{...}% + \def\testD{\dots}% + \ifx\@testa\testS\batbrack{\if@batone{\kern 0.04em``\kern -0.06em}{\kern -0.11em``}}\else + \ifx\@testa\testT\batbrack{\if@batone{\kern 0.03em''\kern -0.05em}{\kern 0.01em''\kern -0.12em}}\else + \ifx\@testa\tests\batbrack{\kern -0.02em`\kern -0.02em}\else + \ifx\@testa\testt\batbrack{\kern -0.02em'\kern -0.02em}\else + \ifx\@testa\testk\babbrack{\kern -0.02em,\kern -0.02em}\else + \ifx\@testa\testp\babbrack{\kern -0.02em.\kern -0.02em}\else + \ifx\@testa\testm\bambrack{\kern -0.03em$-$\kern -0.035em}\else + \ifx\@testa\testh\bambrack{\kern -0.01em-\kern -0.05em}\else + \ifx\@testa\testH\bambrack{\kern 0.03em--\kern 0.03em}\else + \ifx\@testa\testL\bambrack{\kern 0.03em---\kern 0.03em}\else + \ifx\@testa\testl\babbrack{\if@batone{\kern -0.02em\glq\kern -0.1034em}{\kern -0.02em\glq\kern 0.02em}}\else + \ifx\@testa\testr\batbrack{\if@batone{\kern -0.02em\grq\kern -0.02em}{\kern -0.01em\grq\kern -0.0875em}}\else + \ifx\@testa\testO\babbrack{\if@batone{\kern 0.03em\glqq\kern -0.05em}{\kern 0.01em\glqq\kern -0.08em}}\else + \ifx\@testa\testC\batbrack{\if@batone{\kern 0.04em\grqq\kern -0.06em}{\kern -0.04em\grqq\kern -0.07em}}\else + \ifx\@testa\testo\babbrack{\if@batone{\kern 0.03em\glqq\kern -0.05em}{\kern 0.01em\glqq\kern -0.08em}}\else + \ifx\@testa\testc\batbrack{\if@batone{\kern 0.04em\grqq\kern -0.06em}{\kern -0.04em\grqq\kern -0.07em}}\else + \ifx\@testa\testQ\batbrack{\if@batone{\kern -0.043em\dq\kern -0.06em}{\kern 0.01em\dq\kern -0.12em}}\else + \ifx\@testa\testd\babbrack{\kern -0.01em...\kern -0.03em}\else + \ifx\@testa\testD\babbrack{\kern 0.12em\dots\kern -0.08em}\else + \iflasthasdot@ba{}{\@baupcorr}\ifhmode\nulskip@ba\fi\textup{[{#1}]}\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}}% +} -\newcounter{arts} -\setcounter{arts}{5000} %% Es wird von weniger als 5000 Eintr"agen - %% ins File.BAR ausgegangen. Dieser Z"ahler - %% sorgt f"ur die Reihenfolge der \bib-Eintr"age, - %% die nicht in Fussnoten stehen. -\def\thearts{\arabic{arts}} +\def\pabra#1{\@abra{#1}{\hskip 0pt plus 0pt}} +\def\abra{\protect\pabra} + +\def\pfabra#1{\@abra{#1}{\nulskip@ba}} +\def\fabra{\protect\pfabra} + + +\def\pbaromannum#1{{\romannumeral #1}} +\def\baromannum{\protect\pbaromannum} + +\def\pbaRomannum#1{\uppercase\expandafter{\romannumeral #1}} +\def\baRomannum{\protect\pbaRomannum} + +%%%%% + + + %% Layout %% + + +\def\bakorr@fnr{} %%{originalquote}%% +\let\fnrbasave=\footnoterule +\def\footnoterule{\bakorr@fnr\vfill\fnrbasave} +%% \vfill INSTEAD OF \flushbottom %% + +\footnotesep=2ex + +\def\bibsortargs{unknown (no BibArts list printed yet)} + +\def\@baposvskip{\vskip \baselineskip \vskip \lineskip} +\def\@banegvskip{\vskip -\baselineskip \vskip -\lineskip} +\newif\if@bibsortspace\@bibsortspacefalse +\newif\if@bibsorthead\@bibsortheadfalse +\def\do@bibsortspace{\@baposvskip\pagebreak[3]} +\def\do@twocolumnbsh#1{\@baposvskip\pagebreak[3]% + \item{}\rule{5pt}{0pt}\nopagebreak + \@baposvskip\rule{5pt}{0pt}\pagebreak[3]% + \item{}\@banegvskip\@banegvskip\@banegvskip + {\large\bfseries\sffamily{#1}}\nopagebreak + } +\def\do@onecolumnbsh#1{% + \nopagebreak\@baposvskip\@baposvskip\pagebreak[3]\@banegvskip\item{}{\large\bfseries\sffamily{#1}}\nopagebreak + } +\def\do@nobibsortspace{} +\def\do@nobibsorthead#1{} + +\let\bibsortpreparespace\do@nobibsortspace +\let\bibsortpreparexspace\do@nobibsortspace +\let\bibsortpreparehead\do@nobibsorthead + +\def\bibsortspaces{\protect\@bibsortspacetrue\protect\@bibsortheadfalse} +\def\notbibsortspaces{\protect\@bibsortspacefalse\protect\@bibsortheadfalse} +\def\bibsortheads{\protect\@bibsortspacefalse\protect\@bibsortheadtrue} +\def\notbibsortheads{\protect\@bibsortspacefalse\protect\@bibsortheadfalse} + +\def\pbafootnoteframe#1{/#1/} +\def\bafootnoteframe{\protect\pbafootnoteframe} +\def\pbapageframe#1{/#1/} +\def\bapageframe{\protect\pbapageframe} + + + + %% Kompatibilitaet zu BibArts 3.1 %% + +\def\bib{\arq{}} +\def\printonlybib{\printonlyarq{}} +\def\addtobib{\addtoarq{}} +\newif\if@oldba\@oldbafalse +\def\makebar{\typeout@ba{ \space ***** \space That is obviously a file based on BibArts 1.x \space ***** + ^^J \space ***** \space BibArts 2.0 starts compatibility mode for 1.3 \space *****}% + \def\bibarts{\BibArts}% + \def\schrift{}% + \def\barschrift{}% + \def\indschrift{}% + \newif\ifbibarts\bibartsfalse + \newif\iffootnote\footnotefalse + \def\Kapitell##1{}% + \def\@Kapitell##1##2{}% + \def\printind{\ba@textmode\type@bawarn{I use arq-list for 1.3 cmd \string\printind}% + \Check@tcbalist{\@batwocoldefs}{\bibsortheads + \def\arqlistemph{}\def\balistnumemph{}% + \def\earqtitlename{Index}\def\farqtitlename{Index}% + \def\garqtitlename{Index}\small}{num}{arq}{subsection}}% + \@oldbatrue} +\def\printind{\errhelp{Forget so set \makebar to switch to BibArts 1.3 compatibility mode?}% + \@qqertypeout{printind}{Expiring cmd.}\errmessage@ba{\string\printind\space without \string\makebar}} + +\def\pstressing#1{\@bsphack\def\authoremph{\upshape\csname #1\endcsname}\@esphack} + \def\stressing{\protect\pstressing} + +\def\gbibmarkname{im folgenden: } +\def\fbibmarkname{par la suite: } +\def\ebibmarkname{cited as: } +\def\pbibref#1{{#1} {\ba@varstringtrue\ba@varref{}{BIB}{#1}}} + \def\bibref{\protect\pbibref} +\def\pxbibref#1#2{{#2} {\ba@varstringtrue\ba@varref{}{XBIB}{#1}}} + \def\xbibref#1#2{\protect\pxbibref{#2}{#1}} +\def\pbibmark#1{{\cap@ba{bibmark}}{#1}{\ba@varstringtrue\ba@varlabel{}{BIB}{#1}}} + \def\bibmark{\protect\pbibmark} +\def\pxbibmark#1#2{{\cap@ba{bibmark}}{#1}{\ba@varstringtrue\ba@varlabel{}{XBIB}{#2}}} + \def\xbibmark{\protect\pxbibmark} + + +\message{Load BibArts\string: End.} \endinput |