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/idx | |
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/idx')
24 files changed, 2634 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/day.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/day.html new file mode 100644 index 00000000000..b20205b34de --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/day.html @@ -0,0 +1,24 @@ +<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"> +</head> +<body> +<h4>tablica nazw dni tygodnia</h4> +<pre> +static p_char_u pl_maz_day_name_ptr = + { + (char_u *)NULL, + (char_u *)"niedziela", + (char_u *)"poniedziałek", + (char_u *)"wtorek", + (char_u *)"środa", + (char_u *)"czwartek", + (char_u *)"piątek", + (char_u *)"sobota", + }; +</pre> + +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/decode.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/decode.html new file mode 100644 index 00000000000..8d66284702c --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/decode.html @@ -0,0 +1,26 @@ +<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"> +</head> +<body> +<h4>struktura zawierająca adresy tablic nazw liczb</h4> + +Jest ona definiowana w zbiorze opisującym język + + +<pre> +static struct decode maz_decode = + { + &<a href=jedn.html>maz_jedn</a>, + &<a href=dies.html>maz_dies</a>, + &<a href=setki.html>maz_setki</a>, + &<a href=tys.html>maz_tys</a>, + &<a href=mil.html>maz_mil</a> + }; +</pre> + +</body> +</html> + diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/dies.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/dies.html new file mode 100644 index 00000000000..9c530a7ae88 --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/dies.html @@ -0,0 +1,26 @@ +<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"> +</head> +<body> +<pre> +static p_char_u maz_dies = + { + (char_u *)"???", + (char_u *)"dwadzieścia", + (char_u *)"trzydzieści", + (char_u *)"czterdzieści", + (char_u *)"piećdziesiąt", + (char_u *)"sześcdziesiąt", + (char_u *)"siedemdziesiąt", + (char_u *)"osiemdziesiąt", + (char_u *)"dziewięćdziesiąt" + }; + + +</pre> + +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/fig1.gif b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/fig1.gif Binary files differnew file mode 100644 index 00000000000..2f2e3705f88 --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/fig1.gif diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/flags.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/flags.html new file mode 100644 index 00000000000..3f20c10269a --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/flags.html @@ -0,0 +1,19 @@ +<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"> +</head> +<body> +<h4>pole flag</h4> + +Pole to przeznaczone jest do wyzwalania funkcji dodatkowych +dla różnych języków. Zdefiniowana jest jedna wartość odpowiedzialna +za wyzwolenie funkcji ustalającej kolejność +sortowania liczb w języku polskim (stała +bit zdefiniowany stałą <code>NUM_ORDER</code> (wartośc 1). +Funkcje specjalne dla różnych języków powinny być wyzwalane +różnymi bitami pola <code>flags</code>. + +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/id.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/id.html new file mode 100644 index 00000000000..236873fc7b8 --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/id.html @@ -0,0 +1,17 @@ +<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"> +</head> +<body> +<h4> Pole <code>id</code></h4> + +Pole zawiera adres ciągu znaków definiujących identyfikator języka. +Do wyboru języka służy opcja <a href=program.html#optL>-L <i>jęz</i></a> +określenie <i>jęz</i> jest właśnie tym identyfikatorem. Dołączenie +nowego języka automatycznie powoduje pojawienie się go na liście +dopuszczalnych języków (opcja -h). + +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/index.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/index.html new file mode 100644 index 00000000000..7d2f93f754f --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/index.html @@ -0,0 +1,49 @@ +<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> Wszystko o indeksowaniu </title> +</head> +<body bgcolor=#F0F0A0> + +<img src="../gify/indexowanie.gif" width=540 height=135><p> + + +Trudno sobie wyobrazić publikację o charakterze naukowo-technicznym +bez skorowidza. Skorowidz (index) jest uporządkowanym zbiorem używanych +haseł i pojęć. Przy każdej pozycji figuruje numer strony, na której +ona występuje. + +<p>Używając pakietu TeX-a możemy zaspokoić życzenia nawet najbardziej +wymagającego wydawcy. W przedstawianym cyklu postaramy się przedstawić +narzędzia służące do budowy skorowidza oraz <b>unikalny</b> opis +zasad sortowania w języku polskim. + +<p> System TeX jest jednym z niewielu narzędzi pozwalających rozwiązać +problem definiowania skorowidza w wygodny sposób, różny od +,,ręcznego'' tworzenia. Są cztery podstawowe zalety tego narzędzia: +<ol> +<li> efekt można uzyskać w skończonym czasie +<li> hasła są automatycznie sortowane, grupowane i opatrywane numerem strony +<li> kolejność haseł jest <b>zgodna z porządkiem leksykograficznym w języku +polskim</b> +<li> mamy pełną kontrolę nad ostateczną postacią skorowidza +<li> efekty są powtarzalne +</ol> +<hr> +<img src="../gify/artykul.gif"> <a href=porzadek.html>Kolejność leksykograficzna w języku polskim</a> +- <i>B. Lichoński</i> <small>(01.10.1995)</small><br> +<img src="../gify/artykul.gif"> <a href=program.html>Indexowanie za pomocą programu <kbd>plmindex</kbd></a> (dawniej makeindx) +- <i>W. Macewicz</i> <small>(05.03.1999)</small><br> +<img src="../gify/artykul.gif"> <a href=plmindex.html>Program</a> +<kbd>plmindex</kbd> (Polish (Multi Language) makeIndex) +- <i>W. Macewicz</i> <small>(01.10.1995)</small> + +<hr> +<a href=../texologia.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://home.elka.pw.edu.pl/~macewicz/index.html>Włodzimierz Macewicz</a> +<hr> +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/jedn.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/jedn.html new file mode 100644 index 00000000000..d9c938299a5 --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/jedn.html @@ -0,0 +1,36 @@ +<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"> +</head> +<body> +<pre> +static p_char_u maz_jedn = + { + (char_u *)"???", + (char_u *)"jeden", + (char_u *)"dwa", + (char_u *)"trzy", + (char_u *)"cztery", + (char_u *)"pieć", + (char_u *)"sześć", + (char_u *)"siedem", + (char_u *)"osiem", + (char_u *)"dziewięć", + (char_u *)"dziesięć", + (char_u *)"jedenaście", + (char_u *)"dwanaście", + (char_u *)"trzynaście", + (char_u *)"czternaście", + (char_u *)"piętnaście", + (char_u *)"szesnaście", + (char_u *)"siedemnaście", + (char_u *)"osiemnaście", + (char_u *)"dziewiętnaście" + }; + +</pre> + +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/lang.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/lang.html new file mode 100644 index 00000000000..20e08b9e8f8 --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/lang.html @@ -0,0 +1,78 @@ +<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"> +</head> +<body> +<h4>Tablica struktur opisujących języki</h4> + +Tablica zawiera struktury opisujące definiowane języki. Ostatnim +elementem tablicy <b>musi</b> być element +którego wartość pola <code>id</code> wynosi <code>NULL</code>. +<pre> +Public struct _multilanguage multilanguage[] = + { + { + &us_day_name_ptr, + &us_mon_name_ptr, + &us_toascii_table, + &us_lower_table, + &us_upper_table, + &us_char_type, + &us_order_tbl, + 0, + NULL, + "english", + "US english", + NULL + }, + { + <a href=day.html>&pl_maz_day_name_ptr</a>, + <a href=mon.html>&pl_maz_mon_name_ptr</a>, + <a href=toascii.html>&pl_maz_toascii_table</a>, + <a href=lower.html>&pl_maz_lower_table</a>, + <a href=upper.html>&pl_maz_upper_table</a>, + <a href=typy.html>&pl_maz_char_type</a>, + <a href=order.html>&pl_maz_order_tbl</a>, + 0, + <a href=decode.html>Decode_Number</a>, + <a href=id.html>"PL-mazowia"</a>, + <a href=name.html>"Polish mazowia"</a>, + <a href=spec.html>&maz_decode</a> + }, + { + &pl_iso2_day_name_ptr, + &pl_iso2_mon_name_ptr, + &pl_iso2_toascii_table, + &pl_iso2_lower_table, + &pl_iso2_upper_table, + &pl_iso2_char_type, + &pl_iso2_order_tbl, + 0, + Decode_Number, + "PL-latin2", + "Polish ISO-8859-2 (Latin2)", + &iso2_decode + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL + } + }; + +</pre> + +</body> +</html> + diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/lower.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/lower.html new file mode 100644 index 00000000000..0d0a5e4a725 --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/lower.html @@ -0,0 +1,38 @@ +<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"> +</head> +<body> +<h4>Tablica konwersji na małe litery</h4> + +W tablicy są zdefiniowane odpowiedniki dla dużych liter alfabetu. +Tylko te znaki, które są określone jako ,,małe'' w +<a href=typy.html>tablicy typów</a> +<pre> +static a_char_u pl_maz_lower_table = + { + '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', '[', '\\', ']', '^', '_', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'ą', + 'ę', ' ', ' ', ' ', ' ', 'ć', ' ', ' ', + 'ś', ' ', ' ', ' ', 'ł', ' ', ' ', ' ', + 'ź', 'ż', ' ', 'ó', ' ', 'ń' + }; +</pre> + +Tablica zawiera definicje dla wszystkich znaków o kodzie +większym od litery 'A' + + +</body> +</html> + diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/mil.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/mil.html new file mode 100644 index 00000000000..643228a384d --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/mil.html @@ -0,0 +1,21 @@ +<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"> +</head> +<body> +<pre> +static p_char_u maz_mil = + { + (char_u *)"???", + (char_u *)"milion", + (char_u *)"miliony", + (char_u *)"miliony", + (char_u *)"miliony", + (char_u *)"milionów" + }; +</pre> + +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/mon.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/mon.html new file mode 100644 index 00000000000..6efbefe86e1 --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/mon.html @@ -0,0 +1,31 @@ +<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"> +</head> +<body> +<h4>tablica nazw dni miesięcy</h4> +<pre> + +static p_char_u pl_maz_mon_name_ptr = + { + (char_u *)NULL, + (char_u *)"styczeń", + (char_u *)"luty", + (char_u *)"marzec", + (char_u *)"kwiecień", + (char_u *)"maj", + (char_u *)"czerwiec", + (char_u *)"lipiec", + (char_u *)"sierpień", + (char_u *)"wrzesień", + (char_u *)"październik", + (char_u *)"listopad", + (char_u *)"grudzień" + }; +</pre> + +</body> +</html> + diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/name.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/name.html new file mode 100644 index 00000000000..0f500d98573 --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/name.html @@ -0,0 +1,15 @@ +<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"> +</head> +<body> +<h4>Nazwa języka</h4> + +Pole zawiera adres ciągu znaków określających nazwę języka. Nazwa ta +pojawia się przy wywołaniu programu. + + +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/order.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/order.html new file mode 100644 index 00000000000..e0123d55411 --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/order.html @@ -0,0 +1,181 @@ +<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"> +</head> +<body> + +<h4>Tablica definiująca kolejność</h4> + +Tablica określa kolejność znaków w tablicy. Jej budowa jest zależna +od rodzaju języka. Funkcja porównująca ciągi znaków pobiera +element tablicy adresowany wartością porównywanego znaku. W rezultacie +<b>porównywane są wartości elementów tablicy, adresowanych kodami +porównywanych znaków</b> + +<pre> + { +0, 1, 2, 3, 4, 5, 6, 7, +8, +TAB, /* 9 */ +LF, /* 10 0a */ +11, +12, +CR, /* 13 0d */ +14, +15, +16, 17, 18, 19, 20, 21, 22, 23, +24, 25, 26, 27, 28, 29, 30, 31, +' ', /* 32 20 */ +'!', /* 33 21 */ +0x22, /* 34 22 quote */ +'#', /* 35 23 */ +'$', /* 36 24 */ +'%', /* 37 25 */ +'&', /* 38 26 */ +0x27, /* 39 27 single quote */ +'(', /* 40 28 */ +')', /* 41 29 */ +'*', /* 42 2a */ +'+', /* 43 2b */ +',', /* 44 2c */ +'-', /* 45 2d */ +'.', /* 46 2e */ +'/', /* 47 2f */ +'0', /* 48 30 */ +'1', /* 49 31 */ +'2', /* 50 32 */ +'3', /* 51 33 */ +'4', /* 52 34 */ +'5', /* 53 35 */ +'6', /* 54 36 */ +'7', /* 55 37 */ +'8', /* 56 38 */ +'9', /* 57 39 */ +':', /* 58 3a */ +';', /* 59 3b */ +'<', /* 60 3c */ +'=', /* 61 3d */ +'>', /* 62 3e */ +'?', /* 63 3f */ +'@', /* 64 40 */ +'a' * CCCC + 4, /* 'A', 65 41 */ +'b' * CCCC + 4, /* 'B', 66 42 */ +'c' * CCCC + 4, /* 'C', 67 43 */ +'d' * CCCC + 4, /* 'D', 68 44 */ +'e' * CCCC + 4, /* 'E', 69 45 */ +'f' * CCCC + 4, /* 'F', 70 46 */ +'g' * CCCC + 4, /* 'G', 71 47 */ +'h' * CCCC + 4, /* 'H', 72 48 */ +'i' * CCCC + 4, /* 'I', 73 49 */ +'j' * CCCC + 4, /* 'J', 74 4a */ +'k' * CCCC + 4, /* 'K', 75 4b */ +'l' * CCCC + 4, /* 'L', 76 4c */ +'m' * CCCC + 4, /* 'M', 77 4d */ +'n' * CCCC + 4, /* 'N', 78 4e */ +'o' * CCCC + 4, /* 'O', 79 4f */ +'p' * CCCC + 4, /* 'P', 80 50 */ +'q' * CCCC + 4, /* 'Q', 81 51 */ +'r' * CCCC + 4, /* 'R', 82 52 */ +'s' * CCCC + 4, /* 'S', 83 53 */ +'t' * CCCC + 4, /* 'T', 84 54 */ +'u' * CCCC + 4, /* 'U', 85 55 */ +'v' * CCCC + 4, /* 'V', 86 56 */ +'w' * CCCC + 4, /* 'W', 87 57 */ +'x' * CCCC + 4, /* 'X', 88 58 */ +'y' * CCCC + 4, /* 'Y', 89 59 */ +'z' * CCCC + 4, /* 'Z', 90 5a */ +0x5b, /* 91 5b */ +0x5c, /* 92 5c */ +0x5d, /* 93 5d ] */ +0x5e, /* 94 5e */ +'_', /* 95 5f */ +0x60, /* 96 60 ` */ +'a' * CCCC, /* 97 61 */ +'b' * CCCC, /* 98 62 */ +'c' * CCCC, /* 99 63 */ +'d' * CCCC, /* 100 64 */ +'e' * CCCC, /* 101 65 */ +'f' * CCCC, /* 102 66 */ +'g' * CCCC, /* 103 67 */ +'h' * CCCC, /* 104 68 */ +'i' * CCCC, /* 105 69 */ +'j' * CCCC, /* 106 6a */ +'k' * CCCC, /* 107 6b */ +'l' * CCCC, /* 108 6c */ +'m' * CCCC, /* 109 6d */ +'n' * CCCC, /* 110 6e */ +'o' * CCCC, /* 111 6f */ +'p' * CCCC, /* 112 70 */ +'q' * CCCC, /* 113 71 */ +'r' * CCCC, /* 114 72 */ +'s' * CCCC, /* 115 73 */ +'t' * CCCC, /* 116 74 */ +'u' * CCCC, /* 117 75 */ +'v' * CCCC, /* 118 76 */ +'w' * CCCC, /* 119 77 */ +'x' * CCCC, /* 120 78 */ +'y' * CCCC, /* 121 79 */ +'z' * CCCC, /* 122 7a */ +'{', /* 123 7b */ +'|', /* 124 7c */ +'}', /* 125 7d */ +'~', /* 126 7e */ + 127, + 128, + 129, + 130, + 131, + 132, + 133, +'a' * CCCC + 1, /* aogonek 134 86 */ + 135, + 136, + 137, + 138, + 139, + 140, +'c' * CCCC + 1, /* c acute 141 8d */ + 142, +'a' * CCCC + 5, /* Aogonek 143 8f */ +'e' * CCCC + 5, /* Eogonek 144 90 */ +'e' * CCCC + 1, /* eogonek 145 91 */ +'l' * CCCC + 1, /* polish l 146 92 */ + 147, + 148, +'c' * CCCC + 5, /* O acute 149 95 */ + 150, + 151, +'s' * CCCC + 5, /* S acute 152 98 */ + 153, + 154, + 155, +'l' * CCCC + 5, /* polish L 156 9c */ + 157, +'s' * CCCC + 1, /* s acute 158 9e */ + 159, +'z' * CCCC + 5, /* Z dot 160 a0 */ +'z' * CCCC + 6, /* Z acute 161 a1 */ +'o' * CCCC + 1, /* o acute 162 a2 */ +'o' * CCCC + 5, /* O acute 163 a3 */ +'n' * CCCC + 1, /* n acute 164 a4 */ +'n' * CCCC + 5, /* N acute 165 a5 */ +'z' * CCCC + 1, /* z dot 166 a6 */ +'z' * CCCC + 2, /* z acute 167 a7 */ + 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255 + }; +<pre> + +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/plmindex.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/plmindex.html new file mode 100644 index 00000000000..a9b83115776 --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/plmindex.html @@ -0,0 +1,157 @@ +<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> Program plmindex </title> +</head> +<body bgcolor=#F0F0A0> +Przedstawiam Państwu program <code>plmindex</code>, czyli +swoją implementację programu <code>makeindx</code> (wersja 2.12). +Program jest dostępny w postaci pakietu spakowanego (źródła) +programem <code>zip</code> +jest on dostępny pod następującym adresem +<a href="ftp://ftp.elka.pw.edu.pl/pub/unix/DTP/plmindex.zip">plmindex.zip</a><br> +i binaria dla dos'a (djgpp) i Windowsów -- domyślna strona kodowa Mazowia<br> +<a href="ftp://ftp.elka.pw.edu.pl/pub/unix/DTP/djgpp.zip">djgpp.zip</a><br> +oraz dla Windowsów (MS C++) -- domyślna strona kodowa cp1250<br> +<a href="ftp://ftp.elka.pw.edu.pl/pub/unix/DTP/msc.zip">msc.zip</a><br> +Pakiety są także dostępne w archiwum GUST, pod adresem:<br> +<a href=ftp://ftp.gust.org.pl/TeX/GUST/contrib/GUSTPROG/plmindex.zip>plmindex.zip</a> oraz na CTAN-ach +w katalogu <tt>..../language/polish</tt> + + +<p>Program ten służy do sortowania i grupowania skorowidzów +utworzonych pakietem LaTeX. Po przetworzeniu zbioru może on +być dołączony do tekstu jako gotowy skorowidz. + +<p>Krótki opis opcji programu można uzyskać po wywołaniu<br> +plmindex -h + +<p> +Zmiany w programie polegają na dostosowaniu go do pracy +z dowolnym ośmio-bitowym alfabetem (sposobem kodowania). +Prezentowana wersja pozwala na opracowanie skorowidzów +w języku polskim (kod Mazowii, cp1250, cp852 i ISO-8859-2) oraz angielskim. +Zdefiniowanie nowego języka polega na zbudowaniu kilku +tablic określających: porządek leksykograficzny, +kategorie znaków, odpowiedniki liter małe-duże i +<b>nie wymaga modyfikacji kodu</b> programu. Wszystkie funkcje +odpowiedzialne za operowanie na ciągach znaków (,,stringach'') +są sterowane tablicami. Są one całkowicie niezależne od +implementacji kompilatora <code>C</code>. Program był +kompilowany następującymi kompilatorami: +<ul> +<li> Borland C++ v 4.51 -- po dodaniu kolejnych tablic wielkość programu + przerosła możliwości środowiska 16-bitowego +<li> Watcom C++ v 10.0a +<li> GNU C++ v 2.8.1 (System MS-DOS) -- uwaga na wersję 2.8.0, czasami + źle obsługuje + przesyłanie parametrów do funkcji o niezananej liczbie parametrów +<li> GNU C++ v 2.8.1 (SunOS 6.5 i Linux) +<li> MSC C++ 6.0 (Windows 98) +</ul> +dla każdego kompilatora zostały napisane odpowiednie +<code>makefile</code>, łatwo rozróżniane po ostatnim członie +nazwy (rozszerzeniu): +<dl> +<dd><code>.wcc</code> -- Watcom, +<dd><code>.djg</code> -- GNU (MS-Dos), +<dd><code>.gcc</code> -- GNU (SunOS -- ogólnie Unix)<br> +<dd><code>.msc</code> -- MSC C++ 6.0 (Windows 98)<br> +<dd><code>.emx</code> -- GNU (DOS >>implementacja E.Mathesa<< lub OS) +</dl> +odpowiedniemu zbiorowi należy zmienić nazwę na <code>makefile</code> +i uruchomić program <code>make</code> (lub <code>wmake</code> w przypadku +pakietu Watcom i nmake w przypadku MSC) lub wywłać<br> +<tt> +[n|w]make -f makefile.<i>xxx</i> +</tt> + +<hr> +<center> <h2>Opis tablic i struktur</h2> </center> + + +<p>Została zdefiniowana struktura <code>_multilanguage</code> +zawierająca tablice opisujące cechy języka. Odsyłacze przyporządkowane +nazwom pól wskazują na zbiory zawierające przykładowe +definicje dla kodu Mazowii. Nazwa przykładowej tablicy +zawiera prefix określający definiowany język. +<pre> +struct _multilanguage + { + p_char_u <a href=day.html>*day_name_ptr</a>; /* tablica nazw dni tygodnia */ + p_char_u <a href=mon.html>*mon_name_ptr</a>; /* tablica nazw miesięcy */ + int_u <a href=toascii.html>*toascii_table</a>; /* tablica konwersji znaków + o kodach > 127 na + kod ASCII np. ą --> a */ + a_char_u <a href=lower.html>*lower_table</a>; /* tablica konwersji małych + liter na duże */ + a_char_u <a href=upper.html>*upper_table</a>; /* tablica konwersji dużych + liter na małe */ + a_char_u <a href=typy.html>*char_type</a>; /* tablica typów znaków */ + int_u <a href=order.html>*order_tbl</a>; /* tablica definiująca + kolejność leksykograficzną */ + word <a href=flags.html>flags</a>; /* słowo flag */ + char_u <a href=spec.html>*(*_special)(const long)</a>; /* adres funkcji dodatkowych */ + char <a href=id.html>*id</a>; /* identyfikator języka */ + char <a href="name.html">*name</a>; /* nazwa języka */ + struct decode <a href=decode.html>*decode</a>; /* adres struktury opisującej + nazwy liczb */ +}; +</pre> +<pre> +struct decode + { + p_char_u *<a href=jedn.html>jedn</a>; /* adres tablicy nazw jednostek */ + p_char_u *<a href=dies.html>dies</a>; /* adres tablicy nazw dziesiątek */ + p_char_u *<a href=setki.html>setki</a>; /* adres tablicy nazw setek */ + p_char_u *<a href=tys.html>tys</a>; /* adres tablicy nazw tysięcy */ + p_char_u *<a href=mil.html>mil</a>; /* adres tablicy nazw milionów */ + }; +</pre> + +definicje typów +<pre> +typedef unsigned char char_u; + +typedef const unsigned char *p_char_u[]; + +typedef const unsigned char a_char_u[]; +typedef const int int_u[]; +typedef unsigned int word; +</pre> + +Powyższe definicje znajdują się w zbiorze <code>mkind.h</code>. + +<p>W celu podłączenia nowego języka należy utworzyć nowy zbiór +nagłówkowy zawierający opis języka w postaci tabel. + +<p>Utworzony zbiór należy dołączyć poleceniem +<code>#include</code> do zbioru <code>language.c</code> +W zbiorze <code>language.c</code> znajdują się funkcje +odpowiedzialne za operacje na ciągach znaków. Są one +sterowane zmienną <code>Language</code>, będącą wskazaniem +na element tablicy <a href=lang.html><code>multilanguage</code></a> zawierającą +struktury wszystkich zadeklarowanych języków. Początkowa wartość +zmiennej <code>Language</code> określa domyślny język +skorowidza (jest ona zadeklarowana w zbiorze <code>mkind.c</code>). +Dopuszczalna wartość zmiennej jest określona przez konstrukcję +<code>enum _language</code>, tak że w przypadku definiowania +nowego języka należy zdefiniować nowy element -- będzie +on identyfikatorem języka. + + +<p>W zbiorze <code>language.c</code> znajduje się deklaracja +tablicy struktur opisu języków. Ostatnim elementem tablicy +musi być opis zawierający w polu <code>id</code> wartość +<code>NULL</code> + +<hr> +<a href=../texologia.html><img src="../gify/lew-7vs.gif" hspace=10 border=0></a> +<a href=../gify/wa.gif" hspace=10></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> +<!-- *date* --> +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/porzadek.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/porzadek.html new file mode 100644 index 00000000000..98b1190a639 --- /dev/null +++ b/Master/texmf-dist/doc/generic/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> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/program.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/program.html new file mode 100644 index 00000000000..061fde12b19 --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/program.html @@ -0,0 +1,668 @@ +<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> Wszystko o indeksowaniu </title> +</head> +<body bgcolor=#F0F0A0> + + +<center> +<h2>Spis treści</h2> +</center> + +<a href=#wstep>Wstęp</a><br> +<a href=#schemat>Schemat przetwarzania</a><br> +<a href=#tworzenie>Tworzenie zbioru haseł</a><br> +<a href=#przetwarzanie>Przetwarzanie zbioru haseł</a><br> + <dd><a href=#poziomy>Skorowidz wielopoziomowy</a> + <dd><a href=#kolejnosc>Zmiana kolejności sortowania</a> + <dd><a href=#odsylacze>Odsyłacze w skorowidzu, efekty dodatkowe</a> + <dd><a href=#grupowanie>Grupowanie numerów stron</a> + <dd><a href=#znaki>Znaki specjalne</a><br> +<a href=#postac>Definiowanie postaci skorowidza</a><br> +<dd> <a href=#definicje>Używane polecenia</a> +<dd> <a href=#styl>Definiowanie zbioru poleceń</a> +<dd> <a href=#opcje>Opcje programu</a> +<hr> + +<a name=wstep><h2>Wstęp</h2></a> +Każda poważna publikacja o charakterze naukowo-technicznym powinna posiadać +skorowidz (indeks), czyli uporządkowany wykaz używanych, +bądź definiowanych pojęć, zawierający informacje na jakich stronach +są one używane. + +<p> +Jedną z zalet TeX-a jest możliwość automatycznego tworzenia zbiorów +dodatkowych, zawierających informacje związane z przetwarzanym tekstem. +Utworzony zbiór możemy przetworzyć innym programem; +przy ponownym uruchomieniu TeX-a +może on zostać dołączony do dokumentu podstawowego. + +<p> Do porządkowania zbioru haseł służy program <strong>plmindex</strong> +(dawniej <tt>makeindx</tt> lub <tt>makeindex</tt>). +Opisując proces tworzenia skorowidza powołuję się na swoją +implementację; program <strong>plmindex</strong>, czyli +<i>Polish (Multilanguage) index</i>. Program może być zastosowany +do budowy skorowidza w polskich publikacjach. Dokładny +opis własności programu <strong>plmindex</strong> znajduje +się w <a href="plmindex.html"> następnym artykule tego cyklu</a>. + + +<a name=schemat><h2>Schemat przetwarzania</h2></a> + +Tworzenie skorowidza w dokumencie przetwarzanym TeX-em +zostało zrealizowane według powyższego schematu zilustrowanego +rysunkiem:<br> + +<p align=center><img src="tex-idx.gif" +width=320 height=510><br> + +<p>Po pierwszym przetwarzaniu dokumentu otrzymujemy zbiór +dodatkowy z rozszerzeniem <code>.idx</code> (podstawowy trzon +nazwy jest identyczny z nazwą dokumentu). Zawiera on wszystkie +hasła, definiowane w dokumencie źródłowym za pomocą +polecenia <code>\index</code>. W celu zainicjowania zbioru haseł +należy wywołać polecenie <code>\plmindex</code> + +<p>Podstawową rolą programu <strong>plmindex</strong> jest uporządkowanie i +posortowanie zbioru haseł wygenerowanego przez pakiet LaTeX-a. +Uporządkowany zbiór skorowidza +dołączamy do dokumentu podstawowego poleceniem <code>\printindex</code>. +Standardowo zbiór ten ma rozszerzenie <code>.ind</code>. + + +<a name=tworzenie><h2>Tworzenie zbioru haseł</h2></a> + +Niezbędny zestaw poleceń w dokumencie umożliwiający utworzenie +i dołączenie skorowidza: +<pre> +\documentclass{article} +\usepackage{makeidx} +\makeindex +\begin{document} +. +. +. +..... bqq\index{bqq} + .... aqq\index{aqq} +. +. +. +\printindex +\end{document} +</pre> +Po przetworzeniu pakietem LaTeX2e otrzymamy następujący zbiór skorowidza: +<pre> +\indexentry{bqq}{1} +\indexentry{aqq}{1} +</pre> + +<p> +Poszczególne hasła sa definiowane poleceniem <code>\index{...}</code>. +Najwygodniej jest umieszczać polecenia tworzące hasła w momencie +pisania dokumentu. Trudno sobie wyobrazić automat wprowadzający +wskazane słowa do skorowidza, ponieważ hasła powinny występować +w swojej podstawowej formie (np. rzeczowniki w mianowniku), a nie +w formie wynikającej z kontekstu; pozostaje ,,ręczne'' definiowanie +hasła przy okazji jego istotnego wystąpienia. + +<p>W zbiorze haseł +każde zdefiniowane pojęcie jest umieszczane jako pierwszy argument polecenia +<code>\indexentry</code>, drugim argumentem jest numer strony na +której ono wystąpiło (wg. aktualnego formatu pisania numerów stron). +Należy dbać o to, aby między wystąpieniem danego hasła, a +poleceniem wprowadzającym je do skorowidza nie nastąpiło przejście +do nowej strony.<br> + +<center> +<table border> +<tr> + <td> definicja błędna </td> <td> definicja poprawna </td> + </tr> +<tr> + <td> <code>aqq \index{aqq} + </code> </td> <td> <code>aqq\index{aqq} + </code> </td> + </tr> +</table> +</center> + +<a name=przetwarzanie><h2> Przetwarzanie zbioru haseł </h2></a> + +Zbiór zawierający listę wszystkich haseł należy przetworzyć programem +<strong>plmindex</strong>. W najprostszym przypadku linia wywołania programu wygląda następująco: +<pre> +<strong>plmindex</strong> <i>zbiór</i> +</pre> +Hasła definiowane w zbiorze <i>zbiór</i><code>.idx</code> zostaną +pogrupowane (usunięte wielokrotne definicje na tej samej stronie) +oraz posortowane i zapisane do zbioru <i>zbiór</i><code>.ind</code>. +W naszym przykładzie, +uporządkowany zbiór (rozszerzenie <code>.ind</code>) +będzie wyglądał następująco: +<pre> +\begin{theindex} + + \item aqq, 1 + + \indexspace + + \item bqq, 1 + +\end{theindex} +</pre> +Podczas powtórnego przetwarzania dokumentu pakietem LaTeX2e, powyższy zbiór +zostanie dołączony w miejscu wystąpienia polecenia <code>\printindex</code>. + +<a name=poziomy><h3>Skorowidz wielopoziomowy</h3></a> + +Program <strong>plmindex</strong> pozwala na zdefiniowanie trójpoziomowej +struktury hasła. +Znakiem odzielającym poziomy jest <code>!</code> (wykrzyknik). Przykładowe +polecenia: +<pre> +krowa\index{ssaki!parzysto-kopytne!krowa} +koń\index{ssaki!nieparzysto-kopytne!koń} +tapir\index{ssaki!nieparzysto-kopytne!tapir} +są ssakami\index{ssaki} +</pre> +określenia: <code>parzysto-kopytne</code> i <code>nieparzysto-kopytne</code> +są hasłami podrzędnymi hasła <code>ssaki</code> i samodzielnie +nie wystąpują (nie są definiowane w sposób jawny). Nazwy <code>krowa</code>, +<code>koń</code> i <code>tapir</code> +stanowią najniższy poziom. + +<p> +Po przetworzeniu programem <strong>plmindex</strong> zbiór <code>.ind</code> wygląda następująco: +<pre> +\begin{theindex} + + \item ssaki, 1 + \subitem nieparzysto-kopytne + \subsubitem koń, 1 + \subsubitem tapir, 1 + \subitem parzysto-kopytne + \subsubitem krowa, 1 + +\end{theindex} +</pre> +Numery stron są umieszczane tylko wtedy jeśli hasło jest wprowadzone +w <b>sposób jawny</b> do indeksu (np. +hasło <code>parzysto-kopytne</code> zostanie utworzone automatycznie, +i nie zostanie opatrzone numerem strony). + +<p>Ostatecznie po wydrukowaniu powyższy fragment skorowidza wygląda +następująco: +<img src="fig1.gif" align="middle"> + +<a name=kolejnosc><h3>Zmiana kolejności sortowania</h3></a> + +Czasami zdarza się, że hasło powinno być umieszczone w innym miejscu +niż wynika to z porządku leksykograficznego (np. polecenie +TeX-a poprzedzone znakiem <code>\</code> umieszczamy w miejscu +wynikającym z nazwy polecenia, ignorując znak <code>\</code>). W tym wypadku +polecenie <code>\index</code> ma następującą skladnię: +<pre> +\index{hasło do sortowania@hasło do indeksu} +</pre> +określenie +<code>hasło do sortowania</code> służy programowi <strong>plmindex</strong> jako wzorzec do nadania +porządku leksykograficznego, natomiast <code>hasło do indeksu</code> +znajdzie się w spisie. W przypadku haseł wielopoziomowych +polecenie może wyglądać następująco: +<pre> +\index{sort@index!sort-1@index-1!sort-2@index-2} +</pre> +Innym powodem użycia tej konstrukcji może być chęć zmiany kroju +pisma jakim składane jest dane hasło (np. wyróżnienie słowa kluczowego): +<pre> +\index{alfa@{\itshape alfa}} +</pre> +Zbiór <code>.ind</code> wygląda następująco: +<pre> +\begin{theindex} + + \item {\itshape alfa}, 1 + +\end{theindex} +</pre> + +<a name=odsylacze><h3>Odsyłacze w skorowidzu, efekty dodatkowe</h3></a> + +Definiując hasło skorowidza, możemy w tym momencie zwrócić +uwagę czytelnika na inne hasło, służy do tego operator +<i>encapsulacji</i>, którym jest znak <code>|</code>.<br> +Przykład: +<pre> +\def\seename{p.} +\def\see#1#2{#2, ({\itshape \seename~#1}\/)} + +aqq\index{aqq|see{bqq}} +</pre> +da nam następujące hasło w skorowidzu: +<pre> + + \item aqq, \see{bqq}{1} + +</pre> +które w dokumencie wynikowym, będzie wyglądało następująco: +<dl> +<dd> aqq, 1, (<i>p. bqq</i>) +</dl> +Łatwo widać, że napis po znaku <code>|</code> jest traktowany +jako makropolecenie (jego argumentem aktualnym jest zawsze numer strony). +W przypadku konstrukcji <code>see</code> definiowany jest własny parametr +określający hasło podobne -- parametr drugi (numer strony) jest pobierany +z listy parametrów aktualnych, ale nie jest wykorzystywany +(w przeciwnym wypadku pojawiłby się jako blok <code>{1}</code>. + +<p> +Za pomocą <i>enkapsulacji</i> można zrealizować rozróżnianie typu +występującego +hasła, np. miejsce definicji odróżniamy od normalnego wystąpienia użyciem +innej czcionki przy podawaniu numeru strony; i tak: +<dl> +<dd><i>italic</i> hasło używane w przykładzie +<dd><b>bold</b> miejsce zdefniowania pojęcia +<dd> pozostałe składane czcionką standardową +</dl> +Przykład: +<pre> +\def\italic#1{{\itshape #1}} +\def\bold#1{{\bfseries #1}} + +\def\idxb#1{\index{#1|bold}} +\def\idxi#1{\index{#1|italic}} +\let\idx=\index + +aqq\idxb{aqq} %miejsce definicji +aqq\idx{aqq} %normalne wystąpienie +aqq\idxi{aqq} %użycie w przykładzie +</pre> +i rezultat: +<pre> + + \item aqq, 1, \bold{1}, \italic{1} + +</pre> + +<a name="grupowanie"><h3>Grupowanie numerów stron</h3></a> + +Używając polecenia <code>\index</code> możemy zadeklarować, że +dane hasło jest opisywane na kilku stronach. Początek +opisu hasła zaznaczamy: +<pre> +strona 1: aqq\index{aqq|(} +</pre> +a kończymy +<pre> +strona 3: aqq\index{aqq|)} +</pre> +w wyniku działania programu <strong>plmindex</strong> i ponownego przetwarzania LaTeX-em +otrzymamy: +<pre> + aqq, 1-3 +</pre> +jeżeli między konstrukcją +<code>\index{...|(}</code>, a <code>\index...|)}</code> +pojawi się normalna definicja tego samego hasła to zostanie +ona zignorowana (jako zawierająca się w zadanym zakresie). Jeżeli konstrukcja +zamykająca nie wystąpi, to ostatnia definicja hasła spełni tą rolę. + +<p>Standardowo, jeżeli hasło występuje na kolejnych stronach to +numery stron są grupowane (efekt taki jak w powyższym przykładzie). +Używanie powyższej +konstrukcji ma sens, jeśli chcemy uzyskać ten efekt tylko dla wybranych haseł, +wtedy należy wywołać program <strong>plmindex</strong> z opcją <a href=#optr> +-r</a>, która wyłączy standardowe grupowanie numerów stron. + +<a name=znaki><h3>Znaki specjalne</h3></a> + +W wyżej opisywanych konstrukcjach znaki <code>|</code>, +<code>|</code>, +<code>!</code> i +<code>@</code> miały znaczenie specjalne, jeżeli chcemy +w haśle skorowidza użyć jednego z wyżej wymienionych znaków +należy poprzedzić go znakiem <code>"</code> np. + +<pre> +aqq!aqq\index{aqq"!aqq} +</pre> +wprowadzi do skorowidza hasło: +<pre> +aqq!aqq, 1 +</pre> + +<a name=postac><h2>Definiowanie postaci skorowidza</h2></a> + +Program <strong>plmindex</strong> porządkując zbiór haseł wstawia szereg +poleceń. Możemy mieć wpływ zarówno na ich zestaw, jak i na ich definicję. + +Właściwości programu możemy zmieniać na trzy sposoby: + +<dl> +<dt> <a name=definicje><b>zmienić standardowe definicje używanych poleceń +(makroinstrukcji)</b></a> + +<dd>Program <strong>plmindex</strong> zanurza zbiór posortowanych i posegregowanych haseł +w środowisku <code>index</code>. Użycie środowiska powoduje +zdefiniowanie podrozdziału o nazwie zdefiniowanej przez makroinstrukcję +<code>\indexname</code>. Standardowo wartością polecenia +jest napis <code>Index</code>, jeżeli chcemy zmienić napis +należy zmienić definicję tego polecenia np: +<pre> +\renewcommand\indexname{Skorowidz} +</pre> +Do definiowania sposobu prezentacji haseł na różnych +poziomach używane są następujące makroinstrukcje:<br> +</dl> +<table border> +<tr> <th>poziom</th> <th> nazwa</th> <th>standardowa definicja</th> </tr> +<tr> <td>1</td> <td>\item</td> <td>\par\hangindent 40\p@</td></tr> +<tr> <td>2</td> <td>\subitem</td> <td>\par\hangindent 40\p@ \hspace*{20\p@}</td></tr> +<tr> <td>3</td> <td>\subsubitem</td> <td>\par\hangindent 40\p@ \hspace*{30\p@}</td></tr> +</table><br> +<dl> +<dd>między grupy haseł (między hasła zaczynające się od różnych znaków -- +ale tylko na najwyższym poziomie) jest wstawiane polecenie:<br> +<code>\indexspace</code> o wartości<br> +<code>\par\vskip10\p@ \@plus5\p@ \@minus 3\p@\relax</code><p> + +<dt> <a name=styl><b>zmienić zestaw poleceń (makroinstrukcji)</b></a> +<dd> +Możemy utworzyć specjalny zbiór zawierający szereg poleceń +sterujących programem <strong>plmindex</strong>. Program <strong>plmindex</strong> wczytuje ten zbiór +jeżeli jest zdefiniowana opcja <code>-s</code> (p. <a href=#style>opcje</a>); +standardowym rozszerzeniem nazwy jest <code>.mst</code>. +W zbiorze tym można zdefiniować następujące wartości:<p> +</dl> +<table border> +<tr><th>Nazwa</th><th>Wartość standardowa</th><th>Opis</th></tr> +<tr><td nowrap><code>preamble</code> <i>string</i> </td> + <td nowrap>"\\begin{theindex}\n" </td> + <td>początek zbioru</td></tr> +<tr><td nowrap><code>postamble</code> <i>string</i> </td> + <td nowrap>"\n\n\\end{theindex}\n" </td> + <td>koniec zbioru</td></tr> +<tr><td nowrap><code>setpage_prefix</code> <i>string</i> </td> + <td nowrap>"\n \\setcounter{page}{" </td> + <td>początek polecenia + definiujący + zmianę wartości numeru + strony</td></tr> +<tr><td nowrap><code>setpage_suffix</code> <i>string</i> </td> + <td nowrap>"}\n" </td> + <td>koniec definicji + polecenia zmiany + numeru strony</td></tr> +<tr><td nowrap><code>group_skip</code> <i>string</i> </td> + <td nowrap>"\n\n \\indexspace\n"</td> + <td> polecenie wstawiane przed rozpoczęciem + grupy haseł</td></tr> +<tr><td nowrap><code>headings_flag</code> <i>string</i> </td> + <td nowrap>0 </td> + <td>flaga aktywująca + wstawianie poleceń + przy zmianie + pierwszego znaku + haseł, wartość + pozytywna (>0) + wstawiany będzie + znak w postaci dużej + litery, jeśli <0 + znak małej litery</td></tr> +<tr><td nowrap><code>heading_prefix</code> <i>string</i> </td> + <td nowrap>"" </td> + <td>ciąg znaków, który + będzie poprzedzał + w.m. znak</td></tr> +<tr><td nowrap><code>symhead_positive</code> <i>string</i> </td> + <td nowrap>"Symbols" </td> + <td>nazwa grupy + haseł nie zaczynających + się literą (wstawiany + jeśli flaga >0)</td></tr> +<tr><td nowrap><code>symhead_negative</code> <i>string</i> </td> + <td nowrap>"symbols" </td> + <td>nazwa grupy + haseł nie zaczynających + się literą (wstawiany + jeśli flaga <0)</td></tr> +<tr><td nowrap><code>numhead_positive</code> <i>string</i> </td> + <td nowrap>"Numbers" </td> + <td>nazwa grupy + haseł zaczynających + się cyfrą (wstawiany + jeśli flaga <0)</td></tr> +<tr><td nowrap><code>numhead_negative</code> <i>string</i> </td> + <td nowrap>"numbers" </td> + <td>nazwa grupy + haseł zaczynających + się cyfrą (wstawiany + jeśli flaga <0)</td></tr> +<tr><td nowrap><code>item_0</code> <i>string</i> </td> + <td nowrap>"\n \\item " </td> + <td>polecenie wstawiane + między dwie pozycje + na poziomie 0</td></tr> + +<tr><td nowrap><code>item_1</code> <i>string</i> </td> + <td nowrap>"\n \\subitem " </td> + <td>polecenie wstawiane między dwie + pozycje na poziomie 1</td></tr> + +<tr><td nowrap><code>item_2</code> <i>string</i> </td> + <td nowrap>"\n \\subsubitem " </td> + <td>polecenie wstawiane + między dwie pozycje + na poziomie 2</td></tr> +<tr><td nowrap><code>item_01</code> <i>string</i> </td> + <td nowrap>"\n \\subitem " </td> + <td>polecenie wstawiane między + pozycje poziomu 0 i 1</td></tr> +<tr><td nowrap><code>item_x1</code> <i>string</i> </td> + <td nowrap>"\n \\subitem " </td> + <td>polecenie wstawiane między + pozycje poziomu 0 i 1, + jeśli pozycja poziomu 0 + nie wystąpiła w sposób + jawny (nie będzie opatrzona + numerem strony)</td></tr> +<tr><td nowrap><code>item_12</code> <i>string</i> </td> + <td nowrap>"\n \\subsubitem " </td> + <td>polecenie wstawiane między + pozycje poziomu 1 i 2</td></tr> +<tr><td nowrap><code>item_x2</code> <i>string</i> </td> + <td nowrap>"\n \\subsubitem " </td> + <td>polecenie wstawiane między + pozycje poziomu 1 i 2 + jeśli pozycja poziomu 1 + nie wystąpiła w sposób + jawny (nie będzie opatrzona + numerem strony)</td></tr> +<tr><td nowrap><code>delim_0</code> <i>string</i> </td> + <td nowrap>", " </td> + <td>separator między hasłem + poziomu 0, + a pierwszym numerem strony</td></tr> +<tr><td nowrap><code>delim_1</code> <i>string</i> </td> + <td nowrap>", " </td> + <td>separator między hasłem + poziomu 1, a pierwszym + numerem strony</td></tr> +<tr><td nowrap><code>delim_2</code> <i>string</i> </td> + <td nowrap>", " </td> + <td>separator między hasłem + poziomu 2, a pierwszym + numerem strony</td></tr> +<tr><td nowrap><code>delim_n</code> <i>string</i> </td> + <td nowrap>", " </td> + <td>separator między + kolejnymi numerami stron + (wszystkie poziomy haseł)</td></tr> +<tr><td nowrap><code>delim_r</code> <i>string</i> </td> + <td nowrap>"--" </td> + <td>separator odzielający + numery zakresów stron + występowania hasła</td></tr> +<tr><td nowrap><code>delim_t</code> <i>string</i> </td> + <td nowrap>"" </td> + <td>ciąg znaków umieszczany + na końcu listy numerów + stron</td></tr> +<tr><td nowrap><code>encap_prefix</code> <i>string</i> </td> + <td nowrap>"\\" </td> + <td>pierwsza część ciągu + znaków wstawiana + przy używaniu + znaku sterującego + enkapsulacji + (<code>|</code>)</td></tr> +<tr><td nowrap><code>encap_infix</code> <i>string</i> </td> + <td nowrap>"{" </td> + <td>druga część + znaków wstawiana + przy używaniu + znaku sterującego + enkapsulacji + (<code>|</code>)</td></tr> +<tr><td nowrap><code>encap_suffix</code> <i>string</i> </td> + <td nowrap>"}" </td> + <td>ciąg znaków zamykający + polecenie enkapsulacji</td></tr> +<tr><td nowrap><code>line_max</code> <i>number</i> </td> + <td nowrap>72 </td> + <td>maksymalna liczba znakow w linii + (jeśli definicja hasła będzie + dłuższa, zostanie przeniesiona do + następnej linii)</td></tr> +<tr><td nowrap><code>indent_space</code> <i>string</i> </td> + <td nowrap>"\t\t" </td> + <td>ciąg znaków wstawiany na początku + ,,łamanej linii''</td></tr> +<tr><td nowrap><code>indent_length</code> <i>number</i> </td> + <td nowrap>16 </td> + <td>określenie szerokości w.m. + ciągu znaków (potrzebne do + prowadzenia pozycji w bieżącej + linii</td></tr> +</table> +<dl> +<p>Przykład: +Zawatrość zbioru <code>.mst</code> +<pre> +delim_0 "~~" +delim_1 "~~" +delim_2 "~~" +headings_flag 1 +heading_prefix "{\\par\\goodbreak\\vskip2ex\\par\\large\\bf\\noindent " +heading_suffix "}\\par\\nobreak\\vskip 1.5ex" +</pre> +daje następujący efekt: +<pre> +\begin{theindex} +{\par\goodbreak\vskip2ex\par\large\bf\noindent A}\par\nobreak\vskip 1.5ex + \item a~~\bold{16}, \see{odsyłacz}{16}, \bold{25} + \subitem effect~~\bold{20} + \subsubitem new~~\bold{20} + \subsubitem overlay~~\bold{20} + \subsubitem replace~~\bold{20} + \subitem href~~\bold{25} + \subsubitem \#~~\bold{19} + +. +. +. + + \indexspace +{\par\goodbreak\vskip2ex\par\large\bf\noindent Z}\par\nobreak\vskip 1.5ex + \item zlecenie poszukiwania~~54 + \item zmiana czcionki~~28 + \item znaki specjalne~~92 + +\end{theindex} +</pre> +makroinstrukcja <code>\bold</code> została zdefiniowana jako:<br> +<code>\def\bold#1{{\bfseries #1}}</code><p> + + +<dt> <a name=opcje><b>zmienić sposób działania programu <strong>plmindex</strong> definiując parametry + wywołania (opcje)</b></a> +<dd> +Program <strong>plmindex</strong> posiada szereg parametrów wywołania. Ogólna +postać wygląda następująco: +<pre> +<strong>plmindex</strong> [<opt>] [<idx0> ...] +</pre> +<code><opt></code> mogą przyjmować jedną z następujących wartości:<p> +</dl> +<table border> +<tr> <th> opcja</th> <th> opis</th> </tr> +<tr><td> -l </td><td> podczas sortowania ignoruj spacje między słowami hasła; + np. hasło <code>aqq bqq</code> zostanie potraktowane + tak jak <code>aqqbqq</code> + </td></tr> +<tr><td> -i </td><td> jako zbioru haseł użyj standardowego strumienia (stdin) + </td></tr> +<tr><td> -q </td><td> nie wyświetlaj komunikatów + </td></tr> +<tr><td> <a name="optr">-r</a> </td><td> nie grupuj numerów stron; np. + jeżeli hasło wystąpi + na stronie 1, 2 i 3 to w skorowidzu + <b>nie zostanie</b> to przedstawione jako 1-3, natomiast + hasła grupowane w sposób jawny (p. <a href=#grupowanie> + grupowanie numerów stron</a>), będą miały pogrupowane + numery stron + </td></tr> +<tr><td> -c </td><td> ciąg spacji i tabulatorów jest zamieniany na + jedną spację + </td></tr> +<tr><td nowrap> <a name=optL>-L</a> <i>lang</i> </td><td> wybór języka, determinującego porządek + leksykograficzny + <table border=0> + <tr><td><i>lang</i> </td><td> <code>english</code></td></tr> + <tr><td> </td><td> <code>PL-latin2</code></td></tr> + <tr><td> </td><td> <code>PL-mazowia</code></td></tr> + <tr><td> </td><td> <code>PL-cp1250</code></td></tr> + <tr><td> </td><td> <code>PL-cp852</code></td></tr> + </table><td></tr> +<tr><td nowrap> -s <i>sty</i> </td><td> +<a name="style">nazwa zbioru</a> definicji (standardowe rozszerzenie + <code>.mst</code>) + </td></tr> +<tr><td nowrap> -o <i>ind</i> </td><td> nazwa zbiory wyjściowego (standardowo taka + jak zbiór wejściowy z + rozszerzeniem <code>.ind</code>) + </td></tr> +<tr><td> -? <br>-h </td><td> wyświetlenie listy opcji</td></tr> +<tr><td> <a name=optw>-! </td><td> opcja procedur specjalnych (zależy od + wybranego języka; dla języka polskiego + oznacza, że liczby (cyfry) będa umieszczane + w miejscu wynikającym z napisu reprezentującego + ich wartości; np. cyfra 1 zostanie potraktowana + tak jak napis <code>jeden</code>) (czywiście + można wymusić inną <a href=#kolejnosc>kolejność</a> + sortowania)</td></tr> +<tr><td nowrap> -t <i>log</i> </td><td> <i>log</i> zbiór zawierający + dodatkowe komunikaty (standardowo nazwa taka jak + zbiór wejściowy z rozszerzeniem + <code>.ilg</code>) + </td></tr> +<tr><td nowrap> -p <i>num</i> </td><td> <i>num</i> + początkowa wartość licznika stron<br> +</table> +<dl> +<dd><idx0> - zbiór haseł (standardowe rozszerzenie <code>.idx</code>)<br> +</dl> + +<hr> +<a href=../texologia.html><img src="../gify/lew-7vs.gif" hspace=10 border=0></a> +<a href=../gify/wa.gif" hspace=10></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> +Strona była <!-- *counter* --> razy czytana, <!-- *date* --> +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/setki.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/setki.html new file mode 100644 index 00000000000..0600577790f --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/setki.html @@ -0,0 +1,27 @@ +<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"> +</head> +<body> + +<pre> +static p_char_u maz_setki = + { + (char_u *)"???", + (char_u *)"sto", + (char_u *)"dwieście", + (char_u *)"trzysta", + (char_u *)"czterysta", + (char_u *)"piećset", + (char_u *)"sześćset", + (char_u *)"siedemset", + (char_u *)"osiemset", + (char_u *)"dziewięćset" + }; + +</pre> + +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/spec.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/spec.html new file mode 100644 index 00000000000..9dad5230033 --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/spec.html @@ -0,0 +1,20 @@ +<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"> +</head> +<body> + +<h4>Adres funkcji dodatkowej</h4> + +W polu tym znajduje się adres funkcji dodatkowej. W przypadku +języka polskiego odpowiada ona za porządek leksykograficzny +liczb (przy zapalonej opcji <code><a href=program.html#optw>-!</a></code>) +Jest ona wywoływana jeśli pole <a href=flags.html>flag</a> ma zapalony +bit zdefiniowany stałą <code>NUM_ORDER</code> (wartośc 1). +Funkcje specjalne dla różnych języków powinny być wyzwalane +różnymi bitami pola <code>flags</code>. + +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/tex-idx.gif b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/tex-idx.gif Binary files differnew file mode 100644 index 00000000000..7f2a83784de --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/tex-idx.gif diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/toascii.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/toascii.html new file mode 100644 index 00000000000..9e2be3cc319 --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/toascii.html @@ -0,0 +1,150 @@ +<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"> +</head> +<body> + +<h4>Tablica konwersji znaków na znaki ASCII</h4> + +Tablica zawiera odpowiedniki znaków o kodach powyżej >128 na znaki ASCII. +W tablicy wstawione są kody znaków najbardziej podobnych do oczekiwanych; +np. ą --> a; tablica ma 128 elementów. + +<pre> +static int_u pl_maz_toascii_table = + { + 'C', /* 128 0x80 */ + 'u', /* 129 0x81 */ + 'e', /* 130 0x82 */ + 'a', /* 131 0x83 */ + 'a', /* 132 0x84 */ + 'a', /* 133 0x85 */ + 'a', /* 134 0x86 */ + 'c', /* 135 0x87 */ + 'e', /* 136 0x88 */ + 'e', /* 137 0x89 */ + 'e', /* 138 0x8a */ + 'i', /* 139 0x8b */ + 'i', /* 140 0x8c */ + 'c', /* 141 0x8d */ + 'A', /* 142 0x8e */ + 'A', /* 143 0x8f */ + 'E', /* 144 0x90 */ + 'e', /* 145 0x91 */ + 'l', /* 146 0x92 */ + 'o', /* 147 0x93 */ + 'o', /* 148 0x94 */ + 'C', /* 149 0x95 */ + 'u', /* 150 0x96 */ + 'u', /* 151 0x97 */ + 'S', /* 152 0x98 */ + 'O', /* 153 0x99 */ + 'U', /* 154 0x9a */ + 'c', /* 155 0x9b */ + 'L', /* 156 0x9c */ + 'Y', /* 157 0x9d */ + 's', /* 158 0x9e */ + 'f', /* 159 0x9f */ + 'Z', /* 160 0xa0 */ + 'Z', /* 161 0xa1 */ + 'o', /* 162 0xa2 */ + 'O', /* 163 0xa3 */ + 'n', /* 164 0xa4 */ + 'N', /* 165 0xa5 */ + 'z', /* 166 0xa6 */ + 'z', /* 167 0xa7 */ + '?', /* 168 0xa8 */ + '!', /* 169 0xa9 */ + '!', /* 170 0xaa */ + ' ', /* 171 0xab */ + ' ', /* 172 0xac */ + '!', /* 173 0xad */ + '<', /* 174 0xae */ + '>', /* 175 0xaf */ + '|', /* 176 0xb0 */ + '|', /* 177 0xb1 */ + '|', /* 178 0xb2 */ + '|', /* 179 0xb3 */ + '|', /* 180 0xb4 */ + '|', /* 181 0xb5 */ + '|', /* 182 0xb6 */ + '|', /* 183 0xb7 */ + '|', /* 184 0xb8 */ + '|', /* 185 0xb9 */ + '|', /* 186 0xba */ + '|', /* 187 0xbb */ + '+', /* 188 0xbc */ + '+', /* 189 0xbd */ + '+', /* 190 0xbe */ + '+', /* 191 0xbf */ + '+', /* 192 0xc0 */ + '+', /* 193 0xc1 */ + '+', /* 194 0xc2 */ + '|', /* 195 0xc3 */ + '-', /* 196 0xc4 */ + '|', /* 197 0xc5 */ + '|', /* 198 0xc6 */ + '|', /* 199 0xc7 */ + '|', /* 200 0xc8 */ + '|', /* 201 0xc9 */ + '-', /* 202 0xca */ + '-', /* 203 0xcb */ + '|', /* 204 0xcc */ + '-', /* 205 0xcd */ + '|', /* 206 0xce */ + '-', /* 207 0xcf */ + '-', /* 208 0xd0 */ + '-', /* 209 0xd1 */ + '-', /* 210 0xd2 */ + '|', /* 211 0xd3 */ + '|', /* 212 0xd4 */ + '|', /* 213 0xd5 */ + '|', /* 214 0xd6 */ + '|', /* 215 0xd7 */ + '|', /* 216 0xd8 */ + '-', /* 217 0xd9 */ + '-', /* 218 0xda */ + '|', /* 219 0xdb */ + '-', /* 220 0xdc */ + '|', /* 221 0xdd */ + '|', /* 222 0xde */ + '-', /* 223 0xdf */ + 'a', /* 224 0xe0 */ + 's', /* 225 0xe1 */ + 'G', /* 226 0xe2 */ + 'p', /* 227 0xe3 */ + 'S', /* 228 0xe4 */ + 's', /* 229 0xe5 */ + 'm', /* 230 0xe6 */ + 't', /* 231 0xe7 */ + 'p', /* 232 0xe8 */ + 'H', /* 233 0xe9 */ + 'O', /* 234 0xea */ + 'd', /* 235 0xeb */ + 'o', /* 236 0xec */ + 'o', /* 237 0xed */ + 'e', /* 238 0xee */ + 'n', /* 239 0xef */ + '=', /* 240 0xf0 */ + '+', /* 241 0xf1 */ + '>', /* 242 0xf2 */ + '<', /* 243 0xf3 */ + 'f', /* 244 0xf4 */ + 'f', /* 245 0xf5 */ + '/', /* 246 0xf6 */ + '=', /* 247 0xf7 */ + 'o', /* 248 0xf8 */ + '.', /* 249 0xf9 */ + '.', /* 250 0xfa */ + ' ', /* 251 0xfb */ + ' ', /* 252 0xfc */ + '2', /* 253 0xfd */ + '.', /* 254 0xfe */ + ' ', /* 255 0xff */ + }; +</pre> + +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/typy.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/typy.html new file mode 100644 index 00000000000..4fe03f2dd6e --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/typy.html @@ -0,0 +1,109 @@ +<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"> +</head> +<body> + +<h4>tablica określająca typ znaków</h4> + +Tablica definiuje typ znaków, każdy bit określa przynależność +do określonej kategorii; + +<pre> +#define IS_UPPER 0x01 /*duża litera*/ +#define IS_LOWER 0x02 /*mała litera*/ +#define IS_BLANK 0x04 /*,,białe znaki''*/ +#define IS_DIG 0x08 /*cyfra*/ +#define IS_XDIG 0x10 /*cyfra szesnastkowa*/ +#define IS_CTR 0x20 /*znak sterujący*/ +#define IS_ALPH 0x40 /*znak traktowany jak litera*/ +#define IS_ALPHA (IS_LOWER | IS_UPPER) /*litera*/ +#define IS_ALNUM (IS_DIG | IS_ALPHA) /*litera lub cyfra*/ +</pre> + +<pre> +static a_char_u pl_maz_char_type = + { +IS_CTR, IS_CTR, IS_CTR, IS_CTR, +IS_CTR, IS_CTR, IS_CTR, IS_CTR, +IS_CTR, IS_CTR | IS_BLANK, IS_CTR | IS_BLANK, IS_CTR | IS_BLANK, +IS_CTR | IS_BLANK, IS_CTR | IS_BLANK, IS_CTR, IS_CTR, +IS_CTR, IS_CTR, IS_CTR, IS_CTR, +IS_CTR, IS_CTR, IS_CTR, IS_CTR, +IS_CTR, IS_CTR, IS_CTR, IS_CTR, +IS_CTR, IS_CTR, IS_CTR, IS_CTR, +IS_BLANK, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +IS_XDIG | IS_DIG, IS_XDIG | IS_DIG, IS_XDIG | IS_DIG, IS_XDIG | IS_DIG, +IS_XDIG | IS_DIG, IS_XDIG | IS_DIG, IS_XDIG | IS_DIG, IS_XDIG | IS_DIG, +IS_XDIG | IS_DIG, IS_XDIG | IS_DIG, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, + +0x000, IS_XDIG | IS_UPPER,IS_XDIG | IS_UPPER,IS_XDIG | IS_UPPER, +IS_XDIG | IS_UPPER,IS_XDIG | IS_UPPER,IS_XDIG | IS_UPPER,IS_UPPER, +IS_UPPER, IS_UPPER, IS_UPPER, IS_UPPER, +IS_UPPER, IS_UPPER, IS_UPPER, IS_UPPER, +IS_UPPER, IS_UPPER, IS_UPPER, IS_UPPER, +IS_UPPER, IS_UPPER, IS_UPPER, IS_UPPER, +IS_UPPER, IS_UPPER, IS_UPPER, 0x000, +0x000, 0x000, 0x000, IS_ALPH, + +0x000, IS_XDIG | IS_LOWER,IS_XDIG | IS_LOWER,IS_XDIG | IS_LOWER, +IS_XDIG | IS_LOWER,IS_XDIG | IS_LOWER,IS_XDIG | IS_LOWER,IS_LOWER, +IS_LOWER, IS_LOWER, IS_LOWER, IS_LOWER, +IS_LOWER, IS_LOWER, IS_LOWER, IS_LOWER, +IS_LOWER, IS_LOWER, IS_LOWER, IS_LOWER, +IS_LOWER, IS_LOWER, IS_LOWER, IS_LOWER, +IS_LOWER, IS_LOWER, IS_LOWER, 0x000, +0x000, 0x000, 0x000, IS_CTR, + +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, IS_LOWER, 0x000, /* 84 */ + /* a ogonek */ +0x000, 0x000, 0x000, 0x000, /* 88 */ +0x000, IS_LOWER, 0x000, IS_UPPER, /* 8c */ + /* c acute*/ /* A ogonek*/ +IS_UPPER, IS_LOWER, IS_LOWER, 0x000, /* 90 */ +/*E ogonek */ /*e ogonek */ /* polish l */ +0x000, IS_UPPER, 0x000, 0x000, /* 94 */ + /* C acute */ +IS_UPPER, 0x000, 0x000, 0x000, /* 98 */ +/* S acute */ +IS_UPPER, 0x000, IS_LOWER, 0x000, /* 9c */ +/* Polish L */ /* s acute */ +IS_UPPER, IS_UPPER, IS_LOWER, IS_UPPER, /* a0 */ +/* Z acute */ /* Z dot */ /* o acute */ /* O acute*/ +IS_LOWER, IS_UPPER, IS_LOWER, IS_LOWER, /* a4 */ +/*n acute */ /* N acute */ /* z acute */ /* z dot */ +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, + +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000, +0x000, 0x000, 0x000, 0x000 + }; +</pre> + +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/tys.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/tys.html new file mode 100644 index 00000000000..0b9a0cd1bc1 --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/tys.html @@ -0,0 +1,22 @@ +<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"> +</head> +<body> + +<pre> +static p_char_u maz_tys = + { + (char_u *)"???", + (char_u *)"tysiąc", + (char_u *)"tysiące", + (char_u *)"tysiące", + (char_u *)"tysiące", + (char_u *)"tysięcy" + }; +</pre> + +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/upper.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/upper.html new file mode 100644 index 00000000000..509cc12fa6b --- /dev/null +++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/idx/upper.html @@ -0,0 +1,35 @@ +<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"> +</head> +<body> + +<h4>Tablica konwersji na duże litery</h4> + +W tablicy są zdefiniowane odpowiedniki dla małych liter alfabetu. +Tylko te znaki, które są określone jako ,,małe'' w +<a href=typy.html>tablicy typów</a> +<pre> +static a_char_u pl_maz_upper_table = + { + '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','{','|','}','~',' ', + ' ',' ',' ',' ',' ',' ','Ą',' ', + ' ',' ',' ',' ',' ','Ć',' ',' ', + ' ','Ę','Ł',' ',' ',' ',' ',' ', + ' ',' ',' ',' ',' ',' ','Ś',' ', + 'Ź',' ','Ó',' ','Ń',' ','Ź','Ż' + }; +</pre> + +Tablica zawiera definicje dla wszystkich znaków o kodzie +większym od litery 'a'. + + +</body> +</html> + |