%% This is part of OpTeX project, see http://petr.olsak.net/optex \_codedecl \langlist {Initialization of hypenation patterns <2019-05-21>} \_chardef\_enPatt=0 \_def\_pattlist{\_enPatt=0} \_def\_langlist{en(USenglish)} \_sdef{_lan:0}{en} \_sdef{_ulan:usenglish}{en} \_def\enlang{\_uselang{en}\_enPatt23} % \lefthyph=2 \righthyph=3 \_sdef{langspecific:en}{\_nonfrenchspacing} \_lefthyphenmin=2 \_righthyphenmin=3 % disallow x- or -xx breaks \_input hyphen % en(USenglish) patterns from TeX82 \_def\_preplang #1 #2 #3#4 #5 {% \_chardef#3=#4 \_sdef{_lan:#4}{#1}\_lowercase{\_sdef{_ulan:#2}}{#1}% \_def\_next{\_expandafter\_noexpand\_csname #1lang\_endcsname} \_ea\_edef \_csname #1lang\_endcsname {% \_lowercase{\_noexpand\_loadpattrs #2} #4 \_gdef\_next{\_noexpand\_uselang{#1}#3#5}% \_next } \_addto\_langlist{ #1(#2)}% } \_def\_loadpattrs#1 #2 {% \_directlua{ require("luatex-hyphen") luatexhyphen.loadlanguage("#1",#2) }% } \_def\_uselang#1#2#3#4{\_language=#2\_lefthyphenmin=#3\_righthyphenmin=#4\_relax \_frenchspacing % \nonfrenchspacing can be set in \cs{langspecific:lan} \_cs{langspecific:#1}% } \_def\_uselanguage#1{\_lowercase{\_cs{\_cs{_ulan:#1}lang}}} \_preplang enus USenglishmax \_enusPatt 100 23 \_preplang engb UKenglish \_engbPatt 101 23 \_preplang it Italian \_itPatt 102 22 \_preplang ia Interlingua \_iaPatt 103 22 \_preplang id Indonesian \_idPatt 104 22 \_preplang cs Czech \_csPatt 115 23 \_preplang sk Slovak \_skPatt 116 23 \_preplang de nGerman \_dePatt 121 22 \_preplang fr French \_frPatt 122 22 \_preplang pl Polish \_plPatt 123 22 \_preplang cy Welsh \_cyPatt 124 23 \_preplang da Danish \_daPatt 125 22 \_preplang es Spanish \_esPatt 126 22 \_preplang sl Slovenian \_slPatt 128 22 \_preplang fi Finnish \_fiPatt 129 22 \_preplang hy Hungarian \_huPatt 130 22 \_preplang tr Turkish \_trPatt 131 22 \_preplang et Estoniak \_etPatt 132 23 \_preplang eu Basque \_euPatt 133 22 \_preplang ga Irish \_gaPatt 134 23 \_preplang nb Bokmal \_nbPatt 135 22 \_preplang nn Nynorsk \_nnPatt 136 22 \_preplang nl Dutch \_nlPatt 137 22 \_preplang pt Portuguese \_ptPatt 138 23 \_preplang ro Romanian \_roPatt 139 22 \_preplang hr Croatian \_hrPatt 140 22 \_preplang zh Pinyin \_zhPatt 141 11 \_preplang is Icelandic \_isPatt 142 22 \_preplang hsb Uppersorbian \_hsbPatt 143 22 \_preplang af Afrikaans \_afPatt 144 12 \_preplang gl Galician \_glPatt 145 22 \_preplang kmr Kurmanji \_kmrPatt 146 22 \_preplang tk Turkmen \_tkPatt 147 22 \_preplang la Latin \_laPatt 148 22 \_preplang lac classicLatin \_lacPatt 149 22 \_preplang lal liturgicalLatin \_lalPatt 150 22 \_preplang elm monoGreek \_elmPatt 201 11 \_preplang elp Greek \_elpPatt 202 11 \_preplang grc ancientGreek \_grcPatt 203 11 \_preplang ca Catalan \_caPatt 204 22 \_preplang cop Coptic \_copPatt 205 11 \_preplang mn Mongolian \_mnPatt 206 22 \_preplang sa Sanskrit \_saPatt 207 13 \_preplang ru Russian \_ruPatt 208 22 \_preplang uk Ukrainian \_ukPatt 209 22 \_preplang hy Armenian \_hyPatt 210 12 \_preplang as Assamese \_asPatt 211 11 \_preplang hi Hindi \_hiPatt 212 11 \_preplang kn Kannada \_knPatt 213 11 \_preplang lv Latvian \_lvPatt 215 22 \_preplang lt Lithuanian \_ltPatt 216 22 \_preplang ml Malayalam \_mlPatt 217 11 \_preplang mr Marathi \_mrPatt 218 11 \_preplang or Oriya \_orPatt 219 11 \_preplang pa Panjabi \_paPatt 220 11 \_preplang ta Tamil \_taPatt 221 11 \_preplang te Telugu \_tePatt 222 11 \message{Language hyph.patterns ready to load: \_langlist. Use \string\lang to initialize language, \string\cslang\space for example} \_public \uselanguage \langlist ; \_endcode % ---------------------------------------------