Mit Zeilenbreite rechnen? Thema ist als GELÖST markiert

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


flodo

Mit Zeilenbreite rechnen?

Beitrag von flodo »

Hallo nochmal :)

Ich würde gerne wissen wie ich in Latex mit der Zeilenbreite rechnen kann.
D.h. ich würde gerne die Zeilenbreite auslesen und 5pt dazuaddieren.
Folgendes habe ich bereits versucht:

\linewidth+5pt
\linewidth{}+5pt
{\linewidth}+5pt

Leider hat nichts davon funktioniert!

Kann mir jemand weiterhelfen?
Danke!!

flodo

Beitrag von flodo »

Ich glaube ich muss mal schnell erklären um was es genau geht.

Ich habe mit listings einen Quellcode in mein Doc eingebunden.
Nun habe ich mit lstaddons den Hintergrund eingefärbt.
Zwischen dem Rand des Listings und der eingefärbten Zeile bleibt
jedoch ein weißer Abstand.
Diesen kann man mit linebackgroundsep=3pt aus dem lstaddon-paket
umgehen, jedoch nur links. Für rechts gibt es diese Option nicht!

Jedoch gibt es noch die Option: linebackgroundwidth.

Diese ist standardmäßig auf \linewidth gesetzt, ich würde das aber gerne ändern, und zwar um so viel dass auch der weiße Rand rechts verschwindet.

Daher dachte ich an

linebackgroundwidth={\linewidth{}+6pt}

Das funktioniert aber nicht.

Das normale Rechnen, ala:

\newdimen\lstwidth
\lstwidth = 0pt
\advance\lstwidth by \linewidth
\advance\lstwidth by 3pt

funktioniert leider auch nicht, da \linewidth ja nicht mit der in dem listing übereinstimmt

flodo

Beitrag von flodo »

hab es jetzt vorübergehend so gelöst:
	% Zeilenbreite des Listings
	\newdimen\lstwidth
	\lstwidth = 0pt
	\advance\lstwidth by \linewidth
	\advance\lstwidth by -15pt			% Minus xleftmargin
	\advance\lstwidth by 1pt			% Minus Rand
	
	\lstset{
        numbers=left,
        linebackgroundcolor={\ifodd\value{lstnumber}\color{codegray}\fi},
        linebackgroundsep=3pt,				% Füllt die Zeile von Beginn an aus
        linebackgroundwidth={\lstwidth},	% ... bis zum Ende
        xleftmargin=15pt,		% Abstand von der Zeile inkl. Nummer zum Rand des Dokuments
        xrightmargin=5pt,
        framexleftmargin=0pt,	% Abstand vom Rand zur Codezeile
        framexrightmargin=0pt
	}
Keine optimale Lösung, aber besser als nichts :)


Antworten