Seite 1 von 1

Frage zu \parbox (dynamic height)

Verfasst: Fr 23. Sep 2022, 11:21
von Sam85
Hi,

meine Frage ist, warum der Abstand zum Text nach dem \source je nach Zeilen Anzahl (also mehr als 1 Zeile) kleiner wird? Hoffe das PDF zeigt was ich meine. Muss das \parbox da ersetzt werden durch etwas anderes? Oder etwas ganz anderes?

EDIT:
Warum klappt das Minimalbeispiel in Overleaf aber hier nicht?
\documentclass{scrbook}

\usepackage{tabularx}
\usepackage{lipsum}

\newlength{\sourcelabelwidth}
\settowidth{\sourcelabelwidth}{Quelle: }

\newcommand*{\source}[1]{%
	Quelle:
	\parbox[t]{\dimexpr\textwidth-\sourcelabelwidth}
	{\RaggedRight #1}
}

\begin{document}

\begin{table}
	\caption{Test eine Zeile in der Quelle}
	\begin{tabularx}{\textwidth}{X|X} 
		\hline
		A & B \\
		C & D \\
		\hline
	\end{tabularx}
	\source{In Anlehnung an }
\end{table}

\lipsum[2-4]

\newpage

\begin{table}
	\caption{Test mehr Zeilen in der Quelle}
	\begin{tabularx}{\textwidth}{X|X} 
		\hline
		A & B \\
		C & D \\
		\hline
	\end{tabularx}
	\source{\lipsum[1]}
\end{table}

\lipsum[2-4]

\end{document}

Re: Frage zu \parbox

Verfasst: Fr 23. Sep 2022, 18:07
von Sam85
Jemand eine Idee wie man die Höhe der Parbox dynamisch gestalten kann? Das es einen Parameter gibt hab ich gesehen aber wie man das bestimmen kann, weiß ich leider nicht so recht. Oder gibt es eine bessere Alternative?

Grüße
Sam

Re: Frage zu \parbox

Verfasst: Sa 24. Sep 2022, 01:39
von Sam85
Konnte es selbst lösen. Ob es der beste Weg ist weiß ich nicht aber es tut was ich wollte.

EDIT:
Das +12pt habe ich eingetragen weil ich einen größeren Abstand wollte. Lässt man es weg ist der Abstand ich glaube immer ca. 1 Zeile...egal wie viele Zeilen in der parbox sind.
\newlength{\sourcelabelwidth}	
\newlength{\sourceHeight}		
\settowidth{\sourcelabelwidth}{Quelle: }

\newcommand{\source}[1]{%
\settototalheight{\sourceHeight}{\usebox{\parbox[t]{\dimexpr\textwidth-\sourcelabelwidth\relax}{\raggedright #1}}}
		Quelle:
		\parbox[t][\sourceHeight+12pt]{\dimexpr\textwidth-\sourcelabelwidth\relax}{\raggedright #1}}

Re: Frage zu \parbox (dynamic height)

Verfasst: Di 27. Sep 2022, 00:48
von Sam85
Nun hab ich doch noch eine Frage. Seit dem ich die Höhe der Parbox versucht habe dynamisch zu gestalten, erhalte ich die Fehlermeldung überall wo ich die \source verwende. Woran liegt das? Bevor ich die Höhe angepasst habe, kam das nicht.

Missing number, treated as zero.

Re: Frage zu \parbox (dynamic height)

Verfasst: Di 27. Sep 2022, 11:30
von u_fischer
Sam85 hat geschrieben:
Di 27. Sep 2022, 00:48
Nun hab ich doch noch eine Frage. Seit dem ich die Höhe der Parbox versucht habe dynamisch zu gestalten, erhalte ich die Fehlermeldung überall wo ich die \source verwende. Woran liegt das? Bevor ich die Höhe angepasst habe, kam das nicht.

Missing number, treated as zero.
Nun, dein Code ist falsch. Das \usebox macht keinen Sinn. Abgesehen davon, ist \parbox hier unnötig und kompliziert. Benutze eine Liste:
\documentclass{scrbook}

\usepackage{tabularx,calc}
\usepackage{lipsum}
\usepackage{enumitem}


\newcommand{\source}[1]{%
\begin{description}[labelwidth=\widthof{Quelle:},leftmargin=!,font=\normalfont]
\item[Quelle:] #1
\end{description}}

\begin{document}

\begin{table}
	\caption{Test eine Zeile in der Quelle}
	\begin{tabularx}{\textwidth}{X|X}
		\hline
		A & B \\
		C & D \\
		\hline
	\end{tabularx}
	\source{In Anlehnung an }
\end{table}

\lipsum[2-4]

\newpage

\begin{table}
	\caption{Test mehr Zeilen in der Quelle}
	\begin{tabularx}{\textwidth}{X|X}
		\hline
		A & B \\
		C & D \\
		\hline
	\end{tabularx}
	\source{\lipsum[1]}
\end{table}

\lipsum[2-4]

\end{document}

Re: Frage zu \parbox (dynamic height)

Verfasst: Di 27. Sep 2022, 20:59
von Sam85
Kann der Abstand von der Description Umgebung unterhalb zum Text auch festgelegt werden?

EDIT:
\setupdescription[...][...]
Kann mir das helfen? Benötige ich dafür zufällig ein extra Package?

Re: Frage zu \parbox (dynamic height)

Verfasst: Mi 28. Sep 2022, 12:50
von Sam85
So geht es. Vielen Dank für die Korrektur.
\newcommand{\source}[1]{%
	\begin{description}[labelwidth=\widthof{Quelle:},leftmargin=!,font=\normalfont,topsep=0cm,after=\vspace{12pt}]
		\item[Quelle:] #1
	\end{description}}