# fancyqr
[](https://www.latex-project.org/) [](https://opensource.org/licenses/GPL-3.0) [](http://makeapullrequest.com) [](https://www.ctan.org/pkg/fancyqr) [](https://github.com/EagleoutIce/fancyqr/actions/workflows/compile.yaml)
[ ](qr-example.tex)
A simple package to create fancy qr-codes with the help of the [`qrcode`][qrcode]-package.
You may use `\fancyqr` just like the normal `\qrcode` (`\fancyqr[]{}`). See the [documentation](https://media.githubusercontent.com/media/EagleoutIce/fancyqr/gh-pages/build/fancyqr-doc.pdf). If you just want to create a simple qr-code, please refer to the [minimal example](qr-minimal.tex).
*fancyqr* is actively developed by *Florian Sihler* (contact me at: ) under the [GPLv3 License](LICENSE). I am very happy about every contribution (see [CONTRIBUTING.md](CONTRIBUTING.md)). You can find it on CTAN ().
If you do want to hide a center square (e.g., because you want to embed an image), you can use `\FancyQrDoNotPrintSquare{}{}` to hide a rectangle with radius x and y set from the center (with `\FancyQrDoNotPrintRadius{}` you can apply a [rounding](https://github.com/EagleoutIce/fancyqr/pull/41) to this!). If you choose this option, the default `\FancyQrRoundCut` that rounds cut corners can be changed with `\FancyQrHardCut`.
At the moment, there are six other styles (`flat`, `frame`, `blobs`, `glitch`, and `dots`) that you can load (locally) by using `\FancyQrLoad{}`. The default style is named `default` and can be 'reset' by `\FancyQrLoad{default}` or `\FancyQrLoadDefault`.
There are the following extra qr-options (you can set all of them with `\fancyqrset{}`):
| Option            | Type        | Default  | Explanation                                                                                                                                |
| ----------------- | ----------- | :------: | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `classic`         | boolean     |  `false` | Use the classic qr-code style (black with flat rectangles, this loads the `flat` style).                                                    |
| `color`           | color       |          | Disables the `gradient` and sets the qr color accordingly.                                                                                 |
| `compensate`      | length      | `0.15pt` | Compensating overlap to add to avoid glitches.                                                                                             |
| `gradient angle`  | angle       |  `135`   | Change the gradient angle.                                                                                                                 |
| `gradient`        | boolean     |   true   | Toggle the color gradient                                                                                                                  |
| `image`           | LaTeX       |          | Automatically center an image (you have to care for the size and maybe adjust the `version` and `level` to keep the qr-code readable).[^1] |
| `image padding`   | number      |          | Additionally hide blocks (x & y) around the image.                                                                                         |
| `image x padding` | number      |   `0`    | Additionally hide blocks (x) around the image.                                                                                             |
| `image y padding` | number      |   `0`    | Additionally hide blocks (y) around the image.                                                                                             |
| `l color`         | color       | `purple` | Set the top left gradient color.                                                                                                           |
| `left color`      | color       |          | Alias for `l color`.                                                                                                                       |
| `level`           | L/M/Q/H     |   `M`    | [`qrcode`][qrcode] option affecting error correction (low, medium, quartile, high).                                                        |
| `padding`         | flag        |          | [`qrcode`][qrcode] option adding sufficient additional space around the qr-code.                                                           |
| `r color`         | color       |  `teal`  | Set the bottom right gradient color.                                                                                                       |
| `random color`    | colors      |          | Allow to set a random color pool to pick from.                                                                                             |
| `right color`     | color       |          | Alias for `r color`.                                                                                                                       |
| `size`            | length      |          | Alias for [`qrcode`'s][qrcode] `height` option.                                                                                            |
| `tight`           | flag        |          | [`qrcode`][qrcode] option adding no additional space around the qr-code.                                                                   |
| `version`         | [0..40] ∈ ℕ |   `0`    | [`qrcode`][qrcode] option affecting the size (tries to be as small as possible).                                                           |
| `width`           | length      |          | Alias for [`qrcode`'s][qrcode] `height` option.                                                                                            |
The defaults are set like this:
```LateX
\fancyqrset{image padding=0,gradient=true,gradient angle=135,r color=teal,l color=purple}
```
[^1]: The package will automatically calculate the required `\FancyQrDoNotPrintSquare` (you have to ensure that the qr-code still has enough information to be readable). Therefore, the image will not scale with the qr-code.
[qrcode]: https://www.ctan.org/pkg/qrcode
](qr-example.tex)
A simple package to create fancy qr-codes with the help of the [`qrcode`][qrcode]-package.
You may use `\fancyqr` just like the normal `\qrcode` (`\fancyqr[]{}`). See the [documentation](https://media.githubusercontent.com/media/EagleoutIce/fancyqr/gh-pages/build/fancyqr-doc.pdf). If you just want to create a simple qr-code, please refer to the [minimal example](qr-minimal.tex).
*fancyqr* is actively developed by *Florian Sihler* (contact me at: ) under the [GPLv3 License](LICENSE). I am very happy about every contribution (see [CONTRIBUTING.md](CONTRIBUTING.md)). You can find it on CTAN ().
If you do want to hide a center square (e.g., because you want to embed an image), you can use `\FancyQrDoNotPrintSquare{}{}` to hide a rectangle with radius x and y set from the center (with `\FancyQrDoNotPrintRadius{}` you can apply a [rounding](https://github.com/EagleoutIce/fancyqr/pull/41) to this!). If you choose this option, the default `\FancyQrRoundCut` that rounds cut corners can be changed with `\FancyQrHardCut`.
At the moment, there are six other styles (`flat`, `frame`, `blobs`, `glitch`, and `dots`) that you can load (locally) by using `\FancyQrLoad{}`. The default style is named `default` and can be 'reset' by `\FancyQrLoad{default}` or `\FancyQrLoadDefault`.
There are the following extra qr-options (you can set all of them with `\fancyqrset{}`):
| Option            | Type        | Default  | Explanation                                                                                                                                |
| ----------------- | ----------- | :------: | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `classic`         | boolean     |  `false` | Use the classic qr-code style (black with flat rectangles, this loads the `flat` style).                                                    |
| `color`           | color       |          | Disables the `gradient` and sets the qr color accordingly.                                                                                 |
| `compensate`      | length      | `0.15pt` | Compensating overlap to add to avoid glitches.                                                                                             |
| `gradient angle`  | angle       |  `135`   | Change the gradient angle.                                                                                                                 |
| `gradient`        | boolean     |   true   | Toggle the color gradient                                                                                                                  |
| `image`           | LaTeX       |          | Automatically center an image (you have to care for the size and maybe adjust the `version` and `level` to keep the qr-code readable).[^1] |
| `image padding`   | number      |          | Additionally hide blocks (x & y) around the image.                                                                                         |
| `image x padding` | number      |   `0`    | Additionally hide blocks (x) around the image.                                                                                             |
| `image y padding` | number      |   `0`    | Additionally hide blocks (y) around the image.                                                                                             |
| `l color`         | color       | `purple` | Set the top left gradient color.                                                                                                           |
| `left color`      | color       |          | Alias for `l color`.                                                                                                                       |
| `level`           | L/M/Q/H     |   `M`    | [`qrcode`][qrcode] option affecting error correction (low, medium, quartile, high).                                                        |
| `padding`         | flag        |          | [`qrcode`][qrcode] option adding sufficient additional space around the qr-code.                                                           |
| `r color`         | color       |  `teal`  | Set the bottom right gradient color.                                                                                                       |
| `random color`    | colors      |          | Allow to set a random color pool to pick from.                                                                                             |
| `right color`     | color       |          | Alias for `r color`.                                                                                                                       |
| `size`            | length      |          | Alias for [`qrcode`'s][qrcode] `height` option.                                                                                            |
| `tight`           | flag        |          | [`qrcode`][qrcode] option adding no additional space around the qr-code.                                                                   |
| `version`         | [0..40] ∈ ℕ |   `0`    | [`qrcode`][qrcode] option affecting the size (tries to be as small as possible).                                                           |
| `width`           | length      |          | Alias for [`qrcode`'s][qrcode] `height` option.                                                                                            |
The defaults are set like this:
```LateX
\fancyqrset{image padding=0,gradient=true,gradient angle=135,r color=teal,l color=purple}
```
[^1]: The package will automatically calculate the required `\FancyQrDoNotPrintSquare` (you have to ensure that the qr-code still has enough information to be readable). Therefore, the image will not scale with the qr-code.
[qrcode]: https://www.ctan.org/pkg/qrcode