diff options
author | Karl Berry <karl@freefriends.org> | 2009-05-19 18:23:55 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-05-19 18:23:55 +0000 |
commit | d5d90223f0e9217e546a1e53c78f73c1fddf1e87 (patch) | |
tree | 75f8120f34df071de492ca416b86623e3af154d3 /Master/texmf-dist/doc/generic/tex-virtual-academy-pl/tex | |
parent | 74ba81e08ea1a80aeba3b4bfbf7acc5f07853b0b (diff) |
move out of texmf-doc
git-svn-id: svn://tug.org/texlive/trunk@13240 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/generic/tex-virtual-academy-pl/tex')
5 files changed, 5475 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/tex/fermat.gif b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/tex/fermat.gif Binary files differnew file mode 100644 index 00000000000..b0b3dd7769b --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/tex/fermat.gif diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/tex/odsylacze.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/tex/odsylacze.html new file mode 100644 index 00000000000..e7b70c5b2c5 --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/tex/odsylacze.html @@ -0,0 +1,461 @@ +<html> +<head> +<meta http-equiv="content-type" content="text/html; charset=iso-8859-2"> +<meta http-equiv="Content-language" content="pl"> +<meta name="Author" content="Włodzimierz Macewicz"> +<meta name="Keywords" content="tex, odsyłacze, Wirtualna Akademia"> +</head> +<body bgcolor=#f0a0f0> + +<title> Odsyłacze </title> + + +<center> +<h2> Odsyłacze </h2> +<i></i><p> +<i></i><p> +autor: <i> <a href=mailto:ekotp@univ.gda.pl>Tomasz Przechlewski</a> </i> +</center> + +<hr> + +<h3> Wstęp </h3> + +Istnieją systemy takie jak <strong>LaTeX</strong> (autor: Leslie Lamport), +<strong>AmSTeX</strong> (Michael Spivak), <strong>ConTeXt</strong> (Hans Hagen) czy <strong>eplain</strong> +(Karl Berry) umożliwiające +automatyczne tworzenie odsyłaczy do różnych elementów dokumentu +(tabele, rysunki, rozdziały, punkty, itp.). Zawierają one także wiele +innych, gotowych do wykorzystania funkcji, których nie ma formacie +<strong>plain</strong>. Zadaniem tego tekstu nie jest ,,wyważanie drzwi do lasu'' +ale raczej pokazanie w jaki sposób takie ,,zaawansowane'' funkcje są +implementowane. Przy okazji okaże się, że wcale nie jest to takie +trudne jakby się mogło na początku wydawać.<p> + +Prezentowany zestaw makr, z racji swojej prostoty, może być bardzo +łatwo modyfikowany przez użytkownika w zależności od potrzeb. Jest to +podstawowa zaleta stosowania prostej TeX-niki a nie gotowych +formatów. Te ostatnie są skomplikowane, a ich przystosowanie do własnych +potrzeb jest z reguły bardzo trudne. + +<h3> Problem </h3> + +Odsyłacz to znak (liczba, cyfra, asteryks), umieszczony w składzie +przy wyrazie, zwrocie lub fragmencie tekstu, odsyłający do objaśnień +zawartych w innym miejscu tekstu. Czytelnik może być odesłany do +takich elementów tekstu jak: +tabela, rysunek, początek rozdziału, początek punktu, równanie +matematyczne, pozycja bibliograficzna, inna strona dokumentu itp. +Elementy te są z reguły identyfikowalne poprzez kolejny numer, +którym są oznaczone (może to być liczba naturalna, para liczb itp.). +Jako odsyłacza używamy wtedy <i>numeru</i> elementu do, którego +chcemy odesłać czytelnika. Przykłady użycia odsyłaczy to: +<em>patrz tabela 6, porównaj punkt 2.5, z równania (4.5) wynika itd</em>. +Jeżeli w tekście nie stosuje się odesłań, zbędne jest +numerowanie jakichkolwiek jego elementów (bo po co?).<p> + +Wstawianie do dokumentu TeX-owego numerów rozdziałów, punktów, tabel +czy równań oraz używanie tych numerów jako odsyłaczy jest złą +praktyką. Należy przyjąć zasadę, że na etapie tworzenia pliku +źródłowego <i>ostateczne</i> numery tych elementów i odsyłacze do +nich <i>są nam nie znane</i>. Elementy dokumentu winny być +numerowane automatycznie przez TeX-a <b>podczas jego kompilowania</b> +i w taki sam sposób (tzn. automatycznie) wstawiane odsyłacze. Tylko +postępując w ten sposób oszczędzimy sobie wiele czasu podczas pracy +nad kolejnymi wersjami dokumentu.<p> + +Ideę automatycznego wstawiania odsyłaczy przedstawimy na prostym +przykładzie systemu służącego do numerowania równań matematycznych. +Niech plik <code>fermat.tex</code> zawiera następujący kod: + +<blockquote><small><code> +Równanie~(\ref{eq:fermat}) na +s.~\pref{eq:fermat} przedstawia słynne +twierdzenie Fermata:<br> +$$\eqalignno{%<br> +x^n + y^n &= z^n&\elab{eq:fermat}}$$<br> +Historia dowodzenia (\ref{eq:fermat}) +ilustruje znaczenie dostatecznie +szerokich marginesów... +</small></code> +</blockquote> + +po kompilacji powinniśmy otrzymać następujący wynik: + + +<blockquote><small> +Równanie (1) na s. 1 przedstawia słynne twierdzenie Fermata: +<dd><img src=./fermat.gif width=300 height=25><br> +Historia dowodzenia (1) ilustruje znaczenie +dostatecznie szerokich marginesów... +</small> +</blockquote> + +Zauważmy, że odnośniki mogą wskazywać ,,w tył'' (do tekstu już +przeczytanego) jak i ,,w przód'' (do tekstu nie przeczytanego) +konieczne jest zatem dwukrotne kompilowanie dokumentu do ich +prawidłowego wyznaczenia (pierwsza kompilacja) i wstawienia. + +Użytkownik posługuje się w tym celu +trzema następującymi instrukcjami:<br> + +<dl> +<dt><code>\elab{etykieta}</code> +<dd>wstawia kolejny numer równania oraz definiuje +etykietę, której będziemy używać przy odwołaniach +do tego równania, + +<dt><code>\pref{etykieta}</code> +<dd>wstawia numer strony na której znajduje się równanie +oznakowane <i>etykietą</i>. + +<dt><code>\ref{etykieta}</code> +<dd>wstawia numer równania oznakowanego <i>etykietą</i>. +</dl> + +<h3> Rozwiązanie </h3> + +Ogólny schemat działania systemu jest następujący: +W czasie pierwszej kompilacji instrukcja <code>\elab</code> zwiększa wartość +licznika równań o 1, wstawia do dokumentu bieżącą wartość tego licznika +oraz przesyła do pliku dodatkowego trzy informacje: bieżący numer strony, +numer równania, etykietę. +Podczas drugiej kompilacji TeX sprawdza czy ten +plik dodatkowy istnieje i jeżeli tak to zostaje on wczytany. +Zawarte tam informacje są wykorzystywane przez instrukcje +<code>\ref</code> i <code>\pref</code> do prawidłowego wstawienia odsyłaczy.<p> + +Przejdźmy teraz do szczegółów. <p> + +Zamiast definować od razu komendę <code>\elab</code> zdefiniujemy najpierw +makro <code>\defreference</code>, mające dwa parametry, +z których pierwszy będzie etykietą dla odsyłacza, +a drugi zawierać będzie sam odsyłacz +<i>oraz</i> numer strony, na której +znajduje się odesłanie. +Na przykład jeżeli TeX na 44 stronie +dokumentu napotkał definicję +<code>\defreference{eq:fermat}{\the\eqnC}</code><sup><a href=#fn1>1</a></sup> +to jej wykonanie powinno spowodować wysłanie do pliku <code>fermat.crf</code> +następującej linii (zakładamy, że w chwili wykonywania +<code>\defreference</code> licznik <code>\eqnC</code> był równy 8): +<pre> +\crlab{eq:fermat}{{8}{44}} +</pre> +Co ma oznaczać, że odsyłaczem dla etykiety <code>eq:fermat</code> jest 8, a odesłanie +wskazuje na stronę 44. Niżej przedstawiona definicja wykonuje zadanie +zapisania odpowiedniej linii do pliku <code>fermat.crf</code>. +<pre> +1. \def\defreference#1#2{% +2. \edef\@tmp{\string\crlab +3. {#1}{{#2}{\noexpand\folio}}}% +4. \write\crfile\expandafter{\@tmp}} +</pre> +Makro to musi sobie poradzić z podstawowym problemem: zapisania +jednocześnie prawidłowego numeru odnośnika i prawidłowego numeru +strony na którą ten odnośnik wskazuje. Numer strony nie jest +znany <i>w momencie napotkania instrukcji</i> <code>\defreference</code>. Jest +on ustalany <i>w momencie wykonywania procedury wyjścia +(output routine)</i>. +Z drugiej strony odnośnik jest znany i winien być zapisany <i>natychmiast</i>. +Jeżeli jego rozwinięcie zostanie opóźnione to otrzymany numer +będzie bieżącym numerem odnośnika <i> w czasie wykonywania +tej procedury</i>.<p> + + +Problem ten jest rozwiązywany w liniach 2--4 makrodefinicji +<code>\defreference</code>. Linie 2--3 definiują makro <code>\@tmp</code>. Zamiast +<code>\def</code> użyto <code>\edef</code> (<i>expanded definition</i>) co gwarantuje, że +zawartość definicji <code>\@tmp</code> zostanie rozwinięta <i>natychmiast</i>. +Nie ma to znaczenia gdy piszemy <code>\defreference{foo}{7}</code>, ale +gdy odnośnik jest ustalany automatycznie, np. +<code>\defreference{foo}{\the\eqnC}</code>, to chodzi nam o bieżącą +wartość licznika a nie jego wartość w chwili wykonywania +<i>output routine</i>.<p> + +Sekwencja <code>\noexpand\folio</code> spowoduje, że komenda +<code>\folio</code> (określająca numer strony), nie zostanie rozwinięta przy +rozwijaniu zawartości definicji <code>\@tmp</code>. Zostanie to opóźnione do +czasu rozwijania komendy <code>\write</code> podczas wykonywania <i>output +routine</i>.<p> + +W linii 4 zawartość definicji <code>\@tmp</code> zostaje wysłana do pliku +dodatkowego za pomocą instrukcji <code>\write</code>. Konstrukcja: + +<pre> +\write\crfile\expandafter{\@tmp} +</pre> +jest prostym przykładem zastosowania instrukcji <code>\expandafter</code> +w celu zmiany porządku rozwinięcia dwóch żetonów (<i>tokens</i>) +<code>{</code> oraz <code>\@tmp</code>. Kiedy TeX napotka konstrukcję <code>\write\crfile</code> +oczekuje następnie żetonu <code>{</code> (por. <i>The TeXbook</i> str. 226), a potem +ciągu żetonów kończącego się <code>}</code>, który zapisuje do pliku. +Zapis do pliku jest <i>opóźniony</i>, co oznacza, że cały materiał +zawarty pomiędzy klamrami <code>{</code> i <code>}</code> <i>nie</i> jest rozwijany +w chwili napotkania instrukcji <code>\write</code> <i>ale</i> umieszczany +jako tzw. <i>whatsit</i> na głównej liście pionowej (<i>main +vertical list</i>) i rozwijany później przy wykonywaniu <i>output +routine</i> (por. <i>The TeXbook</i> str. 227).<p> + +Jednakże wykonując sekwencję instrukcji z linii 4 TeX napotyka +<code>\expandafter</code> zamiast <code>{</code>. Powoduje to przeczytanie +(czyli rozwinięcie) przez +TeX-a najpierw makra <code>\@tmp</code> a dopiero potem +umieszczenie przed rozwiniętym już makrem <code>\@tmp</code> żetonu <code>{</code>. +W efekcie na główną listę pionową, do późniejszego zapisu do pliku +<code>fermat.crf</code> wędruje sekwencja żetonów tworząca makro <code>\@tmp</code> a nie +żeton <code>\@tmp</code>, który jest od tej chwili gotowy do użycia w następnej +instrukcji <code>\defreference</code>. Gdyby na główną listę pionową trafiał +żeton <code>\@tmp</code> rozwijany podczas wykonywania <em>output routine</em> +to zawartość (<em>meaning</em>) wszystkich żetonów byłaby jednakowa +i równa zawartości ostatniego zdefiniowanego żetonu <code>\@tmp</code> --- rezultat +całkowicie różny od poprzedniego i raczej przez nas nie oczekiwany!<p> + +Makro <code>\elab</code> można zdefiniować następująco: +<pre> +5. \newcount\eqnC +6. \def\elab#1{\global\advance\eqnC 1 +7. \defreference{#1}{\the\eqnC}% +8. (\the\eqnC)} +</pre> +Po pierwszej kompilacji plik <code>fermat.crf</code> zawiera informacje o wszystkich +odsyłaczach, które wykorzystujemy przy powtórnej kompilacji dokumentu. +W tym celu najpierw zdefiniujemy komendę <code>\crlab</code>. Jak widać wyżej, +posiada ona dwa parametry, z których pierwszy zawiera etykietę odsyłacza +a drugi łącznie odsyłacz oraz numer strony, na której +odesłanie się znajduje. +Zarówno odsyłacz, jak i numer strony zawarte są +w parze nawiasów klamrowych. + +<pre> +9. \def\crlab#1#2{% +10. \global\expandafter +11. \def\csname #1\endcsname{#2}} +</pre> +Wykonanie makra <code>\crlab{eq:fermat}{{8}{44}}</code> +spowoduje utworzenie nowego makra o nazwie <code>eq:fermat</code> +rozwijającego się dokładnie do <code>{8}{44}</code>. +Wykorzystanie konstrukcji <code>\csname</code>...<code>\endcsname</code> umożliwia definiowanie +etykiet zawierających znaki o dowolnych ,,egzotycznych'' kodach, +np. <code>&</code>, <code>:</code>, <code>#</code>, itd. Wręcz wskazane jest umieszczenie takich znaków, +co zapobiegnie niezamierzonej zmianie znaczenia ,,normalnych'' makr +o przypadkowo identycznej nazwie. + +Teraz możemy zdefiniować instrukcję <code>\ref</code>. Makro to powinno +wstawiać odsyłacz a pomijać numer strony. Kopiujemy w tym celu +pomysłowe rozwiązanie tego problemu z formatu {\LaTeX}, w którym +znowu w roli głównej występuje instrukcja <code>\expandafter</code>: + +<pre> +12. \def\@car#1#2{#1} +13. \def\ref#1{% +14. \edef\@tempa{\csname #1\endcsname} +15. \expandafter\@car\@tempa} +</pre> +Makrodefinicja <code>\ref</code> ma jeden argument --- etykietę odnośnika. W linii +14 tworzona jest instrukcja <code>\@tempa</code>, której zawartością jest wykonanie +makrodefinicji o nazwie tożsamej z nazwą etykiety. W następnej linii +najpierw rozwijana jest instrukcja <code>\@tempa</code>, co oznacza rozwinięcie +jej zawartości do postaci +<code>{<em>odnośnik</em>}{<em>strona</em>}</code>. +Następnie rozwijane jest makro <code>\@car</code>, które z dwóch swoich +parametrów wstawia pierwszy a pomija drugi. Proste!<p> + +Skonstruowane w analogiczny sposób makro <code>\pref</code> wstawia +numer strony a pomija odnośnik: + +<pre> +16. \def\@cdr#1#2{#2} +17. \def\pref#1{% +18. \edef\@tempa{\csname #1\endcsname} +19. \expandafter\@cdr\@tempa} +</pre> +Teraz określmy wreszcie plik, z którego <em>pobierane</em> +będą odnośniki a następnie otwórzmy go do czytania: + +<pre> +20. \newread\crfile +21. \openin\crfile=\jobname.crf +22. \input \jobname.crf +</pre> +Powyższy kod ma jeden poważny minus. Mianowicie gdyby z jakichś +względów plik <code>fermat.crf</code> nie istniał (w pierwszej kompilacji +dokumentu na pewno go nie będzie) +to wtedy próba wykonania linii +<code>\input \jobname.crf</code> spowoduje błąd <code>I can't find file fermat.crf</code>. +Lepiej zabezpieczyć się na tę okoliczność używając komendy <code>\ifeof</code>. Tak +więc w powyższym fragmencie kodu ostatnią linię należy zastąpić przez: + +<pre> +22. \ifeof\crfile \else +23. \input \jobname.crf \fi +</pre> +Wreszcie pozostaje do zdefiniowania plik do którego będą <i>wysyłane</i> +informacje o odesłaniach: + +<pre> +24. \newwrite\crfile +25. \openout\crfile=\jobname.crf +</pre> +I te 25 linii kodu pokazane wyżej wystarczą dla TeX-a do prawidłowego +wstawienia odpowiednich odsyłaczy. +Wystarczą TeX-owi ale nie TeX-owcowi, który z pewnością popełniać +będzie błędy. Dlatego powyższe makra należy rozbudować o obsługę +błędów i ostrzeżeń. W szczególności należy zadbać o ostrzeganie +użytkownika o: + +<ul> +<li>odwołaniu się do niezdefiniowanej etykiety. W tym przypadku system +powinien wysłać komunikat do pliku <code>.log</code> +i na ekran a także +oznakować brakujące odnośniki w składanym dokumencie, +<li>dwukrotnym (lub wielokrotnym) zdefiniowanie tej samej etykiety. +W tym przypadku system powinien wysłać odpowiedni +komunikat do pliku <code>.log</code> i na ekran. +</ul> +Ponieważ w przedstawionych wyżej makrach używamy znaku <code>@</code> +w nazwach komend, powinny zostać one zawarte pomiędzy liniami: + +<pre> +\catcode`@=11 +... +\catcode`@=12 +</pre> + +<h3> Makra </h3> + +Prezentowany poniżej zestaw makr jest dostępny na komputerze +<code>ftp.gust.org.pl</code> w katalogu <code>TeX/GUST/bulletin/05</code> +--- plik <code>tp-crf.tex</code>. W porównaniu do +przedstawionych już makrodefinicji dodano następujące ważniejsze komendy: + +<dl> +<dt><code>\nocrwarns</code> +<dd>Ostrzeżenia o błędach nie są wyświetlane na ekranie +(przydatne na wstępnym etapie pracy nad dokumentem), + +<dt><code>\nocrfile</code> +<dd>Dodatkowy plik nie jest odtwarzany, + +<dt><code>\makecrfile</code> +<dd>Dodatkowy plik jest tworzony, + +<dt><code>\crstatistics</code> +<dd>Wyświetlenie sumarycznej informacji o użytych odsyłaczach. +Przedefiniowana komenda <code>\bye</code> wywołuje to makro. +</dl> + + +<pre> +%% -------------------------------- +%% Cross-reference generic macros +%% Tomasz Przechlewski +%% Date: 02.01.1995 +%% -------------------------------- +\catcode`@=11 +\def\@crwrn#1{\if@crwrns\immediate +\write16{#1}\fi} +\def\@markmissingcr{{\bf ??}\@marginmarker} +\def\@marginmarker{\vadjust{\vbox to0pt{% +\kern-.77\normalbaselineskip +\hbox{{\it\kern\hsize\kern15pt?}}\vss}}} + +\newif\if@crwrns +\global\@crwrnstrue % default +\def\nocrfile{\global\@crfilefalse} +\def\nocrwrns{\global\@crwrnsfalse} + +\def\@car#1#2{#1} +\def\@cdr#1#2{#2} + +\long\def\@ifundefined#1#2#3{% + \expandafter\ifx\csname + #1\endcsname\relax#2\else#3\fi} + +\def\namedef#1{\expandafter + \def\csname #1\endcsname} + +\def\newlabel#1#2{\@ifundefined{#1}{}% +{\@crwrn{-> WARNING: multiple label #1}}% +\global\namedef{#1}{#2}} +\newread\crfile + +\openin\crfile=\jobname.crf +\ifeof\crfile + \@crwrn{-> WARNING: CR-FILE UNDEFINED!!} + \else + \@crwrn{READING REFS FROM \jobname.crf} + \input \jobname.crf +\fi +\closein\crfile + +\def\makecrfile{% + \openout\crfile=\jobname.crf} +\def\nocrfile{\@crwrn{-> WARNING: + CR-FILE not created} + \def\crfile{-1}} + +\def\ref#1{\@nextcrf\@ifundefined{#1}{% + \@markmissingcr + \@crwrn{undefined cr -> \string#1}}% + {\edef\@tempa{\csname #1\endcsname} + \expandafter \@car\@tempa}} + +\def\pageref#1{\@nextpcrf + \@ifundefined{#1}{\@markmissingcr + \@crwrn{undefined cr -> \string#1}}% + {\edef\@tempa{\csname #1\endcsname}% + \expandafter \@cdr\@tempa}} + +\def\defreference#1#2{\@nextdrf% + \edef\save{\string\newlabel{#1}% + {{#2}{\noexpand\folio}}}% + \write\crfile\expandafter{\save}} + +\newcount\@crfC\newcount\@pcrfC +\newcount\@dcrfC +\def\@nextdrf{\global\advance\@dcrfC1} +\def\@nextcrf{\global\advance\@crfC1} +\def\@nextpcrf{\global\advance\@pcrfC1} +\def\crstatistics{% +\@crwrn{==============================} +\@crwrn{= REFERENCE STATISTICS =======} +\@crwrn{= refs defined.... \the\@dcrfC} +\@crwrn{= refs used....... \the\@crfC} +\@crwrn{= page refs used.. \the\@pcrfC} +\@crwrn{==============================}} +\outer\def\bye{\crstatistics\end} +\catcode`@=12 +\endinput +</pre> + +<h3> Bibliografia</h3> + +<ol> +<li> +Knuth D. E., <i>The TeXbook</i>, Addison-Weley, Reading MA: 1986. + +<li> +Salomon D., Macros for Indexing and Table-of Contents Preparation, +<code><i>TUGboat</i></code>, 10(3): s. 394--400. +</ol> + + +<h3>Przypisy</h3> + +<hr align=left width=20%> +<sup><a name=fn1><b>1</b></a></sup>Występujące w poniższym opisie nazwy i +konstrukcje prędzej lub później zostaną wyjaśnione. + + + +<hr> +<a href=../index.html><img src="../gify/lew-7vs.gif" hspace=10 border=0 align=left></a> +<a href=http://www.gumbeers.elka.pg.gda.pl/WA><img src="../gify/wa.gif" hspace=10 align=left></a> +<a href=mailto:W.Macewicz@ia.pw.edu.pl><img src="../gify/mail.gif" hspace=10 align=left></a> +Zredagował</br> +<a href=http://home.elka.pw.edu.pl/~macewicz/index.html>Włodzimierz Macewicz</a><br clear=all> +<hr> +Ostatnie zmiany: 07.04.2001 (StaW). +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/tex/tex.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/tex/tex.html new file mode 100644 index 00000000000..e796cdf7eee --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/tex/tex.html @@ -0,0 +1,76 @@ +<html> +<head> +<meta http-equiv="content-type" content="text/html; charset=iso-8859-2"> +<meta http-equiv="Content-language" content="pl"> +<meta name="Author" content="Włodzimierz Macewicz"> +<meta name="Keywords" content="tex, Wirtualna Akademia"> +<title> TeX jako taki </title> +</head> +<body bgcolor=#f0a0f0> + +<img src="../gify/tex.gif" width=540 height=135><p> + +Dział poświęcony dla ,,ortodoksów'' którzy najchętniej programują +w ,,gołym TeX-u'' (tak naprawdę w plainie). Nie jest to bynajmniej ironia z mojej strony; moje +kilkunastoletnie doświadczenie w dziedzinie programowania i używania +różnego rodzaju pakietów oprogramowania mówi mi że <b>czym prostsze +narzędzie tym lepsze rezultaty</b>, czym mniej warstw tym mniej błędów, +oczywiście pod warunkiem +perfekcyjnego opanowania narzędzi. Lepiej używać prostego +i bezbłędnego programu w 99% niż rozbudowanego w 10% (z tego że +jest rozbudowane wynika że posiada błędy i nie da się go bardziej wykorzystać). +<p> +<i></i><p> +<center> +<b>Jedynym bezbłędnym programem jest TeX</b> +</center> + +<p>Należy jednak pamiętać, że <tt>plain</tt> jest stosunkowo ubogim +zbiorem makroinstrukcji i nie zapewnia automatycznej obsługi wielu typowych sytuacji. Użytkownik ma dwie możliwości: stworzyć własną bibliotekę makroinstrukcji +lub ingerować w skład we wszystkich miejscach, których wygląd ma być odmienny. Działanie +wg. drugiego sposobu niewiele różni się od rzeźbieniem rylcem po glinianej tabliczce. Wynik pracy może być perfekcyjny (klasycznym tego przykładem jest książka +,,The TeXbook''), ale tak złożony dokument jest niepodatny zarówno na zmianę treści (powoduje to zmianę wyglądu) jak i na zmianę wymagań składu (np. szerokość kolumny).</p> + +<p>Komputery zostały wymyślone po to, aby ułatwić pracę ludziom -- ich czas pracy +jest znacznie tańszy niż czas pracy człowieka. Możemy więc oczekiwać, że zastosowanie +komputerów przyniesie nie tylko zmianę technologiczną (rylec na klawiaturę i +tabliczka gliniana na zapis magnetyczny), ale i umożliwi nam +automatyczne tworzenie pewnych części dokumentu; np. spisy treści (tabel, rysunków), +skorowidze, spisy bibliografii, uzgadnianie odwołań do wzorów, pozycji bibliograficznych +itp. itd.</p> + +<p>Często zachodzi konieczność zmiany parametrów składu (w momencie tworzenia +dokumentów możemy nie znać wymagań redakcji) lub jakiś fragment tekstu pochodzi +z innego dokumentu. W tej sytuacji wygodnym jest nadanie dokumentowi +struktury logicznej i oddzielenie opisu struktury dokumentu od definicji wyglądu +jego składowych. Efekt ten możemy osiągnąć oznakowując dokument znacznikami logicznymi, +a nie poleceniami składu (polecenia składu są przypisane znacznikom logicznym +w innym miejscu). Mamy do wyboru: stworzenie własnej biblioteki lub użycie +jednej z trzech znanych bibliotek makroinstrukcji pozwalających na osiągnięcie tej tezy: +texinfo -- przygotowanie dokumentacji technicznej, <a href="../latex2e/latex2e.html">LaTeX2e</a> +oraz <a href="../context/context.html">ConTeXt</a> do dowolnego typu dokumentów.</p> + +<i></i><p> +<i></i><p> +<hr> +<ul> +<img src="../gify/artykul.gif"> <a href=odsylacze.html><code>Odsyłacze</code></a> +- <i>T. Przechlewski</i> <small>(10.10.1995)</small><br> +<img src="../gify/artykul.gif"> <a href="../podstawy/tex.html">Podstawy Systemu TeX</a> +- <i>M. Ryćko</i> <small>(1994)</small><br> +<img src="../gify/artykul.gif"> <a href="tryby.html">Tryby pracy TeX-a</a> +- <i>B. Lichoński</i> <small>(27.06.97)</small><br> +<img src="../gify/artykul.gif"> <a href="tex_key.html">Lista polecen wbudowanych (primitives) TeX-a i PDFTeX-a</a> +- <i>W. Macewicz</i> <small>(25.08.03)</small><br> +</ul> + + +<hr> +<a href=../index.html><img src="../gify/lew-7vs.gif" hspace=10 border=0 align=left></a> +<a href=mailto:W.Macewicz@ia.pw.edu.pl><img src="../gify/mail.gif" hspace=10></a> +<a href=http://www.ia.pw.edu.pl/~wujek/index.html>Włodzimierz Macewicz</a> +<hr><br> +<!--#config timefmt="%y-%m-%d" --> +Ostatnie zmiany: 12.09.2004. +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/tex/tex_key.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/tex/tex_key.html new file mode 100644 index 00000000000..91065b734e6 --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/tex/tex_key.html @@ -0,0 +1,4444 @@ +<?xml version="1.0" encoding="iso-8859-2"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" + "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> +<head> + <meta http-equiv="content-type" content="text/html; charset=iso-8859-2"/> +<meta http-equiv="Content-language" content="pl"/> +<meta name="Author" content="Włodzimierz Macewicz"/> +<meta name="Keywords" content="tex, polecenia wbudowane, polecenia pierwotne, primitive control sequences, Wirtualna Akademia"/> + <title>Lista poleceń wbudowanych (primitive control sequences) w program TeX, eTeX i PDFTeX</title> + <style type="text/css"> + .new {color: red;} + .old {color: red;} + .nowrap { + white-space: nowrap} + .ttt { + white-space: nowrap; + font-family: serif; + color: navy;} + body {background-color: #a0f0a0;} + i {color: navy; + font-family: serif; + } + code, tt, pre {color: navy; + font-family: serif; + } + img {border: 0ex 0ex 0ex 0ex} + span.parametr{font-style: italic; + font-family: monospace;} + div.gora_plus {padding: 2ex 0ex 0ex 0ex} + h1 { + left-margin: 0pt} + h2 { + left-margin: 0pt} + h3 { + left-margin: 0pt} + h4 { + left-margin: 0pt} + h5 { + left-margin: 0pt} + h6 { + left-margin: 0pt} + p.center { + text-align: center; + text-indent: 0em; + margin-top: 0ex; + margin-bottom: 0ex} + ul { + margin-top: 0ex; + margin-bottom: 0ex} + table { + margin-top: 1ex; + margin-bottom: 1ex} + p { + text-align: justify; + text-indent: 1.5em; + margin-top: 0.2ex; + margin-bottom: 0ex} + pre { + text-indent: 0em; + margin-top: 0.2ex; + margin-bottom: 0ex} + p.noindent { + text-align: justify; + text-indent: 0em; + margin-top: 0ex; + margin-bottom: 0ex} + </style> +</head> +<body> +<h2>Lista poleceń wbudowanych (<i>primitive control sequences</i>) w program <a href="#s-tex">TeX</a>, +<a href="#s-etex">eTeX</a> i <a href="#s-pdftex">PDFTeX</a> (PDFeTeX)</h2> + +<p>Poniżej przedstawiam pełną listę poleceń (w porządku alfabetycznym) programów TeX, eTeX i pdfTeX wraz z krótkim +objaśnieniem. Moim celem nie było zrobienie pełnego i wyczerpującego opisu ich działania, do +tego służy książka ,,The TeX book'' Donalda E. Knutha, a jedynie podanie +informacji ,,z czym to się je'' (i zdaję sobie sprawę z tego, że niektóre +wyjaśnienia przypominają wyrocznię Pyti).</p> + +<p> +Niestety nie udało mi się wyjaśnić w sposób sensowny kilku poleceń (miejsca +oznaczone ???). Jeżeli +Szanowny Czytelniku, chciałbyś podzielić się swoją wiedzą i podać krótkie +wyjaśnienie brakującego hasła, uściślić lub poprawić istniejące będę wdzięczny za pomoc.</p> + +<p>Serdecznie dziękuję P.Strzelczykowi za nadesłanie wyjaśnień kilkudziesięciu +bardziej skomplikowanych oraz rzadziej używanych poleceń.</p> + +<h4>Wyjaśnienie notacji</h4> + +<table border="1"> +<tr><td class="ttt" valign="top"> +<a id="kod_znaku"><i>kod_znaku</i></a></td><td> + liczba z przedziału 0 -- 255, liczby w TeX-u można specyfikować na wiele + sposobów: + <ul> + <li> liczba w zapisie dziesiętnym (np. 123)</li> + <li> <tt>"XX</tt> liczba w zapisie szesnastkowym, gdzie <tt>X</tt> + jest cyfrą w szesnastkowym układzie pozycyjnym (wartości powyżej 9 + <b>muszą</b> być określone wielkimi literami alfabetu (A-F))</li> + <li><tt>`x</tt> podanie znaku (znak poprzedzony lewym + apostrofem); należy to traktować jak liczbę odpowiadającą wartości + kodu). + Uwaga! znaki podlegające przekodowaniu + przez mechanizm <tt>TCX</tt> zmienią swój kod (nie będzie to + znak zgodny z kodowaniem wejściowym; znaki specjalne poprzedzamy + <tt>\</tt>, np.: <tt>\char`\#</tt>)</li> + <li><tt>'ooo</tt> liczba w zapisie ósemkowym (<tt>o</tt> to + cyfra z układu ósemkowego -- 0-7; poprzedzone prawym apostrofem)</li> + </ul> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="v_dimen"><i>dimen</i></a></td><td> +liczba zmiennoprzecinkowa (mianowana) określająca przesunięcie (odległość), podanie + kwalifikatora <a href="#true"><tt>true</tt></a> przed nazwą jednostki powoduje że wartość + nie będzie podlegała przeskalowaniu, jeśli takowe zostało określone + (p. <a href="#mag"><tt>\mag</tt></a>) +<a id="tab_jed"> +<table border="1"> + <tr><td> </td> + <td>cm</td> + <td>mm</td> + <td>in</td> + <td>cc</td> + <td>pc</td> + <td>pt</td> + <td>bp</td> + <td>dd</td> + <td>sp</td> + </tr> +<tr><td>cm</td> + <td>1</td> + <td>10</td> + <td>0.39</td> + <td>2.216</td> + <td>2.23</td> + <td>28.45</td> + <td>28.346</td> + <td>26.6</td> + <td>1864624</td> + </tr> +<tr><td>mm</td> + <td>0.1</td> + <td>1</td> + <td>0.03937</td> + <td>0.22</td> + <td>0.221</td> + <td>2.845</td> + <td>2.83</td> + <td>2.66</td> + <td>186462</td> + </tr> +<tr><td>in</td> + <td>2.54</td> + <td>25.4</td> + <td>1</td> + <td>5.6285</td> + <td>6.02</td> + <td>72.27</td> + <td>72</td> + <td>67.54</td> + <td>4736175</td> + </tr> +<tr><td>cc</td> + <td>0.4511</td> + <td>4.511</td> + <td>0.177658</td> + <td>1</td> + <td>1.07</td> + <td>12.84</td> + <td>12.79</td> + <td>12</td> + <td>8412696</td> + </tr> +<tr><td>pc</td> + <td>0.421</td> + <td>4.2175</td> + <td>0.1166</td> + <td>0.93</td> + <td>1</td> + <td>12</td> + <td>11.955</td> + <td>11.215</td> + <td>786285</td> + </tr> +<tr><td>pt</td> + <td>0.0351</td> + <td>0.351</td> + <td>0.01382</td> + <td>0.07788</td> + <td>0.083</td> + <td>1</td> + <td>0.9949</td> + <td>0.934</td> + <td>65536</td> + </tr> +<tr><td>bp</td> + <td>0.035</td> + <td>0.352</td> + <td>0.0138855</td> + <td>0.078</td> + <td>0.08</td> + <td>1.004</td> + <td>1</td> + <td>0.93796</td> + <td>65765</td> + </tr> +<tr><td>dd</td> + <td>0.037594</td> + <td>0.37594</td> + <td>0.01</td> + <td>0.08</td> + <td>0.089</td> + <td>1.07</td> + <td>1.65</td> + <td>1</td> + <td>70037</td> + </tr> +<tr><td>sp</td> + <td>0.0000005</td> + <td>0.0000053</td> + <td>0.0000002</td> + <td>0.000001</td> + <td>0.000001</td> + <td>0.000015</td> + <td>0.000015</td> + <td>0.000014</td> + <td>1</td> + </tr> +</table></a> +np. <tt>100.5 pt</tt> lub <tt>100.5 <a href="#true">true</a> pt</tt> +</td></tr> +<tr><td class="ttt" valign="top"> + <a id="mdimen"><i>mdimen</i></a></td><td> + miara przesunięcia (odległości) w trybie matematycznym, podobnie jak <a href="#dimen"><i>dimen</i></a>, + ale jedyną dopuszczalną jednostką + jest <a href="#mu"><tt>mu</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> + <a id="glue"><i>glue</i></a></td><td>miara przesunięcia (odległości); podobnie + jak <i><a href="#dimen">dimen</a></i>, ale +charakteryzująca się nie tylko stałym wymiarem, ale ściśliwością i rozciągliwością +(wg zwyczajów inżynierskich można to traktować jako dopuszczalną tolerancję +wymiaru <i>in plus</i> i <i>in minus</i>). TeX w miarę potrzeby ma prawo +bezkarnie zmniejszyć wymiar nominalny lub go powiększyć o zadaną wartość. W +szczególności ściśliwość i rozciągliwość może przyjmować wartość nieskończoną +w trzech zakresach (p. <a href="#fil"><tt>fil</tt></a>, <a href="#fill"><tt>fill</tt></a> +oraz <a href="#filll"><tt>filll</tt></a>). +Uważam że tłumaczenie <i>glue</i> jako ,,klej'' nie oddaje charakteru i +zachowania się tej miary, wydaje mi się, że lepszym określeniem jest +,,sprężyna'', która ma swój wymiar nominalny, jak i dopuszczalną ściśliwość +oraz rozciągliwość (z tą różnicą, że TeX-owe <i>glue</i> może przyjmować +wartości nieskończone i ujemne). +np. <tt>100.5<a href="#pt">pt</a> <a href="#plus">plus</a> 10<a href="#pt">pt</a> <a href="#minus">minus</a> 5<a href="#pt">pt</a></tt> +</td></tr> +<tr><td class="ttt" valign="top"> + <a id="mglue"><i>mglue</i></a></td><td> + miara przesunięcia (odległości) w trybie matematycznym, podobnie jak <a href="#glue"><i>glue</i></a>, + ale jedyną dopuszczalną jednostką + jest <a href="#mu"><tt>mu</tt></a> +</td></tr> +</table> + +<h3><a id="s-tex"></a>Lista poleceń podstawowych (wbudowanych) programu TeX</h3> + +<table border="1"> +<tr><td class="ttt" valign="top"> +<a id="space">\<i>spacja</i></a> </td> + <td>wstawienie spacji (<i>space token</i>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="skos">\/</a> </td> + <td>korekcja skosu; polecenie dodaje dodatkowy odstęp (być może o + długości zerowej) + uwzględniający pochylenie (parametr konstrukcyjny + fontu; p. <a href="#fontdimen"><tt>\fontdimen</tt></a>) znaku w prawo -- + ,,wystawanie'' znaku poza pudełko (nie tylko znaki w + foncie <i>italic</i> mają tą wartość niezerową). +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="above">\above</a> <i>dimen</i> </td> + <td>konstrukcja matematyczna + (np. <tt>$1 + {1 \above 2<a href="#pt">pt</a> 2}$</tt>); + <i><a href="#dimen">dimen</a></i> określa grubość kreski ułamkowej + (p. <a href="#over"><tt>\over</tt></a>) + -- licznik i mianownik jest + składany w stylu o jeden stopień niższym + (p. <a href="#displaystyle"><tt>\displaystyle</tt></a>, + <a href="#textstyle"><tt>\textstyle</tt></a>, + <a href="#scriptstyle"><tt>\scriptstyle</tt></a> i + <a href="#scriptscriptstyle"><tt>\scriptscriptstyle</tt></a>) niż + bieżący (o ile to możliwe) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="abovedisplayshortskip">\abovedisplayshortskip</a>=<i>glue</i> </td> + <td>odległość nad (przed) wzorem eksponowanym + (wystawionym), jeśli jest on + poprzedzony wierszem nie ,,zazębiającym'' + się z treścią wzoru + (p. <a href="#abovedisplayskip"><tt>\abovedisplayskip</tt></a>, +<a href="#predisplaysize"><tt>\predisplaysize</tt></a>, + <a href="#parfillskip"><tt>\parfillskip</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="abovedisplayskip">\abovedisplayskip</a>=<i>glue</i> </td> + <td>odległość nad (przed) wzorem eksponowanym (wystawionym), + jeśli jest on + poprzedzony linią ,,zazębiającą'' się ze wzorem + (p. <a href="#abovedisplayshortskip"><tt>\abovedisplayshortskip</tt></a>, +<a href="#predisplaysize"><tt>\predisplaysize</tt></a>, + <a href="#parfillskip"><tt>\parfillskip</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="abovewithdelims">\abovewithdelims</a> + <i>delim<sub>1</sub></i><i>delim<sub>2</sub></i><i>dimen</i></td> + <td>podobnie jak <a href="#above"><tt>\above</tt></a>, ale konstrukcja + zostanie otoczona przez <i>delim<sub>1</sub></i> + (z lewej strony) i + <i>delim<sub>2</sub></i> (z prawej + strony); np.: + <tt>\abovewithdelims () 2pt</tt>; + p. <a href="#above"><tt>\above</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="accent">\accent</a> <i>kod_znaku</i> <i>znak</i> </td> + <td>wstawienie znaku z akcentem; <i>kod_znaku</i> jest kodem znaku akcentującego + (może to być znak o dowolnym kodzie, ale sensowne jest + używanie znaku + o odpowiedniej definicji, przewidzianym jako akcent), + a <i>znak</i> znakiem do którego dodawany jest akcent; np.: + <tt>\accent 95 z</tt> -- da literę ,,ż'' (,,z'' z + kropką) + (powoduje przejście w tryb poziomy); + (p. <a href="#kod_znaku"><tt>kod_znaku</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="adjdemerits">\adjdemerits</a>=<i>wartość</i> </td> + <td>wartość dodawana do wyliczonego kosztu złamania akapitu + w danym miejscu, jeżeli wiersz poprzedni i bieżący są innej klasy + kiepskości [<a href="#p1">1</a>] +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="advance">\advance</a>\<i>rejestr</i> by <i>wartość</i> </td> + <td>dodanie <i>wartości</i> do <i>rejestru</i> -- + typy składowych muszą być takie, aby działanie miało sens +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="afterassignment">\afterassignment</a> <i>tokem</i></td> + <td><i>token</i> zostanie zapamiętany i wstawiony po wykonaniu + następującego po nim przypisania +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="aftergroup">\aftergroup</a> <i>token</i> </td> + <td> używane wewnątrz grupy; <i>token</i> zostanie zapamiętany i zostanie + wyprowadzany (jednorazowo) po zamknięciu tej grupy (po odwołaniu + wprowadzonych wewnątrz niej zmian) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="at">at</a> <i>dimen</i> </td> + <td>określenie mówiące o przeskalowaniu fontu do wskazanej wielkości + np. <tt><a href="#font">\font</a>\mojcmr=plr10 at 12<a href="#pt">pt</a></tt> + (równoważne <tt><a href="#font">\font</a>\mojcmr=plr10 <a href="#scaled">scaled</a> 1200</tt>). + Uwaga! Zdefiniowany font <tt>\mojcmr</tt> to nie to samo co font + <tt>plr12</tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="atop">\atop</a> </td> + <td>konstrukcja matematyczna (np. <tt>${x \atop y}$</tt>); + p. <a href="#above"><tt>\above</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="atopwithdelims">\atopwithdelims</a> <i>delim<sub>1</sub></i><i>delim<sub>2</sub></i></td> + <td>konstrukcja matematyczna (np. <tt>${x \atopwithdelims() y}$</tt>); + p. <a href="#above"><tt>\above</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="badness">\badness</a> </td> + <td>miara kiepskości składu wiersza + [<a href="#p1">1</a>] +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="baselineskip">\baselineskip</a>=<i>glue</i> </td> + <td>odległość między liniami bazowymi pisma + p. <a href="#lineskip"><tt>\lineskip</tt></a> + i <a href="#lineskiplimit"><tt>\lineskiplimit</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="batchmode">\batchmode</a> </td> + <td>polecenie przełączające sposób pracy TeX-a; nie zatrzymuje się on po + napotkaniu błędu, raport jest umieszczany wyłącznie w pliku + <tt>.log</tt> (komunikaty nie są wyświetlane na + konsoli); p. <a href="#errorstopmode"><tt>\errorstopmode</tt></a>, + <a href="#nonstopmode"><tt>\nonstopmode</tt></a>, + <a href="#scrollmode"><tt>\scrollmode</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="begingroup">\begingroup</a> </td> + <td>początek bloku (wszelkie zmiany wartości parametrów i definicje są lokalne, + jeśli nie wyspecyfikowano inaczej p. <a href="#globaldefs"><tt>\globaldefs</tt></a> + i <a href="#global"><tt>\global</tt></a>). Zakończenie bloku + poleceniem <a href="#endgroup"><tt>\endgroup</tt></a> (nie + <tt>}</tt>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="belowdisplayshortskip">\belowdisplayshortskip</a>=<i>glue</i> </td> + <td>odległość pod (po wzorze) wzorem, jeśli po nim + następuje krótka linia + (nie ,,zazębiająca'' się z treścią wzoru), + p. <a href="#belowdisplayskip"><tt>\belowdisplayskip</tt></a>, +<a href="#predisplaysize"><tt>\predisplaysize</tt></a>, + <a href="#parfillskip"><tt>\parfillskip</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="belowdisplayskip">\belowdisplayskip</a>=<i>glue</i> </td> + <td>odległość pod (po wzorze) wzorem, jeśli po nim + następuje długa linia (,,zazębiająca'' się ze wzorem), + p. <a href="#belowdisplayshortskip"><tt>\belowdisplayshortskip</tt></a>, +<a href="#predisplaysize"><tt>\predisplaysize</tt></a>, + <a href="#parfillskip"><tt>\parfillskip</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="binopenalty">\binopenalty</a>=<i>wartość</i> </td> + <td>kara za złamanie linii po operatorze + binarnym (<i>bin atom</i>); + p. <a href="#mathbin"><tt>\mathbin</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="botmark">\botmark</a> </td> + <td>przyjmuje wartość ostatniego znacznika + (<a href="#mark"><tt>\mark</tt></a>), który pojawił + się na obecnie output-owanej stronie; czyli np. tytuł/tekst ostatniego + podrozdziału/hasła na danej stronie +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="box">\box</a> <i>numer_pudełka</i> </td> + <td>wstawienie zawartości + wskazanego pudełka, po czym zawartość + pudełka jest kasowana (p. <a href="#copy"><tt>\copy</tt></a>, + <a href="#setbox"><tt>\setbox</tt></a>, + <a href="#unhbox"><tt>\unhbox</tt></a>, + <a href="#unvbox"><tt>\unvbox</tt></a>, + <a href="#unhcopy"><tt>\unhcopy</tt></a>, + <a href="#unvcopy"><tt>\unvcopy</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="boxmaxdepth">\boxmaxdepth</a> </td> + <td>maksymalna głębokość (<a href="#dimen"><tt>dimen</tt></a>) + dla składanego pudełka (<a href="#vbox"><tt>\vbox</tt></a>) + jeśli głębokość złożonego pudełka jest większa od + <a href="#boxmaxdepth"><tt>\boxmaxdepth</tt></a>, + to jest ono odpowiednio ,,podnoszone'' (zwiększana jest jego wysokość, + tak by głębokość była równa <a href="#boxmaxdepth"><tt>\boxmaxdepth</tt></a>); + standardowo <a href="#boxmaxdepth"><tt>\boxmaxdepth</tt></a>=<tt>\maxdimen</tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="bp">bp</a> </td> + <td>jednostka miary -- big point + (72 bp = 1 <a href="#in">in</a>); + p. <a href="#true"><tt>true</tt></a>, <a href="#tab_jed">tablica + jednostek</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="brokenpenalty">\brokenpenalty</a>=<i>wartość</i> </td> + <td>kara dodawana przy wyliczaniu punktu przełamania strony (nie + akapitu!), + jeśli ostatnia linia strony miałaby wyraz przeniesiony do następnej linii + (a zatem i strony) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="by">by</a> </td> + <td>opcjonalny element w poleceniach <a href="#divide">dzielenia</a>, + <a href="#advance">dodawania</a>, <a href="#multiply">mnożenia</a> + np. <tt><a href="#advance">\advance</a><a href="#count">\count</a>0 by 1</tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="catcode">\catcode</a> <i>kod_znaku</i>=<i>kategoria</i> </td> + <td> definicja kategorii znaku, określonego przez <i>kod_znaku</i>; + <i>kategoria</i> jest liczbą z zakresu 0--15 i + oznacza: + <a id="kategorie"> + <table border="1"> + <tr><th>Kategoria</th><th>Nazwa</th><th>Przykład</th></tr> + <tr><td>0</td><td><i>escape</i></td><td><tt>\</tt></td></tr> + <tr><td>1</td><td>początek grupy</td><td><tt>{</tt></td></tr> + <tr><td>2</td><td>koniec grupy</td><td><tt>}</tt></td></tr> + <tr><td>3</td><td>tryb matematyczny</td><td><tt>$</tt></td></tr> + <tr><td>4</td><td>tabulator</td><td>&</td></tr> + <tr><td>5</td><td>koniec linii</td><td><tt><i>return</i></tt></td></tr> + <tr><td>6</td><td><a id="hash">parametr</a></td><td><tt>#</tt></td></tr> + <tr><td>7</td><td><a id="superscript">superscript</a></td><td><tt>^</tt></td></tr> + <tr><td>8</td><td><a id="subscript">subscript</a></td><td><tt>_</tt></td></tr> + <tr><td>9</td><td>ignorowane</td><td><tt><i>null</i></tt></td></tr> + <tr><td>10</td><td><i>biały znak</i></td><td><i>spacja</i></td></tr> + <tr><td>11</td><td>litera</td><td> </td></tr> + <tr><td>12</td><td>inny</td><td><tt>@</tt></td></tr> + <tr><td>13</td><td>aktywny</td><td><tt>~</tt></td></tr> + <tr><td>14</td><td>komentarz</td><td><tt>%</tt></td></tr> + <tr><td>15</td><td>błędny</td><td><tt><i>del</i></tt></td></tr> + </table></a> + (p. <a href="#kod_znaku"><tt>kod_znaku</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="cc">cc</a> </td> + <td>jednostka miary -- cicero (1 cc = 12 dd); + p. <a href="#true"><tt>true</tt></a>, <a href="#tab_jed">tablica + jednostek</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="char">\char</a> <i>kod_znaku</i> </td> + <td>użycie znaku o podanym kodzie (powoduje przejście w tryb poziomy); + (p. <a href="#kod_znaku"><tt>kod_znaku</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="chardef">\chardef</a>\<i>nazwa</i>=<i>kod_znaku</i> </td> + <td> jest alternatywą dla polecenia + <tt><a href="#def">\def</a>\<i>nazwa</i>{<a href="#char">\char</a> <i>kod_znaku</i>}</tt>. + Polecenie <tt>\<i>nazwa</i></tt> + jest równoważne użyciu znaku o podanym kodzie; + (p. <a href="#kod_znaku"><tt>kod_znaku</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="cleaders">\cleaders</a> <i>box</i>\hskip <i>glue</i> <br/> + \cleaders <i>rule</i>\hskip <i>glue</i> </td> + <td> konstrukcja powtarza specyfikację <i>box</i> lub <i>rule</i> + wypełniając przestrzeń przesunięcia określonego przez + <tt><a href="#hskip">\hskip</a> + <i><a href="#glue">glue</a></i></tt> + (p. <a href="#leaders"><tt>\leaders</tt></a> + i <a href="#xleaders"><tt>\xleaders</tt></a>) -- całość traktowana + jest jak ,,sprężyna'' (<a href="#glue">glue</a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="closein">\closein</a> <i>numer</i> </td> + <td>zamknięcie kanału wejściowego o wskazanym numerze (od 0 do 15) + otwartego poleceniem <a href="#openin"><tt>\openin</tt></a>; p. też <a href="#read">read</a>, <a href="#immediate"><tt>\immediate</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="closeout">\closeout</a> <i>numer</i> </td> + <td>zamknięcie kanału wyjściowego o wskazanym numerze (od 0 do 15) + otwartego poleceniem <a href="#openout"><tt>\openout</tt></a>; p. też <a href="#write">write</a>, <a href="#immediate"><tt>\immediate</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="clubpenalty">\clubpenalty</a> <i>wartość</i></td> + <td>kara za złamanie strony po pierwszej linii akapitu +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="cm">cm</a> </td> + <td>jednostka miary -- centymetr (1 cm = + 0.01 m); p. <a href="#true"><tt>true</tt></a>, <a href="#tab_jed">tablica + jednostek</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="copy">\copy</a> <i>numer_pudełka</i> </td> + <td>wyprowadza zawartość + wskazanego pudełka; + zawartość pudełka nie ulega zmianie (p. <a href="#box"><tt>\box</tt></a>, + <a href="#setbox"><tt>\setbox</tt></a>, + <a href="#unhbox"><tt>\unhbox</tt></a>, + <a href="#unhcopy"><tt>\unhcopy</tt></a>, + <a href="#unvbox"><tt>\unvbox</tt></a>, + <a href="#unvcopy"><tt>\unvcopy</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="count">\count</a> <i>specyfikacja_licznika</i> </td> + <td> użycie wskazanego rejestru (typu <i>count</i>) + (p. <a href="#countdef"><tt>\countdef</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="countdef">\countdef</a>\<i>nazwa</i>=<i>numer</i> </td> + <td>zdefiniowanie synonimu <i>\nazwa</i>, + odpowiadającego rejestrowi typu <i>count</i> o wskazanym <i>numerze</i>; + p. <a href="#count"><tt>\count</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="cr">\cr</a> </td> + <td>oznaczenie końca wiersza w środowiskach tabulacyjnych + (<a href="#halign"><tt>\halign</tt></a>, <a href="#valign"><tt>\valign</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="crcr">\crcr</a> </td> + <td>kończy wiersz tabeli (<a href="#halign"><tt>\halign</tt></a>, + <a href="#valign"><tt>\valign</tt></a>), jeśli wiersz był rozpoczęty -- czyli + działa tak jak <a href="#cr"><tt>\cr</tt></a>, + ale jeśli wystąpi bezpośrednio po <a href="#cr"><tt>\cr</tt></a>, albo + <a href="#noalign"><tt>\noalign</tt></a> + nie robi nic +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="csname">\csname</a> <i>tokens</i> \endcsname</td> + <td>konstrukcja służy do zdefiniowania lub + użycia makroinstrukcji tworzonych dynamicznie bądź zawierających znaki nie + będące literami (<i>tokens</i> nie może zawierać elementów + rozwijanych). Użycie makroinstrukcji niezdefiniowanej + nie jest błędem (jest równoznaczne z użyciem <a + href="#relax"><tt>\relax</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="day">\day</a> </td> + <td>rejestr zawierający numer bieżącego dnia (licząc od początku miesiąca) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="dd">dd</a> </td> + <td>jednostka miary -- didot point (1157 dd = 1238 pt); + p. <a href="#true"><tt>true</tt></a>, <a href="#tab_jed">tablica + jednostek</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="deadcycles">\deadcycles</a></td> + <td>liczba wywołań procedury wyjściowej + <a href="#output"><tt>\output</tt></a> nie powodujących + wysłania strony do pliku DVI (czyli nie wywołujących polecenia + <a href="#shipout"><tt>\shipout</tt></a>), każde <a + href="#shipout"><tt>\shipout</tt></a> zeruje licznik, a + <a href="#output"><tt>\output</tt></a> inkrementuje go; p. też + <a href="#maxdeadcycles"><tt>\maxdeadcycles</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="def">\def</a>\<i>nazwa</i>{<i>zawartość</i>} </td> + <td>nowa makrodefinicja np.: + <tt>\def\WM{{\it Włodzimierz Macewicz}}</tt>; jej + użycie jest równoważne rozwinięciu ,,wnętrza'' + (np. <tt>\WM</tt> wyprowadzi napis <i>Włodzimierz Macewicz</i> kursywą); + w momencie definiowania użyte wewnątrz makroinstrukcje + nie muszą być zdefiniowane +</td></tr> +<tr><td class="ttt" valign="top"> + \def\<i>nazwa</i>#1...#9{<i>zawartość</i>} </td> + <td> nowa makrodefinicja (p. <a href="#def"><tt>\def</tt></a>) + z parametrami (<tt>#1</tt>...<tt>#9</tt> oznaczają + kolejne parametry) + np.: <tt>\def\persona#1{{\it #1}}</tt> + i wywołanie <tt>\persona{Włodzimierz Macewicz}</tt> + (p. <a href="#edef"><tt>\edef</tt></a>, + <a href="#xdef"><tt>\xdef</tt></a>, + <a href="#long"><tt>\long</tt></a>, <a href="#gdef"><tt>\gdef</tt></a> + <a href="#global"><tt>\global</tt></a> i + <a href="#globaldefs"><tt>\globaldefs</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="defaulthyphenchar">\defaulthyphenchar</a> </td> + <td>rejestr przechowuje kod znaku przenoszenia wyrazów (<a href="#hyphenchar"><tt>\hyphenchar</tt></a>) z ostatnio + załadowanego fontu +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="defaultskewchar">\defaultskewchar</a> </td> + <td>rejestr przechowuje kod znaku + <a href="#skewchar"><tt>\skewchar</tt></a> z ostatnio + załadowanego fontu +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="delcode">\delcode</a> + <i>znak</i>="<i>f<sub>m</sub>xx<sub>m</sub>f<sub>d</sub>xx<sub>d</sub></i></td> + <td>polecenie definiuje warianty: mały i duży dla znaku + <i>znak</i> w przypadku użycia go z operatorem <a href="#left"><tt>\left</tt></a> lub + <a href="#right"><tt>\right</tt></a>. <i>f</i> oznacza numer rodziny fontów + (<tt>family</tt>), a <i>xx</i> kod znaku (wszystkie wartości w kodzie + szesnastkowym). Wartość <tt>-1</tt> oznacza że znak nie może być + ogranicznikiem, zdefiniowanie wartości <tt>0</tt> (rodzina i kod) + dla danego wariantu oznacza pominięcie wariantu. +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="delimiter">\delimiter</a> "<i>cfxxfxx</i> </td> + <td>użycie delimitera; <i>c</i> -- + oznacza klasę znaku (p. tabela klas); dwa zestawy trzech cyfr oznaczają to samo + co w poleceniu <a href="#delcode"><tt>\delcode</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="delimiterfactor">\delimiterfactor</a>=<i>f</i> </td> + <td> współczynnik (liczba całkowita) + służący do obliczenia wielkości delimitera przy użyciu konstrukcji + <a href="#left"><tt>\left</tt></a> i + <a href="#right"><tt>\right</tt></a>. Wielkość jest ustalana jako: + x = 2max(y<sub>1</sub>,y<sub>2</sub>); y<sub>1</sub> -- minimalna + głębokość materiału, y<sub>2</sub> -- maksymalna wysokość materiału; + następnie obliczane jest y = x * f/1000, gdzie <i>f</i> jest + współczynnikiem. Ostatecznie wielkość delimitera jest ustalana jako + w = min(y, y - q), gdzie q jest wartością parametru + <a href="#delimitershortfall"><tt>\delimitershortfall</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="delimitershortfall">\delimitershortfall</a>=<i>dimen</i></td> + <td>wartość służąca do obliczania + ostatecznej wielkości delimitera przy użyciu konstrukcji + <tt><a href="#left">\left</a></tt> i + <a href="#right"><tt>\right</tt></a>; + p. <a href="#delimiterfactor"><tt>\delimiterfactor</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="depth">depth</a> <i>dimen</i> </td> + <td>głębokość linii np. <tt><a href="#hrule">\hrule</a> <a href="#width">width</a> 2<a href="#cm">cm</a> depth 2<a href="#mm">mm</a></tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="dimen">\dimen</a> <i>numer</i> </td> + <td>rejestr typu <i><a href="#dimen">dimen</a></i> (odległość) o wskazanym <i>numerze</i> + (0 -- 255), zamiast + <i>numeru</i> można użyć synonimu; + p. <a href="#dimendef"><tt>\dimendef</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> + \dimen <i>numer</i>=<i>wartość</i></td> + <td>nadanie wartości rejestrowi typu <i><a href="#dimen">dimen</a></i> + (odległość) o wskazanym <i>numerze</i> (0 -- 255), + zamiast + <i>numeru</i> można użyć synonimu; + p. <a href="#dimendef"><tt>\dimendef</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="dimendef">\dimendef</a>\<i>nazwa</i>=<i>numer</i> </td> + <td>zdefiniowanie synonimu <tt>\<i>nazwa</i></tt>, + odpowiadającego + rejestrowi <a href="#dimen"><tt>\dimen</tt></a> o podanym <i>numerze</i> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="discretionary">\discretionary</a>{<i>przed</i>}{<i>po</i>}{<i>bez</i>}</td> + <td> propozycja miejsca podziału wyrazu; jeśli nastąpi podział token <i>przed</i> + zostanie wstawiony + na końcu linii (zwyczajowo wstawiamy <tt>-</tt>), token <i>po</i> jest + wstawiany na początku linii następnej (zwyczajowo nic, ale w jęz. polskim + dla określeń typu <tt>biało-czerwony</tt>, w przypadku + podziału + po znaku <tt>dywiz</tt>, powinniśmy na początku następnej linii też wstawić + <tt>-</tt>), token <i>bez</i> wstawiany jeśli nie ma potrzeby + podziału wyrazu w danym miejscu (i tak <tt>\-</tt> jest zdefiniowany + jako <tt>\discretionary{-}{}{}</tt> -- wstawienie <tt>-</tt> na końcu, + jeśli nastąpi podział; nic jeśli nie, natomiast dla jęz. polskiego + <tt>\=</tt> został zdefiniowany jako <tt>\discretionary{-}{-}{-}</tt>). W przypadku + użycia polecenia w trybie + matematycznym trzeci parametr <b>musi</b> być pusty; + p. <a href="#hyphenchar">\hyphenchar</a>, + <a href="#defaulthyphenchar">\defaulthyphenchar</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="displayindent">\displayindent</a>=<i>dimen</i> </td> + <td> Jeżeli wartość + jest niezerowa, powoduje przesunięcie całego materiału wzoru o zadaną + odległość (p. <a href="#displaywidth"><tt>\displaywidth</tt></a>) + wartość parametru jest ustalana na + <tt>0<a href="#pt">pt</a></tt> lub na wartość określona przez + <a href="#hangindent"><tt>\handindent</tt></a>) + przed każdym wzorem eksponowanym +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="displaylimits">\displaylimits</a> </td> + <td>polecenie określa miejsce położenia indeksu dolnego i + górnego danego obiektu; dla + trybu <a href="#displaystyle"><tt>\displaystyle</tt></a> na pod/nad obiektem, dla + pozostałych obok obiektu (jako górna lub dolna frakcja) p. też + <a href="#limits"><tt>\limits</tt></a> + oraz <a href="#nolimits"><tt>\nolimits</tt></a>; + np.: <tt>\def\int{\intop\displaylimits}</tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="displaystyle">\displaystyle</a> </td> + <td>przełączenie składu matematyki w tryb <tt>display</tt> + (wielkość czcionki i sposób + ustawiania górnego i dolnego rejestru; p. <a href="#limits"><tt>\limits</tt></a>, + <a href="#nolimits"><tt>\nolimits</tt></a>, + <a href="#displaylimits"><tt>\displaylimits</tt></a>, + <a href="#textstyle"><tt>\textstyle</tt></a>, + <a href="#scriptstyle"><tt>\scriptstyle</tt></a>, + <a href="#scriptscriptstyle"><tt>\scriptscriptstyle</tt></a>, + <a href="#textfont"><tt>\textfont</tt></a>, + <a href="#scriptfont"><tt>\scriptfont</tt></a>, + <a href="#scriptscriptfont"><tt>\scriptscriptfont</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="displaywidowpenalty">\displaywidowpenalty</a>=<i>wartość</i></td> + <td>kara za złamanie strony przed ostatnią + linią akapitu, + jeśli jest nią wzór eksponowany (wystawiony) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="displaywidth">\displaywidth</a>=<i>dimen</i></td> + <td> wartość parametru jest ustalana na + <a href="#hsize"><tt>\hsize</tt></a> (szerokość szpalty) przed rozpoczęciem każdego wzoru + eksponowanego. Jeżeli przesuniemy materiał wzoru w prawo o + <a href="#displayindent"><tt>\displayindent</tt></a> powinniśmy o tyleż zmniejszyć + <a href="#displaywidth"><tt>\displaywidth</tt></a>, w przeciwnym razie wzór będzie wystawał + z prawej strony +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="divide">\divide</a>\<i>rejestr</i> by <i>wartość</i> </td> + <td>dzielenie <i>rejestru</i> przez <i>wartość</i>; + uwaga na typ składowych, wynik też musi być sensowny + (typ wyniku przewidziany w TeX-u) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="doublehyphendemerits">\doublehyphendemerits</a>=<i>wartość</i> </td> + <td>wartość dodawana do wyliczonego + kosztu złamania akapitu + w danym miejscu, jeżeli wiersz poprzedni i bieżący kończy się podzielonym + wyrazem [<a href="#p1">1</a>] (wartość jest wstawiana ,,jak + leci'', podczas gdy kary brane są w ,,kwadracie'', tak więc + wartość parametru ma niewielki wpływ na skład) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="dp">\dp</a> <i>numer_pudełka</i> </td> + <td>głębokość pudełka o wskazanym numerze +</td></tr> +<tr><td class="ttt" valign="top"> + \dp <i>numer_pudełka</i>=<i>dimen</i> </td> + <td>określenie głębokości pudełka o wskazanym numerze; + p. <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="dump">\dump</a> </td> + <td>polecenie zapisu formatu (tylko <tt>initex</tt>) +</td></tr> +<tr><td class="ttt" valign="top"> +\edef\<i>nazwa</i>{<i>zawartość</i>} <br/> +<a id="edef">\edef</a>\<i>nazwa</i>#1...#9{<i>zawartość</i>} </td> + <td> nowa makrodefinicja z parametrami (lub bez) + np.: <tt>\edef\persona#1{{\it #1}}</tt> + i wywołanie <tt>\persona{Włodzimierz Macewicz}</tt>. <i>zawartość</i> + jest rozwijana w momencie tworzenia definicji, a zatem wszystkie + używane wewnątrz konstrukcje muszą być + <b>zdefiniowane</b> (p. <a href="#def"><tt>\def</tt></a>, + <a href="#gdef"><tt>\gdef</tt></a>, + <a href="#long"><tt>\long</tt></a>, + <a href="#xdef"><tt>\xdef</tt></a> + <a href="#global"><tt>\global</tt></a> i <a href="#globaldefs"><tt>\globaldefs</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="else">\else</a> </td> + <td>opcjonalna element w instrukcji warunkowej oznacza: ,,w przeciwnym razie'', + np.:<br/> + <tt>\if <i>warunek</i><br/> + SPEŁNIONY<br/> + \else<br/> + NIESPEŁNIONY<br/> + \fi<br/> + </tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="em">em</a> </td> + <td>jednostka miary, równa szóstemu parametrowi bieżącego fontu + p. <a href="#fontdimen"><tt>\fontdimen</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="emergencystretch">\emergencystretch</a>=<i>dimen</i> </td> + <td> jeśli TeX nie może sobie poradzić w + dwu przebiegach ze złamaniem akapitu (zachowując zadaną jakość), + a wartość rejestru jest większa od zera, + TeX rozpocznie trzecie podejście do tego problemu. + Wartość parametru oznacza zgodę na bezkarne zwiększenie światła + międzywyrazowego w wierszu o podaną wielkość; + p. <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="end">\end</a> </td> + <td> kończy pracę TeX-a +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="endcsname">\endcsname</a> </td> + <td> koniec konstrukcji <a href="#csname"><tt>\csname</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="endgroup">\endgroup</a> </td> + <td> koniec grupy (p. <a href="#begingroup"><tt>\begingroup</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="endinput">\endinput</a> </td> + <td>wymuszenie końca zbioru, wszelkie dane po tym poleceniu są + ignorowane +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="endlinechar">\endlinechar</a>=<i>kod_znaku</i> </td> + <td>znak wstawiany na końcu każdej wczytanej + linii (jeśli wartość <i>kod_znaku</i> jest ujemna lub większa od 255 + żaden znak nie jest wstawiany); + (p. <a href="#kod_znaku"><tt>kod_znaku</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="eqno">\eqno</a>{<i>materiał</i>} </td> + <td>konstrukcja umieszczająca <i>materiał</i> + (w trybie matematycznym) + z prawej strony wzoru + wystawionego (<i>display</i>), służąca do + numerowania (oznaczania) wzorów z prawej strony + (p. <a href="#leqno"><tt>\leqno</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="errhelp">\errhelp</a></td> + <td>???? +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="errmessage">\errmessage</a> <i>materiał</i></td> + <td>wyprowadza <i>materiał</i> (po rozwinięciu) do pliku <tt>log</tt> + i ewentualnie na konsolę, w zależności od trybu obsługi błędów + następuje (bądź nie) przerwanie pracy; + p. <a href="#message"><tt>message</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="errorcontextlines">\errorcontextlines</a></td> + <td>ustala liczbę wyświetlanych linii kodu wejściowego (kontekst) + po napotkaniu błędu (domyślnie 5) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="errorstopmode">\errorstopmode</a> </td> + <td> tryb pracy TeX-a -- wstrzymuje on pracę po + napotkaniu błędu i czeka na polecenie z konsoli (jest to normalny tryb + pracy); p. <a href="#batchmode"><tt>\batchmode</tt></a>, + <a href="#nonstopmode"><tt>\nonstopmode</tt></a>, + <a href="#scrollmode"><tt>\scrollmode</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="escapechar">\escapechar <i>kod_znaku</i></a> </td> + <td> definicja znaku, na który + zostanie zamieniony znak kategorii 0 (<tt>escape</tt>) przez polecenie + <a href="#string"><tt>\string</tt></a>; + (p. <a href="#kod_znaku"><tt>kod_znaku</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="everycr">\everycr</a>{<i>materiał</i>}</td> + <td><i>materiał</i> wstawiany po użyciu polecenia + <a href="#cr"><tt>\cr</tt></a> lub <a href="#crcr"><tt>\crcr</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="everydisplay">\everydisplay</a>{<i>materiał</i>} </td> + <td><i>materiał</i> jest wyprowadzany przy wejściu + w tryb matematyczny eksponowany (wystawiony) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="everyhbox">\everyhbox</a>{<i>materiał</i>} </td> + <td><i>materiał</i> jest wyprowadzany przy rozpoczęciu + każdego poziomego pudełka +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="everyjob">\everyjob</a>{<i>materiał</i>} </td> + <td><i>materiał</i> jest wyprowadzany przy rozpoczęciu + pracy (rozpoczęcie przetwarzania zbioru + głównego) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="everymath">\everymath</a>{<i>materiał</i>} </td> + <td><i>materiał</i> jest wyprowadzany przy wejściu + w tryb matematyczny wewnątrzliniowy (nieeksponowany) -- również + przy zmianie niejawnej; np. przy <a href="#eqno"><tt>\eqno</tt></a> + lub <a href="#leqno"><tt>\leqno</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="everypar">\everypar</a>{<i>materiał</i>} </td> + <td><i>materiał</i> jest wyprowadzany przy rozpoczęciu + każdego akapitu +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="everyvbox">\everyvbox</a>{<i>materiał</i>} </td> + <td><i>materiał</i> jest wyprowadzany przy rozpoczęciu + każdego pionowego pudełka +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ex">ex</a> </td> + <td>jednostka miary, równa wysokości litery <tt>x</tt> w + <b>bieżącym</b> foncie, + a ściślej, równa wartości piątego parametru bieżącego fontu + p. <a href="#fontdimen"><tt>\fontdimen</tt></a> + +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="exhyphenpenalty">\exhyphenpenalty</a>=<i>wartość</i> </td> + <td>kara za przeniesienie wyrazu po znaku <tt>-</tt> + (lub ligaturze kończącej się na <tt>-</tt>); dla języka + polskiego powinna być ustawiona na 10000 +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="expandafter">\expandafter</a> <i>token</i> </td> + <td>TeX wczytuje <i>token</i> wstrzymując jego rozwijanie, + aż do wczytania kolejnego tokenu +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="fam">\fam</a>=<i>numer</i></td> + <td>grupa fontów (zestawów znaków). W wielu definicjach znaków + matematycznych oprócz kodu podaje się numer grupy (może ich + być 15), co pozwoliło na zwiększenie liczby dostępnych + symboli matematycznych +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="fi">\fi</a> </td> + <td>koniec konstrukcji warunkowej <a href="#if"><tt>\if</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="fil">fil</a> </td> + <td>miara ścisku lub rozciągu sprężyny (<i><a href="#glue">glue</a></i>), + większa od największej + dającej wyrazić się liczbą (może być zwielokrotniana + np. <tt><a href="#hskip">\hskip</a> 0<a href="#pt">pt</a> + <a href="#plus">plus</a> 2fil</tt>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="fill">fill</a> </td> + <td>miara ścisku lub rozciągu sprężyny (<i><a href="#glue">glue</a></i>), + większa niż dowolnie + zwielokrotniona <a href="#fil"><tt>fil</tt></a> + (może być zwielokrotniana + np. <tt><a href="#hskip">\hskip</a> 0<a href="#pt">pt</a> + <a href="#plus">plus</a> 2fill</tt>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="filll">filll</a> </td> + <td>miara ścisku lub rozciągu sprężyny (<i><a href="#glue">glue</a></i>), + większa niż dowolnie zwielokrotniona <a href="#fill"><tt>fill</tt></a> + (może być zwielokrotniana + np. <tt><a href="#hskip">\hskip</a> 0<a href="#pt">pt</a> + <a href="#plus">plus</a> 2filll</tt>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="finalhyphendemerits">\finalhyphendemerits</a>=<i>wartość</i> </td> + <td>wartość dodawana do wyliczonego kosztu złamania akapitu + w danym miejscu, jeżeli wiersz bieżący kończy się podzielonym + wyrazem i jest to przedostatni wiersz akapitu + [<a href="#p1">1</a>] (wartość jest wstawiana ,,jak + leci'', podczas gdy kary brane są w ,,kwadracie'', tak więc + wartość parametru ma niewielki wpływ na skład) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="firstmark">\firstmark</a></td> + <td>przyjmuje wartość pierwszego znacznika + (<a href="#mark"><tt>\mark</tt></a>), który pojawił + się na obecnie output-owanej stronie; czyli np. tytuł/tekst pierwszego + podrozdziału/hasła na danej stronie +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="floatingpenalty">\floatingpenalty</a>=<i>wartość</i> </td> + <td>kara dodawana do ogólnego kosztu przełamania strony + (poprzez rejestr <a href="#insertpenalties"><tt>\insertpenalties</tt></a>), + w przypadku gdy nastąpił podział + wstawki (float) między strony, np. gdy przypis nie mieści się na stronie +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="font">\font</a>\<i>nazwa</i>=<i>nazwa_zbioru</i> </td> +<td rowspan="2"><i>\nazwa</i> + staje się nazwą fontu + np. <tt>\font\tenrm=cmr10</tt> lub jeśli użyjemy skalowania: + <tt>\font\tenrm=cmr10 <a href="#at">at</a> 12pt</tt> lub + <tt>\font\tenrm=cmr10 <a href="#scaled">scaled</a> 1200</tt> +</td></tr> +<tr><td class="ttt" valign="top"> + \font\<i>nazwa</i>=<i>nazwa_zbioru</i> <i>skalowanie</i> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="fontdimen">\fontdimen</a> <i>n</i> \<i>nazwa_fontu</i> </td> + <td><i>n</i>-ty parametr fontu (liczba parametrów jest zmienna -- + zależna od fontu, dla fontów tekstowych standardowo są to: + <table border="1"> + <tr><td>0</td><td>--</td></tr> + <tr><td>1</td><td>skos (w <a href="#pt">pt</a>; + p. <a href="#skos"><tt>\/</tt></a>)</td></tr> + <tr><td>2</td><td>nominalna odległość między wyrazami</td></tr> + <tr><td>3</td><td>dopuszczalny ścisk międzywyrazowy</td></tr> + <tr><td>4</td><td>dopuszczalny rozciąg międzywyrazowy</td></tr> + <tr><td>5</td><td>wielkość jednostki + <tt>1<a href="#ex">ex</a></tt></td></tr> + <tr><td>6</td><td>wielkość jednostki + <tt>1<a href="#em">em</a></tt></td></tr> + <tr><td>7</td><td>dodatkowy odstęp międzywyrazowy po kropce + (dostawiany jeśli <a href="#spacefactor"><tt>\spacefactor > 2000</tt></a> + i <a href="#xspaceskip"><tt>\xspaceskip = + 0</tt></a> + p. także <a href="#spaceskip"><tt>\spaceskip</tt></a> + i <a href="#sfcode"><tt>\sfcode</tt></a>)</td></tr> + </table> + font może mieć zdefiniowanych więcej parametrów. +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="fontname">\fontname</a> \<i>nazwa</i> </td> + <td>podaje nazwę zbioru, którego <i>nazwa</i> jest synonimem + (np. jeśli była wcześniej użyta makroinstrukcja + <tt><a href="#font">\font</a>\tenrm=cmr10 <a href="#at">at</a> 12<a href="#pt">pt</a></tt> + to <tt>\fontname\tenrm</tt> + rozwinie się w <tt>cmr10 <a href="#at">at</a> 12<a href="#pt">pt</a></tt>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="futurelet">\futurelet</a>\<i>nazwa</i> + <i>token<sub>1</sub></i> <i>token<sub>2</sub></i></td> + <td> makropodstawienie, polecenie <tt>\<i>nazwa</i></tt> będzie utożsamione + z <i>token<sub>2</sub></i>, <i>token<sub>1</sub></i> i <i>token<sub>2</sub></i> + zostaną rozwinięte (w tej kolejności) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="gdef">\gdef</a> <i>...</i> </td> + <td>równoważna <a href="#global"><tt>\global\def</tt></a> + (p. <a href="#globaldefs"><tt>\globaldefs</tt></a>, <a href="#def"><tt>\def</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="global">\global</a> </td> + <td>polecenie ustalające globalny zasięg działania następującej po nim konstrukcji + (p. <a href="#globaldefs"><tt>\globaldefs</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="globaldefs">\globaldefs</a>=<i>liczba</i> </td> + <td> jeżeli <i>liczba</i> jest dodatnia, + polecenie sprawia, że wszelkie zmiany wartości (makr, rejestrów itp.) mają charakter + globalny; automatycznie jest dodawany kwalifikator + <a href="#global"><tt>\global</tt></a>; jeśli <i>liczba</i> jest ujemna, wszelkie + modyfikacje mają charakter lokalny (mimo że są poprzedzone + kwalifikatorem <a href="#global"><tt>\global</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="halign">\halign</a> {<i>materiał</i>}</td> + <td>definiuje środowisko tabularyczne, <i>materiał</i> logicznie dzieli + się na dwie części: 1. preambułę, czyli definicję kolumn i sposobu ich + formatowania (wzorzec), 2. tekst tworzący zawartość tabeli. W preambule fakt + istnienia materiału kolumny sygnalizujemy znakiem <tt>#</tt>, a + separatorem kolumn jest znak <tt>&</tt>. Przykład: + <pre> + \halign{\hfill # \hfill & \hfill #\cr + 1234 & 1 \cr + 1 & 1234 \cr} + </pre> + pierwsza kolumna jest centrowana, a druga dosunięta do prawej krawędzi, + jak widać poleceniem końca wiersza jest <tt><a href="#cr">\cr</a></tt>; p. + <tt><a href="#crcr">\crcr</a></tt>, + <tt><a href="#noalign">\noalign</a></tt>, + <tt><a href="#span">\span</a></tt>, + <tt><a href="#omit">\omit</a></tt> oraz + <tt><a href="#valign">\valign</a></tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="hangafter">\hangafter</a> <i>n</i> </td> + <td><i>n</i> liczba całkowita określająca które linie + akapitu podlegają działaniu polecenia <a href="#hangindent"><tt>\hangindent</tt></a>; + i tak: jeśli <i>n</i> >= 0 dodatkowy margines + jest wstawiany począwszy od linii <i>n</i> (licząc od zera), + jeśli <i>i</i> < 0 margines będzie wstawiony + w <i>n</i> pierwszych liniach; p. też <a href=#parshape><tt>\parshape</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="hangindent">\hangindent</a> <i>dimen</i></td> + <td>polecenie definiuje dodatkowy margines w akapicie; + jeśli <i><a href="#dimen">dimen</a></i> > 0 + margines będzie wstawiony z lewej strony, + jeśli <i><a href="#dimen">dimen</a></i> < 0 -- + z prawej strony. Margines wstawiany jest na obszarze określonym przez + <a href="#hangafter"><tt>\hangafter</tt></a> (pierwsza linia jest niezależnie wcinana o + <a href="#parindent"><tt>\parindent</tt></a>); p. też <a href=#parshape><tt>\parshape</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="hbadness">\hbadness</a> <i>wartość</i> </td> + <td> wartość progowa; + jeżeli przy składzie akapitu ,,kiepskość'' przekroczy tę <i>wartość</i> pojawi + się komunikat +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="hbox">\hbox</a>{<i>materiał</i>} </td> + <td>wstawienie materiału poziomego (niełamliwego), zachowana + jest nominalna szerokość. <b>Użycie konstrukcji nie powoduje + przejścia w tryb poziomy</b> [<a href="#p3">3</a>] +</td></tr> +<tr><td class="ttt" valign="top"> + \hbox to <i>dimen</i>{<i>materiał</i>} </td> + <td>j.w., ale materiał będzie zajmował szerokość <i>dimen</i> (z możliwością niedomiaru + lub przepełnienia) +</td></tr> +<tr><td class="ttt" valign="top"> + \hbox spread <i>dimen</i>{<i>materiał</i>}</td> + <td>j.w., ale szerokość nominalna jest powiększana o + podaną wielkość <i>dimen</i> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="height">height</a> <i>dimen</i> </td> + <td>wysokość linii pionowej lub grubość poziomej + (np. <tt><a href="#vrule">\vrule</a> height 3<a href="#mm">mm</a></tt>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="hfil">\hfil</a> </td> + <td>równoważny + <tt><a href="#hskip">\hskip</a> 0<a href="#pt">pt</a> <a href="#plus">plus</a> 1<a href="#fil">fil</a></tt>, + p. <tt><a href="#fil">fil</a></tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="hfill">\hfill</a> </td> + <td>równoważny + <tt><a href="#hskip">\hskip</a> 0<a href="#pt">pt</a> <a href="#plus">plus</a> 1<a href="#fill">fill</a></tt>, + p. <tt><a href="#fill">fill</a></tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="hfilneg">\hfilneg</a> </td> + <td> równoważny + <tt><a href="#hskip">\hskip</a> 0<a href="#pt">pt</a> <a href="#plus">plus</a> -1<a href="#fil">fil</a></tt>, + p. <tt><a href="#fil">fil</a></tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="hfuzz">\hfuzz</a> <i>dimen</i> </td> + <td>dopuszczalne <b>niesygnalizowane</b> przekroczenie prawego marginesu przy + składzie akapitu (wartość nie ma wpływu na działanie algorytmu składu) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="hoffset">\hoffset</a> <i>dimen</i> </td> + <td>dodatkowe przesunięcie kompletnego materiału strony o wskazaną + wartość w prawo (w lewo jeśli ujemna) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="holdinginserts">\holdinginserts</a> </td> + <td>jeśli jest ustawiane na wartość większą od zera, to + podczas wywoływania, procedury wyjściowej (<a href="#output">output</a> routine), wstawki + nie są usuwane z listy; według Knutha może to być wykorzystane podczas + próbnego wywołania output-a, ale jedynym pakietem jaki to wykorzystuje + jest triptest (test zgodności implementacji TeX-a ze wzorcem + Knutha) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="hrule">\hrule</a> </td> + <td>linia pozioma o długości zależnej od kontekstu użycia o + grubości 0.4 <a href="#pt">pt</a> i głębokości + 0 <a href="#pt">pt</a> + odkładana na liście pionowej; + można wyspecyfikować inne parametry np.: + <tt>\hrule <a href="#width">width</a> 3<a href="#cm">cm</a> <a href="#depth">depth</a> 1<a href="#mm">mm</a> <a href="#height">height</a> 0.5<a href="#mm">mm</a></tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="hsize">\hsize</a>=<i>dimen</i> </td> + <td>szerokość kolumny (podstawowego obszaru roboczego); + p. <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="hskip">\hskip</a> <i>glue</i> </td> + <td>wstawienie pustego obszaru (justunku) do listy poziomej (może być + ściśliwy i/lub rozciągliwy); + p. <a href="#glue"><i>glue</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="hss">\hss</a> </td> + <td>sprężyna (<a href="#glue">glue</a>) o zerowej długości działająca w poziomie + o nieskończonym ścisku i rozciągu; równoważna + <tt><a href="#hskip">\hskip</a> 0<a href="#pt">pt</a> + <a href="#plus">plus</a> 1<a href="#fil">fil</a> + <a href="#minus">minus</a> 1<a href="#fil">fil</a></tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ht">\ht</a> <i>numer_pudełka</i> </td> + <td>wysokość pudełka o wskazanym numerze +</td></tr> +<tr><td class="ttt" valign="top"> + \ht <i>numer_pudełka</i>=<i>dimen</i> </td> + <td>określenie wysokości pudełka o wskazanym numerze; + p. <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="hyphenation">\hyphenation</a>{<i>lista</i>} </td> + <td><i>lista</i> definiuje wyjątki w regułach przenoszenia + wyrazów, należy podać wszystkie dopuszczalne miejsca + przeniesienia wstawiając znak <tt>-</tt>; wyrazy + powinny być oddzielone ,,białym znakiem'' (spacja, tabulator + nowa linia); np.: <tt>\hyphenation{pszczół-ka pszczół-ki}</tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="hyphenchar">\hyphenchar</a>\<i>nazwa_fontu</i>=<i>kod_znaku</i> </td> + <td> określenie + symbolu (znaku) przenoszenia wyrazu w danym foncie (standardowo jest to + <tt>-</tt>) wstawianego przy podziale wyrazu oraz + jest to znak (lub ligatura kończąca sie tym + znakiem) + po którym dostawiane jest polecenie <a + href="#discretionary"><tt>\discretionary{}{}{}</tt></a> + (p. <a href="#kod_znaku"><tt>kod_znaku</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="hyphenpenalty">\hyphenpenalty</a>=<i>wartość</i> </td> + <td>kara za przeniesienie wyrazu + (w miejscu wyznaczonym wg + reguł lub sugerowanym przez <tt>\-</tt>, + p. <a href="#discretionary"><tt>\discretionary</tt></a>, + <a href="#language"><tt>\language</tt></a>, + <a href="#doublehyphendemerits"><tt>\doublehyphendemerits</tt></a> + i + <a href="#finalhyphendemerits"><tt>\finalhyphendemerits</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="if">\if</a> <i>token<sub>1</sub></i> <i>token<sub>2</sub></i> </td> + <td>początek instrukcji + warunkowej: czy kody porównywanych znaków są jednakowe; + p. <a href="#fi"><tt>\fi</tt></a>, <a href="#else"><tt>\else</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifcase">\ifcase</a> <i>liczba</i><br/> + <i>tekst_dla_zera</i><br/> + \or<br/> + <i>tekst_dla_jedynki</i><br/> + \or<br/> + <i>...</i><br/> + \or<br/> + <i>tekst_dla_n</i><br/> + \else<br/> + <i>tekst_dla_pozostałych_przypadków</i><br/> +\fi</td> + <td valign="top">instrukcja wyboru; wartość <i>liczby</i> określa która część + instrukcji będzie wybrana, jeżeli liczba jest mniejsza od zera lub większa niż + <i>n</i> zostanie wybrana ostatnia (po <a href="#else"><tt>\else</tt></a>) ewentualność + (o ile została określona, + bowiem nie musi ona wystąpić); + p. <a href="#fi"><tt>\fi</tt></a>, <a href="#else"><tt>\else</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifcat">\ifcat</a> <i>token<sub>1</sub></i> <i>token<sub>2</sub></i> </td> + <td>początek instrukcji + warunkowej: czy kategorie porównywanych znaków są jednakowe + (p. <a href="#kategorie">tabela kategorii</a>); + p. <a href="#fi"><tt>\fi</tt></a>, <a href="#else"><tt>\else</tt></a>, +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifdim">\ifdim</a> <i>dimen<sub>1</sub></i> <i>rel</i> <i>dimen<sub>2</sub></i> </td> + <td>początek + instrukcji + warunkowej porównującej wartości typu <i><a + href="#dimen">dimen</a></i>; <i>rel</i> oznacza znak + relacji i może przyjmować postać: + <tt>=</tt> -- równość, + <tt>></tt> -- większy + <tt><</tt> -- mniejszy; + p. <a href="#fi"><tt>\fi</tt></a>, <a href="#else"><tt>\else</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifeof">\ifeof</a> <i>numer</i> </td> + <td> czy koniec danych na strumieniu wejściowym + <i>numer</i>, p. <a href="#openin"><tt>\openin</tt></a>, + <a href="#fi"><tt>\fi</tt></a>, <a href="#else"><tt>\else</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="iffalse">\iffalse</a> </td> + <td>początek instrukcji warunkowej; zawsze fałsz!; + p. <a href="#fi"><tt>\fi</tt></a>, <a href="#else"><tt>\else</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifhbox">\ifhbox</a> <i>numer</i> </td> + <td>początek instrukcji warunkowej sprawdzającej czy pudełko (poziome) + o podanym numerze jest puste; + p. <a href="#fi"><tt>\fi</tt></a>, <a href="#else"><tt>\else</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifhmode">\ifhmode</a> </td> + <td>początek instrukcji warunkowej <i>czy jesteśmy w trybie poziomym</i> [<a href="#p3">3</a>]; + p. <a href="#fi"><tt>\fi</tt></a>, <a href="#else"><tt>\else</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifinner">\ifinner</a> </td> + <td>początek instrukcji warunkowej; <i>czy jesteśmy w + wewnętrznym trybie pionowym</i> [<a href="#p3">3</a>]; + p. <a href="#fi"><tt>\fi</tt></a>, <a href="#else"><tt>\else</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifmmode">\ifmmode</a> </td> + <td>początek instrukcji warunkowej <i>czy + jesteśmy w trybie matematycznym</i>; + p. <a href="#fi"><tt>\fi</tt></a>, <a href="#else"><tt>\else</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifnum">\ifnum</a> <i>liczba<sub>1</sub></i> <i>rel</i> <i>liczba<sub>2</sub></i></td> + <td>początek instrukcji + warunkowej porównującej wartości typu <i>liczba</i> (całkowita); <i>rel</i> oznacza znak + relacji i może przyjmować postać: + <tt>=</tt> -- równość, + <tt>></tt> -- większy + <tt><</tt> -- mniejszy; + p. <a href="#fi"><tt>\fi</tt></a>, <a href="#else"><tt>\else</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifodd">\ifodd</a> <i>liczba</i> </td> + <td> początek instrukcji warunkowej sprawdzającej czy + <i>liczba</i> (całkowita) jest nieparzysta; + p. <a href="#fi"><tt>\fi</tt></a>, <a href="#else"><tt>\else</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="iftrue">\iftrue</a> </td> + <td> początek instrukcji warunkowej; zawsze prawda!; + p. <a href="#fi"><tt>\fi</tt></a>, <a href="#else"><tt>\else</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifvbox">\ifvbox</a> <i>numer_pudełka</i> </td> + <td>początek instrukcji warunkowej + sprawdzającej czy wskazane (p. <a href="#setbox"><tt>\setbox</tt></a>) pudełko (pionowe) + jest puste; + p. <a href="#fi"><tt>\fi</tt></a>, <a href="#else"><tt>\else</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifvmode">\ifvmode</a> </td> + <td>początek instrukcji warunkowej <i>czy jesteśmy w trybie pionowym</i> [<a href="#p3">3</a>]; + p. <a href="#fi"><tt>\fi</tt></a>, <a href="#else"><tt>\else</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifvoid">\ifvoid</a> <i>numer_pudełka</i> </td> + <td>początek instrukcji warunkowej sprawdzającej czy pudełko + o podanym numerze jest puste; + p. <a href="#fi"><tt>\fi</tt></a>, <a href="#else"><tt>\else</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifx">\ifx</a> <i>token<sub>1</sub></i> <i>token<sub>2</sub></i> </td> + <td>początek instrukcji + warunkowej: czy <i>tokeny</i> są zgodne co do typów i + rozwinięć; + p. <a href="#fi"><tt>\fi</tt></a>, <a href="#else"><tt>\else</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ignorespaces">\ignorespaces</a></td> + <td>TeX przetwarza kolejne tokeny i je ignoruje, aż + napotka token różny od <i>space token</i> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="immediate">\immediate <i>operacja we/wy</i></a> </td> + <td>klauzula powodująca natychmiastowe wykonanie operacji we/wy (bez oczekiwania na wyprowadzenie strony + do pliku <tt>dvi</tt>) +<a href="#openout">openout</a>, +<a href="#openin">openin</a>, +<a href="#closeout">closeout</a>, +<a href="#closein">closein</a>, +<a href="#write">write</a>, +<a href="#read">read</a>. +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="in">in</a></td> + <td>jednostka miary; cal + (1 in = 2.54 <a href="#cm">cm</a>), p. <a href="#true"><tt>true</tt></a>, + <a href="#tab_jed">tablica jednostek</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="indent">\indent</a> </td> + <td>wstawienie pustego pudełka o szerokości + <a href="#parindent"><tt>\parindent</tt></a>, jeśli TeX jest w trybie pionowym + następuje przejście + w tryb poziomy (oraz wstawienie tokenu <a href="#everypar"><tt>\everypar</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="input">\input</a> <i>nazwa_zbioru</i> </td> + <td>wczytaj wskazany zbiór (domyślne rozszerzenie nazwy: <tt>tex</tt>); + zostanie on dołączony w bieżącym miejscu + tak jakby zawartość była wstawiona bezpośrednio (z zachowaniem + trybu pracy itp.) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="inputlineno">\inputlineno</a> </td> + <td>w tym rejestrze umieszczany jest numer bieżącej linii przetwarzanego + zbioru wejściowego +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="insert">\insert</a> <i>n</i> {<i>materiał</i>}</td> + <td>polecenie konstruujące wstawkę o numerze <i>n</i> (insert) + zawierającą materiał, który może przemieszczać się między stronami, + każda wstawka ma powiązane ze sobą rejestry (o tych samych numerach lub + synonimach): + <table> + <tr valign="top"><td class="nowrap"> + <a href="#box"><tt>\box</tt></a> <i>n</i> </td><td class="nowrap">--</td><td> w procedurze wyjściowej zawiera treść wstawki; + </td></tr> + <tr valign="top"><td class="nowrap"> + <a href="#count"><tt>\count</tt></a> <i>n</i> </td><td class="nowrap">--</td><td> podaje współczynnik skalowania wysokości wstawki (w częściach na 1000) + dla algorytmu podziału na strony (1000 oznacza + współczynnik skalowania 1, + 0 -- wstawka nie jest brana pod uwagę w liczeniu wysokości strony), dzięki + czemu na stronie może być przewidziane miejsce na wstawkę; + </td></tr> + <tr valign="top"><td class="nowrap"> + <a href="#dimen"><tt>\dimen</tt></a> <i>n</i> </td><td class="nowrap">--</td><td> maksymalna wysokość wstawek danego rodzaju przypadających + na jedną stronę; + </td></tr> + <tr valign="top"><td class="nowrap"> + <a href="#skip"><tt>\skip</tt></a> <i>n</i> </td><td class="nowrap">--</td><td> dodatkowy odstęp uwzględniany przy liczeniu wysokości + strony, na której pojawia się choć jedna wstawka danego rodzaju; + </td></tr> + </table> + wstawki są przez TeX-a zbierane osobno i uwzględniane w algorytmie łamania + strony; podczas wykonywania procedury wyjściowej są ładowane do odpowiednich pudełek + i powinny zostać w niej stosownie wykorzystane +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="insertpenalties">\insertpenalties</a></td> + <td>ma dwa znaczenia, podczas normalnego składu, trzyma + sumę wartości kar za złamanie wstawek (inserts) dla ostatnio + rozpatrzonego punktu łamania strony; podczas procedury wyjściowej + <tt>\insertpenalties</tt> równy jest + liczbie wstawek, które nie zmieściły + się na aktualnej stronie i oczekują na kolejne wywołane output-u +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="interlinepenalty">\interlinepenalty</a> <i>wartość</i> </td> + <td>kara (liczba całkowita) wstawiana między + liniami akapitu w procesie łamania strony +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="jobname">\jobname</a> </td> + <td>rejestr przechowuje nazwę przetwarzanego zbioru (głównego) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="kern">\kern</a> <i>dimen</i> </td> + <td>przesunięcie następującego za nim materiału (może być ujemne) w + poziomie lub pionie w zależności od aktualnego trybu pracy; + p. <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="language">\language</a>=<i>wartość</i> </td> + <td>ustawienie numeru języka (liczba całkowita), jego bieżąca wartość + określa reguły przenoszenia wyrazów, + jeśli <i>wartość</i> nie + wskazuje na zdefiniowany zbiór reguł, mechanizm przenoszenia + jest wyłączany; p. <a href="#setlanguage"><tt>\setlanguage</tt></a>, + <a href="#lefthyphenmin"><tt>\lefthyphenmin</tt></a>, + <a href="#righthyphenmin"><tt>\righthyphenmin</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="lastbox">\lastbox</a></td> + <td>wstawienie do składu (tylko w trybie poziomym) + zawartości ostatnio użytego rejestru pudełkowego; + p. <a href="#copy"><tt>\copy</tt></a>, + <a href="#setbox"><tt>\setbox</tt></a>, + <a href="#unhcopy"><tt>\unhcopy</tt></a>, + <a href="#unhbox"><tt>\unhbox</tt></a>, + <a href="#unvcopy"><tt>\unvcopy</tt></a>, + <a href="#unvbox"><tt>\unvbox</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="lastkern">\lastkern</a> </td> + <td>rejestr zawierający wartość sumy ostatnich, + następujących po sobie przesunięć, + realizowanych poleceniem <a href="#kern"><tt>\kern</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="lastpenalty">\lastpenalty</a> </td> + <td>rejestr zawiera wartość ostatnio wstawionych kar (ew ich sumę) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="lastskip">\lastskip</a> </td> + <td>rejestr zawiera wartość wstawionego poprzednio przesunięcia + poleceniem <a href="#hskip"><tt>\hskip</tt></a>, + <a href="#vskip"><tt>\vskip</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="lccode">\lccode</a> <i>kod_znaku</i>=<i>kod_znaku</i> </td> + <td> drugi parametr określa kod znaku będącego odpowiednikiem ,,lowercase'' + dla znaku określonego pierwszym parametrem + (p. <a href="#lowercase"><tt>\lowercase</tt></a>); + (p. <a href="#kod_znaku"><tt>kod_znaku</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> + <a id="leaders">\leaders</a> <i>box</i>\hskip <i><a + href="#glue">glue</a></i><br/> + \leaders <i>rule</i>\hskip <i><a href="#glue">glue</a></i> </td> + <td> konstrukcja powtarza specyfikację <i>box</i> lub <i>rule</i> + wypełniając przestrzeń przesunięcia określonego przez <tt><a + href="#hskip">\hskip</a> + <i><a href="#glue">glue</a></i></tt> (p. <a href="#cleaders"><tt>\cleaders</tt></a> + i <a href="#xleaders"><tt>\xleaders</tt></a>) -- całość traktowana + jest jak ,,sprężyna'' (<a href="#glue">glue</a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="left">\left</a> <i>delim</i> </td> + <td>operator wymuszający wielkość delimitera i wymuszający + kategorię na ,,otwierający''; p + <a href="#delimietrfactor"><tt>\delimietrfactor</tt></a> i + <a href="#delimitershortfall"><tt>\delimitershortfall</tt></a>. + Dla każdego <tt>\left</tt> musi istnieć + <a href="#right"><tt>\right</tt></a>. Znak kropki + (<tt>.</tt>) oznacza delimiter pusty +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="lefthyphenmin">\lefthyphenmin</a> <i>liczba</i> </td> + <td>minimalna długość fragmentu wyrazu (liczba liter) + pozostawianego na końcu linii przy przenoszeniu + (p. <a href="#language"><tt>\language</tt></a> i <a href="#righthyphenmin"><tt>\righthyphenmin</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="leftskip">\leftskip</a>=<i>glue</i> </td> + <td>parametr określa moc ,,sprężyny'' (<a href="#glue"><i>glue</i></a>) wstawianej + z lewej strony materiału strony +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="leqno">\leqno</a>{<i>materiał</i>} </td> + <td>konstrukcja umieszczająca <i>materiał</i> (w trybie matematycznym) + z lewej strony wzoru + wystawionego (<i>display</i>), służąca do numerowania (oznaczania) + wzorów z lewej strony + (p. <a href="#eqno"><tt>\eqno</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +\let\<i>makro</i>=<i>inne_makro</i> </td><td>makropodstawienie, przypisanie + makroinstrukcji wartości innego makra (bez rozwijania) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="limits">\limits</a> </td> + <td>polecenie określające miejsce położenia indeksu (frakcji) dolnego i górnego; zawsze + nad/pod obiektem; p. też <a href="#displaylimits"><tt>\displaylimits</tt></a> + oraz <a href="#nolimits"><tt>\nolimits</tt></a>; + np.: <tt>\def\int{\intop\limits}</tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="linepenalty">\linepenalty</a>=<i>wartość</i> </td> + <td>kara (liczba całkowita) wstawiana w każdej + linii (na wyjściu) + przez TeX-a w procesie łamania akapitu; może jako mechanizm wpływający + na liczbę linii akapitu (p. też <a + href="#looseness"><tt>\looseness</tt></a>, + [<a href="#p1">1</a>]) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="lineskip">\lineskip</a>=<i>glue</i> </td> + <td>odległość między liniami (dołem linii górnej, a górą linii + bieżącej -- + <b>nie</b> liniami bazowymi wierszy!); + jeśli + (p. <a href="#lineskiplimit"><tt>\lineskiplimit</tt></a>), + <tt>\baselineskip - d<sub>n-1</sub> - h<sub>n</sub> + > <a href="#lineskiplimit">\lineskiplimit</a></tt> + odległością staje się <a href="#lineskip"><tt>\lineskip</tt></a>, + w przeciwnym razie + będzie nią <a href="#baselineskip"><tt>\baselineskip</tt></a> + (ale jako odległość + między liniami bazowymi + wierszy) (<tt>d<sub>n-1</sub></tt> -- głębokość poprzedniej + linii, <tt>h<sub>n</sub></tt> -- wysokość bieżącej linii) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="lineskiplimit">\lineskiplimit</a>=<i>dimen</i> </td> + <td>wartość progowa kiedy <a href="#baselineskip"><tt>\baselineskip</tt></a> zmieniany + jest na <a href="#lineskip"><tt>\lineskip</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="long">\long</a> </td> + <td>polecenie modyfikujące sens poleceń <a href="#def"><tt>\def</tt></a>, + <a href="#edef"><tt>\edef</tt></a>, + <a href="#xdef"><tt>\xdef</tt></a> i <a href="#gdef"><tt>\gdef</tt></a> + tak, że + parametr może zawierać kilka akapitów (np: <tt>\long\def\mmm#1{{\bf #1}}</tt>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="looseness">\looseness</a>=<i>liczba</i> </td> + <td>sugeruje TeX-owi, aby złożył akapit + (<i>liczba</i> dodatnia) o wskazaną liczbę linii dłuższy + lub krótszy (<i>liczba</i> ujemna); sugestia zostanie wzięta + pod uwagę jeśli parametry składu zostaną zachowane + (p. też <a + href="#linepenalty"><tt>\linepenalty</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="lower">\lower</a> <i>dimen</i> <i>box</i> </td> + <td>zawartość pudełka <i>box</i> jest obniżana o <i><a + href="#dimen">dimen</a></i> + (tylko w trybie poziomym); p. <a href="#raise"><tt>\raise</tt></a>, <a href="#hbox"><tt>\hbox</tt></a>, + <a href="#vbox"><tt>\vbox</tt></a>, <a href="#copy"><tt>\copy</tt></a>, + <a href="#unhbox"><tt>\unhbox</tt></a>, <a href="#unvbox"><tt>\unvbox</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="lowercase">\lowercase</a>{<i>materiał</i>} </td> + <td>zamiana wielkich liter na małe, a ściślej na odpowiedniki + zdefiniowane przez <a href="#lccode"><tt>\lccode</tt></a> + dla użytych znaków +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mag">\mag</a>=<i>wartość</i> </td> + <td> <i>wartość</i> jest współczynnikiem + skalującym cały dokument (za wyjątkiem wielkości oznaczonych jako + <a href="#true"><tt>true</tt></a>), w obliczeniach brana jest <i>wartość</i>/1000. + Polecenia tego można użyć zanim nie zostanie wyprowadzona strona do + pliku <tt>dvi</tt>, brana jest pod uwagę ostatnia dysponowana zmiana + współczynnika +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mark">\mark</a>{<i>tekst</i>}</td> + <td>wstawia <i>tekst</i> będący jego argumentem (po rozwinięciu) jako znacznik. + Tekst ten jest dostępny dla poleceń: <a href="#topmark"><tt>\topmark</tt></a>, + <a href="#firstmark"><tt>\firstmark</tt></a>, + <a href="#splitfirstmark"><tt>\splitfirstmark</tt></a>, + <a href="#botmark"><tt>\botmark</tt></a> + i <a href="#splitbotmark"><tt>\splitbotmark</tt></a>. + Polecenie to umożliwia np. synchronizację + zawartości żywej paginy z składaną treścią +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mathaccent">\mathaccent</a> "<i>CFXX</i> <i>materiał</i></td> + <td>użycie akcentu w trybie matematycznym + o kodzie <i>XX</i>; <i>C</i> oznacza klasę znaku + (p. tabela <a href="#klasy">klas</a>), a <i>F</i> oznacza rodzinę + (p. <a href="#fam"><tt>\fam</tt></a>); + p. <a href="#mathchar"><tt>\mathchar</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mathbin">\mathbin</a> </td> + <td>deklaruje, że obiekt jest typu ,,binarny'' + np. <tt>+</tt> (p. <a href="#math">tabela odległości</a>); + p. <a href="#binoppenalty"><tt>\binoppenalty</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mathchar">\mathchar</a> "<i>CFXX</i></td> + <td> użycie znaku o kodzie <i>XX</i>; <i>C</i> oznacza klasę znaku + (p. tabela <a href="#klasy">klas</a>), a <i>F</i> oznacza rodzinę + (p. <a href="#fam"><tt>\fam</tt></a>); + p. <a href="#mathchardef"><tt>\mathchardef</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mathchardef">\mathchardef</a>\<i>nazwa</i>="CFXX</td> + <td> jest alternatywą dla sekwencji: + <tt>\def\<i>nazwa</i>{\mathchar "<i>CFXX</i>}</tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mathchoice">\mathchoice</a>{<i>D</i>}{<i>T</i>}{<i>S</i>}{<i>SS</i>} </td> + <td> konstrukcja matematyczna. W zależności od bieżącego trybu zostanie + rozwinięty odpowiedni parametr:<br/> + <i>D</i> dla <a href="#displaystyle"><tt>displaystyle</tt></a>,<br/> + <i>T</i> dla <a href="#tekststyle"><tt>tekststyle</tt></a>,<br/> + <i>S</i> dla <a href="#scriptstyle"><tt>scriptstyle</tt></a>,<br/> + <i>SS</i> dla <a href="#scriptscriptstyle"><tt>scriptscriptstyle</tt></a><br/> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mathclose">\mathclose</a> </td> + <td>deklaruje, że obiekt jest typu ,,zamykający'' np. nawias + (p. <a href="#math">tabela odległości</a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mathcode">\mathcode</a> <i>znak</i>="<i>CFXX</i></td> + <td>określa kodowanie (<i>XX</i> -- pozycja w tabeli kodowej) + <i>znaku</i> oraz klasę znaku (p. <a href="#klasy">tabela + klas</a>) + (<i>C</i>) dla rodziny <i>F</i> (p. <a href="#fam">rodzina + fontów</a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mathinner">\mathinner</a> </td> + <td>deklaruje, że obiekt jest typu ,,inny'' (p. <a href="#math">tabela + odległości</a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mathopen">\mathopen</a> </td> + <td>deklaruje, że obiekt jest typu ,,otwierający'' np. nawias + otwierający + (p. <a href="#math">tabela odległości</a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mathop">\mathop</a> </td> + <td>deklaruje, że obiekt jest typu ,,operator'' np. znak sumy + (p. <a href="#math">tabela odległości</a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mathord">\mathord</a> </td> + <td>deklaruje, że obiekt jest typu ,,ord'' np. litery greckie + (p. <a href="#math">tabela odległości</a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mathpunct">\mathpunct</a> </td> + <td>deklaruje, że obiekt jest typu ,,separator'' np. przecinek + (p. <a href="#math">tabela odległości</a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mathrel">\mathrel</a> </td> + <td>deklaruje, że obiekt jest typu ,,relacja'' + np. <tt>=</tt> (p. <a href="#math">tabela odległości</a>); + p. <a href="#relpenalty">\relpenalty</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mathsurround">\mathsurround</a>=<i>dimen</i> </td> + <td> dodatkowa odległość wstawiana przed i po + konstrukcji matematycznej nieeksponowanej (wewnątrzakapitowej); + p. <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="maxdeadcycles">\maxdeadcycles</a></td> + <td>maksymalna liczba wywołań procedury wyjściowej + nie wywołujących polecenia <a href="#shipout"><tt>\shipout</tt></a> -- po jej przekroczeniu + pojawia się komunikat błędu i wywoływania jest standardowa + procedura wyjściowa -- ma to zapobiegać zapętleniu procedury + wyjściowej; p. też + <a href="#deadcycles"><tt>\deadcycles</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="maxdepth">\maxdepth</a></td> + <td>maksymalna głębokość (<a href="#dimen"><tt>dimen</tt></a>) + dla output-owanej strony, jeśli + głębokość ostatniego pudełka na stronie jest większa od + <a href="#maxdepth"><tt>\maxdepth</tt></a>, + to jest ono odpowiednio ,,podnoszone'' (zwiększana jest jego wysokość, + tak by głębokość mieściła się w zadanym zakresie) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="meaning">\meaning</a> <i>token</i> </td> + <td>polecenie pokazuje naturę parametru; np. jeśli + <i>token</i> reprezentuje makroinstrukcję zostanie + pokazana jej definicja +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="medmuskip">\medmuskip</a>=<i>mglue</i> </td> + <td>matematyka; rejestr określający moc sprężyny trybu matematycznego + (<a href="#mglue"><i>mglue</i></a>) + domyślnie: <tt>4<a href="#mu">mu</a> <a href="#plus">plus</a> 2<a href="#mu">mu</a> + <a href="#minus">minus</a> 4<a href="#mu">mu</a></tt>; + p. <a href="#mskip"><tt>\mskip</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="message">\message</a>{<i>materiał</i>}</td> + <td><i>materiał</i> zostanie wyświetlony (po rozwinięciu) na konsoli i umieszczany w pliku + <tt>log</tt>; p. <a href="#errmessage"><tt>errmessage</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="minus">minus</a> <i>dimen</i> </td> + <td>kwalifikator określający ,,ścisk'' sprężyny (wielkości typu + <i><a href="#glue">glue</a></i>); p. <tt><a href="#dimen">dimen</a></tt> +</td></tr> +<tr><td class="ttt" valign="top"> + <a id="mkern">\mkern</a> <i>mdimen</i> </td> + <td>dodatkowe przesunięcie (dodatnie lub ujemne) o <a href="#mdimen"><i>mdimen</i></a> + w trybie matematycznym + (dopuszczalna jednostka <tt><a href="#mu">mu</a></tt>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mm">mm</a> </td> + <td>jednostka miary -- milimetr (1 mm = 0.1 <a + href="#cm">cm</a>); + p. <a href="#true"><tt>true</tt></a>, <a href="#tab_jed">tablica + jednostek</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="month">\month</a> </td> + <td>rejestr zawierający numer bieżącego miesiąca +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="moveleft">\moveleft</a> <i>dimen</i> <i>box</i> </td> + <td>przesunięcie pudełka <i>box</i> w lewo o <i><a href="#dimen">dimen</a></i> + (tylko w trybie pionowym); + p. <a href="#moveright"><tt>moveright</tt></a>, <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="moveright">\moveright</a> <i>dimen</i> <i>box</i> </td> + <td>przesunięcie pudełka <i>box</i> w prawo o <i><a + href="#dimen">dimen</a></i> + (tylko w trybie pionowym) p. <a href="#moveleft"><tt>moveleft</tt></a>, <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mskip">\mskip</a> <i>mglue</i> </td> + <td>dodatkowe przesunięcie typu <a href="#mglue"><i>mglue</i></a> + w trybie matematycznym (dopuszczalna + jednostka <a href="#mu"><tt>mu</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mu">mu</a> </td> + <td>jednostka miary (mathematical unit) jednostka używana w + określaniu odległości w trybie + matematycznym -- równa 1/18 6 parametru fontu + (<a href="#fontdimen">fontdimen6</a>) drugiej rodziny + bieżącego stylu + (jej wielkość zmienia się w miarę + przełączania trybu + <a href="#displaystyle"><tt>displaystyle</tt></a>, + <a href="#textstyle"><tt>textstyle</tt></a>, + <a href="#scriptstyle"><tt>scriptstyle</tt></a> i + <a href="#criptscriptstyle"><tt>scriptscriptstyle</tt></a>, ponieważ + wtedy zmienia się wielkość fontu) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="multiply">\multiply</a>\<i>rejestr</i> by <i>wartość</i> </td> + <td>mnożenie <i>rejestru</i> przez <i>wartość</i>; + uwaga na typ elementów -- wynik musi być sensowny + (typ wyniku przewidziany w TeXu) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="muskip">\muskip</a> <i>numer</i> </td> + <td>rejestr typu <i>muskip</i> o wskazanym <i>numerze</i> (0 -- 255) + zawierający wielkość przesunięcia w trybie matematycznym); + p. <a href="#muskipdef"><tt>\muskipdef</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> + \muskip <i>numer</i>=<i>mglue</i> </td> + <td>nadanie wartości rejestrowi o wskazanym <i>numerze</i>; + p. <a href="#muskipdef"><tt>\muskipdef</tt></a>, <a href="#mglue"><i>mglue</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="muskipdef">\muskipdef</a>\<i>nazwa</i>=<i>numer</i> </td> + <td>zdefiniowanie synonimu <tt>\nazwa</tt>, odpowiadającego + rejestrowi <a href="#muskip"><tt>\muskip</tt></a> o podanym + <i>numerze</i> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="newlinechar">\newlinechar</a>=<i>kod_znaku</i></td> + <td>definiuje znak, który jest zamieniany na znak powrotu karetki + na liście tokenów polecenia <tt><a href="#write">\write</a></tt>; + (p. <a href="#kod_znaku"><tt>kod_znaku</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="noalign">\noalign</a>{<i>materiał</i>} </td> + <td> polecenie stosowane w + konstrukcjach tabularycznych, powoduje że <i>materiał</i> nie podlega + pozycjonowaniu (p. <a href="#halign"><tt>\halign</tt></a> + i <a href="#valign"><tt>\valign</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="noboundary">\noboundary</a></td> + <td>powoduje przejście w tryb poziomy, polecenie ma wpływ na + realizację skrajnych ligatur i kernów. Prawdopodobnie ma to związek + z możliwością definiowania w foncie ligatur z niewidocznymi znakami. + Knuth bardzo enigmatycznie wyjaśnił znaczenie tego polecenia. +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="noexpand">\noexpand</a></td> + <td>zapobiega rozwijaniu następnego tokena +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="noindent">\noindent</a> </td> + <td>akapit jest rozpoczynany ,,bez wcięcia'' (przełącza w tryb poziomy) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="nolimits">\nolimits</a> </td> + <td>kwalifikator określający miejsce położenia indeksu (frakcji) dolnego i + górnego; zawsze obok obiektu (jako górna lub dolna frakcja) + p. też <a href="#displaylimits"><tt>\displaylimits</tt></a> oraz + <a href="#limits"><tt>\limits</tt></a>; + np.: <tt><a href="#def">\def</a>\int{\intop\nolimits}</tt> +</td></tr> +<tr><td class="ttt" valign="top"> + <a id="nonscript">\nonscript</a> <i>glue</i> </td> + <td>polecenie powoduje, że następujące po nim przesunięcie nie jest + kasowane w trybie <a href="#scriptstyle"><tt>\scriptstyle</tt></a> i + <a href="#scriptscriptstyle"><tt>\scriptscriptstyle</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="nonstopmode">\nonstopmode</a></td> + <td>TeX nie przerywa przetwarzania w przypadku napotkania błędu; + p. <a href="#errorstopmode"><tt>\errorstopmode</tt></a>, + <a href="#batchmode"><tt>\batchmode</tt></a>, + <a href="#scrollmode"><tt>\scrollmode</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="nulldelimiterspace">\nulldelimiterspace</a>=<i>dimen</i> </td> + <td>szerokość pustego delimitera (generowanego + poleceniem <a href="#left"><tt>\left.</tt></a> + lub <a href="#right"><tt>\right.</tt></a>); + p. <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="nullfont">\nullfont</a></td> + <td>font (pseudofont) zawsze gotowy do użycia + (zawiera pusty zestaw znaków) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="number">\number</a> <i>liczba_całkowita</i></td> + <td>polecenie wyprowadza <i>liczbę całkowitą</i> w postaci + reprezentującego ją napisu, + w postaci znormalizowanej (np. początkowe zera + są pomijane) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="omit">\omit</a></td> + <td>polecenie powoduje pominięcie deklaracji sposobu formatowania rubryki tabelki, może wystąpić + tylko na początku rubryki, czyli po + <a href="#cr"><tt>\cr</tt></a>, <a href="#amp"><tt>&</tt></a> albo + <a href="#noalign"><tt>\noalign</tt></a>. Daje taki + efekt jakby w wzorcu tabeli w danej rubryce wystąpił tylko znak + <a href="#hash"><tt>#</tt></a>; p. <a href="#halign"><tt>halign</tt></a>, <a href="#valign"><tt>\valign</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="openin">\openin</a> <i>liczba</i>=<i>nazwa_pliku</i> </td> + <td> otwarcie pliku do + odczytu, będzie mu przyporządkowany kanał o numerze <i>liczba</i> (z + zakresu 0--15); p. <a href="#read"><tt>\read</tt></a> i + <a href="#closein"><tt>\closein</tt></a>, <a + href="#immediate"><tt>\immediate</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="openout">\openout</a> <i>liczba</i>=<i>nazwa_pliku</i> </td> + <td> otwarcie pliku do + zapisu, będzie mu przyporządkowany kanał o numerze <i>liczba</i> (z + zakresu 0--15); p. <a href="#write"><tt>\write</tt></a> i + <a href="#closeout"><tt>\closeout</tt></a>, <a + href="#immediate"><tt>\immediate</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="or">\or</a> </td> + <td> część instrukcji wyboru p. <a href="#ifcase"><tt>\ifcase</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="outer">\outer</a></td> + <td>ustawia atrybut ,,zewnętrzna'' dla następującej po nim + definicji; makrodefinicje definiowane z tym atrybutem, nie mogą wystąpić + wewnątrz innych definicji, ani w parametrze innego makra. Przykładem + makrodefinicji z tym modyfikatorem jest <a href="#bye"><tt>\bye</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> + <a id="output">\output</a> <i>materiał</i></td> + <td>jest to rejestr żetonowy (token) -- ma charakter + procedury; jest on automatycznie + wywoływany w momencie znalezienia dobrego punktu podziału strony, + w tym momencie w pudełku 255 (<a href="#box"><tt>\box</tt></a>255) znajduje się zawartość + gotowej strony (current page), a + w odpowiednich pudełkach zawartości + wstawek, oraz mnóstwo ustawionych stosownie rejestrów -- zarówno + liczbowych (np. <a href="#outputpenalty"><tt>\outputpenalty</tt></a>, + <a href="#insertpenalties"><tt>\insertpenalties</tt></a>), jak np. znaczników + (<a href="#mark"><tt>\mark</tt></a>). Wewnątrz <i>materiału</i> powinny znaleźć się + konstrukcje budujące + kompletną stronę (np. dołączające paginę -- + (w szczególności musi zostać opróżnione pudełko 255) i (najczęściej) zapisać ją + (poleceniem <a href="#shipout"><tt>\shipout</tt></a>) do pliku DVI; wewnątrz procedury wyjściowej + TeX pracuje w nieco inaczej niż normalnie (na ten temat jest cały + rozdział 23 TeXbooka) w szczególności np. materiał złożony w procedurze + wyjściowej trafia z powrotem na listę bieżącej strony _przed_ + materiałem pozostałym na liście ostatnich elementów (recent contributions) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="outputpenalty">\outputpenalty</a>=<i>wartość</i></td> + <td>wartość kary na której nastąpiło ostatnie przełamanie + strony; jeśli złamanie nastąpiło na obiekcie innym niż kara, + <tt>\outputpenalty</tt> + ma wartość 10000 +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="over">\over</a> </td> + <td> konstrukcja matematyczna -- ułamek; np.: + <tt>$1 + {1 \over 1+x}$</tt> (licznik i mianownik jest + składany w stylu o jeden stopień niższym + (p. <a href="#displaystyle"><tt>\displaystyle</tt></a>, + <a href="#textstyle"><tt>\textstyle</tt></a>, + <a href="#scriptstyle"><tt>\scriptstyle</tt></a> + i <a href="#scriptscriptstyle"><tt>\scriptscriptstyle</tt></a>); + p. <a href="#above"><tt>\above</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="overfullrule">\overfullrule</a> <i>dimen</i> </td> + <td> szerokość ,,sztabki'', którą TeX + oznacza przekroczenie rozmiaru pudełka, nadanie wartości 0<a href="#pt">pt</a> likwiduje + oznaczenie, ale oczywiście nie likwiduje problemu; mechanizm zwykle używany + przy wydrukach kontrolnych; + p. <a href="#hfuzz"><i>hfuzz</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="overline">\overline</a>{<i>materiał</i>} </td> + <td> konstrukcja matematyczna; + <i>materiał</i> będzie nadkreślony +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="overwithdelims">\overwithdelims</a> <i>delim<sub>1</sub></i><i>delim<sub>2</sub></i> </td> + <td>podobnie jak <a href="#over"><tt>\over</tt></a>, ale konstrukcja + zostanie otoczona przez <i>delim<sub>1</sub></i> i + <i>delim<sub>2</sub></i>; + p. <a href="#above"><tt>\above</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pagedepth">\pagedepth</a></td> + <td>aktualna głębokość (<a href="#dimen"><tt>dimen</tt></a>) materiału + na stronie (current page), używana + przez algorytm łamania na strony; można modyfikować tą wartość choć efekty + nie są łatwe do przewidzenia +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pagefilllstretch">\pagefilllstretch</a></td> + <td>aktualne + rozciągliwości wyższego stopnia (odpowiednio ilość klejów zawierających + <a href="#filll"><tt>filll</tt></a>) materiału na stronie (current page), używane przez + algorytm łamania na strony; można modyfikować te wartości choć efekty + nie są łatwe do przewidzenia; + p. <a href="#pagefilstretch"><tt>\pagefilstretch</tt></a>,<a href="#pagefillstretch"><tt>\pagefillstretch</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pagefillstretch">\pagefillstretch</a></td> + <td>aktualne + rozciągliwości wyższego stopnia (odpowiednio ilość klejów zawierających + <a href="#fill"><tt>fill</tt></a>) materiału na stronie (current page), używane przez + algorytm łamania na strony; można modyfikować te wartości choć efekty + nie są łatwe do przewidzenia; + p. <a href="#pagefilstretch"><tt>\pagefilstretch</tt></a>,<a href="#pagefilllstretch"><tt>\pagefilllstretch</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pagefilstretch">\pagefilstretch</a></td> + <td>aktualne + rozciągliwości wyższego stopnia (odpowiednio ilość klejów zawierających + <a href="#fil"><tt>fil</tt></a>) materiału na stronie (current page), używane przez + algorytm łamania na strony; można modyfikować te wartości choć efekty + nie są łatwe do przewidzenia; + p. <a href="#pagefillstretch"><tt>\pagefillstretch</tt></a>,<a href="#pagefilllstretch"><tt>\pagefilllstretch</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pagegoal">\pagegoal</a></td> + <td>pożądana wysokość (<a href="#dimen"><tt>dimen</tt></a>) materiału + na stronie (current page), używana + przez algorytm łamania na strony; w uproszczeniu, jest to wartość + <a href="#vsize"><tt>\vsize</tt></a> + ,,zakonserwowana'' na początku strony, można modyfikować tą wartość choć + efekty nie są łatwe do przewidzenia +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pageshrink">\pageshrink</a></td> + <td>aktualna ściśliwość (<a href="#dimen"><tt>dimen</tt></a>) materiału + na stronie (current page), używana + przez algorytm łamania na strony; można modyfikować tą wartość choć efekty + nie są łatwe do przewidzenia +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pagestretch">\pagestretch</a></td> + <td>aktualna rozciągliwość (<a href="#dimen"><tt>dimen</tt></a>) materiału + na stronie (current page), + używana przez algorytm łamania na strony; można modyfikować tą wartość choć + efekty nie są łatwe do przewidzenia +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pagetotal">\pagetotal</a></td> + <td>aktualna wysokość (<a href="#dimen"><tt>dimen</tt></a>) materiału + na stronie (current page), używana + przez algorytm łamania na strony; można modyfikować tą wartość choć efekty + nie są łatwe do przewidzenia +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="par">\par</a> </td> + <td>koniec akapitu (równoważne pustej linii) +</td></tr> +<tr><td class="ttt" valign="top"> + <a id="parfillskip">\parfillskip</a>=<i>glue</i> </td> + <td>sprężyna dodawana na końcu akapitu (po ostatnim znaku); standardowo o ,,mocy'' + <tt>0<a href="#pt">pt</a> <a href="#plus">plus</a> 1<a href="#fil">fil</a></tt>. + Powoduje że ostatnia linia akapitu ma swoją nominalną długość, + taką, jaka wynika z jej zawartości. Zmiana jej długości + nominalnej spowoduje wyłączenie mechanizmu kontroli odległości + przed i po wzorze ,,eksponowanym'' (odległość będzie ustawiana zawsze na + <a href="#belowdisplayskip"><tt>\belowdisplayskip</tt></a> i + <a href="#abovedisplayskip"><tt>\abovedisplayskip</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="parindent">\parindent</a>=<i>dimen</i> </td> + <td>wielkość wcięcia akapitowego; + p. <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="parshape">\parshape</a>=<i>n</i> <i>m<sub>1</sub></i> <i>l<sub>1</sub></i> ... + <i>m<sub>n</sub></i> <i>l<sub>n</sub></i> </td> + <td>polecenie pozwala + nadać dowolny kształt akapitu; <i>n</i> określa liczbę linii akapitu + podlegających modyfikacji, pary liczb: <i>m<sub>n</sub></i> <i>l<sub>n</sub></i> + określają lewy margines i długość wiersza w poszczególnych liniach akapitu, + jeżeli akapit będzie miał więcej niż <i>n</i> wierszy, pozostałe będą miały + cechy takie jak w ostatniej wyspecyfikowanej linii (wartość + parametru jest zerowana po zakończeniu akapitu), p.  też <a href=#hangafter><tt>\hangafter</tt></a>, <a href=#hangindent><tt>\hangindent</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="parskip">\parskip</a>=<i>glue</i> </td> + <td>rejestr zawiera wielkość odstępu między akapitami +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="patterns">\patterns</a>{<i>definicje</i>} </td> + <td> <i>definicje</i> określają reguły + przenoszenia wyrazów (tylko <tt>initex</tt>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pausing">\pausing</a> <i>liczba</i> </td> + <td> jeśli <i>liczba</i> jest większa od zera, TeX + wstrzymuje pracę po wczytaniu każdej linii tekstu i wyświetla ją na konsoli, + można ją zatwierdzić lub wprowadzić inny tekst +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pc">pc</a> </td> + <td>jednostka miary -- pica (1 pc = 12 <a href="#pt">pt</a>); + p. <a href="#true"><tt>true</tt></a>, <a href="#tab_jed">tablica + jednostek</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="penalty">\penalty</a>=<i>wartość</i> </td> + <td>kara (liczba całkowita) o podanej wartości wstawiana w miejscu + użycia (wartość 10000 oznacza nieskończoność); + znaczenie zależy od kontekstu +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="plus">plus</a> <i>dimen</i> </td> + <td>kwalifikator określający ,,rozciąg'' sprężyny (wielkości + typu <i><a href="#glue">glue</a></i>); + p. <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="postdisplaypenalty">\postdisplaypenalty</a>=<i>wartość</i> </td> + <td>kara (liczba całkowita) za złamanie + strony po wzorze eksponowanym (wystawionym) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="predisplaypenalty">\predisplaypenalty</a>=<i>wartość</i> </td> + <td>kara (liczba całkowita) za złamanie strony + przed wzorem eksponowanym (wystawionym) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="predisplaysize">\predisplaysize</a> </td> + <td>do rejestru <tt>\predisplaysize</tt> wpisywana jest efektywna szerokość wiersza +poprzedzającego równanie (<i>p</i>) zgodnie z następującymi regułami: jeżeli +przed równaniem nie wystąpił żaden wiersz (na przykład jeśli znacznik <tt>$$</tt> +wystąpił bezpośrednio po instrukcji <a href="#noindent"><tt>\noindent</tt></a> +lub po zamykającym inne równanie +znaczniku <tt>$$</tt>), <i>p</i> przyjmuje wartość -16383.99999pt (<tt>-\maxdimen</tt>, czyli +najmniejszy dopuszczalny wymiar). W przeciwnym razie TeX sprawdza pudełko +utworzone przez poprzedni wiersz i określa wartość <i>p</i> jako równą szerokości +wnętrza pudełka, plus przesunięcie pudełka w prawo, plus dwie jednostki <a href="em"><tt>em</tt></a> z +bieżącego fontu. Jeśli jednak szerokość wnętrza pudełka zależy od ściśliwości +lub rozciągliwości odstępów -- jeśli na przykład klej <a href="#parfillskip"><tt>\parfillskip</tt></a> ma wartość +skończoną -- wówczas <i>p</i> przyjmuje wartość <tt>\maxdimen</tt>. +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pretolerance">\pretolerance</a>=<i>wartość</i> </td> + <td>akceptowalna kiepskość składu akapitu. jeżeli jest + spełniona (w pierwszym przebiegu + TeX próbuje złożyć akapit bez przenoszenia wyrazów) to nie nastąpi drugi przebieg, + jeżeli nie zostanie + osiągnięta następuje drugie podejście do składu uwzględniając reguły przenoszenia + wyrazów, wartość <tt>-1</tt> oznacza rezygnację z pierwszego + przebiegu [<a href="#p1">1</a>] +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="prevdepth">\prevdepth</a></td> + <td>zawiera głębokość (<a href="#dimen"><tt>dimen</tt></a>) ostatniego pudełka dołączonego + do listy + pionowej, wartość ta używana jest przy ustalaniu odstępów międzyliniowych; + bywa użyteczna do kompensowania głębokości pudełka + np. <a href="#vskip"><tt>\vskip</tt></a>-<a href="#prevdepth"><tt>\prevdepth</tt></a>; + wartość tą można także modyfikować; uwaga -- gdy lista pionowa jest pusta + <a href="#prevdepth"><tt>\prevdepth</tt></a> przyjmuje wartość -1000<a href="#pt"><tt>pt</tt></a>, + tą samą wartość, ma po wstawieniu + do listy, a także po użyciu makra <a href="#nointerlineskip"><tt>\nointerlineskip</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="prevgraf">\prevgraf</a> </td> + <td>rejestr zawiera liczbę linii (count) w ostatnio złożonym akapicie (lub jego osobno + złożonej części -- np. przed wzorem eksponowanym) -- wykorzystywana przez + polecenia <a href="#hangafter"><tt>\hangafter</tt></a> i + <a href="#parshape"><tt>\parshape</tt></a>; wartość tą można modyfikować; + uwaga: każdy wzór eksponowany jest liczony jako trzy linie +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pt">pt</a> </td> + <td>jednostka miary -- punkt typograficzny + (1 pt = 1/12 <a href="#pc">pc</a>); + p. <a href="#true"><tt>true</tt></a>, <a href="#tab_jed">tablica + jednostek</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="radical">\radical</a>="<i>f<sub>1</sub>XXf<sub>2</sub>YY</i></td> + <td>konstrukcja pierwiastka: <i>f<sub>1</sub></i>, + <i>f<sub>2</sub></i> rodzina dla wersji ,,małej'' i ,,dużej'' + <i>XX</i>, <i>YY</i> kody znaków dla odpowiadających im rodzin +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="raise">\raise</a> <i>dimen</i> <i>box</i> </td> + <td>zawartość pudełka <i>box</i> jest podnoszona o <i><a + href="#dimen">dimen</a></i> + (tylko w trybie poziomym); p. <a href="#lower"><tt>\lower</tt></a>, <a href="#hbox"><tt>\hbox</tt></a>, + <a href="#unhbox"><tt>\unhbox</tt></a>, <a href="#unvbox"><tt>\unvbox</tt></a>, + <a href="#vbox"><tt>\vbox</tt></a>, <a href="#copy"><tt>\copy</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="read">\read</a> <i>numer</i> to \<i>skewencja_sterująca</i> </td> + <td> wczytanie linii z kanału wejściowego <i>numer</i> + (p. <a href="#openin"><tt>\openin</tt></a>, <a href="#immediate"><tt>\immediate</tt></a>) i umieszczeniu jej ,,pod nazwą'' + <tt>\sekwencja_sterująca</tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="relax">\relax</a> </td> + <td>NIC, ale jego użycie powoduje zakończenie analizy poprzedzającego tokenu +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="relpenalty">\relpenalty</a>=<i>wartość</i> </td> + <td>kara za złamanie linii po operatorze relacji + (<i>rel atom</i>); p. <a href="#mathrel"><tt>\mathrel</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="right">\right</a> <i>delim</i> </td> + <td>operator wymuszający wielkość delimitera i ustawiający + kategorię na ,,zamykający''; + p. <a href="#delimiterfactor"><tt>\delimiterfactor</tt></a> + i <a href="#delimitershortfall"><tt>\delimitershortfall</tt></a>. + Dla każdego <a href="#right"><tt>\right</tt></a> musi istnieć + <a href="#left"><tt>\left</tt></a>. Znak kropki + <tt>.</tt> oznacza delimiter pusty +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="righthyphenmin">\righthyphenmin</a>=<i>liczba</i> </td> + <td>minimalna długość fragmentu wyrazu (liczba liter) + przenoszonego do następnej linii przy przenoszeniu + (p. <a href="#language"><tt>\language</tt></a> i <a href="#lefthyphenmin"><tt>\lefthyphenmin</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="rightskip">\rightskip</a>=<i>glue</i> </td> + <td>parametr określa moc ,,sprężyny'' (<a href="#glue"><i>glue</i></a>) dodawanej + z prawej strony materiału strony +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="romannumeral">\romannumeral</a> <i>wartość</i> </td> + <td>wyprowadza wartość w postaci + zapisu ,,rzymskiego'' (tylko część całkowita) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="scaled">scaled</a> <i>współczynnik</i> </td> + <td>mnożnik określający przeskalowanie fontu + (mnożnik = 1/1000 * <i>współczynnik</i>) + np.: <tt><a href="#font">font</a>\xii=plr10 scaled 1200</tt> + (równoważny + <tt><a href="#font">font</a>\xii=plr10 <a href="#at">at</a> 12<a href="#pt">pt</a></tt>) + Uwaga! Zdefiniowany font <tt>\xii</tt> to nie to samo co font + <tt>plr12</tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="scriptfont">\scriptfont</a> <i>f</i> = \<i>nazwa_fontu</i> </td> + <td> ustalenie fontu dla + <a href="#scriptstyle"><tt>\scriptstyle</tt></a> dla rodziny o numerze <i>f</i> (0--15); + p. <a href="#font"><tt>\font</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="scriptscriptfont">\scriptscriptfont</a> <i>f</i> = \<i>nazwa_fontu</i> </td> + <td> ustalenie fontu dla + <a href="#scriptscriptstyle"><tt>\scriptscriptstyle</tt></a> dla rodziny o + numerze <i>f</i> (0--15); + p. <a href="#font"><tt>\font</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="scriptscriptstyle">\scriptscriptstyle</a> </td> + <td>przełączenie składu matematyki w tryb <tt>scriptscript</tt> + (p. <a href="#limits"><tt>\limits</tt></a>, + <a href="#nolimits"><tt>\nolimits</tt></a>, + <a href="#displaylimits"><tt>\displaylimits</tt></a>, + <a href="#displaystyle"><tt>\displaystyle</tt></a>, + <a href="#textstyle"><tt>\textstyle</tt></a>, + <a href="#scriptstyle"><tt>\scriptstyle</tt></a>, + <a href="#textfont"><tt>\textfont</tt></a>, + <a href="#scriptfont"><tt>\scriptfont</tt></a>, + <a href="#scriptscriptfont"><tt>\scriptscriptfont</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="scriptspace">\scriptspace</a>=<i>dimen</i> </td> + <td>dodatkowa odległość po konstrukcji <i><a href="#subscript">subscript</a></i> + (<tt>_{...}</tt>) i + <a href="#superscript"><i>superscript</i></a> (<tt>^{...}</tt>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="scriptstyle">\scriptstyle</a> </td> + <td>przełączenie składu matematyki w tryb <tt>script</tt> + (p. <a href="#limits"><tt>\limits</tt></a>, + <a href="#nolimits"><tt>\nolimits</tt></a>, + <a href="#displaylimits"><tt>\displaylimits</tt></a>, + <a href="#displaystyle"><tt>\displaystyle</tt></a>, + <a href="#textstyle"><tt>\textstyle</tt></a>, + <a href="#scriptscriptstyle"><tt>\scriptscriptstyle</tt></a>, + <a href="#textfont"><tt>\textfont</tt></a>, + <a href="#scriptfont"><tt>\scriptfont</tt></a>, + <a href="#scriptscriptfont"><tt>\scriptscriptfont</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="scrollmode">\scrollmode</a></td> + <td>TeX nie przerywa przetwarzania w przypadku pojawienia się + błędu; p. <a href="#errorstopmode"><tt>\errorstopmode</tt></a>, + <a href="#batchmode"><tt>\batchmode</tt></a>, + <a href="#nonstopmode"><tt>\nonstopmode</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="setbox">\setbox</a> <i>numer_pudełka</i>=<i>box</i> </td> + <td>zapamiętuje zawartość pudełka + <i>box</i> w wskazanym rejestrze pudełek + (<i>box</i> może być jednym z obiektów: + <a href="#hbox"><tt>\hbox</tt></a>, + <a href="#vbox"><tt>\vbox</tt></a>, + <a href="#vtop"><tt>\vtop</tt></a>, + <a href="#box"><tt>\box</tt></a>, + <a href="#copy"><tt>\copy</tt></a>, + <a href="#vsplit"><tt>\vsplit</tt></a>, + <a href="#lastbox"><tt>\lastbox</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="setlanguage">\setlanguage</a> <i>numer</i></td> + <td>wybiera bieżący język (zestaw reguł przenoszenia + wyrazów), słuzy do chwilowego przełączanie reguł wewnątrz akapitu, + Zestawy reguł są konstruowane (i numerowane) w czasie działania + iniTeX-a; p. <a href="#language"><tt>\language</tt></a>, <a href="#patterns"><tt>\patterns</tt></a> + +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="sfcode">\sfcode</a> <i>kod_znaku</i>=<i>wartość</i> </td> + <td>wartość mająca wpływ na obliczenie odległości + między wyrazami, + standardowo jest predefiniowana dla każdego znaku w foncie i przyjmuje + zwykle następujące wartości: 0 dla nawiasów zamykających, 1000 dla liter, + 3000 dla znaków punktuacyjnych, które wg niektórych zwyczajów typograficznych + wymagają dodatkowej odległości (np.: <tt>.</tt>) i z zakresu 1000--2000 + dla innych znaków punktuacyjnych, np.: <tt>,</tt>). Standardowo + odległość międzywyrazowa jest wielkością projektową fontu i składa + się z dwu parametrów (p. <a href="#fontdimen"><tt>\fontdimen</tt></a>): + normalnego i ekstra, dodawanego + jeśli <a href="#sfcode"><tt>\sfcode</tt></a> znaku kończącego wyraz > 2000. + Odległości można + zmienić modyfikując parametry <a href="#spaceskip"><tt>\spaceskip</tt></a> + o <a href="#xspaceskip"><tt>\xspaceskip</tt></a>; + zależności pokazuje tabela: + <table border="1"> + <tr><td><a href="#sfcode"><tt>\sfcode</tt></a></td> + <td><a href="#spaceskip"><tt>\spaceskip</tt></a></td> + <td><a href="#xspaceskip"><tt>\xspaceskip</tt></a></td><td>odległość</td></tr> + <tr><td>0-999 + </td><td>=0</td><td>=0</td><td><tt><a href="#fontdimen">\fontdimen</a>2</tt><sup>*</sup></td></tr> + <tr><td>0-999 + </td><td>!=0</td><td>*</td><td><a href="#spaceskip"><tt>\spaceskip</tt></a><sup>*</sup></td></tr> + <tr><td>1000 + </td><td>0</td><td>*</td><td><tt><a href="#fontdimen">\fontdimen</a>2</tt><sup>*</sup></td></tr> + <tr><td>1000 + </td><td>!=0</td><td>*</td><td><a href="#spaceskip"><tt>\spaceskip</tt></a></td></tr> + <tr><td>>2000</td> + <td>0</td><td>=0</td><td><tt><a href="#fontdimen">\fontdimen</a>2<sup>*</sup>+<a href="#fontdimen">\fontdimen</a>7</tt></td></tr> + <tr><td>>2000</td> + <td>!=0</td><td>=0</td><td><tt><a href="#fontdimen">\fontdimen</a>7+<a href="#spaceskip">\spaceskip</a></tt></td></tr> + <tr><td>>2000</td> + <td>*</td><td>!=0</td><td><a href="#xspaceskip"><tt>\xspaceskip</tt></a></td></tr> + </table> + <sup>*</sup> -- dla tych wielkości rozciąg (<i>stretch</i>) jest mnożony + przez f/1000, a ścisk (<i>shrink</i>) przez 1000/f, gdzie f jest + wartością <a href="#sfcode"><tt>\sfcode</tt></a> + p. też <a href="#spacefactor"><tt>\spacefactor</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="shipout">\shipout</a> <i>pudełko</i></td> + <td>wysyła <i>pudełko</i> stanowiące jej parametr jako kolejną stronę + do DVI, czyli dopisuje do pliku <i>jobname</i>.DVI; najczęściej polecenie + to jest wywoływane w procedurze wyjściowej + (output routine), ale może być użyte w każdym momencie; wywołanie polecenia + <tt>\shipout</tt> powoduje także właściwe wykonanie poleceń + <a href="#write"><tt>\write</tt></a> oraz <a href="#openout"><tt>\openout</tt></a> + i <a href="#closeout"><tt>\closeout</tt></a> -- czyli zapis do ewentualnych plików pomocniczych (p. też <a href="#immediate"><tt>\immediate</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="show">\show</a> <i>cos</i> </td> + <td> powoduje wyprowadzenie na konsolę bieżącej + wartości ,,cosia'' +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="showbox">\showbox</a> <i>numer_pudełka</i> </td> + <td> przerywa przetwarzanie, + informacje o wskazanym pudełku są zapisywane w pliku + <tt>log</tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="showboxbreadth">\showboxbreadth</a>=<i>liczba_całkowita</i></td> + <td>wartość tego rejestru określa liczbę pozycji (pudełek, znaków) w śledzonym pudełku + pokazywanych poleceniem <a href="#showbox"><tt>\showbox</tt></a>; + p. <a href="#showlists"><tt>\showlists</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="showboxdepth">\showboxdepth</a>=<i>liczba_całkowita</i></td> + <td>wartość tego rejestru określa głębokość śledzenia zagnieżdżeń + pudełek pokazywanych poleceniem <a href="#showbox"><tt>\showbox</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="showlists">\showlists</a></td> + <td>przerywa przetwarzanie, w pliku <tt>log</tt> zapisywane są + informacje o tym co jest wstawiane do składu (znaki, pudełka sprężyny, + zmiany trybów itp.) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="showthe">\showthe</a> <i>cos</i> </td> + <td> przerywa przetwarzanie, informacje o + ,,cosiu'' podawane są na konsoli i w pliku <tt>log</tt> (p. też + <a href="#the"><tt>\the</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="skewchar">\skewchar</a> <i>font</i> <i>znak</i></td> + <td>rejestr ustawiany dla każdego fontu, znak używany przez + algorytm pozycjonowania akcentów w matematyce, wartość kernu między znakiem + akcentowanym, a określonym przez <tt>\skewchar</tt> + jest używana jako korekta poziomego położenia + akcentu; + p. <a href="#defaultskewchar"><tt>\defaultskewchar</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="skip">\skip</a> <i>numer</i> </td> + <td> rejestr typu <i><a href="#glue">glue</a></i> o wskazanym + <i>numerze</i> (0 -- 255) + (zamiast <i>numeru</i> może być użyty synonim, + p. <a href="#skipdef"><tt>\skipdef</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> + \skip <i>numer</i>=<i>glue</i> </td> + <td> ustawienie wartości rejestru typu <a href="#glue"><i>glue</i></a> o wskazanym + <i>numerze</i> (0 -- 255) + (zamiast <i>numeru</i> może być użyty synonim, + p. <a href="#skipdef"><tt>\skipdef</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="skipdef">\skipdef</a>\<i>nazwa</i>=<i>numer</i> </td> + <td>zdefiniowanie synonimu <a href="#nazwa"><tt>\nazwa</tt></a>, + odpowiadającego + rejestrowi <a href="#skip"><tt>\skip</tt></a> o numerze <i>numer</i> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="sp">sp</a> </td> + <td>jednostka miary -- <i>scaled point</i> (65536 sp = 1 pt); + p. <a href="#true"><tt>true</tt></a>, <a href="#tab_jed">tablica + jednostek</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="spacefactor">\spacefactor</a> <i>liczba</i> </td> + <td> zmienia <a href="#sfcode"><tt>sfcode</tt></a> + poprzedzającego znaku; p. + <a href="#xspaceskip"><tt>\xspaceskip</tt></a>, + <a href="#spaceskip"><tt>\spaceskip</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="spaceskip">\spaceskip</a>=<i>glue</i> </td> + <td>w określonych sytuacjach może mieć wpływ na odległość między + wyrazami; p. <a href="#sfcode"><tt>\sfcode</tt></a>, + <a href="#spacefactor"><tt>\spacefactor</tt></a> i <a href="#xspaceskip"><tt>\xspaceskip</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="span">\span</a></td> + <td>polecenie powoduje połączenie danej rubryki tabelki z kolejną, może wystąpić + tylko na początku rubryki, czyli po <a href="#cr"><tt>\cr</tt></a>, + <a href="#amp"><tt>&</tt></a> albo + <a href="#noalign"><tt>\noalign</tt></a>. W połączonej + rubryce stosowana jest sposób formatowania z drugiej (przyłączanej) rubryki, + dlatego często używa się kombinacji + <a href="#span"><tt>\span</tt></a><a href="#omit"><tt>\omit</tt></a>; + p. <a href="#halign"><tt>\halign</tt></a>,<a href="#valign"><tt>\valign</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="special">\special</a>{<i>materiał</i>} </td> + <td><i>materiał</i> jest przekazywany na wyjście + (do pliku <tt>dvi</tt>), + po uprzednim rozwinięciu makr. Mechanizm ten + jest używany głównie do + przesłania poleceń do programów drukujących + (np. wstawienie grafiki) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="splitbotmark">\splitbotmark</a></td> + <td>przyjmuje wartość ostatniego znacznika + (<a href="#mark"><tt>\mark</tt></a>), który pojawił + się w obecnie łamanym (<a href="#vsplit"><tt>\vsplit</tt></a>) + pudełku; działa analogicznie jak polecenie + <a href="#botmark"><tt>\botmark</tt></a> dla strony +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="splitfirstmark">\splitfirstmark</a></td> + <td>przyjmuje wartość pierwszego znacznika + (<a href="#mark"><tt>\mark</tt></a>), który pojawił + się w obecnie łamanym (<a href="#vsplit"><tt>\vsplit</tt></a>) pudełku; + działa analogicznie jak polecenie + <a href="#firstmark"><tt>\firstmark</tt></a> dla strony +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="splitmaxdepth">\splitmaxdepth</a></td> + <td>maksymalna głębokość (<a href="#dimen"><tt>dimen</tt></a>) + oddzielanego pudełka, parametr + używany przez <a href="#vsplit"><tt>\vsplit</tt></a> analogicznie do parametru + <a href="#maxdepth"><tt>\maxdepth</tt></a> używanego + w algorytmie łamania na strony +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="splittopskip">\splittopskip</a></td> + <td>klej (<a href="#glue"><i>glue</i></a>) wstawiany nad częścią pozostałą w pudełku, + po użyciu polecenia <a href="#vsplit"><tt>\vsplit</tt></a>, analogiczny do parametru + <a href="#topskip"><tt>\topskip</tt></a> używanego + w algorytmie łamania na strony +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="spread">spread</a> <i>dimen</i> </td> + <td>wartość <i><a href="#dimen">dimen</a></i> definiuje o ile trzeba + wydłużyć pudełko + np. <tt><a href="#hbox">\hbox</a> spread 50<a href="#pt">pt</a>{to jest pudełko}</tt> + -- tekst + będzie złożony w pudełku o 50<a href="#pt">pt</a> dłuższym niż + rozmiar nominalny +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="string">\string <i>token</i></a> </td> + <td><i>token</i> jest pobierany bez rozwijania, + jest traktowany w + <b>całości</b> jako napis (znaki otrzymują kategorię 12, a + znak o kategorii 0, zostanie zamieniony na znak o kodzie + zdefiniowanym przez <a href="#escapechar"><tt>\escapechar</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="tabskip">\tabskip</a> <i>glue</i> </td> + <td> odległość między kolumnami konstrukcji + <a href="#valign"><tt>\valign</tt></a> i <a href="#halign"><tt>\halign</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="textfont">\textfont</a> <i>f</i> = \<i>nazwa_fontu</i> </td> + <td> ustalenie fontu dla + <a href="#displaystyle"><tt>\displaystyle</tt></a> + i <a href="#textstyle"><tt>\textstyle</tt></a> + dla rodziny o numerze <i>f</i> (0--15); + p. <a href="#font"><tt>\font</tt></a>, <a href="#fam"><tt>\fam</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="textstyle">\textstyle</a> </td> + <td>przełączenie składu matematyki w tryb <tt>text</tt> + (wielkość czcionki i sposób + ustawiania górnego i dolnego rejestru (indeksu); + p. <a href="#limits"><tt>\limits</tt></a>, + <a href="#nolimits"><tt>\nolimits</tt></a>, + <a href="#displaylimits"><tt>\displaylimits</tt></a>, + <a href="#displaystyle"><tt>\displaystyle</tt></a>, + <a href="#scriptstyle"><tt>\scriptstyle</tt></a>, + <a href="#scriptscriptstyle"><tt>\scriptscriptstyle</tt></a>, + <a href="#textfont"><tt>\textfont</tt></a>, + <a href="#scriptfont"><tt>\scriptfont</tt></a>, + <a href="#scriptscriptfont"><tt>\scriptscriptfont</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="the">\the</a> <i>coś</i> </td> + <td>wyprowadza bieżącą wartość ,,cosia'', działanie zależy + od jego natury +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="thickmuskip">\thickmuskip</a>=<i>mglue</i> </td> + <td>matematyka; rejestr określający moc sprężyny trybu matematycznego + (<a href="#mglue"><i>mglue</i></a>) + domyślnie: + <tt>5<a href="#mu">mu</a> <a href="#plus">plus</a> 5<a href="#mu">mu</a></tt>; + p. <a href="#mskip"><tt>\mskip</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="thinmuskip">\thinmuskip</a>=<i>mglue</i></td> + <td>matematyka; rejestr określający moc sprężyny trybu matematycznego + (<a href="#mglue"><i>mglue</i></a>) + domyślnie: <tt>3<a href="#mu">mu</a></tt>; + p. <a href="#mskip"><tt>\mskip</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="time">\time</a> </td> + <td>rejestr zawiera liczbę minut które upłynęły od północy +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="to">to</a> <i>dimen</i> </td> + <td>dodatkowy (opcjonalny) prefiks przy określaniu szerokości pudełka np: + <tt><a href="#hbox">\hbox</a> to 3<a href="#cm">cm</a>{Ala ma kota}</tt>; + p. <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> + <a id="toks">\toks</a> <i>numer</i>{<i>lista tokenów</i>} </td> + <td>ustalenie zawartości rejestru tokenowego o podanym <i>numerze</i> (0 -- 255) + (tokeny, jednostki leksykalne, żetony), zamiast <i>numeru</i> można + użyć synonimu; + p. <a href="#toksdef"><tt>\toksdef</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="toksdef">\toksdef</a>\<i>nazwa</i>=<i>numer</i> </td> + <td>zdefiniowanie synonimu <tt>\nazwa</tt>, + odpowiadającego rejestrowi <a href="#toks"><tt>\toks</tt></a> o numerze <i>numer</i> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="tolerance">\tolerance</a> </td> + <td>akceptowalna kiepskość składu akapitu przy drugim przebiegu + (p. <tt><a href="#pretolerance">\pretolerance</a></tt>); jeżeli TeX nie jest w + stanie jej osiągnąć jest to sygnalizowane (lub następuje + przejście do trzeciego przebiegu, + p. <tt><a href="#emergencystretch">\emergencystretch</a></tt>) + [<a href="#p1">1</a>] +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="topmark">\topmark</a></td> + <td>przyjmuje wartość ostatniego znacznika (<a href="#mark"><tt>\mark</tt></a>), +który pojawił + się na poprzedniej (niż obecnie output-owana) stronie; czyli ma takie + samo znaczenie jak miał + <a href="#botmark"><tt>\botmark</tt></a> + na poprzedniej stronie +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="topskip">\topskip</a> <i>glue</i> </td> + <td>sprężyna (<i><a href="#glue">glue</a></i>) dodawana na górze strony +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="tracingcommands">\tracingcommands</a>=<i>liczba</i></td> + <td> jeśli <i>liczba</i> równa jest 1 TeX + pokazuje (zbiór + <tt>*.log</tt>) wykonanie wszystkich wykonywanych poleceń + (makroinstrukcji), jeśli <i>liczba</i> równa jest 2 + dodatkowo pokazyane są efekty poleceń warunkowych; + wartość zero oznacza brak śledzenia +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="tracinglostchars">\tracinglostchars</a>=<i>liczba</i> </td> + <td> jeśli <i>liczba</i> jest większa niż 1 + sygnalizowane są (zbiór + <tt>*.log</tt>) przypadki braku użytego znaku w bieżącym foncie + (standardowo włączony) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="tracingmacros">\tracingmacros</a>=<i>liczba</i> </td> + <td> jeśli <i>liczba</i> jest większa niż 1 + sygnalizowane są (zbiór + <tt>*.log</tt>) szczegóły związane z rozwijaniem + makroinstrukcji +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="tracingonline">\tracingonline</a>=<i>liczba</i> </td> + <td> jeśli <i>liczba</i> jest większa niż 1 + komunikaty śledzenia są wyprowadzane również na konsolę (istotne + w przypadku innych poleceń śledzenia) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="tracingoutput">\tracingoutput</a>=<i>liczba</i> </td> + <td> jeśli <i>liczba</i> jest większa niż 1 + podawane są informacje o wyprowadzanych na wyjście (zbiór + <tt>*.log</tt>) znakach (i pudełkach) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="tracingpages">\tracingpages</a>=<i>liczba</i> </td> + <td> jeśli <i>liczba</i> jest większa niż 1 + sygnalizowane są (zbiór + <tt>*.log</tt>) szczegóły związane z procesem łamania stron +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="tracingparagraphs">\tracingparagraphs</a>=<i>liczba</i> </td> + <td> jeśli <i>liczba</i> jest większa niż 1 + sygnalizowane są szczegóły (zbiór + <tt>*.log</tt>) związane z procesem łamania akapitów +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="tracingrestores">\tracingrestores</a>=<i>liczba</i> </td> + <td> jeśli <i>liczba</i> jest większa niż 1 + sygnalizowane są (zbiór + <tt>*.log</tt>) informacje o odtworzeniu wartości parametrów + w związku z zakończeniem grupy +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="tracingstats">\tracingstats</a>=<i>liczba</i> </td> + <td> jeśli <i>liczba</i> jest większa niż 1 + sygnalizowane są (zbiór + <tt>*.log</tt>) informacje statystyczne o wykorzystaniu pamięci +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="true">true</a> </td> + <td>dodatkowy kwalifikator przy podawaniu miar, oznacza, że nie podlegają + one skalowaniu, np.: <tt><a href="#hskip">\hskip</a> 2 true <a + href="#cm">cm</a></tt>; + p. <a href="#mag"><tt>\mag</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="uccode">\uccode</a> <i>kod_znaku</i>=<i>kod_znaku</i> </td> + <td> drugi parametr określa kod znaku będącego odpowiednikiem ,,uppercase'' + dla znaku określonego pierwszym parametrem + (p. <a href="#uppercase"><tt>\uppercase</tt></a>); + (p. <a href="#kod_znaku"><tt>kod_znaku</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="uchyph">\uchyph</a>=<i>wartość</i> </td> + <td>jeśli <i>wartość</i> jest równa 0, blokowane + jest przenoszenie wyrazów zaczynających się wielką literą +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="underline">\underline</a>{<i>materiał</i>} </td> + <td>konstrukcja matematyczna; <i>materiał</i> + jest podkreślany linią ciągłą +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="unhbox">\unhbox</a> <i>numer_pudełka</i> </td> + <td> ,,wydłubanie'' zawartości + wskazanego pudełka poziomego, pudełko staje + się puste (p. <a href="#setbox"><tt>\setbox</tt></a>, + <a href="#copy"><tt>\copy</tt></a>, <a href="#box"><tt>\box</tt></a>, + <a href="#unhcopy"><tt>\unhcopy</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="unhcopy">\unhcopy</a> <i>numer_pudełka</i> </td> + <td> ,,wydłubanie'' zawartości + wskazanego pudełka poziomego, zawartość + pudełka nie ulega zmianie (p. <a href="#setbox"><tt>\setbox</tt></a>, + <a href="#copy"><tt>\copy</tt></a>, + <a href="#box"><tt>\box</tt></a>, <a href="#unhbox"><tt>\unhbox</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="unkern">\unkern</a> </td> + <td> wycofanie ostatnio użytego ,,podcięcia'' (kern) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="unpenalty">\unpenalty</a> </td> + <td> wycofanie ostatnio wstawionej kary +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="unskip">\unskip</a> </td> + <td> wycofanie ostatnio użytej ,,sprężyny'' (<a + href="#glue"><i>glue</i></a>); równoważne + <tt><a href="#vskip">\vskip</a> -<a href="#lastskip">\lastskip</a></tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="unvbox">\unvbox</a> <i>numer_pudełka</i> </td> + <td> ,,wydłubanie'' zawartości + wskazanego pudełka pionowego, pudełko staje + się puste (p. <a href="#setbox"><tt>\setbox</tt></a>, + <a href="#copy"><tt>\copy</tt></a>, + <a href="#box"><tt>\box</tt></a>, <a href="#unvcopy"><tt>\unvcopy</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="unvcopy">\unvcopy</a> <i>numer_pudełka</i> </td> + <td> ,,wydłubanie'' zawartości + wskazanego pudełka pionowego, zawartość + pudełka nie ulega zmianie (p. <a href="#setbox"><tt>\setbox</tt></a>, + <a href="#copy"><tt>\copy</tt></a>, + <a href="#box"><tt>\box</tt></a>, <a href="#unvbox"><tt>\unvbox</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="uppercase">\uppercase</a>{<i>materiał</i>} </td> + <td>zamiana małych liter na wielkie, a ściślej na + odpowiedniki zdefiniowane przez <a href="#uccode"><tt>\uccode</tt></a> + dla użytych znaków +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="vadjust">\vadjust</a>{<i>materiał</i>} </td> + <td> wstawienie <i>materiału</i> + pionowego ,,między wierszami'' (wtrącenie materiału pionowego + w trybie poziomym) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="valign">\valign</a> {<i>materiał</i>}</td> + <td>definiuje środowisko tabularyczne, <i>materiał</i> logicznie dzieli + się na dwie części: 1. preambułę, czyli definicję wierszy i sposobu ich + formatowania, 2. tekst tworzący zawartość tabeli. W preambule fakt + istnienia materiału kolumny sygnalizujemy znakiem <tt>#</tt>, a + separatorem kolumn jest znak <tt>&</tt>. Przykład: + <pre> + \halign{# & #\cr + 1234 & 1 \cr + 1 & 1234 \cr} + </pre> + jak widać poleceniem końca kolumny (poszczególne elementy w + wierszu definicji, określają poszczególne elementy kolumny w składzie) + jest <tt><a href="#cr">\cr</a></tt>; p. + <tt><a href="#crcr">\crcr</a></tt>, + <tt><a href="#noalign">\noalign</a></tt>, + <tt><a href="#span">\span</a></tt>, + <tt><a href="#omit">\omit</a></tt> oraz + <tt><a href="#halign">\halign</a></tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="vbadness">\vbadness</a>=<i>wartość</i> </td> + <td> wartość progowa; + jeżeli przy łamaniu strony ,,kiepskość'' przekroczy tą <i>wartość</i> pojawi + się komunikat +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="vbox">\vbox</a> {<i>materiał</i>} </td> + <td>wstawienie materiału pionowego (jeżeli wewnątrz nie nastąpi przejście + w tryb poziomy, to szerokość pudełka wyniesie tyle, ile największa szerokość elementu + wewnętrznego, + w przeciwnym razie szerokość pudełka wyniesie <tt><a href="#hsize">\hsize</a></tt>. + Głębokością pudełka będzie głębokość ostatniego elementu na liście + pionowej (resztę stanowi wysokość). +</td></tr> +<tr><td class="ttt" valign="top"> + \vbox to <i>dimen</i> {<i>materiał</i>}</td> + <td>j.w. ale wysokość pudełka wyniesie <i>dimen</i> (z możliwością + powstania niedomiaru lub przepełnienia) -- nie wpływa na głębokość. + p. <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> + \vbox spread <i>dimen</i> {<i>materiał</i>}</td> + <td>j.w., ale wysokość nominalna pudełka zostanie zwiększona o + <i>dimen</i> -- nie wpływa na głębokość; + p. <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="vcenter">\vcenter</a> {<i>materiał</i>} </td> + <td>konstrukcja matematyczna, analogiczna do + <a href="#vbox"><tt>\vbox</tt></a>, której wysokość i głębokość + jest jednakowa; umożliwia pozycjonowanie materiału pionowego + np. względem znaku <tt>=</tt>; np. + $$x=\vcenter{\hbox{aaaa}\hbox{bbbb}\hbox{cccc}}$$ + <tt> + <table> + <tr><td rowspan=3><i>x</i> = </td><td>aaaa</td></tr> + <tr><td>bbbb</td></tr> + <tr><td>cccc</td></tr> + </table> + </tt> +</td></tr> +<tr><td class="ttt" valign="top"> + \vcenter to <i>dimen</i> {<i>materiał</i>} </td> + <td>j.w., ale całkowity rozmiar pionowy wyniesie + <a href="#dimen"><i>dimen</i></a>; <i>materiał</i> nie jest + środkowany w pionie. +</td></tr> +<tr><td class="ttt" valign="top"> + \vcenter spread <i>dimen</i> {<i>materiał</i>} </td> + <td>j.w., ale całkowity rozmiar pionowy zostanie powiększony o + <a href="#dimen"><i>dimen</i></a>; <i>materiał</i> nie jest + środkowany w pionie. +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="vfil">\vfil</a> </td> + <td>sprężyna (<a href="#glue"><i>glue</i></a>) pionowa o zerowej wysokości i nieskończonym rozciągu + (równoważna <tt><a href="#vskip">\vskip</a> 0<a href="#pt">pt</a> <a href="#plus">plus</a> 1<a href="#fil">fil</a></tt>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="vfill">\vfill</a> </td> + <td>jw. ale mocniejsza (równoważna <tt><a href="#vskip">\vskip</a> 0<a href="#pt">pt</a> <a href="#plus">plus</a> 1<a href="#fill">fill</a></tt>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="vfilneg">\vfilneg</a> </td> + <td>równoważne <tt><a href="#vskip">\vskip</a> 0<a href="#pt">pt</a> <a href="#plus">plus</a> -1<a href="#fil">fil</a></tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="vfuzz">\vfuzz</a>=<i>dimen</i> </td> + <td> dopuszczalne <b>niesygnalizowane</b> przekroczenie długości strony; + p. <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="voffset">\voffset</a>=<i>dimen</i> </td> + <td>dodatkowe przesunięcie całego materiału strony o wskazaną + wartość w dół (w górę jeśli ujemna); + p. <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="vrule">\vrule</a> </td> + <td>linia pionowa o wysokości i głębokości zależnej od kontekstu użycia o grubości + 0.4 pt odkładana na liście poziomej; + można wyspecyfikować inne parametry np.: + <tt>\vrule <a href="#width">width</a> 3<a href="#cm">cm</a> <a href="#depth">depth</a> 1<a href="#mm">mm</a> <a href="#height">height</a> 0.5<a href="#mm">mm</a></tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="vsize">\vsize</a>=<i>glue</i> </td> + <td>wysokość materiału składu (bez stopek i nagłówków) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="vskip">\vskip</a> <i>glue</i> </td> + <td>dodatkowa odległość w pionie; użycie przełącza w tryb pionowy +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="vsplit">\vsplit</a> <i>numer_pudełka</i> to <i>dimen</i></td> + <td>poleceniu uruchamiające dla danego + pudełka (<a href="#vbox"><tt>\vbox</tt></a>) algorytm równoważny + algorytmowi łamania na strony; + od wskazanego pudełka oddzielana jest początkowa część o podanej + wysokości <i>dimen</i> i zwracana jako wynik, reszta zawartości pudełka pozostaje w nim +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="vss">\vss</a> </td> + <td>sprężyna (<a href="#glue"><i>glue</i></a>) o zerowej długości działająca w pionie + o nieskończonym ścisku i rozciągu (ale o bardzo słabej mocy); + równoważna <tt><a href="#vskip">\vskip</a> 0<a href="#pt">pt</a> + <a href="#plus">plus</a> 1<a href="#fil">fil</a> <a + href="#minus">minus</a> 1<a href="#fil">fil</a></tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="vtop">\vtop</a> {<i>materiał</i>} </td> + <td>wstawienie materiału pionowego (jeżeli wewnątrz nie nastąpi przejście + w tryb poziomy, to szerokość pudełka wyniesie tyle, ile największa szerokość elementu + wewnętrznego, + w przeciwnym razie szerokość pudełka wyniesie <tt><a href="#hsize">\hsize</a></tt>. + Wysokością pudełka będzie wysokość pierwszego elementu na liście + pionowej (resztę stanowi głębokość). +</td></tr> +<tr><td class="ttt" valign="top"> + \vtop to <i>dimen</i> {<i>materiał</i>}</td> + <td>j.w. ale głębokość pudełka wyniesie <i>dimen</i>, powiększona/pomniejszona o + pewną wartość tak, aby całkowity rozmiar pionowy był identyczny z + analogiczną konstrukcją <a href="#vbox"><tt>\vbox</tt></a> + (z możliwością + powstania niedomiaru lub przepełnienia) -- wysokość nie ulega zmianie + p. <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +\vtop spread <i>dimen</i> {<i>materiał</i>}</td> + <td>j.w., ale głębokość nominalna pudełka zostanie zwiększona o + <i>dimen</i> pomniejszoną/powiększoną o pewną wartość tak, + aby całkowity rozmiar pionowy był identyczny z + analogiczną konstrukcją <a href="#vbox"><tt>\vbox</tt></a> + p. <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="wd">\wd</a> <i>numer_pudełka</i> </td> + <td>szerokość pudełka o wskazanym numerze +</td></tr> +<tr><td class="ttt" valign="top"> + \wd <i>numer_pudełka</i>=<i>dimen</i> </td> + <td>określenie szerokości pudełka o wskazanym numerze; + p. <a href="#dimen"><i>dimen</i></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="widowpenalty">\widowpenalty</a>=<i>wartość</i></td> + <td>kara za złamanie strony przed ostatnią linią akapitu +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="width">width</a> <i>dimen</i> </td> + <td>długość linii poziomej lub grubość pionowej np.: + <tt><a href="#hrule">\hrule</a> width 1<a href="#cm">cm</a></tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="write">\write</a> <i>numer</i> {<i>lista tokenów</i>} </td> + <td> zapisanie <i>listy tokenów</i> na kanał wyjściowy o wskazanym + numerze, + p. <a href="#openout"><tt>\openout</tt></a>, <a href="#closeout"><tt>\closeout</tt></a>, + <a href="#immediate"><tt>\immediate</tt></a>, <a href="#newlinechar"><tt>\newlinechar</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="xdef">\xdef</a> <i>....</i> </td> + <td>równoważna sekwencji + <tt><a href="#global">\global</a><a href="#edef">\edef</a></tt> + (p. <a href="#def"><tt>\def</tt></a>, + <a href="#long"><tt>\long</tt></a>, <a href="#gdef"><tt>\gdef</tt></a> + <a href="#global"><tt>\global</tt></a> + i <a href="#globaldefs"><tt>\globaldefs</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="xleaders">\xleaders</a> <i>box</i>\hskip <i>glue</i> <br/> + \xleaders <i>rule</i>\hskip <i>glue</i> </td> + <td> konstrukcja powtarza specyfikację <i>box</i> lub <i>rule</i> + wypełniając przestrzeń przesunięcia określonego przez <tt><a + href="#hskip">\hskip</a> + <i><a href="#glue">glue</a></i></tt> + (p. <a href="#leaders"><tt>\leaders</tt></a> + i <a href="#cleaders"><tt>\cleaders</tt></a>) -- całość traktowana + jest jak ,,sprężyna'' (<a href="#glue"><i>glue</i></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="xspaceskip">\xspaceskip</a>=<i>glue</i> </td> + <td>w określonych sytuacjach może mieć wpływ na odległość między + wyrazami; p. <a href="#sfcode"><tt>\sfcode</tt></a>, + <a href="#spaceskip"><tt>\spaceskip</tt></a> + i <a href="#spacefactor"><tt>\spacefactor</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="year">\year</a> </td> + <td>rejestr zawierający numer bieżącego roku (licząc od początku naszej ery) +</td></tr> +</table> + +<h3><a id="s-pdftex"></a>Lista poleceń programu PDFTeX (v.1.40)</h3> + +<font size=-2> +<sup class="new">new</sup> -- polecenie wprowadzone w v.1.40<br/> +<sup class="new">exp</sup> -- polecenie wprowadzone jako eksperyment<br/> +<sup class="new">*</sup> -- nie opisane w dokumentacji (nowe)<br/> +<sup class="old">old</sup> -- polecenie zlikwidowane, lub przeznaczone do +likwidacji<br/></font> +<table border="1"> +<tr><td class="ttt" valign="top"> +<a id="nc">nc</a> </td> + <td>jednostka miary -- nowy Cicero (1nc=12<a href="#nd">nd</a>); + p. <a href="#tab_jed">tablica jednostek</a>, +<a href="#true"><tt>true</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="nd">nd</a> </td> + <td>jednostka miary -- nowy Didot + (1nd=0.375<a href="#mm">mm</a>); p. <a href="#nc">nc</a>, +<a href="#true"><tt>true</tt></a>, + <a href="#tab_jed">tablica jednostek</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="efcode">\efcode\<i>font</i> <i>znak</i>=<i>liczba</i></a> </td> + <td>polecenie określa zdolność rozciągania poszczególnych znaków (w + jednostkach <i>n</i>/1000), ale nie bardziej niż zostało to określone + dla całego fontu; p. <a href="#pdffontexpand"><tt>\pdffontexpand</tt></a>, +<a href="#pdfadjustspacing"><tt>\pdfadjustspacing</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifpdfabsnum">\ifpdfabsnum <i>liczba</i></a><sup class="new">new</sup></td> + <td>porównuje wartości absolutne liczb (p; <a href="ifnum"><tt>\ifnum</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifpdfabsdim">\ifpdfabsdim <i>dimen</i></a><sup class="new">new</sup></td> + <td>porównuje wartości absolutne wielkości typu + <i><a href="#dimen">dimen</a></i> (p; <a href="#ifdim"><tt>\ifdim</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifpdfprimitive">\ifpdfprimitive</a>\<i>polecenie</i><sup class="new">new</sup></td> + <td>instrukcja warunkowa sprawdzająca czy <i>polecenie</i> jest + poleceniem wbudowanym +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="leftmarginkern">\leftmarginkern <i>box num</i></a></td> + <td>podaje szerokość marginesu (<tt>kern</tt>-u) + lewej strony materiału zawartego w podanym pudełku???? + (p. <a href="#rightmarginkern"><tt>\rightmarginkern</tt></a>). +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="lpcode">\lpcode\<i>font</i> <i>znak</i>=<i>liczba</i></a> </td> + <td><i>liczba</i>×0.001<a href="#em"><tt>em</tt></a> określa + maksymalną wielkość wysunięcia danego znaku na lewy margines, jeśli jest on + pierwszym znakiem w linii (p. <a + href="#pdfprotrudechars"><tt>\pdfprotrudechars</tt></a>, + <a href="#rpcode"><tt>\rpcode</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfadjustspacing">\pdfadjustspacing=<i>liczba</i></a> </td> + <td>wartość parametru określa strategię pdftex-a odnośnie działania + poleceń <tt>\pdffontexpand</tt> i <tt>\efcode</tt>: 0 -- wyłączenie, + 1 -- znaki są + rozciągane/ściskane po sformatowaniu akapitu (łamanie jest identyczne + jak w TeX-u, ale robiona jest dodatkowa korekcja), + 2 -- mechanizm ściskania/rozciągania jest uruchamiany na + etapie łamania akapitu (łamanie może być inne niż w TeX-u); + p. <a href="#pdffontexpand"><tt>\pdffontexpand</tt></a> i + <a href="#efcode"><tt>\efcode</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfannot">\pdfannot</a> <i>wymiary</i> {<i>specyfikacja</i>}</td> + <td>polecenie tworzy zakładkę, zawartość <i>specyfikacji</i> + określają reguły tworzenia dokumentu <tt>pdf</tt>, + p. <a href="#pdflastannot"><tt>\pdflastannot</tt></a>, + [<a href="#p8">8</a>] +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfcatalog">\pdfcatalog{<i>kod</i>}</a> <br/> + \pdfcatalog{<i>tekst</i>} openaction {<i>specyfikacja</i>} </td> + <td> + opcja <tt>openaction</tt>?????. + ???? Jednym z parametrów jest <tt>PageMode</tt> służące do + ustalenia sposobu prezentacji + dokumentu; może on przyjmować wartości + <table> + <tr valign="top"><td><tt>/UseNone</tt></td><td>widoczny jest sam tekst (wartość + domyślna)</td></tr> + <tr valign="top"><td><tt>/UseOutline</tt></td><td>widoczne jest okno + zakładek</td></tr> + <tr valign="top"><td><tt>/UseThumbs</tt></td><td>widoczne są miniatury + stron</td></tr> + <tr valign="top"><td><tt>/FullScreen</tt></td><td>pełen ekran</td></tr> + </table> + np.: +<pre> +\pdfcatalog{ + /PageMode /FullScreen +} +</pre> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfcolorstackinit">\pdfcolorstackinit {<i>kod</i>}</a><sup class="new">new</sup><br/> +\pdfcolorstackinit [page] {<i>kod</i>}<br/> +\pdfcolorstackinit [direct] {<i>kod</i>}<br/> +\pdfcolorstackinit [page] [direct] {<i>kod</i>}</td> + <td valign="top">inicjuje nowy stos grafiki (zwraca jego numer). Parametr opcjonalny + <tt>page</tt> powoduje odtworzenie grafiki na początku każdej + strony???, parametr opcjonalny <tt>direct</tt> daje taki sam efekt jak + polecenie <a href="#pdfliteral"><tt>\pdfliteral</tt></a>????. +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfcolorstack">\pdfcolorstack<i>numer</i> <i>akcja</i> {<i>kod</i>}</a><sup class="new">new</sup></td> + <td>operuje na stosie o podanym numerze; akcją może być: <tt>push</tt> + -- <i>kod</i> jest wprowadzany na stos (po rozwinięciu); <tt>pop</tt> + usuwana jest ostatnia wartość ze stosu +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfcompresslevel">\pdfcompresslevel <i>liczba</i></a> </td> + <td>polecenie określa stopień kompresji pliku <tt>pdf</tt> + (dopuszczalne wartości 0--9; 9 -- standardowa wartość; + największa kompresja) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfcreationdate">\pdfcreationdate {<i>nazwa zbioru</i>}</a></td> + <td>zwraca datę utworzenia zbioru; + p. <a href="#pdffilemoddate">\pdffilemoddate</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfdecimaldigits">\pdfdecimaldigits <i>liczba</i></a> </td> + <td>polecenie określa dokładność (liczba cyfr po przecinku) + współrzędnych zapisywanych w pliku + <tt>*.pdf (zakres 0--4; miejsc po przecinku -- standardowo 4)</tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfdraftmode">\pdfdraftmode <i>liczba</i></a><sup class="new">new</sup> </td> + <td>???? +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfdest">\pdfdest</a> num <i>liczba</i> <i>specyfikacja</i><br/> + \pdfdest name{<i>nazwa</i>} <i>specyfikacja</i></td> + <td>polecenie tworzy obiekt docelowy o nazwie <i>nazwa</i> + dla hiperłącza (etykietę); <i>specyfikacja</i> określa akcję + przeglądarki podczas wyświetlenia obiektu, dopuszczalne są:<br/> + <a id="pdfact_open"> + <table border="1"> + <tr><td class="ttt" valign="top">fit</td><td>dopasowuje stronę do okna przeglądarki</td></tr> + <tr><td class="ttt" valign="top">fith</td><td>dopasowuje szerokość do okna przeglądarki</td></tr> + <tr><td class="ttt" valign="top">fitv</td><td>dopasowuje wysokość do okna przeglądarki</td></tr> + <tr><td class="ttt" valign="top">fitb</td><td>dopasowuje obszar określony przez <tt>Bounding Box</tt> + do okna przeglądarki</td></tr> + <tr><td class="ttt" valign="top">fitbh</td><td>dopasowuje szerokość obszaru określonego + przez <tt>Bounding Box</tt> do okna przeglądarki</td></tr> + <tr><td class="ttt" valign="top">fitbv</td><td>dopasowuje wysokość obszaru określonego + przez <tt>Bounding Box</tt> do okna przeglądarki</td></tr> + <tr><td class="ttt" valign="top" >fitr <i>spec</i></td><td>dopasowuje do obszaru podanego jako + <i>spec</i> do okna przeglądarki</td></tr> + </table> + </a> + + p. <a href="#pdfstartlink"><tt>\pdfstartlink</tt></a>, + <a href="#pdfendlink"><tt>\pdfendlink</tt></a>, + [<a href="#p8">8</a>] +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfdestmargin">\pdfdestmargin</a> <i>dimen</i></td> + <td>??? +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfeachlinedepth">\pdfeachlinedepth</a><sup class="new">*</sup></td> + <td>?? +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfeachlineheight">\pdfeachlineheight</a><sup class="new">*</sup></td> + <td>?? +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfelapsedtime">\pdfelapsedtime</a></td> + <td>rejestr zawierający czas (w 1/65536 s) od chwili startu; + p. <a href="#pdfresettimer">\pdfresettimer</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfendlink">\pdfendlink</a> </td> + <td>polecenie kończy definicję hiperłącza rozpoczęte poleceniem + <a href="#pdfstartlink"><tt>\pdfstartlink</tt></a>, + p. też + <a href="#pdfdest"><tt>\pdfdest</tt></a>, +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfendthread">\pdfendthread</a> </td> + <td>polecenie kończy definicję wątku ????; p + specyfikacja <tt>pdf</tt> [<a href="#p8">8</a>] i + <a href="#pdfstartthread"><tt>\pdfstartthread</tt></a>, + <a href="#pdftthread"><tt>\pdfthread</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfescapehex">\pdfescapehex={<i>tekst</i>}</a></td> + <td>podobnie jak <a href="#pdfescapestring">\pdfescapestring</a>, ale + na reprezentację hexadecymalną; + p. <a href="#pdfunescapehex">\pdfunescapehex</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfescapename">\pdfescapename {<i>tekst</i>}</a></td> + <td>podobnie jak <a href="#pdfescapestring">\pdfescapestring</a>, ale + na reprezentację hexadecymalną +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfescapestring">\pdfescapestring={<i>tekst</i>}</a></td> + <td><i>tekst</i> jest tłumaczony na string w sensie języka <tt>pdf</tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdffiledump">\pdffiledump {<i>nazwa zbioru</i>}</a><br/> + \pdffiledump <tt>offset</tt> <i>liczba</i> {<i>nazwa zbioru</i>}<br/> + \pdffiledump <tt>length</tt> <i>liczba</i> {<i>nazwa zbioru</i>}<br/> + \pdffiledump <tt>offset</tt> <i>liczba</i> <tt>length</tt> <i>liczba</i> {<i>nazwa zbioru</i>}</td> + <td valign="top">zwraca obraz zbioru w postaci ciągu liczb heksadecymalnych (na + podanym obszarzem jeśli określony) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdffilemoddate">\pdffilemoddate {<i>nazwa zbioru</i>}</a></td> + <td>zwraca datę modyfikacji zbioru; + p. <a href="#pdfcreationdate">\pdfcreationdate</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdffilesize">\pdffilesize {<i>nazwa zbioru</i>}</a></td> + <td>zwraca długość zbioru +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdffirstlineheight">\pdffirstlineheight</a><sup class="new">*</sup></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdffontattr">\pdffontattr</a>\<i>font</i>{<i>kod</i>} </td> + <td>???? +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdffontexpand">\pdffontexpand</a>\<i>nazwa</i> <i>specyfikacja</i> autoexpand <br/> +\pdffontexpand\<i>nazwa</i> <i>specyfikacja</i> </td> + <td><i>specyfikacją</i> są trzy parametry (w jednostkach + <i>n</i>/1000) określające + dopuszczalny rozciąg, ścisk znaków i skok zmian ścisku/rozciągu wskazanego fontu, + (p. <a href="#font"><tt>\font</tt></a>, + <a href="#pdfadjustspacing"><tt>\pdfadjustspacing</tt></a>, + <a href="#efcode"><tt>\efcode</tt></a>); + np:<br/> + <tt>\font\cmr=cmr10<br/> + \pdffontexpand\cmr 90 90 10</tt><br/> + lub<br/> + <tt>\pdffontexpand\cmr 90 90 10 autoexpand</tt><br/> + oznacza, że znaki fontu <tt>cmr</tt> mogą być być ściskane i rozciągane + maksymalnie 90/1000 nominalnej szerokości ze skokiem 10. Opcja + <tt>autoexpand</tt> powoduje że <tt>pdftex</tt> sam modyfikuje parametry fontu + (tworząc nowy), + aby spełnić określony ścisk lub rozciąg; przy braku tej opcji należy dysponować + fontami o zadanych cechach (praktycznie wszystkimi, które mogą być potrzebne - + od maksymalnego ścisku po maksymalny rozciąg z dysponowanym skokiem. +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdffontname">\pdffontname</a> \<i>font</i> </td> + <td>polecenie zwraca numer wskazanego fontu w strukturze + danych pliku wynikowego <tt>pdf</tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdffontobjnum">\pdffontobjnum</a>\<i>font</i> </td> + <td>polecenie zwraca numer obiektu który stanowi wskazany font + w strukturze danych pliku wynikowego <tt>pdf</tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdffontsize">\pdffontsize</a>\<i>font</i> </td> + <td>polecenie zwraca rozmiar wskazanego fontu (wielkość konstrukcyjną) + w <a href="#pt"><tt>pt</tt></a> (uwzględniając skalowanie) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfforcepagebox">\pdfforcepagebox</a> <i>liczba całkowita</i></td> + <td>określa typ obiektu dołączanego poleceniem <tt><a href="pdfximage">\pdfximage</a></tt> + 1 -- <tt>media box</tt>, + 2 -- <tt>crop box</tt>, + 3 -- <tt>bleed box</tt>, + 4 -- <tt>trim box</tt>, + 5 -- <tt>art box</tt>; + p. <a href="#pdfoptionalwaysusepdfpagebox">\pdfoptionalwaysusepdfpagebox</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfgamma">\pdfgamma</a>=<i>liczba całkowita</i> </td> + <td>polecenie ustala domyślny współczynnik gamma (w promilach); + p. <a href="#pdfapplygamma">\pdfapplygamma</a> + i <a href="#pdfimagegamma">\pdfimagegamma</a>. +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfhorigin">\pdfhorigin <i>dimen</i></a> </td> + <td>określa dodatkowe przesunięcie materiału strony w poziomie + (standardowo równe <tt>1 true in</tt>); odpowiada domyślnemu + marginesowi ustawianemu przez drivery interpretujące plik <tt>dvi</tt>. +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfimageapplygamma">\pdfimageapplygamma</a>=<i>liczba całkowita</i> </td> + <td>jeśli wartość ustalona na 1 to włączany jest mechanizm korekcji + gamma dla rysunków <tt>png</tt>; p. <a href="#pdfimagegamma">\pdfimagegamma</a> + i <a href="#pdfgamma">\pdfgamma</a>. +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfimagegamma">\pdfimagegamma</a>=<i>liczba całkowita</i> </td> + <td>polecenie ustala domyślny współczynnik gamma (w promilach) dla + plików graficznych <tt>png</tt>; p. <a href="#pdfapplygamma">\pdfapplygamma</a> + i <a href="#pdfgamma">\pdfgamma</a>. +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfimagehicolor">\pdfimagehicolor</a>=<i>liczba całkowita</i> </td> + <td>jeśli wartość rejestru ustawiono na 1, włącza traktowanie + dołączanych plików <tt>png</tt> w trybie koloru 16-bitowego jako ,,full + color'' (tylko dla <tt>pdf</tt> v. >=1.5) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfimageresolution">\pdfimageresolution</a>=<i>liczba</i> </td> + <td>określa rozdzielczość (w DPI) dołączanych plików graficznych (rastrowych) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfincludechars">\pdfincludechars</a>\<i>font</i>{<i>łańcuch</i>} </td> + <td>polecenie wymusza załadowanie ciągu znaków określonych przez + <i>łańcuch</i> dla wskazanego fontu do pliku <tt>pdf</tt> (standardowo + ładowane są tylko użyte znaki). +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfinclusionerrorlevel">\pdfinclusionerrorlevel</a>=<i>liczba</i> </td> + <td>rejestr, którego wartość określa reakcję pdfTeX-a na błędy w + dołączanym pliku pdf; + p. <a href="#pdfoptionpdfinclusionerrorlevel">\pdfoptionpdfinclusionerrorlevel</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfinfo">\pdfinfo=<i>tekst</i></a> </td> + <td>polecenie umożliwia podanie informacji o dokumencie; jest zbiorem + par: klucz wartość, gdzie nazwa klucza jest poprzedzona znakiem + <tt>/</tt>, a wartość jest ujęta w nawiasy <tt>()</tt> + [<a href="#p8">8</a>]; np.: + <pre> + \pdfinfo + { /Title (example.pdf) + /Creator (TeX) + /Producer (pdfTeX 1.30.4) + /Autor (Tom and Jerry) + /CreationDate (D:20040906220024+02'00') + /ModDate (D:20040906220024+02'00') + /Subject (Example) + /Keywords (mouse, cat) } + </pre> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdflastannot">\pdflastannot</a> </td> + <td>rejestr zawierający numer ostatnio zdefiniowanej zakładki, + p. <a href="#pdfannot"><tt>\pdfannot</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdflastdemerits">\pdflastdemerits</a><sup class="new">new</sup></td> + <td>??? +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdflastlinedepth">\pdflastlinedepth</a><sup class="new">*</sup></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdflastmatch">\pdflastmatch</a> <i>liczba</i><sup class="new">exp</sup></td> + <td>wybiera (rozwija się) wskazany element zapisany w tablicy podwyrażeń; + p. <a href="#pdfmatch">\pdfmatch</a> w postaci + <tt><i>pozycja</i>-><i>to co się dopasowało</i></tt>. Wewnątrz + makra <b>są</b> rozwijane, kategorie znaków nie są istotne +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdflastobj">\pdflastobj</a> </td> + <td>rejestr zawiera numer ostatnio zdefiniowanego obiektu; + p. <a href="#pdfobj"><tt>\pdfobj</tt></a>, + <a href="#pdfrefobj"><tt>\pdfrefobj</tt></a>, +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdflastxform">\pdflastxform</a> </td> + <td>polecenie zwraca numer ostatnio zdefiniowanej formy; + p. <a href="#pdfrefxform"><tt>\pdfrefxform</tt></a>, + <a href="#pdfxform"><tt>\pdfxform</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdflastximage">\pdflastximage</a> </td> + <td>polecenie zwraca numer ostatnio definiowanego obiektu graficznego; + p. <a href="#pdfrefximage"><tt>\pdfrefximage</tt></a>, + <a href="#pdfximage"><tt>\pdfximage</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdflastximagecolordepth">\pdflastximagecolordepth</a><sup class="new">*</sup></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdflastximagepages">\pdflastximagepages</a> </td> + <td>licznik zawierający liczbę stron ostatnio zdefiniowanego obiektu + graficznego (dołączanego zbioru <tt>pdf</tt>) + p. <a href="#pdfximage"><tt>\pdfximage</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdflastxpos">\pfprimitivastxpos</a> </td> + <td>umożliwia odzyskanie pozycji (współrzędna <tt>x</tt>) + na stronie zapamiętanej poleceniem + <a href="#pdfsavepos"><tt>\pdfsavepos</tt></a>; rejestr zawiera + pozycję w jednostkach + <a href="#sp"><tt>sp</tt></a>; licząc od <b>lewej krawędzi papieru</b>. Należy + pamiętać, że jest ona znana dopiero po przejściu przez procedurę + <a href="#output"><tt>\output</tt></a>, + tak więc dane można praktycznie wykorzystać + przy przetwarzaniu dwuprzebiegowym; p. też + <a href="#pdflastypos"><tt>\pdflastypos</tt></a> i + <a href="#pdfsavepos"><tt>\pdfsavepos</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdflastypos">\pdflastypos</a> </td> + <td> + umożliwia odzyskanie pozycji (współrzędna <tt>y</tt>), + na stronie, zapamiętanej poleceniem + <a href="#pdfsavepos"><tt>\pdfsavepos</tt></a>; polecenie powoduje zapamiętanie bieżącej + pozycji (w jednostkach + <a href="#sp"><tt>sp</tt></a>); licząc od <b> dolnej krawędzi papieru</b>, TeX składa (i liczy odległości) + od góry i nie operuje pojęciem długości papieru, dolny margines to jest to co pozostanie na dole kartki papieru. + W przypadku pdf-a musimy określić rozmiary kartki (jawnie lub przez domniemanie) -- służy do tego + polecenie <a href="#pdfpageheight"><tt>\pdfpageheight</tt></a>. Należy + pamiętać, że pozycja jest znana dopiero po przejściu przez procedurę + <a href="#output"><tt>\output</tt></a>, + tak więc dane można praktycznie wykorzystać + przy przetwarzaniu dwuprzebiegowym; p. też + <a href="#pdflastxpos"><tt>\pdflastxpos</tt></a> i + <a href="#pdfsavepos"><tt>\pdfsavepos</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdflinkmargin">\pdflinkmargin</a>=<i>dimen</i> </td> + <td>rejestr określa dodatkowy margines dla ramki otaczającej + hiperłącze +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfliteral">\pdfliteral</a> {<i>kod</i>}<br/> + \pdfliteral <tt>direct</tt>{<i>kod</i>} </td> + <td>polecenie działa analogicznie jak + <a href="#special"><tt>\special</tt></a> i przekazuje <i>kod</i> + do pliku <tt>pdf</tt> (nie jest sprawdzana poprawność kodu) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfmapfile">\pdfmapfile</a>{<i>spec</i> <i>plik</i>} <br/> + \pdfmapfile{<i>plik</i>} </td> + <td>polecenie ładuje wskazany zbiór, jego zawartość + powinna zawierać mapę fontów (standardowo jest to zbiór <tt>psfonts.map</tt>); <i>spec</i> może + przyjmować wartości <tt>+</tt>, <tt>-</tt> i <tt>=</tt> -- ustala sposób usuwania kolizji w deklaracjach fontów: + <table border="1"> + <tr><td><tt>+</tt></td><td>ignorowane są duplikaty</td></tr> + <tr><td><tt>-</tt></td><td>wymienione w zbiorze specyfikacje <b>kasują</b> + wcześniej określone</td></tr> + <tr><td><tt>=</tt></td><td>w przypadku duplikatów, dotychczasowe specyfikacje są + zmieniane wg nowych danych</td></tr> + </table> + domyślnie (bez <i>spec</i>) dotychczasowa lista dołączanych + fontów jest kasowana, użycie pustego parametru (<tt>{}</tt>) + powoduje jedynie wyczyszczenie listy fontów +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfmapline">\pdfmapline</a>{<i>spec</i> <i>plik</i>} <br/> + \pdfmapline{<i>plik</i>} </td> + <td valign="top">podobnie jak <tt>\pdffontmap</tt>??? +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfmatch">\pdfmatch</a>{<i>pattern</i>}{<i>tekst</i>}<sup class="new">exp</sup><br/> + pdfmatch icase {<i>pattern</i>}{<i>tekst</i>}<br/> + pdfmatch subcount {<i>liczba</i>}{<i>pattern</i>}{<i>tekst</i>}<br/> + pdfmatch icase subcount <i>liczba</i>{<i>pattern</i>}{<i>tekst</i>}</td> + <td>sprawdza fakt zawierania się wzorca określonego za pomocą wyrażenia + regułowego (ang. <i>regular expression</i>) <i>pattern</i>, wg. specyfikacji POSIX) w + <i>tekście</i>. Zwraca: <tt>-1</tt> (liczbę) -- błąd, + 0 -- nie dopasowano wzorca, 1 -- dopasowano wzorzec. Opcjonalny + parametr <tt>icase</tt> powoduje utożsamienie wielkich i małych liter, + <tt>subcount</tt> określa długość tablicy podwyrażeń, wartość + <tt>-1</tt> czyści tablicę podwyrażeń wzorca); + p. <a href="#pdflastmatch">\pdflastmatch</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfmdfivesum">\pdfmdfivesum <i>tekst</i></a><br/> + \pdfmdfivesum <tt>file</tt> <i>tekst</i></td> + <td>nalicza sumę kontrolną (heksadecymalną) podanego tekstu (lub zbioru + jeśli podano atrybut <tt>file</tt>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfminorversion">\pdfminorversion</a>=<i>liczba</i> </td> + <td>rejestr określa subwersję języka dokumentu <tt>pdf</tt> np.: + <tt>\pdfminorversion=4</tt> oznacza wersję 1.4 (wartość + domyślna), pdfTeX akceptuje zbiory zewnętrzne o wersji nie + <b>większej</b> niż zadeklarowana. Polecenie powinno być użyte przed + wyprowadzeniem informacji do zbioru wyjściowego + (p. <a href="#pdfoptionpdfminorversion"><tt>\pdfoptionpdfminorversion</tt></a>). +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfmovechars">\pdfmovechars <i>liczba</i></a><sup class="old">obs</sup> </td> + <td>polecenie to określa czy pdfTeX powinien przenosić + znaki z o kodach 0-31 na wyższe pozycje. Wartość 1 parametru + oznacza że należy przenosić takie znaki tylko dla tych fontów, które + zawierają znaki o kodzie niższym niż 128. Wartość 2 (lub więcej) + oznacza że należy przenosić takie znaki nawet dla fontów zawierających + znaki na pozycjach większych niż 128 +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfnames">\pdfnames {<i>tekst</i>}</a> </td> + <td>polecenie wstawia <i>tekst</i> do wektora <tt>/Names</tt> + [<a href="#p8">8</a>, <a href="#p9">9</a>] +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfnoligatures">\pdfnoligatures=<i>font</i></a> </td> + <td>wyłącza mechanizm ligatur dla wskazanego <i>fontu</i> (uwaga! + niektóre znaki, np. półpauza, są realizowane przez mechanizm ligatur) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfnormaldeviate">\pdfnormaldeviate</a></td> + <td>zwraca liczbę losową (całkowitą, rozkład normalny) z przedziału 0-65536 + p. <a href="#pdfuniformdeviate">\pdfuniformdeviate</a> +</td></tr> +<tr><td class="ttt"> +<a id="pdfobj">\pdfobj</a> useobjnum <i>liczba</i> {<i>dane</i>} <br/> + \pdfobj attr {<i>specyfikacja</i>} {<i>dane</i>} <br/> + \pdfobj stream {<i>dane</i>} <br/> + \pdfobj stream attr {<i>specyfikacja</i>} {<i>dane</i>}<br/> + \pdfobj attr {<i>specyfikacja</i>} stream attr {<i>specyfikacja</i>} {<i>dane</i>} <br/> + \pdfobj reserveobjnum </td> + <td valign="top">polecenie tworzy obiekt dokumentu <tt>pdf</tt> + p. <a href="#pdfrefobj"><tt>\pdfrefobj</tt></a>, + <a href="#pdflastobj"><tt>\pdflastobj</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfoptionalwaysusepdfpagebox">\pdfoptionalwaysusepdfpagebox</a>=<i>wartość</i><sup class="old">obs</sup> </td> + <td>p. <a href="#pdfforcepagebox">\pdfforcepagebox</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfoptionpdfinclusionerrorlevel">\pdfoptionpdfinclusionerrorlevel</a>=<i>liczba</i><sup class="old">obs</sup></td> + <td>p. <a href="#pdfinclusionerrorlevel">\pdfinclusionerrorlevel</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfoptionpdfminorversion">\pdfoptionpdfminorversion</a>=<i>liczba</i><sup class="old">obs</sup> </td> + <td>rejestr określający subwersję języka dokumentu <tt>pdf</tt> np.: + <tt>\pdfoptionpdfminorversion=3</tt> oznacza wersję 1.3 + (p. <a href="#pdfminorversion"><tt>\fminorversion</tt></a>). +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfobjcompresslevel">\pdfobjcompresslevel <i>liczba</i></a><sup class="new">new</sup> </td> + <td>??? (dopuszczalne wartości 0--3; 9 -- standardowa wartość; + największa kompresja); tylko dla <tt><a href="#pdfminorversion">\pdfminorversion</a>>4</tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfoutline">\pdfoutline</a> <i>akcja</i> count <i>liczba</i> {<i>tekst zakładki</i>}</td> + <td>polecenie tworzy zakładkę (bookmark). Parametr <i>akcja</i> określa + akcję przeglądarki po ,,kliknięciu'' zakładki (p. <a href="#pdfact">opis akcji + polecenia <tt>\pdfstartlink</tt></a>); wartość parametru <tt>count</tt> + określa liczbę zakładek podrzędnych (niższego poziomu); <i>tekst</i> + jest opisem +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfoutput">\pdfoutput <i>liczba</i></a> </td> + <td>określa tryb pracy programu: wartość dodatnia oznacza + rozszerzony tryb pracy -- generowany jest plik *.pdf; + w przeciwnym razie program pracuje tak jak standardowy TeX + (standardowo ustawiony jest tryb standardowy -- + wszelkie polecenia trybu rozszerzonego są traktowane jako błędne) -- + generowany jest plik *.dvi +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfpageattr">\pdfpageattr <i>atrybuty</i></a> </td> + <td>polecenie pozwala na określenie cechy aktualnej strony dokumentu -- + parametry jak wyżej + [<a href="#p8">8</a>, <a href="#p9">9</a>] +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfpageheight">\pdfpageheight <i>dimen</i></a> </td> + <td>określa wysokość medium na którym będzie prezentowana strona; + domyślnie (jeśli równe 0) wyliczane jako wysokość materiału strony + 2 × + (<a href="#pdfvorigin"><tt>\pdfvorigin</tt></a> + + <a href="#voffset"><tt>\voffset</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfpageref">\pdfpageref</a> <i>sumer strony</i></td> + <td>podaje identyfikator objektu zawierającego stronę o podanym + numerze +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfpageresources">\pdfpageresources</a> {<i>specyfikacja</i>}</td> + <td>???? +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfpagesattr">\pdfpagesattr <i>atrybuty</i></a> </td> + <td>polecenie pozwala na określenie cechy wszystkich stron dokumentu + ??? np.<br/> + <pre> + \pdfpagesattr{ + /Rotate 90 + /MediaBox [0 0 612 792] } % in bp + </pre> + dopuszczalne są następujące polecenia + <table border="1"> + <tr valign="top"><td><tt>/Rotate</tt> <i>kąt</i></td><td>obrót (kąt w stopniach)</td></tr> + <tr valign="top"><td><tt>/MediaBox [<i> num num num num </i>]</tt></td><td>współrzędne + prostokąta ograniczającego (w bp)</td></tr> + <tr valign="top"><td>????</td></tr> + </table> + [<a href="#p8">8</a>, <a href="#p9">9</a>] +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfpagewidth">\pdfpagewidth <i>dimen</i></a> </td> + <td>określa szerokość medium na którym będzie prezentowana strona; + domyślnie (jeśli równe 0) wyliczane jako szerokość materiału strony + 2 × + (<a href="#pdfhorigin"><tt>\pdfhorigin</tt></a> + + <a href="#hoffset"><tt>\hoffset</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfpkmode">\pdfpkmode=<i>token</i></a> </td> + <td>ustala tryb pracy <tt>metafont-a</tt> podczas generacji fontów rastrowych +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfpkresolution">\pdfpkresolution <i>liczba</i></a> </td> + <td>określa rozdzielczość dołączanych + do pliku <tt>pdf</tt> fontów rastrowych +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfprimitive">\pdfprimitive</a>\<i>polecenie</i><sup class="new">new</sup></td> + <td>polecenie powoduje wykonanie wskazanego <i>polecenia</i>????? +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfprotrudechars">\pdfprotrudechars</a>=<i>wartość</i> </td> + <td><i>wartość</i> dodatnia włącza mechanizm (domyślnie 0 -- wyłączony) wysuwania + pierwszych/ostatnich znaków w linii na lewy/prawy margines (oczywiście o ile takie znaki + zostały określone p. <a href="#rpcode"><tt>\rpcode</tt></a> i + <a href="#lpcode"><tt>\lpcode</tt></a>. Włączenie mechanizmu nie + gwarantuje że wszystkie zdefiniowane znaki zostaną wysunięte na zadaną + (jednakową) odległość. +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfpxdimen">\pdfpxdimen</a> <i>liczba</i></td> + <td>definiuje wartość miary + <a href="#px">px</a> pomocną w przeliczaniu wielkości/rozdzielczości + rastrowych obiektów graficznych; domyślnie + ustawiane na 1<a href="#pt">bp</a>; p. <a href="#tab_jed">tablica jednostek</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfrandomseed">\pdfrandomseed</a></td> + <td>rejestr zawierający bieżącą wartość ???; + p. <a href="#pdfsetrandomseed">\pdfsetrandomseed</a> + i <a href="#pdfuniformdeviate">\pdfuniformdeviate</a>, + <a href="#pdfnormaldefiate">\pdfnormaldefiate</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfrefobj">\pdfrefobj</a> <i>numer</i></td> + <td>polecenie wstawia obiekt o wskazanym numerze do dokumentu + (bez kopiowania jego zawartości; wielokrotne użycie nie + zwiększa rozmiaru pliku zawierającego dokument); + p. <a href="#pdfobj"><tt>\pdfobj</tt></a>, + <a href="#pdflastobj"><tt>\pdflastobj</tt></a>, +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfrefxform">\pdfrefxform</a> <i>numer</i> </td> + <td>polecenie powoduje wstawienie wskazanej formy w bieżącym miejscu; + p. <a href="#pdfxform"><tt>\pdfxform</tt></a>, + <a href="#pdflastxform"><tt>\pdflastxform</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfrefximage">\pdfrefximage</a> <i>numer</i> </td> + <td>polecenie wstawia wskazany obiekt graficzny w bieżące miejsce; + p. <a href="#pdfximage"><tt>\pdfximage</tt></a>, + <a href="#pdflastximage"><tt>\pdflastximage</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfresettimer">\pdfresettimer</a></td> + <td>polecenie zeruje licznuk czasu + p. <a href="#pdfelapsedtime">\pdfelapsedtime</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfrestore">\pdfrestore</a><sup class="new">new</sup></td> + <td>odtwarza zachowana przez <a href="#pdfsave"><tt>\pdfsave</tt></a> transformację +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfretval">\pdfretval</a><sup class="new">exp</sup></td> + <td>używany przez <a href="#pdfstrcmp">\pdfstrcmp</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfsavepos">\pdfsavepos</a> </td> + <td>zachowuje aktualną pozycję na stronie (miejsce wywołania + polecenia licząć od lewego dolnego rogu papieru). + Należy pamiętać, że jest ona znana dopiero po przejściu + przez procedurę + <a href="#output"><tt>\output</tt></a>, + można ją ,,odzyskać'' poleceniami + <a href="#pdflastxpos"><tt>\pdflastxpos</tt></a> i + <a href="#pdflastypos"><tt>\pdflastypos</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfsave">\pdfsave </a><sup class="new">new</sup></td> + <td>zachowuje zdefiniowaną transformację (p. <a href="#pdfrestore"><tt>\pdfrestore</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfsetmatrix">\pdfsetmatrix{<i>dane</i>} </a><sup class="new">new</sup></td> + <td>określa transformację (6 liczb oddzielonych spacją): skalowanie, + obrót, pochylenie i przesunięcie +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfsetrandomseed">\pdfsetrandomseed <i>liczba</i></a></td> + <td>ustawia bieżącą wartość ???; + p. <a href="#pdfrandomseed">\pdfrandomseed</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfshellescape">\pdfshellescape</a></td> + <td>zwraca wartość 1, jeśli mechanizm <tt>write18</tt> jest włączony +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfstartlink">\pdfstartlink</a> <i>wymiary</i> <i>atrybuty</i> <i>akcja</i></td> + <td>polecenie rozpoczyna definicję hiperłącza; <i>wymiary</i> (opcjonalnie) podajemy zgodnie + ze zwyczajami TeX-a (np. <tt>width 50pt height 5pt depth 2pt</tt>) + p. <a href="#pdfdest"><tt>\pdfdest</tt></a>, + <a href="#pdfendlink"><tt>\pdfendlink</tt></a>, + <i>atrybuty</i> jako: <tt>attr {<i>wartości</i>}</tt>, gdzie wartości + określa specyfikacja dokumentu <tt>pdf</tt> + [<a href="#p8">8</a>]), <i>akcja</i> określa zachowanie przeglądarki po + wskazaniu łącza i może przyjmować wartości określone w tabeli: + <a id="pdfact"><table border="1"> + <tr valign="top"><td class="ttt" rowspan=4>goto</td><td class="ttt" valign="top">file {<i>plik</i>}</td><td>opcjonalne; + jeśli wystąpi poniższe akcje będą dotyczyły zbioru <i>plik</i>, w przeciwnym razie + będą dotyczyły bieżącego dokumentu</td></tr> + <tr><td class="ttt" valign="top">num <i>numer</i></td><td>powoduje przejście do obszaru + określonego przez <i>numer</i>; p. np. <a href="#pdflastobj"><tt>\pdflastobj</tt></a></td></tr> + <tr><td class="ttt" valign="top">name {<i>nazwa</i>}</td><td>powoduje przejście do obszaru + określonego przez <i>nazwa</i></td></tr> + <tr><td class="ttt" valign="top">page <i>numer</i> {/<i>akcja</i>}</td><td>powoduje przejście do strony + wskazanej przez <i>numer</i>, <i>akcja</i> określa <a href="#pdfact_open">zachowanie </a> + przeglądarki</td></tr> + <tr valign="top"><td class="ttt" rowspan=3>thread</td><td class="ttt" valign="top">file {<i>plik</i>}</td><td>opcjonalne; + jeśli wystąpi poniższe akcje będą dotyczyły zbioru <i>plik</i>, w przeciwnym razie + będą dotyczyły bieżącego dokumentu</td></tr> + <tr><td class="ttt" valign="top">name {<i>nazwa</i>}</td><td>powoduje przejście do wątku + określonego przez <i>nazwa</i></td></tr> + <tr><td class="ttt" valign="top">num <i>numer</i></td><td>powoduje przejście do wątku + określonego przez <i>numer</i>; p. np. <a href="#pdfthread"><tt>\pdfthread</tt></a></td></tr> + <tr valign="top"><td class="ttt" colspan="2">user {<i>akcja</i>}</td><td>akcja zdefiniowana przez użytkownika zgodnie + ze specyfikacją <tt>pdf</tt> [<a href="#p8">8</a>]</td></tr> + </table></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfstartthread">\pdfstartthread</a> </td> + <td>polecenie rozpoczyna definicję wątku ????; p + specyfikacja <tt>pdf</tt> [<a href="#p8">8</a>] i + <a href="#pdfendthread"><tt>\pdfendthread</tt></a>, + <a href="#pdftthread"><tt>\pdfthread</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfstrcmp">\pdfstrcmp</a>{<i>tekst_1</i>}{<i>tekst_2</i>}<sup class="new">exp</sup></td> + <td>porównuje <i>tekst_1</i> i <i>tekst_2</i> i zwraca (napis) + 0 -- jeśli jednakowe, -1 -- jeśli pierwszy mniejszy (w sensie + kolejności leksykograficznej), +1 jeśli pierwszy większy (w sensie + kolejności leksykograficznej); p. <a href="#pdfmatch">\pdfmatch</a>. Wewnątrz + makra <b>są</b> rozwijane, kategorie znaków nie są istotne +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdftexbanner">\pdftexbanner</a> </td> + <td>rejestr zawiera text zapowiedzi PDFTeX-a (,,This is pdfTeX, Version...") +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdftexrevision">\pdftexrevision</a> </td> + <td>rejestr zawiera numer subwersji (wydania) <tt>pdfTeX-a</tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdftexversion">\pdftexversion</a> </td> + <td>rejestr zawiera numer wersji <tt>pdfTeX-a</tt> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfthread">\pdfthread</a> </td> + <td>???? +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfthreadmargin">\pdfthreadmargin</a>=<i>dimen</i> </td> + <td>rejestr zawiera wielkość dodatkowego marginesu dodawanego + do wymiaru wątku; + p. <a href="#pdfstartthread"><tt>\pdfstartthread</tt></a>, + <a href="#pdfendthread"><tt>\pdfendthread</tt></a>, + <a href="#pdftthread"><tt>\pdfthread</tt></a> i + [<a href="#p8">8</a>] +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdftracingfonts">\pdftracingfonts=<i>liczba</i></a> </td> + <td>określa poziom śledzenia fontów +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdftrailer">\pdftrailer</a> {<i>polecenia</i>} </td> + <td>??? +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfunescapehex">\pdfunescapehex {<i>tekst</i>}</a></td> + <td>tłumaczy zapis heksadecymalny kodów na postać jawną (ascii); + p. <a href="#pdfescapehex">\pdfescapehex</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfuniformdeviate">\pdfuniformdeviate <i>liczba całkowita</i></a></td> + <td>zwraca liczbę losową (całkowitą, rozkład równomierny) z przedziału 0-<i>liczba</i>; + p. <a href="#pdfnormaldefiate">\pdfnormaldefiate</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfuniqueresname">\pdfuniqueresname</a>=<i>liczba</i> </td> + <td>ustawienie wartości na > 0 ??? +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfvorigin">\pdfvorigin <i>dimen</i></a> </td> + <td>określa dodatkowe przesunięcie materiału strony w pionie względem + górnej, krawędzi + (standardowo równe <tt>1 true in</tt>); odpowiada domyślnemu + marginesowi ustawianemu przez drivery interpretujące plik <tt>dvi</tt>. +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfxform">\pdfxform</a> <i>atrybuty</i> <i>zasoby</i> <i>numer + pudełka</i></td> + <td>polecenie to tworzy formę <tt>XObject</tt> odpowiadającą zawartości + wskazanego pudełka (nie może ono zawierać notatek). Polecenie służy do + definiowania obiektów (pierwsze dwa parametry są opcjonalne), + które występują w dokumencie wiele razy, dzięki + temu jest on zdefiniowany raz, możemy się wielokrotnie na niego + powołać bez konieczności kilkukrotnego jego dołączania + (p. <a href="#pdfrefxform"><tt>\pdfrefxform</tt></a>, + <a href="#pdflastxform"><tt>\pdflastxform</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfxformname">\pdfxformname</a> <i>numer</i></td> + <td>polecenie zwraca identyfikator wskazanej formy + (p. <a href="#pdfxform"><tt>\pdfxform</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pdfximage">\pdfximage</a> <i>wymiary</i> <i>atrybuty</i> <i>strona</i> {<i>plik</i>} </td> + <td>polecenie (pierwsze trzy parametry są opcjonalne) + definiuje obiekt graficzny, którego zawartością jest + wskazany plik (dopuszczalne są formaty: <tt>pdf</tt>, <tt>png</tt>, + <tt>tiff</tt> i <tt>jpeg</tt>); parametr <i>strona</i> określa numer + strony w dołączanym dokumencie (jeżeli jest on wielostronicowy); + p. <a href="#pdfrefximage"><tt>\pdfrefximage</tt></a>, + <a href="#pdflastximage"><tt>\pdflastximage</tt></a><br/> + np: <tt>\pdfximage height 2cm depth 1cm width 3cm page 3 {s.pdf}</tt><br/> + domyślnie głębokość obiektu wynosi 0pt, podanie tylko jednego wymiaru + powoduje, że drugi jest przeskalowany proporcjonalnie +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="px">px</a></td> + <td>miara odległości; definiowana poleceniem <a href="#pdfpxdimen">\pdfpxdimen</a>; + domyślnie 1 <a href="#pt">pt</a>; p. <a href="#tab_jed">tablica jednostek</a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="quitvmode">\quitvmode</a> </td> + <td>zakończenie trybu pionowego (nie powoduje wywołania + <a href="#everypar"><tt>\everypar</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="rightmarginkern">\rightmarginkern <i>box num</i></a></td> + <td>podaje szerokość marginesu (<tt>kern</tt>-u) + prawej strony materiału zawartego w podanym pudełku???? + (p. <a href="#leftmarginkern"><tt>\leftmarginkern</tt></a>). +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="rpcode">\rpcode\<i>font</i> <i>znak</i>=<i>liczba</i></a> </td> + <td><i>liczba</i>×0.001<a href="#em"><tt>em</tt></a> określa + maksymalną wielkość wysunięcia danego znaku na prawy margines, jeśli jest on + ostatnim znakiem w linii (p. <a href="#pdfprotrudechars"><tt>\pdfprotrudechars</tt></a>, + <a href="#lpcode"><tt>\lpcode</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="vadjust1">\vadjust</a> <tt>pre</tt> {<i>materiał</i>} </td> + <td> wstawienie <i>materiału</i> + pionowego ,,między wierszami'' (wtrącenie materiału pionowego + w trybie poziomym; p. <a href="#vadjust"><tt>\vadjust</tt></a>), opcjonalny parametr + <tt>pre</tt> powoduje, że materiał jest wyprowadzany <b>przed</b> daną + linią (standardowo <b>po</b>) +</td></tr> +</table> + +<h3><a id="s-etex"></a>Lista poleceń programu eTeX</h3> + +<table border="1"> +<tr><td class="ttt" valign="top"> +<a id="beginL">\beginL</a></td> + <td>polecenie rozpoczyna skład ,,od lewej do prawej'' (p. <a href="#endL"><tt>\endL</tt></a>, + <a href="#TeXXeTstate"><tt>\TeXXeTstate</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="beginR">\beginR</a></td> + <td>polecenie rozpoczyna skład ,,od prawej do lewej'' (p. <a href="#endR"><tt>\endR</tt></a>, + <a href="#TeXXeTstate"><tt>\TeXXeTstate</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="botmarks">\botmarks <i>numer</i></a></td> + <td>przyjmuje wartość ostatniego znacznika + <a href="#marks"><tt>\marks <i>numer</i></tt></a>, który pojawił + się na obecnie output-owanej stronie; wartość zero oznacza użycie standardowego markera + (p. <a href="#mark"><tt>\mark</tt></a>, + <a href="#firstmarks"><tt>\firstmarks</tt></a>, + <a href="#topmarks"><tt>\topmarks <i>numer</i></tt></a>)</td></tr> +<tr><td class="ttt" valign="top"> +<a id="clubpenalties">\clubpenalties</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="currentgrouplevel">\currentgrouplevel</a></td> + <td>licznik zawierający bieżący poziom zagnieżdzenia grup +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="currentgrouptype">\currentgrouptype</a></td> + <td>licznik zawierający typ bieżącej grupy i tak: + <table> +<tr><td>0: </td><td>bottom level (no group) </td><td>9: </td><td>math group</td></tr> +<tr><td>1: </td><td>simple group </td><td>10:</td><td> disc group</td></tr> +<tr><td>2: </td><td>hbox group </td><td>11:</td><td> insert group</td></tr> +<tr><td>3: </td><td>adjusted hbox group </td><td>12:</td><td> vcenter group</td></tr> +<tr><td>4: </td><td>vbox group </td><td>13:</td><td> math choice group</td></tr> +<tr><td>5: </td><td>vtop group </td><td>14:</td><td> semi simple group</td></tr> +<tr><td>6: </td><td>align group </td><td>15:</td><td> math shift group</td></tr> +<tr><td>7: </td><td>no align group </td><td>16:</td><td> math left group</td></tr> +<tr><td>8: </td><td>output group </td><td> </td><td></td></tr> + </table> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="currentifbranch">\currentifbranch</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="currentiflevel">\currentiflevel</a></td> + <td>licznik zawierający bieżący poziom zagnieżdzenia instrukcji + warunkowych + +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="currentiftype">\currentiftype</a></td> + <td>licznik zawierający rodzaj bieżącej instrukcji warunkowej i tak: + <table> +<tr><td>1: </td><td><tt>\if </tt></td><td>8: </td><td><tt>\ifmmode </tt></td><td>15: </td><td><tt>\iftrue</tt></td></tr> +<tr><td>2: </td><td><tt>\ifcat </tt></td><td>9: </td><td><tt>\ifinner </tt></td><td>16: </td><td><tt>\iffalse</tt></td></tr> +<tr><td>3: </td><td><tt>\ifnum </tt></td><td>10: </td><td><tt>\ifvoid </tt></td><td>17: </td><td><tt>\ifcase</tt></td></tr> +<tr><td>4: </td><td><tt>\ifdim </tt></td><td>11: </td><td><tt>\ifhbox </tt></td><td>18: </td><td><tt>\ifdefined</tt></td></tr> +<tr><td>5: </td><td><tt>\ifodd </tt></td><td>12: </td><td><tt>\ifvbox </tt></td><td>19: </td><td><tt>\ifcsname</tt></td></tr> +<tr><td>6: </td><td><tt>\ifvmode </tt></td><td>13: </td><td><tt>\ifx </tt></td><td>20: </td><td><tt>\iffontchar</tt></td></tr> +<tr><td>7: </td><td><tt>\ifhmode </tt></td><td>14: </td><td><tt>\ifeof </tt></td><td> </td><td></td></tr> + </table> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="detokenize">\detokenize</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="dimexpr">\dimexpr</a></td> + <td>polecenie zwraca wartość wyrażenia arytmetycznego, które + następuje po nim. Postać wyrażenia jest zgodna z ogólnie przyjętymi + zwyczajami -- + można używać nawiasów i operatorów <tt>+-*/</tt>; należy pamiętać, aby + wynik operacji (również cząstkowy) był długością (<i>dimen</i>). + Analizator uzna, że wyrażenie się kończy jeżeli wystąpi znak spoza + dopuszczalnego w danym kontekście (wyrażenie można zakończyć poleceniem + <a href="#relax"><tt>\relax</tt></a>). +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="displaywidowpenalties">\displaywidowpenalties</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="endL">\endL</a></td> + <td>polecenie kończące skład ,,od lewej do prawej'' (p. <a + href="#beginL"><tt>\beginL</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="endR">\endR</a></td> + <td>polecenie kończące skład ,,od prawej do lewej'' (p. <a + href="#beginR"><tt>\beginR</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="eTeXversion">\eTeXversion</a></td> + <td>licznik zawierający numer używanej wersji eTeX-a +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="eTeXrevision">\eTeXrevision</a></td> + <td>rejestr zawierający numer edycji (podwersji) używanej wersji eTeX-a +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="everyeof">\everyeof</a>{<i>materiał</i>}</td> + <td><i>materiał</i> jest wyprowadzany przy napotkaniu na koniec zbioru + wejściowego (np. przy dołączaniu pliku poleceniem <tt>\input</tt>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="firstmarks">\firstmarks</a> <i>numer</i></td> + <td>przyjmuje wartość pierwszego znacznika + <a href="#marks"><tt>\marks <i>numer</i></tt></a>, który pojawił + się na obecnie output-owanej stronie; wartość zero oznacza użycie standardowego markera + (p. <a href="#mark"><tt>\mark</tt></a>, + <a href="#botmarks"><tt>\botmarks</tt></a>, + <a href="#topmarks"><tt>\topmarks</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="fontchardp">\fontchardp\<i>font</i> <i>kod_znaku</i></a></td> + <td>rejestr zawierający głębokość wskazanego znaku (<i>kod_znaku</i>; + p. <a href="#kod_znaku"><tt>kod_znaku</tt></a>)) + z podanego fontu <i>font</i>; <b>uwaga!</b> font musi być załadowany + (wcześniej użyty) + <pre> + \font\aqq=cmr10 + \aqq + \the\fontchardp\aqq "6F + </pre> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="fontcharht">\fontcharht\<i>font</i> <i>kod_znaku</i></a></td> + <td>rejestr zawierający wysokość wskazanego znaku (<i>kod_znaku</i>; + p. <a href="#kod_znaku"><tt>kod_znaku</tt></a>)) + z podanego fontu <i>font</i>; <b>uwaga!</b> font musi być załadowany + (wcześniej użyty) np. + <pre> + \font\aqq=cmr10 + \aqq + \the\fontcharht\aqq "6F + </pre> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="fontcharic">\fontcharic\<i>font</i> <i>kod_znaku</i></a></td> + <td>rejestr zawierający korekcję kursywy wskazanego znaku (<i>kod_znaku</i>; + p. <a href="#kod_znaku"><tt>kod_znaku</tt></a>)) + z podanego fontu <i>font</i>; <b>uwaga!</b> font musi być załadowany + (wcześniej użyty) + <pre> + \font\aqq=cmr10 + \aqq + \the\fontcharic\aqq "6F + </pre> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="fontcharwd">\fontcharwd\<i>font</i> <i>kod_znaku</i></a></td> + <td>rejestr zawierający szerokość wskazanego znaku (<i>kod_znaku</i>; + p. <a href="#kod_znaku"><tt>kod_znaku</tt></a>)) + z podanego fontu <i>font</i>; <b>uwaga!</b> font musi być załadowany + (wcześniej użyty) + <pre> + \font\aqq=cmr10 + \aqq + \the\fontcharwd\aqq "6F + </pre> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="glueexpr">\glueexpr</a></td> + <td>polecenie zwraca wartość wyrażenia arytmetycznego, które + następuje po nim. Postać wyrażenia jest zgodna z ogólnie przyjętymi + zwyczajami -- + można używać nawiasów i operatorów <tt>+-*/</tt>; należy pamiętać, aby + wynik operacji (również cząstkowy) był długością rozściągliwo/ściśliwą (<i>glue</i>). + Analizator uzna, że wyrażenie się kończy jeżeli wystąpi znak spoza + dopuszczalnego w danym kontekście (wyrażenie można zakończyć poleceniem + <a href="#relax"><tt>\relax</tt></a>). +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="glueshrink">\glueshrink</a></td> + <td>rejestr (<i>dimen</i>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="glueshrinkorder">\glueshrinkorder</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="gluestretch">\gluestretch</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="gluestretchorder">\gluestretchorder</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="gluetomu">\gluetomu</a></td> + <td>polecenie dokonuje konwersji jednostek <i>glue</i> na + <i>muglue</i> przeliczając 1mu na 1pt (sic!); + p. <a href="#mutoglue"><tt>\mutoglue</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifcsname">\ifcsname</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="ifdefined">\ifdefined</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="iffontchar">\iffontchar\<i>font</i> <i>kod_znaku</i></a></td> + <td>instrukcja warunkowa pozwalająca sprawdzić czy we wskazanym foncie + istnieje znak o podanym kodzie; <b>uwaga!</b> font musi być załadowany + (wcześniej użyty) + (p. <a href="#kod_znaku"><tt>kod_znaku</tt></a>)) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="interactionmode">\interactionmode</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="interlinepenalties">\interlinepenalties</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="lastlinefit">\lastlinefit</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="lastnodetype">\lastnodetype</a></td> + <td>rejestr zawiera numer ostatnio używanego trybu pracy lub użytego + elementu +<table> +<tr><td>-1: </td><td>none (empty list) </td><td>8: </td><td>disc node</td></tr> +<tr><td>0: </td><td>char node </td><td>9: </td><td>whatsit node</td></tr> +<tr><td>1: </td><td>hlist node </td><td>10:</td><td> math node</td></tr> +<tr><td>2: </td><td>vlist node </td><td>11:</td><td> glue node</td></tr> +<tr><td>3: </td><td>rule node </td><td>12:</td><td> kern node</td></tr> +<tr><td>4: </td><td>ins node </td><td>13:</td><td> penalty node</td></tr> +<tr><td>5: </td><td>mark node </td><td>14:</td><td> unset node</td></tr> +<tr><td>6: </td><td>adjust node </td><td>15:</td><td> math mode nodes</td></tr> +<tr><td>7: </td><td>ligature node </td><td> </td><td></td></tr> +</table> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="marks">\marks <i>numer</i></a> {<i>tekst</i>}</td> + <td>wstawia <i>tekst</i> będący jego argumentem (po rozwinięciu) jako znacznik o numerze <tt><i>numer</i></tt> (wartość zero oznacza standardowy znacznik). + Tekst ten jest dostępny dla poleceń: <a href="#topmarks"><tt>\topmarks <i>numer</i></tt></a>, + <a href="#firstmarks"><tt>\firstmarks <i>numer</i></tt></a>, + <a href="#botmarks"><tt>\botmarks <i>numer</i></tt></a>. + Polecenie to umożliwia np. synchronizację + zawartości żywej paginy z składaną treścią +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="middle">\middle</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="muexpr">\muexpr</a></td> + <td>polecenie zwraca wartość wyrażenia arytmetycznego, które + następuje po nim. Postać wyrażenia jest zgodna z ogólnie przyjętymi + zwyczajami -- + można używać nawiasów i operatorów <tt>+-*/</tt>; należy pamiętać, aby + wynik operacji (również cząstkowy) był długością (<i>mu</i>). + Analizator uzna, że wyrażenie się kończy jeżeli wystąpi znak spoza + dopuszczalnego w danym kontekście (wyrażenie można zakończyć poleceniem + <a href="#relax"><tt>\relax</tt></a>). +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="mutoglue">\mutoglue</a></td> + <td>polecenie dokonuje konwersji jednostek <i>muglue</i> na + <i>glue</i> przeliczając 1pt na 1mu (sic!); + p. <a href="#gluetomu"><tt>\gluetomu</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="numexpr">\numexpr</a></td> + <td>polecenie zwraca wartość wyrażenia arytmetycznego, które + następuje po nim. Postać wyrażenia jest zgodna z ogólnie przyjętymi + zwyczajami -- + można używać nawiasów i operatorów <tt>+-*/</tt>; należy pamiętać, aby + wynik operacji (również cząstkowy) był długością (<i>number</i>). + Analizator uzna, że wyrażenie się kończy jeżeli wystąpi znak spoza + dopuszczalnego w danym kontekście (wyrażenie można zakończyć poleceniem + <a href="#relax"><tt>\relax</tt></a>). +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="pagediscards">\pagediscards</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="parshapedimen">\parshapedimen <i>liczba</i></a></td> + <td>rejestr (dimen) zawiera długość wskazanej linii w specyfikacji + <tt>\parshape</tt> + (p. <a href="#parshape"><tt>\parshape</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="parshapeindent">\parshapeindent</a></td> + <td>rejestr (dimen) zawiera wartość marginesu we wskazanej linii + (p. <a href="#parshape"><tt>\parshape</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="parshapelength">\parshapelength</a></td> + <td>rejestr (dimen) zawiera długość wskazanej linii w specyfikacji + <tt>\parshape</tt> (w jednostkach <tt>sp</tt>) + (p. <a href="#parshape"><tt>\parshape</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="predisplaydirection">\predisplaydirection</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="protected">\protected</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="readline">\readline</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="savinghyphcodes">\savinghyphcodes</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="savingvdiscards">\savingvdiscards</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="scantokens">\scantokens</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="showgroups">\showgroups</a></td> + <td>podaje aktualny poziom zagnieżdzenia grup +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="showifs">\showifs</a></td> + <td>podaje aktualny poziom zagnieżdzenia instrukcji warunkowych +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="showtokens">\showtokens{<i>lista tokenów</i>}</a></td> + <td>powoduje wyświetlenie <i>listy tokenów</i>, służy do wyprowadzenia + wartości, których nie można wyświetlić za pomocą poleceń: + <a href="#show"><tt>\show</tt></a> i + <a href="#showthe"><tt>\showthe</tt></a> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="simple">\simple</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="splitbotmarks">\splitbotmarks <i>numer</i></a></td> + <td>przyjmuje wartość ostatniego znacznika + <a href="#marks"><tt>\marks <i>numer</i></tt></a>, który pojawił + się w obecnie łamanym (<a href="#vsplit"><tt>\vsplit</tt></a>) pudełku, wartość zero oznacza użycie standardowego markera, + działa analogicznie jak polecenie + <a href="#botmarks"><tt>\botmarks <i>numer</i></tt></a> dla strony + (p. <a href="#mark"><tt>\mark</tt></a>, + <a href="#splitfirstmarks"><tt>\splitfirstmarks <i>numer</i></tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="splitdiscards">\splitdiscards</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="splitfirstmarks">\splitfirstmarks <i>numer</i></a></td> + <td>przyjmuje wartość pierwszego znacznika + (<a href="#marks"><tt>\marks <i>numer</i></tt></a>), który pojawił + się w obecnie łamanym (<a href="#vsplit"><tt>\vsplit</tt></a>) pudełku, wartość zero oznacza użycie standardowego markera; + działa analogicznie jak polecenie + <a href="#firstmarks"><tt>\firstmarks <i>numer</i></tt></a> dla strony + (p. <a href="#mark"><tt>\mark</tt></a>, + <a href="#splitbotmarks"><tt>\splitbotmarks <i>numer</i></tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="TeXXeTstate">\TeXXeTstate=<i>liczba</i></a></td> + <td>nadanie rejestrowi wartości > 1 zezwala na używanie + poleceń zmieniających kierunek druku + (<a href="#beginL"><tt>\beginL</tt></a>, + <a href="#endL"><tt>\endL</tt></a>, + <a href="#beginR"><tt>\beginR</tt></a>, + <a href="#endR"><tt>\endR</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="tracingassigns">\tracingassigns=<i>liczba</i></a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="tracingcommands_e">\tracincommands=<i>liczba</i></a></td> + <td>nadanie rejestrowi wartości > 3 powoduje wyprowadzenie + dodatkowych informacji (p. standardowe polecenie <a href="#tracingcommands"><tt>\tracingcommands</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="tracinggroups">\tracinggroups=<i>liczba</i></a></td> + <td>nadanie rejestrowi wartości >1 powoduje wyprowadzenie komunikatów + śledzenia zagnieżdzenia poziomu grup +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="tracingifs">\tracingifs=<i>liczba</i></a></td> + <td>nadanie rejestrowi wartości >1 powoduje wyprowadzenie komunikatów + śledzenia instrukcji warunkowych (p. też <a href="#unless"><tt>\unless</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="tracinglostchars_e">\tracinglostchars=<i>liczba</i></a></td> + <td>nadanie rejestrowi wartości > 2 powoduje wyprowadzenie + dodatkowych informacji (p. standardowe polecenie <a href="#tracinglostchars"><tt>\tracinglostchars</tt></a>) +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="tracingnesting">\tracingnesting=<i>liczba</i></a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="tracingscantokens">\tracingscantokens=<i>liczba</i></a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="unexpanded">\unexpanded</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="unless">\unless</a></td> + <td> +</td></tr> +<tr><td class="ttt" valign="top"> +<a id="widowpenalties">\widowpenalties</a></td> + <td> +</td></tr> +</table> + + + + +<table border="1"> +<caption>Tabela <a id="klasy">klas</a> obiektów trybu matematycznego</caption> + <tr><td>klasa</td><td>nazwa</td><td align="center">przykład</td></tr> + <tr><td>0</td><td>zwyczajny</td><td align="center"><tt>/</tt></td></tr> + <tr><td>1</td><td>wielki operator</td><td align="center"><tt>\sum</tt></td></tr> + <tr><td>2</td><td>operator binarny</td><td align="center"><tt>+</tt></td></tr> + <tr><td>3</td><td>relacji</td><td align="center"><tt>=</tt></td></tr> + <tr><td>4</td><td>otwierający</td><td align="center"><tt>(</tt></td></tr> + <tr><td>5</td><td>zamykający</td><td align="center"><tt>)</tt></td></tr> + <tr><td>6</td><td>punktuacyjny</td><td align="center"><tt>.</tt></td></tr> + <tr><td>7</td><td>należący do różnych rodzin (ma specjalne + znaczenie)</td><td align="center"><tt>x</tt></td></tr> +</table> + +<table border="1"> +<caption><a id="math">Tabela odległości między obiektami różnych +typów</a></caption> +<tr><td colspan="2" rowspan="2"> </td> + <td align="center" colspan=8>prawa strona</td></tr> +<tr> + <td>Ord</td> + <td>Op</td> + <td>Bin</td> + <td>Rel</td> + <td>Open</td> + <td>Close</td> + <td>Punc</td> + <td>Inner</td></tr> +<tr><td align="left" valign="middle" rowspan=8>strona<br/>lewa</td> +<td>Ord</td> + <td align="center">0</td> + <td align="center">1</td> + <td align="center">(2)</td> + <td align="center">(3)</td> + <td align="center">0</td> + <td align="center">0</td> + <td align="center">0</td> + <td align="center">(1)</td></tr> +<tr><td>Op</td> + <td align="center">1</td> + <td align="center">1</td> + <td align="center">*</td> + <td align="center">(3)</td> + <td align="center">0</td> + <td align="center">0</td> + <td align="center">0</td> + <td align="center">(1)</td></tr> +<tr><td>Bin</td> + <td align="center">(2)</td> + <td align="center">(2)</td> + <td align="center">*</td> + <td align="center">*</td> + <td align="center">(2)</td> + <td align="center">*</td> + <td align="center">*</td> + <td align="center">(2)</td></tr> +<tr><td>Rel</td> + <td align="center">(3)</td> + <td align="center">(3)</td> + <td align="center">*</td> + <td align="center">0</td> + <td align="center">(3)</td> + <td align="center">0</td> + <td align="center">0</td> + <td align="center">(3)</td></tr> +<tr><td>Open</td> + <td align="center">0</td> + <td align="center">0</td> + <td align="center">*</td> + <td align="center">0</td> + <td align="center">0</td> + <td align="center">0</td> + <td align="center">0</td> + <td align="center">0</td></tr> +<tr><td>Close</td> + <td align="center">0</td> + <td align="center">1</td> + <td align="center">(2)</td> + <td align="center">(3)</td> + <td align="center">0</td> + <td align="center">0</td> + <td align="center">0</td> + <td align="center">(1)</td></tr> +<tr><td>Punc</td> + <td align="center">(1)</td> + <td align="center">(1)</td> + <td align="center">*</td> + <td align="center">(1)</td> + <td align="center">(1)</td> + <td align="center">(1)</td> + <td align="center">(1)</td> + <td align="center">(1)</td></tr> +<tr><td>Inner</td> + <td align="center">(1)</td> + <td align="center">1</td> + <td align="center">(2)</td> + <td align="center">(3)</td> + <td align="center">(1)</td> + <td align="center">0</td> + <td align="center">(1)</td> + <td align="center">(1)</td></tr> +</table> +<table> + <tr><td>0 </td><td> brak odstępu</td></tr> + <tr><td>1 </td><td> mały odstęp (<i>thin space</i>)</td></tr> + <tr><td>2 </td><td> średni odstęp (<i>medium space</i>)</td></tr> + <tr><td>3 </td><td> duży odstęp (<i>thick space</i>)</td></tr> + <tr><td>() </td><td> odstęp jest wstawiany wyłącznie w <tt>textstyle</tt> i + <tt>displaystyle</tt></td></tr> + <tr><td>* </td><td> zależy od kontekstu</td></tr> +</table> + +<h4>Bibliografia</h4> +<div> +[<a id="p1">1</a>] <a href="ftp://ftp.gust.org.pl/pub/GUST/bulletin/09/akapit.pdf">B.Jackowski: + ,,Władca Akapitów'', Biuletyn GUST z. 9</a><br/> +[<a id="p2">2</a>] D.E.Knuth: ,,The TeX book'' (również tłumaczenie polskie, +TeX podręcznik użytkownika, WNT 2005)<br/> +[<a id="p3">3</a>] <a href="http://www.ia.pw.edu.pl/~wujek/tex/tex/tryby.html">B.Lichoński: + ,,Tryby pracy TeX-a''</a><br/> +[<a id="p4">4</a>] <a href="ftp://ftp.gust.org.pl/pub/GUST/bulletin/11/05mr.ps.gz">M.Ryćko: + ,,Co nieco o akapicie'', Biuletyn GUST z. 11</a><br/> +[<a id="p5">5</a>] <a href="ftp://ftp.gust.org.pl/pub/GUST/bulletin/11/05mr.ps.gz">M.Ryćko: + ,,Główna lista pionowa w systemie TeX'', Biuletyn GUST z. 11</a><br/> +[<a id="p6">6</a>] <a href="ftp://ftp.gust.org.pl/pub/GUST/bulletin/07/02-mw1.pdf">M.Woliński: + ,,O pewnych konstrukcjach warunkowych i iteracyjnych'', Biuletyn GUST z. 7</a><br/> +[<a id="p7">7</a>] <a href="http://www.sapijaszko.net/pedeefy.pdf">G.Sapijaszko: + ,,Tworzenie dokumentów PDF za pomocą LaTeX-a''</a> (niestety trochę zdezaktualizowana)<br/> +[<a id="p8">8</a>] <a href="http://partners.adobe.com/asn/acrobat/docs/File_Format_Specifications/PDFReference.pdf">Adobe: PDF Reference</a><br/> +[<a id="p9">9</a>] + <a href="http://sarovar.org/docman/view.php/106/64/pdftex-a.pdf.pdf">pdfTeX user manual</a> <br/> +[<a id="p10">10</a>] + <a href="http://sarovar.org/docman/view.php/106/67/pdftex-syntax.txt">Lista + nowych lub rozszerzonych poleceń wbudowanych pdfTeX-a</a> <br/> +[<a id="p11">11</a>] <a href="http://www.tug.org/TUGboat/Articles/tb22-3/tb72thanh.pdf">Margin Kerning and Font Expansion with pdfTEX</a> (niestety nieaktualna)<br/> +</div> +<br/> +<hr/> +<em>Ostatnie zmiany: 10.02.2007</em> + +</body> +</html> + diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/tex/tryby.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/tex/tryby.html new file mode 100644 index 00000000000..88734e6e390 --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/tex/tryby.html @@ -0,0 +1,494 @@ +<html> +<head> +<meta http-equiv="content-type" content="text/html; charset=iso-8859-2"> +<meta http-equiv="Content-language" content="pl"> +<meta name="Author" content="Włodzimierz Macewicz"> +<meta name="Keywords" content="tex, tryby pracy, Wirtualna Akademia"> +<title>Luka w mojej T<sub>E</sub>X-owej wiedzy</title> + +</head> +<body> +<h2>Luka w mojej T<sub>E</sub>X-owej wiedzy</h2> + +<p> +Uczymy się T<sub>E</sub>X-a przez lata, jednak bardzo trudno cokolwiek zrobić bez +dobrej książki na biurku. Mimo iż uczę się T<sub>E</sub>X-owej maszyny mniej +więcej od pięciu lat, ciągle o czymś zapominam lub łapię się na tym, +że czegoś nie doczytałem lub pominąłem. Do białej gorączki doprowadzają +mnie odkrycia, że przerobiony dawniej temat umknął mi gdzieś z pamięci. +Muszę czytać od nowa <tt>:-(</tt>. + +<p> +Jedyną receptą na moje bolączki stało się robienie notatek z naszej +T<sub>E</sub>X-owej biblii, czyli z <i> The T<sub>E</sub>Xbook</i>. Notatki te +nie są zawsze wierną kopią T<sub>E</sub>Xbook-a, mają jednak +identyczny układ tematyczny. +Marzy mi się po cichu dobre tłumaczenie mojej ulubionej książki, +czy jest to jednak możliwe? Każdego, kto ma na ten temat jakieś refleksje +lub pomysły, proszę o kontakt. + +<p> +Jeśli zechcesz więc, drogi czyT<sub>E</sub>Xniku, zajrzeć do moich notatek, +to zapraszam. Dzisiaj zapiski z rozdziału trzynastego TB ,,Tryby''. + + +<h3> Tryby </h3> + +<p> +Podobnie jak każdy z nas jest w danym momencie w pewnym nastroju, tak +T<sub>E</sub>X jest w pewnym trybie. Istnieje sześć trybów T<sub>E</sub>X-a: + + +<p> +<ul> + +<li> <i>tryb pionowy</i> (w tym trybie T<sub>E</sub>X tworzy główną listę + pionową \cite{bach95:Rycko:listapionowa}, z której tworzone są + strony) + +<li><i>wewnętrzny tryb pionowy</i> (tworzy listę pionową vbox-a) + +<li><i>tryb poziomy</i> tzw. ,,akapitowy'' (tworzy listę poziomą --- + akapit) + +<li><i>ograniczony tryb poziomy</i> (tworzy listę poziomą, np. hbox-a) + +<li><i>tryb matematyczny</i> (tworzy formuły matematyczne w trybie + poziomym <tt>$...$</tt>) + +<li><i>tryb matematyczny eksponowany</i> (tworzy eksponowane formuły + matematyczne umieszczane w osobnej linii, tymczasowo przerywają + one aktualny akapit --- <tt>$$...$$</tt>) +</ul> + + + +<h4> Sytuacja najprostsza </h4> + +<p> +W zasadzie użytkownik nie musi zastanawiać się, w jakim trybie w danym +momencie jest T<sub>E</sub>X. Problemy pojawią się dopiero wtedy, gdy ujrzymy komunikat +w stylu <i> Nie możesz zrobić czegoś w ograniczonym trybie +poziomym</i>. Aby uniknąć takich niemiłych niespodzianek, musimy wiedzieć, +w jakim trybie znajduje się T<sub>E</sub>X\ w <b>każdym</b> dowolnym momencie. + +<p> +W zasadzie T<sub>E</sub>X jest w trybie pionowym, gdy tworzy listę pionowych +kar, klejów (np. <tt>\vskip</tt>) i pudełek (np. <tt>\vbox</tt>). Pudełka i kleje +umieszczane są jedno pod drugim na stronie. Tryb poziomy tworzą kary, +kleje (np. <tt>\hskip</tt>) i pudełka poziome umieszczane jedno za drugim, +tworząc akapit. Tryb matematyczny tworzą wszystkie elementy umieszczone +między znakami dolara `<tt>$</tt>'. + + +<h4> Sytuacja typowa </h4> + +<p> +Na samym początku T<sub>E</sub>X znajduje się w trybie pionowym i jest gotowy do +tworzenia listy pionowej (a potem strony). Jeśli utworzymy klej, karę lub +pudełko, T<sub>E</sub>X zacznie umieszczać je jedno za drugim. Spójrzmy na +krótki źródłowy pliczek plain-T<sub>E</sub>X-owy: +<pre> +1 Gdańsk 1996 +2 \vskip 1cm +3 \centerline {GUST} +4 \medskip +5 Co to jest \TeX? +6 \vfil +7 \break +8 $x$ +9 \bye +</pre> + +<p> +Praktycznie każda linijka tego pliku tworzy osobny element na liście +pionowej. Prześledźmy, w jakie tryby właściwie ,,wpadał'' T<sub>E</sub>X. + +<p> +<ul> + +<li>Linijka 1. wciągnęła T<sub>E</sub>X-a w tryb poziomy (ach ten Gdańsk!) + +<li>Komenda z linii 2. spowodowała zakończenie akapitu i przejście + w tryb pionowy; wszystko jasne -- mamy tu przecież klej pionowy + +<li>Linia trzecia rozpoczyna się znaną komendą <tt>\centerline</tt> rówoważnej + <tt>\hbox to\hsize</tt>, a więc T<sub>E</sub>X wkracza + w ograniczony tryb poziomy + +<li>W linii 4. znów napotykamy na klej pionowy (przypomnijmy, że + <tt>\medskip</tt> \equiv$ó<tt>\vskip 6pt</tt> <tt>plus 2pt</tt> <tt>minus 2pt</tt>) + +<li>Linia 5. to znów powrót do trybu poziomego + +<li>Linia 6. to klej pionowy (przypomnijmy, że <tt>\vfil</tt> równoważnej + <tt>\vskip 0pt</tt> <tt>plus 1fil</tt>) + +<li>W linii 7. mamy karę, która spowoduje złamanie strony + (<tt>\break</tt> równoważnej <tt>\penalty-10000</tt>) + +<li>Nowa strona rozpocznie się od przejścia do trybu matematycznego + +<li>i bye<a href=#foo0><sup>*</sup></a> +</ul> + + +<p> +Z przedstawionego przykładu wynikają pewne ogólne wnioski. Gdy T<sub>E</sub>X +znajduje się w trybie pionowym lub wewnętrzynym trybie pionowym, to +pierwszy żeton nowego akapitu zmienia tryb na poziomy. Tryb ten +utrzymuje się aż do zakończenia akapitu. Inaczej mówiąc obiekty typu +poziomego automatycznie zmieniają tryb pionowy na poziomy. Dzieje się +tak wówczas, gdy napiszemy jakikolwiek znak (kategoria 11.) lub pojawi się +któryś z żetonów <tt>\char</tt>, <tt>\accent</tt>, <tt>\hskip</tt>, <tt>\_</tt>, <tt>\vrule</tt>, czy też +znak początku trybu matematycznego `<tt>$</tt>'. Idąc dalej, T<sub>E</sub>X wstawi +pudełko o szerokości wcięcia akapitowego i odczyta jeszcze raz dany +żeton już w trybie poziomym. + +<p> +Istnieje możliwość celowego zmuszenia T<sub>E</sub>X-a do przejścia w tryb +poziomy. Nieufnym proponuję makra <tt>\indent</tt> i <tt>\noindent</tt>, które +zmieniają tryb na poziomy oraz odpowiednio tworzą lub zakazują +utworzenia wcięcia akapitowego. <tt>\indent</tt> wstawia na początku akapitu +puste pudełko o szerokości <tt>\parindent</tt> (domyślnie jest to 20pt). +Dlatego też ciąg niewinny <tt>\indent</tt> <tt>\indent</tt> spowoduje wstawienie +podwójnego wcięcia. Analogiczny ciąg\break +<tt>\noindent</tt> <tt>\noindent</tt> nie spowoduje +nic, poza tym co zrobi pojedynczy <tt>\noindent</tt>. + + + +<h4> Jak zacząć akapit od hbox-a </h4> + +<p> +Jeśli umieścimy<br> +<tt>\hbox{...}</tt> w trybie poziomym, T<sub>E</sub>X złoży akapit +uwzględniając w nim pudełko poziome (na przykład T<sub>E</sub>X nigdy nie złamie +takiego pudełka). Podobnie jeśli umieścimy <tt>\hbox{...}</tt> w trybie +pionowym, T<sub>E</sub>X złoży stronę uwzględniając takie pudełko. + +<p> +No dobrze, ale jak +rozpocząć akapit pudełkiem <tt>\hbox{...}</tt>? + +<p> +Kilka linijek wyżej udzielono właściwie odpowiedzi na to pytanie. Można +zastosować konstrukcję typu <tt>\indent</tt> <tt>\hbox{...}</tt>, nie jest to +jednak zbyt rozsądne. Wyobraźmy sobie bowiem, że chcemy zdefiniować makro, +które rozwija się do <tt>hbox</tt>-a. Ponadto chcemy, aby działało poprawnie +zarówno na początku, jak i w środku akapitu --- w takim wypadku użycie +makra <tt>\indent</tt> nie jest zachęcające. + +<p> +Plain T<sub>E</sub>X posiada złoty środek, jakim jest makro <tt>\leavevmode</tt>, które +rozwija się do <tt>\unhbox</tt> <tt>\voidbox</tt>. + + + + +<h3> W ,,trybach'' T<sub>E</sub>X-a </h3> + +<h4> W trybie poziomym i matematycznym </h4> + +<p> +W typowych publikacjach T<sub>E</sub>X większość czasu spędza w trybie poziomym, +składając akapity. Na krótko robi wycieczki do trybu pionowego pomiędzy +nimi. Akapit kończy się, gdy użytkownik wyda polecenie <tt>\par</tt> lub +pozostawi w pliku źródłowym pustą linię (pusta linia jest zamieniana na +<tt>\par</tt> według zasad z rozdziału 8. TB). Akapit uda się także zakończyć, +wydając polecenie <tt>\vskip 1cm</tt> (patrz linia 2. powyższego przykładu). +Nie musimy wpisywać wówczas komendy <tt>\par</tt>, gdyż klej pionowy <tt>vskip</tt> +oczywiście nie może być częścią akapitu i spowoduje przejście T<sub>E</sub>X-a do +trybu pionowego. + +<p> +Przełącznik trybu matematycznego (żeton `<tt>$</tt>') umieszczony w trybie +poziomym spowoduje, że T<sub>E</sub>X ,,zanurkuje'' w tryb matematyczny do czasu +napotkania drugiego żetonu `<tt>$</tt>'. T<sub>E</sub>X dołączy formułę matematyczną +do akapitu i powróci do trybu poziomego. Na przykład<br> +<p> +<tt> +Myślę ..., więc jestem. +<p> +Różnimy się o $\varepsilon$. +<p> +$\alpha$-Centauri +</tt> + +<p> +Inaczej jest w eksponowanym trybie matematycznym. +Jeśli użyjemy pod rząd dwóch żetonów `<tt>$$</tt>', T<sub>E</sub>X przerwie składanie +akapitu (dokona przy tym różnych obliczeń, na przykład wyliczy sobie +długość ostatniej linijki poprzedzającej wzór) i wyśle dotychczas złożoną +część akapitu na listę pionową. Wskoczy następnie w tryb matematyczny +eksponowany, złoży formułę (koniec formuły oznaczamy kolejną parą +żetonów `<tt>$$</tt>') i powróci do trybu poziomego. Jeśli akapit +nie został zakończony, T<sub>E</sub>X dalej będzie go składał. Na przykład +<pre> +Liczba $$\pi \approx 3.1415926536$$ +jest bardzo ważna. +</pre> +spowoduje złożenie następującego akapitu: + +<p> + +<hr> +\smallskip +Liczba <br> +\pi \approx 3.1415926536<br> +jest bardzo ważna. +<hr> +<p> + +<h4>W wewnętrznym trybie pionowym </h4> + +T<sub>E</sub>X wędruje do wewnętrznego trybu pionowego, gdy użyjemy jednej +z komend <tt>\vbox</tt>, <tt>\vtop</tt>, <tt>\vcenter</tt>, <tt>\valign</tt>, <tt>\vadjust</tt>, <tt>\insert</tt>. + +<p> +W ograniczony tryb poziomy T<sub>E</sub>X wpada, gdy zastosujemy <tt>\hbox</tt> lub +<tt>\halign</tt>. W późniejszych rozważaniach (patrz też rozdziały 12. +i 21. TB) dowiemy się bardziej szczegółowo, iż różnice między wywnętrznym +trybem pionowym a trybem pionowym oraz ograniczonym trybem poziomym +a trybem poziomym są niewielkie. Jadnak trzeba pamiętać, że trybów tych +T<sub>E</sub>X używa do różnych celów. + + + +h4> Różny nastrój w różnym trybie </h4> + +Gdy T<sub>E</sub>X połyka żeton, musi podjąć decyzję, co z nim zrobić. Decyzja +T<sub>E</sub>X-a w znacznym stopniu zależy od trybu, w jakim się znajduje. + +<p> +Przykładowo makro <tt>\break</tt> działa zupełnie inaczej w trybie pionowym +(łamie stronę --- patrz powyższy przykład) i poziomym (łamie linijkę +akapitu). Dwa znaki `<tt>$$</tt>' użyte w trybie poziomym spowodują przejście +T<sub>E</sub>X-a do trybu matematycznego eksponowanego, ale użycie ich +w ograniczonym trybie poziomym spowoduje utworzenie pustej matematycznej +formuły i może powodować komunikaty o błędach. + +T<sub>E</sub>X korzysta z faktu, że niektóre operacje są niedopuszczalne w danym +trybie, i pozwala nam unikać błędów, które mogą pojawiać się w naszych +dokumentach. + +<p> +T<sub>E</sub>X będąc w danym trybie, zwykle przerywa pracę, aby wykonać jakieś +zadanie w innym, a następnie wraca do trybu pierwotnego. Na przykład +użycie `<tt>\hbox{</tt>' w dowolnym trybie ,,wrzuca'' T<sub>E</sub>X-a w ograniczony tryb +poziomy do czasu napotkania nawiasu zamykającego `<tt>}</tt>'. W tym sensie +T<sub>E</sub>X może znajdować się w kilku trybach naraz, jednak sposób +działania T<sub>E</sub>X-a zależy od trybu, w którym jest w danym momencie +,,najgłębiej''; tryby zewnętrzne, w których jest zagnieżdżony, +nie obchodzą go. + +<p> +Zdarzyć się może, że zupełnie nie wiemy, w jakim trybie znajduje się +T<sub>E</sub>X. Co wtedy zrobić? Najlepiej zapytać o to największego eksperta w tych +sprawach, czyli samego T<sub>E</sub>X-a. Spójrzmy na plik <tt>tryby.tex</tt>: +<pre> +\tracingcommands=1 +\hbox{ +$ +\vbox{ +\noindent$$ +x\showlists +$$}$}\bye +\endverbatim +</pre> +Pierwsza linia tego pliku zmusza T<sub>E</sub>X-a do zapisywania w pliku +<tt>tryby.log</tt> informacji o każdej komendzie, którą napotka (T<sub>E</sub>X robi tak, +gdy wartość <tt>\tracingcommands</tt> jest dodatnia). Oto jakie nowe informacje +pojawią się w pliku <tt>tryby.log</tt>: + +<p> + +<pre> +{vertical mode: \hbox} +{restricted horizontal mode: blank space} +{math shift character $} +{math mode: blank space} +{\vbox} +{internal vertical mode: blank space} +{\noindent} +{horizontal mode: math shift character $} +{display math mode: blank space} +{the letter x} +</pre> +<p> + +A więc wiadomości są następujące: + +<p> +T<sub>E</sub>X, będąc w trybie pionowym, ujrzał żeton <tt>\hbox</tt>, co zmusiło go do +wejścia w ograniczony tryb poziomy. + +<p> +Pierwszym żetonem, jaki ujrzał, była spacja, jako że koniec linii oznacza +dla T<sub>E</sub>X-a właśnie spację (patrz koniec linii 2.) + +<p> +Będąc cięgle w ograniczonym trybie poziomym zobaczył przełącznik trybu +matematycznego --- żeton `<tt>$</tt>', co spowodowało przejście do trybu +matematycznego. + +<p> +Pierwszym żetonem jaki ujrzał była znowu spacja, która w tym trybie +nic nie znaczy --- jest ignorowana. + +<p> +Następnie T<sub>E</sub>X napotyka na żeton <tt>\vbox</tt>, czyli witamy w wewnętrznym +trybie pionowym, aby po ujrzeniu żetonu <tt>\noindent</tt> wejść w tryb poziomy. + +<p> +Niezbyt długo trwał ten stan, gdyż dwa znaki <tt>$$</tt> zanurzyły T<sub>E</sub>X-a +w eksponowany tryb matematyczny. Bul, bul, bul\dots + +<p> +Bardzo interesująca staje się zawartość pliku <tt>tryby.log</tt> po komendzie +<tt>\showlists</tt>. Jest to kolejna bardzo użyteczna możliwość śledzenia +poczynań T<sub>E</sub>X-a. Dzięki niej możemy dowiedzieć się rzeczy, które T<sub>E</sub>X +zwykle trzyma w ukryciu. + +<p> +<tt>\showlists</tt> powoduje bowiem wypisanie list, które buduje T<sub>E</sub>X +w aktualnym trybie oraz we wszystkich trybach nadrzędnych (czyli tych, +w których zawiera się tryb aktualny). + +<p> +<pre> +### display math mode entered at line 5 +\mathord +.\fam1 x +### internal vertical mode entered at line 4 +prevdepth ignored +### math mode entered at line 3 +### restricted horizontal mode entered at line 2 +\glue 3.33333 plus 1.66666 minus 1.11111 +spacefactor 1000 +### vertical mode entered at line 0 +prevdepth ignored +</pre> + + +<p> +Zauważmy, że w momencie, gdy pojawiło się <tt>\showlists</tt> (linia 6.), T<sub>E</sub>X +zdążył już <b>pięć</b> razy zmienić tryb. Trybem bieżącym w linii 6. jest +eksponowany tryb matematyczny (patrz linia 5.), który zawiera jeden znak +`<tt>x</tt>' z rodziny 1. (patrz TB rozdział 17.). + +<p> +Rozważany przez nas eksponowany tryb matematyczny zawarty jest +w wewnętrznym trybie pionowym (linia 4.). Wewnętrzna lista +pionowa, którą +T<sub>E</sub>X tworzy w tym trybie, jest pusta --- pojawiająca się spacja +<pre> +\vbox{_ +</pre> +jest ignorowana. Komunikat: +<pre> +prevdepth ignored +</pre> +oznacza, że wartość <tt>\prevdepth</tt><a href=#foo><sup>*</sup></a> +jest mniejsza lub równa -1000pt, więc najbliższy klej międzylinijkowy +(<i> interline glue</i>) w ogóle się nie pojawi (patrz TB rozdział 12.). + +<p> +Wewnętrzny tryb pionowy zawiera się w trybie matematycznym (linia 3.) +--- lista wewnętrzna jest pusta (spacja po znaku `<tt>$</tt>' jest ignorowana). + +Pusta natomiast nie jest lista wewnętrzna ograniczonego trybu poziomego +(linia 2.), zawiera ona klej. Skąd się wziął? Otóż w tym trybie spacja +<pre> +\hbox{_ +</pre> +nie jest ignorowana. + +<p> +Ostatecznie wszystko zawiera się w głównym trybie pionowym. Komunikat: +<pre> +entered at line 0 +</pre> +oznacza, że tryb ten pojawił się, zanim T<sub>E</sub>X zaczął czytać plik +<tt>tryby.tex</tt>. + + + + +<h3> Ciekawostki </h3> + +<p> +<b> Ciekawostka 1.</b> +Czy można stworzyć T<sub>E</sub>X-em dokument, w którym T<sub>E</sub>X nigdy nie opuszcza +trybu pionowego? + +<b>Odpowiedź:</b> +Można, dokument taki składać się może z klejów pionowych +<tt>\vskip</tt> oraz linii utworzonych komendą <tt>\hrule</tt>. + +<p> + + +<b>Ciekawostka 2.</b><br> +Niektóre z trybów T<sub>E</sub>X-a nie mogą bezpośrednio zawierać innych trybów; +na przykład wewnętrzny tryb poziomy nie może zawierać eksponowanego +trybu matematycznego, nawet jeśli formuła matematyczna (<i> display</i>) +pojawia się w środku akapitu. Dzieje się tak, gdyż budowany (w trybie +poziomym) i przerwany akapit jest zawsze kończony i usuwany z pamięci +T<sub>E</sub>X-a zanim formuła się rozpocznie. Czy potrafisz stworzyć +charakterystykę wszystkich kolejnych par trybów, jakie mogą pojawić się +w pliku <tt>.log</tt> po użyciu komendy <tt>\showlists</tt>? + +<p> + +<b>Odpowiedź:</b><br> +Pozostawiam ten problem jako rozrywkę umysłową dla szanownych +czyT<sub>E</sub>Xników. Powodzenia! +(Odpowiedź można znaleźć w TB str. 313 zad. 13.5.) + +<p> +</i> +Bardzo dziękuję red. Jackowi Foromańskiemu za unicestwienie wielu błędów +czyhających w tym artykule. CzyT<sub>E</sub>Xnik z pewnością dostałby zawrotu +głowy, gdyby zobaczył wersję przed korektą Jacka. +</i> + + +<h3>Bibliografia</h3> + + +<dl> +<dt>[1] Grupa Użytkowników Systemu T<sub>E</sub>X. +<i> Lista pionowa</i>. Marek Ryćko, Kwiecień 1995. + III Konferencja w Bachotku 1995. +<p> +<dt>[2] Donald E. Knuth. +<i> The T<sub>E</sub>Xbook</i>. +Addison-Wesley, 1984. +</dl> + + +<p> + +<hr width=20% align=left> +<a name=foo><sup>*</sup></a> + Specjalny wymiar <tt>\prevdepth</tt> przechowuje głębokość + ostatniego pudełka z listy pionowej.<p> +<a name=foo0><sup>**</sup></a> +Na końcu dokumentu plain-T<sub>E</sub>X-owego umieszczamy zwykle makro <tt>\bye</tt>, +które jest równoważne <tt>\vfill</tt> <tt>\eject</tt> <tt>\end</tt>. Klej <tt>\vfill</tt> przełącza +T<sub>E</sub>X-a w tryb pionowy, <tt>\eject</tt> kończy stronę, zaś <tt>\end</tt> kończy pracę +T<sub>E</sub>X-a.<p> + +<hr> +<a href=../index.html><img src="../gify/lew-7vs.gif" hspace=10 border=0 align=left></a> +<a href=http://www.gumbeers.elka.pg.gda.pl/WA><img src="../gify/wa.gif" hspace=10 align=left></a> +<a href=mailto:W.Macewicz@ia.pw.edu.pl><img src="../gify/mail.gif" hspace=10 align=left></a> +Zredagował</br> +<a href=http://home.elka.pw.edu.pl/~macewicz/index.html>Włodzimierz Macewicz</a> +<br clear=all> +<hr> +Ostatnie zmiany: 07.04.2001. + +</body +</html> |