PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bilder im Anhang gleich nummerieren wie im Text



largpack
13-11-2007, 08:42
Hallo Leute!

Habe ein kleines problem!

Meine erste Frage:

Ich schreibe zur Zeit ein Protokoll in Elektrotechnik. Dort hab ich im Text Bilder, die eigentlich sonst recht groß wären. Jetzt habe ich vor, diese Bilder, die so "groß" sind in den Anhang zu tun. Jetzt will ich aber, dass die Bilder im Anhang die selbe "Bildnummer" wie im Text haben.

Habe schon überlegt, einfach den Zähler auf 0 zu stellen. Das Problem ist aber, dass ich nicht alle Bilder, die auch im Text sind, auch im Anhang sein werden.

Muss ich die Caption jetzt "selber neu" machen und darauf zu referenzieren, oder gibt es da einen "Trick" ?



Meine zweite Frage: Wie kann ich unterdrücken, dass die Bilder im Anhang nicht im Abbildungsverzeichnis aufgelistet werden? Oder werden sie das eh nicht, wenn ich eine eigene Caption mache?


Hoffe einer weiß da bescheid ;-(

Lg Marcel

sommerfee
13-11-2007, 09:22
Muss ich die Caption jetzt "selber neu" machen und darauf zu referenzieren, oder gibt es da einen "Trick" ?

Beides würde gehen. Die Beschriftung könnte man ja mit "Abbildung \ref{xxx}: ..." einfach selber machen, dies hätte allerdings den Nachteil, daß man sich um die Formatierung selber kümmern muß.

Idee (brauchbar?): Bei den betroffenen Abbildungen nach der \caption eine Art \xdef\irgendwas{\thefigure} tätigen. Dann hat man den aktuellen "figure" Zählerstand in \irgendwas gespeichert (z.B. "3.2"). Bei den Abbildungen im Anhang kann man dann einfach \let\thefigure\irgendwas direkt vor \caption schreiben, um den Zählerstand auf den betreffenen Wert zu restaurieren.


\documentclass{article}

\begin{document}

\begin{figure}
\caption{Abbildung 1}
\xdef\irgendwas{\thefigure}
\end{figure}

\begin{figure}
\caption{Abbildung 2}
\end{figure}

\begin{figure}
\let\thefigure\irgendwas
\caption{Wieder Abbildung 1}
\end{figure}

\end{document}


Wenn man das etwas hübscher machen will, könnte man sich zwei Befehle dafür basteln, die dann wie \label einen Schlüssel als Parameter bekommen. Dann könnte man quasi schreiben:



\caption{...}
\label{fig:abb1}\saveref{fig:abb1}
....
\restoreref{fig:abb1}
\caption{...}




eine zweite Frage: Wie kann ich unterdrücken, dass die Bilder im Anhang nicht im Abbildungsverzeichnis aufgelistet werden?

Im Anhang ein


\captionsetup{listof=false}

platzieren, sofern das caption-Paket zum Einsatz kommt. (Andere Möglichkeiten sind mir nicht bekannt.)



Oder werden sie das eh nicht, wenn ich eine eigene Caption mache?

Wenn du die Beschriftung von Hand schnitzt, wird sie logischerweise nicht automatisch ins Abbildungsverzeichnis aufgenommen.

Gruß,
Axel

largpack
13-11-2007, 09:37
Vielen Dank für deine sehr schnelle Antwort!

Ich habe jetzt mal die "einfachste" Methode ausprobiert, die Caption "selber" zu machen (mit Abbildung \ref{}: ). Hat eigentlich recht gut funktioniert, da jede Abbildung ohnehin auf eine neue Seite kommen wird.... Das ganze sieht dann so aus:

http://members.vol.at/largpack/temp/test.jpg

Das mit dem "Zähler" speichern ist auch ein netter Trick. Würde ich aber nur einsetzen, wenn ich den Namen der Abbildungen (zb. Abbildung 1: in Figure 1: ) ändern müsste... Trotzdem danke für den Tipp, kann ich sicher irgendwann brauchen!

Eine Frage zu
\captionsetup{listof=false}
hab ich noch.... Wo muss ich den Befehl setzen? Einfach vor der figure, in der figure? Gilt der Befehl für den gesamten Rest des Dokuments oder nur für die folgende Abbildung?

Vielen Dank nochmal für die tolle Hilfe! Hab nicht mit so einer schnellen und hilfreichen Antwort gerechnet!

Liebe Grüße
Marcel

sommerfee
13-11-2007, 10:04
Würde ich aber nur einsetzen, wenn ich den Namen der Abbildungen (zb. Abbildung 1: in Figure 1: ) ändern müsste...

Der Name ("Abbildung" oder "Figure" oder ...) steht in \figurename, wenn du das verwendest, müsstest du eigentlich immer auf der sicheren Seite sein. Man kann übrigens das interne \@makecaption dazu mißbrauchen, um sich eine \caption selbst zu basteln, dann braucht man sich um die Formatierung nicht selber zu kümmern und sie ist automatisch identisch zu derjenigen der anderen Bildbeschriftungen. Beispiel:



\makeatletter
\newcommand\refcaption[2]{%
\parbox[t]{\linewidth}{%
\@makecaption{\csname\@captype name\endcsname~\ref{#1}}{#2}}}
\makeatother


(Kommt das hyperref-Paket zum Einsatz, würde ich \ref* statt \ref verwenden, damit die Nummer nicht anklickbar wird. Und dann könnte man auch gleich \autoref* verwenden:


\makeatletter
\newcommand\refcaption[2]{%
\parbox[t]{\linewidth}{\@makecaption{\autoref*{#1}}{#2}}}
\makeatother

Schade, daß es kein \nameref* gibt, denn ansonsten könnte man, wenn der Text immer der gleiche wie bei der originalen Abbildung sein soll, auch einfach \nameref*{#1} statt #2 für den Text nehmen...)

Dann schreibt man bei den passenden Abbildungen nicht \caption{...text...} sondern z.B. \refcaption{abb:1}{...text...}. Beispiel:


\documentclass{article}

\makeatletter
\newcommand\refcaption[2]{%
\parbox[t]{\linewidth}{%
\@makecaption{\csname\@captype name\endcsname~\ref{#1}}{#2}}}
\makeatother

\begin{document}

\begin{figure}
\caption{Abbildung 1}
\label{abb:1}
\end{figure}

\begin{figure}
\caption{Abbildung 2}
\end{figure}

\begin{figure}
\refcaption{abb:1}{Schon wieder Abbildung 1}
\end{figure}

\end{document}




Eine Frage zu
\captionsetup{listof=false}
hab ich noch.... Wo muss ich den Befehl setzen? Einfach vor der figure, in der figure? Gilt der Befehl für den gesamten Rest des Dokuments oder nur für die folgende Abbildung?

Wenn du den Befehl vor die figure setzt, gilt er für alle folgenden Abbildungen. Soll er nur für eine bestimmte Abbildung gelten, setzt man ihn in diese Abbildung, vor \caption.

Liebe Grüße,
Axel