[cstex] \language v csplain
Petr Olsak
petr at olsak.net
Tue Aug 25 16:18:29 CEST 2015
On Tue, 25 Aug 2015, Marcel Svitalský wrote:
> Dobrý den,
>
> děkuji za odpověď. Přečetl jsem si mezi tím informace v sekci Recent changes na
> stránce https://math.feld.cvut.cz/olsak/cstex-e.html a došlo mi, jak asi problém
> vznikl. Pokud jde o tu důvěru, jsem si vědom rozdílu mezi bugem a úmyslnou změnou
> rozhraní ? sám jsem za svoji kariéru pár bugů myslím vyrobil ? a jsem velmi rád, že
> šlo jen o bug.
>
> To řešení s \language = 0 je nepřijatelné, nechci si pamatovat ani psát do kódu
> žádné konstanty, dokonce ani tak ?základní?, jako nula pro americkou angličtinu ?
> nejsem americký patriot ?,avšak chápu-li to dobře, mělo by pomoci přidat do mých
> obecných maker něco jako:
> \ifx\USenglish\undefined\let\USenglish\enPatt\fi
>
> To by pak mělo fungovat správně i s příští, opravenou verzí.
>
> Děkuji a zdravím,
> Marcel Svitalský
Dobrý den,
mě \language=0 nepřipadá nepřijatelné, protože to funguje zaručeně všude,
nejen v CSplainu, ale i v eplainu, klasickém TeXu atd. Naopak mi připadá
nevhodné se opírat o různé maskovače této nuly, jednou \USenglish, s čímž
přišel Olin Ulrych, podruhé \enPatt, s čím přišel Olšák, potřetí
\necojineho, s čímž přijde někdo další. V každém případě mohu garantovat,
že nula bude mapovat US Knuthovy vzory dělení vždy stejně. Analogicky v
csplainu je zaručeně 5 pro české vzory dělení v IL2, 15 v T1 a 115 v
Unicode. A dokonce všechny jazyky mají v csplainu přiděleno fixní číslo,
nikoli dynamicky generované, jak je možné se přesvědčit pohledem do
hyphen.lan.
Pokud Vám připadá nevhodné psát explicitně nulu do makra, můžete na
začátku dokumentu napsat:
\chardef\USpatternsMYname=0
a v makru psát: \language=\USpatternsMYname
A překvapivě Vám to bude funovat všude, nejen v csplainu.
Chcete-li se oprostit od přímé manipulace s \language a od práce s
konkrétními konstantami, pak jsou v csplainu k dispozci
uživatelská makra \ehyph, \chyph, \shyph a další, jak je popsáno v
dodatku G TeXu pro pragmatiky.
Zdravím
Petr Olšák
> On 24.8.2015 17:05, Petr Olsak wrote:
>
> Dobrý den,
>
> to, co píšete, se dá považovat za report chyby. Došlo k ní v
> listopadu 2013, když mi nedošlo, že při úpravě názvů pro vzory dělení
> dle ISO 939-1 (zejména opravy cz -> cs) jsem zlikvidoval původní
> řídicí sekvenci \USenglish a nahradil ji logicky více vyhovujcí
> sekvecí \enPatt. Měl jsem do sekce souboru hyphen.lan označenou jako
> "for backward compatibility" (která je už nyní bohužel dost dlouhá)
> přidat ještě příkaz \chardef\USenglish=0, ale zapomněl jsem na to.
>
> Tento omyl napravím v příští verzi, ale obávám se, že Vaše důvěra ve
> stabilitu csplainu se tím nevrátí.
>
> K otázce, jak bych něco tak prostého, jako je \language=\USenglish
> řešil já, odpovídám: \language=0.
>
> Zdravím
>
> Petr Olšák
>
>
> On Mon, 24 Aug 2015, Marcel Svitalský wrote:
>
> Zdravím ctěnou konferenci!
>
> Rád bych položil jeden dotaz: nějakou dobu ? cca od
> podzimu 1911 ? jsem TeX-oval
> jen velmi minimálně. Teď si potřebuji osvěžit znalosti,
> protože mne čeká
> jeden větší projekt, a pro začátek si zkouším prostudovat
> a přeložit (s
> TeXLive 2015) některé své starší věci. Přitom mne velmi
> překvapilo, že
> nefunguje něco tak prostého, jako:
> \language = \USenglish
>
> Musím říci, že to poněkud otřáslo mou důvěrou v
> deklarovanou stabilitu a
> zpětnou kompatibilitu csplainu, a rád bych se zeptal, jak
> se tedy nyní
> přepínání jazyků v textu řeší.
>
> Děkuji předem,
> Marcel Svitalský
>
> --
> Marcel Svitalský
>
>
>
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> https://lists.felk.cvut.cz/mailman/listinfo/cstex
>
>
> --
> Marcel Svitalský
>
>
More information about the csTeX
mailing list