Jak nakreslit rozvinutou krychli?

Stepan Kasal kasal at matsrv.math.cas.cz
Thu Jan 24 11:11:19 CET 2002


Ahoj lide!
Hans poslal reseni.  Trosicku jsem ho zmenil a vysledek pripojuji na konci.

Zmeny:
1) Pravy horni roh horniho ctverce (R) a pravy dolni roh dolniho ctverce (L)
je "vykousnuty," cary presne nedolehaji.  Je nutno za \hrulefill doplnit
znak "&".

2) Na konec prvnich dvou a poslednich dvou radku v poslednim \halignu jsem
pridal \hfil.  Nebylo tam nutne, ale pripada mi to tak cistsi.
(Opacny pristup by zase byl vynechat \hfil i v radku
	\def\ {\omit} ,
taky by to fungovalo.)

3) Makro \ssq provadelo vertikalni centrovani kazdeho pismene zvlast.
Pokud by tedy bylo pouzito napr. na "p" a "P," byly by tato dve pismena
skoro k nerozeznani.  Je nutne nejak zajistit pevne umisteni ucari,
bud pomoci \strut, nebo pomoci konstrukce \vbox to 0pt a pevneho umisteni.
(V pripojenem prikladu jsem pouzil \strut.)

4) V makru \sql mi pripada lepsi pouzit pouze \vbox a \hbox, neni duvod
pouzivat \halign.

5) Makro \sql jsem predefinoval tak, ze akceptuje devet obecne ruznych
parametru.

6) Jeste poznamka, mozna jen pro Hanse:
> %%% vi: set ts=4 sw=4:
zmenil jsem to na system best viewed with tab width = 8.

On Fri, 18 Jan 2002, Hans Ginzel <hans at kolej.mff.cuni.cz> wrote:
>     No sice to neni brozurka, nybrz hezky svazana knizka, ale je po
> ruce vzdy (http://math.feld.cvut.cz/olsak/tbn.html).

:-)

\halign je tam vysvetleny moc pekne, vcetne dvojitych ramecku,
vrele doporucuji!

> \bye

Stepan


%%% %%%%%% Plá¹» krychle %%%%%%% 
%%% Hans Ginzel <Hans at matfyz.cz>
%%% 19.1.2001
%%% pozmenil Stepan <Kasal at math.cas.cz>

\newdimen\unit
\unit=1cm

% small squere box without border
\def\ssq#1{\vbox to\unit{\vfil
	\hbox to\unit{\hfil \strut #1\hfil}
	\vfil}}

% line of three \ssq's
\def \sqli #1#2#3{\hbox{\ssq{#1}\vrule \ssq{#2}\vrule \ssq{#3}}}

% labels in squere box without border
\def \sql #1#2#3{%
	\vbox {
		\sqli #1%
		\hrule
		\sqli #2%
		\hrule
		\sqli #3%
	}%
}

%\unit=3cm \let\sql=\ssq	% debug

\def\sqlR {\sql {{R1}{R2}{R3}} {{R4}{R5}{R6}} {{R7}{R8}{R9}}}
\def\sqlT {\sql {{T1}{T2}{T3}} {{T4}{T5}{T6}} {{T7}{T8}{T9}}}
\def\sqlF {\sql {{F1}{F2}{F3}} {{F4}{F5}{F6}} {{F7}{F8}{F9}}}
\def\sqlM {\sql {{M1}{M2}{M3}} {{M4}{M5}{M6}} {{M7}{M8}{M9}}}
\def\sqlB {\sql {{B1}{B2}{B3}} {{B4}{B5}{B6}} {{B7}{B8}{B9}}}
\def\sqlL {\sql {{L1}{L2}{L3}} {{L4}{L5}{L6}} {{L7}{L8}{L9}}}

\def\ {\omit \hfil}

{\offinterlineskip \halign{&\vrule #\cr
	\ &	\ &	\hrulefill &	\hfil	\cr
	\ &	\ &	\sqlR &		\hfil	\cr
	\noalign{\hrule}
	\sqlT &	\sqlF &	\sqlM &		\sqlB &	\cr
	\noalign{\hrule}
	\ &	\ &	\sqlL &		\hfil	\cr
	\ &	\ &	\hrulefill &	\hfil	\cr
}}

\bye






More information about the csTeX mailing list