# eurion.sty

A LaTeX package that overlays the **EURion constellation** — the
five-circle anti-photocopy pattern from banknotes — onto your document
pages. Visual reproduction only; this is a stylistic gag, not real
anti-counterfeiting protection.

## Install

Drop `eurion.sty` next to your `.tex` file, or into your local
`texmf` tree (`~/texmf/tex/latex/eurion/eurion.sty`).

Requires: `tikz`, `eso-pic`, `xkeyval`, `xcolor` (the last is pulled in
by `tikz` already).

## Quick start

```latex
\documentclass{article}
\usepackage{eurion}                 % scatter mode, gist-yellow, default density
\begin{document}
... your document ...
\end{document}
```

Three layout modes:

| Mode      | What it does                                             |
|-----------|----------------------------------------------------------|
| `scatter` | Pseudo-random tiling across every page (default).        |
| `corner`  | One constellation in a chosen corner of every page.      |
| `manual`  | No automatic overlay; you call `\eurion{...}` yourself.  |

```latex
\usepackage[scatter, color=yellow, density=25, seed=42]{eurion}
\usepackage[corner=top-right, color=green]{eurion}
\usepackage[manual]{eurion}
```

In any mode you can also drop an extra constellation by hand:

```latex
\eurion[color=orange, size=2, rotate=15]{current page.center}
\eurion[color=green]{[shift={(3cm,-3cm)}]current page.north west}
```

The second argument is any TikZ coordinate; the macro draws inside its
own `remember picture, overlay` `tikzpicture`.

## Options

| Option    | Values                                                          | Default          |
|-----------|-----------------------------------------------------------------|------------------|
| `mode`    | `scatter` \| `corner` \| `manual`                               | `scatter`        |
| `color`   | `yellow` \| `green` \| `orange` \| any `xcolor` expression      | banknote gold    |
| `size`    | scale factor (`1` ≈ 1 mm rings, ≈ 4 mm overall spread)          | `1`              |
| `density` | integer constellation count per page (in `scatter`)             | `20`             |
| `rotate`  | `random` \| `none` \| number of degrees                         | `random`         |
| `corner`  | `top-left` \| `top-right` \| `bottom-left` \| `bottom-right`    | `top-right`      |
| `seed`    | integer; fixes the scatter pattern (page number is added in)    | `1`              |

The flags `[scatter]`, `[corner]`, and `[manual]` are accepted as
shortcuts for `mode=`. Writing `[corner]` alone selects corner mode at
the default `top-right`; writing `[corner=top-left]` selects the mode
*and* sets the corner.

## Caveats

- **Color channel only.** Real banknote detectors look for the rings
  in a color channel, not in greyscale. A B&W print or grayscale export
  of your PDF will hide the pattern.
- **Not real anti-copy.** Modern image-editor blocks (Photoshop, Paint
  Shop Pro) actually rely on Digimarc digital watermarks (CBCDG), not
  on the EURion constellation alone. This package is decorative.
- **The exact spec is secret.** Three publicly available reproductions
  disagree on exact coordinates; this package uses the geometry from
  Petr Kutalek's PostScript gist.

## Examples

| File                  | Mode shown |
|-----------------------|------------|
| `example.tex`         | `scatter`  |
| `example-corner.tex`  | `corner`   |
| `example-manual.tex`  | `manual`   |

Build any of them with `pdflatex example.tex` (or `lualatex` /
`xelatex`).

## License

WTFPL — see `LICENSE`. The author does not endorse this license; it
was picked because CTAN distribution requires *some* license to be
selected, and the WTFPL is the lowest-friction option that satisfies
that requirement. (CTAN's metadata vocabulary doesn't carry a `wtfpl`
key, so the catalogue lists it under `other-free`.)

## References

- <https://en.wikipedia.org/wiki/EURion_constellation>
- Markus Kuhn's original write-up: <https://www.cl.cam.ac.uk/~mgk25/eurion.pdf>
- Petr Kutalek's `eurionize` shell+PostScript gist (geometry source):
  <https://gist.github.com/petrkutalek/93b7eebf22f4dbcfab8cd80a91fd27a8>
- Conor Armstrong's Python `eurion` (option-surface inspiration):
  <https://github.com/conorarmstrong/eurion>
- Steven Murdoch on what *actually* triggers detection:
  <https://murdoch.is/projects/currency/>
