PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Das Motionmountain Physikbuch noch schöner ..



motionmountain
01-10-2005, 23:30
Habe gerade die neue 1200seitige Version des
Motion Mountain Physikbuches hochgeladen.
Das mit Latex hergestellte pdf ist für alle gratis von
http://www.motionmountain.net/willkommen.html
aus zu downloaden.

Im Inhaltsverzeichnis ("Detailed Contents") habe ich noch ein Satzproblem.
Die Punkte (\textbullet) die die Titel trennen, sollten nach dem
letzten Titel nicht auftauchen.

Die Titel derzeit werden so programmiert:

\def\l@subsubsection{\cs@dottedtocline{3}{4.7em}{1 .3em}}

\def\cs@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth
\else \leftskip #2\rightskip\@tocrmarg\parindent \z@\leavevmode
{\def\numberline##1{}{{\def\special##1{\relax}#4}} ~
{#5}\hspace{0.4em}\textbullet\hspace{0.4em}}%
\def\numberline##1{\hb@xt@\@tempdima{##1\hfil}}%
\fi}

Kann jemand einen Tipp geben, wie ich bei dem letzten subsubsection titel
das \textbullet weggekomme? Dazu müsste das macro testen, ob es
durch einen nicht-subsubsection titel gefolgt wird. Wie kann das gehen?

C. Schiller

rais
12-10-2005, 19:28
Moin Christoph,
dies ist eigentlich ein Latex Forum und kein Tex Forum, deshalb bekommst Du meinen Lösungsansatz auch (überwiegend) in Latex-Manier;)
Es bedarf zwar noch einiger Anpassungen, aber das sollte für Dich kein Problem sein:D


\documentclass[a4paper,12pt]{report}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[german]{babel}
\usepackage{ifthen,multicol}
\newcommand{\xc}{Da ich das Blindtext-Paket hier nicht drauf habe, nutze ich die Gelegenheit doch glatt selbst, um für ein wenig Text zu sorgen. Das schützt den Bildschirm vor Übersteuerung und ist auch noch augenschonend.}
\newcommand{\Xc}{\xc\xc\xc\xc}
\newcommand{\XC}{\Xc\par\Xc\par\Xc}

\makeatletter
\newcommand{\raistoc}[1]{%
\ifthenelse{\isundefined{\rcounterplain}}{%
\ifthenelse{\isundefined{\rcountersemiplain}}{%
\renewcommand{\myc}{2}
}{% sonst: semi-plain
\renewcommand{\myc}{3}
}%
}{% sonst: plain...
\renewcommand{\myc}{4}
}%
\begin{multicols}{\myc}
\noindent\@starttoc{#1}
\end{multicols}
}% of raistoc
\makeatother
\newcommand{\listrcountername}{Selbst definierte Zähler}
\newcommand{\myc}{5}
%%% optionales:
%\newcommand{\visiblecountersec}{mach TOC} %%soll die Zählerliste ins TOC?
%\newcommand{\rcounterusesection}{section statt chapter}
\newcommand{\DeBugMe}{muttu auskommentier'n, wenn doch nich\dots}
%\newcommand{\rcounterplain}{Nur die letzten subsubs in die Extradatei}
\newcommand{\rcountersemiplain}{Nur die letzten subsubs mit Zählerangabe in die Extradatei}

\newcommand{\currentlastsubsub}{dummy}

\newcommand{\listofrcounters}{%
\ifthenelse{\isundefined{\chapter}}{% %%assume section
\ifthenelse{\isundefined{\visiblercountersec}}{%
\section*{\listrcountername}
}{% else:
\section{\listrcountername}
}
\markboth{\MakeUppercase{\listrcountername}}%
{\textsl{\listrcountername}}%
}{% else: chapter
\ifthenelse{\isundefined{\rcounterusesection}}{%
\ifthenelse{\isundefined{\visiblercountersec}}{%
\chapter*{\listrcountername}
}{% else:
\chapter{\listrcountername}
}
\markboth{\MakeUppercase{\listrcountername}}%
{\MakeUppercase{\listrcountername}}%
}{%else: use section, never mind that we have chapter capability
\ifthenelse{\isundefined{\visiblercountersec}}{%
\section*{\listrcountername}
}{% else:
\section{\listrcountername}
}
\markboth{\MakeUppercase{\listrcountername}}%
{\textsl{\listrcountername}}%
}
\raistoc{rcr}%
}
}%of \listofrcounters
\newcommand{\rcountertof}{%
\ifthenelse{\isundefined{\rcounterplain}}{%(semi)i nformative Version:
\ifthenelse{\isundefined{\rcountersemiplain}}{%inf ormative Version:
\addtocontents{rcr}{Zähler \currentlastsubsub{} wurde definiert als: \protect\arabic{\currentlastsubsub}\\}%
}{% sonst semiplain
\addtocontents{rcr}{\currentlastsubsub{} = \protect\arabic{\currentlastsubsub}\\}%
}
}{% sonst nur Kurzversion; ignoriert übergebene Parameter
\addtocontents{rcr}{\protect\arabic{\currentlastsu bsub}\\}%
}%
}% of \rcountertof
\newcommand{\mysub}[1]{%
\subsection{#1}%
\renewcommand{\currentlastsubsub}{sublastsub-\thesubsection}%
\newcounter{\currentlastsubsub}%
\rcountertof%
\typeout{+++ RaiS defined counter \currentlastsubsub}%
\ifthenelse{\isundefined{\DeBugMe}}{}{%
\begin{minipage}{\textwidth}%
CNT: \currentlastsubsub, ACT: \arabic{\currentlastsubsub}%
\end{minipage}\\%
}%
}
\newcommand{\mysubsub}[1]{%
\subsubsection{#1}%
\stepcounter{\currentlastsubsub}
}
\begin{document}
\chapter{A: Einleitung}
\XC
\section{A-a}
\Xc
\mysub{A-a-a}
\xc
\mysubsub{A-a-a-a}
\xc
\mysubsub{A-a-a-b}
\xc
\mysub{A-a-b}
\xc
\mysubsub{A-a-b-a}
\xc
\mysubsub{A-a-b-b}
\xc
\mysubsub{A-a-b-c}
\xc
\mysubsub{A-a-b-d}
\xc
\mysubsub{A-a-b-e}
\xc
\mysubsub{A-a-b-f}
\xc
\section{A-b}
\Xc
\mysub{A-b-a}
\xc
\chapter{B}
\Xc
\section{B-a}
\xc
\section{B-b}
\mysub{B-b-a}
\xc
\mysubsub{B-b-a-a}
\xc
\mysubsub{B-b-a-b}
\xc
\mysubsub{B-b-a-c}
\xc
\subsection*{Test Sternvariante sub}
Da die Sternvariante den eigenen Zähler nicht verändert, sollte es damit auch keine Probleme geben\dots
\mysubsub{B-b-a-d}
\chapter{C}
\section{C-a}
\mysub{C-a-a}
\mysubsub{C-a-a-a}
\xc
\mysub{C-a-b}
\mysubsub{C-a-b-a}
\xc
\mysub{C-a-c}
\mysubsub{C-a-c-a}
\xc
\mysubsub{C-a-c-b}
\xc
\mysub{C-a-d}
\mysubsub{C-a-d-a}

\mysubsub{C-a-d-b}

\xc
\appendix
\listofrcounters
\end{document}

Wie Du sehen kannst, definiere ich für jede subsection einen Zähler, der als Inhalt seine letzte subsubsection erhält (oder eben 0, wenn keine subsubsection vorhanden ist) und quaste diese in eine Datei foo.rcr.
Wenn Du Dir also merkst, in welcher subsection Du Dich befindest, wenn Du Dein InhVerz ausgibst, brauchst Du eigentlich nur noch zu schauen, ob es in der foo.rcr einen entsprechenden Eintrag der Art gibt (für subsection 1.2.3 entprechend "sublastsub-1.2.3") - dessen Inhalt sagt Dir dann, wieviele subsubsections darin enthalten sind:cool:
MfG,