Lange captions via Kurztitel + Anhang?

Tabellen und Grafiken erstellen und anordnen


airblaster
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mo 23. Nov 2009, 12:31

Lange captions via Kurztitel + Anhang?

Beitrag von airblaster »

Hallo,

ich bin dabei meine Diplomarbeit zu schreiben und gebe bei Abbildung immer die Quelle in Klammer an, ungefähr so:
\begin{figure}
\begin{centering}
\includegraphics[width=1\linewidth]{bild.jpg}
\caption[Meine Bildunterschrift]{Meine Bildunterschrift (Foto: XYZ)}
\end{figure}
D.h. die lange Unterschrift entspricht fast immer der kurzen für den Verzeichniseintrag plus einem Zusatz.
Wenn ich das immer doppelt Tippe besteht natürlich die Gefahr dass sich in einer Version ein Tippfehler einschleicht, oder ich ich bei einer Änderung die zweite Version übersehe. Davon abgesehen finde ich diese Doppelarbeit einfach lästig ;).
Deshalb meine Frage: gibt es ein Paket mit dem ich die Caption mit dem selben Ergebnis wie im obigen Beispiel in etwa so schreiben kann?:
\caption[Meine Bildunterschrift]{ (Foto: XYZ)}

phi
Moderator
Moderator
Beiträge: 420
Registriert: Fr 6. Feb 2009, 21:28

Beitrag von phi »

Du kannst selber einfach einen entsprechenden Befehl definieren:
\newcommand*{\mycaption}[2]{\caption[#1]{#1#2}}

airblaster
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mo 23. Nov 2009, 12:31

Beitrag von airblaster »

Danke für den Tip :)

Schade nur, dass LyX sich nicht darauf anpassen lässt.

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

In dem Fall musst Du eben \caption selbst umdefinieren (ungetestet, Grund siehe unten):
\AtBeginDocument{%
  \let\Originalcaption\caption
  \renewcommand*{\caption}[2][\relax]{%
    \ifx \relax#1\relax\Oginalcaption{#1}\else\caption[#1]{#1#2}\fi
  }%
}
Damit ist das optionale Argument weiterhin der Kurztitel und der Langtitel setzt sich aus dem Kurztitel und dem nicht optionalen Argument zusammen. Es mag aber sein, dass das ganze mit einigen Klassen oder Paketen nicht funktioniert. Du hattest leider kein vollständiges Minimalbeispiel angegeben, um das für Dich zu testen. In dem Codeschnippsel, den Du angegeben hast, ist übrigens auch noch ein Fehler. \centering ist eine Anweisung. Wenn Du die als Umgebung missbrauchst, solltest Du die Umgebung auch wieder beenden.

Nächstes Mal bitte ein getestetes Beispiel beifügen. Das macht die Antwort leichter.

Antworten