diff options
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r-- | Master/texmf-dist/doc/latex/l3experimental/README | 79 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/l3experimental/xcoffins/commands-check.tex | 47 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/l3experimental/xcoffins/l3coffins.pdf | bin | 0 -> 582990 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/l3experimental/xcoffins/regression-test.tex | 218 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins-test.tex | 380 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins-tschichold-example-keyval.tex | 281 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins-tschichold-example.tex | 185 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf | bin | 0 -> 449736 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins003.pdf | bin | 0 -> 23383 bytes |
9 files changed, 1190 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/l3experimental/README b/Master/texmf-dist/doc/latex/l3experimental/README new file mode 100644 index 00000000000..2c78df594eb --- /dev/null +++ b/Master/texmf-dist/doc/latex/l3experimental/README @@ -0,0 +1,79 @@ + + Experimental LaTeX3 High-Level Concepts + ======================================= + + 2011/05/11 + + +WHERE TO GET IT +--------------- + +The files in this distribution represent a snapshot of selected files +from the Subversion (SVN) repository of the LaTeX3 Project. + +To obtain current versions of the files, visit +<http://www.latex-project.org/code.html> which contains further +instructions. + +OVERVIEW +-------- + +The l3experimental packages are a collection of experimental implementations +for aspects of the LaTeX3 kernel, dealing with higher-level ideas such as the +Designer Interface. Some of them work as stand alone packages, providing new +functionality, and can be used on top of LaTeX2e with no changes to the +existing kernel. Others go further, and redefine LaTeX2e internals to provide +better methods for managing certain constructs. The packages in the collection +are under active development and the interfaces may change. + +Currently included in the CTAN release of l3experimental are the following +bundles: + * xcoffins + +xcoffins +-------- + +A _coffin_ is a 'box with handles': a data structure which comprises +both a TeX box and associated information to allow controlled typesetting. +The xcoffins package provides a high-level interface for manipulating +coffins. This is supported by the lower-level l3coffins package, which +provides the data structure. + +xgalley +------- + +In LaTeX3 terminology a galley is a rectangular area which receives +text and other material filling it from top. The vertically extend of +a galley is normally not restricted: instead certain chunks are taken +off the top of an already partially filled galley to form columns or +similar areas on a page. This process is typically asynchronous but +there are ways to control or change its behaviour. The xgalley module +provides a mechanism for filling galleys and controlling the spacing, +hyphenation and justification within them. + +DISCUSSION +---------- + +Discussion concerning the approach, suggestions for improvements, +changes, additions, etc. should be addressed to the list LaTeX-L. + +You can subscribe to this list by sending mail to + + listserv@urz.uni-heidelberg.de + +with the body containing + + subscribe LATEX-L <Your-First-Name> <Your-Second-Name> + +BUGS +---- + +The issue tracker for LaTeX3 bugs is currently located at + + https://github.com/latex3/svn-mirror/issues + +Please report specific issues with LaTeX3 code there. More general +discussion should be directed to the LaTeX-L lists. + +--- Copyright 1998 -- 2011 + The LaTeX3 Project. All rights reserved --- diff --git a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/commands-check.tex b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/commands-check.tex new file mode 100644 index 00000000000..0d79e690945 --- /dev/null +++ b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/commands-check.tex @@ -0,0 +1,47 @@ +% +% Execute this TeX file with +% latex -interaction=batchmode commands-check +% +% The package loaded and the commands checked can be customised: +\providecommand\PKG{expl3} +\providecommand\CMDS{commands-check.cmds} + +\documentclass{minimal} +\usepackage{\PKG} +\makeatletter + +% "loop...if...then...repeat" from TeX by Topic: +\def\cmdchk@loop#1\cmdchk@repeat{\def\cmdchk@body{#1}\cmdchk@iterate} +\def\cmdchk@iterate{% + \let\cmdchk@next\relax + \cmdchk@body \let\cmdchk@next\cmdchk@iterate \fi \cmdchk@next} + +\let \@tempb \@empty +\newread \cmdchk@read +\openin \cmdchk@read \CMDS \relax + +\def\checkcmds{% + \begingroup + \catcode`\\=12 + \endlinechar=-1 + \loop + \read \cmdchk@read to \@tempa \relax + \ifx \@tempa \@empty + \closein \cmdchk@read + \else + \ifcsname \expandafter \@gobble \@tempa \endcsname + \else + \xdef \@tempb {\@tempb ^^J!>\space\space\space\space\@tempa} + \fi + \repeat + \endgroup + \ifx\@tempb\@empty\else + \nonstopmode + \errmessage{\@tempb^^J} + \batchmode + \fi +} +\makeatother +\begin{document} +\checkcmds +\end{document} diff --git a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/l3coffins.pdf b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/l3coffins.pdf Binary files differnew file mode 100644 index 00000000000..c7857f35ec0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/l3coffins.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/regression-test.tex b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/regression-test.tex new file mode 100644 index 00000000000..c7abb659a98 --- /dev/null +++ b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/regression-test.tex @@ -0,0 +1,218 @@ +% \iffalse meta-comment +% +% Copyright (C) 1992-1994 by David Carlisle, Frank Mittelbach. +% Copyright (C) 2008 LaTeX3 project +% All rights reserved. +% +% This file is part of the validate package. +% +% IMPORTANT NOTICE: +% +% You are not allowed to change this file. In case of error +% write to the email address mentioned in the file readme.val. +% +% \fi +% regression-test.tex + %%%%%%%%%%%%%%%%%%% + +% This file should not be used as a package or class file, +% it should be \input. + +% The scope of this \makeatletter will then be the rest of the +% document. Put TeX into scroll mode, and stop it showing the +% implementation details of macros in error messages. +\makeatletter +\scrollmode +\errorcontextlines=-1 + +% Use the same \showbox settings as 2.09, unless they are changed in +% the test file. (2e sets these to -1) +\showboxbreadth=5 +\showboxdepth=3 + +% Start the test, after the optional \documentclass (or \documentstyle) +% \begin{document} commands with \START. All lines in the .log file +% before this will be ignored. It also prints a docstrip-style +% character table in the .tlg file so the .tlg file can easily be +% checked for email translations. +% +\def\START{\typeout{START-TEST-LOG^^J^^J% + This is a generated file for the LaTeX (2e + expl3) validation system.% +^^J^^JDon't change this file in any respect.% +^^J^^J\CTable^^J}} + +\begingroup +\catcode`\^^\=0 +\catcode`\^^A=\catcode`\% +^^\catcode`^^\ =11 +^^\catcode`^^\%=11 +^^\catcode`^^\#=11 +^^\catcode`^^\~=11 +^^\endlinechar=`^^\^^J +^^\catcode`^^\\=11^^A +^^\gdef^^\CTable{ +%% \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 \~} +%% +}^^A +^^\endgroup{}% + +% The test should end with +% \END or \end{document} +% +\let\@@@end\@@end +%\let\@ED=\enddocument +\def\END{\typeout{END-TEST-LOG}\@@@end} +\let\@@end\END + + +% After the \START should come declarations of the format and style +% options being used. +% +\def\FORMAT#1{\typeout{Format: #1}% + \def\@tempa{#1}\ifx\@tempa\@EJ\else + \OMIT\@warning{Declared format #1,^^JActual format \@EJ}\TIMO\fi} + +% The old version got this information from everyjob, +% but that does not work with LaTeX2e as \everyjob is cleared. +\edef\@EJ{\fmtname <\fmtversion>} + +% Some author info: +\def\AUTHOR#1{\typeout{Author: #1}} +\def\ADDRESS#1{\typeout{Address: #1}} + +% Not all packages declare themselves to the log file, and we can not +% rely on TeX`s output as it includes full path names, and does not +% include version numbers etc. So for each package included give a +% declaration like: \PACKAGES{array v2.0d} +% +\def\STYLE#1{\typeout{Main Style: #1}}% +\def\STYLEOPTIONS#1{\typeout{Style Options: #1}} + + +% If The class or package is loaded with options, you may +% specify the options in the \CLASS (\PACKAGE) declaration. eg: +% +% \CLASS[german,a4page]{article v2.0 1994/01/02} +% \PACKAGE{ifthen v2.2 1993/11/12} +% \PACKAGE[dvips]{graphics v 3.8 1994/02/02} +% +\def\CLASS{\@ifnextchar[\OPTCLASS\XCLASS} +\def\OPTCLASS[#1]#2{% + \typeout{Main Class: #2^^J\@spaces Options: #1}} +\def\XCLASS#1{% + \typeout{Main Class: #1}} + +\def\PACKAGE{\@ifnextchar[\OPTPACKAGE\XPACKAGE} +\def\OPTPACKAGE[#1]#2{% + \typeout{Package: #2^^J\@spaces Options: #1}} +\def\XPACKAGE#1{% + \typeout{Package: #1}} + + +% LaTeX2e always uses NFSS2 so new test files need not use +% \FONTSELECTION but it is retained for compatibility for test files +% written for 209/NFSS1. +% +\def\FONTSELECTION#1{% + \OMIT\@@warning{\noexpand\FONTSELECTION obsolete.^^J% + LaTeX2e always uses NFSS2}\TIMO + \typeout{Font Selection: #1}} + + +% Surround commands which produce irrelevant lines in the .log file by +% \OMIT +% \TIMO +% +\def\OMIT{\typeout{OMIT}} +\def\TIMO{\typeout{TIMO}} + +% After the above declarations, and before the main tests, you may +% optionally `declare' all the commands in the `module' that you are +% about to test. These commands will be registered as defined, +% undefined or relaxed (ie \let to \relax). You may wish to declare +% commands not currently implemented, so that if they are added at a +% later stage, the test will fail, reminding someone to document the +% fact that the user interface has changed. So if you are testing +% array and tabular environments, you may wish do declare +% \extrarowheight. This is undefined in the curent latex, but would +% become defined if Mittelbach's array.sty was incorporated into +% latex.tex. +% +\def\declare@command#1{% + \ifx#1\@undefined\typeout{Undefined \string#1}\else + \ifx#1\relax\typeout{Relaxed \space\space\string#1}\else + \typeout{Defined \space\space\string#1}\fi\fi} + + +% To allow testing of possible changes, we allow extra code to be read +% in before the test starts. The necessary code should be placed in a +% file regression-test.cfg. +% +\OMIT +\InputIfFileExists{regression-test.cfg} + {\typeout{^^J***^^Jregression-test.cfg in operation^^J***^^J}}{} +\TIMO + +%%%%%%%%% + +% We are not starved for space in the log file output, so let's make it as +% verbose as is useful when reading the .diff's. +\newcount \gTESTint + +\newcommand \SEPARATOR {% + \typeout{% + ============================================================% + }% +} + +\newcommand \TEST [2] {% + \advance \gTESTint 1 + \SEPARATOR + \typeout{% + TEST \the\gTESTint: \detokenize{#1}}% + \SEPARATOR + \begingroup + \let \TYPE \typeout + #2% + \endgroup + \SEPARATOR \typeout{}% +} + +\newcommand \TESTEXP [2] {% + \advance \gTESTint 1 + \SEPARATOR + \typeout{% + TEST \the\gTESTint: \detokenize{#1}}% + \SEPARATOR + \begingroup + \let \TYPE \@firstofone + \typeout{#2}% + \endgroup + \SEPARATOR \typeout{}% +} + +\def \TRUE {\TYPE{TRUE}} +\def \FALSE {\TYPE{FALSE}} +\def \YES {\TYPE{YES}} +\def \NO {\TYPE{NO}} + +\def \NEWLINE {\TYPE{^^J}} + +\endinput + + + diff --git a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins-test.tex b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins-test.tex new file mode 100644 index 00000000000..1ede1770c08 --- /dev/null +++ b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins-test.tex @@ -0,0 +1,380 @@ + +\documentclass{article} + +\usepackage[T1]{fontenc} +\usepackage{times,multicol} +\usepackage{xcoffins} + +\usepackage{color} +\newcommand\cbox[2][.8]{{\setlength\fboxsep{0pt}\colorbox[gray]{#1}{#2}}} + +\newcommand\hrulebox [2]{\setbox#1\hbox to#2{{\scriptsize\itshape + \color{blue}\hrulefill #2\hrulefill}}} +\newcommand\vrulebox [2]{\setbox#1\vbox to#2{{\hsize 1pt\centering\scriptsize + \itshape\color{blue}\leaders\vrule\vfill + \hbox to0pt{\hss #2\hss}\leaders\vrule\vfill\par}}} + + +\addtolength\textwidth{10pt} + +\showboxdepth 9999 +\showboxbreadth 9999 +\tracingonline 1 + + +\scrollmode + +\newbox\zzz + + +\begin{document} + + +\title{Test file for coffins} +\author{FMi} +\maketitle + +First we add a few test coffins: +\begin{verbatim} + \newcoffin \aaa + \newcoffin \bbb + \newcoffin \ccc + \newcoffin \ddd +\end{verbatim} + \newcoffin \aaa + \newcoffin \bbb + \newcoffin \ccc + \newcoffin \ddd +and some boxes not set up as ordinary boxes (without extra poles): +\begin{verbatim} + \newbox \xxx + \newbox \yyy +\end{verbatim} + \newbox \xxx + \newbox \yyy + + +If a coffin receives data a set of ``natural'' default poles are automatically added. +\begin{verbatim} +\sbox\aaa{\fbox{\begin{tabular}[b]{l}123\\4\\5\end{tabular}}} +\showcoffindata \aaa +\end{verbatim} +\sbox\aaa{\fbox{\begin{tabular}[b]{l}123\\4\\5\end{tabular}}} +\showcoffindata \aaa + + +In contrast, boxes not declared as coffins have no poles defined. However, if +used as coffins at least the natural default poles can be used without +further problems, i.e.,they are changed to coffins automatically on use. +\begin{verbatim} +\sbox\xxx{\fbox{Some very looooonggg Caption Text}} +\showpoles \xxx +\end{verbatim} +\sbox\xxx{\fbox{Some very looooonggg Caption Text}} +\showcoffindata \xxx + + +Using \verb|\setvcoffin| instead of \verb|\sbox| gives us the codes with +\texttt{T} and \texttt{B}. Similar to \verb|\parbox| this command requires to +specify a target width of the box: +\begin{verbatim} +\setvcoffin \aaa {1.5cm} {\centering + \fbox{\begin{tabular}[b]{l}123\\4\\5\end{tabular}}} +\showcoffindata \aaa +\end{verbatim} +\setvcoffin \aaa {1.5cm} {\centering + \fbox{\begin{tabular}[b]{l}123\\4\\5\end{tabular}}} +\showcoffindata \aaa + +There are a dozen natural poles per box (some with multiple names); you can +move each of the poles to someplace else (either to an absolute position in +``box space'' or relative to its previous position). The coordinates can +refer to box dimensions (using \verb|\height|, \verb|\depth|, + and \verb|width|). First we move some pole and add one +additional one: +\begin{verbatim} +\setcoffinpole \aaa [h]{t}(\height -3pt) +\setcoffinpole \aaa [v]{l}(0pt) +\setcoffinpole \aaa [h]{mybottom}(\depth +2pt) +\showcoffindata \aaa +\end{verbatim} +\setcoffinpole \aaa [h]{t}(\height -3pt) +\setcoffinpole \aaa [v]{l}(0pt) +\setcoffinpole \aaa [h]{mybottom}(\depth +2pt) +\showcoffindata \aaa + + +More interesting in many cases is the relative move of poles. For this the +poles better exist or one gets an error and \texttt{0pt,0pt} is used: +\begin{verbatim} +\adjustcoffinpole \aaa [h]{H}(1pt) +\adjustcoffinpole \aaa [v]{l}(1pt) +\adjustcoffinpole \aaa [h]{undefined}(1pt) +\showcoffindata \aaa +\end{verbatim} +\adjustcoffinpole \aaa [h]{H}(1pt) +\adjustcoffinpole \aaa [v]{l}(1pt) +\adjustcoffinpole \aaa [h]{undefined}(1pt) +\showcoffindata \aaa + + + +\sbox \aaa {\fontsize{14.4}{5.5pc minus .5pc}\sffamily C\,H\,A\,P\,T\,E\,R + \fontsize{36}{40pt}\selectfont 2} + +\setvcoffin \bbb {11cm} + {\raggedleft\normalfont\fontsize{36}{38pt}\bfseries + The Structure of a \LaTeX{} Document} + +\setvcoffin \ccc {13cm} + {Some sample blind text to produce paragraph data after a heading. + Some sample blind text to produce paragraph data after a heading. + Some sample blind text to produce paragraph data after a heading. + Some sample blind text to produce paragraph data after a heading. + \endgraf + Some more sample blind text to produce paragraph data after a heading. + Some more sample blind text to produce paragraph data after a heading. +} + + +Suppose you have the following blocks of text: + +\bigskip + +\noindent\cbox{\usebox\aaa} + +\begin{multicols}{2} +\ttfamily\tiny +\ExplSyntaxOn + \noindent \coffin_print_pole_values:Nn \aaa \\ +\ExplSyntaxOff +\end{multicols} + +\medskip + +\noindent\cbox{\usebox\bbb} + +\medskip + +\noindent\cbox{\usebox\ccc} + +\bigskip + +produced by: +\begin{verbatim} +\sbox \aaa {\fontsize{14.4}{5.5pc minus .5pc}\sffamily + C\,H\,A\,P\,T\,E\,R + \fontsize{36}{40pt}\selectfont 2} +\setvcoffin \bbb {11cm} + {\raggedleft\normalfont\fontsize{36}{38pt}\bfseries + The Structure of a \LaTeX{} Document} +\setvcoffin \ccc {13cm} + {Some sample blind text to produce paragraph + data after a heading. ... } +\end{verbatim} + +How do you turn this into a heading of TLC2? + + +\newbox\RBi +\newbox\RBii +\newbox\RBiii + +\hrulebox\RBi{62pt} +\vrulebox\RBii{90pt} +\vrulebox\RBiii{60pt} + +\aligncoffins \bbb [T,r] \aaa [H,r](-62pt,60pt) +\aligncoffins \ccc[T,r] \bbb[B,r](62pt,90pt) + + \aligncoffins * \ccc[\bbb-T,\bbb-hc] \RBiii[b,hc](28pt,0pt) + \aligncoffins * \ccc[\bbb-b,\bbb-r] \RBi[H,r](0pt,-5pt) + \aligncoffins * \ccc[\bbb-B,\bbb-hc] \RBii[t,r](14pt,0pt) + +\newpage + +How do you best define/describe the following design? + +\medskip + +\noindent\cbox{\usebox\ccc} + + + + + + +\newpage \pagestyle{empty} + +\newcoffin \eee +\newcoffin \fff +\newcoffin \ggg + +\sbox \aaa {\small\scshape les vases communicants} +\sbox \bbb {\scshape comunicating} +\sbox \ccc {\fontsize{70pt}{60pt} \bfseries Ve\S els} +\sbox \ddd {\scshape andr\'e breton} +\setvcoffin \eee {4.7cm}{\noindent Translated by Mary Ann Caws \&\break + Geoffrey T.\,Harris, with notes \&\break + introduction by Mary Ann Caws\parfillskip=0pt\relax + } +\sbox \fff {University of Nebraska Press: Lincoln \& London} + +\setvcoffin \ggg {100mm}{\noindent\fbox{\parbox{97mm}{\leavevmode\vspace*{228mm}}}} + + +\aligncoffins \ccc [H,r] \ddd [H,r](0pt,-12pt) +\aligncoffins \ccc [t,l] \bbb (0pt,6pt) +\aligncoffins \ccc [H,r] \aaa [H,r](0pt,138pt) +\aligncoffins \eee [T,l] \ccc (0pt,22pc) +\aligncoffins \fff \eee [B,l](0pt,4pc) +\aligncoffins \ggg [b,l] \fff [B,l](54pt,11pc) + + +\vspace*{-2cm} +\noindent\cbox{\usebox\ggg} + + +\newpage + +\section{Rotation} + +\sbox \aaa {\tabcolsep0pt\begin{tabular}[c]{|c|}\hline a\\b\\cccccccccccccc\\d + \\e\\e\\e\\e\\\hline\end{tabular}} +\sbox \bbb {\fbox{A sample Text}} + +% just for the sake of it: +\adjustcoffinpole \aaa {T}(24pt) +\displaycoffinpoles \aaa {black} +x\cbox{\usebox \aaa }x +% +\rotatecoffin \aaa {45} +\displaycoffinhandle \aaa {b}{hc} {blue} +\displaycoffinhandle \aaa {b}{l} {blue} +\displaycoffinhandle \aaa {t}{r} {blue} +\displaycoffinhandle \aaa {vc}{r} {blue} +\displaycoffinhandle \aaa {vc}{l} {blue} +\quad +x\cbox{\usebox \aaa }x +\rotatecoffin \aaa {45} +\displaycoffinhandle \aaa {b}{r} {red} +\displaycoffinhandle \aaa {vc}{l} {red} +\quad +x\cbox{\usebox \aaa }x + +\vspace{1cm} + +\rotatecoffin \aaa {45} +\displaycoffinhandle \aaa {b}{l} {yellow} +% +x\cbox{\usebox \aaa }x +% + +\vspace{1cm} + +x\cbox{\usebox \bbb }x +% +\rotatecoffin \bbb {45} +\displaycoffinhandle \bbb {B}{hc} {yellow} +\quad +x\cbox{\usebox \bbb }x + + +\section{Rotation + alignment} + +\aligncoffins \aaa [b,l] \bbb[B,hc](30pt,0pt) +x\cbox{\usebox \aaa }x + + +After we have aligned a roated box with some other box we need to decide about +the bounding box of the new box. Right now this become the enclosing box and +we do not maintain information about the inner boxes. So when we rotate that +new box there seems to be unnecessary space in the enclosing bounding box, +even though that is correct if you think of the aligned box being unrotated. + +There is at least the possibility to refer to the handles of the inner boxes +as one can see by two of the green handles + +\medskip + +\rotatecoffin \aaa {45} +\displaycoffinhandle \aaa {vc}{hc} {green} +\displaycoffinhandle \aaa {H}{l} {green} +\displaycoffinhandle \aaa {\aaa-T}{\aaa-r} {green} +\displaycoffinhandle \aaa {\bbb-H}{\bbb-r} {green} +%\quad +x\cbox{\usebox \aaa }x + +We could do better, if we want to, by actually checking for max and +min of all inner bounding box corners and construct the result BB box from +that---but is it worth it? + +Perhaps it is! After all, the current implementation shows different results +depending on when you align boxes and when you rotate, e.g., aligning first +gives totally different bounding box results. + +\newpage + +Aligning first and then 135 + 45 rotation gives this: + +\sbox \aaa {\tabcolsep0pt\begin{tabular}[c]{|c|}\hline a\\b\\cccccccccccccc\\d + \\e\\e\\e\\e\\\hline\end{tabular}} +\sbox \bbb {\fbox{A sample Text}} +\rotatecoffin \bbb {90} + +\aligncoffins \aaa [b,l] \bbb[B,hc](-30pt,0pt) +x\cbox{\usebox \aaa }x +\qquad +\rotatecoffin \aaa {135} +x\cbox{\usebox \aaa }x +\qquad +\rotatecoffin \aaa {45} +x\cbox{\usebox \aaa }x + + + + +\newpage + +\section{Rotation by small amounts} + +\sbox \aaa {\tabcolsep0pt\begin{tabular}[c]{|c|}\hline a\\b\\ccccccccc\\d + \\e\\e\\e\\\hline\end{tabular}} + +\subsection{30 + 30 +30 } +\rotatecoffin \aaa {30} +x\cbox{\usebox \aaa }x +\rotatecoffin \aaa {30} +x\cbox{\usebox \aaa }x +\rotatecoffin \aaa {30} +x\cbox{\usebox \aaa }x + +\subsection{6 * 10 + 45 + 45 + 30} + +\rotatecoffin \aaa {10} +x\cbox{\usebox \aaa }x +\rotatecoffin \aaa {10} +x\cbox{\usebox \aaa }x +\rotatecoffin \aaa {10} +x\cbox{\usebox \aaa }x + +\vspace{1cm} +\rotatecoffin \aaa {10} +x\cbox{\usebox \aaa }x +\rotatecoffin \aaa {10} +x\cbox{\usebox \aaa }x +\rotatecoffin \aaa {10} +x\cbox{\usebox \aaa }x + +\vspace{1cm} +\rotatecoffin \aaa {45} +x\cbox{\usebox \aaa }x +\rotatecoffin \aaa {45} +x\cbox{\usebox \aaa }x +\rotatecoffin \aaa {30} +x\cbox{\usebox \aaa }x + + +\end{document} + + diff --git a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins-tschichold-example-keyval.tex b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins-tschichold-example-keyval.tex new file mode 100644 index 00000000000..e83c0b490b6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins-tschichold-example-keyval.tex @@ -0,0 +1,281 @@ + +\documentclass{article} + +\usepackage[a4paper,margin=5pt]{geometry} + +\usepackage[T1]{fontenc} +\usepackage{times,multicol,graphicx} +\usepackage{xcoffins} + +\usepackage{times,color} +\newcommand\cbox[2][.8]{{\setlength\fboxsep{0pt}\colorbox[gray]{#1}{#2}}} + +\ExplSyntaxOn + +\ExplSyntaxOff + + + +%\scrollmode + +\pagestyle{empty} + +\begin{document} + + \NewCoffin \result + \NewCoffin \aaa + \NewCoffin \bbb + \NewCoffin \ccc + \NewCoffin \ddd + \NewCoffin \eee + \NewCoffin \fff + \NewCoffin \rulei + \NewCoffin \ruleii + \NewCoffin \ruleiii + +\SetHorizontalCoffin \result {} +\SetHorizontalCoffin \aaa {\fontsize{52}{50}\sffamily\bfseries mitteilungen} +\SetHorizontalCoffin \bbb {\fontsize{52}{50}\sffamily\bfseries typographische} +\SetHorizontalCoffin \ccc {\fontsize{12}{10}\sffamily + \quad zeitschrift des bildungsverbandes der + deutschen buchdrucker leipzig + \textbullet{} oktoberheft 1925} +\SetHorizontalCoffin \ddd {\fontsize{28}{20}\sffamily sonderheft} +\SetVerticalCoffin \eee {180pt} + {\raggedleft\fontsize{31}{36}\sffamily\bfseries + elementare\\ + typographie} +\SetVerticalCoffin \fff {140pt} + {\raggedright \fontsize{13}{14}\sffamily\bfseries + natan altman \\ + otto baumberger \\ + herbert mayer \\ + max burchartz \\ + el lissitzky \\ + ladislaus moholy-nagy \\ + moln\'ar f.~farkas \\ + johannes molzahn \\ + kurt schwitters \\ + mart stam \\ + ivan tschichold} + +\RotateCoffin \bbb {90} +\RotateCoffin \ccc {270} + +\SetHorizontalCoffin \rulei {\color{red}\rule{6.5in}{1pc}} +\SetHorizontalCoffin \ruleii {\color{red}\rule{1pc}{23.5cm}} +\SetHorizontalCoffin \ruleiii{\color{black}\rule{10pt}{152pt}} + + +\JoinCoffins \result \aaa +\JoinCoffins [ + coffin1-hpole = \aaa-t , + coffin1-vpole = \aaa-r , + coffin2-hpole = b , + coffin2-vpole = r , + voffset = 2 mm , +] \result \rulei +\JoinCoffins [ + coffin1-hpole = \aaa-b , + coffin1-vpole = \aaa-l , + coffin2-hpole = B , + coffin2-vpole = r , + hoffset = 2 pt , +] \result \bbb +\JoinCoffins [ + coffin1-hpole = \bbb-t , + coffin1-vpole = \bbb-r , + coffin2-hpole = t , + coffin2-vpole = r , + hoffset = -2 mm , +] \result \ruleii +\JoinCoffins [ + coffin1-hpole = \aaa-B , + coffin1-vpole = \aaa-r , + coffin2-hpole = B , + coffin2-vpole = l , + hoffset = 66 pt , + voffset = 14 pc , +] \result \ccc +\JoinCoffins [ + coffin1-hpole = \bbb-l , + coffin1-vpole = \ccc-B , + coffin2-hpole = t , + coffin2-vpole = r , + hoffset = -2 mm , +] \result \fff +\JoinCoffins [ + coffin1-hpole = \fff-b , + coffin1-vpole = \fff-r , + coffin2-hpole = b , + coffin2-vpole = l , + hoffset = 2 mm , +] \result \ruleiii +\JoinCoffins [ + coffin1-hpole = \ccc-r , + coffin1-vpole = \fff-l , + coffin2-hpole = B , + coffin2-vpole = r , +] \result \eee +\JoinCoffins [ + coffin1-hpole = \eee-T , + coffin1-vpole = \eee-r , + coffin2-hpole = B , + coffin2-vpole = r , + voffset = 4 pc , +] \result \ddd + + +\vspace*{3cm} +\begin{center} + {\Large Title page of ``elementare typographie'' by Ivan Tschichold\par} + +\large +\vspace*{1cm} + + 1. first the scanned original from 1925 + +\vspace*{6mm} + + 2. then the recreated \TeX{} version from 2010 using coffins---not + attempting\\ to match the fonts and size but the structure + +\vspace*{6mm} + + 3. and finally the source code used. + + This document uses the new + implementation by Joseph in \texttt{l3coffins-new}. + +\end{center} + +\newpage + + +\begin{center} + \null + \fbox{\includegraphics[scale=.95]{elementare-typographie-title.jpg}} +\end{center} + +\newpage + +\TypesetCoffin \result + +\newpage + +\vspace*{3cm} +\begin{center} + {\Large Code used: \par} +\vspace*{1cm} + + +\begin{minipage}{14cm} +\begin{verbatim} +\SetHorizontalCoffin\result{} +\SetHorizontalCoffin \aaa {\fontsize{52}{50}\sffamily\bfseries mitteilungen} +\SetHorizontalCoffin \bbb {\fontsize{52}{50}\sffamily\bfseries typographische} +\SetHorizontalCoffin \ccc {\fontsize{12}{10}\sffamily + \quad zeitschrift des bildungsverbandes der + deutschen buchdrucker leipzig + \textbullet{} oktoberheft 1925} +\SetHorizontalCoffin \ddd {\fontsize{28}{20}\sffamily sonderheft} +\SetVerticalCoffin \eee {180pt} + {\raggedleft\fontsize{31}{36}\sffamily\bfseries + elementare\\ + typographie} +\SetVerticalCoffin \fff {140pt} + {\raggedright \fontsize{13}{14}\sffamily\bfseries + natan altman \\ + otto baumberger \\ + herbert mayer \\ + max burchartz \\ + el lissitzky \\ + ladislaus moholy-nagy \\ + moln\'ar f.~farkas \\ + jahannes molzahn \\ + kurt schwitters \\ + mart stam \\ + ivan tschichold} + +\RotateCoffin \bbb {90} +\RotateCoffin \ccc {270} + +\SetHorizontalCoffin \rulei {\color{red}\rule{6.5in}{1pc}} +\SetHorizontalCoffin \ruleii {\color{red}\rule{1pc}{23.5cm}} +\SetHorizontalCoffin \ruleiii{\color{black}\rule{10pt}{152pt}} + +\JoinCoffins \result \aaa +\JoinCoffins [ + coffin1-hpole = \aaa-t , + coffin1-vpole = \aaa-r , + coffin2-hpole = b , + coffin2-vpole = r , + voffset = 2 mm , +] \result \rulei +\JoinCoffins [ + coffin1-hpole = \aaa-b , + coffin1-vpole = \aaa-l , + coffin2-hpole = B , + coffin2-vpole = r , + hoffset = 2 pt , +] \result \bbb +\JoinCoffins [ + coffin1-hpole = \bbb-t , + coffin1-vpole = \bbb-r , + coffin2-hpole = t , + coffin2-vpole = r , + hoffset = -2 mm , +] \result \ruleii +\JoinCoffins [ + coffin1-hpole = \aaa-B , + coffin1-vpole = \aaa-r , + coffin2-hpole = B , + coffin2-vpole = l , + hoffset = 66 pt , + voffset = 14 pc , +] \result \ccc +\JoinCoffins [ + coffin1-hpole = \bbb-l , + coffin1-vpole = \ccc-B , + coffin2-hpole = t , + coffin2-vpole = r , + hoffset = -2 mm , +] \result \fff +\JoinCoffins [ + coffin1-hpole = \fff-b , + coffin1-vpole = \fff-r , + coffin2-hpole = b , + coffin2-vpole = l , + hoffset = 2 mm , +] \result \ruleiii +\JoinCoffins [ + coffin1-hpole = \ccc-r , + coffin1-vpole = \fff-l , + coffin2-hpole = B , + coffin2-vpole = r , +] \result \eee +\JoinCoffins [ + coffin1-hpole = \eee-T , + coffin1-vpole = \eee-r , + coffin2-hpole = B , + coffin2-vpole = r , + voffset = 4 pc , +] \result \ddd +\SetHorizontalCoffin\result{} +\SetHorizontalCoffin \aaa {\fontsize{52}{50}\sffamily\bfseries + mitteilungen} +\SetHorizontalCoffin \bbb {\fontsize{52}{50}\rotatebox{90}{\sffamily\bfseries + typographische}} + +\TypesetCoffin \result +\end{verbatim} + +This is not necessarily the final syntax but for now it does its job. For +example, flexible support for adding ornaments (lines, \ldots) is still +missing, so above the rules got added as predefined individual coffins. + +\end{minipage} +\end{center} + +\end{document} + diff --git a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins-tschichold-example.tex b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins-tschichold-example.tex new file mode 100644 index 00000000000..343c9d7e29f --- /dev/null +++ b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins-tschichold-example.tex @@ -0,0 +1,185 @@ + +\documentclass{article} + +\usepackage[a4paper,margin=5pt]{geometry} + +\usepackage[T1]{fontenc} +\usepackage{times,multicol,graphicx} +\usepackage{xcoffins} + +\usepackage{times,color} +\newcommand\cbox[2][.8]{{\setlength\fboxsep{0pt}\colorbox[gray]{#1}{#2}}} + +\ExplSyntaxOn + +\ExplSyntaxOff + + + +%\scrollmode + +\pagestyle{empty} + +\begin{document} + + \NewCoffin \result + \NewCoffin \aaa + \NewCoffin \bbb + \NewCoffin \ccc + \NewCoffin \ddd + \NewCoffin \eee + \NewCoffin \fff + \NewCoffin \rulei + \NewCoffin \ruleii + \NewCoffin \ruleiii + +\SetHorizontalCoffin \result {} +\SetHorizontalCoffin \aaa {\fontsize{52}{50}\sffamily\bfseries mitteilungen} +\SetHorizontalCoffin \bbb {\fontsize{52}{50}\sffamily\bfseries typographische} +\SetHorizontalCoffin \ccc {\fontsize{12}{10}\sffamily + \quad zeitschrift des bildungsverbandes der + deutschen buchdrucker leipzig + \textbullet{} oktoberheft 1925} +\SetHorizontalCoffin \ddd {\fontsize{28}{20}\sffamily sonderheft} +\SetVerticalCoffin \eee {180pt} + {\raggedleft\fontsize{31}{36}\sffamily\bfseries + elementare\\ + typographie} +\SetVerticalCoffin \fff {140pt} + {\raggedright \fontsize{13}{14}\sffamily\bfseries + natan altman \\ + otto baumberger \\ + herbert mayer \\ + max burchartz \\ + el lissitzky \\ + ladislaus moholy-nagy \\ + moln\'ar f.~farkas \\ + johannes molzahn \\ + kurt schwitters \\ + mart stam \\ + ivan tschichold} + +\RotateCoffin \bbb {90} +\RotateCoffin \ccc {270} + +\SetHorizontalCoffin \rulei {\color{red}\rule{6.5in}{1pc}} +\SetHorizontalCoffin \ruleii {\color{red}\rule{1pc}{23.5cm}} +\SetHorizontalCoffin \ruleiii{\color{black}\rule{10pt}{152pt}} + + +\JoinCoffins \result \aaa +\JoinCoffins \result[\aaa-t,\aaa-r] \rulei [b,r](0pt,2mm) +\JoinCoffins \result[\aaa-b,\aaa-l] \bbb [B,r](2pt,0pt) +\JoinCoffins \result[\bbb-t,\bbb-r] \ruleii [t,r](-2mm,0pt) +\JoinCoffins \result[\aaa-B,\aaa-r] \ccc [B,l](66pt,14pc) +\JoinCoffins \result[\bbb-l,\ccc-B] \fff [t,r](-2mm,0pt) +\JoinCoffins \result[\fff-b,\fff-r] \ruleiii [b,l](2mm,0pt) +\JoinCoffins \result[\ccc-r,\fff-l] \eee [B,r] +\JoinCoffins \result[\eee-T,\eee-r] \ddd [B,r](0pt,4pc) + + +\vspace*{3cm} +\begin{center} + {\Large Title page of ``elementare typographie'' by Ivan Tschichold\par} + +\large +\vspace*{1cm} + + 1. first the scanned original from 1925 + +\vspace*{6mm} + + 2. then the recreated \TeX{} version from 2010 using coffins---not + attempting\\ to match the fonts and size but the structure + +\vspace*{6mm} + + 3. and finally the source code used. + + This document uses the new + implementation by Joseph in \texttt{l3coffins-new}. + +\end{center} + +\newpage + + +\begin{center} + \null + \fbox{\includegraphics[scale=.95]{elementare-typographie-title.jpg}} +\end{center} + +\newpage + +\TypesetCoffin \result + +\newpage + +\vspace*{3cm} +\begin{center} + {\Large Code used: \par} +\vspace*{1cm} + + +\begin{minipage}{14cm} +\begin{verbatim} +\SetHorizontalCoffin\result{} +\SetHorizontalCoffin \aaa {\fontsize{52}{50}\sffamily\bfseries mitteilungen} +\SetHorizontalCoffin \bbb {\fontsize{52}{50}\sffamily\bfseries typographische} +\SetHorizontalCoffin \ccc {\fontsize{12}{10}\sffamily + \quad zeitschrift des bildungsverbandes der + deutschen buchdrucker leipzig + \textbullet{} oktoberheft 1925} +\SetHorizontalCoffin \ddd {\fontsize{28}{20}\sffamily sonderheft} +\SetVerticalCoffin \eee {180pt} + {\raggedleft\fontsize{31}{36}\sffamily\bfseries + elementare\\ + typographie} +\SetVerticalCoffin \fff {140pt} + {\raggedright \fontsize{13}{14}\sffamily\bfseries + natan altman \\ + otto baumberger \\ + herbert mayer \\ + max burchartz \\ + el lissitzky \\ + ladislaus moholy-nagy \\ + moln\'ar f.~farkas \\ + jahannes molzahn \\ + kurt schwitters \\ + mart stam \\ + ivan tschichold} + +\RotateCoffin \bbb {90} +\RotateCoffin \ccc {270} + +\SetHorizontalCoffin \rulei {\color{red}\rule{6.5in}{1pc}} +\SetHorizontalCoffin \ruleii {\color{red}\rule{1pc}{23.5cm}} +\SetHorizontalCoffin \ruleiii{\color{black}\rule{10pt}{152pt}} + +\JoinCoffins \result \aaa +\JoinCoffins \result[\aaa-t,\aaa-r] \rulei [b,r](0pt,2mm) +\JoinCoffins \result[\aaa-b,\aaa-l] \bbb [B,r](2pt,0pt) +\JoinCoffins \result[\bbb-t,\bbb-r] \ruleii [t,r](-2mm,0pt) +\JoinCoffins \result[\aaa-B,\aaa-r] \ccc [B,l](66pt,14pc) +\JoinCoffins \result[\bbb-l,\ccc-B] \fff [t,r](-2mm,0pt) +\JoinCoffins \result[\fff-b,\fff-r] \ruleiii [b,l](2mm,0pt) +\JoinCoffins \result[\ccc-r,\fff-l] \eee [B,r] +\JoinCoffins \result[\eee-T,\eee-r] \ddd [B,r](0pt,4pc) +\SetHorizontalCoffin\result{} +\SetHorizontalCoffin \aaa {\fontsize{52}{50}\sffamily\bfseries + mitteilungen} +\SetHorizontalCoffin \bbb {\fontsize{52}{50}\rotatebox{90}{\sffamily\bfseries + typographische}} + +\TypesetCoffin \result +\end{verbatim} + +This is not necessarily the final syntax but for now it does its job. For +example, flexible support for adding ornaments (lines, \ldots) is still +missing, so above the rules got added as predefined individual coffins. + +\end{minipage} +\end{center} + +\end{document} + diff --git a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf Binary files differnew file mode 100644 index 00000000000..d0a388eb31f --- /dev/null +++ b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins003.pdf b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins003.pdf Binary files differnew file mode 100644 index 00000000000..be88f878f05 --- /dev/null +++ b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins003.pdf |