CiteSeeing (english)

What is this about?

CiteSeeing is a program intended to create citations from books on decorated background as a sharepic for social media. It is inspired by Canva but using LaTeX and also by SPBuchsatz by Karl-Heinz Zimmer, a LaTeX based software to typeset German books.

Link to the software with installation guide and such.

If you come from SPBuchsatz, a software to typeset German books, you might already be familiar with the concept of CiteSeeing since it works in a very similar way.

Some neat examples

Here you see some examples for sharepics I create with this software. They will come up in this article when you know the settings to make them.

Three sharepics of the same dimensions, like an A-format upright. All three show the same favorite citation you will get to know soon. The first has a stormy sea as background. The frame is made of ornaments. There are sailing ships part of the ornament. The text is light blue on a dark blue shadow. The second also has the sea as background but the art style is very clear with a line art. Most part of the digital painting is below the sea with sunrays breaking through the surface. There is also a sailing ship on the background. The text is written in dark green on a very light green background, that is 1cm smaller than the background image on each side, and semitransparent. There are golden sparkles top right. And there is a golden frame. The third background is a scene with a glass tea pot on a table, but there is also a pink tiny winged chair with a person in it on the table. The text is dark pink on light blue semitransparent background, also 1cm smaller than the background image, and framed in a light pink rectangle. There are dark pink musical notations top right and a steaming shiny pink cup bottom right.

Main Drawbacks

CiteSeeing produces files of type pdf, not images. You will have to convert the images. You can use gimp, krita, most other software to create or modify images, or a converting tool like magick. I use

magick -density 300 input.pdf output.png

on command line.

Do you need help?

If you have trouble with this software, please don’t hesitate to ask me. I am a patient person and like to explain. My benefit is: I find bugs and know that my software is used. I learn how to make my software more user friendly.

Maybe at some point, when too many people use this software, I will limit this offer somehow, but for now feel free to ask.

You may also wish for more comments or explanations here or in the code.

You even may ask for features but that will take a while which even might be forever, depending on my time and the wish.

Presets (technical)

You create a sharepic from a file where you make your choices for colors, decorations, and text. A minimal file, where you choose nothing yourself, looks like this:

\input {preamble.tex}
\input {montage.tex}

It creates the following image:

A dark blue background with very very light green text, saying, Please enter your citation to \csquote in your copy of SharePic.tex. And the same Text in German.

This is because there are some minimal presets made (in defaultdefinitions.tex). To be precise it

  • unsets every decoration,
  • defines the text like that in the image above,
  • defines four colors (from which you only see two in the image above, the foreground and the background color, since there are no decorations),
  • defines text width and line spacing,
  • and defines some specifics of decorations in case you choose them but don’t fineadjust them yourself.

A reasonable example

The file SharePic.tex however is a file where every choice, you can make, is explained, and it creates this reasonable SharePic with my favorite quote (I only changed the language of the content of ‘\csquote’ and ‘\csauthor’ for this English article):

A SharePic with dark blue background, a shimmering blue frame, six snowflakes top right and three wave or drop like decorations on the bottom in different shades of blue. The text is light blue and says: »You cannot just deal with such a thing. You can't if you don't have friends. Or if you didn't have friends for a long time. And even if you could deal with it, why should it be okay to behave in a way that others could, at best, deal with, but is bad regardless?« Myrie said this in a matter-of-fact, calm tone. By skalabyrinth, Myrie Pliers, The Symmetry Of Snowflakes. It is my favorite quote and I will not repeat the text in the image descriptions but just refer to it as my favorite quote.

You can copy this file to MySharePic.tex or any other name you like, modify its content and create a sharepic in your own design. Probably that is all you need to know, but this article is more verbose in its explanations and also shows examples.

Every feature explained with example sharepics

In this long section I will introduce every feature with examples, explanations and special tricks.

Basic Features

Colors

Colors can be defined via html code. If you use krita or gimp and choose a color (in krita via the color selection in the menu), you will be shown the html code in the selection tool (a six digit number probably preceded by a #). You can also use your favorite search engine and search for something like “html color picker” and use one of the websites you find. Be sure to do your research on accessible contrasts and colors for colorblind people.

I usually use more or less the same color in different shades and a contrast for text on background, that is as high as possible while it still doesn’t hurt my eyes.

There are four colors for you to define:

A background color, used for background and decoration:

\def \bgcol {001729}

A foreground color, used for text and decoration:

\def \fgcol {79b5e4}

And two additional colors also for decoration:

\def \mgcol {0c2f4a}
\def \mgcolb {037bdb}

The codes for the colors above would be the colors depicted in the following image:

text: \bgcol, followed by a dark blue color, not much saturated, text: \fgcol, followed by a very light blue color, text: \mgcol, followed by a color between the others, and text: \mgcolb, followed by a rather bright blue color.

If you want to create a sharepic with just a background in one color and your text in another color, the following file would be sufficient:

\input {preamble.tex}
\def \csquote {»You cannot just deal
with such a thing. You can't if you
don't have friends. Or if you didn't
have friends for a long time. And even
if you could deal with it, why should
it be okay to behave in a way that
others could, at best, deal with, but
is bad regardless?« Myrie said this
in a matter-of-fact, calm tone.}
\def \bgcol {001729}
\def \fgcol {79b5e4}
\input {montage.tex}

and it would create the following image:

My favorite quote in light blue letters on dark blue background.

If you add some decoration the other two colors get into the game. For example you could choose the droplet/wave like forms from the example above by selecting \csthreewaves with an ‘x’ (or basically an arbitrary input other then leaving it empty) alongside with the other two colors:

...
\def \mgcol {0c2f4a}
\def \mgcolb {037bdb}
\def \csthreewaves {x}
...

(or \def \csthreewaves {fleatherfluff} if you want – the exact input has no effect). It would create the following file:

The same sharepic as before but with three wave forms of similar shape but different sizes, overlapping each other, partially transparent. The colors are different medium blues and white.

If you switch mgcol and mgcolb like this

...
\def \mgcolb {0c2f4a}
\def \mgcol {037bdb}
\def \csthreewaves {x}
...

you get this sharepic:

The same sharepic as before but the middle wave is lighter on its right and the upper behind wave is darker blue on the right. It is the other way around at the left end of the shapes.

Maybe this gives you an idea what effects these additional two colors could have.

Text, Author, Title, Heading

Maybe you remember that you can define your quote using \def \csquote {}: You write your quote inbetween the brakes like this:

...
\def \csquote {»You cannot just deal
with such a thing. You can't if you
don't have friends. Or if you didn't
have friends for a long time. And even
if you could deal with it, why should
it be okay to behave in a way that
others could, at best, deal with, but
is bad regardless?« Myrie said this
in a matter-of-fact, calm tone.}
...

If you have linebreaks in your citation in your settings file, but don’t leave a line empty, it doesn’t have an affect the result. If you want to have a newline in your output file, you can leave an empty line or end your line with \\.

Here a special trick: If you end it with \\[0.5em] you get a new line with a bit distance to the one before and you control that distance with the number. Here an example. The code

\input {preamble.tex}
\def \csquote {First line.\\
Second line.\\[0.5em]
Third line.\\
Forth line.}
\input {montage.tex}

results in this output:

A sharepic with the default colors, just background with text. The first two lines and the second two lines have a very normal line distance like text in books. The space between the second and third line is a bit larger like on internet pages with a dialog.

Apart from \csquote there are two other fields for text:

  1. \csauthor{}: This field is intended to contain the name of the author and maybe the book or story the citation is from. It is printed below the citation, in a slightly smaller font size.
  2. \csheading{}: This field is intended to contain a heading like the book title, if you rather want it to appear above the text, or a project name like an anthology name or something like ‘winter challenge’ or ‘#PhantasticPrompts 6.12.’ or whatever. It is put above the text in a slightly larger font size.

Both fields can be filled with any text or left empty. The code

\input {preamble.tex}
\def \csheader{Favorite Quote:}
\def \csquote {»You cannot just deal
with such a thing. You can't if you
don't have friends. Or if you didn't
have friends for a long time. And even
if you could deal with it, why should
it be okay to behave in a way that
others could, at best, deal with, but
is bad regardless?« Myrie said this
in a matter-of-fact, calm tone.}
\def \csauthor {– skalabyrinth, Myrie
Pliers\\The Symmetry Of Snowflakes}
\input {montage.tex}

creates this sharepic:

Just text on background with the default colors, but there is a heading: Favorite Quote:, followed by my favorite quote, and after that, starting with a dash, skalabyrinth, Myrie Pliers, The Symmetry Of Snowflakes

Here are some special tricks: If you want to have italic text, you can put the text into a command that creates italic text: \textit{example text}. Similar commands are:

  • \textit for italic text.
  • \textbf for bold text.
  • \texttt for type writer style.
  • \textunderline for underlined text.
  • \emph for emphasising – it is dependend on the context, what it does.

You can nest several of these commands.

You can also experiment with the commands \tiny, \scriptsize, \footnotesize, \small, \normalsize, \large, \Large, \LARGE, \huge and \Huge with curly brakes around parts of the text to control font size, but this interfers with predefinitions, so be careful. It might look bad or even result in errors.

Text width and line spacing

Despite what I just explained, there is no intended option to control the font size. That is because the output is a pdf file without a specific format like A5 or whatever. It is a vector graphic that you can scale to your needs.

There are however options to control the text width and the line spacing:

\def \cstxtwidth {6.2cm}
\def \cstxtspacing {1.5em}

A good choice for the text width is between 5cm and 30cm but you are free to try any value. It affects how wide your sharepic becomes.

There is one special case (so far): If you use a background image instead of a (potentially decorated) color background, the width of the sharepic is determined from that file instead from the text width. In that case text width should be chosen dependent on the width of the background image. Otherwise it won’t fit onto the page properly. You will need to experiment a bit. But it is wise to experiment with the text width depending on your text anyways: You may want to experiment with text width anyway, till the output does not result in a text with huge gaps between the words.

The units of the line spacing is dependent on the font size (as far as I understand). Meaning, if you use some command like \large on the text, the spacing grows with the font.

Now you know as much as there is to know about all the very basic features.

Example code 1

For all following examples I will use the same input for the citation and author field. For all subsections about background graphics and frames I will use the colors as defined in SharePic.tex. That are the same colors as you can find in the section about colors, where you even will find an image with these four colors. Following you see the part of the code that stays the same:

\input {preamble.tex}
\def \csquote {»You cannot just deal
with such a thing. You can't if you
don't have friends. Or if you didn't
have friends for a long time. And even
if you could deal with it, why should
it be okay to behave in a way that
others could, at best, deal with, but
is bad regardless?« Myrie said this
in a matter-of-fact, calm tone.}
\def \csauthor {– skalabyrinth, Myrie
Pliers\\The Symmetry Of Snowflakes}
\def \bgcol {001729}
\def \fgcol {79b5e4}
\def \mgcol {0c2f4a}
\def \mgcolb {037bdb}
...
% additional options
...
\input {montage.tex}

I will refer to it as example 1. The additional options, I will be talking about in the following, come where you read % additional options in the code block above.

(It basically is the same as SharePic.tex reduced to a minimum and without the waves.)

Background image

With the field \def \csbackgroundimage{} you decide if you want to have a background image or a one color background. Unlike the fields introduced before you may not fill this field with just arbitrary text but with the path to your image file. There is an example image file in the folder img (which is one of my favorite photographs). Using that image would look like this

...
\def \csbackgroundimage{img/backgroundlr.jpg}
...

The image is used in original size, meaning you control the size of your sharepic by scaling your image with a different graphic program. I chose this approach for two reasons:

  1. If you have a really huge image file and you would scale it with a CiteSeeing-option to a small background image, you would possibly get a pdf file as large as several mega bytes for no good reason.
  2. It would be another option that you need to control.

Maybe I will introduce it at some point anyways, depending on user interest.

As explained before, the image size usually is derived from the text, except you have a background image. Then it is derived from the background image. That way, the example 1 supplemented with just this

...
\def \cstxtwidth {15cm}
...

would result in a very wide image like this

Text light blue on dark blue background, the image ist maybe twice as wide as it is hight, favorite quote

while the example 1 supplemented with the same text width and a background image

...
\def \cstxtwidth {15cm}
\def \csbackgroundimage{img/backgroundlr.jpg}
...

would result in this (Note: I scale every image to the same width for the homepage, it is not the original size.):

Text light blue of a background image with a wooden bridge over troubled water in a forest. There is also a tiny house in the background. Everything is old and mossy. The image is maybe about twice as high as it is wide. The text however is set in the same way as in the last image, meaning, most of it isn't even visible, its left and right side is cut away. Also the text is barely readible since there is very bad contrast.

You see two issues here:

  1. You would need to choose another text width fitting the image size.
  2. You will need a color background behind the text to get some contrast.

Here is a simple example that works quite well:

...
\def \cstxtwidth {6.2cm}
\def \csbackgroundimage{img/backgroundlr.jpg}
\def \cssimpleshadow {x}
...

It results in this sharepic:

The same background, but now the light blue text is on a dark blue semi transparent plane, that has about the size of the text.

For most image backgrounds I would recommend the option \csframeshadow {} wich is a shadow as large as as the image minus 1cm on each side, especially if you also choose a frame. But on that later.

At the moment I choose a resolution of 90dpi for background images, but that is pretty low. It is sufficient for my needs.

Shadows

There are three shadow types so far and since we will use shadows in the following a lot, I will just shortly describe the commands.

  • \cssimpleshadow creates a shadow slightly larger than the text. It is basically a semi transparent filled rectangle in background colors. If you want to have a graphic behind the text (not the same as background image, see later), this is the shadow for you.
  • \csblurryshadow creates a shadow of the same size as the one before. It also is a semi transparent filled rectangle in background colors but with an additional blurry dark shadow around it. It is recommended for background images. (I wanted to have a blurry edge of that rectangle as well, but I wasn’t successful. I can’t work out, how to implement a blurry rectangle like the blue blurry example circle from the documentation. The command \tikzfading makes nonsense and using the transparent option results in fading to black instead of to transparent. If you have any idea, please help.)
  • \csframeshadow creates a shadow like that one before but in the size of a frame, if present or not. Meaning, it is as large as the image, minus 1cm on each side. It is also recommanded for background images, especially if you also use a frame.

Frames

By now frames might be one of the two main features of this software. There are the following options:

  • A shiny frame: \csshinyframe {}.
  • A massive frame: \csmassivframe {}
  • An ornament frame: \csornamentframe {}
  • Another ornament frame with corners: \csornamentframecorners {}
  • And a footprint frame: \csfeetframe {}

Shiny frame and massive frame:

The first two options are the easiest since there are not so many options to it. The shiny frame is very light with some gradient. The massive frame is rather heavy, maybe like a frame of a painting, and you should choose a bright color for \mgcolb for it to look nice.

In the following image you see on the left the result with \csshinyframe {x} and on the right with \def \csmassivframe {x}:

Favorite quote in light blue on dark blue background. On the left it is in a frame with top left color white and bottom right color medium blue, seems to be a bit transparent. On the right the frame is rather dark. It is a frame with medium blue border lines and inbetween those, lighter and darker shades of blue shimmer as if it where metallic.

Using colors like yellow and beige or brown for \mgcol and \mgcolb you could get the impression of a golden frame with the \csmassivframe option.

Ornament frames

Ornament frames take ornaments from the pgfornament library and put them together to create a frame. There are ornaments for vertices and ornaments for edges. The edge of the frame consits of repeating edge ornaments.

You can set \csornamentedge{85} to choose for the edge ornament and \csornamentvertex{41} for the vertex ornament.

You can use the extra options \csornamentrepeatx{4} and \csornamentrepeaty{4} to control the number of edge ornaments used for an edge.

You can find a full list of possible ornaments with numbers in the file ornamentlist.pdf in the folder ‘docs’. If you want to joke around and use 6 owls for each edge of the frame (I chose another middle color for more contrast):

...
\def \mgcol {b2b7ff}
\def \csornamentedge{123}
\def \csornamentrepeatx{6}
\def \csornamentrepeaty{6}
\def \csornamentframe {x}
...

You would get this image:

Light blue favorite quote on dark blue background. There are very light blue owls forming a rectangle around the text. There heads face the text, their spreaded wings and head nearly form an even line. By that the inner part of that frame looks in fact like a smooth rectangle, the outer part of the frame more like zigzag.

More reasonable choices could be ornaments that are simpler and thin like this:

...
\def \csornamentedge{47}
\def \csornamentframe {x}
...

The folling image shows results of the code above with the following values for \csornamentedge:

Upper row, left to right: 47, 49, 84, lower row, left to right: 85, 87, 88.

Six sharepics, same light blue favorite quote on dark blue background. The frames are medium blue, not that much contrast. Upper row from left to right: 1: loops, 2: more loops making heart shapes, 3: a less swingy pattern with parallel lines and a circle. Second row: 1: simple a bit swingy, 2: leaves and 3: simple, nearly just a becoming thicker and thinner line.

Ornament frames with vertices pretty much work the same, except you also define a vertex ornament. The settings would look like this:

...
\def \csornamentvertex{41}
\def \csornamentedge{85}
\def \csornamentframecorners {x}
...

These settings (together with the example 1 settings for the whole section) create the following sharepic:

Same shades, same quote. The frame now has some heart like swinged curves in the corners. The edges consist of another slightly swinged simple thin ornament.

Concluding to ornament frames I want to show you a full example code of a sharepic that I actually use, with a background image you can download here:

\input {preamble.tex}
%
\def \csquote {»You cannot just deal
with such a thing. You can't if you
don't have friends. Or if you didn't
have friends for a long time. And even
if you could deal with it, why should
it be okay to behave in a way that
others could, at best, deal with, but
is bad regardless?« Myrie said this
in a matter-of-fact, calm tone.}
\def \csauthor {– skalabyrinth, Myrie
Pliers\\The Symmetry Of Snowflakes}
%
\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}

The background image is a digital painting of stormy sea and gray clouds. The favorite quote in very light gray letters can be read on a gray-ish dark blue semi transparent background on top of the image. The text background fills the frame. It is an ornament frame, whith some wave like twirls on the edges. Just one of it top and bottom, by that, the ornament becomes quite large. Left and right though there are 12 ornaments. The corner ornaments are ships. Behind the ornament frame there is another frame, the massive frame. It shimmers like steel trough the ornaments.

Footprint frames

Finally you can select a frame out of footprints. I used the tikz-library decorations.footprints. It comes with the following options:

  • bird,
  • felis silvestris (meaning European wildcat),
  • gnome,
  • and human (which is the default, meaning, if you put any text other then the above words into the brakes, it will be human).

The example 1 code supplemented with this

...
\def \csfeetframe {human}
...

would result in the following sharepic:

Text and background color as usual. Tiny barefeet human footprints walk arount the text in a rectangle.

All the others, left to right: bird, felis silvestris, and gnome, can be seen here:

The other footprints are of a bird, something like a cat, and footprints like human with very short feet.

Symbol or graphic behind the text

About

This section will be a bit different than the last. Instead of walking you through I will explain my intentions and how it went. I think it will give you a good idea of how it works and some ideas how I put this software together.

Graphic behind text

I started this project with the goal to more or less recreate a sharepic made with the software Canva in a slightly different and better way. The sharepic contained:

  • text, story title and author,
  • three similar abstract forms between drops and waves in golden colors (we will come to that later),
  • a golden frame,
  • behind the text, there was a dagger in a single color, partially behind a semitransparent green layer to contrast the text.

My first intermediate step was to extract the dagger from that sharepic with a color selection tool. I cut it out, recolored it to the color before a semitransparent layer on top of it changed it, and at last put it behind my text as an image. I will not show that result since I don’t know of license stuff. Next step was to draw a dagger myself with krita where I have all the rights, and to put it behind text. (This is the reason you will find dolch.png as a very unprofessional example graphic behind text in the folder ‘img’. Dolch means dagger in German.) It wasn’t beautiful, but here you go:

Example 1 code supplemented with this:

...
\def \csgraphic {img/dolch.png}
\def \cssimpleshadow {x}
\def \csshinyframe {x}
...

Favorite quote in light blue on dark blue. Shiny frame. There is a light yellow, rather badly drawn dagger behind the text. Inbetween text and dagger there is a semi transparent layer in the background color, taking away lightness of the dagger and making the text readible. The dagger is not completely behind that plane but the upper and lower part shine bright in their light yellow colors above and below the text.

You see, you can use the option \csgraphic to select a graphic that appears behind the text. Like with \csbackgroundimage you may write a path to an image into the field instead of just a cross or anything. In contrast to \csbackgroundimage the option \csgraphic does not affect the size of the image and there is an option to control the size of that image:

\def \graphicSize {8cm}

8cm is a good choice for citations that are not extremely long, so it is the default.

Unicode symbols behind text

The graphic behind the text is monocolored and that gave me an idea: There is an emoji dagger and there are black and white emoji fonts (but as I would realize, not easy to find). My idea was, to have an option where you can put unicode symbols behind the text, that are monocolored emojis. That was a journey of several hours research and without a simple satisfying solution. (That was the point where I decided to use lualatex instead of pdflatex as compiling tool, which seemed to be promising with regards to more fonts and symbols but didn’t help in the end. I still sticked to lualatex since it is closer to the SPBuchsatz-setup.)

First of all, you actually can put unicode symbols behind the text, – only if the font has those –, like this:

...
\def \csbgsymbol {†}
\def \mgcol {e1c062} % light yellow color
\def \csbgsymbolangl {20}
\def \cssimpleshadow {x}
\def \csshinyframe {x}
...

Light blue favorite quote on dark blue background. Shiny frame, but colored light yellow. There is a symbol behind the text, looking like a mixture of a dagger and a clubs symbol from card games. The transparent layer fully covers the symbol.

The field \csbgsymbol can contain a copy pasted unicode symbol that you would like to have behind the text. There are not many that work since the LaTeX fonts I found won’t have that many. In fact I only found the these three apart from letters: †, ‡ ∢.

The first one is called ‘dagger’ and since a dagger was an option I wanted, I kept that part of the code.

The field \csbgsymbolangl rotates that symbol by degrees where 360 is a full rotation and it goes counterclockwise.

The other fields where explained before.

TikZ and Marvo symbols behind the text

My research went on. My goal was still to find a possibility to use another font for unicode symbols with a complete set of monocolored emojis. I know such a font from Minecraft, but that most likely isn’t an open font and also I don’t know how to import it into LaTeX.

While searching for my preferred solution I stumbled across two libraries that contain nice symbols:

Both come with commands like \Coffeecup which creates a symbol representing its name. You can use that command instead of a copy pasted symbol like this (same code as above, just exchanged the dagger symbol for the \Coffeecup-command):

...
\def \csbgsymbol {\Coffeecup}
\def \mgcol {e1c062} % light yellow color
\def \csbgsymbolangl {20}
\def \cssimpleshadow {x}
\def \csshinyframe {x}
...

Same sharepic as before but with a coffee cup symbol instead of a dagger behind the text.

There are several symbols. You might look into the documentation for a full list. But here are some that I assumed most useful:

From the MarvoSym library, left to right: \Football, \Bicycle, \Moon, \Mercury (and the other planets), \Mundus and \Bat.

light yellow symbols on dark blue background, shiny frame, no text, no semi transparent layers, just to represent how the symbols look.

And from the TikZSym library, left to right: \Heart, \Candle, \Coffeecup, \Fire, \Tribar, \Snowman.

Same as above with the named other symbols.

Musical Symbols behind the text

I tried to work on another ToDo and come back to my symbols journey later: I wanted to have musical symbols decorating the sharepic. But I realized, musical symbols are also nice for symbols behind the text.

So I loaded the musicography library which contains quartes, eighth, keys and so on. But the violin key and the bass key weren’t just commands. See musicography documentation for details. I implemented a reasonably sized violin and bass key based on that library so you can have a sharepic with these keys as symbol behind the text.

...
\def \csbgsymbol {\musViolinKey}
\def \mgcol {e1c062} % light yellow color
\def \cssimpleshadow {x}
\def \csshinyframe {x}
...

Same sharepic as above with just one symbol behind the text. The symbol is a violin key. It is slightly shifted to the right and there is no rotation.

Again a selection of useful symbols from the musicography library, left to right: \musFlat, \musSharp, \musNatural, \musWhole, \musHalf, \musQuarter, \musEighth, \musHalfDotted, \musQuarterDotted, \musViolinKey, \musBassKey.

Light yellow symbols on dark blue background, shiny frame, no text, no semi transparent layers. The symbols mentioned above.

Advanced trick: If you want to have another symbol like a key that wouldn’t just work with a simple command, you might have a look into preamble.tex. For example I used this code line to create the \musViolinKey command:

\NewDocumentCommand{\musViolinKey}{}
{\musSymbol{0.955em}{0.55ex}{0pt}{\symbol{71}}}

I modified a copied line from the documentation to optain it. You could try a similar command declaration there with other numbers to define your own command.

However: With each new download of the software you would need to modify the preamble.tex file again. If you created your desired symbol please feel free to send me that line and I will add it to the code permanently. (Same goes for ornament symbols, explained in a bit.)

Ding symbols behind the text

I returned to the idea if it might be possible to find some emoji symbols, to find a font that works with LaTeX with symbols. I was unsuccessful, I even was able to use a noto font with emojis but they where colored like in chats and I didn’t like it. The font dejavu has some emojis implemented in monocolor but just smilies.

But I stumbled across the pifont with the command ding. At least there are some nice unicode symbols that you can access with it.

The code would look like this:

...
\def \csbgsymbol {\ding{73}}
\def \mgcol {e1c062} % light yellow color
\def \cssimpleshadow {x}
\def \csshinyframe {x}
...

Same example for background symbols as before. The symbol is the outline of a star varying in its thickness.

I don’t like this implementation not that much because you need to look into a table, wich number belongs which symbol and then you have a command inside a command in the definition file. I wanted to have this software as simple as possible. But it is how it is. Here is a list of useful symbols:

  • pens: 46: ✎, 47: ✏, 48: ✐, 49: ✑, 50: ✒,
  • symbols with a symmetry of four: 66: ✢, 67: ✣, 68: ✤, 69: ✥, 70: ✦, 71: ✧,
  • five-pointed stars: 72: ★, 73: ✩, 74: ✪, 75: ✫, 76: ✬, 77: ✭, 78: ✮, 79: ✯, 80: ✰,
  • stars with more spikes/suns: 82: ✲, 83: ✳, 84: ✴, 85: ✵, 86: ✶, 87: ✷, 88: ✸, 89: ✹, 90: ✺,
  • other star like forms: 91: ✻, 92: ✼, 93: ✽, 94: ✾, 95: ✿, 96: ❀, 97: ❁, 98: ❂, 99: ❃,
  • snowflake like forms: 100: ❄,101: ❅,102: ❆,103: ❈,104: ❉,105: ❊,106: ❋,107: ❇.

You can find more ding-symbols on wikipedia.

Conclusion to symbols behind text

You see, with the command \cssymbol you can put symbols behind your text. But for different types of symbols you use different input. This is how the three different notations look:

  • \def \cssymbol{†},
  • \def \cssymbol{\Coffeecup} or \def \cssymbol{\musViolinKey},
  • \def \cssymbol{\ding{73}}.

But there is more: ornament behind the text

As there are many beautiful symbols in the ornament library (which I introduced in the frame section), I didn’t hesitate to try these in a similar way I used the music symbols behind the text. The idea was, that you might use the \cssymbol field even for that. But that didn’t work out so well. The code behind \cssymbol scales a symbol, which looks good. But when you scale an ornament in the same way, the outline becomes very thick and it does not look good. So I needed to implement another way to scale the ornaments which is intended for this type of graphics.

Similar to the musical notations I declared new commands for the ornament symbols in the preamble. You can use code like this:

...
\def \csornament {\ornWatch}
\def \graphicSize {5cm}
\def \mgcol {e1c062} % light yellow color
\def \cssimpleshadow {x}
\def \csshinyframe {x}
...

Light blue text, dark blue background, shiny yellow frame, shadow behind text, light yellow watch as a symbol behind the text. It looks a elegantly hand drawn.

You might have noticed that I added the line \def \graphicSize {5cm} to the code. The graphic size affects the ornament and determinds its width.

Also here an image of all implemented ornament symbols for the \csornament option, left to right: \ornLeaf, \ornWildRose, \ornWildFlower, \ornOldFlower, \ornDove, \ornButterfly, \ornOwl, \ornBird, \ornFish, \ornHorse, \ornBlackHorse \ornShoe, \ornQuill, \ornWatch, \ornShip, \ornTophat, \ornHat.

A wide image with all the ormanets above in light yellow on dark blue background, framed.

Advanced trick: If you want to have another symbol from the ornament library, like let’s say, the pig, you might have a look into preamble.tex. For example I used this code line to create the \ornLeaf command:

\NewDocumentCommand{\ornLeaf}{}
{\pgfornament[color=mgcol,width=\graphicSize]{1}}

You can have a look into the file ornamentlist.pdf in the folder ‘docs’, look up the number of your preferred ornament, let’s say the pig at number 111, and add the line:

\NewDocumentCommand{\ornPig}{}
{\pgfornament[color=mgcol,width=\graphicSize]{111}}

You then have successfully implemented the command \ornPig and can use it in \csornament.

However: With each new download of the software you would need to modify the preamble.tex file again. If you created your desired symbol please feel free to send me that line and I will add it to the code permanently.

Advanced: Custom decoration behind the text

If you feel like you want to code yourself you can copy any file from the folder decorations to your own folder (for example ‘mycode’) and modify it. There are some files dedicated for that purpose already: You could for instance copy the file cscustomsymbolbehindtext.tex to your folder mycode and load it in your sharepic like this:

...
\def \cscustomdecorationbehind {mycode/cscustomsymbolbehindtext.tex}
\def \cssimpleshadow {x}
\def \csshinyframe {x}
...

This would result in this sharepic:

Light blue favorite quote on dark blue background, shiny blue frame. There is a huge green semi transparent butterfly behind the text. In addition there is a semitransparent shadow in background colors behind the text for readibility.

The file cscustomsymbolbehindtext.tex contains:

% 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}

All lines starting with a % are comments, meaning, they do not have any affect on the generated output. It is just explanation. Meaning, it is a single code line:

\butterfly{5.0cm,-7.0cm}{5.5}{40}{green!80!white}{left}

You could change color, size, angle, and so on and create your own custom background symbol behind the text. You can copy and paste other lines from other files in the folder ‘decorations’ there. If you work in your own copies in your own folder, you even don’t lose your implementations when downloading a new version while keeping that folder.

If you create a nice file, feel free to send it to me and I would probably put it into the code with credits if you like.

Side note: This example of a custom code is a work in progress. I want to implement the possibility to use the decorations from the next section as graphic behind the text as well. This is not a reasonable implementation so far, since it should be centered and not shifted to the middle of the sharepic from the upper left point. Most likely I would implement another option ‘center’ for the last curly brakes of the butterfly command.

Example code 2

For all following examples I will also use the same quote and author field. For foreground decorations I will use different colors than before: a blue-green as background, a very light green as foreground and shades of brown and dark yellow for medium colors to show a gold effect.

See those colors in the following image:

Mentioned colors above.

I sometimes will switch background and forground colors to demonstrate these effects on the decoration.

Here are the settings:

\input {preamble.tex}
\def \csquote {»You cannot just deal
with such a thing. You can't if you
don't have friends. Or if you didn't
have friends for a long time. And even
if you could deal with it, why should
it be okay to behave in a way that
others could, at best, deal with, but
is bad regardless?« Myrie said this
in a matter-of-fact, calm tone.}
\def \csauthor {– skalabyrinth, Myrie
Pliers\\The Symmetry Of Snowflakes}
\def \bgcol {00302b}
\def \fgcol {d1fde7}
\def \mgcol {724f03}
\def \mgcolb {c8c065}
...
% additional options
...
\input {montage.tex}

I will refer to it as example 2. The additional options, I will be talking about in the following, come where you read % additional options in the code block above.

Foreground decoration

Foreground decoration are like the symbols behind the text, but intended to be foreground symbols. They are less shy, more sparkly and detailed, some of them have more than one color. Some of them like the butterfly I implemented myself with just commands for curves and fill options with the library TikZ. TikZ is kind of a programming language to implement vector graphics in a very readible way and I love it very much.

But this is a documentation on how to use CiteSeeing and not so much about the code behind it. In this section I present to you all foreground decorations.

Sparkles

There are (so far) three types of sparkles:

  • \cssixsparkles: recommended for dark background,
  • \cssixdaysparkles: recommended for light background,
  • \cssixlightsparkles: also recommended for light background, but okay for dark backgrounds, too.

You can use it like this:

...
\def \csshinyframe {x}
\def \cssixsparkles {right}
...

Light green favorite quote on fir green background. A shiny golden frame. Five sparkles of different sizes on the top right, shimmering light golden. They are four-pointed stars with very long, thin spikes and a transparent filled circle with light, fading from the inner to outer side.

(It makes more sense with a frame but also works without.)

As you see, I didn’t just select it with an ‘x’, but wrote ‘right’ into the field. If you write anything into that field apart from ‘right’, the sparkles will appear on the left – it is the default. (Maybe I will add more options in future, but sparkles seem to look better top right or top left than at the bottom.)

The following image shows the output of all three sparkle variations on the right with a shiny frame:

Same color setup but this time we see only the uper right part of the sharepic. The first of the three images show the same sparkles as above. In the second the circle is not fading but massiv and golden. In the third the colors are even lighter and the inner of the four-pointed star is more transparent.

The right and left sparkles look nice in my opinion. Maybe the right ones may look a bit fragile. But the middle sparkles are supposed to look good on lighter backgrounds. See the demonstration here:

The code

...
\def \fgcol {00302b}
\def \bgcol {d1fde7} % switched foreground and background colors
\def \csshinyframe {x}
\def \cssixdaysparkles {right}
...

generates this sharepic:

Fir green favorite quote on very light green background. Same golden frame. The sparkles with the not fading circle are selected. There inner shines bright against that dark golden circle. With that circle, they bring there own contrast.

The following image shows the output of all three sparkle variations on the right with a shiny frame and switched background and foreground color:

Again only the upper right part of the image three times. The first shows rather dark sparkles. The third shows very bright sparkles. And the middle shows sparkles like described in the last image. It is the only sparkle option where the light circle doesn't fade into nothing but dark color.

You see, the middle option fits the light color theme quite well. The last one also looks nice. But the first one has too dark colors, the sparkles do not really shine bright.

Side note 1: Maybe you counted only five sparkles while the option claims there were six. Well, I miscounted and I couldn’t decide how to fix this. I could add another sparkle or change the name of that option. So it stayed like it is.

Side note 2: You may remember from the section about shadows, that I don’t know how to use fading to transparency in TikZ. That is still true. If you look closely, the shimmering white color in the circle behind the stars fades to the background color instead. You can see it where the sparkles intersect with the frame: The circle is above the frame. I think it still looks nice, but if you find an option to change it to real transparency, let me know.

Concluding to the sparkles section I want to show you a full example code that is very similar to a sharepic that I actually use, except for the colors. The colors are the same as before, with background and foreground color switched. Find the background image for the following setup here:

\input {preamble.tex}
%
\def \csquote {»You cannot just deal
with such a thing. You can't if you
don't have friends. Or if you didn't
have friends for a long time. And even
if you could deal with it, why should
it be okay to behave in a way that
others could, at best, deal with, but
is bad regardless?« Myrie said this
in a matter-of-fact, calm tone.}
\def \csauthor {– skalabyrinth, Myrie
Pliers\\The Symmetry Of Snowflakes}
%
\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}

The background is a digital painting with lineart, a bit like a comic, picturing a sailing ship and dark stormy clouds on the sea. More than half of the image is below the water surface, where bright sunrays brake through the waves. The dark green favorite quote has a very light green background, that is a bit transparent. There are golden sparkles top right that probably look a tiny little bit like compass dials.

Snowflakes

Snowflakes work in a similar way to sparkles, but there is just one variant:

...
\def \cssixsnowflakes {left}
...

Together with the example 2 this creates the following sharepic:

Favorite quote light green on dark green background without a frame. There are six snowflakes in the upper left part of the image.

They maybe look best on a blue-ish color scheme like demonstrated in the beginning of this article.

Short excursion into the code

I kept most of the code from you so far and want to make an exception here, since this example demonstrates quite well what TikZ is capable of, and how I work with it.

You can find the code for the snowflake generation in the file ‘snowflakes.tex’ in ‘src’ (which is short for source code).

The heart of the code may be these lines:

\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);

I will walk you through and the following image might provide some vizualization:

The image shows step by step how the snowflake will be drawn. The first three steps show, how we draw a six-pointed star. 1. from one outer vertex to one inner vertex. 2. all other vertices except the last edge. 3. the last edge and the six pointed star is filled blue. 4. a small circle above the star. The star inside that circle now is not colored. But the circle is blue where there is no star intersecting with it. 5. An additional larger circle around the first. What is colored and what is not, changes inside the smaller circle. The second circle is filled outside of the first circle, except where the spikes of the star intesect. 6. The star with two more circles. 7. A gray larger star on top of the first star. 8. Everything which lays outside the larger star is clipped away.

With \shade you define, that the path you declare after that will have a gradient filling. I chose radial and inner and an outer color, which leads to a shape that is filled with the inner color in its middle, which changes to the outer color to the outside.

I defined (ms) as coordinates for the center of the snowflake. We start drawing a six pointed star from the tip of one spike. To do so, we add the outer radius for the circle, the tip of all spikes lay on, onto (ms), in the direction of a given angle.

	   ($(ms) + (\angl+0*360/6:\rado) $)

The notation (angle:distance) defines a vector of length distance in the direction, the angle points to.

From that tip we go to an inner edge. All inner edges lay on a circle with an inner radius which I called radi. We also need to add 180°/6 to the angle before, since a snowflake has a symmetry of six.

	-- ($(ms) + (\angl+0*360/6+180/6:\radi)$)

The letters -- connect the last point to the next.

Then we repeat this procedure for the other 5 spikes rotated by a sixth of 360° with a for loop:

\foreach \p in {1,...,5}
{
	-- ($(ms) + (\angl+\p*360/6:\rado) $)
	-- ($(ms) + (\angl+\p*360/6+180/6:\radi)$)
}

The \foreach command repeats everything in the following curly brakes as for each element in the set, in this case {1,...,5} which is short for {1,2,3,4,5}. In this loop we can use the variabel \p which will have values 1 to 5.

Meaning the code postet just before is short for:

	-- ($(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)$)

And at last we close that path with a --cycle command which connects the last point with the first in the path.

This would now be just a simple six-pointed star, nothing more.

Now the magic happens, that transforms the star into a snowflake:

(ms) circle (\radi+0.1*\rado)
(ms) circle (\radi+0.2*\rado)
(ms) circle (\radi+0.3*\rado)
(ms) circle (\radi+0.4*\rado);

The semicolon in the end finishes, what is affected by the shade command. I used the option even odd rule, which means, the first closed shape is filled, the next, is also filled, but where it intersects with the shape before, it is unfilled, and so on. I put four circles with growing size on top of the star. This produces a very interesting pattern like this:

White slightly transparent snowflake like shapes on green background. In fact, these are six-pointed stars with four concentric circles on top of them. The pattern looks a bit like a chessboard made to a circle, and it is colored in a similar pattern.

At last we draw another six-pointed star on top of all this and use it as a shape to cut the whole thing, and we get the snowflakes that are more transparent than the others.

	\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;

For those, that look a bit brighter, we put another less transparent star on top.

Side note: The code has some repeated lines. This could be coded more elegantly if I knew how to define shapes and such. But I have neither brains nore nerve to make it better. It is okay, I guess.

Butterflies

I implemented a method to put a butterfly somewhere. You can have one:

...
\def \csbutterfly {right}
...

Light green favorite quote on dark green background, no frame. There is a butterfly top right in foreground colors, meaning, light green. The wings are semitransparent.

Or, if you would like them to sit on your frame, there is this possibility:

...
\def \csmassivframe {x}
\def \csbutterfliesonframe {x}
...

Same as before, but there is a golden massive frame and there are five butterflies in different sizes and angles sitting on its left and right side.

You may notice that this takes a little longer to produce the output file. The antenna are expensive, I guess.

Music notes

The main reason I loaded the musicography library was to decorate the frame with musical notes. I took symbols from there, placed some of them and tried to find a good looking collection. I use the foreground and medium colors to create notes with a shadow.

Here is an example together with the shiny frame:

...
\def \csshinyframe {x}
\def \csmusnotes {right}
...

Light green favorite quote in dark green background. The frame is golden on the lower right and very bright yellow on the top left. The notes also are bright yellow with a golden sharp shadow. That gives them the impression of being 3D golden stickers.

There is an option to have them on the left as well.

Smoke and steam

The first user request was smoke. This was not easy, I’ll admit it, but I am quite happy with the result.

There is smoke and strong smoke, steam and strong steam, that you can put left or right, or – special feature here – on both sides!

I created strong smoke, since there are cases where more contrast is neaded, for example the case of a background image.

This code supplementation of the example 2:

...
\def \csshinyframe {x}
\def \cssmoke {left}
\def \csstrongsmoke {right}
...

would lead to this image:

Light green favorite quote on dark green background. Shiny frame from before. On the left side there is smoke along the frame side which looks more or less realistic. On the right side there is smoke with many strange forms that make it look very artificial.

Maybe you agree that the smoke on the left side looks more or less natural while the strong smoke on the right side is not nice at all. Maybe you wonder where this might even look okay.

Let us switch background and foreground color and add a background image:

...
\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}
...

Now the result looks like this:

The background image is that one with a sailing ship below dark clouded sky on the sea, whilst the main part of the background image is below the sea surface. There are sunrays breaking through the waves into the water. The text is dark green on a semitransparent light green regtangle, framed with a golden frame. The smoke on the right side is the same as in the last image, but since the background has many colors, it is barely visible at all. The smoke on the right side however has nice contrast and the strange shapes in it don't look bad, because there is not a monololored background to enhance them.

The same goes for steam.

The image shows the same results as before with steam. I used nearly the same code but I exchanged all appearances of ‘smoke’ with ‘steam’, and I used the massiv frame in both cases.

Nearly the same two images from before, put together to one image. The difference is, that the smoke before was more like black and white, and this steam is more middle color shade and white.

Cup with steam

Since there is steam now, and I really like tea, I added a cup with steam. I couldn’t use the \Coffeecup from the tikzsymbol-library since that already has steam represented with three curved lines. Also I wanted to have a filled cup.

You can use my creation with this code:

...
\def \csmassivframe {x}
\def \cscupwithsteam {x}
...

Light green favorite quote on dark green background, golden frame. There is a golden cup on the bottom right inside the frame. Steam emerges from it.

Since we run into the same issue with a light or busy background, there is another version of that cup where the outline uses another color (the foreground color) and the steam is strong steam. I demonstrate it with switched background and foreground color:

...
\def \fgcol {00302b}
\def \bgcol {d1fde7}
\def \csmassivframe {x}
\def \csdaycupwithsteam {x}
...

Dark green favorite quote on very light green background, golden frame. There is a golden cup with dark green outline on the bottom right inside the frame. Steam emerges from it.

Another example I use

At this point I can show you another example, I actually use for sharepics. I use the music note decoration, since the topic of that novel is the participation in a music festival. And I used that cup with steam since there is lots of cozyness with drinking warm tea and such. You can download the background image of the novel here.

The setup is the following:

\input {preamble.tex}
\def \csquote {»You cannot just deal
with such a thing. You can't if you
don't have friends. Or if you didn't
have friends for a long time. And even
if you could deal with it, why should
it be okay to behave in a way that
others could, at best, deal with, but
is bad regardless?« Myrie said this
in a matter-of-fact, calm tone.}
\def \csauthor {– skalabyrinth, Myrie
Pliers\\The Symmetry Of Snowflakes}
%
\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}

and it generates this output:

The background image shows a scene on a table. There is a glass tea pot on it. But there also is a tiny person sitting in a pink wing chair. The favorite quote is dark pink on a semitransparend light blue background in a light pink frame. There is a shaded pink cup bottom right with steam emerging from it. There are dark pink music symbols on the top right, with a shimmering light pink gleam to it.

Three waves

The first decoration I implemented were the three waves. Or whatever I might call them. An abstract form that looks like a mixture of a droplet rotated by 90° and a wave. It was a shape similar to one I saw in a Canva sharepic. And it was pretty interesting to implement that shape.

First, have a look at it:

...
\def \csmassivframe {x}
\def \csthreewaves {x}
...

Light green favorite quote on dark green background, golden massive frame. The mentioned shape, three times in different sizes, overlapping each other. The bottom one is higher, smaller, light golden at the left where the droplet head is, and dark golden on the left where its tail is. The middle one is the largest, and the shading is the other way around. The front shape is white and fades to transparency.

This is basically all there is to that decoration on the surface.

(Side note: The third wave fades to transparency, which I claimed before, I wouldn’t be able to achieve. This is a different case here: It is a fading from left to right. I can’t find a way to fade radial oder in a direction other then north, south, east or west.)

If you are interested in the way it is built, you might enjoy a look at this image:

Same image as before, but instead of the three waves there is only the first one. It is nearly transparent and there are annotations: The right vertex is called p0. p1 and p4 are coordinates on each side in the middle of the shape. There is a tangent going through both points. p2 and p3 are points at the head of the droplet and there also are tangents through those points.

Here you see The five points and the tangents at these points defining the shape. It is a bézier curve.

With these helping lines you can play around with the code if you like to.

Custom foreground decoration

I achieve this image copying the file cscustomwaves.tex from the folder ‘decorations’ to my own folder ‘mycode’ and then changing the supplementing settings to this:

...
\def \csmassivframe {x}
\def \cscustomdecoration {mycode/cscustomwaves.tex}
...

The file cscustomwaves.tex basically contains one line that isn’t a comment:

\decodrophelp{(b.south west) + (7.6cm,2.35cm)}{-3.0cm,-0.8cm}
{-5.9cm, 0.4cm}{0.60cm}{mgcolb}{mgcol}{0.3}{0.9}{}

If you would write \decodrop and omit the help you would get the same shape without the annotations.

You can play around with any decoration copying the corresponding file to your own folder and loading it with the \cscustomdecoration command. The files in the folder ‘decorations’ that contain the word custom are predestined to be used like this. For more details have a look into the section about custom background decorations. These two commands work the same just with the difference, that background decorations go behind text, frame and shadows and foreground decorations go above of all that.

Tiny book and cover

Finally! The last decoration I implemented was the tiny book cover or tiny book. You can scale the cover of your book to a tiny image and put it onto your sharepic like this:

...
\def \csmassivframe {x}
\def \cstinybook {img/tinycover.png}
\def \cstinybookcoverangl {-5}
...

Light green favorite quote on dark green background, golden frame. On the bottom right there is a book with a blue cover. The title is written in light blue. It says: Example Book Cover.

You can use the image tinycover.png in the folder ‘img’ as an orientation, so you can scale your cover in a similar manner.

You can choose another angle if you like.

If you use \cstinycover instead of cstinybook, the result looks like this:

Same as before but there is just the cover instead of the book. It is rotated by 5° clockwise.

Instead of conclusions

I’m done. I hope you had at least a little fun or it was in another way helpful. Instead of a typical conclusion I will show you some outtakes while coding this thing.

When I learned to use bézier curves properly:

There is an image description below that image.

You see a light yellow square, that I often draw somewhere to see, if I am drawing at all. Then a yellow straight line to the north east. Two points along this line have names beza and bezb. And then there is a black line. I most likely drew it from the point, where the yellow line starts, to a point on its left. But I said, lean a little towards beza and bezb. So the black line made a curve to get to that point on the right.

On the bottom you see a droplet like form that has no wave in it yet. Also it leaves the green background and the image isn’t clipped to the background image, meaning, there is a white bar at the bottom of the sharepic.

Little did I know than. I learned a lot about bézier curves and clipping in the next hours of coding.

You also see that I blurred parts of the text and the background. I used text and a graphic back then, that I have no rights to.

When I realized that I used absolute coordinates instead of relative

Dark text on light blue background. It is my favorite quote in German and it is repeated several times without newlines. There is a massive blue frame nicely put around the text. But there are also snowflakes, sparkles and the wave shapes, all below of the long text.

At some point after I implemented the sparkles, snowflakes and wave shapes, I realized that I used absolute coordinates to determine the place to put them. Having an absolute size is not that bad, since the text should not become too wide. If the text is readible the sizes are large enough and the other way around. But if the text is too long (I copied my favorite quote several times to create a long text), it does play a roll, where the shapes are put. They need to be placed relative to the frame.

So I corrected that issue.

When I tested different color schemes

Dark green favorite quote in German on a very bright green background, probably hurting the eyes. There is a shimmering dark green and white frame. There are sparkles made for a dark theme. They don't shine that well. There is a yellow badly drawn dagger behind the text with not so nice contrast to the green. And there are the three wave shapes in dark green, very dark green and white, that actually look nice.

I just wanted to find out if my decorations also work well on light color schemes. The sparkles, I implemented first, do not. But the three waves actually do, I think, even with this horrible color scheme!

It is such a horrible sharepic that I somehow wanted to share it for giggles.

The sun

This actually isn’t a failure:

A 17-pointed light yellow shiny sparkle on dark green background.

I implemented the spikes in a way that allows you to choose the amount of them. You actually can use the code for the sparkles to create sparkles with more than four spikes like this:

% *** 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}

The second field is for the number of spikes. You can use different colors and so on. Have fun playing with it, if you like, using custom background or foreground decoration.

The End

And now I leave you to it.