From c893c0b61a99ad2e81489d9b0fdce020ee97d06c Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 11 Jan 2006 23:55:34 +0000 Subject: trunk/Master/texmf-dist/source/latex/niceframe git-svn-id: svn://tug.org/texlive/trunk@413 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/latex/niceframe/niceframe.drv | 64 +++ .../source/latex/niceframe/niceframe.dtx | 535 +++++++++++++++++++++ .../source/latex/niceframe/niceframe.ins | 73 +++ 3 files changed, 672 insertions(+) create mode 100644 Master/texmf-dist/source/latex/niceframe/niceframe.drv create mode 100644 Master/texmf-dist/source/latex/niceframe/niceframe.dtx create mode 100644 Master/texmf-dist/source/latex/niceframe/niceframe.ins (limited to 'Master/texmf-dist/source/latex') diff --git a/Master/texmf-dist/source/latex/niceframe/niceframe.drv b/Master/texmf-dist/source/latex/niceframe/niceframe.drv new file mode 100644 index 00000000000..1ea56b23f14 --- /dev/null +++ b/Master/texmf-dist/source/latex/niceframe/niceframe.drv @@ -0,0 +1,64 @@ +%% +%% This is file `niceframe.drv', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% niceframe.dtx (with options: `driver') +%% +%% This file 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. +%% +%% IMPORTANT NOTICE: +%% +%% Copyright (C) 1996 Marcus Ohlhaut (marcus_ohlhaut@m4.maus.de). +%% All rights reserved. +%% +%% Permission is granted to distribute verbatim copies of this file. +%% +%% No other permissions to copy or distribute this file in any form +%% are granted and in particular no permission to modify its contents. +%% +%% \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 \~} +%% +\def\fileversion{1.1b} +\def\filedate{1996/10/20} +\documentclass{ltxdoc} + +\setlength\textwidth{31pc} \setlength\textheight{54pc} +\setlength{\parindent}{0pt} +\setlength{\parskip}{2pt plus 1pt minus 1pt} +\setlength{\oddsidemargin}{8pc} +\setlength{\marginparwidth}{8pc} +\setlength{\topmargin}{-2.5pc} +\setlength{\headsep}{20pt} +\setlength{\columnsep}{1.5pc} +\setlength{\columnwidth}{18.75pc} +\EnableCrossrefs +\RecordChanges +\CodelineIndex + +\MakeShortVerb{\|} +\begin{document} + +\DocInput{niceframe.dtx} + +\end{document} +\endinput +%% +%% End of file `niceframe.drv'. diff --git a/Master/texmf-dist/source/latex/niceframe/niceframe.dtx b/Master/texmf-dist/source/latex/niceframe/niceframe.dtx new file mode 100644 index 00000000000..491534550ef --- /dev/null +++ b/Master/texmf-dist/source/latex/niceframe/niceframe.dtx @@ -0,0 +1,535 @@ +% \iffalse meta-comment +% +% This package 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. +% +% IMPORTANT NOTICE: +% +% Copyright (C) 1996 Marcus Ohlhaut (marcus_ohlhaut@m4.maus.de). +% All rights reserved. +% +% Permission is granted to distribute verbatim copies of this package. +% +% No other permissions to copy or distribute this file in any form +% are granted and in particular no permission to modify its contents. +% +% Please do not request updates from me directly. Distribution is +% done through Mail-Servers and TeX organizations. +% +% You are not allowed to change this file. +% +% You are allowed to distribute this file under the condition that +% it is distributed together with all the following files: +% niceframe.dtx 20.940 20.10.96 15:28 +% niceframe.ins 2.383 20.10.96 14:57 +% bbding10.mf 80.910 07.09.93 0:00 +% dingbat.mf 20.670 20.03.96 20:01 +% karta.mf 171.444 28.04.92 2:00 +% karta15.mf 38 28.04.92 2:00 +% umrand.mf 1.436 19.06.93 19:05 +% umranda.mf 15.320 19.06.93 19:05 +% umrandb.mf 19.458 19.06.93 19:05 +% If you receive only some of these files from someone, complain! +% +% You are NOT ALLOWED to distribute this file alone. You are NOT +% ALLOWED to take money for the distribution or use of either this +% file or a changed version, except for a nominal charge for copying +% etc. +% \fi +%% \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 \~} +%% +\def\fileversion{1.1b} +\def\filedate{1996/10/20} +% +% \CheckSum{282} +% +%\iffalse +% +% Package NiceFrame to be used with LaTeX 2e +% Copyright (C) 1996 Marcus Ohlhaut (marcus_ohlhaut@m4.maus.de). +% All rights reserved. +% +% Copying of this file is authorized only if either +% (1) you make absolutely no changes to your copy, including name, or +% (2) if you do make changes, you name it something other than +% than the original name. +% This restriction helps ensure that all originally named files +% are identical. +% +% Error reports for UNCHANGED versions please to: +% marcus_ohlhaut@m4.maus.de +% +%\fi +% +% \title{A style option to create nice frames with the \textbf{dingbat} +% fonts\thanks{This file has version number \fileversion\ -- +% last revision \filedate.}} +% +% \author{Marcus Ohlhaut\\ +% Westendstra\ss e 231\\ +% D-80686 M\"unchen\\ +% {\tt marcus\_ohlhaut@m4.maus.de}} +% +% \date{Printed \today} +% \maketitle +% +% \changes{1.0}{1995/07/08}{Adapted this to LaTeX2e} +% \changes{1.0a}{1995/07/13}{Added CurlyFrame and ArtDecoFrame} +% \changes{1.0b}{1995/07/16}{Fixed documentation} +% \changes{1.0c}{1996/02/11}{Fixed 8+3 names} +% \changes{1.1}{1996/02/20}{Redesign of GeneralFrame} +% \changes{1.1b}{1996/10/20}{Fixed alignment of right vleaders} +% \changes{1.1b}{1996/10/20}{Changed command names to lowercase} +% \changes{1.1b}{1996/10/20}{Adapted installation to new version of docstrip} +% +% \DoNotIndex{\addtolength,\baselineskip,\begin,\bigskip,\box} +% \DoNotIndex{\centerline,\char,\CodelineIndex,\columnsep,\columnwidth} +% \DoNotIndex{\DocInput,\documentclass,\dots,\dp} +% \DoNotIndex{\EnableCrossrefs,\end} +% \DoNotIndex{\font,\hbox,\headsep,\hfill,\hsize,\hss,\ht} +% \DoNotIndex{\LARGE,\Large,\leaders,\MakeShortVerb,\marginparwidth} +% \DoNotIndex{\NeedsTeXFormat,\newcommand,\newlength,\oddsidemargin} +% \DoNotIndex{\pagestyle,\parindent,\parskip,\pixel,\ProvidesPackage,\pxl} +% \DoNotIndex{\RecordChanges,\setbox,\setlength,\settowidth} +% \DoNotIndex{\textheight,\textwidth,\thin,\topmargin,\typeout} +% \DoNotIndex{\usepackage,\vbox,\vfill,\vsize,\vskip,\vss} +% \DoNotIndex{\wd,\\,\|\ } +% +% \begin{abstract} +% This article describes a new style option that can be used with the +% document styles that are distributed with the \LaTeX\ distributions. +% It defines new commands to frame material with decorative frames, +% using \textbf{dingbat} fonts. +% \end{abstract} +% +% \tableofcontents +% +% \section{Introduction} +% +% When I set out to become familar with all the fonts available for +% \TeX, I came across the \textbf{dingbat} font. Only a few glyphs have +% been defined in that font, and some of them are intended to yield +% nice frames when set appropriately. +% +% I didn't want to work out the details of arranging the glyphs each +% time I needed to frame text, and hence wrote this little package to +% do the work for me. +% +% When testing this, I noticed that one of the glyphs was wrongly coded +% in the original \textbf{dingbat} distribution. Together with this +% package, a corrected version of \textbf{dingbat} is distributed. +% +% This package has no options. It requires the package |calc| by Kresten~K. +% Thorup and Frank Jensen. +% +% \section{The user interface} +% This package defines three commands, |\niceframe|, |\curlyframe| and +% |\artdecoframe|. All three take one mandatory and one optional argument. +% The mandatory argument specifies the material that is to be framed +% (anything which can go into a |\vbox|), whereas the optional argument +% specifies the final width of the frame. +% +% If the optional argument is omitted, the frame will be exactly of +% width |\textwidth|. The height of the frame is calculated from the +% natural height of the enclosed material. +% +% These frames have to be set into their own paragraphs, otherwise the +% width of the surrounding text will not be correct. +% +% The package also defines a more general macro called |\generalframe| +% to allow control over the symbols which are used to build the frame. +% +% \section{The implementation} +% \subsection{The {\sc docstrip} modules} +% +% The following modules are used in the implementation to direct +% {\sc docstrip} in generating the external files: +% \begin{center} +% \begin{tabular}{ll} +% driver & produce the documentation driver file \\ +% package & produce the package file \\ +% example & produce an example file \\ +% \end{tabular} +% \end{center} +% +% \subsection{Producing the documentation} +% +% A short driver is provided that can be extracted (if necessary) +% by the {\sc docstrip} program provided with \LaTeXe. +% \begin{macrocode} +%<*driver> +\documentclass{ltxdoc} + +% dimensions from ltugboat.sty: +\setlength\textwidth{31pc} \setlength\textheight{54pc} +\setlength{\parindent}{0pt} +\setlength{\parskip}{2pt plus 1pt minus 1pt} +\setlength{\oddsidemargin}{8pc} +\setlength{\marginparwidth}{8pc} +\setlength{\topmargin}{-2.5pc} +\setlength{\headsep}{20pt} +\setlength{\columnsep}{1.5pc} +\setlength{\columnwidth}{18.75pc} +\EnableCrossrefs +\RecordChanges +\CodelineIndex + +\MakeShortVerb{\|} +\begin{document} + +\DocInput{niceframe.dtx} + +\end{document} +% +% \end{macrocode} +% +% \subsection{The example} +% +% This is just a short \LaTeX-file to test the installation. Install +% the |niceframe| package, and run |latex example.tex|. +% \begin{macrocode} +%<*example> +\documentclass[a4paper]{article} +\usepackage{niceframe} + +\begin{document} +\pagestyle{empty} + +\parindent 0pt +% \end{macrocode} +% First, a |\niceframe| that spans the whole |\textwidth|. +% \begin{macrocode} +\niceframe{% + \begin{center} + May the road rise to meet you\\ + May the wind be always at your back\\ + May the sun shine warm upon your face\\ + The rain fall soft upon your fields\\ + And until we meet again\\ + May God hold you in the hollow of his hand\\ + \end{center} + \bigskip + \hfill The Blessing of St.~Patrick +} +\vfill +% \end{macrocode} +% Then, a centered |\curlyframe| that is only |0.75\textwidth| wide. +% \begin{macrocode} +\centerline{% + \curlyframe[0.75\textwidth]{% + \begin{center} + \LARGE I am not flexible!\\ + Just disorganized!\\ + \end{center} +}} +\vfill +% \end{macrocode} +% And an |\artdecoframe| for the philosophical bit. +% \begin{macrocode} +\centerline{or is it\dots} +\vfill +\artdecoframe{% + \begin{center} + \LARGE I am not disorganized!\\ + Just flexible!\\ + \end{center} +} +\newpage +% \end{macrocode} +% The following three frames are examples of |\generalframe|. +% \begin{macrocode} +\font\border=karta15 +\generalframe{\border\char'307}{\border\char'324}{\border\char'322} + {\border\char'310} {\border\char'323} + {\border\char'174}{\border\char'325}{\border\char'175} + {This is a \texttt{generalframe}, using eight different + characters from font \texttt{karta15} as parts of the + framework. One might use it to point other people to + important notes, hints and/or messages. + } +\vfill +\font\border=umranda +\generalframe{\border\char'136}{\border\char'137}{\border\char'140} + {\border\char'145} {\border\char'141} + {\border\char'144}{\border\char'143}{\border\char'142} + {This \texttt{generalframe} uses symbols from Alexander + Schrell's \texttt{umranda} (his eMail is: + alexander\_ schrell@w2.maus.de) collection. + The material to be framed consists of quite a few lines to + emphasize the fact that virtually anything can go + inside a \texttt{generalframe}. Note that we are limited + by \TeX's memory as the material to frame has to be passed + as an argument. You can't cheat by passing a \texttt{vbox} + that has already been set (as you might with some other + macros) since \texttt{generalframe} has to re-set all of it. + } +\vfill +\font\border=umrandb +\generalframe{\border\char'165}{\border\char'151}{\border\char'164}% + {\border\char'150} {\border\char'150}% + {\border\char'166}{\border\char'151}{\border\char'167} + {Last, but not least! This \texttt{generalframe} (with + symbols from \texttt{umrandb}) displays some math: + $$ E = mc^2 $$ + which everyone will immediately recognize as the famous + Einstein formula for energy-mass-equivalence. + } +\end{document} +% +% \end{macrocode} +% +% \subsection{Useful fonts} +% +% The font used for setting the frames is the \textbf{dingbat} font by +% Doug Henderson. Since the original distribution contained a wrongly +% coded char, I have included a corrected version with this package. +% Except from the code for |char("e")|, this is Doug's original file. +% +% I have also added the fonts \textbf{bbding10}, \textbf{karta15}, +% \textbf{umranda} and \textbf{umrandb} for they are used in the examples. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \subsection{The code} +% +% We begin by identifying the version of this file on the terminal and +% in the transcript fileand by loading the package |calc|. +% \begin{macrocode} +%<*package> +\NeedsTeXFormat{LaTeX2e}[1994/06/01] +\ProvidesPackage{niceframe}[\filedate\space v\fileversion\space niceframe package (MO)] +\typeout{Package: niceframe v\fileversion\space <\filedate> (Marcus Ohlhaut)} +\RequirePackage{calc} +% \end{macrocode} +% We then load the font used for setting the standard frames. +% \begin{macrocode} +\font\ding dingbat scaled 1200 +% \end{macrocode} +% A few internal dimensions need to be defined and initialized. +% \begin{macrocode} +\newlength{\nicefr@mechar} +\settowidth{\nicefr@mechar}{\ding\char'141} +\newlength{\nicefr@mewidth} +\setlength{\nicefr@mewidth}{\hsize} +\newlength{\nicefr@meheight} +\setlength{\nicefr@meheight}{\vsize} +\newlength{\@ldhsize} +\setlength{\@ldhsize}{\hsize} +% \end{macrocode} +% \begin{macro}{\upd@ublerulefill} +% \begin{macro}{\dnd@ublerulefill} +% \begin{macro}{\ltd@ublerulefill} +% \begin{macro}{\rtd@ublerulefill} +% These internal macros define a set of leaders for each of the four +% sides of |\niceframe|. The appropriate chars are taken from the +% \textbf{dingbat} font. +% \begin{macrocode} +\newcommand{\upd@ublerulefill}{\xleaders\hbox to 10pt + {\hss\ding\char'142 \hss}\hfill} +\newcommand{\dnd@ublerulefill}{\xleaders\hbox to 10pt + {\hss\ding\char'147 \hss}\hfill} +\newcommand{\ltd@ublerulefill}{\xleaders\vbox to 10pt + {\vss\hbox{\ding\char'144}\vss}\vfill} +\newcommand{\rtd@ublerulefill}{\xleaders\vbox to 10pt + {\vss\hbox{\ding\char'145}\vss}\vfill} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\niceframe} +% Finally, we define the user interfaces. +% \begin{macrocode} +\newcommand{\niceframe}[2][\textwidth]{{ +% \end{macrocode} +% First, we have to set the material that is passed to |\niceframe| to +% an appropriate width. That width is the requested width of the final +% |\vbox| minus twice the size of the chars that make up the corners of +% the frame (ie.\ |\nicefr@mechar|). The set material is stored for +% further use in |\box0|. +% \begin{macrocode} + \setlength{\hsize}{#1 - 2\nicefr@mechar} + \setbox0=\vbox{#2} +% \end{macrocode} +% We then use height and depth of |\box0| to calculate the required +% height of the |\vbox| that encloses the vertical leaders. +% \begin{macrocode} + \setlength{\nicefr@meheight}{\ht0 + \dp0} +% \end{macrocode} +% Similarily, we then use the width of |\box0| for enclosing the +% horizontal leaders. +% \begin{macrocode} + \setlength{\nicefr@mewidth}{\wd0 + 2\nicefr@mechar} +% \end{macrocode} +% Finally, when all the relevant dimensions have been determined, the +% frame is compiled. We start with the top row (corner char, horizontal +% leader, corner char), set the middle part (vertical leader, things to +% frame, vertical leader) and finish with the bottom row (corner char, +% horizontal leader, corner char). +% \begin{macrocode} + \vbox{% + \hbox to\nicefr@mewidth{\ding\char'141\upd@ublerulefill\char'143} + \hbox to\nicefr@mewidth{\vbox to\nicefr@meheight{\ltd@ublerulefill} + \hss\raise\dp0\box0\hss + \vbox to\nicefr@meheight{\rtd@ublerulefill}} + \hbox to\nicefr@mewidth{\ding\char'146\dnd@ublerulefill\char'150} + } +}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\curlyframe} +% This macro works exactly like |\niceframe|. The only difference is +% that we use stretchable space instead of leaders and different glyphs +% for the four corners (obviously). We halso have to move the text a bit +% closer to the corners due to their shape. +% \begin{macrocode} +\newcommand{\curlyframe}[2][\textwidth]{{ + \setlength{\hsize}{#1 - 2\nicefr@mechar} + \setbox0=\vbox{#2} + \setlength{\nicefr@meheight}{\ht0 + \dp0} + \setlength{\nicefr@mewidth}{\wd0 + 2\nicefr@mechar} + \vbox{% + \hbox to\nicefr@mewidth{\ding\char'105\hfill\char'106} + \vskip-\baselineskip + \hbox to\nicefr@mewidth{\hss\raise\dp0\box0\hss} + \vskip-\baselineskip + \hbox to\nicefr@mewidth{\ding\char'110\hfill\char'107} + } +}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\artdecoframe} +% This is just a variation of |\curlyframe|. +% \begin{macrocode} +\newcommand{\artdecoframe}[2][\textwidth]{{ + \setlength{\hsize}{#1 - 2\nicefr@mechar} + \setbox0=\vbox{#2} + \setlength{\nicefr@meheight}{\ht0 + \dp0} + \setlength{\nicefr@mewidth}{\wd0 + 2\nicefr@mechar} + \vbox{% + \hbox to\nicefr@mewidth{\ding\char'115\hfill\char'114} + \hbox to\nicefr@mewidth{\hss\raise\dp0\box0\hss} + \hbox to\nicefr@mewidth{\ding\char'112\hfill\char'113} + } +}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\generalframe} +% Finally, I have designed a more general macro for framing. +% |\generalframe| takes nine parameters (right to the limit) and +% produces a |\vbox|. The width of this box is less than (or equal to) +% the current |\hsize|; and it consists of a border generated from the +% characters in the first eight arguments and a box which contains the +% material passed in the very last argument. +% +% The first eight parameters to |\generalframe| are used as follows: +% \begin{itemize} +% \item |#1| is the character for the top left corner, +% \item |#2| builds the top horizontal leader, +% \item |#3| is the character for the top right corner, +% \item |#4| builds the left vertical leader, +% \item |#5| builds the right vertical leader, +% \item |#6| is the character for the bottom left corner, +% \item |#7| builds the top horizontal leader, +% \item |#8| is the character for the bottom right corner, +% \end{itemize} +% +% This box is centered with respect to the frame, and there is at least +% |\fboxsep| between the frame and the enclosed material. To ensure that the +% inner box is calculated properly, all the characters for framing need +% to be of equal width and height. +% +% We first define some internal quantities. |times| holds the number +% |\hsize| \emph{div} |\fr@mecharTT| which is required in the process +% of rounding, |\fr@mecharTT| and |\fr@mecharLL| hold the width and +% height of the characters that make up the top/bottom and left/right +% parts of the frame, respectively. +% +% |\fr@mewidth| holds the final width of the frame and is always less than +% or equal to the current |\hsize|, whereas |\fr@meheight| holds the +% final height of the frame minus the heights of the top and bottom row. +% \begin{macrocode} +\newcounter{times} +\newlength{\fr@mecharTT} +\newlength{\fr@mecharLL} +\newlength{\fr@mewidth} +\newlength{\fr@meheight} +% \end{macrocode} +% |\generalframe| initializes |\fr@mecharTT| and |\fr@mecharLL| every +% time it is called, relying on the fact that the user specifies +% the eight border characters in such a way that |#1|, |#2|, |#3|, |#6|, +% |#7| and |#8| have the same width and |#1|, |#3|, |#4|, |#5|, |#6| and +% |#8| have the same height. +% \begin{macrocode} +\newcommand{\generalframe}[9]{{ + \settowidth{\fr@mecharTT}{#2} + \settoheight{\fr@mecharLL}{#4} +% \end{macrocode} +% In order to enable a packed alignment of the horizontal leaders, we +% have to round |\fr@mewidth| to an integer multiple of |\fr@mecharTT|. +% \begin{macrocode} + \setcounter{times}{1 * \ratio{\hsize}{\fr@mecharTT}} + \setlength{\fr@mewidth}{\fr@mecharTT * \value{times}} +% \end{macrocode} +% |\fr@mewidth| is then used to calculate the |\hsize| of the innermost +% box, allowing for some horizontal space at either side. The box is set +% and stored in |\box0| for later use. +% \begin{macrocode} + \setlength{\hsize}{\fr@mewidth - 2\fr@mecharTT - 2\fboxsep} + \setbox0=\vbox{#9} +% \end{macrocode} +% We then calculate |\fr@meheight| (height plus depth of |\box0|, with +% some vertical space added) and round it to an integer multiple of +% |\fr@mecharLL|. We add one to ensure at least one character in the +% vertical leaders. +% \begin{macrocode} + \setlength{\fr@meheight}{\ht0 + \dp0 + 2\fboxsep} + \setcounter{times}{1 * \ratio{\fr@meheight}{\fr@mecharLL}} + \setcounter{times}{\value{times} + 1} + \setlength{\fr@meheight}{\fr@mecharLL * \value{times}} +% \end{macrocode} +% Four leaders are used to construct the main part of the frame. +% \begin{macrocode} + \newcommand{\up@fill}{\leaders\hbox{#2}\hfill} + \newcommand{\lt@fill}{\leaders\vbox{\hbox{#4}}\vfill} + \newcommand{\rt@fill}{\leaders\vbox{\hbox{#5}}\vfill} + \newcommand{\dn@fill}{\leaders\hbox{#7}\hfill} +% \end{macrocode} +% Finally, everthing is packed together, centered nicely. +% \begin{macrocode} + \vbox{% + \hbox to\fr@mewidth{#1\up@fill#3}\nointerlineskip + \hbox to\fr@mewidth{\vbox to\fr@meheight{\lt@fill}% + \hfill% + \vbox to\fr@meheight{\vfill\box0\vfill}% + \hfill% + \vbox to\fr@meheight{\rt@fill}% + }\nointerlineskip + \hbox to\fr@mewidth{#6\dn@fill#8}\nointerlineskip + } +}} +% \end{macrocode} +% \end{macro} +% That's all there is. +% \begin{macrocode} +% +% \end{macrocode} +% +% \Finale +% +\endinput diff --git a/Master/texmf-dist/source/latex/niceframe/niceframe.ins b/Master/texmf-dist/source/latex/niceframe/niceframe.ins new file mode 100644 index 00000000000..b3cba085e0a --- /dev/null +++ b/Master/texmf-dist/source/latex/niceframe/niceframe.ins @@ -0,0 +1,73 @@ +%% +%% This file will generate fast loadable files and documentation +%% driver files from the doc files in this package when run through +%% LaTeX or TeX. +%% +%% This package 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. +%% +%% IMPORTANT NOTICE: +%% +%% Copyright (C) 1996 Marcus Ohlhaut (marcus_ohlhaut@m4.maus.de). +%% All rights reserved. +%% +%% Permission is granted to distribute verbatim copies of this file. +%% +%% No other permissions to copy or distribute this file in any form +%% are granted and in particular no permission to modify its contents. +%% +%% --------------- start of docstrip commands ------------------ +%% +\def\batchfile{niceframe.ins} +\input docstrip.tex +\keepsilent +\preamble + + This file 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. + +IMPORTANT NOTICE: + +Copyright (C) 1996 Marcus Ohlhaut (marcus_ohlhaut@m4.maus.de). +All rights reserved. + +Permission is granted to distribute verbatim copies of this file. + +No other permissions to copy or distribute this file in any form +are granted and in particular no permission to modify its contents. + +\endpreamble + +\generate{\file{niceframe.drv}{\from{niceframe.dtx}{driver}} + \file{niceframe.sty}{\from{niceframe.dtx}{package}} + \file{example.tex} {\from{niceframe.dtx}{example}} +} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* files into a directory searched by TeX resp. MetaFont:} +\Msg{*} +\Msg{* \space\space niceframe.sty} +\Msg{* \space\space bbding10.mf} +\Msg{* \space\space dingbat.mf} +\Msg{* \space\space karta.mf} +\Msg{* \space\space karta15.mf} +\Msg{* \space\space umrand.mf} +\Msg{* \space\space umranda.mf} +\Msg{* \space\space umrandb.mf} +\Msg{*} +\Msg{* To produce the documentation,} +\Msg{* \space\space run the file niceframe.drv through LaTeX.} +\Msg{*} +\Msg{* To typeset an example,} +\Msg{* \space\space run the file example.tex through LaTeX.} +\Msg{*} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{*} +\Msg{***********************************************************} + +\endinput -- cgit v1.2.3