2 kleine set/addtokomafont Fragen (scrlttr2)

Klassen und Pakete zur einfachen Umsetzung individueller Vorstellungen


nram
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Sa 4. Apr 2015, 23:32

2 kleine set/addtokomafont Fragen (scrlttr2)

Beitrag von nram »

1. Lassen sich zu definierende Elemente zusammenfassen, in der Art von
setkomafont{A,B,C,D}{wert}
addtokomafont{A,B}{wert}
addtokomafont{C,D}{wert}
Ich hab da ja so einige Dinge die ich in meinem scrlttr2-Brief einfärben möchte, bzw wo ich die Schriftart ändere und es wird ziemlich unübersichtlich wenn ich das jedes mal einzeln mache - was ja wunderbar funktioniert.

Das ich kein entsprechendes Beispiel in der Doku finde heißt ja wohl nicht unbedingt das es nicht geht, deshalb frage ich doch einfach mal.

2. Wenn ich in der Geschäftszeile mit
\addtokomafont{refname}{\color{blue}}
die Farbe der Bezeichnung ändere, dann ändert sich auch die des entsprechenden Feldes (refvalue). Läßt sich das verhindern um die Felder nicht wieder manuell zurücksetzen zu müssen?

Besserwisser

Beitrag von Besserwisser »

Normalerweise ist in der KOMA-Script-Anleitung (oder im KOMA-Script-Buch) ziemlich genau angegeben, was offiziell erlaubt ist. Wenn irgendwo Listen vorgesehen sind, dann ist das dort auch angegeben. Wenn hier keine Listen angegeben sind, dann sind sie auch nicht vorgesehen. BTW: Beim Ausprobieren wäre LaTeX sicher auch nicht dein Computer explodiert. Und aufwändig wäre es auch nicht gewesen. Falls es funktioniert hätte, wäre es aber ein undokumentiertes Feature gewesen, also dürfte man sich nicht darauf verlassen.

saputello
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 98
Registriert: Do 15. Jan 2015, 08:49

Beitrag von saputello »

Du solltest nicht zwei Fragen zu einer vermischen, da das schnell sehr unübersichtlich wird.

Zu Deiner zweiten Frage: Farbe ist bei TeX ein Fremdkörper, der normalerweise mit whatsits realisiert wird, die sich leider teilweise sehr seltsam verhalten. Heiko Oberdiek hat deshalb für lualatex das sehr schöne Paket luacolor geschrieben, das stattdessen node attributes für die Farbe verwendet und diese erst nach dem Setzen durch whatsits ersetzt. So verhält sich Farbe deutlich mehr wie andere Dinge in LaTeX beispielsweise wie Font-Änderungen oder Definitionen. Mit lualatex ergibt sich dann auch:
\documentclass{scrlttr2}
\usepackage{luacolor}% Benötigt zwingend lualatex!
\addtokomafont{refname}{\color{blue}}

\begin{document}
\begin{letter}{Du\\Da}
  \setkomavar{yourref}{Du}
  \setkomavar{myref}{Ich}
  \opening{Hi,}
  You.
  \closing{Bye}
\end{letter}
\end{document}
Bild
Dateianhänge
test.png
test.png (2.84 KiB) 2369 mal betrachtet

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

saputello hat geschrieben: Zu Deiner zweiten Frage: Farbe ist bei TeX ein Fremdkörper, der normalerweise mit whatsits realisiert wird, die sich leider teilweise sehr seltsam verhalten.
In diesem Fall ist es einfach ein Bug in scrlttr2: Dort wird das primitive \setbox benutzt (statt \sbox), ohne es mit \color@begingroup/\color@endgroup abzusichern.
\documentclass{scrlttr2}
\usepackage{xcolor}% 
\addtokomafont{refname}{\color{blue}}

\makeatletter
\renewcommand*{\@set@reffield}[1]{%
  \ifkomavarempty{#1}{}{%
    \settowidth{\@tempdima}{\strut\usekomafont{refvalue}\usekomavar{#1}}%
    \setbox0\hbox{\color@begingroup\strut\usekomafont{refname}\usekomavar*{#1}\color@endgroup}%
    \ifdim \@tempdima<\wd0\setlength{\@tempdima}{\wd0}\fi
    \if@tempswa\enskip\hfill\fi
    \parbox[tt]{\@tempdima}{\noindent\raggedright
        \strut\box0\\\usekomafont{refvalue}\strut\usekomavar{#1}}%
    \@tempswatrue
  }%
}
\makeatother
\begin{document}
\begin{letter}{Du\\Da}
  \setkomavar{yourref}{Du}
  \setkomavar{myref}{Ich}
  \opening{Hi,}
  You.
  \closing{Bye}
\end{letter}
\end{document}

Antworten