[cstex] Skládání souborů?

Zdenek Wagner zdenek.wagner at gmail.com
Thu Jul 19 13:59:55 CEST 2007


19.7.07, Marek Stopka (m4r3k) <marekstopka at gmail.com>:
> Dobrý den, píšu brožuru v LaTeXu, která se skládá z několika částí a na
> výstupu by měl stát dokument se všemi kapitolami a dokumenty s každou
> kapitolou zvlášť. Tj. měl by existovat jeden hlavní soubor cela-prirucka.tex
> který by obsahoval Titulní stranu + několikrát \include
> a soubory které jsou includovány by měli obsahovat preambuli, která by v
> případě, že je soubor includován byla ignorována a v případě, že ne by se
> uplatnila.
>
> Nevíte někdo jak na to? Běžný \include nefunguje.
>
Nedávno jsem řešil podobnou věc, časopis skládající se z jednotlivých
článků, z nichž každý začíná na nové liché straně, musí být
TeXovatelný samostatně a po includování do hlavního souboru musí být
časopis TeXovatelný jako celek a s použitím \includeonly se musí
udělat PDF z každého článku samostatně s správným číslováním stránek.
Navíc autoři článků mohou mít ve svých textech vlastní makra, která
mohou navzájem kolidovat, takže článek musí být v samostatné skupině.
Byly tam ještě další speciální požadavky, které vynechám. V základní
verzi jsem tedy měl \myinclude definovaný takto:

\newcommand*\myinclude[1]{\begingroup
  \renewcommand\documentclass[2][XXX]{}%
  \renewcommand\usepackage[2][XXX]{}%
  \renewenvironment{document}{}{\cleardoublepage}%
  \include{#1}
  \endgroup}

Při použití \includeonly nastane problém v případě, že ve vkládaném
souboru je definován nový counter. Jeho konečná hodnota se totiž
ukládá do příslušného aux, ale když se soubor s jeho definicí kvůli
nastavení \includeonly neTeXuje, hlásí se chyba, že counter není
definován. To jsem vyřešil definicemi:

\let\my at setcounter\setcounter
\def\setcounter#1{\@ifundefined{c@#1}{\my at newcounter{#1}}{}\my at setcounter{#1}}
\let\my at newcounter\newcounter
\def\newcounter#1{\@ifundefined{c@#1}{\my at newcounter{#1}}{\my at setcounter{#1}{0}}}

Pochopitelně příkazy \usepackage musíte překopírovat z vkládaných
souborů do hlavního souboru ručně.


> ###########
> e. q.
> ###########
>
> vsechno.tex
> \documentclass[a4paper,12pt,twoside]{article}
> \usepackage[utf-8]{inputenc}
> \usepackage[czech]{babel}
> \usepackage{color}
> \usepackage{graphicx}
> \begin{document}
>
> \include{prvni-kapitola}
>
> \end{document}
> -----------------------
> prvni-kapitola.tex
> \documentclass[a4paper,12pt,twoside]{article}
> \usepackage[utf-8]{inputenc}
> \usepackage[czech]{babel}
> \usepackage{color}
> \usepackage{graphicx}
> \begin{document}
>
> \section{První kapitola}
>
> \end{document}
> --
> S pozdravem / Best regards
> Marek Stopka
> Kontakty / Contacts
> Mobil/Mobile phone: 774 59 79 40
> E-mail: marekstopka at gmail.com
> WEB: www.m4r3k.org
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>
>
>


-- 
Zdeněk Wagner
http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz


More information about the csTeX mailing list