🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.dtp.tex
4 messages
4 total messages Started by Czeslaw Mierzejewski Sun, 14 Dec 1997 09:05
pytanie
#122
Author: Czeslaw Mierzejewski
Date: Sun, 14 Dec 1997 09:05
9 lines
1285 bytes
From: Czeslaw Mierzejewski <czeslaw@securities.com.pl>

Jak u licha rysuje sie dlugie linie miedzy dwoma punktami, ewentualnie
zakonczone strzalkami. Musze robic grafy typu "duzo malych pudeleczek"
i strzalki od pudelka do pudelka, niekoniecznie po sasiedzku.
Jakos nie moge sie wstrzelic.
-- 

                               czeslaw@daemon.securities.com.pl
Re: pytanie (długie!)
#123
Author: Wojciech Myszka
Date: Sun, 14 Dec 1997 19:50
267 lines
11758 bytes
%Czeslaw Mierzejewski 
%<Czeslaw.Mierzejewski@p43.f33.n480.z2.fidonet.org> 
%wrote in article <87vhws1ehr.fsf@daemon.securities.com.pl>...
%: Jak u licha rysuje sie dlugie linie miedzy dwoma punktami,
ewentualnie
%: zakonczone strzalkami. Musze robic grafy typu "duzo malych
pudeleczek"
%: i strzalki od pudelka do pudelka, niekoniecznie po sasiedzku.
%: Jakos nie moge sie wstrzelic.
%  ---
%  Polecenia \line i \vector. Dzialaja one w srodowisku
%  picture. Poniewaz "kreski" ukosne rysowane sa za pomoca
%  znakow - to nachylenia lini moga byc wybierane tylko z 
%  bardzo ograniczonego zakresu.
%
%  Wybacz, nie chce mi sie tego dokladnie opisywac, wiec 
%  pozwole sobie zamiescic dlugawy cytat z Rafajłowicz, Myszka
%  "<tytulu nie pamietam - i nie moge znalezc nigdzie 
%  ksiazki zeby przepisac>", PLJ (bedzie tez z polskimi literami...)

%  Wojtek

%%! PS Nie wiem czy to sie skompiluje :-)


\newcommand{\bs}{\char '134 }  % A backslash character for \tt font
\section{Otoczenie {\tt picture}}

Podstawowym otoczeniem, w~którym dokonuje się budowy rysunku jest
otoczenie {\tt picture}\index{otoczenie!{\tt picture}}. Wygląda ono
tak:\\[4mm]
\begin{tt}
\bs begin\lb picture\rb({\em x,y\/})({\em xo,yo\/})\\
 ...\\
\bs end\lb picture\rb\\
\end{tt}\\[4mm]
Znaczenie poszczególnych parametrów jest następujące:
\begin{description}
\item [{\em x, y\/}] --- wymiary obszaru zarezerwowanego na rysunek;
obszar (jego lewy, dolny róg) umieszczany jest tam, gdzie umieszczona
byłaby kolejna litera. Obrazuje to poniższy przykład: [...]

Wymiary podane są w~jednostkach określonych za pomocą komendy
{\tt\bs unitlength}, o~postaci np.:
\begin{verbatim}
\unitlength 2.3mm
\end{verbatim}
lub
\begin{verbatim}
\unitlength 10pt
\end{verbatim}
Zauważmy, że pozwala to na łatwe skalowanie rysunków utworzonych za
pomocą komend \LaTeX{}a. Gdy pominiemy komendę {\tt\bs
unitlength}\index{unitlength@{\tt\bs unitlength}}
przyjmowana jest jednostka {\tt 1pt}.

\item [{\em xo, yo\/}] --- liczby te określają współrzędne jakie
będzie
miał lewy, dolny róg obszaru rysunku. Gdy obie są równe zero mogą być
pominięte wraz z~otaczającymi je nawiasami.

\end{description}

Każdy punkt rysunku ma przyporządkowane dwie liczby (będące jego
współrzędnymi\index{współrzędne} w~kartezjańskim układzie
współrzędnych). Lewy, dolny róg rysunku ma współrzędne $(0,0)$ lub
({\em xo,yo\/}). Dokładniej na ten temat będziemy mówić
w~par.~{\bf ??}.

\section{Komenda {\tt\bs put}}

Podstawową komendą służącą do budowy rysunku jest komenda
{\tt\bs put}, o~postaci:\\[4mm]
\begin{tt}
\bs put({\em x,y\/})\lb{\em obiekt\/}\rb\\
\end{tt}\\[4mm]
\begin{description}
\item [{\em x,y\/}] --- dwie liczby oznaczające współrzędne punktu na
płaszczyźnie. Na rysunku~\ref{rys1} punkt $A$ ma współrzędne
(wyrażone w~cm) $(1.3,1.8)$, a~$B$ $(-0.5,3.2)$.
\item [{\em obiekt\/}] --- obiektem umieszczanym w~otoczeniu {\tt
picture} może być praktycznie wszystko (również otoczenie {\tt
picture}).\index{otoczenie!{\tt picture}} W~dalszej części rozdziału
przedstawimy w~jaki sposób umieszczać na rysunku różne obiekty.
\end{description}

\subsection{Pudełka}\label{pudelka}

Przez ,,pudełko''\index{pudełko} (ang.~{\em box\/}) rozumiemy obiekt
wstawiany komendą {\tt\bs makebox},\index{makebox@{\tt\bs makebox}}
{\tt\bs farmebox}\index{framebox@{\tt\bs framebox}} ({\tt\bs
dashbox}\index{dashbox@{\tt\bs dashbox}}).
Obiekt ten posiada określoną szerokość i~wyskokość; zazwyczaj
wewnątrz niego umieszczony jest tekst. Postać komend używana
w~otoczeniu {\tt picture}\index{otoczenie!{\tt picture}} jest nieco
inna niż postać tych samych komend używanych poza tym otoczeniem.
Jest ona następująca:\\[4mm]
\begin{tt}
\bs makebox({\em s,w\/})[{\em hv\/}]\lb{\em tekst\/}\rb\\
\bs framebox({\em s,w\/})[{\em hv\/}]\lb{\em tekst\/}\rb\\
\bs dashbox\lb{\em d\/}\rb({\em s,w\/})[{\em hv\/}]\lb{\em
tekst\/}\rb\\
\end{tt}\\[4mm]
Znaczenie poszczególnych parametrów jest następujące:
\begin{description}\label{makebox}
\item [{\em s,w\/}] --- szerokość i~wysokość pudełka podana
w~aktualnie
obowiązujących jednostkach; wymiary te nie muszą być większe od
umieszczonego w~pudełku tekstu; szczególny przypadek gdy $\mbox{\em
s\/}
= \mbox{\em w\/} = 0$ omówiony zostanie osobno.
\item [{\em h\/}] --- poziome pozycjonowanie tekstu w~pudełku; może
przyjmować następujące wartości
\begin{itemize}
\item [{\tt l}] tekst będzie przesunięty w~lewo (do lewej krawędzi
pudełka),
\item [{\tt c}] tekst będzie centrowany (gdy parametr {\tt h}
zostanie pominięty tekst będzie centrowany w~pudełku),
\item [{\tt r}] tekst będzie przesunięty do prawej krawędzi pudełka.
\end{itemize}
\item [{\em v\/}] --- pionowe pozycjonowanie tekstu; przyjmuje
następujące
wartości:
\begin{itemize}
\item [{\tt t}] tekst umieszczony przy górnej krawędzi pudełka,
\item [{\tt c}] tekst centrowany (umieszczony w~jednakowej odległości
od górnej i~dolnej krawędzi pudełka) --- wartość domniemana,
\item [{\tt b}] tekst umieszczony przy dolnej krawędzi.
\end{itemize}
\item [{\em d\/}] --- długość segmentu lini przerywanej.
\item [{\em tekst\/}] --- dowolny tekst, który ma być umieszczony
w~pudełku
(może być pominięty --- wówczas rysowane jest ,,puste'' pudełko).
\end{description}

W~przypadku gdy pominiemy {\em h\/} i~{\em v\/} możemy pominąć
również
nawiasy kwadratowe; tekst będzie centrowany w~poziomie i~w~pionie.
\begin{verbatim}
\begin{center}
\unitlength=1mm
\linethickness{0.4pt}
\begin{picture}(70,25)
\put(0,0){\framebox(29,10)[rc]{tekst 1}}
\put(40,0){\dashbox{1}(30,10)[ct]{tekst 2}}
\put(0,15){\framebox(30,10)[cc]{tekst 3}}
\put(40,15){\makebox(30,10)[lb]{tekst 4}}
\end{picture}
\end{center}
\end{verbatim}

Pudełko wstawiane jest w~punkcie o~współrzędnych {\em (x,y)\/}
wskazanym w~komendzie {\tt\bs put},\index{put@{\tt\bs put}}
umieszczając tam jego {\bf lewy, dolny} róg.


\subsection{Komenda {\tt line}}

Do rysowania linii prostych służy komenda {\tt\bs line}. Ponieważ
\LaTeX{} składa linie ze znaków (pojedyńczych ,,czcionek''), to
oferuje on jedynie ograniczony zestaw nachyleń (i długości linii).
Z~tego też powodu komenda służąca do rysowania linii prostych ma
niecodzienną postać. Linie nie są określane przez punkt
początkowy i~końcowy (mogło by to prowadzić do linii o~niedostępnym
nachyleniu), ale przez punkt początkowy, nachylenie
i~,,długość''.

Komenda jest dosyć prosta, ale wymaga dokładnego omówienia:\\[4mm]
\begin{tt}
\bs put({\em x,y\/})\lb\bs line({\em dx,dy\/})\lb{\em
length\/}\rb\rb\\
\end{tt}\\[4mm]
\begin{description}
\item [{\em x,y\/}] --- współrzędne punktu początkowego linii,
\item [{\em dx,dy\/}] --- dwie liczby określające nachylenie linii.
Ich
znaczenie opiszemy operacyjnie. Komenda {\tt\bs
put}\index{put@{\tt\bs put}} przemieściła nas
do punktu o~współrzędnych $(x,y)$; nazwijmy go punktem $p$. Przesuńmy
się o~$dx$ jednostek równolegle do osi {\boldmath $x$} i~o~$dy$
jednostek
równolegle do osi~{\boldmath $y$} (liczby dodatnie oznaczają
przesuwanie się w~lewo i~do góry). Nazwijmy punkt, w~którym się
znaleźliśmy $p_{0}$,
\item [{\em length\/}] --- określa długość linii zaczynającej się
w~punkcie
$p$ rysowanej w~kierunku $p_{0}$ mierzoną wzdłuż osi {\boldmath x}
(lub osi {\boldmath y} jeżeli linia jest pionowa). Minimalna długość
kartezjańska\footnote{To znaczy, długość mierzona w~sposób przyjęty
w~,,zwykłej'' geometrii.} linii (ukośnej) wynosi
ok.~3~mm~\mbox{(\unitlength 1mm\line(1,3){1.2})}.
\end{description}
Dodatkowo na liczby {\em dx\/} i~{\em dy\/} nałożone są następujące
ograniczenia:
\begin{itemize}
\item są to liczby całkowite z~zakresu od $-6$ do $6$,
\item są liczbami wzajemnie prostymi, tzn. nie ma żadnej trzeciej
liczby całkowitej (różnej od 1) przez którą obie się dzielą.
\end{itemize}
równolegle do osi~{\boldmath $y$} (liczby dodatnie oznaczają
przesuwanie się w~lewo i~do góry). Nazwijmy punkt, w~którym się
znaleźliśmy $p_{0}$,
\item [{\em length\/}] --- określa długość linii zaczynającej się
w~punkcie
$p$ rysowanej w~kierunku $p_{0}$ mierzoną wzdłuż osi {\boldmath x}
(lub osi {\boldmath y} jeżeli linia jest pionowa). Minimalna długość
kartezjańska\footnote{To znaczy, długość mierzona w~sposób przyjęty
w~,,zwykłej'' geometrii.} linii (ukośnej) wynosi
ok.~3~mm~\mbox{(\unitlength 1mm\line(1,3){1.2})}.
\end{description}
Dodatkowo na liczby {\em dx\/} i~{\em dy\/} nałożone są następujące
ograniczenia:
\begin{itemize}
\item są to liczby całkowite z~zakresu od $-6$ do $6$,
\item są liczbami wzajemnie prostymi, tzn. nie ma żadnej trzeciej
liczby całkowitej (różnej od 1) przez którą obie się dzielą.
\end{itemize}
równolegle do osi~{\boldmath $y$} (liczby dodatnie oznaczają
przesuwanie się w~lewo i~do góry). Nazwijmy punkt, w~którym się
znaleźliśmy $p_{0}$,
\item [{\em length\/}] --- określa długość linii zaczynającej się
w~punkcie
$p$ rysowanej w~kierunku $p_{0}$ mierzoną wzdłuż osi {\boldmath x}
(lub osi {\boldmath y} jeżeli linia jest pionowa). Minimalna długość
kartezjańska\footnote{To znaczy, długość mierzona w~sposób przyjęty
w~,,zwykłej'' geometrii.} linii (ukośnej) wynosi
ok.~3~mm~\mbox{(\unitlength 1mm\line(1,3){1.2})}.
\end{description}
Dodatkowo na liczby {\em dx\/} i~{\em dy\/} nałożone są następujące
ograniczenia:
\begin{itemize}
\item są to liczby całkowite z~zakresu od $-6$ do $6$,
\item są liczbami wzajemnie prostymi, tzn. nie ma żadnej trzeciej
liczby całkowitej (różnej od 1) przez którą obie się dzielą.
\end{itemize}

Dodatkowym ograniczeniem nakładanym przez \LaTeX{} jest mały wybór
grubości rysowanych linii ukośnych. Mogą być one rysowane w~jednej
z~dwu grubości ,,{\em thin\/}'' i~,,{\em thick\/}''. Ustalają ją dwie
komendy:
\begin{verbatim}
\thinlines
\thicklines
\end{verbatim}
(Standardowo rysowane linie mają grubość ,,{\em thin\/}''.)


\subsection{Komenda {\tt\bs vector}}


\begin{tt}
\bs put({\em x,y\/})\lb\bs vector({\em dx,dy\/})\lb{\em
len\/}\rb\rb\\
\end{tt}\\[4mm]
Komenda ta służy do rysowania strzałek --- wektorów (to taka linia
prosta zakończona grotem --- maleńkim trójkącikiem). Niestety
oferowane przez \LaTeX{} nachylenia wektorów są jeszcze mniej liczne
niż w~przypadku linii. Znaczenie parametrów jest identyczne jak
w~przypadku komendy {\tt\bs line}.\index{line@{\tt\bs line}}
Jedynie {\em dx\/} i~{\em dy\/} muszą
być liczbami z~zakresu od $-4$ do $4$. Wszystkie pozostałe
ograniczenia pozostają bez zmian. Rysunek~\ref{vector:rys}
przedstawia wszystkie możliwe do wygenerowania nachylenia wektorów.

Dodatkowo gdy {\em len} = 0 rysoway jest sam grot strzałki
(skierowany tak jak wskazują na to parametry {\em dx\/} i~{\em
dy\/}).
Re: pytanie
#124
Author: Waldemar Żurowski
Date: Mon, 15 Dec 1997 09:52
11 lines
1050 bytes
Czeslaw Mierzejewski <Czeslaw.Mierzejewski@p43.f33.n480.z2.fidonet.org> writes:

> Jak u licha rysuje sie dlugie linie miedzy dwoma punktami, ewentualnie
> zakonczone strzalkami. Musze robic grafy typu "duzo malych pudeleczek"
> i strzalki od pudelka do pudelka, niekoniecznie po sasiedzku.
> Jakos nie moge sie wstrzelic.

To potrafi pakiet PSTricks. Jest "z punktu" w teTeXu. Łącznie z
instrukcją.

Bilbo
Re: pytanie
#125
Author: Marek Szczerba
Date: Mon, 15 Dec 1997 12:54
19 lines
1326 bytes

On Sun, 14 Dec 1997, Czeslaw Mierzejewski wrote:

> Jak u licha rysuje sie dlugie linie miedzy dwoma punktami, ewentualnie
> zakonczone strzalkami. Musze robic grafy typu "duzo malych pudeleczek"
> i strzalki od pudelka do pudelka, niekoniecznie po sasiedzku.
> Jakos nie moge sie wstrzelic.

Jest makro do zdobycia w ka/zdym CTANie:

A package for typesetting a variety of graphs and diagrams with TeX. 
Xy-pic works with most formats (including LaTeX, AMS-LaTeX, AMS-TeX, and
plain TeX), in particular Xy-pic is provided as a LaTeX2e `supported
package'. Latest recorded version is 3.4. (21 May 1997) 

np: ftp://ftp.icm.edu.pl/pub/CTAN/macros/generic/diagrams/xypic/

Marek Szczerba
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads