[cstex] Spojování TeXových zdrojových textů

Petr Olsak petr at olsak.net
Fri Feb 23 15:42:32 CET 2018


Dobrý den,

dá se experimentovat i na úrovni maker TeXu. Předpokládejme, že máte 
soubory:

---------- a.tex s obsahem:

AAA: aha

umm

end: AAA

---------- b.tex s obsahem:

BBB

\include c.tex
\include d.tex

BBBend

---------- c.tex s obsahem:

CCC

---------- d.tex s obsahem:

DDD

---------- main.tex s obsahem

\newwrite\outfile
\immediate\openout\outfile=allfiles.tex

\let\ea=\expandafter
\everyeof={\eof}
\let\endfile=\end
\def\tmp#1{}\edef\\{\ea\tmp\string\\}  \edef\%{\ea\tmp\string\%}
\def\printout{\immediate\write\outfile}
\long\edef\catfilesA#1\eof{\noexpand\splitparts#1\\include.\relax}
\ea\def\ea\splitparts\ea#\ea1\\include#2{%
    \printout{#1}%
    \ifx.#2\ea\endfile \else \ea\catfilesB \fi
}
\def\catfilesB #1.tex#2{%
    \bgroup
       \printout{\% --- included file #1.tex}
       \let\endfile=\relax \ea\catfilesA\input #1.tex
       \printout{\% --- end of file #1.tex}
    \egroup
    \splitparts
}
\def\catfiles{\endlinechar=`\^^J \newlinechar=\endlinechar
    \def\do##1{\catcode`##1=12}\dospecials
%   \tracingall
    \catfilesA
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\catfiles

aha \uff(a$#$

\include a.tex
\include b.tex

    uffEND

\konecdokumentu

---------------------------------

pak po zpracování příkazem pdfcsplain main.tex získáte

------------ allfiles.tex s obsahem:


aha \uff(a$#$


% --- included file a.tex

AAA: aha

umm

end: AAA


% --- end of file a.tex

% --- included file b.tex
BBB


% --- included file c.tex
CCC

% --- end of file c.tex

% --- included file d.tex
DDD

% --- end of file d.tex

BBBend

% --- end of file b.tex

    uffEND

\konecdokumentu

-------------------------

Přeji příjemné experimentování.

Zdravím

Petr Olšák



On Thu, 22 Feb 2018, Jaroslav Hajtmar wrote:

> 
> Dobrý den.
> 
> Díky za výborný tip. Je to sice pro LaTeX, ale je tam PERL skript, který by měl jít
> modifikovat, aby mi to fungovalo v ConTeXtu.
> 
> Jarda Hajtmar
> 
>  
> 
>  
> 
> Od: csTeX <cstex-bounces at cs.felk.cvut.cz> za uživatele Miroslav Fikar
> <miroslav.fikar at stuba.sk>
> Příjemce odpovědi: Czech and Slovak list <cstex at cs.felk.cvut.cz>
> Datum: čtvrtek 22. února 2018 8:07
> Komu: Czech and Slovak list <cstex at cs.felk.cvut.cz>
> Předmět: Re: [cstex] Spojování TeXových zdrojových textů
> 
>  
> 
> https://www.ctan.org/pkg/latexpand
> 
> by mal robit nieco podobne v latexu, neviem, ci aj pre context.
> 
> mf
> 
>  
> 
> 2018-02-21 15:10 GMT+01:00 Jaroslav Hajtmar <hajtmar at gyza.cz>:
>
>       Dobrý den.
>
>       Nenapadá někoho, jakým automatizovaným způsobem by se dalo spojit velké
>       množství zdrojových textů, načítaných do hlavního zdrojového textu pomocí
>       makra \include, do jediného jednosouborového  zdrojáku, který by šel
>       následně zkompilovat např. pomocí nějakého online nástroje ala TeXonWeb?
>
>       Mám velké množství souborů a nechci všechnu práci dělat ručně.
>
>        
>
>       Mám na mysli např. nějakou direktivu, která při TeXové překladu vygeneruje
>       spojený text nebo nějaký skript v Pythonu, Perlu atd..
>
>        
>
>       Díky a jsem s pozdravem.
>
>       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