CiteSeeing (deutsch)
Worum handelt es sich?
CiteSeeing ist ein Programm, um SharePics von Zitaten aus Büchern vor dekoriertem Hintergrund zu erstellen, um sie auf Social Media zu teilen. Es ist inspiriert durch Canva, aber nutzt LaTeX, und außerdem von SPBuchsatz, einer auf LaTeX basierenden Software von Karl-Heinz Zimmer, um deutsche Bücher zu setzen.
Link zur Software mit Installationsanleitung und so.
Einige hübsche Beispiele
Hier seht ihr einige Beispiele für Sharepics, die ich mit dieser Software gebaut habe. Sie werden im Laufe des Artikels jeweils nochmal auftauchen, wenn ihr die Einstellungen kennt, mit denen ihr sie erzeugen könnt.

Haupt-Nachteile
CiteSeeing bastelt Dateien des Typs pdf, keine Bilddateien. Ihr werdet sie konvertieren müssen. Dazu könnt ihr gimp, krita, die meisten Bildverarbeitungs-Softwares oder ein Konvertierungstool wie Magick nutzen. Ich nutze
magick -density 300 input.pdf output.png
auf der Kommandozeile.
Voreinstellungen (bisschen technisch)
Ihr erzeugt euer Sharepic aus einer Datei, in der ihr die Farben, Dekorationen und den Text wählt. Eine minimale Datei, in der ihr nichts selbst auswählt, sieht so aus:
\input {preamble.tex}
\input {montage.tex}
Und kreiert das folgende Bild:

Das Sharepic wird aus einigen minimalistischen Voreinstellungen kreiert (festgehalten
in defaultdefinitions.tex). Konkret werden dort:
- alle Dekorationen deaktiviert,
- der Text wie im Bild gesetzt,
- die Farben (von denen ihr nur zwei im Resultat seht, die Hintergrund- und die Vordergrundfarbe, weil keine Dekorationen enthalten sind) festgelegt,
- die Textbreite und der Zeilenabstand gewählt
- und spezifische Einstellungen zu Dekorationen voreingestellt, falls ihr jene aussucht aber nicht selbst feinjustiert.
Ein sinnvolles Beispiel
Die Datei SharePic.tex enhält zu jeder Auswahl, die du treffen kannst, eine Erklärung und erzeugt das
folgende sinnvolle Sharepic mit meinem Lieblingszitat:

Um ein SharePic mit eurem eigenen Design zu erzeugen, könnt ihr die Datei kopieren, die
Kopie z. B. MeinSharePic.tex nennen und den Inhalt anpassen. Vielleicht ist das schon alles,
was ihr wissen müsst, aber in diesem Artikel werde ich ausführlicher und mit Beispielen über die
Software reden.
Jedes Feature mit Beispiel-SharePics erklärt
In diesem langen Abschnitt werde ich jede Funktion von CiteSeeing vorstellen und euch Beispiele, Erklärungen und ein paar Tricks zeigen.
Grundfunktionen
Farben
Farben werden über ihren html Code definiert. Wenn ihr krita oder gimp benutzt und eine Farbe auswählt (in krita über das Farbauswahl-Tool oben im Menü), werdet ihr einen html Code für die ausgewählte Farbe in diesem Tool/Extra-Fenster finden (eine sechs-stellige Zahl, womöglich mit einem # am Anfang). Ihr könnt alternativ auch eure Lieblingssuchmaschine benutzen um so etwas wie “html Farbe wählen” (auf Englisch z. B. “html color picker”) zu suchen, und eine von den dann vorgeschlagenen Webseiten nutzen. Bitte kümmert euch um Accessibility/Barrierearmut und schaut nach, welche Kontraste barrierearm sind oder welche Farben für farbenblinde Leute gut gehen.
Ich nutze üblicherweise ungefähr die gleiche Farbe in verschiedenen Helligkeitsabstufungen und wähle einen Kontrast zwischen Text und Hintergrund, der so hoch wie möglich ist unter der Bedingung, dass er mir nicht in den Augen wehtut.
Vier Farben können festgelegt werden:
Eine Hintergrundfarbe, die für Hintergrund und Dekoration genutzt wird:
\def \bgcol {001729}
Eine Vordergrundfarbe, die für Text und Dekoration genutzt wird:
\def \fgcol {79b5e4}
Und zwei zusätzliche Farben, die ebenfalls für Dekoration genutzt werden:
\def \mgcol {0c2f4a}
\def \mgcolb {037bdb}
Die oben definierten Farben sind im folgenden Bild dargestellt:

Wenn ihr ein Sharepic erzeugen mit bloß Hintergrund in einer und Text in einer anderen Farbe erstellen wollt, wäre die folgende Datei ausreichend:
\input {preamble.tex}
\def \csquote {»Sowas kann man nicht
abkönnen. Nicht, wenn man keine Herzwesen
hat. Oder wenn man mal lange keine hatte. Und
selbst wenn man es könnte, wieso sollte
es in Ordnung sein, sich in einer Weise zu
verhalten, die andere höchstens abkönnen
könnten, aber die dennoch schlecht
ist?« Myrie sagte dies sachlich und ruhig.}
\def \csauthor {– skalabyrinth, Myrie
Zange\\Die Symmetrie der Schneeflocken}
\def \bgcol {001729}
\def \fgcol {79b5e4}
\input {montage.tex}
und das würde folgendes Bild erzeugen:

Mit Dekorationen (manchen) kommen die anderen zwei Farben ins Spiel. Zum Beispiel könntet
ihr die Wellen-/Tropfen-Form wie im Beispiel oben auswählen, indem ihr \csthreewaves mit einem
‘x’ (oder einem beliebigen anderen Text außer Leerlassen) auswählt, zusammen mit den anderen
beiden Farben:
...
\def \mgcol {0c2f4a}
\def \mgcolb {037bdb}
\def \csthreewaves {x}
...
(oder \def \csthreewaves {Flederfluff} – die exakte Eingabe spielt keine Rolle). Es würde diese
Datei erzeugen:

Wenn ihr mgcol und mgcolb vertauscht, wie hier:
...
\def \mgcolb {0c2f4a}
\def \mgcol {037bdb}
\def \csthreewaves {x}
...
sieht das Sharepic so aus:

Vielleicht könnt ihr hier dran sehen, welchen Effekt die beiden zusätzlichen Farben auf das Sharepic haben.
Text, Autory, Titel und Überschrift
Vielleicht erinnert ihr euch, dass das Zitat über die Einstellung \def \csquote {} festgelegt
werden kann: Ihr schreibt euer Zitat in die geschweiften Klammern wie hier:
...
\def \csquote {»Sowas kann man nicht
abkönnen. Nicht, wenn man keine Herzwesen
hat. Oder wenn man mal lange keine hatte. Und
selbst wenn man es könnte, wieso sollte
es in Ordnung sein, sich in einer Weise zu
verhalten, die andere höchstens abkönnen
könnten, aber die dennoch schlecht
ist?« Myrie sagte dies sachlich und ruhig.}
...
Wenn ihr Zeilenumbrüche im Zitat in eurer Datei habt, aber keine
Zeile freilasst, dann hat es keine Auswirkungen auf das Ergebnis. Wenn ihr
im Ergebnis eine neue Zeile sehen möchtet, dann könnt ihr eine Zeile
freilassen, oder die Zeile mit \\ beenden.
Wir kommen zum ersten Trick: Wenn ihr eine Zeile mit \\[0.5em] abschließt, dann
erzeugt es im Ergebnis eine neue Zeile mit dem angegebenen Abstand zur letzten. Dieser
Abstand lässt sich mit der Zahl beeinflussen. Hier ein Beispiel. Der Code
\input {preamble.tex}
\def \csquote {Erste Zeile.\\
Zweite Zeile.\\[0.5em]
Dritte Zeile.\\
Vierte Zeile.}
\input {montage.tex}
Erzeugt dieses Ergebnis:

Neben \csquote gibt es noch zwei weitere Felder für Text:
\csauthor{}: Dieses Feld ist dafür gedacht, den Namen des Autorys oder der Autor*innen und vielleicht den Titel des Buchs oder der Geschichte einzutragen, zu der das Zitat gehört. Der Text wird unter das Zitat in etwas kleinerer Schrift gesetzt.\csheading{}: Dieses Feld ist für eine Überschrift gedacht, wie zum Beispiel den Buchtitel, wenn ihr ihn lieber über dem Text als darunter haben wollt. Oder für den Namen des Projekts oder der Anthologie oder sowas wie ‘Winter-Challenge’ oder ‘#PhantasticPrompts 6.12.’ oder was auch immer. Es wird über den Text in leicht größerer Schriftgröße gesetzt.
Beide Felder können eigentlich mit beliebigem Text ausgefüllt werden oder leergelassen werden. Der Code
\input {preamble.tex}
\def \csheader{Lieblingszitat:}
\def \csquote {»Sowas kann man nicht
abkönnen. Nicht, wenn man keine Herzwesen
hat. Oder wenn man mal lange keine hatte. Und
selbst wenn man es könnte, wieso sollte
es in Ordnung sein, sich in einer Weise zu
verhalten, die andere höchstens abkönnen
könnten, aber die dennoch schlecht
ist?« Myrie sagte dies sachlich und ruhig.}
\def \csauthor {– skalabyrinth, Myrie
Zange\\Die Symmetrie der Schneeflocken}
\input {montage.tex}
erzeugt folgendes Sharepic:

Hier noch ein paar Tricks: Wenn ihr kursiven Text haben möchtet, könnt
ihr den Text, der kursiv werden soll, wie folgt in einen Befehl schreiben:: \textit{example text}.
Ähnliche Befehle sind:
- \textit für kursiven Text (kursiv heißt italic auf Englisch).
- \textbf für fett gedruckten Text (fett im Kontext von Schrift heißt bold auf Englisch).
- \texttt für Schreibmaschinen-Schrift (Schreibmaschine heißt typewriter auf Englisch).
- \textunderline für unterstrichenen Text.
- \emph, um Text hervorzuheben (hervorheben heißt emphasising auf Englisch) – dieser Befehl tut Dinge abhängig vom Kontext.
Ihr könnt mehrere dieser Befehle ineinander verschachteln.
Ihr könnt außerdem mit den folgenden Befehlen herumexperimentieren:
\tiny (winzig), \scriptsize (Skript-Größe), \footnotesize (Fußnotengröße), \small (klein), \normalsize
(normalgroß), \large (groß), \Large (groß, aber großgeschrieben), \LARGE (groß, aber Capslock), \huge (riesig)
and \Huge (riesig, aber großgeschrieben) mit geschweiften Klammern um den Teil des Texts herum, von
dem ihr die Schriftgröße verändern wollt. Aber diese Befehle arbeiten potenziell nicht gut
zusammen mit Voreinstellungen, also seid vorsichtig. Es könnte schlecht aussehen oder Fehler erzeugen.
Textbreite und Zeilenabstand
Im Gegensatz zu dem, was ich gerade erklärte, existiert keine vorgesehene Option, die Schriftgröße zu beeinflussen. Der Grund dafür ist, dass die produzierte pdf-Datei kein spezifisches Format wie A5 oder was auch immer hat. Es ist eine Vektor-Grafik, die wie gewünscht skaliert werden kann.
Es gibt allerdings Optionen, um die Breite des Textblocks und den Zeilenabstand festzulegen:
\def \cstxtwidth {6.2cm}
\def \cstxtspacing {1.5em}
Eine gute Wahl für die Textbreite ist zwischen 5cm und 30cm, aber es ist frei wählbar. Es bestimmt außerdem, wie groß das Sharepic wird.
Allerdings gibt es einen Spezialfall (bisher): Wenn als Hintergrund ein Bild gewält wird statt eines (gegebenenfalls dekorierten) Farbhintergrunds, wird die Größe des Sharepics durch jenes bestimmt statt durch die Textbreite. In diesem Fall muss eine gute Textbreite abhängig vom ausgewählten Hintergrundbild gesucht werden. Andernfalls wird der Text nicht gut aufs Bild passen. Ihr werdet ein wenig experimentieren müssen. Dann wiederum ist es sinnig, in jedem Fall etwas mit der Textbreite abhängig vom jeweiligen Text rumzuprobieren: Ihr mögt eine Textbreite finden, bei der keine großen Lücken zwischen den Wörtern entstehen.
Die Einheit des Zeilenabstands hängt (soweit ich das verstehe) von der Schriftgröße ab. Das heißt,
wenn ihr über so einen Befehl wie \large den Text größer macht, wächst der Zeilenabstand entsprechend mit.
Nun kennt ihr die absoluten Grundfunktionen des Programms.
Beispiel-Code 1
Für alle folgenden Beispiele ich das Zitat- und
Autory-Feld gleich ausgefüllt benutzen. Für den
Teil über Hintergrund-Dekorationen und Rahmen werde ich
die Farben aus der Datei SharePic.tex nutzen, wie
auch im Abschnitt über Farben definiert. In dem Abschnitt
gibt es sogar ein Bild, das die vier Farben
zeigt. Der Teil-Code, der im folgenden gleich
bleibt, sieht so aus:
\def \csquote {»Sowas kann man nicht
abkönnen. Nicht, wenn man keine Herzwesen
hat. Oder wenn man mal lange keine hatte. Und
selbst wenn man es könnte, wieso sollte
es in Ordnung sein, sich in einer Weise zu
verhalten, die andere höchstens abkönnen
könnten, aber die dennoch schlecht
ist?« Myrie sagte dies sachlich und ruhig.}
\def \csauthor {– skalabyrinth, Myrie
Zange\\Die Symmetrie der Schneeflocken}
\input {preamble.tex}
\def \bgcol {001729}
\def \fgcol {79b5e4}
\def \mgcol {0c2f4a}
\def \mgcolb {037bdb}
...
% additional options
...
\input {montage.tex}
Ich nenne diesen Code-Teil Beispiel 1, und werde mich so darauf beziehen. Zusätzliche
Optionen, über die ich im Folgenden reden werde, kommen dorthin, wo % additional options
im obigen Code-Block steht (es heißt “weitere Optionen” auf Deutsch).
(Es ist quasi das gleiche wie SharePic.tex, reduziert aufs Minimum, und ohne die Wellen.)
Hintergrundbild
Mit dem Feld \def \csbackgroundimage{} könnt ihr euch entscheiden, ob ihr
ein Hintergrundbild oder einen einfarbigen Hintergrund haben wollt. Anders als die
bisher eingeführten Felder darf in diesem Feld nicht einfach irgendwas stehen, sondern
es muss ein Pfad zu eurem Hintergrundbild sein. Ein Beispiel-Hintergrundbild befindet
sich im Ordner img (und es handelt sich um eines meiner liebsten Fotos). Wird dieses
eingebunden, würde der zusätzliche Code so aussehen:
...
\def \csbackgroundimage{img/backgroundlr.jpg}
...
Das Bild wird in Originalgröße verwendet, das heißt, ihr könnt die Größe des Sharepics festlegen, indem ihr das gewählte Hintergrundbild mit eurem Lieblings-Graphik-Programm entsprechend skaliert. Ich habe diesen Ansatz aus zwei Gründen gewählt:
- Wenn ihr eine extre große Bilddatei habt, würde die pdf-Datei mehrere MegaBytes groß werden, ohne einen sinnvollen Grund.
- Es wäre eine weitere Option, die bestimmt werden muss.
Vielleicht werde ich es in Zukunft ändern, je nachdem, was sich Nutzende wünschen.
Wie zuvor erklärt, bestimmt normalerweise die Textbreite die Größe des Sharepics, außer, es gibt ein Hintergrundbild. In letzterem Fall bestimmt die Größe jenes Bildes die des SharePics. Auf diese Weise würde Beispiel 1 ergänzt mit folgendem Code:
...
\def \cstxtwidth {15cm}
...
dieses sehr breite Sharepic ergeben:

Während das Beispiel 1 ergänzt mit der gleichen Textbreite und einem Hintergrundbild
...
\def \cstxtwidth {15cm}
\def \csbackgroundimage{img/backgroundlr.jpg}
...
das folgende Sharepic ergibt (Anmerkung: Für die Homepage skaliere ich alle Bilder auf eine Einheitsbreite, sodass die Bilder nicht die Originalgröße repräsentieren.):

Ihr seht, es gibt hier zwei Probleme:
- Ihr müsstet eine andere Textbreite wählen, die zu den Bildausmaßen passen.
- Ihr müsstet auch irgendeinen Farbhintergrund hinter dem Text für einen guten Kontrast wählen.
Hier ist ein einfaches Beispiel, das ganz gut funktioniert:
...
\def \cstxtwidth {6.2cm}
\def \csbackgroundimage{img/backgroundlr.jpg}
\def \cssimpleshadow {x}
...
Daraus ergibt sich folgendes Sharepic:

Für die meisten Hintergründe würde ich die Option \csframeshadow {} empfehlen. Das ist
ein Schatten, der auf jeder Seite 1cm kleiner als das Hintergrundbild ist. Ich würde ihn besonders dann empfehlen,
wenn ihr zusätzlich einen Rahmen auswählt, aber mehr dazu später.
Derzeit wähle ich meist 90dpi als Auflösung für Hintergrundbilder, was sehr wenig ist. Es reicht bisher für meine Bedürfnisse.
Schatten
Es gibt bisher drei Typen von Schatten. Da wir Schatten sehr viel benutzen werden, werde ich hier nur kurz die Befehle erklären.
\cssimpleshadowerzeugt einen Schatten, der nur kaum größer als der Text ist. Es ist quasi ein semitransparentes Rechteck in Hintergrundfarben. Wenn ihr eine Graphik hinter dem Text habt (das ist was anderes als das Hintergrundbild, siehe später), dann ist dieser Schatten passend.\csblurryshadowerzeugt einen Schatten derselben Größe, ebenfalls semitransparent in Hintergrundfarbe, allerdings hat dieser Schatten einen zusätzlichen verschwommenen Schatten. Er ist für die Nutzung mit Hintergrundbildern gedacht. (Eigentlich wollte ich einen Schatten mit verschwommenen Kanten haben, aber ich war unerfolgreich. Ich kriege es nicht hin, verschwommene Rechtecke zu erzeugen, ähnlich wie den verschwommenen blauen Kreis aus der Dokumentation. Der Befehl\tikzfadingmacht Unfug, und wenn ich die Optiontransparentnutze, dann verblasst die Farbe nicht, sondern geht stattdessen in schwarz über. Wenn ihr Ideen habt, sagt gern Bescheid.)\csframeshadowerzeugt einen Schatten wie den zuvor mit dem Extra-Schatten, aber in der Größe des Rahmens, ob ein Rahmen ausgewählt wurde oder nicht. Das heißt, er ist 1cm kleiner als das Resultat-Bild auf jeder Seite. Er ist auch für die Nutzung mit Hintergrundbildern gedacht, besonders, wenn zusätzlich auch ein Rahmen gewählt wird.
Rahmen
Bis jetzt sind Rahmen vielleicht eines der zwei Hauptaufgaben dieser Software. Es gibt die folgenden Optionen:
- Ein schimmernder Rahmen:
\csshinyframe {}. - Ein massiver Rahmen:
\csmassivframe {} - Ein Ornament-Rahmen:
\csornamentframe {} - Ein anderer Ornament-Rahmen mit Ecken:
\csornamentframecorners {} - Ein Fußspur-Rahmen:
\csfeetframe {}
Schimmernder und massiver Rahmen:
Die ersten beiden Optionen sind die einfachsten, denn sie haben nicht so viele
Unter-Optionen. Der schimmernde Rahmen ist leicht mit einem Farb-Gradienten. Der
massive Rahmen wirkt eher schwer, vielleicht wie ein Rahmen eines Gemäldes, und
ihr solltet für eine gute Wirkung eine strahlende Farbe für \mgcolb wählen.
Im folgenden ist auf der linken Seite das Ergebnis für \csshinyframe {x} und auf der rechten das für \def \csmassivframe {x} zu sehen:

Wenn für \mgcol und \mgcolb Farben wie gelb und beige oder braun genutzt werden, macht der
Rahmen as der \csmassivframe-Option den Eindruck, aus Gold zu sein.
Ornament-Rahmen
Ornament-Rahmen bestehen aus Ornamenten aus der pgfornament-Bibliothek. Es gibt Ornamente für Ecken und Kanten. Die Kanten eines Ornament-Rahmens bestehen aus sich wiederholenden Ornamenten.
Ihr könntet für das Kanten-Ornament \csornamentedge{85} wählen und für das Eck-Ornament \csornamentvertex{41}.
Mit den Extra-Optionen \csornamentrepeatx{4} und \csornamentrepeaty{4} lässt sich einstellen, wie
oft sich das Kanten-Ornament wiederholt.
Eine vollständige Liste aller Ornamente mit zugeordneten Nummern befindet sich in der Datei ornamentlist.pdf im
Ordner ‘docs’. Falls ihr Spaß haben wollt, könntet ihr auch 6 Eulen pro Kante als Rahmen nutzen (für das
folgende Bild habe ich eine mittlere Farbe mit mehr Kontrast gewählt):
...
\def \mgcol {b2b7ff}
\def \csornamentedge{123}
\def \csornamentrepeatx{6}
\def \csornamentrepeaty{6}
\def \csornamentframe {x}
...
Das würde das folgende Bild erzeugen:

Eine sinnigere Wahl könnten einfachere Ornamente wie diese sein:
...
\def \csornamentedge{47}
\def \csornamentframe {x}
...
Das folgende Bild zeigt, was der obige Code mit den folgenden Zahleneingaben für \csornamentedge
erzeugen würde:
Obere Zeile, links nach rechts: 47, 49, 84, untere Zeile, links nach rechts: 85, 87, 88.

Ornament-Rahmen mit Ecken funktionieren sehr ähnlich, außer, dass auch ein Eck-Ornament gewählt werden muss. Die Einstellungen sehen so aus:
...
\def \csornamentvertex{41}
\def \csornamentedge{85}
\def \csornamentframecorners {x}
...
Diese Einstellung (zusammen mit denen aus Beispiel 1 für diesen ganzen Abschnitt) erzeugen das folgende Sharepic:

Zum Abschluss des Abschnitts über Ornament-Rahmen möchte ich ein vollständiges Beispiel eines Sharepics zeigen, dass ich tatsächlich so verwende, mit einem Hintergrundbild, das hier heruntergeladen werden kann:
\input {preamble.tex}
%
\def \csquote {»Sowas kann man nicht
abkönnen. Nicht, wenn man keine Herzwesen
hat. Oder wenn man mal lange keine hatte. Und
selbst wenn man es könnte, wieso sollte
es in Ordnung sein, sich in einer Weise zu
verhalten, die andere höchstens abkönnen
könnten, aber die dennoch schlecht
ist?« Myrie sagte dies sachlich und ruhig.}
\def \csauthor {– skalabyrinth, Myrie
Zange\\Die Symmetrie der Schneeflocken}
%
\def \cstxtwidth {5.0cm}
\def \cstxtspacing {1.2em}
%
\def \bgcol {0c2434}
\def \fgcol {a4b9c8}
\def \mgcol {b0c3d4}
\def \mgcolb {74a8fa}
%
\def \csbackgroundimage{mycode/sWASUSbg.png}
%
\def \csmassivframe {x}
\def \csframeshadow {x}
%
\def \csornamentedge{75}
\def \csornamentvertex{127}
\def \csornamentrepeatx{1}
\def \csornamentrepeaty{12}
\def \csornamentframecorners {x}
%
\input {montage.tex}

Fußspur-Rahmen
Schließlich könnt ihr einen Rahmen aus Fußspuren wählen. Dazu habe ich die
TikZ-Bibliothek decorations.footprints verwendet. Aus ihr ergeben sich
die folgenden Optionen:
birdfür Vogel,felis silvestris(was so viel heißt wie “europäische Wildkatze”),gnomefür Gnom,- und
humanfür Mensch (was der Default ist, das heißt: Wenn ihr irgendeinen anderen Text in die Klammern setzt als eines der in den ersten Stichpunkten aufgeführten Wörter, wird es ein Menschen-Fußspur-Rahmen.)
Der Beispielcode 1 ergänzt mit diesem Befehl
...
\def \csfeetframe {human}
...
würde folgendes Sharepic ergeben:

Alle anderen, von links nach rechts: Vogel, felis silvestris und Gnom, sehen so aus:

Symbole und Graphiken hinter dem Text
Worum geht es?
In diesem Abschnitt gehe ich Dinge ein bisschen anders an als im letzten. Statt alles der Reihe nach durchzugehen, werde ich meine Coding-Ziele darlegen und erzählen, wie ich zurechtkam. Ich denke, das wird euch einen guten Eindruck verschaffen sowohl, wie die Software funktioniert, als auch wie sie zustande kam.
Graphik hinter dem Text
Ich habe das Projekt zunächst mit dem Ziel begonnen, ein SharePic nachzuahmen, das mit der Software Canva erstellt worden ist. Ähnlich, aber besser. Das Sharepic bestand aus:
- einem Text, einem Titel der Geschichte und einem Autory,
- dreimal der gleichen abstrakten Form zwischen Tropfen und Welle in goldenen Farben (dazu kommen wir später),
- einem goldenen Rahmen,
- und hinter dem Text war ein Dolch in einfarbiger Line-Art, teils hinter einer semitransparenten grünen Fläche, um den Text mehr Kontrast zu schenken.
Mein erster Zwischenschritt war, diesen Dolch mit einem Farb-Auswahl-Tool aus dem Sharepic zu extrahieren. Ich
habe ihn ausgeschnitten, neu eingefärbt, um die veränderten Farben durch die Überschneidung mit dem semitransparenten
Layer zu reparieren, und schließlich habe ich ihn hinter meinen Text als Bild ins Sharepic eingefügt. Ich werde
das Ergebnis nicht zeigen, weil ich keine Ahnung über Lizensen bezüglich dieses Bildes habe. Im nächsten
Schritt habe ich mit krita selbst einen Dolch gemalt, an dem ich alle Rechte habe, um ihn hinter dem Text
einzufügen. (Aus diesem Grund findet ihr eine Datei dolch.png mit einer sehr unprofessionell gezeichneten
Beispiel-Graphik im Ordner ‘img’.) Es ist nicht schön, aber so sieht’s aus:
Beispiel Code 1, ergänzt mit diesem Zeilen:
...
\def \csgraphic {img/dolch.png}
\def \cssimpleshadow {x}
\def \csshinyframe {x}
...

Wie dargelegt, kann mit der Option \csgraphic eine Hintergrundgrafik festgelegt
werden, die hinter dem Text erscheint. Ähnlich wie bei
\csbackgroundimage darf nicht einfach irgendwas im Feld stehen, sondern der Pfad
zur Bilddatei. Im Gegensatz zu \csbackgroundimage bestimmt die
Option \csgraphic nicht die Größe des Bildes, und es gibt sogar eine Option, um
die Größe der Grafik festzulegen:
\def \graphicSize {8cm}
8cm ist eine gute Wahl für Zitate, die nicht extrem lang sind, also ist diese Breite als Default festgelegt.
Unicode-Symbole hinter dem Text
Die Grafik hinter dem Text war einfarbig, und das brachte mich auf
eine Idee: Es gibt ein Dolch-Emoji, und es gibt Fonts, in denen alle Emoji
in schwarz-weiß encodet sind (allerdings habe ich später herausfinden müssen,
dass sie nicht einfach zu finden sind). Meine Idee war, eine Option zu bauen,
Unicode-Symbole hinter dem Text zu platzieren, gedacht für einfarbige
Emojis. Das war ein Pfad mit vielen, vielen Stunden Suche ohne eine schöne,
einfache Lösung. (Auf dem Weg habe ich beschlossen, zu lualatex zu wechseln, statt
weiterhin pdflatex als Kompilations-Tool zu nutzen, weil es vielversprechend klang,
dass lualatex mit mehr Optionen zu Fonts und Symbolen daherkommt, aber am Ende
hat es nicht geholfen. Ich bin trotzdem bei lualatex geblieben, weil die
Software so noch ähnlicher zu SPBuchsatz funktioniert.)
Zuerst habe ich allerdings tatsächlich eine Möglichkeit gebaut, Unicode-Symbole hinter den Text zu setzen, – nur wenn diese im Font enthalten sind –, und zwar so:
...
\def \csbgsymbol {†}
\def \mgcol {e1c062} % hellgelb
\def \csbgsymbolangl {20}
\def \cssimpleshadow {x}
\def \csshinyframe {x}
...

In den Befehl \csbgsymbol kann ein Unicode-Symbol ge-copy-pasted werden, das
hinter dem Text gezeigt werden soll. Leider habe ich nicht viele gefunden, die mit den
typischen LaTeX-Fonts funktionieren. Tatsächlich nur:
†, ‡ ∢.
Das erste heißt tatsächlich Dolch, und weil ein Dolch eine Option war, die ich wollte, habe ich diesen Teil des Codes behalten.
Der Befehl \csbgsymbolangl rotiert das Symbol. Die Einheit ist so, dass 360 eine
volle Rotation bedeutet, und die Drehung geht gegen den Uhrzeigersinn.
Die anderen Befehle sind zuvor schon erklärt worden.
TikZ- und Marvo-Symbole hinter dem Text
Mein Problem bestand fort, einen Weg zu finden, Unicode-Symbole mit einfarbigen Emojis hinter dem Text zu platzieren. Ich wusste, dass Minecraft ein Font mit einfarbigen Emojis hat, aber dieses Font ist höchstwahrscheinlich nicht offen und ich weiß auch nicht, wie ich ihn in LaTeX laden könnte.
Während der Suche stolperte ich über zwei Bibliotheken mit hübschen Symbolen:
- marvosym (Dokumentation für marvosym),
- tikzsymbols (Dokumentation für tikzsymbols).
Beide haben einen Befehl für \Coffeecup (Kaffee-Tasse), das
ein Symbol erzeugt, das entsprechend eine Kaffee-Tasse darstellt. Um
mit diesen Symbolen zu arbeiten, wird nicht das Symbol copy-pasted, sondern
stattdessen der Befehl für das jeweilige Symbol eingefügt, wie hier (das
ist der gleiche Code wie oben, nur das Dolch-Symbol ist durch den
\Coffeecup-Befehl ausgetauscht):
...
\def \csbgsymbol {\Coffeecup}
\def \mgcol {e1c062} % hellgelb
\def \csbgsymbolangl {20}
\def \cssimpleshadow {x}
\def \csshinyframe {x}
...

Es gibt allerlei Symbole. Ihr könnt in die Dokumentationen schauen, um eine vollständige Liste zu finden. Aber hier sind einige, die ich für besonders dienlich halte:
Aus der MarvoSym-Bibliothek, von links nach rechts: \Football, \Bicycle, \Moon, \Mercury (und die anderen Planeten),
\Mundus und \Bat.

Und aus der TikZSym-Bibliothek, links nach rechts: \Heart, \Candle, \Coffeecup, \Fire, \Tribar, \Snowman.

Musik-Symbole hinter dem Text
Ich habe ein anderes ToDo vorziehen wollen, um später zu Symbolen zurückzukehren: Ich wollte Musik-Notation als Dekoration haben. Da habe ich mir überlegt, Musik-Notation eignet sich auch als Symbol hinter dem Text.
Also habe ich die musicography- Bibliothek geladen, die Viertel, Achtel, Schlüssel und
all sowas enthält. Aber für den Violin- und Bassschlüssel waren es leider nicht einfach
Befehle. Siehe
musicography-Dokumentation für
Einzelheiten.
Ich habe einen Befehl für einen sinnvoll großen Violin- und Bassschlüssel aus der Bibliothek zusammengebastelt, sodass diese nun auch als Symbol hinter dem Text genutzt werden können.
...
\def \csbgsymbol {\musViolinKey}
\def \mgcol {e1c062} % hellgelb
\def \cssimpleshadow {x}
\def \csshinyframe {x}
...

Hier wieder eine Auswahl nützlicher Symbole aus der musicography-Bibliothek, links nach rechts: \musFlat,
\musSharp, \musNatural, \musWhole, \musHalf, \musQuarter, \musEighth, \musHalfDotted, \musQuarterDotted, \musViolinKey, \musBassKey.

Fortgeschrittener Trick: Wenn ihr weitere Symbole wie die Notenschlüssel haben möchtet, die nicht
mit einem einfachen Befehl funktionieren, könnt ihr einen Blick in die Präambel preamble.tex
werfen. Ich habe zum Beispiel diese Code-Zeilen geschrieben, um den Violinschlüssel-Befehl \musViolinKey
zu definieren:
\NewDocumentCommand{\musViolinKey}{}
{\musSymbol{0.955em}{0.55ex}{0pt}{\symbol{71}}}
Ich habe die Zeile aus der Doku kopiert und etwas angepasst, um ihn zu erhalten. Ihr könnt auf ähnliche Art eure eigenen Befehle mit anderen Zahlen basteln.
Allerdings: Wenn ihr die Software neu herunterladet, dann müsstet ihr entsprechend preamble.tex
jedes Mal wieder anpassen. Wenn ihr euer Symbol definiert habt, schickt mir gern die Code-Zeilen
und ich werde sie dem Code dauerhaft beifügen. (Das gleiche gilt für selbstgebaute Ornament-Symbole,
wie ich sehr bald erklären werde.)
Ding-Symbole hinter dem Text
Ich kehrte zurück zur Suche nach einer Lösung für Emoji-Symbole, für einen Font für LaTeX für solche in einfarbig, hinter dem Text. Unerfolgreich. Ich habe es sogar hingekriegt, Noto-Fonts mit Emojis zu nutzen, aber diese waren so bunt, und ich mochte das nicht. Der Font dejavu hat einige einfarbige Emojis, aber es waren nur Smilys.
Aber auf meiner Suche stolperte ich als nächstes über pifont mit dem Befehl ding. Diese
Möglichkeit bietet wenigstens einige Unicode-Symbole, die vorher nicht zugänglich waren.
Der Code sieht dann so aus:
...
\def \csbgsymbol {\ding{73}}
\def \mgcol {e1c062} % hellgelb
\def \cssimpleshadow {x}
\def \csshinyframe {x}
...

Ich mag diese Implementierung nicht sonderlich, weil man in einer Tabelle nachschauen muss, welches Symbol welche Nummer hat, und weil es ein Befehl ist, der in einen anderen Befehl eingefügt werden muss, in der Definitions-Datei. Ich wollte die Software einfacher halten. Aber so ist es halt. Hier ist eine Liste nützlicher Symbole:
- Stifte und Federn: 46: ✎, 47: ✏, 48: ✐, 49: ✑, 50: ✒,
- Symbole mit 4-Symmetrie: 66: ✢, 67: ✣, 68: ✤, 69: ✥, 70: ✦, 71: ✧,
- Fünfzackige Sterne: 72: ★, 73: ✩, 74: ✪, 75: ✫, 76: ✬, 77: ✭, 78: ✮, 79: ✯, 80: ✰,
- Mehrzackige Sterne und Sonnen: 82: ✲, 83: ✳, 84: ✴, 85: ✵, 86: ✶, 87: ✷, 88: ✸, 89: ✹, 90: ✺,
- Andere sternartige Symbole: 91: ✻, 92: ✼, 93: ✽, 94: ✾, 95: ✿, 96: ❀, 97: ❁, 98: ❂, 99: ❃,
- Schneeflocken und ähnliche Symbole: 100: ❄,101: ❅,102: ❆,103: ❈,104: ❉,105: ❊,106: ❋,107: ❇.
Weitere ding-Symbole können auf Wikipedia eingesehen werden.
Fazit zu Symbolen hinter dem Text
Ihr seht, mit dem Befehl \cssymbol können auf allerlei Arten
Symbole hinter den Text platziert werden. Die drei verschiedenen Notationen
sehen so aus:
\def \cssymbol{†},\def \cssymbol{\Coffeecup}oder\def \cssymbol{\musViolinKey},\def \cssymbol{\ding{73}}.
Und noch mehr: Ornamente hinter dem Text
In der Ornament-Bibliothek (im Abschnitt über Rahmen bereits eingeführt) gibt
es wunderschöne Symbole, und ich zögerte nicht, auch diese auf ähnliche Art
wie die Musik-Symbole hinter den Text zu setzen. Ich wollte auch hierfür
das Feld \cssymbol nutzen, aber das hat nicht gut geklappt, weil der
Code dahinter die Ornament-Symbole auf falsche Weise skaliert, das sieht
nicht gut aus. Während es mit allen anderen Symbolen gut geht, wird bei
den Ornament-Symbolen irgendwie die Outline mit-skaliert. Also musste
ich dafür einen anderen Weg basteln, um Ornamente anders zu skalieren, so
wie es die Bibliothek vorsieht.
Ähnlich zu Musik-Notation habe ich neue Befehle für die Ornament-Symbole in der Präambel gebaut. Sie können so genutzt werden:
...
\def \csornament {\ornWatch}
\def \graphicSize {5cm}
\def \mgcol {e1c062} % hellgelb
\def \cssimpleshadow {x}
\def \csshinyframe {x}
...

Vielleicht habt ihr bemerkt, dass ich die Zeile \def \graphicSize {5cm} zum
Code hinzugefügt habe. Die Grafik-Größe bestimmt auch die Breite des Ornaments hinter
dem Text.
Hier ein Bild aller eingebauten Ornament-Symbole, die in der \csornament-Option genutzt werden können, von links nach rechts:
\ornLeaf, \ornWildRose, \ornWildFlower, \ornOldFlower,
\ornDove, \ornButterfly, \ornOwl, \ornBird, \ornFish, \ornHorse, \ornBlackHorse
\ornShoe, \ornQuill, \ornWatch, \ornShip, \ornTophat, \ornHat.

Fortgeschrittener Trick: Wenn ihr ein anderes Symbol aus der Ornament-Bibliothek
haben wollt, sagen wir, ein Schwein (Englisch: pig), dann schaut in die Präambel preamble.tex. Ich
habe zum Beispiel diese Code-Zeilen genutzt, um den Befehl für das
Blatt \ornLeaf zu definieren:
\NewDocumentCommand{\ornLeaf}{}
{\pgfornament[color=mgcol,width=\graphicSize]{1}}
Ihr könnt in die Datei ornamentlist.pdf im Ordner ‘docs’ nach der Nummer eures gewünschten
Ornaments sehen, sagen wir das Schwein, das die Nummer 111 hat, und diese Zeile hinzufügen:
\NewDocumentCommand{\ornPig}{}
{\pgfornament[color=mgcol,width=\graphicSize]{111}}
Auf diese Art hättet ihr erfolgreich den Befehl \ornPig gebaut, und ihr könnt ihn
in \csornament nutzen.
Allerdings: Mit jedem neuen Download der Software müsstet ihr die Präambel wieder anpassen. Wenn ihr euer Symbol kreiert habt, schickt mir gern die Zeilen und ich füge sie dem Code dauerhaft hinzu.
Fortgeschritten: Eigene Dekoration hinter dem Text
Wenn ihr euch mutig fühlt, könnt ihr euren eigenen Code bauen, indem ihr zum Beispiel Dateien
aus dem Ordner decorations in euer eigenes Verzeichnis (z. B. ‘mycode’) kopiert und verändert. Es
gibt sogar einige Dateien, die für diesen Zweck vorgesehen sind: Ihr könntet zum Beispiel die
Datei cscustomsymbolbehindtext.tex in euren Ordner mycode kopieren und es auf diese
Art in euer sharepic laden:
...
\def \cscustomdecorationbehind {mycode/cscustomsymbolbehindtext.tex}
\def \cssimpleshadow {x}
\def \csshinyframe {x}
...
Das würde folgendes Sharepic erzeugen:

Der Inhalt der Datei cscustomsymbolbehindtext.tex ist wie folgt:
% A custom symbol behind the text: work in progress.
% The coordinates should not be dependent on the corners
% *** A butterfly behind the text ***
% #1: coodinates of center
% #2: size (approximately)
% #3: angle
% #4: color
% #5: left or right
\butterfly{5.0cm,-7.0cm}{5.5}{40}{green!80!white}{left}
Übersetzung der Kommentare:
% Ein eigenes Symbol hinter dem Text: Work in Progress.
% Die Koordinaten sollten nicht abhängig von den Ecken sein.
% *** Ein Schmetterling hinter dem Text***
% #1: Koordinaten der Mitte
% #2: Größe (ungefähr)
% #3: Drehwinkel
% #4: Farbe
% #5: left für links, oder right für rechts
Alle Zeilen, die mit einem % beginnen, sind Kommentare, das heißt, sie haben keinen
Einfluss auf das Ergebnis. Nur Erklärung. Das Bedeutet, eigentlich besteht
die Datei aus einer eizigen Code-Zeile:
\butterfly{5.0cm,-7.0cm}{5.5}{40}{green!80!white}{left}
(Schmetterling heißt Butterlfy auf Englisch.) Ihr könnt die Farbe ändern, die Größe, den Winkel, und so weiter, und auf diese Art euer eigenes Symbol hinter dem Text erzeugen. Ihr könnt aus anderen Dateien im Ordner ‘decorations’ Zeilen in diese Datei kopieren. Wenn ihr in eurer eigenen Kopie in eurem eigenen Ordner arbeitet, verliert ihr auch eure Implementierungen nicht, wenn ihr den Rest bei einer neuen Version neu herunterladet, während ihr den eigenen Ordner behaltet.
Wenn ihr etwas hübsches gebastelt habt, schickt mir gern das Ergebnis, dann werde ich es vielleicht dem Code hinzufügen und euch erwähnen, wenn ihr wollt.
Randnotiz: Das Code-Beispiel mit dem Schmetterling ist ein Work In Progress. Ich möchte eine Möglichkeit bauen, als Dekoration auch die Grafiken aus den nächsten Abschnitten hinter den Text zu setzen. Die derzeitige Implementierung ist aber noch nicht sinnvoll, weil die Grafik zentriert hinter dem Text sein sollte, und nicht zur Mitte hin geschoben von der oberen linken Ecke aus. Wahrscheinlich werde ich eine Option ‘center’ bauen, die in die geschweiften Klammern des Schmetterling-Befehls geschrieben wird.
Beispiel-Code 2
Für alle folgenden Beispiele werde ich weiterhin das gleiche Zitat- und Autory-Feld benutzen. Im folgenden Abschnitt über Vordergrund-Dekorationen werde ich andere Farben verwenden: ein Blaugrün als Hintergrund und ein sehr helles Grün als Vordergrundfarbe, und Braun- und Dunkelgelbtöne als Zwischenfarben um einen Goldeffekt zu erzeugen.
Das folgende Bild zeigt die Farben:

Manchmal werde ich die Vorder- und Hintergrundfarbe vertauschen, um den Einfluss davon auf die Dekoration zu veranschaulichen.
Hier sind die Einstellungen:
\input {preamble.tex}
\def \csquote {»Sowas kann man nicht
abkönnen. Nicht, wenn man keine Herzwesen
hat. Oder wenn man mal lange keine hatte. Und
selbst wenn man es könnte, wieso sollte
es in Ordnung sein, sich in einer Weise zu
verhalten, die andere höchstens abkönnen
könnten, aber die dennoch schlecht
ist?« Myrie sagte dies sachlich und ruhig.}
\def \csauthor {– skalabyrinth, Myrie
Zange\\Die Symmetrie der Schneeflocken}
\def \bgcol {00302b}
\def \fgcol {d1fde7}
\def \mgcol {724f03}
\def \mgcolb {c8c065}
...
% additional options
...
\input {montage.tex}
Ich werde Beispiel 2 schreiben, um mich hierauf zu beziehen. Die zusätzlichen Optionen, über
die ich reden werde, werden dort eingefügt, wo % additional options im obigen
Code-Block steht.
Vordergrund-Dekoration
Vordergrund-Dekorationen sind ähnlich wie die Symbole hinter dem Text, aber
sie sind für den Vordergrund gedacht. Sie sind weniger zurückhaltend, glitzern mehr, haben
mehr Details und einige haben sogar mehr als eine Farbe. Einige, wie den Schmetterling, habe
ich selbst implementiert, indem ich Befehle für die Linien und Ausfüll-Optionen aus
der Bibliothek TikZ passend zusammengebaut habe. TikZ ist sowas wie eine Programmiersprache,
um Vektor-Graphiken auf sehr lesbare Art aus Befehlen zusammenzusetzen, und ich liebe es
sehr.
Aber diese Dokumentation soll hauptsächlich darum gehen, wie CiteSeeing benutzt werden kann und nicht, wie der Code dahinter aussieht. In diesem Abschnitt werde ich euch alle Vordergrund-Dekorationen vorstellen.
Sparkles (Glitzer)
Es gibt (bisher) drei Arten von Sparkles. (Ich kenne keine adequate Übersetzung von Sparkle, es bedeutet so etwas wie Funkel, diese Sterne, die mit sehr langen Spitzen gemalt werden, um darzustellen, das etwas funkelt.)
\cssixsparkles: gedacht für dunkle Hintergründe,\cssixdaysparkles: gedacht für helle Hintergründe,\cssixlightsparkles: ebenfalls für helle Hintergründe gedacht, aber passen auch zu dunklen.
Ihr könnt sie wie folgt setzen:
...
\def \csshinyframe {x}
\def \cssixsparkles {right}
...

(Sparkles wirken mit Rahmen besser, aber gehen auch ohne.)
Wie ihr seht, habe ich die Sterne nicht mit einem ‘x’ eingeschaltet, sondern ‘right’ (Englisch für rechts) in das Feld geschrieben. Wenn ihr irgendetwas anderes als ‘right’ in das Feld schreibt, werden sie auf der linken Seite erscheinen – es ist default. (Vielleicht wird es in Zukunft weitere Optionen geben, aber Sparkels scheinen bisher besser oben links oder rechts gut auszusehen, als unten.)
Das folgende Bild zeigt den Output aller drei Sparkle-Varianten auf der rechten Seite, zusammen mit einem schimmernden Rahmen.

Die rechten und linken Sparkles sehen meiner Ansicht nach gut aus. Vielleicht wirken die rechten etwas fragil. Aber die in der Mitte sind eher für helleren Hintergrund gedacht. Betrachtet dies:
Der Code:
...
\def \fgcol {00302b}
\def \bgcol {d1fde7} % vertauschte Hinter- und Vordergrundfarbe
\def \csshinyframe {x}
\def \cssixdaysparkles {right}
...
ergibt das folgende Sharepic:

Das folgende Bild zeigt das Ergebnis der drei Sparkle-Varianten auf der rechten Seiten mit einem schimmernden Rahmen, aber mit vertauschter Hinter- und Vordergrund-Farbe gegenüber zuvor:

Wie ihr seht, passt die mittlere Option gut zum hellen Farbschema. Das letzte sieht auch ganz gut aus. Aber die ersten Sparkles sind zu dunkel gefärbt und leuchten nicht so hell.
Randnotitz 1: Vielleicht habt ihr nur fünf Sparkle gezählt, während der Befehl behauptet, es wären sechs. Das liegt daran, dass ich nicht so gut zählen kann und ich mich nicht entscheiden konnte, wie ich es korrigieren soll. Sollte ich einen weiteren Sparkle hinzufügen oder den Namen der Option ändern? Also blieb es dabei.
Randnotitz 2: Vielleicht erinnert ihr euch, dass ich im Abschnitt über Schatten behauptet habe, ich wisse nicht, wie ich mit TikZ etwas nach außen hin verblassen lassen kann. Das stimmt weiterhin. Wenn ihr genau hinseht, dann verblasst das schimmernde Weiß des Kreises gar nicht, sondern geht in die Hintergrundfarbe über. Ihr könnt es dort sehen, wo die Sparkle auf dem Rahmen liegen: Der Kreis ist oberhalb des Rahmens. Ich denke, es sieht gut so aus, aber wenn ihr eine Option für das Verblassen findet, sodass es in echte Transparenz verblasst, erzählt es mir!
Abschließend zum Abschnitt über Sparkle möchte ich euch ein vollständiges Beispiel zeigen, dass sehr ähnlich zu einem Sharepic-Design ist, das ich tatsächlich nutze. Nur die Farben sind anders. Die Farben hier sind nämlich die gleichen von zuvor mit getauschter Hinter- und Fordergrundfarbe. Das Hintergrundbild für das Setup kann hier heruntergeladen werden:
\input {preamble.tex}
%
\def \csquote {»Sowas kann man nicht
abkönnen. Nicht, wenn man keine Herzwesen
hat. Oder wenn man mal lange keine hatte. Und
selbst wenn man es könnte, wieso sollte
es in Ordnung sein, sich in einer Weise zu
verhalten, die andere höchstens abkönnen
könnten, aber die dennoch schlecht
ist?« Myrie sagte dies sachlich und ruhig.}
\def \csauthor {– skalabyrinth, Myrie
Zange\\Die Symmetrie der Schneeflocken}
%
\def \cstxtwidth {5.0cm}
\def \cstxtspacing {1.2em}
%
\def \fgcol {00302b}
\def \bgcol {d1fde7}
\def \mgcol {724f03}
\def \mgcolb {c8c065}
%
\def \csbackgroundimage{mycode/sDFDMbg.png}
%
\def \csmassivframe {x}
\def \csframeshadow {x}
%
\def \cssixdaysparkles {right}
%
\input {montage.tex}

Schneeflocken
Schneeflocken funktionieren sehr ähnlich wie Sparkles, außer, dass es nur eine Variante gibt:
...
\def \cssixsnowflakes {left}
...
Zusammen mit Beispiel 2 erzeugt es dieses Sharepic:

Sie sehen wahrscheinlich am besten mit einem blauen oder blau-ähnlichen Farbschema am besten aus. Am Anfang des Artikels ist ein Beispiel.
Kurze Exkursion in den Code
Ich habe bisher den Code, so gut es geht, außenvor gelassen und mache hier eine Ausnahme, weil
dieses Beispiel einen ganz guten Eindruck ermöglicht, was TikZ so kann und wie es funktioniert.
Ihr könnt den Code für die Schneeflocken-Generierung in der Datei ‘snowflakes.tex’ im Ordner ‘src’ (kurz für “source code”, zu Deutsch Quellcode) finden.
Der Kern des Codes mögen diese Zeilen sein:
\shade[
inner color=#5,
outer color=#6,
shading=radial,
opacity=#7,
even odd rule
]
% starts from the outer vertex of the star at t angle
($(ms) + (\angl+0*360/6:\rado) $)
% goes to the inner vertex next to it
-- ($(ms) + (\angl+0*360/6+180/6:\radi)$)
% repeats it for all outer vertexes of the snowflake
\foreach \p in {1,...,5}
{
-- ($(ms) + (\angl+\p*360/6:\rado) $)
-- ($(ms) + (\angl+\p*360/6+180/6:\radi)$)
}
% closes the shape.
-- cycle
% four circles intersecting the star at four differend distances.
(ms) circle (\radi+0.1*\rado)
(ms) circle (\radi+0.2*\rado)
(ms) circle (\radi+0.3*\rado)
(ms) circle (\radi+0.4*\rado);
Ich werde mit euch die einzelnen Zeilen betrachten. Vielleicht mag die folgende Visualisierung beim Verstehen helfen:

Mit \shade wird definiert, dass der definierte geschlossene Pfad danach eine
Füllung mit Farbverlauf bekommt. Ich habe einen radialen Farbverlauf von der inneren
zur äußeren Farbe gewählt, was dazu führt, dass die Form in der Mitte mit einer
Farbe gefüllt ist, die nach außen hin zur anderen übergeht.
Ich habe (ms) als die Koordinaten definiert, die in der Mitte der Schneeflocke
liegt. Wir fangen an, einen sechs-zackigen Stern von der Spitze eines Zacken zu
zeichnen. Dazu gehen um die Länge des äußeren Radius von der Mitte weg, und zwar
im gegebenen Anfangswinkel:
($(ms) + (\angl+0*360/6:\rado) $)
Die Notation (Winkel:Abstand) definiert einen Vektor der Länge Abstand
in die Richtung, in die der Winkel zeigt.
Von dieser Zackenspitze gehen wir zur inneren Ecke. Alle inneren Ecken
liegen auf einem Kreis mit einem inneren Radius, den wir radi nennen. Wir
müssen außerdem zum letzten Winkel 180°/6 hinzuzählen, weil unsere Schneeflocke
eine 6-zählige Symmetrie hat.
-- ($(ms) + (\angl+0*360/6+180/6:\radi)$)
Die Zeichen -- verbinden den letzten Punkt mit dem nächsten.
Anschließend wiederholen wir diesen Vorgang für alle anderen 5 Zacken, jeweils gedreht um ein Sechstel von 360°, mit einer Schleife:
\foreach \p in {1,...,5}
{
-- ($(ms) + (\angl+\p*360/6:\rado) $)
-- ($(ms) + (\angl+\p*360/6+180/6:\radi)$)
}
Der \foreach-Befehl (“for each” heißt “für alle”) wiederholt alles, was
in den folgenden geschweiften Klammern steht für jedes Element aus der
Menge, in diesem Fall {1,...,5}, was wiederum kurz für {1,2,3,4,5} ist. In
dieser Schleife können wir sogar die Variable \p benutzen, die die
Werte 1 bis 5 haben wird.
Das heißt, der obige Code ist kurz für:
-- ($(ms) + (\angl+1*360/6:\rado) $)
-- ($(ms) + (\angl+1*360/6+180/6:\radi)$)
-- ($(ms) + (\angl+2*360/6:\rado) $)
-- ($(ms) + (\angl+2*360/6+180/6:\radi)$)
-- ($(ms) + (\angl+3*360/6:\rado) $)
-- ($(ms) + (\angl+3*360/6+180/6:\radi)$)
-- ($(ms) + (\angl+4*360/6:\rado) $)
-- ($(ms) + (\angl+4*360/6+180/6:\radi)$)
-- ($(ms) + (\angl+5*360/6:\rado) $)
-- ($(ms) + (\angl+5*360/6+180/6:\radi)$)
Und zum Schluss schließen wir den Pfad mit einem --cycle ab, was den ersten
und den letzten Punkt des Pfades verbindet.
Das würde bisher einen einfachen sechs-zackigen Stern zeichnen, nichts weiter.
Nun kommt die Magie ins Spiel, die den Stern in eine Schneeflocke verwandelt:
(ms) circle (\radi+0.1*\rado)
(ms) circle (\radi+0.2*\rado)
(ms) circle (\radi+0.3*\rado)
(ms) circle (\radi+0.4*\rado);
Das Semikolon am Ende beschließt, was alles vom shade-Befehl eingeschlossen
wird. Ich habe die Option even odd rule (zu Deutsch “gerade ungerade Regel”) gesetzt,
was bedeutet, dass die erste geschlossene Form gefüllt wird, die nächste wird gefüllt, aber dort,
wo sie die erste schneidet, wird diese würde unbefüllt, und so weiter. Ich habe vier Kreise
mit wachsendem Radius über den Stern um die Mitte gelegt. Das erzeugt
ein Muster wie dieses:

Zum Schluss wird ein weiterer sechs-zackiger Stern darauf gemalt, den wir nutzen, um aus dem zuvor gemalten eine Schneeflocke auszustanzen. Auf diese Art bekommen wir eine Schneeflocke, die etwas transparenter als die anderen wirkt.
\clip[]
% starts from the outer vertex of the star at angle
($(ms) + (\angl+0*360/6:\rado*\clipr) $)
% goes to the inner vertex next to it
-- ($(ms) + (\angl+0*360/6+180/6:\radi*\clipr)$)
% repeats it for all outer vertexes of the snowflake
\foreach \p in {1,...,6}
{
-- ($(ms) + (\angl+\p*360/6:\rado*\clipr) $)
-- ($(ms) + (\angl+\p*360/6+180/6:\radi*\clipr)$)
}
% closes the shape.
-- cycle;
Für die anderen, etwas helleren Schneeflocken, fügen wir einen weiteren weniger transparenten Stern über den ersten.
Randnotitz: Der Code hat Code-Dopplungen. Es könnte eleganter programmiert sein, wenn ich wüsste, wie man Formen definiert und sowas. Aber ich hab weder Hirn noch Nerv, um es besser zu machen. Es ist okay, denke ich.
Schmetterlinge
Ich habe eine Methode gebaut, um Schmetterlinge irgendwo hinzutun. Ihr könnt einen machen:
...
\def \csbutterfly {right}
...

Oder, wenn ihr einige auf dem Rahmen sitzen haben wollt, gibt es diese Möglichkeit:
...
\def \csmassivframe {x}
\def \csbutterfliesonframe {x}
...

Vielleicht braucht das erzeugen dieser Datei ein wenig länger bei euch. Die Fühler sind teuer in ihrer Berechnung, vermute ich.
Musik-Noten
Der Hauptgrund, weshalb ich die musicography-Bibliothek eingebunden habe, war, um im Vordergrund mit Musik-Noten zu dekorieren. Ich habe Symbole aus dieser genommen und versucht, sie hübsch zueinander passend platzieren. Sie sind in Vordergrundfarben, aber mit den Zwischen-Farbtönen als Schatten.
Hier ein Beispiel, zusammen mit einem schimmernden Rahmen:
...
\def \csshinyframe {x}
\def \csmusnotes {right}
...

Die Noten können mit der Eingabe ‘left’ auch links eingefügt werden.
Qualm und Dampf
Mein erstes Usery-Request war Qualm. Das war nicht einfach, ich geb’s zu, aber ich bin recht glücklich mit dem Ergebnis.
Es gibt Qualm, starken Qualm, Dampf und starken Dampf, der jeweils rechts oder links, oder – Besonderheit hierfür – auf beiden Seiten erscheinen kann!
Ich habe starken Qualm gebastelt, weil es Fälle gibt, in denen mehr Kontrast gebraucht wird, zum Beispiel zusammen mit einem Hintergrundbild.
Diese Code-Ergänzung von Beispiel 2:
...
\def \csshinyframe {x}
\def \cssmoke {left}
\def \csstrongsmoke {right}
...
würde dieses Bild ergeben:

Vielleicht stimmt ihr zu, dass der Qualm links mehr oder weniger natürlich aussieht, während der starke Qualm (strong smoke) auf der rechten Seite überhaupt nicht gut aussieht. Vielleicht wundert ihr euch, in welchem Kontext dieser Qualm überhaupt gut aussehen könnte.
Lasst uns die Hinter- und Vordergrundfarbe vertauschen und ein Hintergrundbild hinzufügen:
...
\def \fgcol {00302b}
\def \bgcol {d1fde7}
\def \csbackgroundimage{mycode/sDFDMbg.png}
\def \cstxtwidth {5.0cm}
\def \cstxtspacing {1.2em}
\def \csframeshadow {x}
\def \csmassivframe {x}
\def \cssmoke {left}
\def \csstrongsmoke {right}
...
Nun sieht das Ergebnis so aus:

Gleiches gilt für Dampf.
Das Bild zeigt die gleichen Ergebnisse wie zuvor, nur mit Dampf. Dafür habe ich fast denselben Code benutzt und nur alle Vorkommnisse der Zeichenkette ‘smoke’ (Rauch) mit ‘steam’ (Dampf) ersetzt, und den massiven statt dem schimmernden Rahmen für beide Fälle genutzt.

Tasse mit Dampf
Weil es nun Dampf gibt, und weil ich Tee sehr mag, habe ich auch eine dampfende Tasse hinzugefügt. Ich
konnte dafür nicht die Kaffee-Tasse mit \Coffeecup aus der TikZ-Symbol-Bibliothek verwenden, weil
die bereits drei geschwungene Linien als Repräsentation von Dampf hat. Außerdem wollte ich eine
bunt gefüllte Tassen.
Ihr könnt meine Kreation mit diesem Code benutzen:
...
\def \csmassivframe {x}
\def \cscupwithsteam {x}
...

Weil sich hier mit bunten Hintergründen dasselbe Problem wie zuvor ergibt, gibt es auch eine zweite Version der Tasse, bei der die Umrandung eine andere Farbe (die Vordergrundfarbe) hat und der Dampf starker Dampf ist. Ich führe den Effekt mit vertauschter Hinter- und Vordergrundfarbe vor:
...
\def \fgcol {00302b}
\def \bgcol {d1fde7}
\def \csmassivframe {x}
\def \csdaycupwithsteam {x}
...

Ein weiteres meiner Beispiele
An dieser Stelle präsentiere ich ein weiteres Beispiel eines Sharepics, das ich tatsächlich so benutze. Ich nutze Musik-Notation als Dekoration, weil der zugehörige Roman ein Konzert als Thema hat, und ich nutze die dampfende Tasse, weil es in dem Roman viel um Gemütlichkeit mit Tee und so geht. Ihr könnt das Hintergrundbild für den Roman hier herunterladen..
Dies ist das Setup:
\input {preamble.tex}
%
\def \csquote {»Sowas kann man nicht
abkönnen. Nicht, wenn man keine Herzwesen
hat. Oder wenn man mal lange keine hatte. Und
selbst wenn man es könnte, wieso sollte
es in Ordnung sein, sich in einer Weise zu
verhalten, die andere höchstens abkönnen
könnten, aber die dennoch schlecht
ist?« Myrie sagte dies sachlich und ruhig.}
\def \csauthor {– skalabyrinth, Myrie
Zange\\Die Symmetrie der Schneeflocken}
%
\def \cstxtwidth {5.3cm}
\def \cstxtspacing {1.5em}
%
\def \bgcol {a2d9ff}
\def \fgcol {760d3f}
\def \mgcol {cea0ef}
\def \mgcolb {cea0ef}
%
\def \csbackgroundimage{mycode/sWENPbg.png}
%
\def \csshinyframe {x}
\def \csframeshadow {x}
\def \csmusnotes {right}
\def \csdaycupwithsteam {x}
\input {montage.tex}
und es erzeugt dieses Bild:

Drei Wellen
Die erste Dekoration, die ich gebaut habe, waren drei Wellen. Oder wie auch immer ich diese Dinge nennen soll … Eine abstrakte Form, die wie eine Mischung aus Welle und um 90° gedrehtem Tropfen aussieht. Die Form ist ähnlich zu einer, die ich in einem Canva Sharepic gesehen habe. Sie war sehr interessant zu bauen.
Schaut sie euch hier an:
...
\def \csmassivframe {x}
\def \csthreewaves {x}
...

Das ist quasi alles, was es an Vordergrund-Deko gibt.
(Randnotitz: Die dritte Wellenform verblasst tatsächlich zu Transparenz, wovon ich zuvor behauptet habe, dass ich das nicht hinkriege. Aber es ist ein anderer Fall hier: Sie verblasst von links nach rechts. Ich finde nicht heraus, wie ich etwas radial, oder in irgendeiner anderen Richtung als Nord, Süd, Ost oder West verblassen lasse.)
Wenn ihr interessiert seid, wie ich diese Form gebaut habe, mag euch vielleicht das folgende Bild erfreuen:

Hier findet ihr fünf Punkte und Tangenten, die durch diese Punkte verlaufen, die die Form definieren. Es ist eine Bézier-Kurve.
Ihr könnt mit den Hilfslinien im Code herumspielen, wenn ihr wollt.
Eigene Vordergrund-Dekorationen
Ich habe das letzte Bild erzeugt, indem ich die Datei cscustomwaves.tex aus
dem Ordner ‘decorations’ in einen eigenen Ordner ‘mycode’ kopiert habe und die
ergänzenden Einstellungen wie folgt angepasst habe:
...
\def \csmassivframe {x}
\def \cscustomdecoration {mycode/cscustomwaves.tex}
...
Die Datei cscustomwaves.tex enthält außer Kommentaren nur diese Zeile:
\decodrophelp{(b.south west) + (7.6cm,2.35cm)}{-3.0cm,-0.8cm}
{-5.9cm, 0.4cm}{0.60cm}{mgcolb}{mgcol}{0.3}{0.9}{}
Wenn ihr bloß \decodrop ohne das help (zu Deutsch: Hilfe) schreiben würdet, käme
die selbe Form ohne Beschriftung heraus.
Ihr könnt eure eigenen Dinge basteln, indem ihr beliebige Dekoration in euren Ordner
kopiert und mit dem \cscustomdecoration-Befehl ladet. Die Dateien
im Ordner ‘decorations’, die den Namen custom (für eigenes) enthalten, sind
für solche Zwecke gedacht. Für mehr Informationen schaut in den Abschnitt über
eigene Hintergrund-Dekorationen. Die zwei Befehle funktionieren unterscheiden
sich nur darin, dass die Hintergrunddekorationen hinter Text, Rahmen und
Schatten gehen, und Vordergrunddekorationen vor alles davon.
Winziges Buch oder Cover
Endlich! Die letzte Dekoration, die ich gebaut habe, ist ein winziges Buchcover oder ein winziges Buch. Ihr könnt das Cover eures Buchs skalieren, als winziges Bild speichern und es so auf euer Sharepic setzen:
...
\def \csmassivframe {x}
\def \cstinybook {img/tinycover.png}
\def \cstinybookcoverangl {-5}
...

(Example Book Cover heißt Beispielbuch-Cover auf Deutsch.)
Ihr könnt das Bild tinycover.png aus dem Ordner ‘img’ als Orientierung
nehmen, um euer Cover auf ähnliche Art zu skalieren.
Ihr könnt auch einen anderen Drehwinkel als -5 auswählen.
Ihr könnt auch den Befehl \cstinycover statt cstinybook nehmen, dann sieht das Ergebnis so aus:

Statt eines Fazits
Ich bin fix und fertig. Ich hoffe, ihr hattet wenigstens etwas Spaß oder es war auf andere Art hilfreich. Statt eines typischen Fazits werde ich euch einige Outtakes während meiner Herumprogrammiererei zeigen.
Als ich gelernt habe Bézier-Kurven sinnvoll zu nutzen:

Ihr seht ein hellgelbes Quadrat, wie ich es oft male, um zu sehen, ob ich überhaupt male. Außerdem eine gelbe gerade Linie von dort nach Nordosten. Zwei Punkte entlang dieser Linie haben Namen beza und bezb. Und dann ist da eine dritte, schwarze Linie. Sehr wahrscheinlich habe ich sie vom Punkt, wo auch die gelbe Linie beginnt, angefangen und horizontal nach links gemalt. Aber ich habe ihr gesagt, du, auf dem Weg dahin bieg dich mal in Richtung beza und bezb. Und die schwarze Linie tat es. Entsprechend macht sie einen Bogen zu ihrer rechten Seite.
Unten seht ihr eine Tropfenartige Form, die noch nichts wellenförmiges an sich hat. Außerdem verlässt sie den grünen Hintergrund, und das Bild wird noch nicht auf den Hintergrund runtergeschnitten, was zur Folge hat, dass da ein weißer Streifen unten auf dem Sharepic ist.
Unwissend war ich damals noch. Ich hab viel über Bézier-Kurven und Zuschneiden in den nächsten Stunden Programmiererei gelernt.
Ihr seht außerdem, dass ich viele Teile des Text und Hintergrunds ver-unscharft habe. Damals habe ich einen Text und eine Hintergrundgrafik benutzt, zu der ich keine Rechte besitze.
Als ich realisierte, dass ich keine absoluten Koordinaten nutzen sollte, sondern relative

Einige Zeit nachdem ich die Sparkle, Schneeflocken und Wellenformen gebaut habe, habe ich realisiert, dass ich absolute Koordinaten genutzt habe, um sie zu platzieren. Eine absolute Größe für die Formen zu wählen, ist keine schlechte Entscheidung, weil der Text eh nicht zu breit werden sollte. Wenn der Text noch lesbar bleibt, sind die Symbole noch groß genug und umgekehrt. Aber wenn der Text zu lang wird (ich habe mein Lieblingszitat mehrfach aneinandergehängt, um einen langen Text zu erzeugen), dann spielt es eine Rolle, wohin die Formen platziert werden. Sie müssen relativ zum Rahmen und nicht relativ zur Mitte gesetzt werden.
Ich habe den Fehler korrigiert.
Als ich verschiedene Farb-Schemata probiert habe

Ich wollte nur rausfinden, ob meine Dekorationen auch mit helleren Farb-Schemata gut herauskommen. Die Sparkles, die ich zuerst implementiert habe, taten es nicht. Aber die drei Wellen schon, denke ich, selbst mit diesem fürchterlichen Farbschema!
Es ist ein so dermaßen fürchterliches Sharepic, dass ich es euch irgendwie des möglichen Gekicheres wegen vorführen wollte.
Die Sonne
Dies ist eigentlich kein Scheitern:

Ich habe die Zackenanzahl einstellbar programmiert. Ihr könnt den Code für die Sparkles also nutzen, um Sparkles mit mehr als vier Zacken zu erzeugen:
% *** SIX SPARKLES ***
% #1: coodinates of center
% #2: number of vertices
% #3: inner radius: the radius of the circle where the inner vertices are placed.
% #4: outer radius, see above.
% #5: start angle: where the first outer vertex is placed from the center.
% #6: color
% #7: background color: transparency isn't easily provided by TikZ's shading library.
% #8: left or right
\sparkle{2.5cm,-2.2cm}{17}{0.045}{0.45}{10}{mgcol}{bgcol}{right}
Übersetzung:
*** SECHS SPARKLES ***
% #1: Koordinaten der Mitte
% #2: Anzahl der Ecken
% #3: Innerer Radius: Der Radius des Kreises, auf dem die inneren Ecken liegen.
% #4: Äußerer Radius, siehe oben.
% #5: Startwinkel: Wo die erste äußere Ecke von der Mitte aus liegt.
% #6: Farbe
% #7: Hintergrundfarbe: Transparenz geht mit TikZ nicht gut.
% #8: left für links oder right für right
Das zweite Feld ist für die Anzahl der Stacheln. Ihr könnt auch andere Farben und so weiter wählen. Habt Spaß, damit herumzuspielen, wenn ihr möchtet, die Option für eigene Hinter- oder Vordergrund-Dekorationen dafür benutzend.
Das Ende
Und nun überlasse ich euch diese Sache.