[cstex] Makra pro práci s textovými řetězci ("připojování" textu)
Petr Olsak
petr at olsak.net
Tue Jun 30 06:09:44 CEST 2015
Dobrý den,
s něčím podobným se musel setkat asi každý. V OPmac je na to připraveno
makro \addto.
V dotazu mícháte dvě věci dohromady: přidávání obsahu do makra
(například pomocí \addto) a otázka návratu hodnoty, tj. užití makra.
Může to vypadat třeba takto:
\long\def\addto#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
\long\def\jointocontent#1{\addto\mycontent{#1}\mycontent}
\def\mycontent{} % inicializace
\jointocontent{AAA} % vrátí AAA
\jointocontent{BBB} % vrátí AAABBB
\jointocontent{CCC} % vrátí AAABBBCCC
\bye
On Tue, 30 Jun 2015, Jaroslav Hajtmar wrote:
> Dobrý den.
>
> Hledám nějaké TeXové řešení "zřetězování" maker. Jde mi o to, že potřebuji v
> nějakém cyklu provádět test a v případě vyhovujícího výsledku potřebuji
> připojit nějaký text k obsahu stávajícího makra. Něco jako tohle:
>
> \def\jointocontent{} % inicializace
> \jointocontent{AAA} % vrátí AAA
> \jointocontent{BBB} % vrátí AAABBB
> \jointocontent{CCC} % vrátí AAABBBCCC
>
>
> Pokoušel jsem se najít nějaké řešení. Něco šlo najít pod hesly jako
> concatenate atd... Něco jsem našel ale nic z toho nesplňovalo moje představy.
> Jde to vůbec v principu nějak rozumně udělat? Opět avizuji svůj osobní
> problém s vícenásobnou expanzí atd... :-)
>
> Upozorňuji na to, že pomocí Lua jde snadno udělat něco v tomto duchu:
>
> \savetomybuffer{} % inicializace
> \addtomybuffer{AAAA} % připojení AAA
> \addtomybuffer{BBB}
> \addtomybuffer{CCC}
>
> \getcontentofmybuffer % vrátí AAABBBCCC,
>
> ale jde mi spíš o principiální řešení přímo na úrovni TeXu.
>
> Nepotkali jste se s něčím podobným?
> Díky a jsem s pozdravem pěkného nadcházejícího dne.
> Jarda Hajtmar
>
>
>
>
>
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> https://lists.felk.cvut.cz/mailman/listinfo/cstex
>
>
More information about the csTeX
mailing list