Internal counter
Stepan Kasal
kasal at matsrv.math.cas.cz
Thu Nov 22 10:43:27 CET 2001
Dobry den,
Dne 21 Nov 2001, BruXy <bruchm at racom.cz> psal zhruba toto:
> narazil jsem v (pdf)CSLaTeXu na nasledujici problem:
> \renewcommand{\thechapter}{\Alph{chapter}}
> \setcounter{chapter}{0}
> \renewcommand{\thechapter}{\arabic{chapter}}
> Ve vygenerovanem obsahu mam klikaci odkazy (balik hyperref), ale tyto
> ... bohuzel interni citac se vynuluje takze nasledujici kapitoly maji
> stejny label jako predchozi a odkazy v obsahu jsou zmrsene...
> Nevite jak na to?? Idealni by byla konstrukce ve smyslu nefunkcniho
> \renewcommand{\thechapter}{\arabic{chapter plus -4}}
neco takoveho by slo take, pomoci \newcounter, \setcounter a \addtocounter,
ale narazil jsem na urcite problemy, tak radeji zkusime jiny postup.
| *** Pro zvedavce: kdyz \thechapter neni plne expandovatelne, tak nefunguji
| \mark, tudiz nefunguji zahlavi, nefungoval mi \typeout{Chapter \thechapter}
| (to by bylo to nejmensi), ale kdovi kde to jeste bude delat problemy...
Dalsi veci je, ze predefinovavat \thechapter uprostred dokumentu je ponekud
nebezpecne, koledujete si treba o to, aby se Vam spatne vytisklo zahlavi
na posledni strane predchozi kapitoly a tak podobne.
Je lepsi dat do \thechapter podminku (\ifnum \value{chapter} > 4 ... apod.).
Bohuzel reseni vyzadovalo urcity trik. Predpokladam, ze mate nejprve
kapitoly s pismeny a az pak cislovane kapitoly. Doufam, ze tech pismennych
neni dvacet. Pokud budete nasledujici priklat upravovat dle svych prani,
dejte pozor na dve veci:
- nikam do \thechapter se nesmi vloudit mezera navic; Vy budete nejspise
upravovat jen prikaz \myAlph, tak, vyhovoval pocet kapitol:
pozor -- mezera je jen za \or, nikdy pred \or nebo pred \fi!
- \setcounter -5 znamena, ze kapitly oznacene pismeny budou mit cisla
-4 az 0 (tedy celkem pet takovych kapitol), musite zmenit soucasne
toto cislo i \myAlph
Vzniknou-li problemy, ozvete se i na muj e-mail.
S pozdravem,
Stepan Kasal
\documentclass{scrreprt}
\newcommand {\myAlphchapter} {\ifcase -\value{chapter}%
E\or D\or C\or B\or A\fi
}
\renewcommand {\thechapter} {%
\ifnum \value{chapter} > 0
\arabic{chapter}%
\else
\myAlphchapter
\fi
}
\setcounter {chapter} {-5}
\begin{document}
\chapter{AAA}
\chapter{AAA}
\chapter{AAA}
\chapter{AAA}
\chapter{AAA}
\chapter{XXX}
\chapter{XXX}
\end{document}
More information about the csTeX
mailing list