From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/stdpage/README | 14 + macros/latex/contrib/stdpage/stdpage-test.tex | 15 + macros/latex/contrib/stdpage/stdpage.dtx | 429 ++++++++++++++++++++++++++ macros/latex/contrib/stdpage/stdpage.ins | 55 ++++ macros/latex/contrib/stdpage/stdpage.pdf | Bin 0 -> 116982 bytes macros/latex/contrib/stdpage/stdpage.sty | 163 ++++++++++ 6 files changed, 676 insertions(+) create mode 100644 macros/latex/contrib/stdpage/README create mode 100644 macros/latex/contrib/stdpage/stdpage-test.tex create mode 100644 macros/latex/contrib/stdpage/stdpage.dtx create mode 100644 macros/latex/contrib/stdpage/stdpage.ins create mode 100644 macros/latex/contrib/stdpage/stdpage.pdf create mode 100644 macros/latex/contrib/stdpage/stdpage.sty (limited to 'macros/latex/contrib/stdpage') diff --git a/macros/latex/contrib/stdpage/README b/macros/latex/contrib/stdpage/README new file mode 100644 index 0000000000..9c35cba205 --- /dev/null +++ b/macros/latex/contrib/stdpage/README @@ -0,0 +1,14 @@ +The stdpage package produces a standard page with an adjustable +number of lines per page, with an adjustable maximum number of +characters each. Those pages are used to calculate the standard +length or the price of translations, proof reading or journal +contributions. In Germany the "Normseite" of 30 lines and at most 60 +characters per line is very widespread. So if you have to find out +how many "standard pages" a LaTeX text has, you just add one line of +code and get well typeset typewriterpages. + +Version 0.5 additionally supports baselinestretch, parskip and +suppressing of hyphenation. + +Version 0.6 fixes some important bugs and adds an option to get the +real typewriter look! diff --git a/macros/latex/contrib/stdpage/stdpage-test.tex b/macros/latex/contrib/stdpage/stdpage-test.tex new file mode 100644 index 0000000000..c09e861df5 --- /dev/null +++ b/macros/latex/contrib/stdpage/stdpage-test.tex @@ -0,0 +1,15 @@ + \documentclass{article} + \usepackage[ngerman]{babel} + \usepackage{courier,blindtext} + \usepackage[ + baselinestretch, + noindent, + parskip, + just, + chars=65, + lines=35, + typewriter + ]{stdpage} + \begin{document} + \Blinddocument + \end{document} diff --git a/macros/latex/contrib/stdpage/stdpage.dtx b/macros/latex/contrib/stdpage/stdpage.dtx new file mode 100644 index 0000000000..7fdbee071e --- /dev/null +++ b/macros/latex/contrib/stdpage/stdpage.dtx @@ -0,0 +1,429 @@ +% \iffalse meta-comment +% +% Copyright (C) 2004--2005 by Georg Michael Verweyen +% -------------------------------------------------- +% +% This file may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.2 +% of this license or (at your option) any later version. +% The latest version of this license is in: +% +% http://www.latex-project.org/lppl.txt +% +% and version 1.2 or later is part of all distributions of LaTeX +% version 1999/12/01 or later. +% +% \fi +% +% \iffalse +%\NeedsTeXFormat{LaTeX2e}[1999/12/01] +%\ProvidesPackage{stdpage} +% [2005/03/30 v0.6 stdpage.sty] +% +%<*driver> +\documentclass{ltxdoc} +\renewcommand{\familydefault}{\rmdefault} +\usepackage[T1]{fontenc} +\usepackage[ngerman]{babel} +\usepackage{hyperref,courier} +\usepackage[typewriter,chars=70,lines=35]{stdpage} + +\hypersetup{% + pdftitle={Das stdpage-Paket},% + pdfauthor={\textcopyright\ Georg Michael Verweyen },% + pdfsubject={Anleitung zur Erstellung einer Normseite / Manual to create a standard page},% + pdfkeywords={Satzspiegel, Vorgaben, 30x60, LaTeX, \LaTeXe, Normseiten,% + 30 Zeilen, 60 Zeichen, standard page, requirements, 60 characters, 30 lines}% +} + \CodelineIndex + \RecordChanges +\begin{document} + \DocInput{stdpage.dtx} +\end{document} +% +% \fi +% +% \CheckSum{207} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% +% \changes{v0.1}{2004/06/17}{Initial version} +% \GetFileInfo{stdpage.sty} +% \changes{v0.2}{2004/06/21}{Neue Übergabe der Parameter mit xkeyval.sty} +% \changes{v0.3}{2004/06/17}{Wieder alles überarbeitet, das Paket xkeyval wird +% nicht mehr gebraucht. Die Funktionalität ist unverändert.} +% \changes{v0.4}{2004/06/21}{Some English documentation added} +% \changes{v0.6}{2005/03/30}{Additional Features, bugs removed, lot's of changes} +% +% \title{Das \textsf{stdpage} Paket -- \emph{The \textsf{stdpage} +% package}\thanks{% +% Diese Anleitung geh\"{o}rt zu \textsf{stdpage}~\fileversion, +% vom \filedate. \emph{This is the manual for \textsf{stdpage}~\fileversion, +% dated \filedate.} +% }% +% }% +% \author{Georg Michael Verweyen \\ \texttt{Georg.Verweyen@rub.de}} +% \maketitle +% +% \abstract{% +% Dieses Paket bietet eine einfache Möglichkeit Normseiten zu +% erstellen, das sind in Deutschland Seiten mit 30 Zeilen \`{a} 60 Zeichen. +% +% \emph{% +% This package provides an easy method to prepare a page with a fixed +% number of lines per page and a number of characters per line not to be exeeded. +% Worldwide there are different standards for so called ">standard"< pages. +% \textsf{stdpage.sty} lets you adjust the page settings. There is further English +% instruction following (in italics). +% }% +% }% +% +% +% \section{Normseiten -- \emph{Standard pages}} +% +% Normseiten nennt man im Verlag Seiten, die in einer nicht-proportionalen +% Schrift gesetzt sind, bei einer Zeilenl\"{a}nge von maximal 60~Zeichen und +% 30~Zeilen pro Seite. Daraus ergeben sich meist ca.\ 1\,400 Zeichen +% inklusive Leerschritte pro Seite, denn nicht jede Zeile wird voll, evtl.\ +% gibt es Leerzeilen, halbleere Seiten vor einem neuen Kapitel etc.\footnote{% +% Manche Verlage rechnen einfach mit 1\,800 Zeichen f\"{u}r eine Normseite -- +% absurd! +% } Die Zeichenzahl kann erheblich schwanken, stark strukturierte Texte, mit +% Dialogen etc. nehmen relativ viel Raum ein, bei wenig Zeichen pro Seite. +% +% \"{U}bersetzer etwa werden pro Normseite bezahlt, auch f\"{u}r Korrekturlesen, +% oder Schriftsatz gibt es Vertr\"{a}ge, die sich auf Normseiten beziehen. +% +% \emph{% +% Standard pages are typeset in a nonproportional font. The lines take a +% limited number of characters, for instance 60. Also the number of lines +% is fixed, for instance 30 (Those are the standard settings in quite a number +% countries). This does \emph{not} mean, such a page has 1\,800 +% characters, as lines don't necessarily get filled, also pages might not +% get filled at the end of a chapter. Usually a standard page (30x60) has +% about 1400 characters. +% }% +% +% \section*{Changes} +% +% Neu in Version 0.5 sind die Möglichkeiten, den Durchschuss zu +% erhöhen, die Silbentrennung abzustellen und Leerzeilen zwischen +% den Absätzen einzufügen. +% +% {\em Since v0.5 you can spread the lines, stop hyphenation +% optionally and add an empty line at the beginning of a paragraph. +% +% Für den echten Freund der guten (?) alten Schreibmaschine gibt es +% jetzt (v0.6) eine Option, die so ziemlich alles, was mir spontan +% eingefallen ist auf einfache Schriftgrö{\ss}e herunterbrät, +% |typewriter|. Vom Part bis zur Fu{\ss}note: alles |normalsize|. Die +% Überschriften werden je nach Gewichtung durch Leerzeilen abgesetzt. +% Man sollte |courier.sty| benutzen, dann stehen für Überschriften +% wenigsten fette Schnitte zur Verfügung, damit an die Überschriften +% wiederfindet. +% +% {\em +% For the real typewriter addicted there is a new (v0.6) option: +% |typewriter|. This option will turn any fontsize I could imagine used +% in a heading or footnote, or whatever into normalsize. Headings are +% separated from the rest of the text by blank lines. You should +% consider using |courier.sty| with this options, which gives bold +% headings +% } +% +% \section{Anwendung -- \emph{Usage}} +% +% F\"{u}r die Basiseinstellungen (Normseiten im Sinne des Vd\"{U}) reicht es, die +% Zeile |\usepackage{stdpage}| vor dem |\begin{document}| einzuf\"{u}gen -- +% eigentlich sollte dann alles von alleine gehen. +% +% Silbentrennung sollte man meines Erachtens verwenden, trotz der nicht"=proportionaler +% Fonts. Wer mag kann aber |hyphen=false| wählen. Ob man den Rausatz +% dann zum Blocksatz streckt ist letztlich eine Geschmacksfrage. Wer +% Blocksatz w\"{u}nscht, kann |just| (Blocksatz = justified) als optionales Argument \"{u}bergeben - die Kombination +% |[just=true, hyphen=false]| ist nicht m\"oglich. Wenn schon Blocksatz dann auch Sibentrennung! +% Ma{\ss}geblich +% ist in meinen Augen das Ergebnis des Rausatzes, da dieser die Situation auf der +% guten alten Schreibmaschine am besten nachahmt, schlie{\ss}lich stammt auch die Idee +% der Normseite aus dieser \"{A}ra. Bei aktiviertem Blocksatz kann der Umbruch durch +% Stauchung und oder Dehnung der Wortzwischenr\"{a}ume etwas anders ausfallen als beim +% Rausatz (dieses Problem sollte ab v0.6 behoben sein). +% +% {\em If you are preparing a German ``Normseite'' of 30 lines and 60 characters +% per line you just put |\usepackage{stdpage}| before the +% |\begin{document}| line -- and everything should be fine. The standard +% behaviour of the package is to make the text ragged, you can change this +% to justified text by adding |just| to the options list. +% +% Linenumbers can be added with |linenumbers|. Paragraph indention can be +% suppressed with |noindent|. You should think about adding |parskip| to the +% list of options then, as your paragraphs might get lost otherwise. +% +% If you want to create a standard page for, let's say the administration of +% the European union, you need a page of 30x50 without paragraph indention, +% you type in\\ |\usepackage[chars=50, lines=30, noindent]{stdpage}|. +% }% +% +% \changes{v0.2}{2004/06/21}{Neue Option: linenumbers} +% Eine weitere Option ist |linenumbers|: wird die Option gew\"{a}hlt, erscheinen +% automatisch auf dem Innenrand Zeilennummern - nur f\"{u}r den Fall, dass der +% Lektor/""Verlagsleiter/""Autor \dots\ nicht so gut z\"{a}hlen kann. Mit +% |linenumbers| besser einmal zuviel {\TeX}en als zuwenig, die Nummern rutschen +% schonmal\dots +% +% Wer keinen Absatzeinzug w\"{u}nscht (zum Beispiel weil er das in Kombination mit Rausatz +% kategorisch ablehnt), kann |noindent| w\"{a}hlen. Er sollte dann vielleicht |parskip=true| +% setzen, damit die Absätze erkennbar bleiben. +% +% \changes{v0.2}{2004/06/21}{Neue Optionen: chars/lines} +% Falls es (im Ausland?) andere Standards f\"{u}r Normseiten gibt, kann man +% andere Werte im optionalen Parameter |lines| bzw.\ |chars| angeben. +% Beispiel: |\usepackage[just,noindent,chars=50]{stdpage}| Mit diesen +% Angaben entsteht eine Ausgabe die den Ma\ss gaben f\"{u}r +% \"{U}bersetzungen der Europ\"{a}ischen Union entspricht (30 Zeilen mit je +% 50 Zeichen). +% +% \changes{v0.2}{2004/06/21}{Neue Optionen: hyphen, baselinestretch} +% Unklar ist in vielen Vertr\"agen, ob bei Normseiten Silbentrennung +% stattfinden soll oder nicht. Die Option |hyphen=false| stellt die +% Silbentrennung ab (geht nur, wenn kein Blocksatz aktiviert wurde). +% Die Verlagswelt scheint über die Anwendung der +% Trennung gespalten. Wird die Trennung abgeschaltet, steigt die Zahl +% der Normseiten um etwa 1,5\,\%. +% +% Einige Lektoren wollen auch gleich im Normseiten-Ausdruck redigieren +% und brauchen anderthalbfache Zeilenhöhe. Das verdirbt dann jeden +% Rest von \"asthetischem Anspruch, aber nun ja -- wenn es der Verlag +% so will: |baselineskip| kann jetzt auch als Option von |stdpage| +% angegeben werden. Für das, was Word gemeinhin anderthalbzeilig +% nennt, sollte man |baselinestretch=1.2| setzen (was allerdings auch +% die Standardeinstellung ist, wenn nur |baselinestretch| gefordert wird. +% +% {\em +% In contracts it is often not clear if hyphenation should be used or +% not. The option |hyphen=false| sets off hyphenation, wich will +% increase the number of standard pages about 1.5\,\%. This will not +% work with the option |just| (justification needs hyphenation!). +% +% Sometimes publishers want to do correction or annotations between +% the lines and need more space. You can change the standard +% \LaTeX-factor |baselinestretch| in the options of |stdpage|. +% |baselinestretch=1.25| will have about the same effect as one and a +% half linespacing in let's say WORD. By the way: |baselinestretch| will be +% set to 1.25 by default when you use |baselinestretch| as an option. +% +% I didn't translate the comment on the implementation (which is rather +% simple). If you are interested in an English hint, just contact me, +% I'll do my very best \dots +% } +% +% \section{Neu -- \emph{New}} +% \StopEventually{\PrintChanges\PrintIndex} +% +% \section{Implementierung} +% +% \begin{macrocode} + \RequirePackage{typearea% + ,ragged2e% + ,ifthen% + ,keyval% + ,lineno% + }% + \RequirePackage[htt]{hyphenat}% + \RequirePackage[rigidchapters]{titlesec}% +% \end{macrocode} +% Typewriter wir zur Standardfamilie erkl\"{a}rt und Absatzeinzug auch bei RaggedRight +% als Standard gesetzt. +% \begin{macrocode} +\renewcommand{\familydefault}{\ttdefault}% +\renewcommand{\RaggedRightParindent}{\parindent}% +% \end{macrocode} +% Ein paar neue L\"{a}ngen und Befehle: +% \begin{macrocode} + \newlength{\St@ndardLinewidth}% + \newlength{\St@ndardTextwidth}% + \newlength{\CharsX}% + \newlength{\CharsI}% + \newboolean{st@ndardjust}% + \setboolean{st@ndardjust}{false}% + \newboolean{st@ndardnoindent}% + \setboolean{st@ndardnoindent}{false}% + \newboolean{st@ndardnumbers}% + \setboolean{st@ndardnumbers}{false}% + \newboolean{st@ndardhyphen}% + \setboolean{st@ndardhyphen}{true}% + \newboolean{st@ndardparskip}% + \setboolean{st@ndardparskip}{false}% + \newboolean{st@ndardtypewriter}% + \setboolean{st@ndardtypewriter}{false}% + \newcommand*{\zeichenzahl}{60}% + \newcommand*{\zeilenzahl}{30}% +% \end{macrocode} +% \subsection{Optionen} +% Hier werden jetzt die optionalen Argumente des +% |\usepackage{stdpage}|-Befehls definiert. |#1| bezieht sich jeweils auf +% den Eintrag nach dem Gleichheitszeichen, in eckigen Klammern der +% Defaultwert, der angenommen wird, falls kein Gleichheitszeichen und kein +% Wert folgt. Ob man also |just=true| eingibt oder einfach |just| ist +% egal. +% \begin{macrocode} +\define@key{stdpage}{block}[true]{%Aus Kompatibilitätsgründen (zu v. 0.4) auf deutsch + \setboolean{st@ndardjust}{#1}% +}% +\define@key{stdpage}{just}[true]{% + \setboolean{st@ndardjust}{#1}% +}% +\define@key{stdpage}{noindent}[true]{% + \setboolean{st@ndardnoindent}{#1}% +}% +\define@key{stdpage}{linenumbers}[true]{% + \setboolean{st@ndardnumbers}{#1}% +}% +\define@key{stdpage}{hyphen}[true]{% + \setboolean{st@ndardhyphen}{#1}% +}% +\define@key{stdpage}{parskip}[true]{% + \setboolean{st@ndardparskip}{#1}% +}% +\define@key{stdpage}{chars}[60]{% + \renewcommand{\zeichenzahl}{#1}% +}% +\define@key{stdpage}{lines}[30]{% + \renewcommand{\zeilenzahl}{#1}% +}% +\define@key{stdpage}{baselinestretch}[1.25]{% + \renewcommand{\baselinestretch}{#1}% +}% +\define@key{stdpage}{typewriter}[true]{% + \setboolean{st@ndardtypewriter}{#1}% +}% \end{macrocode} +% Die folgenden Zeilen habe ich auch nicht verstanden, sie tun aber ihre +% Arbeit wie erhofft, indem sie das Makro |\ProcessOptionsWithKV| anstelle +% von |\ProcessOptions| bereitstellen, das dann am Ende zum Einsatz kommt. +% \begin{macrocode} +\def\ProcessOptionsWithKV#1{% + \let\@tempc\relax% + \let\stdpage@tempa\@empty% + \@for\CurrentOption:=\@classoptionslist\do{% + \@ifundefined{KV@#1@\CurrentOption}% + {}% + {\edef\stdpage@tempa{\stdpage@tempa,\CurrentOption,}}% + }% + \edef\stdpage@tempa{% + \noexpand\setkeys{#1}{% + \stdpage@tempa\@ptionlist{\@currname.\@currext}% + }% + }% + \stdpage@tempa% +}% +% \end{macrocode} +% Jetzt kommt die etwas umst\"{a}ndliche Berechnung der L\"{a}ngen, aber +% sicher ist sicher \dots +% \begin{macrocode} +\AtBeginDocument{ + \settowidth{\CharsX}{1234567890}% + \setlength{\CharsI}{.1\CharsX}% + \setlength{\St@ndardLinewidth}{\zeichenzahl\CharsI}% + \setlength{\St@ndardTextwidth}{0pt}%\topskip}% + \addtolength{\St@ndardTextwidth}{\zeilenzahl\baselineskip}% +% \end{macrocode} +% Wenn |parskip| gew\"{a}hlt wird, f\"{u}gt stdpage einen Durchschuss +% zwischen den Absätzen ein. Nix dehnbar - einfach Schreibmaschine. +% \begin{macrocode} + \ifthenelse{\boolean{st@ndardparskip}}% + {\setlength{\parskip}{\baselineskip}}{} +% \end{macrocode} +% Dann werden die Werte an das |typearea|-Paket \"{u}bergeben. Dabei +% m\"{u}ssen etwa 2,4\,\% abgezogen werden, falls die Blockoption +% gew\"{a}hlt wurde, ansonsten sorgt die Stauchung der Wortzwischenr\"{a}ume +% f\"{u}r entsprechend weniger Seiten (und das soll ja nicht!). Durch die neuen +% fontdimen-Werte bei just=true entfällt dieses Gefrickel. +% \begin{macrocode} +%%% \ifthenelse{\boolean{st@ndardjust}}% +%%% {% + \areaset[current]{.976\St@ndardLinewidth}{\St@ndardTextwidth}% +%%% }% +%%% {% +%%% \areaset[current]{\St@ndardLinewidth}{\St@ndardTextwidth}% +%%% }% +% \end{macrocode} +% Auch zu Beginn werden, falls Blocksatz gew\"{u}nscht +% wurde, die Interwordspaces flexibel gesetzt, sonst wird auf +% Rausatz oder (wenn hyphen=false) Flattersatz gestellt +% \begin{macrocode} + \ifthenelse{\boolean{st@ndardjust}}% + {% + \spaceskip=1\CharsI plus 1.5pt minus 0pt + }% + {% + \spaceskip=1\CharsI plus 0pt minus 0pt + \ifthenelse{\boolean{st@ndardhyphen}}% + {% + \setlength{\RaggedRightRightskip}{0em minus .75em} + \RaggedRight% + }% + {% + \raggedright% + }% + }% + \ifthenelse{\boolean{st@ndardnoindent}}% + {\setlength{\parindent}{0mm}}{}% + \ifthenelse{\boolean{st@ndardnumbers}}{% + \modulolinenumbers[5]% + \linenumbers% + \pagewiselinenumbers% + }{}% +% \end{macrocode} +% Die neue (v. 0.6) Option typewriter brät alle Überschriften auf fette Schreibmaschine runter +% \begin{macrocode} + \ifthenelse{\boolean{st@ndardtypewriter}}% + {% + \let\sectfont\normalfont + \renewcommand{\footnotesize}{\normalsize} + \titleformat{\part}{\normalfont\normalsize\bfseries}{\thepart}{1em}{} + \titleformat{\chapter}{\normalfont\normalsize\bfseries}{\thechapter}{1em}{} + \titleformat{\section}{\normalfont\normalsize\bfseries}{\thesection}{1em}{} + \titleformat{\subsection}{\normalfont\normalsize\bfseries}{\thesubsection}{1em}{} + \titleformat{\subsubsection}{\normalfont\normalsize\bfseries}{\thesubsubsection}{1em}{} + \titleformat{\paragraph}{\normalfont\normalsize\bfseries}{\theparagraph}{1em}{} + \titlespacing*{\part}{0pt}{5\baselineskip}{3\baselineskip} + \titlespacing*{\chapter}{0pt}{4\baselineskip}{3\baselineskip} + \titlespacing*{\section}{0pt}{3\baselineskip}{2\baselineskip} + \titlespacing*{\subsection}{0pt}{2\baselineskip}{1\baselineskip} + \titlespacing*{\subsubsection}{0pt}{1\baselineskip}{0pt} + \titlespacing*{\paragraph}{0pt}{1\baselineskip}{0pt} + }{}% +% \end{macrocode} +% |emergencystretch| sollte mindestens 2em sein, sonst hat man entschieden +% zu viele Box-Warnungen. Frenchspacing sollte aktiviert +% sein, vergrö{\ss}erter Leerraum passt nicht so recht zu Fix-Fonts. +% \begin{macrocode} + \frenchspacing + \emergencystretch=2em% +}% +% \end{macrocode} +% Hier endet das Argument von |\AtBeginDocument| +% \begin{macrocode} +\ProcessOptionsWithKV{stdpage} +\AtEndOfPackage{% + \let\@unprocessedoptions\relax +} +% \end{macrocode} +% +% \Finale +\endinput% diff --git a/macros/latex/contrib/stdpage/stdpage.ins b/macros/latex/contrib/stdpage/stdpage.ins new file mode 100644 index 0000000000..57a07a7d55 --- /dev/null +++ b/macros/latex/contrib/stdpage/stdpage.ins @@ -0,0 +1,55 @@ +%% +%% Copyright (C) 2004 by Georg Michael Verweyen +%% +%% This file may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.2 of this license +%% or (at your option) any later version. The latest version of this +%% license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.2 or later is part of all distributions of LaTeX version +%% 1999/12/01 or later. +%% + +\input docstrip.tex +\keepsilent + +\usedir{tex/latex/stdpage} + +\preamble + +This is a generated file. + +Copyright (C) 2004 by Georg Michael Verweyen + +This file may be distributed and/or modified under the conditions of +the LaTeX Project Public License, either version 1.2 of this license +or (at your option) any later version. The latest version of this +license is in: + + http://www.latex-project.org/lppl.txt + +and version 1.2 or later is part of all distributions of LaTeX version +1999/12/01 or later. + +\endpreamble + +\generate{\file{stdpage.sty}{\from{stdpage.dtx}{package}}} + +\obeyspaces + \Msg{*************************************************************} + \Msg{* *} + \Msg{* To finish the installation you have to move the following *} + \Msg{* file into a directory searched by TeX: *} + \Msg{* *} + \Msg{* stdpage.sty *} + \Msg{* *} + \Msg{* To produce the documentation run the file stdpage.dtx *} + \Msg{* through LaTeX. *} + \Msg{* *} + \Msg{* Happy TeXing! *} + \Msg{* *} + \Msg{*************************************************************} + +\endbatchfile diff --git a/macros/latex/contrib/stdpage/stdpage.pdf b/macros/latex/contrib/stdpage/stdpage.pdf new file mode 100644 index 0000000000..84ca492514 Binary files /dev/null and b/macros/latex/contrib/stdpage/stdpage.pdf differ diff --git a/macros/latex/contrib/stdpage/stdpage.sty b/macros/latex/contrib/stdpage/stdpage.sty new file mode 100644 index 0000000000..981afa265e --- /dev/null +++ b/macros/latex/contrib/stdpage/stdpage.sty @@ -0,0 +1,163 @@ +%% +%% This is file `stdpage.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% stdpage.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Copyright (C) 2004 by Georg Michael Verweyen +%% +%% This file may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.2 of this license +%% or (at your option) any later version. The latest version of this +%% license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.2 or later is part of all distributions of LaTeX version +%% 1999/12/01 or later. +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{stdpage} + [2005/03/30 v0.6 stdpage.sty] + \RequirePackage{typearea% + ,ragged2e% + ,ifthen% + ,keyval% + ,lineno% + }% + \RequirePackage[htt]{hyphenat}% + \RequirePackage[rigidchapters]{titlesec}% +\renewcommand{\familydefault}{\ttdefault}% +\renewcommand{\RaggedRightParindent}{\parindent}% + \newlength{\St@ndardLinewidth}% + \newlength{\St@ndardTextwidth}% + \newlength{\CharsX}% + \newlength{\CharsI}% + \newboolean{st@ndardjust}% + \setboolean{st@ndardjust}{false}% + \newboolean{st@ndardnoindent}% + \setboolean{st@ndardnoindent}{false}% + \newboolean{st@ndardnumbers}% + \setboolean{st@ndardnumbers}{false}% + \newboolean{st@ndardhyphen}% + \setboolean{st@ndardhyphen}{true}% + \newboolean{st@ndardparskip}% + \setboolean{st@ndardparskip}{false}% + \newboolean{st@ndardtypewriter}% + \setboolean{st@ndardtypewriter}{false}% + \newcommand*{\zeichenzahl}{60}% + \newcommand*{\zeilenzahl}{30}% +\define@key{stdpage}{block}[true]{%Aus Kompatibilitätsgründen (zu v. 0.4) auf deutsch + \setboolean{st@ndardjust}{#1}% +}% +\define@key{stdpage}{just}[true]{% + \setboolean{st@ndardjust}{#1}% +}% +\define@key{stdpage}{noindent}[true]{% + \setboolean{st@ndardnoindent}{#1}% +}% +\define@key{stdpage}{linenumbers}[true]{% + \setboolean{st@ndardnumbers}{#1}% +}% +\define@key{stdpage}{hyphen}[true]{% + \setboolean{st@ndardhyphen}{#1}% +}% +\define@key{stdpage}{parskip}[true]{% + \setboolean{st@ndardparskip}{#1}% +}% +\define@key{stdpage}{chars}[60]{% + \renewcommand{\zeichenzahl}{#1}% +}% +\define@key{stdpage}{lines}[30]{% + \renewcommand{\zeilenzahl}{#1}% +}% +\define@key{stdpage}{baselinestretch}[1.25]{% + \renewcommand{\baselinestretch}{#1}% +}% +\define@key{stdpage}{typewriter}[true]{% + \setboolean{st@ndardtypewriter}{#1}% +}% \end{macrocode} +\def\ProcessOptionsWithKV#1{% + \let\@tempc\relax% + \let\stdpage@tempa\@empty% + \@for\CurrentOption:=\@classoptionslist\do{% + \@ifundefined{KV@#1@\CurrentOption}% + {}% + {\edef\stdpage@tempa{\stdpage@tempa,\CurrentOption,}}% + }% + \edef\stdpage@tempa{% + \noexpand\setkeys{#1}{% + \stdpage@tempa\@ptionlist{\@currname.\@currext}% + }% + }% + \stdpage@tempa% +}% +\AtBeginDocument{ + \settowidth{\CharsX}{1234567890}% + \setlength{\CharsI}{.1\CharsX}% + \setlength{\St@ndardLinewidth}{\zeichenzahl\CharsI}% + \setlength{\St@ndardTextwidth}{0pt}%\topskip}% + \addtolength{\St@ndardTextwidth}{\zeilenzahl\baselineskip}% + \ifthenelse{\boolean{st@ndardparskip}}% + {\setlength{\parskip}{\baselineskip}}{} +%%% \ifthenelse{\boolean{st@ndardjust}}% +%%% {% + \areaset[current]{.976\St@ndardLinewidth}{\St@ndardTextwidth}% +%%% }% +%%% {% +%%% \areaset[current]{\St@ndardLinewidth}{\St@ndardTextwidth}% +%%% }% + \ifthenelse{\boolean{st@ndardjust}}% + {% + \spaceskip=1\CharsI plus 1.5pt minus 0pt + }% + {% + \spaceskip=1\CharsI plus 0pt minus 0pt + \ifthenelse{\boolean{st@ndardhyphen}}% + {% + \setlength{\RaggedRightRightskip}{0em minus .75em} + \RaggedRight% + }% + {% + \raggedright% + }% + }% + \ifthenelse{\boolean{st@ndardnoindent}}% + {\setlength{\parindent}{0mm}}{}% + \ifthenelse{\boolean{st@ndardnumbers}}{% + \modulolinenumbers[5]% + \linenumbers% + \pagewiselinenumbers% + }{}% + \ifthenelse{\boolean{st@ndardtypewriter}}% + {% + \let\sectfont\normalfont + \renewcommand{\footnotesize}{\normalsize} + \titleformat{\part}{\normalfont\normalsize\bfseries}{\thepart}{1em}{} + \titleformat{\chapter}{\normalfont\normalsize\bfseries}{\thechapter}{1em}{} + \titleformat{\section}{\normalfont\normalsize\bfseries}{\thesection}{1em}{} + \titleformat{\subsection}{\normalfont\normalsize\bfseries}{\thesubsection}{1em}{} + \titleformat{\subsubsection}{\normalfont\normalsize\bfseries}{\thesubsubsection}{1em}{} + \titleformat{\paragraph}{\normalfont\normalsize\bfseries}{\theparagraph}{1em}{} + \titlespacing*{\part}{0pt}{5\baselineskip}{3\baselineskip} + \titlespacing*{\chapter}{0pt}{4\baselineskip}{3\baselineskip} + \titlespacing*{\section}{0pt}{3\baselineskip}{2\baselineskip} + \titlespacing*{\subsection}{0pt}{2\baselineskip}{1\baselineskip} + \titlespacing*{\subsubsection}{0pt}{1\baselineskip}{0pt} + \titlespacing*{\paragraph}{0pt}{1\baselineskip}{0pt} + }{}% + \frenchspacing + \emergencystretch=2em% +}% +\ProcessOptionsWithKV{stdpage} +\AtEndOfPackage{% + \let\@unprocessedoptions\relax +} +\endinput% +\endinput +%% +%% End of file `stdpage.sty'. -- cgit v1.2.3