Sie sind hier

scrletter location nach TL-pinning und update über Rand hinaus verschoben

Hallo Form,

ich habe vorhin von vanilla-TexLive2019 auf das KOMA-eigene Repository umgestellt - in der Hoffung, dass ich so einen (blöden) Fehler beheben könnte. Es stellte sich - wie so oft - heraus, dass sich der von mir gesuchte Fehler mal wieder zwischen Tastatur und Rückenlehne befand und dass in der der KOMA-Doku (scrguide.pdf) der Befehl \letterpagemark keine Erwähnung zu finden scheint (zumindest nach einer flüchtigen pdfviewer-Suche).

Wie dem auch sei, seit dem Pinning habe ich ein anders Problem, und zwar mit dem folgenden Code:

\documentclass[version=last]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{scrlayer-scrpage}
\usepackage{scrletter}
\usepackage{tabularx}
 
\setkomavar{backaddress}{%
	Max Mustermann\\
	Musterstr. 1\\
	D-12345 Musterstadt%
}
 
\setkomavar{location}{%
	%\raggedright
	\raggedleft
	\usekomafont{addressee}%
	\strut%<-- wichtig für Ausrichtung von location an backaddress (s. unten)
	\begin{tabularx}{0.40\textwidth}{lr}
		\multicolumn{2}{l}{Max Mustermann}\\
		\multicolumn{2}{l}{Musterstr. 1}\\
		\multicolumn{2}{l}{D-12345 Musterstadt}\\
		\multicolumn{2}{l}{}\\
		Mobil&+49\,123 456789\\%
		E-Mail & x@y.z\\%
		\multicolumn{2}{l}{}\\
		\multicolumn{2}{l}{}\\
		\multicolumn{2}{r}{\pagemark} \\
	\end{tabularx}%
}
 
\makeatletter
%richtet die Pos. von location an der Pos. von backadress aus
\@setplength{locvpos}{\useplength{toaddrvpos}}
\@addtoplength{locvpos}{\useplength{backaddrheight}}
\scriptsize\@addtoplength{locvpos}{-\ht\strutbox}%
\makeatother
 
 
\begin{document}
\begin{letter}{%
	Petra Mustermann\\
	Vor dem Berg 1\\
	12345 Musterhausen%
}
\opening{Liebe Vereinsvorsitzende,}
\pagestyle{letter}
 
hallo Welt!
 
\closing{Mit freundlichen Grüßen}
\end{letter}
\end{document}

Bevor ich die pinning-tl-update Befehlskombi ausgeführt habe, befand sich die location noch hübsch auf dem Brief. Jetzt, nach dem Pinning ist sie nach rechts über den Rand verschoben. Ich glaube in der Zwischenzeit nichts wesentliches verändert zu haben. Leider weiß ich nicht, wie ich das pinning wieder aufheben kann, um es nochmals zu verifizieren.

Kann jemand von Euch bitte versuchen das beschriebene Problem zu reproduzieren und mir ggf. den Trick verraten wie ich zwischen Vanilla-TL und KOMA-Repository hin und her schalten kann?

Vielen Dank!

Bild von Markus Kohm

Die Beseitigung des Pinnings habe ich auf der Seite mit der Erklärung zur Aktivierung ergänzt.

Will man häufiger hin und her schalten, beispielsweise weil man nur testen will, kann es sinnvoll sein, das Paket einfach ohne Pinning aus dem KOMA-Repository zu installieren. Beim nächsten Update wird es dann automatisch wieder überschrieben. Ebenso wird man es durch eine Reinstallation dann wieder los.

Stattdessen kann man KOMA-Script aber auch aus dem TDS-Repository in einem neuen, eigenen TEXMF-Baum installieren. Den kann man bei TeX-Live einfach per

tlmgr conf auxtree add TEXMF-Baum

aktivieren (wobei TEXMF-Baum durch den absoluten Pfad des TEXMF-Baums zu ersetzen sind). Mit

tlmgr conf auxtree remove TEXMF-Baum

wird man den Baum mit dem absoluten Pfad TEXMF-Baum wieder los. Natürlich muss man bei der TDS-Version selbst dafür sorgen, dass sie aktuelle bleibt. Dabei ist zu beachten, dass man die alte Version vor der Installation einer neuen Version löschen (oder durch umbenennen der Verzeichnisse beseitigen) sollte, weil beim einfach Auspacken des TDS-Archivs sonst inzwischen aus der Distribution gelöschte Dateien erhalten bleiben.

Vielen Dank, auch für den Hinweis auf die auxtree-Alternative!

Bild von Markus Kohm

scrletter ist im Gegensatz von scrlttr2 nicht auf maximale Kompatibilität ausgelegt. Derzeit wird an dem Paket (und der davon abgeleiteten Wrapper-Klasse) heftig gearbeitet. Das geänderte Verhalten in diesem Fall ist allerdings auch nicht sonderlich überraschend. Überraschend ist eher, dass bisher nicht schon dasselbe Ergebnis erzielt wurde.

Genau genommen liegt ein Fall von unterschiedlichem Verhalten im Fehlerfall vor. Solche Dinge berücksichtige ich selbst bei der Weiterentwicklung von scrlttr2 normalerweise eher selten. Dass ein Problem vorliegt, meldet auch scrlttr2 (oder die offizielle Release von scrletter) sehr eindrucksvoll:

Underfull \hbox (badness 10000) in alignment at lines 47--47
[][] 
 
Overfull \hbox (46.37541pt too wide) in paragraph at lines 47--47
 |[]
 
Underfull \hbox (badness 10000) in alignment at lines 47--47
[][] 
 
Overfull \hbox (46.37541pt too wide) in paragraph at lines 47--47
 |[]

Das liegt an der viel zu breiten tabularx. Mit aktuellen tabularx und aktuellen scrletter bekommt man sogar noch eine deutliche Warnung von tabularx:

Package tabularx Warning: X Columns too narrow (table too wide)
(tabularx)                 on input line 53.

Da eine tabularx ohne X-Spalte ohnehin keinen Sinn ergibt, dürfte die beste Lösung sein, eine tabular zu verwenden:

\documentclass[version=last]{scrartcl}
\usepackage{scrletter}
%\documentclass{scrlttr2}
\usepackage[ngerman]{babel}
\usepackage{scrlayer-scrpage}
\usepackage{tabularx}
 
\setkomavar{backaddress}{%
	Max Mustermann\\
	Musterstr. 1\\
	D-12345 Musterstadt%
}
 
\setkomavar{location}{%
  % \raggedright
	\raggedleft
	\usekomafont{addressee}%
	\strut%<-- wichtig für Ausrichtung von location an backaddress (s. unten)
	\begin{tabular}{@{}lr@{}}
		\multicolumn{2}{@{}l@{}}{Max Mustermann}\\
		\multicolumn{2}{@{}l@{}}{Musterstr. 1}\\
		\multicolumn{2}{@{}l@{}}{D-12345 Musterstadt}\\
		\multicolumn{2}{@{}l@{}}{}\\
		Mobil&+49\,123 456789\\%
		E-Mail & x@y.z\\%
		\multicolumn{2}{@{}l@{}}{}\\
		\multicolumn{2}{l}{}\\
		\multicolumn{2}{r}{\pagemark} \\
	\end{tabular}%
}
 
% richtet die Pos. von location an der Pos. von backadress aus
\setplength{locvpos}{\useplength{toaddrvpos}}
\addtoplength{locvpos}{\useplength{backaddrheight}}
\scriptsize\addtoplength{locvpos}{-\ht\strutbox}%
\normalsize% Unbedingt auch wieder zurückschalten, falls danach noch
           % irgendwelcher Code eingefügt wird.
 
\begin{document}
\begin{letter}{%
	Petra Mustermann\\
	Vor dem Berg 1\\
	12345 Musterhausen%
}
\opening{Liebe Vereinsvorsitzende,}
%\pagestyle{letter}% auskommentiert, weil es für das Problem unwichtig ist und
                   % so der Vergleich mit scrlttr2 einfacher ist
 
hallo Welt!
 
\closing{Mit freundlichen Grüßen}
\end{letter}
\end{document}

Und schon sind alle Warnungen weg und das \raggedleft ergibt einen Sinn. Soll tatsächlich tabularx mit einer X-Spalte verwendet werden, so ist die Breite auf max. \linewidth zu begrenzen. Braucht man mehr Breite ist die Breite des location-Feldes anzupassen.

BTW: Ich habe oben auf die Benutzeranweisungen \setplength und \addtoplength umgeschaltet. Schließlich habe ich die extra auf Anwenderdruck eingeführt, also sollen die Anwender sie jetzt bitte auch verwenden.

Wie man sieht, sind TeX-Warnungen wie die zu underfull oder overfull boxes keineswegs so harmlos, wie manche Anwender gerne glauben und einige sogar glauben machen wollen. Es kommt immer auf den Einzelfall an.

herzlichen Dank - insbesondere, dass Du trotz der derzeit heftigen Umbauarbeiten an scrletter das Problem analysiert und Workarounds vorgeschlagen hast! *verneig*

Bild von Markus Kohm

Derzeit sind die Umbauarbeiten bei scrletter etwas ins Stocken geraten. Es gibt da ein gewisses Motivationsdefizit, weil ich den Fehler gemacht habe, den Aufwand (Design, Analyse der Auswirkungen, Implementierung, Dokumentation und leider auch Fehlerbehebung) dem voraussichtlichen Nutzen gegenüber zu stellen. Da die ganzen Arbeiten aus einer Laune heraus und der Idee, mir anschließend mit nicht explizit nachgefragten neuen Möglichkeiten neue Arbeit aufzuhalsen, entstanden ist, tue ich mich jetzt schwer, das wirklich durchzuziehen. Aber natürlich tue ich mich auch schwer damit, die Reißleine zu ziehen und die Änderungen rückgängig zu machen und so bereits geleistete Arbeit wegzuwerfen.

Die Fortsetzung des Supports soll darunter aber natürlich nicht leiden. Dank Beispielcode hatte ich ja auch kein Problem, das nachzuvollziehen. Das erleichtert eine zeitnahe Reaktion ungemein,.

Comments for "scrletter location nach TL-pinning und update über Rand hinaus verschoben" abonnieren