Seite 1 von 1

Wie kann ich coverpageleftmargin auf 80% seines vorherigen Wertes setzen?

Verfasst: Di 2. Nov 2021, 15:49
von M0M0
\documentclass[titlepage=firstiscover]{scrreport}
\NewCommandCopy{\oldcoverpageleftmargin}  {\coverpageleftmargin}
\NewCommandCopy{\oldcoverpagerightmargin} {\coverpagerightmargin}
\renewcommand{\coverpageleftmargin}       {.8\oldcoverpageleftmargin}
\renewcommand{\coverpagerightmargin}      {.8\oldcoverpagerightmargin}

\begin{document}
 \title{Ein langer Titel der über viele Zeilen umgebrochen wird, diese möchte ich reduzieren, in dem ich  die Seitenabstände links und rechts verringere}
 \maketitel 
\end{document}

liefert einen Fehler, dass eine unbekannte Längeneinheit verwendet wurde. Mein Ziel ist es coverpageleft(right)margin auf 80% seines vorherigen Wertes zu setzen


Re: Wie kann ich coverpageleftmargin auf 80% seines vorherigen Wertes setzen?

Verfasst: Di 2. Nov 2021, 17:04
von KOMA

Man muss dafür sorgen, dass die Makros wie Längen verwendbar sind:

\documentclass[titlepage=firstiscover]{scrreport}
\NewCommandCopy{\oldcoverpageleftmargin}  {\coverpageleftmargin}
\NewCommandCopy{\oldcoverpagerightmargin} {\coverpagerightmargin}
\renewcommand{\coverpageleftmargin}       {\dimexpr.8\oldcoverpageleftmargin\relax}
\renewcommand{\coverpagerightmargin}      {\dimexpr.8\oldcoverpagerightmargin\relax}

\begin{document}
 \title{Ein langer Titel der über viele Zeilen umgebrochen wird, diese möchte ich reduzieren, in dem ich  die Seitenabstände links und rechts verringere}
 \maketitle
\end{document}

Genau genommen braucht man aber gar nichts zwischenspeichern:

\documentclass[titlepage=firstiscover]{scrreport}
\AtBeginDocument{%
  \edef\coverpageleftmargin       {\dimexpr 0.8\coverpageleftmargin\relax}
  \edef\coverpagerightmargin      {\dimexpr 0.8\coverpagerightmargin\relax}
}
\begin{document}
 \title{Ein langer Titel der über viele Zeilen umgebrochen wird, diese möchte ich reduzieren, in dem ich  die Seitenabstände links und rechts verringere}
 \maketitle% Tippfehler korrigiert
\end{document}

Die Verwendung von \edef ist an der Stelle zulässig, weil man ja bereits weiß, dass die beiden Anweisungen existieren, und sie überschreiben will.


Re: Wie kann ich coverpageleftmargin auf 80% seines vorherigen Wertes setzen?

Verfasst: Fr 5. Nov 2021, 10:42
von M0M0

Vielen Dank, habe wieder etwas gelernt :)


Re: Wie kann ich coverpageleftmargin auf 80% seines vorherigen Wertes setzen?

Verfasst: Mi 25. Feb 2026, 14:01
von M0M0
Kann es sein, dass die vorgeschlagene Lösung nicht mehr mit TeX Live 2025 funktioniert? Ich habe gerade nochmals das Dokument um das es damals ging rekompiliert, aber nun ist die gesammte Titelseite leicht "nach rechts versetzt" wenn
titlepage=firstiscover
verwendet wird
\documentclass[
  titlepage=firstiscover % auskommentieren um den Effekt zu sehen
]{scrreport}

\AtBeginDocument{
	\edef\coverpageleftmargin{\dimexpr .8\coverpageleftmargin\relax}
	\edef\coverpagerightmargin{\dimexpr .8\coverpagerightmargin\relax}
}

\begin{document}
  \title{
  	  Dieser Titel ist nur dann zentriert wenn nicht titlepage=firstiscover gesetzt ist.
  	  Andernfalls ist er zu weit rechts.
  	}
  \maketitle
\end{document}

Re: Wie kann ich coverpageleftmargin auf 80% seines vorherigen Wertes setzen?

Verfasst: Mo 2. Mär 2026, 10:17
von cabohah
Ich kann da keine Änderung über die TeX-Live-Versionen erkennen. Aber ich vermute, dass du etwas anderes willst, als gezeigt, nämlich, dass \coverpageleftmargin 80% des zum Zeitpunkt der Berechnung aktuellen Werts bekommt und \coverpagerightmargin schlicht denselben Wert erhält. Dann wäre deine Berechnung Unsinn, weil in der Voreinstellung \coverpagerightmargin bei dir nämlich als \def\coverpagerightmargin{\coverpageleftmargin} definiert ist. Wenn du also erst \coverpageleftmargin auf 80% von \coverpageleftmargin setzt und danach \coverpagerightmargin auf 80% von \coverpagerightmargin, dann ist \coverpagerightmargin anschließend 80% des aktuellen \coverpageleftmargin und damit 80% von 80% des ursprünglichen \coverpageleftmargin. Die Lösung wäre also \coverpagerightmargin gar nicht umzudefinieren oder erneut explizit auf \coverpageleftmargin zu setzen, also beispielsweise:
\documentclass[
  titlepage=firstiscover
]{scrreport}

\AtBeginDocument{%
%  \show\coverpageleftmargin% so kannst du in der log-Datei die vorherigen Definition sehen
%  \show\coverpagerightmargin% so kannst du in der log-Datei die vorherige Definition sehen
  \edef\coverpageleftmargin{\the\dimexpr .8\coverpageleftmargin\relax}%
  \def\coverpagerightmargin{\coverpageleftmargin}% im Beispiel nicht erforderlich, weil Voreinstellung
%  \show\coverpageleftmargin% so kannst du in der log-Datei die verwendete Definition sehen
%  \show\coverpagerightmargin% so kannst du in der log-Datei die verwendete Definition sehen
}

\begin{document}
  \title{%
  	  Dieser Titel ist unabhängig davon, ob titlepage=firstiscover gesetzt ist oder nicht, zentriert.%
  	}
  \maketitle
\end{document}
Übrigens empfehle ich, mehr auf signifikante Leerzeichen, beispielsweise durch Zeilenenden zu achten. Wenn man sich diesbezüglich einen konsequenten Stil aneignet und selbst dann durchzieht, wenn man 100% sicher ist, dass LaTeX an der Stelle Leerzeichen automatisch ignoriert, macht man deutlich weniger Fehler an Stellen, an denen LaTeX die Leerzeichen eben doch nicht ignoriert.

Re: Wie kann ich coverpageleftmargin auf 80% seines vorherigen Wertes setzen?

Verfasst: So 8. Mär 2026, 21:40
von M0M0
Im Unterschied zu KOMAs Lösung verwendest du
\the
vor
\dimexpr
. Mit deinem Code ist der Titel nun zwar richtig zentriert, was er ohne erwähntest \the nicht ist, dafür hat sich jetzt das Verhalten von \coverpageleftmargin geändert: es expandiert nun direkt zu einer Zahl/Länge, daher geht jetzt
  \the\coverpageleftmargin
später kein zweites mal sondern liefrt den Fehler
! You can't use `the character 7' after \the.
\coverpageleftmargin ->7
                        1.70122pt
l.11   \the\coverpageleftmargin
Ich bin mir daher nicht sicher, ob es eine gute Idee ist dort "\the" entsprechend zu verwenden. Warum es ohne dieses allerdigns eine nach rechts versetzte Überschrift gibt, erklärt sich mir nicht so ganz.
\documentclass[
  titlepage=firstiscover
]{scrreport}

\AtBeginDocument{%
%\edef\coverpageleftmargin{\the\dimexpr .8\coverpageleftmargin\relax}% Läuft in Fehler
\edef\coverpageleftmargin{\dimexpr .8\coverpageleftmargin\relax}% Überschrift nicht zentriert
}

\begin{document}
\title{Title}
  \the\coverpageleftmargin
  \maketitle
\end{document}