summaryrefslogtreecommitdiff
path: root/Master/support/polish
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2005-12-28 00:06:37 +0000
committerKarl Berry <karl@freefriends.org>2005-12-28 00:06:37 +0000
commit08ab8dce83f53b0f915cb66a37bbc8478b22c307 (patch)
tree42580e7da8c24b55ac2f3986a86fb6e9b92829bf /Master/support/polish
parent99bdbe3658fe23d766bbc1a3f47457f5ab4ade34 (diff)
trunk
git-svn-id: svn://tug.org/texlive/trunk@8 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/support/polish')
-rw-r--r--Master/support/polish/gustprog/README53
-rw-r--r--Master/support/polish/gustprog/l2h-examples.zipbin0 -> 35599 bytes
-rw-r--r--Master/support/polish/gustprog/normtext.awk276
-rw-r--r--Master/support/polish/gustprog/plmindex.zipbin0 -> 258628 bytes
-rw-r--r--Master/support/polish/gustprog/polskicd.zipbin0 -> 21264 bytes
-rwxr-xr-xMaster/support/polish/gustprog/porzadki.pl214
-rwxr-xr-xMaster/support/polish/gustprog/send.exebin0 -> 22992 bytes
-rw-r--r--Master/support/polish/gustprog/slim.zipbin0 -> 7185 bytes
8 files changed, 543 insertions, 0 deletions
diff --git a/Master/support/polish/gustprog/README b/Master/support/polish/gustprog/README
new file mode 100644
index 00000000000..38c67d00ceb
--- /dev/null
+++ b/Master/support/polish/gustprog/README
@@ -0,0 +1,53 @@
+March 2001, Staszek Wawrykiewicz <staw@gust.org.pl>. Public domain
+
+Polish (iso8859-2) | English
+GUSTPROG zawiera programy | GUSTPROG contains utilities
+przydatne dla polskich | useful for Polish users of TeX
+użytkowników TeX-a |
+-----------------------------------------------------------------------------
+1. slim.zip
+ skrypt AWK-owy do konwersji tzw. | AWK script for translating
+ `standardów' polskich liter | the encodings of Polish diacritic
+ (dołączone tablice konwersji | characters (DOS .bat and U**X shell
+ i pliki wsadowe dla DOS i U**X) | scripts provided)
+B. Jackowski, P. Pianowski
+-----------------------------------------------------------------------------
+2. normtext.awk
+ skrypt AWK-owy do konwersji tekstów | converts badly typed text files
+ dla potrzeb TeX-a: wstawia tyldy itp.| to a form more suitable for TeX
+Piotr K\l{}osowski
+-----------------------------------------------------------------------------
+3. porzadki.pl
+ skrypt Perlowy do konwersji tekstów | converts badly typed text files
+ dla potrzeb TeX-a: wstawia tyldy itp.| to a form more suitable for TeX
+Piotr K\l{}osowski
+-----------------------------------------------------------------------------
+4. plmindex.zip
+ pliki źródłowe (i .exe dla MS DOS | sources for multilingual MakeIndex;
+ i Windows) wersji międzynarodowej | support for Polish diacritics and
+ programu MakeIndex; uwzględnia | sorting; binaries for MS DOS
+ polskie znaki i reguły sortowania | and Windows included
+W. Macewicz
+-----------------------------------------------------------------------------
+5. polskicd.zip
+ wspomaganie polonizacji systemu | support for creating Polish formats,
+ emTeX (generowanie formatów, | generating fonts etc. for existing
+ fontów, instalacja dodatkowych | emTeX installation directly from
+ pakietów) bezpośrednio z CD TeX Live6| CD TeX Live 6
+C. Kruk, S. Wawrykiewicz
+-----------------------------------------------------------------------------
+6. send.exe
+ mały program dla MS DOS ułatwiający | A tiny program for MS DOS for
+ wydruk plików (poprawia obsługę | printing documents---enhances
+ transmisji do portów LPT) | the transmission to LPT ports
+BOP s.c.
+-----------------------------------------------------------------------------
+7. l2h-examples.zip
+ Przykładowe pliki konfiguracyjne | The example LaTeX2HTML
+ dla pakietu LaTeX2HTML opisane w | configuration files presenting
+ biuletynie GUST (zeszyt 10) | the possibilities of changing the
+ prezentujące możliwości zmiany | layout of generated HTML pages.
+ wyglądu generowanych dokumentów | Referenced in GUST Bulletin
+ HTML-owych. | (No. 10) article.
+P. Bolek
+-----------------------------------------------------------------------------
diff --git a/Master/support/polish/gustprog/l2h-examples.zip b/Master/support/polish/gustprog/l2h-examples.zip
new file mode 100644
index 00000000000..c7fdef90e7a
--- /dev/null
+++ b/Master/support/polish/gustprog/l2h-examples.zip
Binary files differ
diff --git a/Master/support/polish/gustprog/normtext.awk b/Master/support/polish/gustprog/normtext.awk
new file mode 100644
index 00000000000..9476f519332
--- /dev/null
+++ b/Master/support/polish/gustprog/normtext.awk
@@ -0,0 +1,276 @@
+#! /usr/bin/awk -f
+
+#----------------------------------------------
+# normtext.awk v. 0.5á [01-Jul-1996] by Pior Kłosowski
+# (pklos@press.umcs.lublin.pl)
+# (for UNIX operating system and iso-latin-2 polish letters)
+# Convert bad typed text files to better form suitable for TeX.
+# Usage:
+# awk -f normtext infile > outfile
+#----------------------------------------------
+# Na bazie pomysłów Tomasz Przechlewskiego i Marka Ryćki spóbowałem
+# skonstruować bardziej uniwersalne rzędzie do filtrowania kiepskich
+# plików tekstowych w~postać strawną dla TeX-a. Piotr Kłosowski, maj 1996~r.
+# Założenia:
+# tekst z akapitami odzielonymi wierszami "blanklines" o początkach
+# pasujących do wzorca "parbeg",
+# język polski - iso-latin-2;
+# teksty spoza nauk ścisłych;
+# ignoruję tabelki, przypisy...
+# Plan:
+#A. Usunięcie podziału na strony wraz z paginowaniem.
+#B. Usunięcie przeniesień wyrazów (w trakcie budowania "para").
+#C. Niełamliwe spacje przy spójnikach, inicjałach i skrótach.
+#D. Konstrukcja odpowiednich kresek, cudzysłowów, wielokropków, nawiasów.
+#E. Kropki, przecinki, odstępy w liczbach.
+#F. Uporządkowanie spacji przy znakach przestankowych.
+#G. Symbole spotykane w tekstach niematematycznych: %, $, <, >.
+#----------------------------------------------
+BEGIN {
+ stdio = "/dev/null";
+ digit = "[0-9]";
+ rdigit = "[IVXLCM]";
+ capletter = "[A-ZĄĘĆŁŃÓŚŹŻ]";
+ lowletter = "[a-ząęćłńóśźż]";
+ nonlowletter = "[^a-ząęćłńóśźż]";
+ letter = "[A-ZĄĘĆŁŃÓŚŹŻa-ząęćłńóśźż]";
+ spojnik = "[AIOUWZaiouwz]";
+ wspaces = "[\\ \\t\\n]+";
+ nonwspace = "[^\\ \\t\\n]";
+ wspacesornot = "[\\ \\t\\n]*";
+ # wzorzec wiersza międzyakapitowego (dopasowany do konwersji z TAG-a)
+ blanklines = "^[\\ \\t]*(- [0-9]+ -)*[\\ \\t]*$";
+ nbl = 0; # licznik wierszy międzyakapitowych
+ # wzorzec początku akapitu
+ parbeg = "^[\\ \\t]*[^\\t\\ a-ząćęłńóśżź].*$";
+# parbeg = "^[\\ \\t]*[A-ZĄĆĘŁÓŃŚŹŻ0-9].*$";
+}
+
+# wymień _co_ w kontekście _bef_ _aft_ na _na_ (kontekst jednoznakowy)
+# _bef_, _co_ i _aft_ są łańcuchami interpetowanymi jako wyrażenia regularne
+# (uwaga na podwójne wtyłciachy); _na_ jest łańcuchem
+# pomysł: Marek Ryćko
+
+function exch (bef, co, aft, na) {
+ while (match(para, bef co aft) > 0) {
+ match(para, bef co aft);
+ nowy = substr(para, 1, RSTART) na substr(para, RSTART+RLENGTH-1);
+ para = nowy;
+ }
+} # koniec funkcji exch(bef, co, aft, na)
+
+# wymień _co_ w kontekście _bef_ _aft_ na _na_ (kontekst wieloznakowy)
+# _bef_, _co_ i _aft_ są łańcuchami interpetowanymi jako wyrażenia regularne
+# (uwaga na podwójne wtyłciachy); _na_ jest łańcuchem
+# pomysł: Marek Ryćko
+
+function xexch (bef, co, aft, na) {
+ while (match(para, bef co aft) > 0) {
+ match(para, bef co aft); R1 = RSTART; L1 = RLENGTH;
+
+ test = substr(para,RSTART,RLENGTH);
+
+ test1 = match(test,bef); R2 = RSTART; L2 = RLENGTH;
+ test2 = match(test,aft); R3 = RSTART; L3 = RLENGTH;
+
+ nowy = substr(para, 1, R1 + L2 - 1) na substr(para, R1 + L1 - L3);
+ para = nowy;
+ }
+} # koniec funkcji xech(bef, co, aft, na)
+
+# formatuje akapit na rozsądną szerokość <= 72 zn.
+
+function print_para() {
+ words = split(para, paralist, " ");
+ len = length(paralist[1]);
+ printf "%s", paralist[1];
+ for (i=2; i<=words; i++) {
+ len += length(paralist[i]);
+ ###print len, paralist[i] >> stdio;
+
+ if (++len>72) {
+ printf "\n%s", paralist[i];
+ len = length(paralist[i]);
+ }
+ else printf " %s", paralist[i];
+ }
+ if (len) printf "\n\n";
+ else printf "\n";
+} # koniec funkcji print_para()
+
+# główna funkcja dokonująca analizy i przekształceń akapitu
+# pomysł: T. Przechlewski
+
+function process_para() {
+ print "Paragraph: ", length(para), "bytes" >> stdio;
+
+ #spójniki#
+ gsub(/[ \t\n]+a[ \t\n]+/, " a~", para); gsub(/\~a /, "~a~", para);
+ gsub(/[ \t\n]+i[ \t\n]+/, " i~", para); gsub(/\~i /, "~i~", para);
+ gsub(/[ \t\n]+o[ \t\n]+/, " o~", para); gsub(/\~o /, "~o~", para);
+ gsub(/[ \t\n]+u[ \t\n]+/, " u~", para); gsub(/\~u /, "~u~", para);
+ gsub(/[ \t\n]+w[ \t\n]+/, " w~", para); gsub(/\~w /, "~w~", para);
+ gsub(/[ \t\n]+z[ \t\n]+/, " z~", para); gsub(/\~z /, "~z~", para);
+
+ gsub(/[ \t\n]+A[ \t\n]+/, " A~", para); gsub(/\~A /, "~A~", para);
+ #ryzykowne - cyfry rzymskie#
+ gsub(/[ \t\n]+I[ \t\n]+/, " I~", para); gsub(/\~I /, "~I~", para);
+ gsub(/[ \t\n]+O[ \t\n]+/, " O~", para); gsub(/\~O /, "~O~", para);
+ gsub(/[ \t\n]+U[ \t\n]+/, " U~", para); gsub(/\~U /, "~U~", para);
+ gsub(/[ \t\n]+W[ \t\n]+/, " W~", para); gsub(/\~W /, "~W~", para);
+ gsub(/[ \t\n]+Z[ \t\n]+/, " Z~", para); gsub(/\~Z /, "~Z~", para);
+
+ #inicjały#
+ xexch(capletter, "\\." wspacesornot, capletter lowletter, "\.\~");
+ xexch(capletter, "\\." wspacesornot, capletter "\\.\\~", "\.\~");
+
+ #skróty - daty#
+ exch(digit, wspacesornot "r", "\\.", "~r");
+ exch("r", "\\." wspacesornot, digit, ".~");
+ exch(digit, wspacesornot "w", "\\.", "~w");
+ exch(rdigit, wspaces "w", "\\.", "~w");
+
+ #skróty - bibliografia#
+ exch(nonlowletter, "s\\." wspacesornot, digit, "s.~");
+ exch(nonlowletter, "ss\\." wspacesornot, digit, "s.~");
+ exch(nonlowletter, "t\\." wspacesornot, digit, "t.~");
+ exch(nonlowletter, "t\\." wspacesornot, rdigit, "t.~");
+ exch(nonlowletter, "z\\." wspacesornot, digit, "z.~");
+ exch(nonlowletter, "art\\." wspacesornot, digit, "art.~");
+
+ #skróty - inne#
+ exch(nonlowletter, "[Tt]ab\\." wspacesornot, digit, "tab.~");
+ exch(nonlowletter, "[Tt]abl\\." wspacesornot, digit, "tabl.~");
+ exch(nonlowletter, "[Rr]yc\\." wspacesornot, digit, "ryc.~");
+ exch(nonlowletter, "[Rr]ys\\." wspacesornot, digit, "ryc.~");# !
+ exch(nonlowletter, "[Rr]ozdz\\." wspacesornot, digit, "rozdz.~");
+ exch(nonlowletter, "nr" wspacesornot, digit, "nr~");
+
+ #skróty - lokalne#
+ exch(nonlowletter, "stan\\." wspaces, digit, "stan.~");
+ exch(nonlowletter, "w\\." wspaces, digit, "w.~");
+ exch(nonlowletter, "Mi" wspaces, digit, "Mi~");
+ exch(nonlowletter, "Jr" wspaces, digit, "Jr~");
+ exch(nonlowletter, "Ez" wspaces, digit, "Ez~");
+ exch(nonlowletter, "Za" wspaces, digit, "Za~");
+ exch(nonlowletter, "J" wspaces, digit, "J~");
+ exch(nonlowletter, "Oz" wspaces, digit, "Oz~");
+ exch(nonlowletter, "Jl" wspaces, digit, "Jl~");
+ exch(nonlowletter, "Ps" wspaces, digit, "Ps~");
+ exch(nonlowletter, "Wj" wspaces, digit, "Wj~");
+
+ #liczby, jednostki#
+ exch(digit, wspacesornot "tys", nonlowletter, "~tys");
+ exch(digit, wspacesornot "mln", nonlowletter, "~mln");
+ exch(digit, wspacesornot "zł", nonlowletter, "~zł");
+ exch(digit, wspacesornot "ha", nonlowletter, "~ha");
+ xexch(digit, wspacesornot, "[kcm][glms]" nonlowletter, "~");
+
+ #endashes#
+ exch(digit, wspacesornot "-" wspacesornot, digit, "--");
+
+ #emdashes#
+ gsub(wspaces "-" wspaces, " --- ", para);
+
+ #cudzysłowy#
+ exch("[^\\a-ząęćłńóśźż]", "\"", letter, ",,");
+ exch(wspaces, "\"", nonwspace, ",,");
+ #gsub("Ž", "<<", para);
+ #gsub("Ż", ">>", para);
+
+ #nawiasy ukośne - ryzykowne (łamane przez)#
+ #exch(wspaces, "/", nonwspace, "(");
+ #exch(nonwspace, "/", wspaces, ")");
+
+ #wielokropek#
+ gsub(/\.\.\.\.+/, "\\dotfill{}", para);
+ gsub(/\.\.\./, "\\ldots{}", para);
+ gsub(/\(\\ldots\{\}\)/, "[\\ldots{}]", para);
+
+ #pisownia liczb - ryzykowne (psuje dziesiętną numerację rozdz., wzorów, itp.
+ #dziesiętną klasyfikację biblioteczną, klasyfikację chorób itp
+ #exch(digit, "\\.", digit, ",")
+
+ xexch("[0-9]", "", "[0-9][0-9][0-9][^0-9]", "\\,");
+ xexch("[^0-9][0-9]", "\\\\,", "[0-9][0-9][0-9][^0-9\\\\]", "");
+
+ #spacje przy znakach przestankowych - być może ryzykowne#
+ exch(nonwspace, wspaces "\\,", "[^\\,]", ",");
+ exch("[^\\,]", ",", letter, ", ");
+
+ exch(nonwspace, wspaces "\\.", "[^\\.]", ".");
+ exch(".", "\\.", letter, ". ");
+ xexch(".", "\\.", ",,", ". ");
+ #wyjątki#
+ gsub(/p\. n\. e\./, "p.n.e.", para);
+ gsub(/n\. e\./, "n.e.", para);
+ gsub(/m\. in\./, "m.in.", para);
+
+ exch(nonwspace, wspaces ";", ".", ";");
+ exch(".", ";", nonwspace , "; ");
+
+ exch(nonwspace, wspaces ":", ".", ":");
+ exch(".", ":", nonwspace, ": ");
+ #wyjątki#
+ gsub(/\[w: \]/,"[w:]",para);
+
+ exch(nonwspace, wspaces "\\?", ".", "?");
+ exch(".", "\\?", letter, "? ");
+
+ exch(nonwspace, wspaces "!", ".", "!");
+ exch(".", "!", letter, "! ");
+
+ exch(".", "\\(" wspaces, nonwspace, "(");
+ exch(letter, "\\(", ".", " (");
+ exch(nonwspace, wspaces "\\)", ".", ")");
+ exch(".", "\\)", letter, ") ");
+
+ #spacje przy nawiasach klamrowych (wyróżnienia)
+ xexch(nonwspace, "\\{", "\\\\((bf)|(em)|(it))", " {");
+ xexch("(\\~|\\(|(,,)|(>>)|(<<))", "\\ \\{", "\\\\((bf)|(em)|(it))", "{");
+ exch(nonwspace, wspaces "\\}", ".", "} ");
+ #ryzykowne (np. kropki od dziesiętnej numeracji rozdz., wzorów, tabel...)
+ gsub(/\.\}/, "}.", para);
+ gsub(/\}\.\./, ".}.", para);
+ gsub(/\,\}/, "},", para);
+
+ #symbole niematematyczne#
+ exch(digit, wspacesornot "\\%", ".", "\\%");
+ exch(digit, wspacesornot "\\$", "[^\\^\\\\]", "\\$");
+ gsub("&","\\&")
+ exch("[^<\\$]", "<", "[^<\\$]", "$<$");
+ exch("[^>\\$]", ">", "[^>\\$]", "$>$");
+
+ #lokalne - litery akcentowe zagraniczne (TAG)#
+# gsub(//, "\\\"u", para);
+# gsub(/Ÿ/, "\\v{c}", para);
+# gsub(/Ź/, "\\v{C}", para);
+# gsub(/í/, "\\oo{}", para);
+
+ #formatowanie akapitu#
+ print_para();
+ para = "";
+} # koniec funkcji process_para()
+
+# pominięcie wierszy pasujących do "blanklines"
+$0~blanklines {
+ nbl++
+}
+
+# po pominięciu wierszy pasujących do "blanklines"...
+$0!~blanklines {
+ # sprawdzenie czy następujący tekst jest początkiem nowego
+ # akapitu i przetwarzanie poprzedniego akapitu
+ if (nbl>0 && $0~parbeg) {process_para()};
+
+ # tworzenie łańcucha "para" zawierającego akapit z~usuniętymi
+ # przeniesieniami wyrazów i odstępami lewego marginesu
+ # ryzykowne - łączniki, przyrostki na końcu wiersza
+ sub(/^[\ \t\n]+/,"");
+ if (match(para, lowletter "-" wspacesornot "$")==0) para = para " " $0
+ else para = substr(para, 1, RSTART) $0;
+
+ nbl = 0
+}
+
+END {process_para();}
diff --git a/Master/support/polish/gustprog/plmindex.zip b/Master/support/polish/gustprog/plmindex.zip
new file mode 100644
index 00000000000..3bd2c5675cc
--- /dev/null
+++ b/Master/support/polish/gustprog/plmindex.zip
Binary files differ
diff --git a/Master/support/polish/gustprog/polskicd.zip b/Master/support/polish/gustprog/polskicd.zip
new file mode 100644
index 00000000000..fa5fa854bbb
--- /dev/null
+++ b/Master/support/polish/gustprog/polskicd.zip
Binary files differ
diff --git a/Master/support/polish/gustprog/porzadki.pl b/Master/support/polish/gustprog/porzadki.pl
new file mode 100755
index 00000000000..793eede8a9d
--- /dev/null
+++ b/Master/support/polish/gustprog/porzadki.pl
@@ -0,0 +1,214 @@
+#! /usr/bin/perl
+
+# Autor: Piotr Kłosowski <pklosows@press.umcs.lublin.pl> Wersja
+# pierwsza działająca (0.1a): 1. lutego 1998 r.
+
+# Skrypt "porzadki" jest napisanym od nowa następcą awkowego skryptu
+# "normtext.awk" z lata 96 r., który z kolei był rozwinięciem pomysłów
+# Tomasza Przechlewskiego.
+
+# Filtr do robienia porządków w duchu TeX-a w plikach tekstowych
+# (przede wszystkim znaki przestankowe i wstawianie niełamliwych spacji)
+# Podstawowe zastosowanie to pomoc w konwersji tekstów napisanych w
+# różnych edytorach.
+
+# Główne założenia i ograniczenia:
+# - tekst jest podzielony na akapity pustymi wierszami,
+# - tekst jest w języku polskim (kodowanie iso-latin2),
+# - wnętrze akapitów z wyjątkiem linijek zakończonych przez "\\" może ulegać
+# przeformatowaniu (próba usunięcia przeniesień wyrazów) (uwaga na ew.
+# znaki komentarza - "%"!)
+
+# ========================================================================
+# Stałe wykorzystywane w skrypcie
+
+$Odstep = "[\ \t~]";
+$NieOdstep = "[^\ \t~]";
+$Spojnik = "[aAiIoOuUwWzZ]";
+$Litera = "[a-zA-ZąĄćĆęĘłŁńŃóÓśŚżŻźŹ]";
+$NieLitera = "[^a-zA-ZąĄćĆęĘłŁńŃóÓśŚżŻźŹ]";
+$DuzaLitera = "[A-ZĄĆĘŁŃÓŚŻŹ]";
+$MalaLitera = "[a-ząćęłńóśżź]";
+$Cyfra = "[0-9]";
+$CyfraRzymska = "[IVXL]";
+
+$PominSrodowisko ="(tabular|array|tabbing|figure|equation|eqenarray|verbatim)";
+# ========================================================================
+sub PolaczWiersze {
+# usunięcie przeniesień
+ s/($Litera)-$Odstep*\n$Odstep*($MalaLitera)/$1$2/g;
+ s/($Litera)-$Odstep*\n$Odstep*-($Litera)/$1\\dywiz $2/g;
+ s/\n$Odstep+\n/\\\\\ \\\\\ /g;
+ tr/\n/\ /;
+};
+# ========================================================================
+sub PoprawAkapit {
+ &PoprawNielamliwe;
+ &PoprawPrzestankowe;
+};
+# ------------------------------------------------------------------------
+# Niełamliwe spacje
+sub PoprawNielamliwe {
+ &NielamliweSpojniki;
+ &NielamliweInicjaly;
+ &NielamliweDaty;
+ &NielamliweBibliograf;
+ &NielamliweJednostki;
+ &NielamliweTytuly;
+ &NielamliweInne;
+ &NielamliweWyliczenia;
+};
+# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+# niełamliwe spacje przy słowach jednoliterowych (uwaga na cyfrę rzymską "I")
+sub NielamliweSpojniki {
+ s/([\(,]|$Odstep+)($Spojnik)$Odstep+($Spojnik)$Odstep+/$1$2~$3~/g;
+ s/([\(,]|$Odstep+)($Spojnik)$Odstep+/$1$2~/g;
+};
+# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+# niełamliwe spacje przy inicjałach
+sub NielamliweInicjaly {
+ s/($DuzaLitera)\.$Odstep*($DuzaLitera)\.$Odstep*($DuzaLitera$MalaLitera)/$1\.~$2\.~$3/g;
+ s/($DuzaLitera)\.$Odstep*($DuzaLitera$MalaLitera)/$1\.~$2/g;
+};
+# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+# niełamliwe spacje przy skrótach związanych z pisownią daty
+sub NielamliweDaty {
+ s/($Cyfra)$Odstep*(r|w)\./$1~$2\./g;
+ s/($NieLitera)(r|w)\.$Odstep*($Cyfra)/$1$2\.~$3/g;
+ s/($CyfraRzymska)$Odstep+w\./$1~w\./g;
+};
+# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+# niełamliwe spacje przy skrótach występujących w zapisie bibliograficznym
+sub NielamliweBibliograf {
+ s/($NieLitera)([sStTzZ]|ss|SS|[vV]ol|[aA]rt)\.$Odstep*($Cyfra|$CyfraRzymska)/$1$2\.~$3/g;
+};
+# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+# niełamliwe spacje między liczbą a skrótem jednostki miary
+$DuzoZer = "tys\\.|mln|mld";
+sub NielamliweJednostki {
+ s/($Cyfra)$Odstep*($DuzoZer)/$1~$2/g;
+ s/($Cyfra|$DuzoZer)$Odstep*([kdcm]?[glmsVAW])($NieLitera)/$1~$2$3/g;
+ s/($Cyfra|$DuzoZer)$Odstep*(zł|gr|ha|t|mies|godz|min|sek)($NieLitera)/$1~$2$3$4/g;
+};
+# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+# niełamliwe spacje po tytułach
+sub NielamliweTytuly {
+ s/($NieLitera)(mgr|dr|prof\.|hab\.|bp|ks\.|o+\.|św\.|prez\.|przew\.|red\.|min\.|gen\.|płk|mjr|kpt\.)$Odstep+/$1$2~/g;
+}
+# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+# niełamliwe spacje przy innych skrótach
+sub NielamliweInne {
+ s/($NieLitera)([Tt]ab\.|[Tt]abl\.|[Rr]y[cs]\.|[Rr]ozdz\.|[Nn]r)$Odstep*($Cyfra)/$1$2~$3/g;
+};
+# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+# niełamliwe półfirety przy wyliczeniach
+sub NielamliweWyliczenia {
+ s/^-+$Odstep*/---\\enspace\ /;
+ s/^($Cyfra+[\.\)\/])$Odstep+/$1\\enspace\ /;
+ s/^($Litera[\.\)\/])[\ \t]+/$1\\enspace\ /;
+};
+# ------------------------------------------------------------------------
+# Znaki przestankowe
+sub PoprawPrzestankowe {
+ &PrzestankowePolpauzy;
+ &PrzestankowePauzy;
+ &PrzestankoweDywizy;
+ &PrzestankoweCudzyslowy;
+ &PrzestankoweWielokropki;
+ &PrzestankoweOdstepy;
+ &PrzestankoweSymbole;
+};
+# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+# półpauzy
+sub PrzestankowePolpauzy {
+ s/($Cyfra)$Odstep*-$Odstep*($Cyfra)/$1--$2/g;
+};
+# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+# pauzy
+sub PrzestankowePauzy {
+ s/$Odstep+-$Odstep+/\ ---\ /g;
+ s/$Odstep+---/~---/g;
+};
+# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+# dywizy
+sub PrzestankoweDywizy {
+ s/($Litera)-($Litera)/$1\\dywiz $2/g;
+};
+# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+# cudzysłowy
+sub PrzestankoweCudzyslowy {
+ s/^\"/,,/;
+ s/($NieLitera)\"($Litera)/$1,,$2/g;
+ s/($Odstep)\"($NieOdstep)/$1,,$2/g;
+ s/\"$/''/;
+ s/($Litera)\"($NieLitera)/$1''$2/g;
+ s/($NieOdstep)\"($Odstep)/$1''$2/g;
+ s/\\,,/\\\"/g;
+};
+# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+# wielokropki
+sub PrzestankoweWielokropki {
+ s/\.{5,}/\\dotfill\{\}/g;
+ s/\.{3,4}/\\ldots{}/g;
+};
+# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+# odstępy przy znakach przestankowych (uwaga: ryzykowne - dużo wyjątków)
+sub PrzestankoweOdstepy {
+ s/$Odstep*([\.;:!?\)\]])/$1/g;
+ s/$Odstep*,([^,])/,$1/g;
+ s/([\.!?;:\)\]])($Litera)/$1 $2/g;
+ s/([^,]),($Litera)/$1, $2/g;
+ s/([\(\[])$Odstep*/$1/g;
+# skróty - wyjątki
+ s/m\.\ +in\./m\.in\./g;
+ s/p\.\ +n\.\ +e\./p\.n\.e\./g;
+ s/l\.\ +c\./l\.c\./g;
+ s/w\.\ +c\./w\.c\./g;
+# duże liczby
+ 1 while (s/(.*\d\d)(\d\d\d)/$1\\,$2/ or s/(.*\d)(\d\d\d)\\,/$1\\,$2\\,/);
+};
+# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+# uporządkowanie kolejności nawias klamrowy - znak przestankowy (!!!sprawa
+# związana z grupowaniem texem - nie do załatwienia w tym prostym programie)
+# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+# symbole niematematyczne
+sub PrzestankoweSymbole {
+ s/([^\\])([\$\%])/$1\\$2/g;
+ s/([^\$\<])\<([^\$\<])/$1\$\<\$$2/g;
+ s/([^\$\>])\>([^\$\>])/$1\$\>\$$2/g;
+}
+# ========================================================================
+# Zmiany w kształcie akapitu - usunięcie przeniesień i wcięć od marginesu
+# i przeformatowanie na szerokość <=70 zn (domyślna w AUCTeX-u)
+sub PrzeformatujAkapit {
+ s/$Odstep*\\\\/\ \\\\/g;
+ $IloscSlow = split;
+ $DlugoscWiersza = length($_[0]);
+ for ($i=1; $i<$IloscSlow; $i++) {
+ $DlugoscWiersza += length($_[$i]) + 1;
+ if (($DlugoscWiersza>70) || ($_[$i-1]=~/\\\\/)) {
+ $_[$i-1] .= "\n";
+ $DlugoscWiersza = length($_[$i]);
+ };
+ };
+ $_ = join (" ", @_, "\n");
+ s/$Odstep\\\\/\\\\/g;
+ s/\n*\\\\\n\\\\\n/\n\n/g;
+ s/\n$Odstep+/\n/g;
+};
+# ========================================================================
+# Główny program
+
+$/ = "";
+$\ = "\n";
+
+while (<>) {
+ if (/\\begin{$PominSrodowisko}/../\\end{$PominSrodowisko}/) {
+ next;
+ };
+ &PolaczWiersze;
+ &PoprawAkapit;
+ &PrzeformatujAkapit;
+} continue { print; };
+
+# Koniec skryptu "porzadki".
diff --git a/Master/support/polish/gustprog/send.exe b/Master/support/polish/gustprog/send.exe
new file mode 100755
index 00000000000..5adfd82fbf4
--- /dev/null
+++ b/Master/support/polish/gustprog/send.exe
Binary files differ
diff --git a/Master/support/polish/gustprog/slim.zip b/Master/support/polish/gustprog/slim.zip
new file mode 100644
index 00000000000..1ade236c446
--- /dev/null
+++ b/Master/support/polish/gustprog/slim.zip
Binary files differ