diff options
author | Karl Berry <karl@freefriends.org> | 2005-12-29 00:26:31 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2005-12-29 00:26:31 +0000 |
commit | c365d78bfcdeb6493a68e35e852244839c1c9ee4 (patch) | |
tree | d488910550c0a1dacc75509f02d03551d88ed2f4 /Master/texmf-doc/doc/polish/tex-virtual-academy-pl/idx/porzadek.html | |
parent | 0d5f68998e0af490bbfdeb67a5dada34c034c8b0 (diff) |
doc/french+
git-svn-id: svn://tug.org/texlive/trunk@16 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-doc/doc/polish/tex-virtual-academy-pl/idx/porzadek.html')
-rw-r--r-- | Master/texmf-doc/doc/polish/tex-virtual-academy-pl/idx/porzadek.html | 885 |
1 files changed, 885 insertions, 0 deletions
diff --git a/Master/texmf-doc/doc/polish/tex-virtual-academy-pl/idx/porzadek.html b/Master/texmf-doc/doc/polish/tex-virtual-academy-pl/idx/porzadek.html new file mode 100644 index 00000000000..98b1190a639 --- /dev/null +++ b/Master/texmf-doc/doc/polish/tex-virtual-academy-pl/idx/porzadek.html @@ -0,0 +1,885 @@ +<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"> +<title> TeX na indeksie</title> +</head> +<body bgcolor=#F0F0A0> + +<center> +<h2> TeX na indeksie</h2><p> + +<i></i> <p> +<i></i> <p> +autor: </i><a href=mailto:b.lichonski@gwo.com.pl> Bogusław Lichoński</a></i> +</center> + +<hr> + +<p> + +<center> +<h3>Spis treści</h3><p> +</center> + +<a href=#wprowadzenie>Wprowadzenie<br> +<a href=#polsku>Indeks po polsku</a><br> +<dd><a href=#komp>Język polski a komputery</a><br> +<dd><a href=#reguly>Reguły sortowania po polsku</a><br> +<dd><a href=#sortowanie>Sortowanie cyfr</a><br> +<a href=#skorowidz>Zrób skorowidz</a><br> +<a href=#uzyt>Programy i makra użytkowe</a><br> +<dd><a href=#PLindex><code><b>MakeIndex</b></code> i <code><b>PLindex</b></code></a><br> +<dd><a href=#uzywac>Jak używać <code><b>PLindex</b></code></a><br> +<dd><a href=#bieg><code><b>PLindex</b></code> w biegu</a><br> +<dd><a href=#idxmac><code>IDXMAC</code> i <code>PLIDXMAC</code></a><br> +<dd><a href=#pierwszy><code>PLIDXMAC</code> po raz pierwszy</a><br> +<dd><a href=#pauzy>Indeks z pauzami</a><br> +<dd><a href=#potrafi>Co jeszcze potrafi <code>PLIDXMAC</code></a><br> +<a href=#zakon>Zakończenie</a><br> +<a href=#dostep>Dostęp</a><br> +<a href=#bib>Bibliografia</a><br> +<a href=#przy>Przypisy</a><br> + +<i></i><p> + +<h3><a name=wprowadzenie>Wprowadzenie</h3> + +<p>Na pewno każdy z nas korzystał z indeksu. Niekiedy daje on nieocenione +usługi, szczególnie wtedy, gdy czytamy grube i ciekawe tomisko. Niemal +niemożliwe wydaje się korzystanie z TeXbiblii, czyli dzieła Donalda +E. Knutha ,,The TeXbook'', bez obszernego skorowidzu. + +<p>Indeks nazwałbym tradycyjnym oszczędzaczem czasu. Jeżeli dzieło jest +czytane przez wiele osób, to z pewnością czas potrzebny na stworzenie +skorowidzu będzie o wiele krótszy od łącznego czasu, +jaki muszą stracić czytelnicy +na odszukanie interesującego zagadnienia. Nie muszę chyba przekonywać +nikogo, kto często korzysta z indeksów o ich niezwykłej przydatności. +Jeśli jednak ktoś wątpi, przytoczę przykład. Posiadana przeze mnie gruba +książka kucharska nie zawiera prawie ilustracji. Znalezienie w niej +przepisu na jajecznicę zajęło mi 22 sekundy. Przy braku indeksu sekundy +zastąpiłyby z pewnością minuty -- choć z punktu widzenia +prawdopodobieństwa istnieje szansa odnalezienia żądanego przepisu przy +pierwszym otworzeniu książki... + +<p>Jeśli więc indeks powinien być nieodzownym elementem +każdej naukowej pozycji, +to dlaczego tak często jest on pomijany? + +<p>Otóż proces tworzenia indeksu nigdy nie był i nie będzie łatwy. +Bardzo trudno więc znaleźć osobę, która podejmie się tej pracy. +Winne takiego stanu rzeczy są także wydawnictwa, które często +nie podejmują wysiłków, by tworzyć indeksy. + +<p>Pierwszym problemem jest wybór koncepcji, czyli pomysłu na skorowidz. +Indeks powinien znacznie ułatwiać czytelnikowi dostęp do treści dzieła, +i to w sposób najprostszy. Trudną sprawą jest więc układ logiczny haseł w indeksie +oraz ich dobór. Już w tym pierwszym etapie twórca skorowidzu musi kilka +razy przeczytać dzieło i zastanowić się, jak wyglądać ma skorowidz, by +był zgodny z pierwotną koncepcją. + +<p>Druga część pracy, to ,,wychwycenie'' wszystkich haseł i stron, na +których te hasła występują, oraz sortowanie -- praca ta wykonywana +bez pomocy komutera jest przysłowiowo benedyktyńska. + +<p>O ile pierwszy z etapów jest zawsze trudny i pracochłonny, to jednak przy +dużym doświadczeniu redaktora może być sprawnie wykonany; +drugi etap może wykonać za +człowieka maszyna, czyli komputer wraz z oprogramowaniem. +Nie można pomininąć faktu, iż do rozwiązania powyższego problemu +idealnie nadaje się... TeX. + +<p>Użytkownicy LaTeX-a już od dawna mogą tworzyć skorowidze i sortować je +przy pomocy programu <code><b>MakeIndex</b></code>. Przygotowanie indeksu wygląda następująco: + +<ul> +<li>tworzymy dokument LaTeX-owy, w którym + etykietujemy słowa, wybrane do skorowidzu przy pomocy + komendy <code>\index</code> + +<li>kompilujemy i otrzymujemy nieposortowany plik <code>.idx</code>, zwierający + hasła w kolejności występowania w tekście + +<li>program <code><b>MakeIndex</b></code> sortuje wejściowy plik <code>.idx</code>, tworząc posortowany plik + <code>.ind</code> będący złożonym skorowidzem + +<li>kolejna kompilacja daje w efekcie publikację z indeksem +</ul> + +<p>Powyższe cztery kroki opisane są szczegółowo w rozdziale +-- ,,<a href=#skorowidz>Zrób skorowidz</a>''. + +<p>Oczywiście w tym miejscu nasunąć może się kilka pytań, jak choćby ,,czy +można korzystać z <em>plain</em>-TeX-a?'', czy też ,,jak radzić sobie z tekstami +polskimi?''. Odpowiedzi na te pytania oraz opis jak radzić +sobie z powyższymi problemami w praktyce, udzielam w tym artykule. + + +<h3><a name=polsku>Indeks po polsku</a></h3> + +<p>W rozdziale tym opisuję zasady, według których +powinien być sortowany indeks zawierający polskie wyrazy. + +<p>Okazuje się, iż brak w Polsce stuprocentowo jasnej i wyczerpującej +normy określającej sposób porządkowania haseł w skorowidzach. +Istnieje -- moim zdaniem nie do końca wyczerpująca temat -- +norma PN--80/N--01223 ,,Szeregowanie alfabetyczne'', +której przedmiotem są: +<blockquote><i> +zasady szeregowania w porządku alfabetycznym w katalogach, +bibliografiach, opracowaniach dokumentacyjnych i innych wykazach +dokumentów oraz indeksach +</i></blockquote> + +<h4><a name=komp>Język polski a komputery</a></h4> + +<p>Pierwszym problemem mariażu języka polskiego i komputera jest kodowanie +polskich znaków diakrytycznych na komputerze PC. Jak powszechnie wiadomo +PC został stworzony dla potrzeb języka angielskiego i dopiero w wersji 5.0 +systemu operacyjnego DOS uwzględniono języki narodowe. + +<p>Gdy komputer PC znalazł się na polskich biurkach, zaistniała +potrzeba wprowadzenia standardu kodowania polskich znaków diakrytycznych. +Wymyślono więc standard Mazovia, który do dziś jest +u nas powszechnie stosowany<sup><a href=#red1>1r</a></sup>. +Firmy IBM i Hewlett-Packard nie przejęły się +tym faktem i stworzyły standard Latin2<sup><a href=#red2>2r</a></sup>, +zawierający +także wszystkie ,,nasze'' znaki. + +<p>Jeśli chodzi o polski format MeX, to przewiduje on użycie obu +standardów w dokumentach TeX-owych, więc program powinien sortować +polskie wyrazy w obu standardach. Ponieważ do pewnego czasu w Polsce +królowała nieprogramowalna karta Hercules, więc w plikach źródłowych +<code>.tex</code> używano powszechnie notacji prefiksowej do oznaczania polskich +znaków (np. <samp>`ą'=`/a'</samp>). Programy sortujące indeksy po polsku +powinny więc przewidywać i tę możliwość +z epoki przed-MeXowej. + +<h4><a name=reguly>Reguły sortowania po polsku</a></h4> + +<p>Reguły sortowania po polsku ujęte są w normie +PN--80/N--01223 [1], +która mówi, iż porządek w indeksie powinien być zgodny +z porządkiem w alfabecie polskim z dodaniem liter `q', `v', `x'. + +Alfabet polski z literami q, v, x. + +<pre><samp> + +a ą b c ć d e ę f g h i j k l ł m n + +ń o ó p q r s ś t u v w x y z ź ż + +</samp></pre> + + +<p>Obce znaki diakrytyczne nie powinny wpływać na porządek. +Chociaż w poprzednim zdaniu możnaby słowo ,,obce'' zamienić +na ,,wszelkie'', gdyż jak mówi norma na stronie 2: +<blockquote><i> +dopuszcza się nieuwzględnienie w szeregowaniu polskich znaków +diakrytycznych +</i></blockquote> +Nie wydaje się jednak, by taka forma sortowania była popularna i nie jest +uważana powszechnie za najbardziej wskazaną. +O ile mi wiadomo, żaden program +systemowy nie działa według powyższej +normy<sup><a href="#f1">1</a></sup> + +<p>Porządek w polskich skorowidzach, to tak zwany porządek słowowy, czyli +spacje i znaki interpunkcyjne zostaną umieszczone przed literami +alfabetu. Norma niezbyt jasno o tym mówi. Na stronie 1 +czytamy: +<blockquote><i> +W szeregowaniu należy brać pod uwagę alfabetyczną kolejność wyrazów, +a w ich obrębie -- liter. Występujące między wyrazami znaki +interpunkcyjne, spacje i łączniki należy traktować jako znaki +rozdzielające poszczególne wyrazy +</i></blockquote> + +<p>Mając na względzie powyższy cytat, przyjrzyjmy się przykładowi: + +<pre> +poprawnie nie poprawnie +- - - - - - - - - - - - +katalog informatyczny katalogi +katalog przedmiotowy katalog informatyczny +katalogi katalog przedmiotowy +</pre> + +<p>Zauważmy, że polski alfabet zawiera kilka znaków, których nie znajdziemy +w żadnym innym alfabecie narodowym. Ich wystąpienie w alfabecie jest +naturalne, to znaczy występują one zawsze po literze, która w znacznej +części ją tworzy. + + +<pre> +l << ł L << Ł +</pre> + +(znak <code><<</code> oznacza tu relację porządku w słowniku polskim) + +<p>Porządek wielkich i małych liter w języku polskim jest inny niż +w angielskim. Mała litera wystąpi przed wielką w dwu identyczny słowach, +na przykład: + +<pre> +polski << Polski (po polsku) +Polish << polish (po angielsku) +</pre> + +<p>Poruszona w ostatnim akapicie kwestia jest jednak bardzo kontrowersyjna. +Pomimo wielu poszukiwań ujętej w normie jasnej definicji, +nic nie udało mi się znaleźć. +W poradni językowej Uniwersytetu Gdańskiego +uzyskałem informację, iż precyzyjnej normy nie znajdę, jednak +istnieje zasada, że małe +litery powinny być przed wielkimi. Gdy podałem kilka przykładów +nie stosowania tej zasady +z dzieł niezłych przecież wydawnictw (jak choćby ,,Wiedza Powszechna''), +otrzymałem odpowiedź, że tylko bardzo poważne wydawnictwa przywiązują +wagę do tak istotnej reguły (sic!). + +<p>Słowniki niestety często nie przestrzegają tej zasady. Jedynie bardzo +poważne publikacje jak na przykład w 4-o tomowej Encyklopedii powszechnej +PWN wydanie I rok 1973 na stronie xi wyraźnie wspomina się iż: +<blockquote><i> +Za podstawę układu haseł EP PWN przyjęto kolejność liter alfabetu +polskiego -- od małych liter do dużych +</i></blockquote> +Podobnie Encyklopedia popularna PWN wydanie VI rok 1984 +wydana pod redakcją Rafała Łąkowskiego, mimo iż wszystkie hasła napisane +są wersalikami, uwzględnia poprawny sposób sortowania. + +<p>Niestety, niektóre wydawnictwa zapominają o normach i w sposób dowolny +umieszczają hasła w słownikach, stosując najczęściej angielskie normy +do porządkowania układu haseł. Jeszcze dziwniejsze wydaje się jednak +stosowanie polskich norm do sortowania słów angielskich, stało się tak +na przykład w angielsko-polskim i polsko-angielskim Słowniku minimum +Katarzyny Billip i Zofii Chociłowskiej, wydanym przez Wiedzę Powszechną +w 1968 roku, wydanie II. Na stronie 224 można znaleźć hasła +<code>polish</code> i <code>Polish</code>, +napisane w wymienionej właśnie kolejności... + +<p>Natomiast zupełnie niezrozumiałe dla mnie jest stosowanie w tym samym +słowniku i na tej samej stronie różnych zasad porządkowania! W ,,Słowniku +ortograficznym języka polskiego'' PWN, pod redakcją Mieczysława +Szymczaka, z roku 1992, wydanie 15, na stronie 612 znajdują się hasła: + +<pre> +polonez +Polonez + ... +Polka +polka +</pre> + +<p>Po bliższym przyjrzeniu się temu zjawisku można zauważyć pewną +własność chronologiczną. +Otóż starsze wydania -- mniej więcej sprzed 1970 +roku -- stosują zasadę porządkowania dwu identycznych haseł, +rozpoczynających się od litery małej lub wielkiej +(w kolejności: mała, wielka), zaś wydania nowsze nie stosują +żadnych zasad. +Sądzę, że wszystkiemu winne są komputery i oprogramowanie +zapożyczone od Anglosasów. + + +<h4><a name=sortowanie>Sortowanie cyfr</a></h4> +<p>Liczebniki główne powinny być +uporządkowane według ich dosłownego znaczenia, niezależnie od tego, czy +liczba jest zapisana słownie, czy jako ciąg cyfr. +W tym celu użyjemy następującej komendy: + +<pre> +\index{trzynaście@13} +</pre> + + +W skorowidzu pojawi się więc hasło `trzynaście', lecz algorytm sortowania +potraktuje ten napis jako liczbę `13'. + +<p>Na stronach 3 i 8 norma [1] mówi, iż +liczebniki porządkowe powinny być uporządkowane według +ich wartości, niezależnie od dosłownego systemu zapisu (arabski, +rzymski). Użytkownik znów może posłużyć się znaczkiem `@'. + +<pre> +\index{19.I.@I.} +\index{08.vii.@vii.} +\index{27.06.@06.} +</pre> + +<p>W języku polskim po liczebnikach porządkowych piszemy kropkę. + +<h3><a name=skorowidz>Zrób skorowidz</a></h3> + +<p>Zaawansowani użytkownicy LaTeX-a na pewno tworzyli już skorowidze +i proces ich powstawania nie jest dla nich żadną tajemnicą. +Dla wszystkich, którzy nie mieli tej okazji, podaję krótki przepis +jak tego dokonać: + + +<ul> +<li>Dodaj styl <code>makeidx</code> jako parametr komendy <code>\documentstyle</code> + (ujęty w nawiasy kwadratowe np. <code>\documentstyle[makeidx]{article}</code>) + +<li>Umieść w preambule komendę <code>\makeindex</code> tak, aby + znajdował się ona pomiędzy komendami + <code>\documenstyle</code> a <code>\begin{document}</code> + +<li>Umieść w tekście komendę <code>\printindex</code> w miejscu, w którym chcesz + umiejscowić skorowidz (zwykle jest to koniec dokumentu -- + bezpośrednio przed komendą <code>\end{document}</code>) +</ul> + +<p>Zastosowanie się do powyższych trzech punktów da oczywiście +skorowidz pusty, nie wyznaczyliśmy bowiem haseł, które pojawią się +w indeksie. Obok wybranego słowa wpisać należy komendę +<code>[\makeescape!]\index{!argument}</code>, której argument musi zawierać słowo pojawiające +się potem w skorowidzu. Dla przykładu przyjrzyjmy się ,,wyrwanemu'' +z dokumentu fragmentowi: + +<pre> +... pusta linia oznacza dla TeX-a +koniec akapitu\index{akapit}, więc ... +</pre> + +<p>Po takim zabiegu w skorowidzu pojawi się słowo `akapit' wraz z numerem +strony, na której słowo `akapitu' wystąpi. + +<p>Oto krótki przykład LaTeX-owego +dokumentu<sup><a href="#f2">2</a></sup>, +do którego tworzy się mini-indeks o nazwie <code>przyklad.tex</code>: + +<pre> +\documentstyle[makeidx]{article} +\makeindex +\begin{document} + Znaki końca linii traktowane są przez + TeX-a tak samo jak spacja\index{spacja}. + Dowolny ciąg spacji jest traktowany + przez TeX-a tak samo jak jedna + spacja\index{spacja}. Zatem nie jest + ważne, czy odstęp pomiędzy słowami + jest wprowadzony jako jedna, czy + więcej spacji\index{spacja}. + Jednakże pusta linia oznacza dla + TeX-a koniec akapitu\index{akapit}. +\printindex +\end{document} +</pre> + +<p>Uznać można w tym miejscu, iż wykonano pierwszy z czterech kroków +opisanych w rozdziale pierwszym. + +<p>Drugi krok, czyli kompilacja LaTeX-em, może wydać się łatwy. Jest tak +w istocie, o ile posiadamy plik stylu <code>makeidx.sty</code>. Plik ten zawiera +definicje makr do tworzenia indeksów i dystrybuowany jest wraz +z programem <code><b>MakeIndex</b></code>. <code>makeidx.sty</code> umieścić należy +w przeszukiwanym przez TeX-a +katalogu<sup><a href=#f3>3</a></sup> +<code>...\texinput</code> lub katalogu bieżącym; jeśli plik ten +istnieje kompilacja +powinna ,,przejść'' bez kłopotu. + +<pre> +>tex &lplain przyklad.tex +</pre> + +(znak `<code>></code>' symbolizuje prompt) + +<p>Krok trzeci to sortowanie powstałego z powyższej kompilacji pliku +<code>przyklad.idx</code>, który zawiera linia po linii hasła wraz z numerami +stron, na których występują w kolejności występowania ich w dokumencie. +Oto postać pliku <code>przyklad.idx</code>: + +<pre> +\indexentry{spacja}{1} +\indexentry{spacja}{1} +\indexentry{spacja}{1} +\indexentry{akapit}{1} +</pre> + +<p>Hasła w plikach <code>.idx</code> o powyższej strukturze można sortować na przykład +programem <code><b>MakeIndex</b></code> w następujący sposób: + +<pre> +>makeindex przyklad.idx +</pre> + +<p>Powstanie plik o nazwie <code>przyklad.ind</code>, który jest +gotowym do kompilacji uporządkowanym skorowidzem. +Wprowadzany jest on do składu przez komendę <code>\printindex</code>. Oto jego +postać: + +<pre> +\begin{theindex} + \item akapit, 1 + \indexspace + \item spacja, 1 +\end{theindex} +</pre> + +<p>Krok ostatni to kolejna kompilacja LaTeX-em. Oprócz zapisanego +dokumentu pojawi się nowa strona ze skorowidzem. + + +<h3><a name=uzyt>Programy i makra użytkowe</a></h3> + +<p>W pierwszym rozdziale postawiłem sobie dwa nieco kłopotliwe pytania, na +które obiecałem odpowiedzieć -- co niniejszym czynię. + +<h4><a name=PLindex><code><b>MakeIndex</b></code> i <code><b>PLindex</b></code></a></h4> +<p>Doświadczony użytkownik zauważył z pewnością, że w powyższym przykładzie +kompilacja pliku <code>przyklad.tex</code> nie przebiegnie poprawnie! Stanie się +tak, gdyż LaTeX nie ,,zna'' polskich znaków i w miejscach ich +wystąpienia wykaże błąd... + +<p>No właśnie -- co dzieje się z indeksem, gdy zaczynamy używać +<code>LaMeX-a</code> do +składania polskich publikacji? W skorowidzu pojawić się mogą oczywiście +polskie wyrazy zawierające polskie litery oraz podlegające polskim +normom sortowania. W takiej sytuacji program <code><b>MakeIndex</b></code> nie wystarcza. + +<p>Ponieważ źródła programu <code><b>MakeIndex</b></code> dostępne są jako +<i> free software</i>, więc +spróbowałem zaimplementować <code><b>MakeIndex</b></code> dla potrzeb polskiego użytkownika. +Powstał program <code><b>PLindex</b></code>, który sortuje według zasad opisanych w rozdziale +drugim -- ,,Indeks po polsku''. + +<p>Program <code><b>PLindex</b></code> posiada wszystkie możliwości programu +<code><b>MakeIndex</b></code> +(ang. upward compatible). Szczegółowe informacje o możliwościach obu +programów znaleźć można w pracach [3] +oraz [4]. +Jedyną nową opcją dodaną do programu <code><b>PLindex</b></code> jest `<code>-z</code>'. + + +<h4><a name=uzywac>Jak używać <code><b>PLindex</b></code></a></h4> +<p>Oto przepis jak używać <code><b>PLindex</b></code> do polskich skorowidzów: + +\noindent +<pre> +>plindex -z [mazovia|latin2|prefixing] + ... foo.idx +</pre> + + +<p>Po parametrze `<code>-z</code>' wpisać należy jeden z trzech podanych napisów, +określających sposób kodowania polskich znaków diakrytycznych. +Trzy kropki oznaczają, że istnieją inne parametry +(pokrywające się znaczeniem z parametrami programu <code><b>MakeIndex</b></code>). + +<p>Oczywiste wydaje się, iż nie można sortować zbioru wyrazów, używając +zasad dwóch różnych języków narodowych. Na przykład nie można sortować +jednocześnie w języku polskim (opcja `<code>-z</code>') oraz niemieckim (opcja `<code>-g</code>'). +Jeżeli użytkownik poda obie opcje, ostatnia z nich będzie brana pod +uwagę przez program. Także opcja `<code>-c</code>'<sup><a href=#f4>4</a></sup> +nie jest uwzględniana w trybie sortowania po polsku. + +<p>Domyślnie (ang. default) czyli bez jakiejkolwiek opcji <code><b>PLindex</b></code> działa +dokładnie tak samo jak <code><b>MakeIndex</b></code>, to znaczy sortuje zgodnie z angielskimi +normami i angielskim alfabetem. + + +<h4><a name=bieg><code> <b>PLindex</b></code> w biegu</a></h4> +<p>Pozwólmy teraz popracować programowi <code><b>PLindex</b></code>. Weźmy na przykład taki oto +plik <code>.idx</code> z polskimi znakami kodowanymi w standardzie Mazovii +i nazwijmy go <code>testpl.idx</code> + +<pre> +\indexentry{KĄT}{1} +\indexentry{kĄT}{1} +\indexentry{kąt}{1} +\indexentry{kąt}{100} +\indexentry{Kąt}{1} +\indexentry{kąT}{1} +\indexentry{KAT}{1} +\indexentry{kAT}{1} +\indexentry{kat}{1} +\indexentry{Kat}{1} +\indexentry{kaT}{1} +\indexentry{kółko}{1} +\indexentry{kolka}{1} +</pre> + + +<p>Wpiszmy teraz w linii komend polecenie: + +<pre> +>plindex -z mazovia test.idx +</pre> + + +<p>Po krótkiej chwili powinniśmy uzyskać rezultat w postaci pliku <code>.ind</code> +o nazwie <code>testpl.ind</code> w postaci źródłowej: + +<pre> +\begin{theindex} + \item kat, 1 + \item kaT, 1 + \item kAT, 1 + \item Kat, 1 + \item KAT, 1 + \item kąt, 1, 100 + \item kąT, 1 + \item kĄT, 1 + \item Kąt, 1 + \item KĄT, 1 + \item kolka, 1 + \item kółko, 1 +\end{theindex} +</pre> + +Wygląd w składzie +<pre> + + kat, 1 + + kaT, 1 + + kAT, 1 + + Kat, 1 + + KAT, 1 + + kąt, 1, 100 + + kąT, 1 + + kĄT, 1 + + Kąt, 1 + + KĄT, 1 + + kolka, 1 + + kółko, 1 + +</pre> + +<hr> + +oraz pliku-ilg<sup><a href=#f5>5</a></sup> +o nazwie <code>testpl.ilg</code>. + +<p>Zachęcam do przetestowania programu przy użyciu wszelkich sposobów. +Osobiście testowałem program wielokrotnie, między innymi posłużyłem się +zbiorem testów, jakie znalazły się w pakiecie programu +<code><b>MakeIndex</b></code> +w wersji 2.12. <code><b>PLindex</b></code> spisał się bez zarzutu. + + +<h4><a name=idxmac><code>IDXMAC</code> i <code>PLIDXMAC</code></a></h4> +<p>Można powiedzieć, że dotychczas artykuł przeznaczony był tylko dla +użytkowników LaTeX-a i nie zdziwię się, jeśli kogoś zdenerwuje ta +jednostronność. + +<p>W pakiecie programu <code><b>MakeIndex</b></code> w wersji 2.12 znaleźć można plik +<code>idxmac.tex</code>, +który zawiera makra do składania skorowidzów w systemie <em>plain</em>-TeX. +Ponieważ makra te po prostu nie działały, spróbowałem więc je poprawić +i nieco zmodyfikować dla użytkownika formatu MeX. + +<p>Po przetestowaniu makr </code>IDXMAC</code> znalazłem w nich kilka +błędów oraz +niezgodności z systemem LaTeX, które usunąłem; zmiany te szczegółowo +opisałem w [5]. + +<code>IDXMAC</code> z naniesionymi poprawkami i drobnymi dodatkami +dołączam do pakietu {<code><b>PLindex</b></code>} pod nazwą <code>PLIDXMAC</code> +w nadziei, +że okażą się przydatne dla użytkowników formatu <em>plain</em>. + + +<h4><a name=pierwszy><code>PLIDXMAC</code> po raz pierwszy</a></h4> +<p>W pakiecie programu <code><b>PLindex</b></code> znajduje się plik <code>plidxmac.tex</code>, który zawiera +wszystkie definicje potrzebne do tworzenia skorowidzu makr. + +<p>Plik ten należy dołączyć do tworzonego dokumentu TeX-owego komendą: + +<pre> +\input plidxmac.tex +</pre> + +którą należy umieścić przed wywołaniem jakiejkolwiek nowej komendy, +służącej do tworzenia indeksu. Może to być na przykład pierwsza linia +tego dokumentu. + +<p>W tym momencie mamy do dyspozycji trzy<sup><a href=#f6>6</a></sup> +nowe komendy i mimo iż nie jest ich zbyt wiele, w zupełności +wystarczą one do wygenerowania skorowidzu. +Kolejność wywołania komend jest istotna; oto ich układ: + + <pre> + ... +\makeindex + ... +\index{!argument} +\index{!argument} + ... +\index{!argument} + ... +\printindex + ... +</pre> + + +<p>Aby stworzyć najprostszy skorowidz, wystarczy w pliku źródłowym +(rozszerzenie <code>.tex</code>) +umieścić komendę <code>\makeindex</code>. Następnie obok wybranych do indeksu słów +należy wpisać komendę <code>[\makeescape!]\index{!argument}</code>, której dokładny opis znajdziesz +poniżej. Makro <code>\index</code> służy do etykietowania słów, które mają znaleźć się +w skorowidzu. + +<p>Miejsce publikacji, w którym życzymy sobie umieścić indeks, +oznaczyć należy +komendą <code>\printindex</code>, rzecz jasna skorowidz powinien być wcześniej posortowany +i złożony [4]. + +<p>Jeśli weźmiemy znany już plik <code>przyklad.tex</code> w postaci: + +<pre> + +\input plidxmac.tex +\makeindex + Znaki końca linii traktowane są + przez TeX-a tak samo jak + spacja\index{spacja}. Dowolny ciąg + spacji jest traktowany przez TeX-a + tak samo jak jedna + spacja\index{spacja}. Zatem nie jest + ważne, czy odstęp pomiędzy + słowami jest wprowadzony jako jedna, + czy więcej spacji\index{spacja}. + Jednakże pusta linia oznacza dla + TeX-a koniec akapitu\index{akapit}. +\printindex + +</pre> + +to plik <code>przyklad.idx</code> należy posortować wydając polecenie: + +<pre> +>plindex -z Mazovia -s plaintex.ist + przyklad.idx +</pre> + + +<p>Zagadkowe może tu być pojawienie się pliku <code>plaintex.ist</code>. Dokładnie +opisałem tę systuację w dokumentacji do programu <code><b>PLindex</b></code> +[4], +zaznaczę w tym miejscu, iż plik ten, to tak zwany plik stylu i powinien +znajdować się w kartotece bieżącej lub kartotece określonej przez +zmienną systemową <code>INDEXSTYLE</code> +(przykładowo<br> <code>SET INDEXSTYLE=c:\tex\ist</code>),<br> +oraz przedstawię jego zawartość: + +<pre> +preamble +"\\beginindex\n" +postamble +"\n\n\\endindex\n" +</pre> + + +<p>Posortowany plik <code>przyklad.ind</code> jest wspominanym już i gotowym do +kompilacji uporządkowanym skorowidzem, który wprowadzany jest do składu +komendą <code>\printindex</code>. Oto jego postać: + +<pre> +\beginindex +\item akapit, 1 +\indexspace +\item spacja, 1 +\endindex +</pre> + +<h4><a name=pauzy>Indeks z pauzami</a></h4> +<p>Ponieważ niektóre dzieła posiadają indeksy, w których zamiast wcięć +pojawiają się pauzy, dlatego zdefiniowałem makro <code>\indexemdashes</code>, które +wykonuje tę czynność. Makro to powinno pojawić się w pliku źródłowym +przed makrem <code>\printindex</code>. + + + +<h4><a name=potrafi>Co jeszcze potrafi <code>PLIDXMAC</code></a></h4> +<p>W rozdziale ,,<code>PLIDXMAC</code> po raz pierwszy'' +wspomniałem o innych możliwościach, +jakie niosą z sobą makra <code>PLIDXMAC</code>. + +<p>Pierwszą z nich jest wybór konwencji zapisu numerów stron. Domyślnie +przy hasłach pojawiają się cyfry arabskie, można także numerować +wielkimi i małymi cyframi rzymskimi, a także wielkimi i małymi literami. +Aby uzyskać któryś z opisanych efektów, wystarczy komendę +<code>\makeindex</code> +poprzedzić komendą:<br> + +<code>[\makeescape!]\pagenumbering{!argument}</code>, gdzie<br> + +<code>[\makeescape!]!argument</code> --> <code>arabic</code> | <code>roman</code> | +<code>Roman</code> | <code>alph</code> | <code>Alph</code> + +<hr> + +<p>Każdy, kto obok skorowidzu chciałby stworzyć +glosarium<sup><a href="#f7">7</a></sup>, +może dokonać tego w identyczny sposób, jak tworzy się +indeks. Wystarczy użyć komend <code>\makeglossary</code> oraz <code>\glossary</code>, które +odpowiadają makrom <code>\makeindex</code> i <code>\index</code>. Powstaje wówczas plik +z rozszerzeniem <code>.glo</code>. + +<p>Umieszczenie w dokumencie sekwencji: + +<pre> +\begindoublecolumns +\printindex +\enddoublecolumns +</pre> + +\noindent +spowoduje złożenie skorowidzu w dwu szpaltach wyrównanych do góry, zaś +umieściwszy po komendzie <code>\begindoublecolumns</code>; <code>\balancecolumns</code> +wyrównanych do dołu. + + +<h3><a name=zakon>Zakończenie</a></h3> + +<p>Tworzenie skorowidzów na pewno nie jest i nie będzie sprawą łatwą. +Niektóre systemy -- na przykład system WEB -- wspomagają ten proces, +tworząc automatycznie część indeksu. Jest to jeden z przykładów, +gdzie komputer wykonuje cząstkę pracy koncepcyjnej. + +<p>Rzeczywistą trudnością jest dobór kryteriów tworzenia skorowidzu dla +danego typu dzieła. Można zdecydować się na stworzenie kilku +indeksów w obrębie jednej publikacji, tworzyć indeksy po każdym +rozdziale czy tomie. Możliwości jest na prawdę wiele. Można śmiało +stwierdzić, że stworzenie odpowiedniego skorowidzu ,,dopasowanego'' do +publikacji jest swoistą sztuką. + +<p>Wiele osób w naszym kraju, posługujących się TeX-em jako systemem +składu, tworzy mniej lub bardziej obszerne publikacje naukowe, +zapominając o skorowidzach lub nie tworząc ich z braku odpowiednich +narzędzi. Mam nadzieję, że <code><b>PLindex</b></code> i zbiór makr +<code>PLIDXMAC</code> obudzą +w nas potrzebę ich tworzenia przydając się wielu użytkownikom. + +<h3><a name=dostep>Dostęp</a></h3> + +<p>Program <code><b>MakeIndex</b></code> dostępny jest np. w zasobach komputerów +CTAN. Program <code><b>PLindex</b></code> i makra <code>PLIDXMAC</code> dostępne są +na serwerze <a href=ftp://ftp.gust.org.pl/pub/TeX/indexing/>GUST</a>. + +<h3><a name=bib>Bibliografia</a></h3> +<ol> +<!-- norma-szeregowanie-alfabetyczne --> +<li>Norma PN--80/N--01223 ,,Szeregowanie alfabetyczne'', Maj 1980.<br> +<em> Norma zgłoszona przez Ministerstwo Kultury i Sztuki. Ustanowiona + przez Polski Komitet Miar i Jakości.</em> + +<!-- latex-lamport-PL --> +<li>Leslie Lamport. +<i> LaTeX System przygotowywania dokumentów. </i> +Ariel, 1992. +Tłumaczenie polskie: Piotr Wyrostek. + +<!-- makeindex-lamport --> +<li>Leslie Lamport. +<code><b>MakeIndex</b></code>: An Index Processor For LaTeX.<br> +Documentation for general <code><b>MakeIndex</b></code> users, Luty 1987. + +<!-- plindex --> +<li>Bogusław Lichoński. +<code><b>PLindex</b></code> polska implementacja programu <code><b>MakeIndex</b></code>.<br> +Dokumentacja dla użytkowników i programistów, Wrzesień 1993. + +<!-- plidxmac --> +<li>Bogusław Lichoński. +<code>PLIDXMAC</code> makra do tworzenia skorowidzów w systemie + plain-TeX.<br> +Dokumentacja dla użytkowników i programistów, Październik 1993. + +<!-- makeindex-chen --> +<li>Pehong Chen i Michael A. Harrison. +Index Preparation and Processing.<br> +Computer Science Division, Marzec 1987. +</ol> + +<h3><a name=przy>Przypisy</a></h3><p> +<i></i><p> + +<hr width=20% align=left> +<sup><a name="f1"><b>1</b></a></sup> Mimo iż +w dokumentacji systemu DOS znaleźć można informację o możliwości +sortowania słów w językach narodowych -- przy wykorzystaniu programu +systemowego <code>sort</code> -- to jednak opisana możliwość nie została chyba +sumiennie +przetestowana przez twórców systemu, gdyż... program nie działa +poprawnie. + + +<hr width=20% align=left> +<sup><a name="f2"><b>2</b></a></sup> Tekst jest fragmentem książki [2]. + + +<hr width=20% align=left> +<sup><a name="f3"><b>3</b></a></sup> Zwykle jest to katalog +określony zmienną <code>TEXINPUT</code>, na przykład poleceniem:<br> +<code>SET TEXINPUT=c:\tex\texinput</code> + + +<hr width=20% align=left> +<sup><a name="f4"><b>4</b></a></sup> Użycie tej opcji +powoduje znikanie pośrednich (zbytecznych) spacji. Domyślnie wszystkie +spacje są pamiętane. + + +<hr width=20% align=left> +<sup><a name="f5"><b>5</b></a></sup> Plik-ilg jest odpowiednikiem pliku-log, +produkowanego przez TeX-a, czyli jest zbiorem komunikatów wysyłanych +przez <code>PLindex</code>. + + +<hr width=20% align=left> +<sup><a name="f6"><b>6</b></a></sup> W rzeczywistości +jest ich więcej; patrz rozdział ,,Co jeszcze potrafi <code>PLIDXMAC</code>''. + + +<hr width=20% align=left> +<sup><a name="f7"><b>7</b></a></sup> glosarium -- od łac. <i> glossarium</i> zbiór +glos od łac. <i> glossa</i> (stary, obcy) wyraz wymagający wyjaśnienia; +słowni(cze)k wyrazów trudnich, rzadkich, przestarzałych, wymagających +objaśnienia. + + +<hr> +<i>od red.</i><br> +<hr width=20% align=left> +<sup><a name=red1>r1</a></sup> Mazovia była kodem czasowo dopuszczonym przez +Polską Normę, oficjalnie straciła już swoją ważność. Polska +Norma PN-93 T-42118 (zgodna z ISO-8859) określa sposób kodowania +polskich znaków diakrytycznych +<hr width=20% align=left> +<sup><a name=red2>r2</a></sup> Trudno mówić o standardzie, skoro +na tym samym komputerze obowiązują dwa różne sposoby DOS - 852 i +Windows - CP 1250, <b> niezgodne </b> z Polską Normą. + + + +<hr> +<a href=../texologia.html><img src="../gify/lew-7vs.gif" hspace=10 border=0 align=left></a> +<a href=../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://www.ia.pw.edu.pl/~wujek/index.html>Włodzimierz Macewicz</a><br clear=all> +<hr> +Strona była <!-- *counter* --> razy czytana, +ostatnia modyfikacja: <!-- *date* --> +</body> +</html> |