[Trennmuster] make-hyphenlist

Georg Pfeiffer gp at praetor.de
Do Mär 20 20:12:45 CET 2014


Hallo,

ich würde gern das „make-hyphenlist-Bündel“, das Werner in der
TeXnischen Komödie [1] vorgestellt hat, in unser Repositorium
stellen. make-hyphenlist.sh nimmt eine Liste ungetrennter Worte (wie
prepare-wordlist.sh sie ausgibt) entgegen, erzeugt daraus eine temporäre
tex-Datei (via words2tes.sed), kompiliert die und extrahiert aus dem Log
die Liste der getrennten Worte (log2words.sed) und gibt die auf der
Standardausgabe aus. Ich habe dazu noch eine hyph2wl.sh geschrieben, die
aus dieser Liste getrennter Worte eine Datei im Wortlisten-Format
erzeugt, z.B.

	exclusiven;ex·clu·si·ven
	hochzuladen;hoch·zu·la·den

Ich habe mir eigenmächtigerweise erlaubt, das ganze Bündel zu
„unicodifizieren“. Statt LaTeX wird jetzt lualatex aufgerufen. Das finde
ich konsistenter, weil es unicode annimmt und zurückgibt.

Wenn dieser upload durchgeht, würde ich das ganze Bündel gern noch
zusammenbinden mit einer inquire.sh oder so, die es erlaubt, mit

	$ ./inquire <textdatei>

aus einer Text- (|html-|tex-) datei direkt eine Liste der in unserer
Wortliste noch nicht enthaltenen Worte mit Trennvorschlägen nach dem
bisher installierten hyphsubst-patterns und im wortlisten-Format zu
erzeugen. Die kann man dann direkt kategorisieren und in die Wortliste
übernehmen. 

Ich fände das sehr praktisch, denn für mich (ich bin kein Informatiker)
ist es immer wieder mühevoll, mir die einzelnen Skripte zusammenzusuchen
und die entsprechende Syntax wieder herauszufinden. Ich glaube, andere
Newbies könnte das auch interessieren.

Georg


[1] http://projekte.dante.de/pub/Trennmuster/Literatur/Lem05.pdf


Die Dateien:
make-hyphenlist.sh
--8<---------------cut here---------------start------------->8---
LC_COLLATE=de_DE.UTF-8

sort \
| uniq \
| sed -f ~/git/tl-script/words2tex.sed > temp.tex
lualatex temp.tex > /dev/null
rm temp.tex temp.aux
cat temp.log \
| sed -f ~/git/tl-script/log2words.sed
rm temp.log

--8<---------------cut here---------------end--------------->8---

words2tex.sed
--8<---------------cut here---------------start------------->8---
# wird von make-hyphenlist.sh verwendet. Die Pattern-Variante in Zl. 13
# muß ggf. angepaßt werden.

1 i\
\\RequirePackage{hyphsubst}\
\\documentclass{article}\
\\usepackage[german]{babel}\
\
\\begin\{document\}

/^AAAAAAAA/ d
s|^\(.*\)$|\\showhyphens{\0}|
$a\
\\end\{document\}

--8<---------------cut here---------------end--------------->8---

logs2words.sed
--8<---------------cut here---------------start------------->8---
1 ,/Underfull/ d
/^Underfull/ d
/^\*\*\*/ d
/^\\hbox/ d
s|\[\].*/m/n/10 ||
s|-|·|g		# Trennzeichen nicht kategorisiert
/^ *$/ d
/(\./,$ d

--8<---------------cut here---------------end--------------->8---

hyph2wl.sh
--8<---------------cut here---------------start------------->8---
LC_COLLATE=de_DE.UTF8

# Erzeugt aus einer Liste getrennter Worte eine im wortliste-Format

sed 's/^.*$/&;&/'\
| sed 's/[-=·\.\|<>]\+\(.*;\)/\1/g'\
| sed 's/[-=·\.\|<>]\+\(.*;\)/\1/g'\
| sed 's/[-=·\.\|<>]\+\(.*;\)/\1/g'\
| sed 's/[-=·\.\|<>]\+\(.*;\)/\1/g'\
| sed 's/[-=·\.\|<>]\+\(.*;\)/\1/g'\
| sed 's/[-=·\.\|<>]\+\(.*;\)/\1/g'\
| sed 's/[-=·\.\|<>]\+\(.*;\)/\1/g'\
--8<---------------cut here---------------end--------------->8---




Mehr Informationen über die Mailingliste Trennmuster