Fehler bei Kombination von \usepackage{caption} + {bac}

Klassen und Pakete zur einfachen Umsetzung individueller Vorstellungen


Gast

Fehler bei Kombination von \usepackage{caption} + {bac}

Beitrag von Gast »

Hallo allerseits,

ganz kurz zu mir:
ich heiße Steffen, fang demnächst mit meiner Bachelorarbeit an und das ist mein erster Beitrag hier.

Mein Problem:
Mich hat gestört, dass die Bildunterschrift caption immer mittig ist. Deswegen hab ich \usepackage{caption} eingebunden. Zu meiner Überraschung hab ich dann aber die für mich nicht verständliche Fehlermeldung "Undefined control sequence" erhalten.

Nach einigem Hin und Her hab ich dann ein Minimalbeispiel vorbereitet, um es hier einzustellen und beim Runterkürzen des Codes fiel mit auf, dass dieser Fehler nur in Verbindung mit \usepackage{bar} auftritt, was ich noch viel weniger einordnen kann.

Mir geht es jetzt nur darum, irgendwie zu verstehen, wie da die Zusammenhänge sind und sicher zu stellen, dass da nicht irgendein ganz anderer Fehler dahintersteckt, den ich noch gar nicht entdeckt hab.

Mein Minimalbeispiel:
\documentclass[
	a4paper, 						
	12pt, 						
	]{scrreprt}					

% eingebundene Pakete: --------------	
	\usepackage[english,ngerman]{babel}
	\usepackage{graphicx} 			% Grafikintegration
	\usepackage{bar}				% Diagramme
	\usepackage[					% Bilderunterschriften
	format=plain, 							
	labelformat=default, 			 
	justification=raggedright,		
	singlelinecheck=false,
	]{caption}								

% Beginn Body: ----------------	  
\begin{document}						

\chapter{Probleme mit Bildunterschriften}

	\begin{figure}[htbp]				% Bild mit Bildunterschrift
		\centering
			\includegraphics{bilder/bildname}
		        \caption{Das ist der Text der Bildunterschrift}
		        \label{fig:bildname}
	\end{figure}

	\begin{barenv}							% Schaubild
	\setxaxis{1}{4}{1} \setxname{Quartal}
	\setyaxis[0]{0}{50}{10} \setyname{Anzahl}
	\bar{10}{6}% \bar{Höhe}{Schraffur}[Beschreibung]
	\bar{30}{6}
	\bar{25}{6}
	\end{barenv}
	
\end{document}
Zum Nachprüfen:
Wenn ich den Code so durchlaufen lasse, springt TeXnic Center in die Zeile mit
\caption{Das ist der Text der Bildunterschrift} und gibt zwei Fehlermeldungen aus:
Undefined control sequence
<argument> \setspace@singlespace

Missing number, treated as zero
<to be read again>
Kommentiere ich die Zeile
\usepackage{bar}
(und den zugehörigen Absatz beginnend mit \begin{barenv}) aus, läuft das Beispiel ohne Fehlermeldung durch.

Grüße Steffen

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

Re: Fehler bei Kombination von \usepackage{caption} + {bac}

Beitrag von KOMA »

Anonymous hat geschrieben:Mein Problem:
Mich hat gestört, dass die Bildunterschrift caption immer mittig ist. Deswegen hab ich \usepackage{caption} eingebunden.
Da Du eine KOMA-Script-Klasse verwendest, stellt sich die Frage, warum Du nicht einfach per Klassenoption die Sonderbehandlung bei einzeiligen Bildunterschriften abgeschaltet hast. Bei KOMA-Script 3 wäre das beispielsweise »captions=nooneline«.

Ansonsten sei darauf hingewiesen, dass bar.sty kein LaTeX2e-Paket ist, sondern ein uralter LaTeX2.09-Style. Ich würde mich deshalb nicht darüber wundern, wenn das Teil Probleme machen würde, sondern wäre eher überrascht, wenn es problemlos funktionieren würde.

Ein Problem ist beispielsweise, dass der Style alle Makros per \def statt per \newcommand definiert. Deshalb bekommt man nicht bereits beim Laden des Styles mit, dass beispielsweise \bar bereits definiert ist und von dem Style dummerweise neu definiert wird.

Das eigentliche Problem dürfte aber sein, dass der Style die Anweisung \setstretch definiert. caption geht davon aus, dass wenn \setstretch definiert ist, die Anweisung kompatibel zum Paket setspace verwendet werden kann, was jedoch bei Verwendung von bar nicht der Fall ist.

Ich würde aus all den Gründen empfehlen, das Paket komplett durch etwas weniger veraltetes zu ersetzen. Einfache Balkendiagramme kann man beispielsweise mit tikz oder ps-tricks erstellen. Ansonsten könnte als Workaround bis zum nächsten Problem folgende Zeile nach dem Laden von caption funktionieren:
\DeclareCaptionFont{singlespacing}{\linespread{1}\selectfont}

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

Beitrag von phi »

Das Problem ist tatsächlich das bar-Paket. Das scheint direkt aus der Steinzeit zu stammen. Die „aktuelle“ Version ist aus dem Jahre 1992, da ist es fast zu erwarten, dass es mit modernen Paketen nicht harmoniert. Verwende stattdessen unbedingt ein modernes Grafikpaket wie PSTricks oder TikZ.

Benutzeravatar
Steffen
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Mo 18. Mai 2009, 13:27
Wohnort: Aalen

Beitrag von Steffen »

Danke für die Antworten.
Dann muss ich für die Zukunft wohl einfach bedenken, dass es zu Problemen zwischen unterschiedlichen Paketen kommen kann. Da mir das erst nicht klar war, hab ich ziemlich lang am
\usepackage{caption}
rumgedoktort und irgendwie versucht, den Fehler dort zu finden.

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

Beitrag von KOMA »

Steffen hat geschrieben:Dann muss ich für die Zukunft wohl einfach bedenken, dass es zu Problemen zwischen unterschiedlichen Paketen kommen kann.
Das ist zwar so, konkret liegt der Fall aber anders. Wie ich bereits erwähnt habe, verwendest Du mit bar.sty kein LaTeX2e-Paket, sondern lädst einen uralten LaTeX2.09-Style als Paket, der nie an LaTeX2e angepasst wurde. Eine solche Verwendung ist immer riskant!

Dass der Style nie zu einem Paket verarbeitet wurde, dürfte u. a. daran liegen, dass die Ergebnisse nicht sehr ansprechend sind und inzwischen weit leistungsfähigere Grafikpakete existieren. Außerdem erlaubt seine Lizenz keinerlei Änderung, so dass allein der Rechteinhaber eine entsprechende Anpassung vornehmen könnte. Wenn der Rechteinhaber dann nicht mehr aktiv ist, sieht es eben schlecht aus mit irgendwelchen Anpassungen - nicht nur aber auch, wenn es Probleme mit der Kompatibilität gibt.

sommerfee
Forum-Century
Forum-Century
Beiträge: 219
Registriert: Sa 12. Jul 2008, 08:02

Re: Fehler bei Kombination von \usepackage{caption} + {bac}

Beitrag von sommerfee »

KOMA hat geschrieben:Das eigentliche Problem dürfte aber sein, dass der Style die Anweisung \setstretch definiert. caption geht davon aus, dass wenn \setstretch definiert ist, die Anweisung kompatibel zum Paket setspace verwendet werden kann...
...was wohl etwas naiv von mir war. Habe ich mir notiert, wird in der nächsten Version gefixt sein.

Liebe Grüße,
Axel

sommerfee
Forum-Century
Forum-Century
Beiträge: 219
Registriert: Sa 12. Jul 2008, 08:02

Re: Fehler bei Kombination von \usepackage{caption} + {bac}

Beitrag von sommerfee »

sommerfee hat geschrieben:
KOMA hat geschrieben:Das eigentliche Problem dürfte aber sein, dass der Style die Anweisung \setstretch definiert. caption geht davon aus, dass wenn \setstretch definiert ist, die Anweisung kompatibel zum Paket setspace verwendet werden kann...
...was wohl etwas naiv von mir war. Habe ich mir notiert, wird in der nächsten Version gefixt sein.
Ist in der Version 3.1k (vom 9.10.2009) gefixt.

Liebe Grüße,
Axel

Antworten