scrlttr2: Umbrüche in Absenderadresse vermeiden/zulassen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: scrlttr2: Umbrüche in Absenderadresse vermeiden/zulassen

von KOMA » Sa 16. Jul 2011, 14:18

Makros mit @ im Namen sind interne Makros. Die sind nicht für die Verwendung durch Anwender gedacht. Klassen- und Paketautoren sollten sie streng genommen auch nur verwenden, wenn dokumentiert ist, dass sie von diesen verwendet werden dürfen. Deshalb habe ich in meiner Lösung auch darauf verzichtet.

Die *-Version von \newcommand etc. ist im clsguide erklärt. Da hier in Makro, das normalerweise nicht \long definiert ist, umdefiniert wird, sollte man das auch wieder nicht \long machen. Also habe ich den * gesetzt.

von michseif » Sa 16. Jul 2011, 10:29

Jaa das habe ich mich auch gefragt, aber es tut wohl im Prinzip nichts anderes. Ich definiere also (nur noch mal zum Verständnis) das "Makro" \\ um, sodass es etwas völlig anderes tut als umzubrechen - verblüffend einfach, wusste nur bisher nicht, dass man das mit \\ auch machen kann...

Allerdings noch zwei Fragen: Wozu dient der * nach dem renewcommand (wenn ich den weglasse, sehe ich keinen Unterschied)? Und (ganz prinzipiell): Woher kommt die "Konvention", oder wie auch immer man es nennen will, Makros mit @'s zu definieren? Ist das nur, damit man sie nicht aus Versehen (sprich ohne \makeatletter) umdefinieren kann? Ich würde ja auch nach einer Erklärung googlen, wenn ich wüsste, wonach ich da suchen sollte ;-)

Dankeschön!

von skater » Sa 16. Jul 2011, 09:29

KOMA hat geschrieben:BTW: Beim Setzen von backaddress wird das optionale Argument übrigens durch ein angehängtes \@ogobble entfernt. Könnte man oben auch machen, muss dann aber \makeatletter…\makeatother verwenden (siehe Wiki).
1. Danke für die – mal widder ausführlichen – Hinweise.

2. Das \@ogobble hatte ich auch gesehen, es allerdings nach einem kurzen Test einfach weggelassen. Was jetzt aber mit Deinen Anmerkungen zu der Frage führt: Watt macht datt eigentlich?


Edit: Er kann lesen – zumindest nach dem ersten Kaffee. ;-)

von KOMA » Sa 16. Jul 2011, 08:59

Bei dem Vorschlag wird das optionale Argument von \\ nicht berücksichtigt. Außerdem sind die * überflüssig, da im Kopf ohnehin kein Seitenumbruch erfolgen kann:
\setkomavar{firsthead}{%
   \raggedleft
   \usekomavar{fromname}
   \hspace{\fill}
   {\renewcommand*\\[1][]{\usekomavar{backaddressseparator}}\usekomavar{fromaddress}} \\
   \usekomavar{fromemail} \\
   \usekomavar{frommobile}}
Durch die Verwendung von \renewcommand mit einem optionalen Argument, das ignoriert wird, wird das optionale Argument von \\ ggf. geschluckt. Was nicht berücksichtigt ist, ist ein \\*, aber der Stern ist ohnehin an der Stelle eher nutzlos und wird auch beim Setzen von backaddress nicht berücksichtigt.

BTW: Beim Setzen von backaddress wird das optionale Argument übrigens durch ein angehängtes \@ogobble entfernt. Könnte man oben auch machen, muss dann aber \makeatletter…\makeatother verwenden (siehe Wiki).

von skater » Sa 16. Jul 2011, 02:24

\setkomavar{firsthead}{%
	\raggedleft
	\usekomavar{fromname}
	\hspace{\fill}
	{\def\\{\usekomavar{backaddressseparator}}\usekomavar{fromaddress}} \\*
	\usekomavar{fromemail} \\*
	\usekomavar{frommobile}}
Und es ist wirklich nur ein Vorschlag.

scrlttr2: Umbrüche in Absenderadresse vermeiden/zulassen

von michseif » Fr 15. Jul 2011, 22:06

Hallo allerseits,

bin gerade dabei, mich etwas mit scrlttr2 zu beschäftigen. Ich möchte nun gerne meinen eigenen Briefkopf definieren, bei dem die Umbrüche nicht nach jeder komavar erfolgen (so wie per default), sondern z. B. Name und Postadresse in einer Zeile stehen und in der zweiten Zeile Telefonnummer(n) und Mailadressen.

Prinzipiell geht das ja mit \setkomavar{firsthead}. Nun habe ich aber das Problem, dass fromaddress ja üblicherweise mit "Musterstraße 88 \\ 01234 Musterstadt" befüllt wird - da ist ja ein Umbruch drin, den will ich aber in meinem Briefkopf NICHT haben.

Offensichtlich gibt es ja eine Möglichkeit, das zu bewerkstelligen, denn im backaddress ist es ja per default auch so, dass die Anschrift nicht umgebrochen wird, sondern statt des Umbruchs ein Komma gesetzt wird. Im scrguide steht auch an einer Stelle, dass die \\ nicht in jedem Fall als Umbruch interpretiert werden - leider ohne weitere Erläuterungen, wie man das beeinflussen kann.

Ich habe auch schon mal einen Blick in die scrlltr2.cls geworfen, nur leider bin ich absolut nicht firm in low-level-TeX, weshalb ich da nicht wirklich was Hilfreiches draus gewinnen konnte...

Nach oben