latex3 / babel

The multilingual framework to localize LaTeX, LuaLaTeX and XeLaTeX
https://latex3.github.io/babel/
LaTeX Project Public License v1.3c
130 stars 35 forks source link

What Babel macros work in Plain TeX? #120

Closed lemzwerg closed 1 year ago

lemzwerg commented 3 years ago

[Babel 3.54]

Right now, babel.pdf has zero information on which Babel macros are supported in Plain TeX, and which syntax should be used for those that are available. It would be nice if there are some sentences that clarify the issue.

jbezos commented 3 years ago

@lemzwerg It's a question I have been dreading for a long time 🙂. I was aware a more complete documentation in this regard was necessary, because all I'd done was to copy the original bbplain.dtx with the minimal changes necessary to ensure babel continued to work with Plain. There are some hints in the code part, but I’ll try to improve the documentation.

lemzwerg commented 3 years ago

Great! What I want to do is to use recent German hyphenation patterns (or rather, I want to document how this can be done in plain TeX). I tried

\input ngermanb.sty
\begindocument
\babelprovide[hyphenrules=ngerman-x-latest]{ngerman}
\showhyphens{Fassade modernste Abendstern Mordopfer}
\bye

but this fails with

! Undefined control sequence.
<to be read again> \InputIfFileExists 
                                      {babel-ngerman.tex}{}{}
\bbl@exp@aux ...ileExists {babel-ngerman.tex}{}{}}
                                                  \catcode `\%=14\relax \cat...

\bbl@input@texini ...\\}=\the \catcode `\}\relax }
                                                  \bbl@esphack 
<argument> ...d \relax \bbl@input@texini {ngerman}
                                                  \else \setbox \z@ \hbox {\...

\@firstoftwo #1#2->#1

\\babelprovide ...space >}\fi \bbl@load@basic {#2}
                                                  \ifx \bbl@KVP@script \@nil...
l.3 ...vide[hyphenrules=ngerman-x-latest]{ngerman}

Can I actually use this command in plain TeX? Or is there a different syntax to be used, maybe?

jbezos commented 3 years ago

I'm working on it. See https://github.com/latex3/babel/blob/master/news-guides/guides/using-babel-with-plain.md .

Edit. Moved: https://latex3.github.io/babel/guides/using-babel-with-plain.html

lemzwerg commented 3 years ago

Looks very promising, thanks!

jbezos commented 1 year ago

I‘m closing this issue because it’s now listed in Enhancements requests. This doesn’t mean it’s rejected, just moved to a specific page for enhancements.