[cstex] Spojování TeXových zdrojových textů
Jaroslav Hajtmar
hajtmar at gyza.cz
Fri Mar 2 08:28:29 CET 2018
Dobrý den.
Panem Olšákem navržené řešení funguje dokonale, dokonce se do výsledného souboru inkludují i soubory, které jsou inkludované zevnitř inkludovaných souborů, takže úplná spokojenost. Takže díky za vyřešení mého problému - už nic nemusím programovat Perlem nebo Pythonem.
Pro konferenci dodávám, že jistá část komunikace mezi mnou a panem Olšákem probíhala soukromě, kdy pan Olšák zohledňoval moje specifické přání na parametry načítacího - inkludovacího makra. Problém s UTF8 se snadno vyřeší kompilací xetexem nebo luatexem, v nichž řešení pana Olšáka taky funguje.
Ještě jednou díky za všechny rady a panu Olšákovi obzvlášť za nabídnuté elegantní a funkční řešení.
Zdraví Jarda Hajtmar
Dne 23.02.18 15:44, csTeX za uživatele Petr Olsak <cstex-bounces at cs.felk.cvut.cz za uživatele petr at olsak.net> napsal(a):
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