%% bldelem3.txt %% Created by Laurence D. Finston (LDF) Wed Jun 20 13:16:56 CEST 2012 %% $Id: bldelem3.txt,v 1.9 2022/12/16 14:05:00 lfinsto1 Exp $ %% * (1) Copyright and License. %%%% This file is part of GNU 3DLDF, a package for three-dimensional drawing. %%%% Copyright (C) 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 The Free Software Foundation, Inc. %%%% GNU 3DLDF is free software; you can redistribute it and/or modify %%%% it under the terms of the GNU General Public License as published by %%%% the Free Software Foundation; either version 3 of the License, or %%%% (at your option) any later version. %%%% GNU 3DLDF is distributed in the hope that it will be useful, %%%% but WITHOUT ANY WARRANTY; without even the implied warranty of %%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %%%% GNU General Public License for more details. %%%% You should have received a copy of the GNU General Public License %%%% along with GNU 3DLDF; if not, write to the Free Software %%%% Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA %%%% GNU 3DLDF is a GNU package. %%%% It is part of the GNU Project of the %%%% Free Software Foundation %%%% and is published under the GNU General Public License. %%%% See the website http://www.gnu.org %%%% for more information. %%%% GNU 3DLDF is available for downloading from %%%% http://www.gnu.org/software/3dldf/LDF.html. %%%% Please send bug reports to Laurence.Finston@gmx.de. %%%% The mailing list help-3dldf@gnu.org is available for people to %%%% ask other users for help. %%%% The mailing list info-3dldf@gnu.org is for the maintainer of %%%% GNU 3DLDF to send announcements to users. %%%% To subscribe to these mailing lists, send an %%%% email with ``subscribe '' as the subject. %%%% The author can be contacted at: %%%% Laurence D. Finston %%%% c/o Free Software Foundation, Inc. %%%% 51 Franklin St, Fifth Floor %%%% Boston, MA 02110-1301 %%%% USA %%%% Laurence.Finston@gmx.de %% * (1) \input eplain \input epsf \nopagenumbers %% * (1) %% Copied from `rotate.tex'. Not sure where it comes from, but it's certainly %% Free Software. LDF 2012.06.15. % % These macros allow you to rotate or flip a \TeX\ box. Very useful for % sideways tables or upsidedown answers. % % To use, create a box containing the information you want to rotate. % (An hbox or vbox will do.) Now call \rotr\boxnum to rotate the % material and create a new box with the appropriate (flipped) dimensions. % \rotr rotates right, \rotl rotates left, \rotu turns upside down, and % \rotf flips. These boxes may contain other rotated boxes. % \newdimen\rotdimen \def\vspec#1{\special{ps:#1}}% passes #1 verbatim to the output \def\rotstart#1{\vspec{gsave currentpoint currentpoint translate #1 neg exch neg exch translate}}% #1 can be any origin-fixing transformation \def\rotfinish{\vspec{currentpoint grestore moveto}}% gets back in synch % % First, the rotation right. The reference point of the rotated box % is the lower right corner of the original box. % \def\rotr#1{\rotdimen=\ht#1\advance\rotdimen by\dp#1% \hbox to\rotdimen{\hskip\ht#1\vbox to\wd#1{\rotstart{90 rotate}% \box#1\vss}\hss}\rotfinish} % % Next, the rotation left. The reference point of the rotated box % is the upper left corner of the original box. % \def\rotl#1{\rotdimen=\ht#1\advance\rotdimen by\dp#1% \hbox to\rotdimen{\vbox to\wd#1{\vskip\wd#1\rotstart{270 rotate}% \box#1\vss}\hss}\rotfinish}% % % Upside down is simple. The reference point of the rotated box % is the upper right corner of the original box. (The box's height % should be the current font's xheight, \fontdimen5\font, % if you want that xheight to be at the baseline after rotation.) % \def\rotu#1{\rotdimen=\ht#1\advance\rotdimen by\dp#1% \hbox to\wd#1{\hskip\wd#1\vbox to\rotdimen{\vskip\rotdimen \rotstart{-1 dup scale}\box#1\vss}\hss}\rotfinish}% % % And flipped end for end is pretty ysae too. We retain the baseline. % \def\rotf#1{\hbox to\wd#1{\hskip\wd#1\rotstart{-1 1 scale}% \box#1\hss}\rotfinish}% %% * (1) %% !! START HERE: LDF 2012.06.18. Add code for generating output in Letter %% format (8.5 x 11in) in Makefile.am. Also, change Makefile in %% [...]/web/SRC_CODE/. Change models.html. Fix the formatting. \pageno=1 \def\DINAFOUR{DINAFOURPORTRAIT} \def\LETTER{LETTER} \ifx\FMT\DINAFOUR \message{Format is defined, DIN A4} \input fmtdina4.txt \else\ifx\FMT\LETTER \message{Format is defined, LETTER} \input fmt8511.txt \else \message{Format is not defined. Defining as A4 Portrait} \special{papersize=210mm, 297mm} \hsize=210mm \vsize=297mm \fi\fi %% Saved for reference. LDF 2012.06.18. %% Uncomment for A4 portrait %% \special{papersize=210mm, 297mm} %% \hsize=210mm %% \vsize=297mm %% Uncomment for A4 landscape. %% \special{papersize=297mm, 210mm} %% \hsize=297mm %% \vsize=210mm %% Uncomment for DIN A3 portrait. %% \special{papersize=297mm, 420mm} %% DIN A3 Portrait %% \vsize=420mm %% \hsize=297mm %% Uncomment for A3 landscape. %\special{papersize=420mm, 297mm} %% DIN A3 Landscape %\vsize=297mm %\hsize=420mm %% \advance\voffset by -1in %% \advance\voffset by 1.25cm %% \advance\hoffset by -1in %% \advance\hoffset by 1cm \parindent=0pt \font\small=cmr8 %% *** (3) %% Created: June 26, 2012 %% Last updated: July 4, 2012 \iftrue % \iffalse \pageno=-1 %\pageno=0 \vbox to \vsize{% \vskip.5cm \centerline{Building Elements 3} \vskip\baselineskip \centerline{Laurence D. Finston} \vskip\baselineskip \centerline{Created: June 26, 2012} \vskip\baselineskip \centerline{Last updated: July 4, 2012} \vskip2cm \iftrue % \iffalse {\small \hsize=.75\hsize \hskip1cm \vbox{\vskip2\baselineskip This document is part of GNU 3DLDF, a package for three-dimensional drawing. \vskip\baselineskip !Copyright {\copyright} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 The Free Software Foundation, Inc. \vskip\baselineskip GNU 3DLDF is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. \vskip\baselineskip GNU 3DLDF is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. \vskip\baselineskip You should have received a copy of the GNU General Public License along with GNU 3DLDF; if not, write to the Free Software Foundation, Inc.,\hfil\break 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA}} \fi \vss} \vfil\eject \fi \pageno=1 \parindent=0pt \def\epsfsize#1#2{#1} \font\small=cmr8 \font\smalltt=cmtt8 \font\large=cmr12 \font\largebx=cmbx12 \font\Large=cmr17 \font\huge=cmr17 scaled \magstep1 %% *** (3) \advance\hsize by 1cm \advance\vsize by -1in \headline={\hfil Building Elements 3\hfil !Copyright {\copyright} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 The Free Software Foundation, Inc.\hfil Author: Laurence D. Finston\hfil\kern1.5cm} \footline={\hfil \folio\hfil} \pageno=-1 \begingroup \advance\baselineskip by .5\baselineskip \advance\hsize by -3cm \singlecolumn \line{\hbox to .5\hsize{\hfil{\largebx Contents}\hfil}\hfil} \doublecolumns \readtocfile \vfil\eject \singlecolumn %% \pageno=1 \writetocentry{chapter}{Instructions} \line{\hbox to .5\hsize{\hfil{\largebx Instructions}\hfil}\hfil} %% %% Instructions here %% \vfil\eject \singlecolumn \endgroup \vfil\eject %% ** (2) Macros %% *** (3) xhairs \newbox\crosshairbox \begingroup \offinterlineskip \setbox0=\hbox{\vrule width 1cm height .125mm depth .125mm} \setbox1=\hbox{\hskip.5cm\vrule width .25mm height .5cm depth .5cm} \global\setbox\crosshairbox=\vbox to 0pt{\hbox to 0pt{\copy0\hss}\vskip-.5cm\hbox to 0pt{\copy1\hss}\vss} \endgroup %% The argument should be a number. If it's 0, the middle crosshairs are left out. Otherwise, %% they're printed. %% !! TODO: Refine this macro. For example, I could add arguments for exact placement. %% LDF 2012.06.17. \def\xhairs#1{\begingroup \offinterlineskip \hbox to 0pt{\vbox to 0pt{\vskip.5cm\copy\crosshairbox\vss}\hss}% \hbox to 0pt{\hskip\hsize\hskip-.75cm\vbox to 0pt{\vskip.5cm\copy\crosshairbox\vss}\hss}% \ifnum#1=0 \else \hbox to 0pt{\vbox to 0pt{\vskip.5\vsize\copy\crosshairbox\vss}\hss}% \hbox to 0pt{\hskip\hsize\hskip-.75cm\vbox to 0pt{\vskip.5\vsize\copy\crosshairbox\vss}\hss}% \fi \hbox to 0pt{\vbox to 0pt{\vskip\vsize\vskip.25cm\copy\crosshairbox\vss}\hss}% \hbox to 0pt{\hskip\hsize\hskip-.75cm\vbox to 0pt{\vskip\vsize\vskip.25cm\copy\crosshairbox\vss}\hss}% \endgroup} %% ** (2) Page 1 \vbox to \vsize{\xhairs{1}\writetocentry{chapter}{Pyramids with Regular Polygon Bases}% \writetocentry{section}{Non-Truncated}% \centerline{{\largebx Pyramids with Regular Polygon Bases}}\vskip\baselineskip \centerline{{\large Non-Truncated}}\vskip\baselineskip %\centerline{\epsffile{bldelem3.1}}\vskip\baselineskip \setbox0=\hbox{\epsffile{bldelem3.1001}}% \setbox1=\hbox to \wd0{\hfil\epsffile{bldelem3.3001}\hfil}% \setbox2=\vtop{\box0\vskip.5cm\box1}% \setbox3=\hbox{\epsffile{bldelem3.2001}}% \setbox4=\hbox to \wd3{\hfil\epsffile{bldelem3.4001}\hfil}% \setbox5=\vtop{\box3\vskip.5cm\box4}% \line{\box2\hskip-1cm\lower2cm\box5\hss}\vss} %% ** (2) Page 2 \vbox to \vsize{\xhairs{1}% \writetocentry{section}{Truncated}% \centerline{{\large Truncated Pyramids}}\vskip\baselineskip %\centerline{\epsffile{bldelem3.2}}\vskip\baselineskip \setbox0=\hbox{\epsffile{bldelem3.1002}}% \setbox1=\hbox to \wd0{\hfil\epsffile{bldelem3.3002}\hfil}% \setbox2=\vtop{\box0\vskip.5cm\box1}% \setbox3=\hbox{\epsffile{bldelem3.2002}}% \setbox4=\hbox to \wd3{\hfil\epsffile{bldelem3.4002}\hfil}% \setbox5=\vtop{\box3\vskip.5cm\box4}% \line{\hskip1cm\box2\hskip-1cm\lower2.5cm\box5\hss}\vss} %% ** (2) Page 3 \vbox to \vsize{\xhairs{1}% \writetocentry{section}{Obelisks}% \centerline{{\large Obelisks}}\vskip\baselineskip %\centerline{\epsffile{bldelem3.3}}\vskip\baselineskip \setbox0=\hbox{\epsffile{bldelem3.1003}}% \setbox1=\hbox to \wd0{\hfil\epsffile{bldelem3.3003}\hfil}% \setbox2=\vtop{\box0\vskip.5cm\box1}% \setbox3=\hbox{\epsffile{bldelem3.2003}}% \setbox4=\hbox to \wd3{\hfil\epsffile{bldelem3.4003}\hfil}% \setbox5=\vtop{\box3\vskip.5cm\box4}% \line{\box2\hskip-1cm\lower2.5cm\box5\hss}\vss} %% *** (3) End here \bye %% * (1) Local variables for Emacs. %% Local Variables: %% mode:TeX %% eval:(local-set-key [C-kp-add] 'vc-diff) %% eval:(local-set-key "\"" 'self-insert-command) %% eval:(outline-minor-mode t) %% eval:(read-abbrev-file abbrev-file-name) %% abbrev-mode:t %% eval:(set-register ?c "bldelem3.ldf") %% eval:(set-register ?, "bldelem3.lmc") %% eval:(set-register ?. "bldelem3.txt") %% outline-regexp:"%% [*\f]+" %% End: