diff options
author | Karl Berry <karl@freefriends.org> | 2013-02-17 23:41:05 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-02-17 23:41:05 +0000 |
commit | 43a34c14d732c0fc71e5887210152c9df8110f8b (patch) | |
tree | 12e7c8f05f999f9606a6687faff659a55bb17495 | |
parent | 1e7aa3e3846065276f35ea4d5822fd163aa71578 (diff) |
schemata (18feb13)
git-svn-id: svn://tug.org/texlive/trunk@29144 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/generic/schemata/Makefile | 48 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/schemata/README | 65 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/schemata/schemata.pdf | bin | 0 -> 580012 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/generic/schemata/schemata.dtx | 1555 | ||||
-rw-r--r-- | Master/texmf-dist/source/generic/schemata/schemata.ins | 55 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/schemata/schemata.sty | 184 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlpkg-ctan-check | 2 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/collection-genericextra.tlpsrc | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/schemata.tlpsrc | 0 |
9 files changed, 1909 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/generic/schemata/Makefile b/Master/texmf-dist/doc/generic/schemata/Makefile new file mode 100644 index 00000000000..ecf28b60b06 --- /dev/null +++ b/Master/texmf-dist/doc/generic/schemata/Makefile @@ -0,0 +1,48 @@ +engine ?= pdflatex # Override on the command line + +# The default builds the distribution uploaded to CTAN. +dist: fullpdf clean + +# Making this target includes the code listing +fullpdf : sty + $(engine) schemata.dtx + makeindex -s gglo.ist -o schemata.gls schemata.glo + makeindex -s gind.ist -o schemata.ind schemata.idx + $(engine) schemata.dtx + $(engine) schemata.dtx + +# This target omits the code listing. +pdf : sty + $(engine) -draftmode "\AtBeginDocument{\OnlyDescription} \input schemata.dtx" + makeindex -s gglo.ist -o schemata.gls schemata.glo + makeindex -s gind.ist -o schemata.ind schemata.idx + $(engine) "\AtBeginDocument{\OnlyDescription} \input schemata.dtx" + $(engine) "\AtBeginDocument{\OnlyDescription} \input schemata.dtx" + +# Build the package. +sty : schemata.dtx schemata.ins + $(engine) schemata.ins + +# Instead of using the shell to see if files exist, take advantage of rm. +clean : + rm -f schemata.aux + rm -f schemata.glo + rm -f schemata.gls + rm -f schemata.idx + rm -f schemata.ilg + rm -f schemata.ind + rm -f schemata.log + rm -f schemata.out + rm -f schemata.toc + rm -f schemata.hd + rm -f schemata.top + rm -f texput.* + +# Remove all but the barest source files. +clobber : clean + rm -f schemata.dvi + rm -f schemata.pdf + rm -f schemata.sty + touch schemata.* + + diff --git a/Master/texmf-dist/doc/generic/schemata/README b/Master/texmf-dist/doc/generic/schemata/README new file mode 100644 index 00000000000..1202807b037 --- /dev/null +++ b/Master/texmf-dist/doc/generic/schemata/README @@ -0,0 +1,65 @@ +The schemata package +Charles P. Schaum +charles dot schaum at att dot net +v0.5 from 2013/02/14 + +Abstract + +The schemata package facilitates the creation of topical schemata, outlines that use braces (or facsimiles thereof) to illustrate the breakdown of concepts and categories in Scholastic thought from late medieval and early modern periods. This packages functions with both plain TeX and LaTeX. + +Files Target distribution + +schemata.pdf Documentation (normally in TEXMFDIST/doc/generic/schemata) +schemata.sty Package file (normally in TEXMFDIST/tex/generic/schemata) +README This file (normally in TEXMFDIST/doc/generic/schemata) + + Source distribution + +Makefile Automates building with GNU make 3.81 +schemata.ins Installer +schemata.dtx LaTeX file containing both code and documentation + +Installation Target distribution + +Unpack schemata.zip. + +Create the directories listed above. For TeX Live, TEXMFDIST is often /usr/local/texmf/<year>/texmf-dist on Posix-compliant systems. Manual installation calls rather for /usr/local/texlive/texmf-local or ~/texmf. + +MacTeX and MikTeX differ. Please refer to your distribution manual. + +Copy the target distribution files to their appropriate destinations. + +Run mktexlsr with the appropriate level of permissions. + +Source distribution notes: + +One can use the following commands to generate the target distribution: + +Generate the style file with any form of LaTeX: + $ pdflatex schemata.ins + +Generate the documentation (optimal with pdflatex): + pdflatex schemata.dtx + makeindex -s gglo.ist -o schemata.gls schemata.glo + makeindex -s gind.ist -o schemata.ind schemata.idx + pdflatex schemata.dtx + pdflatex schemata.dtx + +I used GNU make to automate the process: + + Create the distribution (with full code listing}. + + $ make + +Testing notes: + +This package is designed purposefully to be very basic. + +For testing purposes, the make file permits one to change the typesetting engine on the command line. The default is to build the package with pdflatex. See Makefile for more details. + +License + +This material is subject to the LaTeX Project Public License. See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html for the details of that license. + +Happy TeXing! + diff --git a/Master/texmf-dist/doc/generic/schemata/schemata.pdf b/Master/texmf-dist/doc/generic/schemata/schemata.pdf Binary files differnew file mode 100644 index 00000000000..9c8b286e81b --- /dev/null +++ b/Master/texmf-dist/doc/generic/schemata/schemata.pdf diff --git a/Master/texmf-dist/source/generic/schemata/schemata.dtx b/Master/texmf-dist/source/generic/schemata/schemata.dtx new file mode 100644 index 00000000000..46c4b0d77e6 --- /dev/null +++ b/Master/texmf-dist/source/generic/schemata/schemata.dtx @@ -0,0 +1,1555 @@ +% \iffalse meta-comment +% +% Copyright (C) 2013 by Charles P. Schaum <charles dot schaum at att dot net> --------------------------------------------------------------------------- +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Charles P. Schaum. +% +% This work consists of the files schemata.dtx and schemata.ins +% and the derived filebase schemata.sty. +% +% \fi +% +% \iffalse +%<*driver> +\ProvidesFile{schemata.dtx} +%</driver> +%<package>\expandafter\ifx\csname newenvironment\endcsname\relax% +%<package>\else +%<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01] +%<package>\ProvidesPackage{schemata} +%<*package> + [2013/02/14 v0.5 generic package to aid construction of topical categories] +%<package>\fi +%</package> +% +%<*driver> +\documentclass{ltxdoc} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[polutonikogreek,american]{babel} +\newcommand{\gk}[1]{\foreignlanguage{polutonikogreek}{#1}} +\usepackage{makeidx} +\usepackage{mflogo} +\usepackage{multicol} +\usepackage[toc]{multitoc} +\usepackage{schemata}[2013/02/14] +\usepackage{hypdoc} +\makeindex +\frenchspacing +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} + \DocInput{schemata.dtx} + \PrintChanges + \PrintIndex +\end{document} +%</driver> +% \fi +% +% \CheckSum{517} +% +% \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.5}{2013/02/14}{Initial version} +% +% \DoNotIndex{\@Schem@, \@Schema, \@schem@, \@schema, \@schemab@x, \@schemabox, \Schem@, \schem@, \schemab@x, \bfseries, \bgroup, \catcode, \csname, \DeclareOption, \def, \dimen, \egroup, \else, \endcsname, \endinput, \ExecuteOptions, \expandafter, \fi, \futurelet, \gdef, \hbox, \hfil, \if, \ifcsname, \ifdim, \ifmmode, \ifx, \ignorespaces, \index, \itshape, \let, \newbox, \newcommand, \newdimen, \next, \Open, \Option, \PackageWarning, \ProcessOptions, \relax, \RequirePackage, \scshape, \setbox, \space, \testchar, \vbox, \vfil, \vskip} +% +% \GetFileInfo{schemata.dtx} +% \title{The \textsf{schemata} package} +% \author{Charles P. Schaum \\ \texttt{charles dot schaum at att dot net}} +% \date{\fileversion~from \filedate} +% \maketitle +% +% \begin{abstract} +% \noindent The \textsf{schemata} package facilitates the creation of topical schemata, outlines that use braces (or facsimiles thereof) to illustrate the breakdown of concepts and categories in Scholastic thought from late medieval and early modern periods. This packages functions with both plain \TeX{} and \LaTeX. +% \end{abstract} +% +% \tableofcontents +% +% \section{Introduction} +% +% This package emerged from my personal need to typeset diagrams based on seventeenth-century theology books. I have chosen to make it use a very ``bare-bones'' approach that is platform-agnostic in many cases, simple to implement, and immune to a number of special cases because it requires manual formatting. +% +% I would recommend that a package like \emph{TikZ}, something based on \MP, or some other powerful solution may have advantages, especially for those seeking a top-to-bottom diagram, such as that in; \textsc{H.~Dembowski}, \emph{Einf{\"u}hrung in die Christologie} (Darmstadt, 1993), 146. This package is meant to be basic and available in minimal \TeX{} installations. +% +% This package allows one to mimic (to some degree) the left-to-right schemata seen in books like the \emph{Loci Theologici} of Martin Chemnitz and the \emph{Clavis Scripturae Sacrae} of M. Flacius Illyricus. +% +% \section{Usage} +% +% \subsection{Package Options and Loading} +% +% Presently there are no package options.\\ +% +% \begin{tabular}{ll} +% Users of \LaTeX{} invoke: & |\usepackage{schemata}|\\[1ex] +% Plain \TeX{} users will use: & |\input|\textvisiblespace|schemata.sty| +% \end{tabular} +% +% \subsection{Overview} +% +% \DescribeMacro{\schema} +% The ``simple'' form of a schema consists of one left-hand side containing vertically-centered vertical material, a brace, and one right-hand side containing vertically-centered vertical material: +% \begin{quote} +% \cmd{\schema}\oarg{type}\marg{left-hand side}\marg{right-hand side} +% \end{quote} +% The \meta{type} of a schema is |open| by default. Anything other than the exact string |open| will make it a ``closed'' schema where the left-hand side is bigger than the right and the direction of the brace reflects that. This approach is based on my experience that trying to figure out the size of left-hand and right-hand sides automatically can lead to strange corner cases. This manual solution recognizes that most schemata read and open from left to right. +% +% The \meta{left-hand side} and \meta{right-hand side} are vertically-centered material in a |\vbox|. This is intentional because one might want to insert a |\smallskip| or other adjustment as needed. One can put whatever is desired in these arguments. An example in \LaTeX{} might be a one-column tabular environment, e.g.: +% \begin{multicols}{2} +% \noindent Code:\\[2ex] +% |\schema%|\\ +% |{%|\\ +% | \hbox{\begin{tabular}{@{}l@{}}|\\ +% | This conists\\|\\ +% | of stuff|\\ +% | \end{tabular}}|\\ +% |}%|\\ +% \noindent|{%|\\ +% | \schemabox{%|\\ +% | And here\\|\\ +% | we have\\|\\ +% | more stuff%|\\ +% | }%|\\ +% |}|\\ +% \columnbreak\\ +% \noindent Result:\\[2ex] +% \schema% +% {% +% \hbox{\begin{tabular}{@{}l@{}} +% This conists\\ +% of stuff\\ +% \end{tabular}} +% }% +% {% +% \schemabox{% +% And here\\ +% we have\\ +% more stuff% +% }% +% } +% +% \noindent Note how the results of the two sides are roughly the same. In fact, if one uses a |p{|\meta{width}|}| argument with a tabular, one will get almost the same results seen with a |\schemabox| also using a width argument. The difference is that the latter is intended for use in plain \TeX. +% +% The |\schemabox| macro is a ``stack'' of |\hbox| content within a |\vbox|. We will cover it below after we introduce the |\Schema| macro. +% \end{multicols} +% \clearpage +% \DescribeMacro{\Schema} +% The ``complex'' form of a schema consists of one left-hand side containing vertically-centered vertical material, a brace, and one right-hand side of vertically-centered vertical material: +% \begin{quote} +% \cmd{\Schema}\oarg{type}\marg{adjust}\marg{size}\marg{left-hand side}\marg{right-hand side} +% \end{quote} +%The \meta{type} of a schema is |open| by default. Anything other than the exact string |open| will make it a ``closed'' schema as above. +% +%Both \meta{adjust} and \meta{size} should be expressed in ``ex'', loosely interpreted as multiples of lines. Since an |hbox{\strut}| is 2.88538 ex high and |\vcenter| halves vertical height, the values are multiplied internally by 1.44265. +% +%Actually, \meta{adjust} must be \emph{double} the number of ``ex'' lines that a brace must go up (negative value) or down (positive value). By making one enter |-5ex| to pull a brace up 2.5 lines, one can use a whole number instead of entering many decimals. +% +% {\bfseries Note:} The value of \meta{size} always should be positive.\smallskip +% +% Admittedly, this method is nothing short of ugly. Yet it scales quite well and allows one to guess lengths by counting lines (even in the source) instead of measuring printed or displayed output.\\ +% +% \DescribeMacro{\schemabox} +% This box stacks one or more lines of |\hbox|-enclosed material in a |\vbox|. It redefines the control sequence |\\| in a manner that terminates the current |\hbox| and begins a new one. +% \begin{quote} +% \cmd{\schemabox}\oarg{width}\marg{text} +% \end{quote} +% The \meta{width} of a |\schemabox| is a dimension, e.g. 3cm. No wrapping takes place. Each line of \meta{text} must be terminated explicitly by |\\|, except the final line. The first line of a |\schemabox| inserts a |\strut| for aesthetic reasons. +% +% \subsection{Tutorial} +% +% \subsubsection{Starting Off Basic} +% +% Imagine that you are using a computer to simulate the physical typesetting of a seventeenth-century schema. To begin with, you try the following schema: +% \begin{multicols}{2} +% \noindent Code:\\[2ex] +% |\schema{a}{b\\c}|\\ +% \noindent Result:\\[2ex] +% \schema{a}{b\\c} +% \end{multicols} +% \noindent That did not go well. Then you remember this weird |\schemabox| that just might work. You |\let| the control sequence to the shorter |\SB| and you get: +% \begin{multicols}{2} +% \noindent Code:\\[2ex] +% |\let\SB\schemabox|\\ +% |\schema{\SB{a}}{\SB{b\\c}}|\\ +% \noindent Result:\\[2ex] +% \let\SB\schemabox +% \schema{\SB{a}}{\SB{b\\c}} +% \end{multicols} +% +% Now we are getting somewhere! Note that ``one-liners'' pretty much look ugly no matter how you do them. For example: +% \begin{multicols}{2} +% \noindent Code:\\[2ex] +% |\let\SB\schemabox|\\ +% |$\hbox{a}\left\lbrace%|\\ +% | \hbox{bp}\right.$|\\ +% |$\vcenter{\hbox{a}}\left\lbrace%|\\ +% | \vcenter{\hbox{b}}\right.$|\\ +% |$\vcenter{\hbox{\strut a}}%|\\ +% | \left\lbrace%|\\ +% | \vcenter{\hbox{\strut bp}}%|\\ +% | \right.$|\\ +% |\schema{\SB{a}}{\SB{bp}}|\\ +% \columnbreak\\ +% \noindent Result:\\[6ex] +% \let\SB\schemabox\bgroup\LARGE +% $\hbox{a}% +% \left\lbrace% +% \hbox{bp}% +% \right.$\\[1ex] +% $\vcenter{\hbox{a}}% +% \left\lbrace% +% \vcenter{\hbox{b}}% +% \right.$\\[0.5ex] +% $\vcenter{\hbox{\strut a}}% +% \left\lbrace% +% \vcenter{\hbox{\strut bp}}% +% \right.$\\[1.6ex] +% \schema{\SB{a}}{\SB{bp}}\egroup +% \end{multicols} +% \noindent The first example has aligned baselines, but the open brace appears to drop too low (in order to enclose also the depth, not just the height of the material). The second shows how vertical centering can cause baselines not to match up in one-liners of a different height. The third example shows how a |\strut| will fix that issue. The final example shows how this package deals with one-liners. A |\schemabox| adds a strut in the first line to make multi-line schemata look better. A height of 1.44265ex is automatically added to the brace height, also for multi-line schemata. +% +% \subsubsection{\emph{Loci} 101} +% +% Since we know something about schemata and how to do them, let's try a few examples from \emph{Loci Theologici}. We begin with this simple example:\\ +% +%\schema +%{% +% \schemabox{Subjectum theo-\\ +% logi\ae{} est Notitia\\ +% Dei. Considerat\\ +% ergo, Dei, vel} +%} +%{% +% \schema +% {% +% \schemabox{\textsc{Essentiam},} +% } +% {% +% \schemabox{Unitate natur\ae{}.\\ +% Trinitate personarum.\\ +% Operibus ad intra.}} +% \schema +% {% +% \schemabox{\textsc{Voluntatem},\\ +% manifestatam in\\ +% operibus ad extra;\\ +% ut in} +% } +% {% +% \schemabox{Creatione.\\ +% Sustentatione natur\ae{} laps\ae{}.\\ +% Reparatione.\\ +% Conversione.\\ +% Justificatione.\\ +% Sanctificatione \&\\ +% Glorificatione ejusdem.} +% } +%}\vspace{1ex} +% \noindent Something is off here. The ``simple'' schema automatically adjusts the brace height to the right-hand side. But that includes the \emph{entire} right-hand side. We shall see later that schemata also can nest left and right-hand sides. This package requires manual alignment and adjustment. +% +% \bgroup\footnotesize% +% \begin{multicols}{2} +% \noindent Initial Code:\\[1ex] +%|\schema% <---change this|\\ +%|{%|\\ +%| \schemabox{Subjectum theo-\\|\\ +%| logi\ae{} est Notitia\\|\\ +%| Dei. Considerat\\|\\ +%| ergo, Dei, vel}|\\ +%|}|\\ +%|{%|\\ +%| \schema|\\ +%| {%|\\ +%| \schemabox{\textsc{Essentiam},}|\\ +%| }|\\ +%| {%|\\ +%| \schemabox{Unitate natur\ae{}.\\|\\ +%| Trinitate personarum.\\|\\ +%| Operibus ad intra.}|\\ +%| }% <---add space|\\ +%| \schema|\\ +%| {%|\\ +%| \schemabox{\textsc{Voluntatem},\\|\\ +%| manifestatam in\\|\\ +%| operibus ad extra;\\|\\ +%| ut in}|\\ +%| }|\\ +%| {%|\\ +%| \schemabox{Creatione.\\|\\ +%| Sustentatione natur\ae{} %|\\ +%| laps\ae{}.\\|\\ +%| Reparatione.\\|\\ +%| Conversione.\\|\\ +%| Justificatione.\\|\\ +%| Sanctificatione \&\\|\\ +%| Glorificatione ejusdem.}|\\ +%| }|\\ +%|}|\columnbreak\\ +% \noindent Subsequent Changes:\\[1ex] +%|\Schema{-1ex}{8.6ex}|\dots\\ +%\dots|\smallskip|\dots\\ +% +% The commented text |% <---add space| in the listing to the left, at the end of the schema beginning with ``\textsc{Essentiam},'' indicates where a little vertical space between the right-hand ``leaves'' of the ``tree'' might help, so we adjust that first in order to set the braces properly. We remove the comment and insert a |\smallskip|. The general rule is:\\ +% +% \noindent\ \ |\schema|\dots\marg{right-hand side}\meta{vert-space} +% +% \noindent\ \ |\Schema|\dots\marg{right-hand side}\meta{vert-space}\\ +% +% \noindent One also may insert space within a |\schemabox|, but one should avoid doing that in either the first or last lines. +% +% Having adjusted the ``leaves,'' we now work toward the ``root.'' The |\Schema| macro requires manual brace adjustment and sizing. It is best used in cases where either the left or right-hand sides include a |\schema| or a |\Schema|. Manual adjustment is achieved by counting lines, estimating, and refining the estimate. +% +% Observe that there is approximately eight lines from ``\textsc{Essentiam}'' down to ``ut in.'' Estimate \meta{size} to |8ex| and \meta{adjust} to |0ex|. The large brace will be a little too low. Set \meta{adjust} to |-1ex| to raise the brace about half a line and to lower the left-hand side about half a line, keeping everything centered. Finally, setting \meta{size} to |8.6ex| gives a better result. +% +% \end{multicols} +% \egroup +%\Schema{-1ex}{8.6ex} +%{% +% \schemabox{Subjectum theo-\\ +% logi\ae{} est Notitia\\ +% Dei. Considerat\\ +% ergo, Dei, vel} +%} +%{% +% \schema +% {% +% \schemabox{\textsc{Essentiam},} +% } +% {% +% \schemabox{Unitate natur\ae{}.\\ +% Trinitate personarum.\\ +% Operibus ad intra.} +% }\smallskip +% \schema +% {% +% \schemabox{\textsc{Voluntatem},\\ +% manifestatam in\\ +% operibus ad extra;\\ +% ut in} +% } +% {% +% \schemabox{Creatione.\\ +% Sustentatione natur\ae{} % +% laps\ae{}.\\ +% Reparatione.\\ +% Conversione.\\ +% Justificatione.\\ +% Sanctificatione \&\\ +% Glorificatione ejusdem.} +% } +%}\medskip +% +% \noindent Before we proceed, it may be helpful to note that many schemata, such as ones that illustrate the relationship of figures and tropes to the literal sense of a text, are no more complex than this first example. +% \clearpage +% +% \subsubsection{Going Big} +% +% We begin with the following example, where the |\Schema| braces all have dummy values of |0ex| \meta{adjust} and |5ex| \meta{size}. Perhaps the indentation helps to give a sense of the nesting and how the result might end up: +% +% \bgroup\footnotesize% +% \begin{multicols}{2} +%\noindent |\Schema{0ex}{5ex}|\\ +%|{%|\\ +%| \schemabox{Subjectum \& summa\\|\\ +%| univers\ae{} Scriptur\ae{},\\|\\ +%| est \textsc{Cognitio} vel}|\\ +%|}|\\ +%|{%|\\ +%| \Schema{0ex}{5ex}|\\ +%| {%|\\ +%| \schemabox{\textsc{Dei}, qualis\\|\\ +%| sit, aut}|\\ +%| }|\\ +%| {%|\\ +%| \schema|\\ +%| {\schemabox{\textsc{Per se}:\\ scilicet.}}|\\ +%| {%|\\ +%| \schemabox{Unus in essentia.\\|\\ +%| Trinus in personis.}|\\ +%| }|\\ +%| \schema|\\ +%| {\schemabox{Ad hominem\\ quem vel}}|\\ +%| {%|\\ +%| \schemabox{Accusat \& terret, %|\\ +%| \textsc{Per Legem},\\|\\ +%| Consolatur \& erigit, %|\\ +%| \textsc{Per Evangelium}.\\|\\ +%| Salvat, \textsc{Per Christum}.\\|\\ +%| Renovat, \textsc{Per Spiritum%|\\ +%| Sanctum}.\\|\\ +%| Sanctificat, \textsc{Per Verbum} \& %|\\ +%| \textsc{Sacramenta}.\\|\\ +%| Castigat, tentat \& exercet, %|\\ +%| \textsc{Per Crucem}.\\|\\ +%| Glorificat \textsc{Per %|\\ +%| Resurrectionem Carnis}\\|\\ +%| \textsc{Ad Vitam \AE{}ternam}.}|\\ +%| }|\\ +%| }|\\ +%| \Schema{0ex}{5ex}|\\ +%| {%|\\ +%| \schemabox|\\ +%| {%|\\ +%| \textsc{Hominis},\\ qualis sit|\\ +%| }|\\ +%| }|\\ +%| {%|\\ +%| \Schema{0ex}{5ex}|\\ +%| {\schemabox{\textsc{Per se}:}}|\\ +%| {%|\\ +%| \schemabox{Ante lapsum.}|\\ +%| \schema|\\ +%| {\schemabox{Post lapsum:}}|\\ +%| {%|\\ +%| \schemabox{Ante Regenerationem \&\\|\\ +%| Renovationem S. Sancti.}|\\ +%| \schemabox{Post Regenerationem \&\\|\\ +%| Renovationem S. Sancti.}|\\ +%| }|\\ +%| }|\\ +%| \Schema{0ex}{5ex}|\\ +%| {\schemabox{Ad}}|\\ +%| {%|\\ +%| \schema|\\ +%| {\schemabox{\textsc{Deum}}}|\\ +%| {%|\\ +%| \schemabox{P\oe{}nitentia agens, %|\\ +%| agnitis peccatis \&\\|\\ +%| ira Dei cognita \textsc{Ex Lege}.\\|\\ +%| Erigens se \textsc{Voce Evangelii}.\\|\\ +%| Credens \textsc{In Christum Salvatorem}.\\|\\ +%| Non repugnans \textsc{Spiritui Sancto} %|\\ +%| impellenti.\\|\\ +%| Audiens \textsc{Verbum}: \& utens %|\\ +%| \textsc{Sacramentis}.\\|\\ +%| Patienter \& constanter sufferens %|\\ +%| \textsc{Crucem}.\\|\\ +%| Sperans \& expectans glorificationem\\|\\ +%| \textsc{In Resurrectione Carnis}\\|\\ +%| \textsc{Ad Vitam \AE{}ternam}.}|\\ +%| }|\\ +%| \schema|\\ +%| {\schemabox{seipsum ratione}}|\\ +%| {\schemabox{Anim\ae{}\\ vel\\ Corporis}}|\\ +%| \Schema{0ex}{5ex}|\\ +%| {\schemabox{Proximum,}}|\\ +%| {%|\\ +%| \schema|\\ +%| {\schemabox{Amicum ra-\\ tione vel}}|\\ +%| {%|\\ +%| \schemabox{Religionis.\\|\\ +%| Politic\ae{} \& \OE{}conomic\ae{}.\\|\\ +%| Cognationis.\\|\\ +%| Agnationis.}|\\ +%| }|\\ +%| \schemabox{Inimicum.}|\\ +%| }|\\ +%| }|\\ +%| }|\\ +%|}|\\ +% \end{multicols} +%\egroup +%\clearpage +% Below is the result of that code (with additions for spacing). It looks pretty bad, except where the |\schema| macros have extended their braces. Think of a |\schema| as a ``leaf'' on the right-hand side and you get the idea.\\ +% +% \bgroup\footnotesize% +%\Schema{0ex}{5ex} +%{% +% \schemabox{Subjectum \& summa\\ +% univers\ae{} Scriptur\ae{},\\ +% est \textsc{Cognitio} vel} +%} +%{% +% \Schema{0ex}{5ex} +% {% +% \schemabox{\textsc{Dei}, qualis \\% +% sit, aut} +% } +% {% +% \schema +% {\schemabox{\textsc{Per se}:\\ scilicet.}} +% {% +% \schemabox{Unus in essentia.| <---space|\\% +% Trinus in personis.| <---space|} +% } +% \schema +% {\schemabox{Ad hominem\\ quem vel}} +% {% +% \schemabox{Accusat \& terret, % +% \textsc{Per Legem},\\ +% Consolatur \& erigit, % +% \textsc{Per Evangelium}.\\ +% Salvat, \textsc{Per Christum}.\\ +% Renovat, \textsc{Per Spiritum% +% Sanctum}.\\ +% Sanctificat, \textsc{Per Verbum} \& % +% \textsc{Sacramenta}.\\ +% Castigat, tentat \& exercet, % +% \textsc{Per Crucem}.\\ +% Glorificat \textsc{Per % +% Resurrectionem Carnis}\\ +% \textsc{Ad Vitam \AE{}ternam}.| <---space|} +% } +% } +% \Schema{0ex}{5ex} +% {% +% \schemabox +% {% +% \textsc{Hominis},\\ qualis sit +% } +% } +% {% +% \Schema{0ex}{5ex} +% {\schemabox{\textsc{Per se}:}} +% {% +% \schemabox{Ante lapsum.| <---space|} +% \schema +% {\schemabox{Post lapsum:}} +% {% +% \schemabox{Ante Regenerationem \&\\ +% Renovationem S. Sancti.| <---space|} +% \schemabox{Post Regenerationem \&\\ +% Renovationem S. Sancti.| <---space|} +% } +% } +% \Schema{0ex}{5ex} +% {\schemabox{Ad}} +% {% +% \schema +% {\schemabox{\textsc{Deum}}} +% {% +% \schemabox{P\oe{}nitentia agens, % +% agnitis peccatis \&\\ +% ira Dei cognita \textsc{Ex Lege}.\\ +% Erigens se \textsc{Voce Evangelii}.\\ +% Credens \textsc{In Christum Salvatorem}.\\ +% Non repugnans \textsc{Spiritui Sancto} % +% impellenti.\\ +% Audiens \textsc{Verbum}: \& utens % +% \textsc{Sacramentis}.\\ +% Patienter \& constanter sufferens % +% \textsc{Crucem}.\\ +% Sperans \& expectans glorificationem\\ +% \textsc{In Resurrectione Carnis}\\ +% \textsc{Ad Vitam \AE{}ternam}.| <---space|} +% } +% \schema +% {\schemabox{seipsum ratione}} +% {\schemabox{Anim\ae{}\\ vel\\ Corporis| <---space|}} +% \Schema{0ex}{5ex} +% {\schemabox{Proximum,}} +% {% +% \schema +% {\schemabox{Amicum ra-\\ tione vel}} +% {% +% \schemabox{Religionis.\\ +% Politic\ae{} \& \OE{}conomic\ae{}.\\ +% Cognationis.\\ +% Agnationis.| <---space|} +% } +% \schemabox{Inimicum.} +% } +% } +% } +%} +%\egroup\vspace{2ex} +%\noindent The first order of business is to determine the spacing of the ``leaves'' of the tree, both within and between schemata. The places where one might wish to add vertical space are indicated by |<---space| in the figure above. +% +% It really is necessary to work from right to left here. One might think that he or she can guess roughly how big a brace might be. While that may be true, what will happen if you try to size the braces before spacing out the text on the right-hand side is that you will have to go back and forth, tweaking this and that, until you get what you want. That is a waste of time and a source of frustration. Steel yourself to avoid temptation and begin rigorously by adding vertical space after selected instances of |\Schema| or |\schema|, or within a |\schemabox|. The list on the next page shows the changes. +% +% \bgroup\footnotesize% +%\Schema{0ex}{5ex} +%{% +% \schemabox{Subjectum \& summa\\ +% univers\ae{} Scriptur\ae{},\\ +% est \textsc{Cognitio} vel} +%} +%{% +% \Schema{0ex}{5ex} +% {% +% \schemabox{\textsc{Dei}, qualis \\% +% sit, aut} +% } +% {% +% \schema +% {\schemabox{\textsc{Per se}:\\ scilicet.}} +% {% +% \schemabox{Unus in essentia.\smallskip\\% +% Trinus in personis.} +% }\smallskip +% \schema +% {\schemabox{Ad hominem\\ quem vel}} +% {% +% \schemabox{Accusat \& terret, % +% \textsc{Per Legem},\\ +% Consolatur \& erigit, % +% \textsc{Per Evangelium}.\\ +% Salvat, \textsc{Per Christum}.\\ +% Renovat, \textsc{Per Spiritum% +% Sanctum}.\\ +% Sanctificat, \textsc{Per Verbum} \& % +% \textsc{Sacramenta}.\\ +% Castigat, tentat \& exercet, % +% \textsc{Per Crucem}.\\ +% Glorificat \textsc{Per % +% Resurrectionem Carnis}\\ +% \textsc{Ad Vitam \AE{}ternam}.} +% }\medskip +% } +% \Schema{0ex}{5ex} +% {% +% \schemabox +% {% +% \textsc{Hominis},\\ qualis sit +% } +% } +% {% +% \Schema{0ex}{5ex} +% {\schemabox{\textsc{Per se}:}} +% {% +% \schemabox{Ante lapsum.}\smallskip +% \schema +% {\schemabox{Post lapsum:}} +% {% +% \schemabox{Ante Regenerationem \&\\ +% Renovationem S. Sancti.}\medskip +% \schemabox{Post Regenerationem \&\\ +% Renovationem S. Sancti.} +% }\smallskip +% } +% \Schema{0ex}{5ex} +% {\schemabox{Ad}} +% {% +% \schema +% {\schemabox{\textsc{Deum}}} +% {% +% \schemabox{P\oe{}nitentia agens, % +% agnitis peccatis \&\\ +% ira Dei cognita \textsc{Ex Lege}.\\ +% Erigens se \textsc{Voce Evangelii}.\\ +% Credens \textsc{In Christum Salvatorem}.\\ +% Non repugnans \textsc{Spiritui Sancto} % +% impellenti.\\ +% Audiens \textsc{Verbum}: \& utens % +% \textsc{Sacramentis}.\\ +% Patienter \& constanter sufferens % +% \textsc{Crucem}.\\ +% Sperans \& expectans glorificationem\\ +% \textsc{In Resurrectione Carnis}\\ +% \textsc{Ad Vitam \AE{}ternam}.} +% }\smallskip +% \schema +% {\schemabox{seipsum ratione}} +% {\schemabox{Anim\ae{}\\ vel\\ Corporis}}\smallskip +% \Schema{0ex}{5ex} +% {\schemabox{Proximum,}} +% {% +% \schema +% {\schemabox{Amicum ra-\\ tione vel}} +% {% +% \schemabox{Religionis.\\ +% Politic\ae{} \& \OE{}conomic\ae{}.\\ +% Cognationis.\\ +% Agnationis.} +% }\smallskip +% \schemabox{Inimicum.} +% } +% } +% } +%} +%\egroup\medskip +% +%\noindent The following lines, shown with some surrounding context, were changed as a result of adding spaces: +% +% \bgroup\footnotesize% +% \begin{multicols}{2} +%\noindent| \schemabox{Unus in essentia.\smallskip\\%|\\ +%| Trinus in personis.}|\\ +%| }\smallskip|\\ +% \hbox to 0.25\columnwidth{\bfseries\hfil\dots}\\ +%\noindent| \textsc{Ad Vitam \AE{}ternam}.}|\\ +%| }\medskip|\\ +% \hbox to 0.25\columnwidth{\bfseries\hfil\dots}\\ +%\noindent| \schemabox{Ante lapsum.}\smallskip|\\ +%| \schema|\\ +% \hbox to 0.25\columnwidth{\bfseries\hfil\dots}\\ +%\noindent| \schemabox{Ante Regenerationem \&\\|\\ +%| Renovationem S. Sancti.}\medskip|\\ +%| \schemabox{Post Regenerationem \&\\|\\ +%| Renovationem S. Sancti.}|\\ +%| }\smallskip|\columnbreak\\ +% \hbox to 0.25\columnwidth{\bfseries\hfil\dots}\\ +%\noindent| \textsc{Ad Vitam \AE{}ternam}.}|\\ +%| }\smallskip|\\ +%| \schema|\\ +%| {\schemabox{seipsum ratione}}|\\ +%| {\schemabox{Anim\ae{}\\ vel\\ Corporis}}%|\\ +%| \smallskip|\\ +% \hbox to 0.25\columnwidth{\bfseries\hfil\dots}\\ +%\noindent| Agnationis.}|\\ +%| }\smallskip|\\ +%| \schemabox{Inimicum.}|\\ +% \end{multicols} +% \egroup% +% +% Next we estimate the lines from the top of a |\Schema| brace to the bottom, e.g., from ``\textsc{Per se}:'' to ``quem vel''. We use those ``ex'' height figures for \meta{size}:\\ +% +% \bgroup\footnotesize% +%\Schema{0ex}{20ex} +%{% +% \schemabox{Subjectum \& summa\\ +% univers\ae{} Scriptur\ae{},\\ +% est \textsc{Cognitio} vel} +%} +%{% +% \Schema{0ex}{8ex} +% {% +% \schemabox{\textsc{Dei}, qualis \\% +% sit, aut} +% } +% {% +% \schema +% {\schemabox{\textsc{Per se}:\\ scilicet.}} +% {% +% \schemabox{Unus in essentia.\smallskip\\% +% Trinus in personis.} +% }\smallskip +% \schema +% {\schemabox{Ad hominem\\ quem vel}} +% {% +% \schemabox{Accusat \& terret, % +% \textsc{Per Legem},\\ +% Consolatur \& erigit, % +% \textsc{Per Evangelium}.\\ +% Salvat, \textsc{Per Christum}.\\ +% Renovat, \textsc{Per Spiritum% +% Sanctum}.\\ +% Sanctificat, \textsc{Per Verbum} \& % +% \textsc{Sacramenta}.\\ +% Castigat, tentat \& exercet, % +% \textsc{Per Crucem}.\\ +% Glorificat \textsc{Per % +% Resurrectionem Carnis}\\ +% \textsc{Ad Vitam \AE{}ternam}.} +% }\medskip +% } +% \Schema{0ex}{14ex} +% {% +% \schemabox +% {% +% \textsc{Hominis},\\ qualis sit +% } +% } +% {% +% \Schema{0ex}{4ex} +% {\schemabox{\textsc{Per se}:}} +% {% +% \schemabox{Ante lapsum.}\smallskip +% \schema +% {\schemabox{Post lapsum:}} +% {% +% \schemabox{Ante Regenerationem \&\\ +% Renovationem S. Sancti.}\medskip +% \schemabox{Post Regenerationem \&\\ +% Renovationem S. Sancti.} +% }\smallskip +% } +% \Schema{0ex}{12ex} +% {\schemabox{Ad}} +% {% +% \schema +% {\schemabox{\textsc{Deum}}} +% {% +% \schemabox{P\oe{}nitentia agens, % +% agnitis peccatis \&\\ +% ira Dei cognita \textsc{Ex Lege}.\\ +% Erigens se \textsc{Voce Evangelii}.\\ +% Credens \textsc{In Christum Salvatorem}.\\ +% Non repugnans \textsc{Spiritui Sancto} % +% impellenti.\\ +% Audiens \textsc{Verbum}: \& utens % +% \textsc{Sacramentis}.\\ +% Patienter \& constanter sufferens % +% \textsc{Crucem}.\\ +% Sperans \& expectans glorificationem\\ +% \textsc{In Resurrectione Carnis}\\ +% \textsc{Ad Vitam \AE{}ternam}.} +% }\smallskip +% \schema +% {\schemabox{seipsum ratione}} +% {\schemabox{Anim\ae{}\\ vel\\ Corporis}}\smallskip +% \Schema{0ex}{4ex} +% {\schemabox{Proximum,}} +% {% +% \schema +% {\schemabox{Amicum ra-\\ tione vel}} +% {% +% \schemabox{Religionis.\\ +% Politic\ae{} \& \OE{}conomic\ae{}.\\ +% Cognationis.\\ +% Agnationis.} +% }\smallskip +% \schemabox{Inimicum.} +% } +% } +% } +%} +%\egroup\medskip +% +%\noindent The following lines, shown with some surrounding context, illustrate our ``ball park'' figures: +% +% \bgroup\footnotesize% +% \begin{multicols}{2} +%\noindent|\Schema{0ex}{20ex}|\\ +%|{%|\\ +%| \schemabox{Subjectum \& summa\\|\\ +% \hbox to 0.25\columnwidth{\bfseries\hfil\dots}\\ +%\noindent| \Schema{0ex}{8ex}|\\ +%| {%|\\ +%| \schemabox{\textsc{Dei}, qualis \\%|\\ +% \hbox to 0.25\columnwidth{\bfseries\hfil\dots}\\ +%\noindent| \Schema{0ex}{14ex}|\\ +%| {%|\\ +%| \schemabox|\\ +%| {%|\\ +%| \textsc{Hominis},\\ qualis sit|\\ +% \hbox to 0.25\columnwidth{\bfseries\hfil\dots}\\ +%\noindent| \Schema{0ex}{4ex}|\\ +%| {\schemabox{\textsc{Per se}:}}|\\ +% \hbox to 0.25\columnwidth{\bfseries\hfil\dots}\\ +%\noindent| \Schema{0ex}{12ex}|\\ +%| {\schemabox{Ad}}|\\ +% \hbox to 0.25\columnwidth{\bfseries\hfil\dots}\\ +%\noindent| \Schema{0ex}{4ex}|\\ +%| {\schemabox{Proximum,}}|\\ +% \end{multicols} +% \egroup% +% +% Now we add the \meta{adjust values} by counting the lines in the direction the brace needs to move, multiplying by two, and making it negative for up and positive for down. Using, e.g., \textsf{texworks} makes this easy. Work from leaves to root.\\ +% +% \bgroup\footnotesize% +%\Schema{-25ex}{20ex} +%{% +% \schemabox{Subjectum \& summa\\ +% univers\ae{} Scriptur\ae{},\\ +% est \textsc{Cognitio} vel} +%} +%{% +% \Schema{-6.4ex}{8.2ex} +% {% +% \schemabox{\textsc{Dei}, qualis \\% +% sit, aut} +% } +% {% +% \schema +% {\schemabox{\textsc{Per se}:\\ scilicet.}} +% {% +% \schemabox{Unus in essentia.\smallskip\\% +% Trinus in personis.} +% }\smallskip +% \schema +% {\schemabox{Ad hominem\\ quem vel}} +% {% +% \schemabox{Accusat \& terret, % +% \textsc{Per Legem},\\ +% Consolatur \& erigit, % +% \textsc{Per Evangelium}.\\ +% Salvat, \textsc{Per Christum}.\\ +% Renovat, \textsc{Per Spiritum% +% Sanctum}.\\ +% Sanctificat, \textsc{Per Verbum} \& % +% \textsc{Sacramenta}.\\ +% Castigat, tentat \& exercet, % +% \textsc{Per Crucem}.\\ +% Glorificat \textsc{Per % +% Resurrectionem Carnis}\\ +% \textsc{Ad Vitam \AE{}ternam}.} +% }\medskip +% } +% \Schema{-14.4ex}{17ex} +% {% +% \schemabox +% {% +% \textsc{Hominis},\\ qualis sit +% } +% } +% {% +% \Schema{-4ex}{4.4ex} +% {\schemabox{\textsc{Per se}:}} +% {% +% \schemabox{Ante lapsum.}\smallskip +% \schema +% {\schemabox{Post lapsum:}} +% {% +% \schemabox{Ante Regenerationem \&\\ +% Renovationem S. Sancti.}\medskip +% \schemabox{Post Regenerationem \&\\ +% Renovationem S. Sancti.} +% }\smallskip +% } +% \Schema{3.6ex}{14ex} +% {\schemabox{Ad}} +% {% +% \schema +% {\schemabox{\textsc{Deum}}} +% {% +% \schemabox{P\oe{}nitentia agens, % +% agnitis peccatis \&\\ +% ira Dei cognita \textsc{Ex Lege}.\\ +% Erigens se \textsc{Voce Evangelii}.\\ +% Credens \textsc{In Christum Salvatorem}.\\ +% Non repugnans \textsc{Spiritui Sancto} % +% impellenti.\\ +% Audiens \textsc{Verbum}: \& utens % +% \textsc{Sacramentis}.\\ +% Patienter \& constanter sufferens % +% \textsc{Crucem}.\\ +% Sperans \& expectans glorificationem\\ +% \textsc{In Resurrectione Carnis}\\ +% \textsc{Ad Vitam \AE{}ternam}.} +% }\smallskip +% \schema +% {\schemabox{seipsum ratione}} +% {\schemabox{Anim\ae{}\\ vel\\ Corporis}}\smallskip +% \Schema{2ex}{5ex} +% {\schemabox{Proximum,}} +% {% +% \schema +% {\schemabox{Amicum ra-\\ tione vel}} +% {% +% \schemabox{Religionis.\\ +% Politic\ae{} \& \OE{}conomic\ae{}.\\ +% Cognationis.\\ +% Agnationis.} +% }\smallskip +% \schemabox{Inimicum.} +% } +% } +% } +%} +%\egroup\medskip +% +%\noindent The following illustrates the final results: +% +% \bgroup\footnotesize% +% \begin{multicols}{2} +%\noindent|\Schema{-25ex}{20ex}|\\ +%|{%|\\ +%| \schemabox{Subjectum \& summa\\|\\ +% \hbox to 0.25\columnwidth{\bfseries\hfil\dots}\\ +%\noindent| \Schema{-6.4ex}{8.2ex}|\\ +%| {%|\\ +%| \schemabox{\textsc{Dei}, qualis \\%|\\ +% \hbox to 0.25\columnwidth{\bfseries\hfil\dots}\\ +%\noindent| \Schema{-14.4ex}{17ex}|\\ +%| {%|\\ +%| \schemabox|\\ +%| {%|\\ +%| \textsc{Hominis},\\ qualis sit|\\ +% \hbox to 0.25\columnwidth{\bfseries\hfil\dots}\\ +%\noindent| \Schema{-4ex}{4.4ex}|\\ +%| {\schemabox{\textsc{Per se}:}}|\\ +% \hbox to 0.25\columnwidth{\bfseries\hfil\dots}\\ +%\noindent| \Schema{3.6ex}{14ex}|\\ +%| {\schemabox{Ad}}|\\ +% \hbox to 0.25\columnwidth{\bfseries\hfil\dots}\\ +%\noindent| \Schema{2ex}{5ex}|\\ +%| {\schemabox{Proximum,}}|\\ +% \end{multicols} +% \egroup +% +% \noindent The next example further illustrates spacing and adjusting:\\ +% +% \bgroup\scriptsize% +%\Schema{-38ex}{14ex} +%{ +% \schemabox{Sacr\ae{} litter\ae{}\\ loquuntur, de} +%} +%{ +% \schema +% { +% \schemabox{\textsc{Deo}} +% } +% { +% \schemabox{Uno, in Trinitate.\smallskip\\Trino, in unitate.} +% } +% \Schema{-21ex}{19.6ex} +% { +% \schemabox{\textsc{Dei}\\ \textsc{Operibus}} +% } +% { +% \schema +% { +% \schemabox{\textsc{Intra}, qu\ae{} sunt\\ divisa, ut} +% } +% { +% \schemabox{\textsc{Patris}, ab \ae{}terno gignere.\\ \textsc{Filii}, ab \ae{}terno genitum esse.\\ \textsc{Spiritus Sancti}, ab utroque\\ ab \ae{}terno procedete.} +% } +% \medskip +% \Schema{-2.6ex}{19.6ex} +% { +% \schemabox{\textsc{Extra}, qu\ae{} sunt\\ indivisa; tervata\\ tamen cujusque\\ person\ae{} divinita-\\ tis sua proprietate} +% } +% { +% \Schema{-0.8ex}{6.4ex} +% { +% \schemabox{Creatione\\ natur\ae{}} +% } +% { +% \schema +% { +% \schemabox{Brute ut} +% } +% { +% \schemabox{C\oe{}li} \smallskip \schemabox{Elementorum} \smallskip \schemabox{Mundi} +% } +% \smallskip +% \schema +% { +% \schemabox{\gk{logik~hs}, ut} +% } +% { +% \schemabox{Angelorum.} \smallskip \schemabox{Hominum: Ad\ae{},\\ Ev\ae{} \& procreatorum\\ exipsis.} +% } +% } +% \schema +% { +% \schemabox{Sustenatione\\ natur\ae{} laps\ae{},} +% } +% { +% \schemabox{Angelorum malorum,} \smallskip \schemabox{Hominum: Ad\ae{}, Ev\ae{}\\ \& procreatorum exipsis.} +% } +% \Schema{2.6ex}{8.6ex} +% { +% \schemabox{Beneficiis erga\\ Ecclesiam: ea ver-\\ santur aut circa} +% } +% { +% \Schema{2.2ex}{7ex} +% { +% \schemabox{Res, ut} +% } +% { +% \schema +% { +% \schemabox{Verbum} +% } +% { +% \schemabox{Legis} \smallskip \schemabox{Evangelii} \smallskip \schemabox{Sacramentorum} +% } +% \smallskip +% \schema +% { +% \schemabox{Signa vel Veteris\\ vel Novi Testa-\\ mentum ut sunt:} +% } +% { +% \schemabox{Ceremoni\ae{}} \smallskip \schemabox{Miracula} +% } +% } +% \smallskip +% \Schema{1ex}{5ex} +% { +% \schemabox{Personas} +% } +% { +% \schema +% { +% \schemabox{Ecclesi\ae{}} +% } +% { +% \schemabox{Universalis} \smallskip \schemabox{Particularis} +% } +% \smallskip +% \schemabox{Politi\ae{} ut Magistratuum} +% \smallskip +% \schemabox{\OE{}conomi\ae{} ut privatorum} +% } +% } +% } +% } +%} +%\egroup +% +% \noindent Next we see some closed schemata:\\ +% +%\Schema{-1.4ex}{9.4ex} +%{% +% \schemabox{Qu\ae{} sit\\ % +% \textsc{Dei}, vel} +%} +%{% +% \Schema{-1ex}{4.6ex} +% {% +% \schemabox{\textsc{Essentia}, in} +% } +% {% +% \schemabox{Unitate divina,} +% \medskip +% \Schema{0ex}{3ex} +% {% +% \schemabox{Tribus perso-\\% +% nis divinitatis} +% } +% {% +% \Schema[close]{0ex}{3ex} +% {% +% \schemabox{Patre,\\ Filio,\\% +% Spiritui Sancto} +% } +% {% +% \schemabox{\gk{<omoous'iois}\\% +% \& co\ae{}ternis} +% } +% } +% } +% \medskip +% \Schema{-0.2ex}{6ex} +% {% +% \schemabox{\textsc{Voluntas},\\% +% revelatur in\\ actione, sive} +% } +% {% +% \Schema{0ex}{3ex} +% {% +% \schemabox{Universali} +% } +% {% +% \Schema[close]{0ex}{3ex} +% {% +% \schemabox{Creationis,\\% +% Sustenationis,\\ Propagationis,} +% } +% {% +% \schemabox{rerum creatarum.} +% } +% } +% \medskip +% \schema +% {% +% \schemabox{Speciali, in beneficiis\\% +% erga Ecclesiam, eam} +% } +% {% +% \schemabox{Colligendo.\\ Justificando.\\% +% Conservando.\\ Glorificando.} +% } +% } +%}\medskip +% +% \noindent This example merits consideration because it uses not only open schemata but closed ones nested within them. One must use |\Schema| in that case to prevent the opening braces from being slightly larger than the closing braces. +% +% \bgroup\footnotesize% +% \begin{multicols}{2} +%\noindent|\Schema{-1.4ex}{9.4ex}|\\ +%|{%|\\ +%| \schemabox{Qu\ae{} sit\\ %|\\ +%| \textsc{Dei}, vel}|\\ +%|}|\\ +%|{%|\\ +%| \Schema{-1ex}{4.4ex}|\\ +%| {%|\\ +%| \schemabox{\textsc{Essentia}, in}|\\ +%| }|\\ +%| {%|\\ +%| \schemabox{Unitate divina,}|\\ +%| \medskip|\\ +%| \Schema{0ex}{3ex}|\\ +%| {%|\\ +%| \schemabox{Tribus perso-\\%|\\ +%| nis divinitatis}|\\ +%| }|\\ +%| {%|\\ +%| \Schema[close]{0ex}{3ex}|\\ +%| {%|\\ +%| \schemabox{Patre,\\ Filio,\\%|\\ +%| Spiritui Sancto}|\\ +%| }|\\ +%| {%|\\ +%| \schemabox{\gk{<omoous'iois}\\%|\\ +%| \& co\ae{}ternis}|\\ +%| }|\\ +%| }|\\ +%| }|\\ +%| \medskip|\columnbreak\\ +%| \Schema{-0.4ex}{6ex}|\\ +%| {%|\\ +%| \schemabox{\textsc{Voluntas},\\%|\\ +%| revelatur in\\ actione, sive}|\\ +%| }|\\ +%| {%|\\ +%| \Schema{0ex}{3ex}|\\ +%| {%|\\ +%| \schemabox{Universali}|\\ +%| }|\\ +%| {%|\\ +%| \Schema[close]{0ex}{3ex}|\\ +%| {%|\\ +%| \schemabox{Creationis,\\%|\\ +%| Sustenationis,\\ Propagationis,}|\\ +%| }|\\ +%| {%|\\ +%| \schemabox{rerum creatarum.}|\\ +%| }|\\ +%| }|\\ +%| \medskip|\\ +%| \schema|\\ +%| {%|\\ +%| \schemabox{Speciali, in beneficiis\\%|\\ +%| erga Ecclesiam, eam}|\\ +%| }|\\ +%| {%|\\ +%| \schemabox{Colligendo.\\ Justificando.\\%|\\ +%| Conservando.\\ Glorificando.}|\\ +%| }|\\ +%| }|\\ +%|}|\\ +% \end{multicols} +% \egroup +% \noindent The balanced open/closed schemata take the form:\\[1ex] +% |\Schema{0ex}{2ex}|\\ +% | {\hbox{$left_1$}}{\Schema[close]{0ex}{2ex}|\\ +% | {\hbox{$left_2$}}{\hbox{$right_2$}}}|\\[1ex] +% \noindent The result is: +% \begin{displaymath} +% \Schema{0ex}{2ex} +% {\hbox{$left_1$}}{\Schema[close]{0ex}{2ex} +% {\hbox{$left_2$}}{\hbox{$right_2$}}} +% \end{displaymath} +% +% \noindent Try to produce the following. Hint: Everything to the right of the leftmost brace is the RHS of the outermost schema. Everything in that RHS to the left of the rightmost brace is the LHS of the first nested schema, and so on. +% \begin{displaymath} +% \Schema{-0.2ex}{5.5ex} +% {\schemabox{a}}% +% {% +% \Schema[close]{-0.2ex}{5.5ex} +% {% +% \Schema{0ex}{3ex} +% {\schemabox{b\\c}}% +% {% +% \Schema[close]{0ex}{3ex} +% {\schemabox{f\\g\\h}}% +% {\schemabox{l\\m}}% +% } +% \Schema{0ex}{3ex} +% {\schemabox{d\\e}}% +% {% +% \Schema[close]{0ex}{3ex} +% {\schemabox{i\\j\\k}}% +% {\schemabox{n\\o}}% +% }% +% }% +% {\schemabox{p}}% +% } +% \end{displaymath} +% \clearpage +% This final example illustrates how one can set the width of a |\schemabox|, and for what sort of use that might be, e.g., in order to line up the braces.\\[1ex] +%\Schema{-0.2ex}{14.4ex} +%{\schemabox{\bfseries Curriculum}} +%{% +% \schema +% {\schemabox[3cm]{\bfseries I. General\\Studies}} +% {\schemabox{1. Collected Works\\2. Encyclopedias}} +% \smallskip +% \schema +% {\schemabox[3cm]{\bfseries II. Literary\\Disciplines}} +% {\schemabox{1. Philology\\ +% 2. Historical Introduction\\ +% 3. Literary Theory\\ +% 4. Application}} +% \smallskip +% \schema +% {\schemabox[3cm]{\bfseries III. Philosophical\\Disciplines}} +% {\schemabox{1. Source Texts\\ +% 2. History of Philosophy\\ +% 3. General Surveys\\ +% 4. Specific Studies}} +% \smallskip +% \schema +% {\schemabox[3cm]{\bfseries IV. Historical\\Disciplines}} +% {\schemabox{1. General Surveys\\ +% 2. Specialized Works}} +%} +% \begin{multicols}{2} +% \bgroup\footnotesize +%\noindent|\Schema{-0.2ex}{14.4ex}|\\ +%|{\schemabox{\bfseries Curriculum}}|\\ +%|{%|\\ +%| \schema|\\ +%| {\schemabox[3cm]{\bfseries%|\\ +%| I. General\\Studies}}|\\ +%| {\schemabox{1. Collected Works\\|\\ +%| 2. Encyclopedias}}|\\ +%| \smallskip|\\ +%| \schema|\\ +%| {\schemabox[3cm]{\bfseries%|\\ +%| II. Literary\\Disciplines}}|\\ +%| {\schemabox{1. Philology\\|\\ +%| 2. Historical Introduction\\|\\ +%| 3. Literary Theory\\|\\ +%| 4. Application}}|\\ +%| \smallskip|\\ +%| \schema|\\ +%| {\schemabox[3cm]{\bfseries%|\\ +%| III. Philosophical\\Disciplines}}|\\ +%| {\schemabox{1. Source Texts\\|\\ +%| 2. History of Philosophy\\|\\ +%| 3. General Surveys\\|\\ +%| 4. Specific Studies}}|\\ +%| \smallskip|\\ +%| \schema|\\ +%| {\schemabox[3cm]{\bfseries%|\\ +%| IV. Historical\\Disciplines}}|\\ +%| {\schemabox{1. General Surveys\\|\\ +%| 2. Specialized Works}}|\\ +%|}|\\ +% \egroup +% \end{multicols}\bigskip +% \noindent Feedback is always welcome! +% \clearpage +% \StopEventually{\PrintChanges\clearpage\PrintIndex} +% +% \iffalse +%<*package> +% \fi +% \section{Implementation} +% +% The concept of using math mode to generate schemata was first implemented in plain \TeX, then migrated to \LaTeX. +% +% \subsection{Package Options and Required Packages} +% +%The package currently has no options and no dependencies to run. +% +% \begin{macrocode} +\newbox\rhs% +\newbox\lhs% +\newdimen\rheight% +\newdimen\lheight% +% \end{macrocode} +%Two box registers and two dimen registers are allocated, one for determining the left-hand vertical size of the schema and one for determining the right-hand size. The reason to use two instead of one each is to facilitate possible future automation of the alignment of schemata. +% +% \subsection {Macros} +% +% \begin{macro}{\schemabox} +% \begin{macrocode} +\expandafter\ifx\csname newenvironment\endcsname\relax% +{\catcode`@=11 +\gdef\schemabox{\futurelet\testchar\schemab@x} +\gdef\schemab@x{\ifx[\testchar \let\next\@schemabox% + \else \let\next\@schemab@x \fi \next} +\gdef\@schemab@x#1{\@schemabox[0pt]{#1}} +\gdef\@schemabox[#1]#2{% + \ifdim#1<1pt + \def\\{\egroup\hbox\bgroup\ignorespaces }% + \vbox{\hbox\bgroup\strut\ignorespaces #2\egroup}% + \else + \def\\{\hfil\egroup\hbox to #1\bgroup\ignorespaces }% + \vbox{\hbox to #1\bgroup\strut\ignorespaces #2\hfil\egroup}% + \fi +}}\else +\newcommand{\schemabox}[2][0pt]{% + \ifdim#1<1pt + \def\\{\egroup\hbox\bgroup\ignorespaces }% + \vbox{\hbox\bgroup\strut\ignorespaces #2\egroup}% + \else + \def\\{\hfil\egroup\hbox to #1\bgroup\ignorespaces }% + \vbox{\hbox to #1\bgroup\strut\ignorespaces #2\hfil\egroup}% + \fi +}\fi +% \end{macrocode} +% \end{macro} +% Print a "box" that is a stack of left-aligned hboxes (with optional width) +% wrapped in a vbox. This allows the box to be only as wide as needed when +% a part of a schema. The syntax is reminiscent of a one-column tabular. +% +% \begin{macro}{\schema} +% \begin{macrocode} +\expandafter\ifx\csname newenvironment\endcsname\relax% +{\catcode`@=11 +\gdef\schema{\futurelet\testchar\schem@} +\gdef\schem@{\ifx[\testchar \let\next\@schema% + \else \let\next\@schem@ \fi \next} +\gdef\@schem@#1#2{\@schema[open]{#1}{#2}} +\gdef\@schema[#1]#2#3{% + \def\Option{#1}\def\Open{open}% + \ifx\Option\Open + \setbox\rhs=\vbox{#3}% + \rheight=\ht\rhs% + \advance\rheight\dp\rhs% + \advance\rheight by 1.44265ex% + \hbox{$\vcenter{#2}\basiclbrace{\rheight}\vcenter{#3}$}% + \else + \setbox\lhs=\vbox{#2}% + \lheight=\ht\lhs% + \advance\lheight\dp\lhs% + \advance\lheight by 1.44265ex% + \hbox{$\vcenter{#2}\kern-0.2em\basicrbrace{\lheight}\vcenter{#3}$}% + \fi +}}\else +\newcommand{\schema}[3][open]{% + \def\Option{#1}\def\Open{open}% + \ifx\Option\Open + \setbox\rhs=\vbox{#3}% + \rheight=\ht\rhs% + \advance\rheight\dp\rhs% + \advance\rheight by 1.44265ex% + \hbox{$\vcenter{#2}\basiclbrace{\rheight}\vcenter{#3}$}% + \else + \setbox\lhs=\vbox{#2}% + \lheight=\ht\lhs% + \advance\lheight\dp\lhs% + \advance\lheight by 1.44265ex% + \hbox{$\vcenter{#2}\kern-0.2em\basicrbrace{\lheight}\vcenter{#3}$}% + \fi +}\fi +% \end{macrocode} +% \end{macro} +% This is the ``simple'' version of a schema. It vertically centers one box of internal vertical material on the left-hand side with one box of internal vertical material on the right-hand side. It puts a ``simple'' brace between the boxes based on the height of the box and the option passed to the schema. By default, a schema has a box to the left, an open brace, and a box to the right. If any optional argument other than "open" is used, the schema prints a box to the left, a close brace, and a box to the right. +% \clearpage +% \begin{macro}{\Schema} +% \begin{macrocode} +\expandafter\ifx\csname newenvironment\endcsname\relax% +{\catcode`@=11 +\gdef\Schema{\futurelet\testchar\Schem@} +\gdef\Schem@{\ifx[\testchar \let\next\@Schema \else \let\next\@Schem@ \fi \next} +\gdef\@Schem@#1#2#3#4{\@Schema[open]{#1}{#2}{#3}{#4}} +\gdef\@Schema[#1]#2#3#4#5{% + \def\Option{#1}\def\Open{open}% + \ifx\Option\Open + \dimen0=#2% + \hbox{$\vcenter{\vskip1.44265\dimen0#4}\complexlbrace{#2}{#3}\vcenter{#5}$}% + \else + \dimen0=#2% + \hbox{$\vcenter{\vskip1.44265\dimen0#4}\kern-0.2em% + \complexrbrace{#2}{#3}\vcenter{#5}$}% + \fi +}}\else +\newcommand{\Schema}[5][open]{% + \def\Option{#1}\def\Open{open}% + \ifx\Option\Open + \dimen0=#2% + \hbox{$\vcenter{\vskip1.44265\dimen0#4}\complexlbrace{#2}{#3}\vcenter{#5}$}% + \else + \dimen0=#2% + \hbox{$\vcenter{\vskip1.44265\dimen0#4}\kern-0.2em% + \complexrbrace{#2}{#3}\vcenter{#5}$}% + \fi +}\fi +% \end{macrocode} +% \end{macro} +% This is the general-purpose form of schemata. The parameters include whether it is an open or closed schema, the vertical adjustment of the left-hand side, the size of the brace, and the contents of the left and right-hand sizes. It works the same as above, but requires manual adjustment of the braces. +% +% \begin{macro}{\basiclbrace} +% \begin{macrocode} +\expandafter\ifx\csname newenvironment\endcsname\relax% + \def\basiclbrace#1{% + \ifmmode\left.\vcenter{\vbox to #1{\vfil}}\right\lbrace\fi} +\else + \newcommand{\basiclbrace}[1]{% + \ifmmode\left.\vcenter{\vbox to #1{\vfil}}\right\lbrace\fi} +\fi +% \end{macrocode} +% \end{macro} +% Draw an on-center brace to the left of a simple box. +% \clearpage +% +% \begin{macro}{\basicrbrace} +% \begin{macrocode} +\expandafter\ifx\csname newenvironment\endcsname\relax% + \def\basicrbrace#1{% + \ifmmode\left\rbrace\vcenter{\vbox to #1{\vfil}}\right.\fi} +\else + \newcommand{\basicrbrace}[1]{% + \ifmmode\left\rbrace\vcenter{\vbox to #1{\vfil}}\right.\fi} +\fi +% \end{macrocode} +% \end{macro} +% Draw an on-center brace to the right of a simple box. +% +% \begin{macro}{\complexlbrace} +% \begin{macrocode} +\expandafter\ifx\csname newenvironment\endcsname\relax% +\def\complexlbrace#1#2{% + \dimen0=#1% + \dimen2=#2% + \ifdim\dimen0<0pt + \ifmmode\vcenter{\hbox{$\left.\vbox to 1.44265\dimen2{\vfil}\right\lbrace% + \atop\vbox to -1.44265\dimen0{\vfil}$}}\fi + \else + \ifmmode\vcenter{\hbox{$\vbox to 1.44265\dimen0{\vfil}% + \atop\left.\vbox to 1.44265\dimen2{\vfil}\right\lbrace$}}\fi + \fi +}\else +\newcommand{\complexlbrace}[2]{% + \dimen0=#1% + \dimen2=#2% + \ifdim\dimen0<0pt + \ifmmode\vcenter{\hbox{$\left.\vbox to 1.44265\dimen2{\vfil}\right\lbrace% + \atop\vbox to -1.44265\dimen0{\vfil}$}}\fi + \else + \ifmmode\vcenter{\hbox{$\vbox to 1.44265\dimen0{\vfil}% + \atop\left.\vbox to 1.44265\dimen2{\vfil}\right\lbrace$}}\fi + \fi +}\fi +% \end{macrocode} +% \end{macro} +% Draw a brace to the left of a complex assortment of boxes. +% +% \begin{macro}{\complexrbrace} +% \begin{macrocode} +\expandafter\ifx\csname newenvironment\endcsname\relax% +\def\complexrbrace#1#2{% + \dimen0=#1% + \dimen2=#2% + \ifdim\dimen0<0pt + \ifmmode\vcenter{\hbox{$\left.\vbox to 1.44265\dimen2{\vfil}\right\rbrace% + \atop\vbox to -1.44265\dimen0{\vfil}$}}\fi + \else + \ifmmode\vcenter{\hbox{$\vbox to 1.44265\dimen0{\vfil}% + \atop\left.\vbox to 1.44265\dimen2{\vfil}\right\rbrace$}}\fi + \fi +}\else +\newcommand{\complexrbrace}[2]{% + \dimen0=#1% + \dimen2=#2% + \ifdim\dimen0<0pt + \ifmmode\vcenter{\hbox{$\left.\vbox to 1.44265\dimen2{\vfil}\right\rbrace% + \atop\vbox to -1.44265\dimen0{\vfil}$}}\fi + \else + \ifmmode\vcenter{\hbox{$\vbox to 1.44265\dimen0{\vfil}% + \atop\left.\vbox to 1.44265\dimen2{\vfil}\right\rbrace$}}\fi + \fi +}\fi +% \end{macrocode} +% \end{macro} +% Draw a brace to the right of a complex assortment of boxes. +% +% \clearpage +% \Finale +\endinput +% \iffalse +%</package> +% \fi diff --git a/Master/texmf-dist/source/generic/schemata/schemata.ins b/Master/texmf-dist/source/generic/schemata/schemata.ins new file mode 100644 index 00000000000..de7eb808d81 --- /dev/null +++ b/Master/texmf-dist/source/generic/schemata/schemata.ins @@ -0,0 +1,55 @@ +%% +%% Copyright (C) 2013 by Charles P. Schaum <charles dot schaum at att dot net> +%% +%% 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/schemata} + +\preamble + +This is a generated file. + +Copyright (C) 2013 by Charles P. Schaum <charles dot schaum at att dot net> + +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{schemata.sty}{\from{schemata.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{* schemata.sty *} +\Msg{* *} +\Msg{* To produce the documentation run the file schemata.dtx *} +\Msg{* through LaTeX. *} +\Msg{* *} +\Msg{* Happy TeXing! *} +\Msg{* *} +\Msg{*************************************************************} + +\endbatchfile diff --git a/Master/texmf-dist/tex/generic/schemata/schemata.sty b/Master/texmf-dist/tex/generic/schemata/schemata.sty new file mode 100644 index 00000000000..8d971f6990b --- /dev/null +++ b/Master/texmf-dist/tex/generic/schemata/schemata.sty @@ -0,0 +1,184 @@ +%% +%% This is file `schemata.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% schemata.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Copyright (C) 2013 by Charles P. Schaum <charles dot schaum at att dot net> +%% +%% 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. +%% +\expandafter\ifx\csname newenvironment\endcsname\relax% +\else +\NeedsTeXFormat{LaTeX2e}[2005/12/01] +\ProvidesPackage{schemata} + [2013/02/14 v0.5 generic package to aid construction of topical categories] +\fi +\newbox\rhs% +\newbox\lhs% +\newdimen\rheight% +\newdimen\lheight% +\expandafter\ifx\csname newenvironment\endcsname\relax% +{\catcode`@=11 +\gdef\schemabox{\futurelet\testchar\schemab@x} +\gdef\schemab@x{\ifx[\testchar \let\next\@schemabox% + \else \let\next\@schemab@x \fi \next} +\gdef\@schemab@x#1{\@schemabox[0pt]{#1}} +\gdef\@schemabox[#1]#2{% + \ifdim#1<1pt + \def\\{\egroup\hbox\bgroup\ignorespaces }% + \vbox{\hbox\bgroup\strut\ignorespaces #2\egroup}% + \else + \def\\{\hfil\egroup\hbox to #1\bgroup\ignorespaces }% + \vbox{\hbox to #1\bgroup\strut\ignorespaces #2\hfil\egroup}% + \fi +}}\else +\newcommand{\schemabox}[2][0pt]{% + \ifdim#1<1pt + \def\\{\egroup\hbox\bgroup\ignorespaces }% + \vbox{\hbox\bgroup\strut\ignorespaces #2\egroup}% + \else + \def\\{\hfil\egroup\hbox to #1\bgroup\ignorespaces }% + \vbox{\hbox to #1\bgroup\strut\ignorespaces #2\hfil\egroup}% + \fi +}\fi +\expandafter\ifx\csname newenvironment\endcsname\relax% +{\catcode`@=11 +\gdef\schema{\futurelet\testchar\schem@} +\gdef\schem@{\ifx[\testchar \let\next\@schema% + \else \let\next\@schem@ \fi \next} +\gdef\@schem@#1#2{\@schema[open]{#1}{#2}} +\gdef\@schema[#1]#2#3{% + \def\Option{#1}\def\Open{open}% + \ifx\Option\Open + \setbox\rhs=\vbox{#3}% + \rheight=\ht\rhs% + \advance\rheight\dp\rhs% + \advance\rheight by 1.44265ex% + \hbox{$\vcenter{#2}\basiclbrace{\rheight}\vcenter{#3}$}% + \else + \setbox\lhs=\vbox{#2}% + \lheight=\ht\lhs% + \advance\lheight\dp\lhs% + \advance\lheight by 1.44265ex% + \hbox{$\vcenter{#2}\kern-0.2em\basicrbrace{\lheight}\vcenter{#3}$}% + \fi +}}\else +\newcommand{\schema}[3][open]{% + \def\Option{#1}\def\Open{open}% + \ifx\Option\Open + \setbox\rhs=\vbox{#3}% + \rheight=\ht\rhs% + \advance\rheight\dp\rhs% + \advance\rheight by 1.44265ex% + \hbox{$\vcenter{#2}\basiclbrace{\rheight}\vcenter{#3}$}% + \else + \setbox\lhs=\vbox{#2}% + \lheight=\ht\lhs% + \advance\lheight\dp\lhs% + \advance\lheight by 1.44265ex% + \hbox{$\vcenter{#2}\kern-0.2em\basicrbrace{\lheight}\vcenter{#3}$}% + \fi +}\fi +\expandafter\ifx\csname newenvironment\endcsname\relax% +{\catcode`@=11 +\gdef\Schema{\futurelet\testchar\Schem@} +\gdef\Schem@{\ifx[\testchar \let\next\@Schema \else \let\next\@Schem@ \fi \next} +\gdef\@Schem@#1#2#3#4{\@Schema[open]{#1}{#2}{#3}{#4}} +\gdef\@Schema[#1]#2#3#4#5{% + \def\Option{#1}\def\Open{open}% + \ifx\Option\Open + \dimen0=#2% + \hbox{$\vcenter{\vskip1.44265\dimen0#4}\complexlbrace{#2}{#3}\vcenter{#5}$}% + \else + \dimen0=#2% + \hbox{$\vcenter{\vskip1.44265\dimen0#4}\kern-0.2em% + \complexrbrace{#2}{#3}\vcenter{#5}$}% + \fi +}}\else +\newcommand{\Schema}[5][open]{% + \def\Option{#1}\def\Open{open}% + \ifx\Option\Open + \dimen0=#2% + \hbox{$\vcenter{\vskip1.44265\dimen0#4}\complexlbrace{#2}{#3}\vcenter{#5}$}% + \else + \dimen0=#2% + \hbox{$\vcenter{\vskip1.44265\dimen0#4}\kern-0.2em% + \complexrbrace{#2}{#3}\vcenter{#5}$}% + \fi +}\fi +\expandafter\ifx\csname newenvironment\endcsname\relax% + \def\basiclbrace#1{% + \ifmmode\left.\vcenter{\vbox to #1{\vfil}}\right\lbrace\fi} +\else + \newcommand{\basiclbrace}[1]{% + \ifmmode\left.\vcenter{\vbox to #1{\vfil}}\right\lbrace\fi} +\fi +\expandafter\ifx\csname newenvironment\endcsname\relax% + \def\basicrbrace#1{% + \ifmmode\left\rbrace\vcenter{\vbox to #1{\vfil}}\right.\fi} +\else + \newcommand{\basicrbrace}[1]{% + \ifmmode\left\rbrace\vcenter{\vbox to #1{\vfil}}\right.\fi} +\fi +\expandafter\ifx\csname newenvironment\endcsname\relax% +\def\complexlbrace#1#2{% + \dimen0=#1% + \dimen2=#2% + \ifdim\dimen0<0pt + \ifmmode\vcenter{\hbox{$\left.\vbox to 1.44265\dimen2{\vfil}\right\lbrace% + \atop\vbox to -1.44265\dimen0{\vfil}$}}\fi + \else + \ifmmode\vcenter{\hbox{$\vbox to 1.44265\dimen0{\vfil}% + \atop\left.\vbox to 1.44265\dimen2{\vfil}\right\lbrace$}}\fi + \fi +}\else +\newcommand{\complexlbrace}[2]{% + \dimen0=#1% + \dimen2=#2% + \ifdim\dimen0<0pt + \ifmmode\vcenter{\hbox{$\left.\vbox to 1.44265\dimen2{\vfil}\right\lbrace% + \atop\vbox to -1.44265\dimen0{\vfil}$}}\fi + \else + \ifmmode\vcenter{\hbox{$\vbox to 1.44265\dimen0{\vfil}% + \atop\left.\vbox to 1.44265\dimen2{\vfil}\right\lbrace$}}\fi + \fi +}\fi +\expandafter\ifx\csname newenvironment\endcsname\relax% +\def\complexrbrace#1#2{% + \dimen0=#1% + \dimen2=#2% + \ifdim\dimen0<0pt + \ifmmode\vcenter{\hbox{$\left.\vbox to 1.44265\dimen2{\vfil}\right\rbrace% + \atop\vbox to -1.44265\dimen0{\vfil}$}}\fi + \else + \ifmmode\vcenter{\hbox{$\vbox to 1.44265\dimen0{\vfil}% + \atop\left.\vbox to 1.44265\dimen2{\vfil}\right\rbrace$}}\fi + \fi +}\else +\newcommand{\complexrbrace}[2]{% + \dimen0=#1% + \dimen2=#2% + \ifdim\dimen0<0pt + \ifmmode\vcenter{\hbox{$\left.\vbox to 1.44265\dimen2{\vfil}\right\rbrace% + \atop\vbox to -1.44265\dimen0{\vfil}$}}\fi + \else + \ifmmode\vcenter{\hbox{$\vbox to 1.44265\dimen0{\vfil}% + \atop\left.\vbox to 1.44265\dimen2{\vfil}\right\rbrace$}}\fi + \fi +}\fi +\endinput +%% +%% End of file `schemata.sty'. diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 6efc09702ea..35fd5acac58 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -366,7 +366,7 @@ my @TLP_working = qw( rtkinenc rtklage russ rviewport rvwrite ryethesis sa-tikz sageep sansmath sansmathaccent sapthesis sasnrdisplay sauerj sauterfonts savefnmark savesym savetrees - scale scalebar schemabloc schulschriften schwalbe-chess + scale scalebar schemabloc schemata schulschriften schwalbe-chess sciposter screenplay scrjrnl sdrt secdot section sectionbox sectsty selectp semantic semaphor diff --git a/Master/tlpkg/tlpsrc/collection-genericextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-genericextra.tlpsrc index c9a88715fc5..dd84447762e 100644 --- a/Master/tlpkg/tlpsrc/collection-genericextra.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-genericextra.tlpsrc @@ -34,6 +34,7 @@ depend navigator depend ofs depend pdf-trans depend plainpkg +depend schemata depend shade depend systeme depend tabto-generic diff --git a/Master/tlpkg/tlpsrc/schemata.tlpsrc b/Master/tlpkg/tlpsrc/schemata.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/Master/tlpkg/tlpsrc/schemata.tlpsrc |