Zeilen nur bei Bedarf setzen

Klassen und Pakete zur einfachen Umsetzung individueller Vorstellungen


Joerg66
Forum-Anfänger
Forum-Anfänger
Beiträge: 13
Registriert: Mi 17. Aug 2016, 10:23

Zeilen nur bei Bedarf setzen

Beitrag von Joerg66 »

Hallo,
was gibt es für (schöne) Möglichkeiten manche an/aus zu schalten?
Ich möchte in meinem Brief z.B. die IBAN und Bank nicht immer angeben, aber auch nicht löschen oder mit Kommentaren arbeiten. Irgendwas mit "if iban drucken Y/N" wäre cool.
Für Hilfe wäre ich sehr dankbar
Gruß Jörg

\documentclass[11pt,ngerman,paper=A4]{scrlttr2}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
% ##### Briefkörper bündig am Briefkopf ausrichten #####
\setlength{\oddsidemargin}{\useplength{toaddrhpos}}
\addtolength{\oddsidemargin}{-1in}
\setlength{\textwidth}{\useplength{firstheadwidth}}
% ######################################################
\setkomavar {fromname}      {Donald Duck}
\setkomavar {fromaddress}   {Am Geldspeicher 1 \\ 12345 Entenhausen}
\setkomavar {fromphone}     {+49 5043 10 20 30}
\setkomavar {frommobilephone}     {+49 173 10 24 236}
\setkomavar {fromemail}    {myEMail@provider.de}

\setplength{locvpos}{135pt}     % Abstand Absenderergänzung von oben
\setplength{locwidth}{155pt}    % Breite Absenderergänzung
\setkomavar{location}{
    \raggedright    \\
                    \usekomavar*{fromphone}\usekomavar{fromphone} \\
                    \usekomavar*{frommobilephone}\usekomavar{frommobilephone} \\
                    \usekomavar*{fromemail}\usekomavar{fromemail}
}
\setkomavar{frombank}[IBAN]{DE98160500007512013019}
\newkomavar[Bank]{bank}
\setkomavar{bank}{Volksbank Hameln-Stadthagen e.G.}
\setkomavar{firstfoot}{%
\hrule\vspace*{0.5em}\noindent%

\usekomavar*{frombank}:~\usekomavar{frombank} \hfill 
\usekomavar{bank}}

\setkomavar{toname}{Max Mustermann}
\setkomavar{toaddress}{Musterweg 1 \\ 98765 Musterstadt}

\setkomavar {yourref}   {}         % Ihr Zeichen
\setkomavar {myref}     {}             % Unser Zeichen
\setkomavar {yourmail}  {03.03.2020}        % Ihr Schreiben vom
\setkomavar {customer}  {}         % Kundennummer
\setkomavar {invoice}   {}         % Rechnungsnummer
\setkomavar {subject}   {Betreff}         % Betreff

\newkomavar[Anrede]{anrede}
\setkomavar{anrede}{Sehr geehrter Herr}

\newkomavar[Gruss]{gruss}
\setkomavar{gruss}{Mit freundlichen Grüßen}

\setkomavar{firsthead}{ \\
    \usekomavar{fromname} \\
    \usekomavar{fromaddress} \\
    \rule[1ex]{\textwidth}{.4pt}
}

\begin{document}
\noindent
    \begin{letter}{}
        \opening{\usekomavar{anrede}}
    \closing{\usekomavar{gruss}}
    \end{letter}
\end{document}

gast

Re: Zeilen nur bei Bedarf setzen

Beitrag von gast »

Da gibt es verschiedene Möglichkeiten. In der KOMA-Script-Anleitung im Kapitel zu scrbase wird beispielsweise erklärt, wie man sich eine eigene Familie für die key-value-Schnittstelle definieren kann, so dass man dann per \FamilyOptions{Familie}{IBAN} und einen Schalter \ifIBAN…\else…\fi arbeiten könnte. Man kann aber auch direkt mit \newif (siehe LaTeX-Anleitung) oder stattdessen mit denn Boolschen-Schaltern von etoolbox arbeiten.


Joerg66
Forum-Anfänger
Forum-Anfänger
Beiträge: 13
Registriert: Mi 17. Aug 2016, 10:23

Re: Zeilen nur bei Bedarf setzen

Beitrag von Joerg66 »

Ah, vielen Dank, das werde ich mir ansehen.
Schön wäre ein google-Tool, das einem passende Suchbegriffe zu einem Problem heraussucht :lol:
Ich war mit "if" am suchen, habe einiges gefunden, aber nichts das funktionierte. Deine Ansätze waren übrigens nicht dabei.


Joerg66
Forum-Anfänger
Forum-Anfänger
Beiträge: 13
Registriert: Mi 17. Aug 2016, 10:23

Re: Zeilen nur bei Bedarf setzen

Beitrag von Joerg66 »

Ich habe jetzt diesen Code probiert:

\newif\ifname\nametrue
\ifname
\usekomavar*{frombank}:~\usekomavar{frombank} \hfill 
\usekomavar{bank}}
\fi

Die Bankangaben werden geschrieben, aber ich bekomme bei \fi die Meldung:

Extra \fi.
I'm ignoring this, it doesn't match any \if.

Ändere ich nach \namefalse wird nur noch in der Kopfzeile der Absender angegeben, der Rest der Seite ist leer.
Geht \if an dieser Stelle überhaupt oder muß das nach \begin{document} kommen?


gast

Re: Zeilen nur bei Bedarf setzen

Beitrag von gast »

Ohne Minimalbeispiel weiß ich nicht, was genau du gemacht hast, und kann deshalb nur eine sehr allgemeine Antwort auf Basis einer Vermutung geben. Ich wäre dir daher verbunden und es ist auch in deinem Interesse immer ein vollständiges Minimalbeispiel anzugeben.

\newif sollte unbedingt außerhalb irgendwelcher anderer Befehle oder Verzweigungen verwendet werden. Es geht also beispielsweise häufig nicht:

\setkomavar{firsthead}{%
  \newif\ifFOO\FOOtrue
  \ifFOO … \else … \fi
}

Stattdessen muss es schon

\newif\ifFOO\FOOtrue
\setkomavar{firsthead}{%
  \ifFOO … \else … \fi
}

sein. Selbstverständlich kann man \FOOtrue und \FOOfalse an beliebiger Stelle verwenden.

Außerdem gibt es keinen Sicherungsmechanismus, dass \ifFOO nicht bereits anderweitig definiert ist. Man muss also schon selbst aufpassen, dass man für FOO Namen verwendet, die unkritisch sind.


Antworten