diff options
Diffstat (limited to 'Master/support/polish/gustprog/porzadki.pl')
-rwxr-xr-x | Master/support/polish/gustprog/porzadki.pl | 214 |
1 files changed, 0 insertions, 214 deletions
diff --git a/Master/support/polish/gustprog/porzadki.pl b/Master/support/polish/gustprog/porzadki.pl deleted file mode 100755 index 793eede8a9d..00000000000 --- a/Master/support/polish/gustprog/porzadki.pl +++ /dev/null @@ -1,214 +0,0 @@ -#! /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". |