[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