Frage zu \parbox (dynamic height) Thema ist als GELÖST markiert

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


Sam85
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 56
Registriert: Do 13. Feb 2020, 21:17

Frage zu \parbox (dynamic height)

Beitrag 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}
Dateianhänge
Source.pdf
(30.27 KiB) 113-mal heruntergeladen
Zuletzt geändert von Sam85 am Sa 24. Sep 2022, 09:48, insgesamt 1-mal geändert.

Sam85
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 56
Registriert: Do 13. Feb 2020, 21:17

Re: Frage zu \parbox

Beitrag 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

Sam85
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 56
Registriert: Do 13. Feb 2020, 21:17

Re: Frage zu \parbox

Beitrag 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}}

Sam85
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 56
Registriert: Do 13. Feb 2020, 21:17

Re: Frage zu \parbox (dynamic height)

Beitrag 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.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Re: Frage zu \parbox (dynamic height)

Beitrag 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}

Sam85
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 56
Registriert: Do 13. Feb 2020, 21:17

Re: Frage zu \parbox (dynamic height)

Beitrag 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?

Sam85
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 56
Registriert: Do 13. Feb 2020, 21:17

Re: Frage zu \parbox (dynamic height)

Beitrag 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}}

Antworten