Tabellenbreite in labeling-Umgebung gleich deren Textbreite?

Schriftbild, Absätze und Auflistungen einstellen
Seban
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 86
Registriert: Do 10. Jan 2013, 13:31

Tabellenbreite in labeling-Umgebung gleich deren Textbreite?

Beitrag von Seban »

Hallo an alle Lesenden,

In einem Dokument habe ich eine labeling-Umgebung eingefügt, in der ich nun eine Tabelle mittels tabularx darstellen möchte.

Mein Problem ist, dass ich nicht weiß wie ich die Tabelle auf die Breite des Textes in der labeling Umgebung anpassen kann. Bisher erhält die Tabelle die Breite des Textes vor/nach der labeling-Umgebung, die Tabelle sollte aber nur so breit sein wie der davor liegende Textblock.

Ist das verständlich? Sollte etwas unklar sein, bitte einfach nachfragen.

Hier ein Minimalbeispiel:

Code: Alles auswählen

\documentclass{scrreprt}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{
	adieresis={ä},
	odieresis={ö}
}

\usepackage{tabularx}	% Tabellenbreite festlegbar
\usepackage{float}		% H in table-Optionen
\usepackage{blindtext}	% Blindtext

\begin{document}
	\blindtext
	
	\begin{labeling}{Zweiter Punkt}
		
		\item[Erster Punkt] \blindtext
		
			\begin{table}[H]
				\centering
				\begin{tabularx}{\textwidth}{XX}\hline    % textwidth ersetzen?
					Parameter	& Wert	\\\hline\hline 
					Höhe		& 1 m	\\\hline
					Länge		& 100 m	\\\hline
				\end{tabularx}
			\end{table}

		\item[Zweiter Punkt]\blindtext
		
	\end{labeling}
\end{document}
Grüße,
Seban

markusv
Forum-Meister
Forum-Meister
Beiträge: 859
Registriert: Do 3. Sep 2015, 17:20
Wohnort: Leipzig

Beitrag von markusv »

Hallo.

Da die Tabelle offensichtlich nicht gleiten soll, lass die Gleitumgebung table weg. Für den nötigen vertikalen Abstand kannst du ggf. auch die center-Umgebung verwenden. Wenn du dann noch \textwidth durch \linewidth ersetzt, sollte es so aussehen, wie gewünscht:

Code: Alles auswählen

\documentclass{scrreprt}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{
   adieresis={ä},
   odieresis={ö}
}

\usepackage{tabularx} 
\usepackage{booktabs} % schönere Tabellen
%\usepackage{float}      % H ist nie eine gute Wahl
\usepackage{blindtext}

\begin{document}
   \blindtext
   
   \begin{labeling}{Zweiter Punkt}
      
      \item[Erster Punkt] \blindtext
      
            \begin{tabularx}{\linewidth}{XX}\toprule    % textwidth ersetzt
               Parameter   & Wert   \\\midrule
               Höhe      & 1 m   \\
               Länge      & 100 m   \\\bottomrule
            \end{tabularx}

      \item[Zweiter Punkt]\blindtext
      
   \end{labeling}
\end{document}
Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de

Ratgeber

Objekte fixieren

Beitrag von Ratgeber »

Das Paket »float« wird nicht benötigt, um Abbildungen, Tabellen und andere selbst definierte Objekte mit deren Beschriftungen vom Gleiten abzuhalten. Bei Klassen aus »KOMA-Script« lässt sich das mit Bordmitteln erledigen (s. Anleitung, Abschnitt 3.20, S 142). Bei Standard-Klassen ist das Gleiche mit »caption« erreichbar.

Seban
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 86
Registriert: Do 10. Jan 2013, 13:31

Beitrag von Seban »

Danke für eure Hilfe.
markusv hat geschrieben:Da die Tabelle offensichtlich nicht gleiten soll, lass die Gleitumgebung table weg.
Die table-Umgebung nutze ich bisher, da es zu den Tabellen auch Caption und Label gibt. Caption kann man auch mit \captionof anlegen, aber wie ich auf Tabellen ohne table-Umgebung referenzieren kann, konnte ich nicht finden (im Gegenteil, das soll gar nicht gehen?).
markusv hat geschrieben:Wenn du dann noch \textwidth durch \linewidth ersetzt, sollte es so aussehen, wie gewünscht:
Ja, das funktioniert, aber leider nur bei Verzicht auf table.
markusv hat geschrieben:H ist nie eine gute Wahl
Abbildungen und Tabellen an fixen Positionen im Dokument anzuzeigen ist nun mal so gewünscht, da kann/will ich nicht dran rütteln.
Ratgeber hat geschrieben:Das Paket »float« wird nicht benötigt, um Abbildungen, Tabellen und andere selbst definierte Objekte mit deren Beschriftungen vom Gleiten abzuhalten.
Danke, schaue ich mir beizeiten an.

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2179
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Seban hat geschrieben:Die table-Umgebung nutze ich bisher, da es zu den Tabellen auch Caption und Label gibt. Caption kann man auch mit \captionof anlegen, aber wie ich auf Tabellen ohne table-Umgebung referenzieren kann, konnte ich nicht finden (im Gegenteil, das soll gar nicht gehen?).
Eben davon handelt der Beitrag des Ratgebers. Starte bitte ein neues Thema und zeige ein minimales Beispiel, in welchem Dein Querverweis nicht funktioniert, wenn das Verweisziel keine Gleitumgebung ist.

Gast

Beitrag von Gast »

Seban hat geschrieben:Die table-Umgebung nutze ich bisher, da es zu den Tabellen auch Caption und Label gibt. Caption kann man auch mit \captionof anlegen, aber wie ich auf Tabellen ohne table-Umgebung referenzieren kann, konnte ich nicht finden (im Gegenteil, das soll gar nicht gehen?).
Wer hat denn das Gerücht in die Welt gesetzt? Das geht ganz normal mit \label:

Code: Alles auswählen

\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{blindtext}
 
\begin{document}
 
\blindtext Siehe dazu auch die folgende Abbildung~\ref{fig:test}:
\begin{center}
  \begin{minipage}{\linewidth}
    \centering
    \includegraphics{example-image}
    \captionof{figure}{Beispielbild}\label{fig:test}
  \end{minipage}
\end{center}
\blindtext

\end{document}
Mit scrreprt geht es genauso:

Code: Alles auswählen

\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{blindtext}
 
\begin{document}

\chapter{Test}
\blindtext Siehe dazu auch die folgende Abbildung~\ref{fig:test}:
\begin{center}
  \begin{minipage}{\linewidth}
    \centering
    \includegraphics{example-image}
    \captionof{figure}{Beispielbild}\label{fig:test}
  \end{minipage}
\end{center}
\blindtext

\end{document}
Wahlweise kann man das Label auch im letzten Argument von \captionof setzen.

Seban
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 86
Registriert: Do 10. Jan 2013, 13:31

Beitrag von Seban »

Anonymous hat geschrieben:Wer hat denn das Gerücht in die Welt gesetzt? Das geht ganz normal mit \label
Habe ich eben während des Suchens gelesen, auf Texexchange glaube ich (bin nun nicht mehr am PC). Beim Testen eines Labels ohne table-Umgebung muss ich wohl was falsch gemacht haben. Ich teste heute Abend/morgen früh deinen Vorschlag.
Bartman hat geschrieben:Eben davon handelt der Beitrag des Ratgebers.
Hatte ich nicht so verstanden, danke für den Hinweis.

Falls es mit den bisherigen Infos nicht klappt, melde ich mich wieder, hab das Thema aber schon mal geschlossen, scheint gelöst.

Danke an alle!

Seban
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 86
Registriert: Do 10. Jan 2013, 13:31

Beitrag von Seban »

Hallo noch mal,

Label und Referenz auf die Tabelle funktionieren bei Verwendung von \captionof, kA was ich gestern falsch gemacht hatte. Danke dafür!

Ich habe noch eine Folgefrage zur Bildunterschrift, da diese leider nicht gemeinsam mit der Tabelle eingerückt wird, sondern am linken Rand klebt. Idealerweise würde sich die Caption direkt unter der Tabelle befinden, nicht nach links versetzt. Die Breite der Bildunterschrift scheint zu stimmen, nur die Orientierung/Ausrichtung bekomme ich nicht hin, weder mit dem Paket caption, noch mit den Angaben in scrguide.pdf, Kap. 3.20.

Weiß jemand Rat?

Hier das angepasste Beispiel (mit Paket caption):

Code: Alles auswählen

\documentclass{scrreprt}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{
	adieresis={ä},
	odieresis={ö}
}

\usepackage{tabularx}
\usepackage[hang, font=small]{caption}
\usepackage{blindtext}

\begin{document}
	\blindtext
	
	\begin{labeling}{Zweiter Punkt}
		
		\item[Erster Punkt] \blindtext
		
			\begin{center}
				\begin{tabularx}{\linewidth}{XX}\hline
					Parameter	& Wert	\\\hline\hline 
					Höhe		& 1 m	\\\hline
					Länge		& 100 m	\\\hline
				\end{tabularx}
			
%				\captionsetup{margin=2.65cm}	% rückt Tabelle ein, aber margin wird von Tabellenunterschriftsbreite abgezogen, 
												% dh Bildunterschrift zu schmal (2.65 cm hier nur Pi * Daumen zur Veranschaulichung, 
												% wird im Original ersetzt)
%				\captionsetup{width=\linewidth,margin=2.65cm}	% Dies funktioniert leider nicht wie gewünscht, nur 2. Argument verwendet
%				\captionsetup{margin=2.65cm,width=\linewidth}	% Dies funktioniert leider nicht wie gewünscht, nur 2. Argument verwendet
				
				\captionof{table}{Hier befindet sich eine lange Bildunterschrift, die zwar die Breite von linewidth bzw. der Tabelle annimmt, aber leider nicht an der zugehörigen Tabelle orientiert ist.}
				\label{tab:bsp}
			\end{center}

		\item[Zweiter Punkt]\blindtext 
		
		\vfill Die Referenz auf Tabelle \ref{tab:bsp} funktioniert nun. Danke.
		
	\end{labeling}
\end{document}
Beste Grüße & Dank,
Seban

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2179
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Du hast die minipage-Umgebung aus den Beispielen des Gastes nicht übernommen.

Code: Alles auswählen

\documentclass{scrreprt}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{
   adieresis={ä},
   odieresis={ö}
}
\usepackage{lmodern}
\usepackage{tabularx}
\usepackage{blindtext}
\usepackage{hyperref}

\setkomafont{caption}{\small}% Ersatz für das Paket caption und dessen Optionen

\begin{document}
   \blindtext
   
   \begin{labeling}{Zweiter Punkt}
     
      \item[Erster Punkt] \blindtext
         \begin{center}
         \begin{minipage}{\linewidth}
            \begin{tabularx}{\linewidth}{XX}\hline
               Parameter   & Wert   \\\hline\hline
               Höhe      & 1 m   \\\hline
               Länge      & 100 m   \\\hline
            \end{tabularx}
            \captionof{table}{Hier befindet sich eine lange Bildunterschrift, die zwar die Breite von linewidth bzw. der Tabelle annimmt, aber leider nicht an der zugehörigen Tabelle orientiert ist.}
            \label{tab:bsp}
         \end{minipage}
         \end{center}
      \item[Zweiter Punkt]\blindtext
     
      \vfill Die Referenz auf \autoref{tab:bsp} funktioniert nun. Danke.
   \end{labeling}
\end{document}

Seban
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 86
Registriert: Do 10. Jan 2013, 13:31

Beitrag von Seban »

Also manchmal macht man nen Schund?!

Es klappt nun wunderbar, vielen Dank für deine Hilfe, und Geduld.

Antworten