summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/xelatex/businesscard-qrcode/README.md232
-rw-r--r--Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/example.pdfbin0 -> 51983 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/example.tex35
-rw-r--r--Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/john-doe-hongkong.pdfbin0 -> 25034 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/john-doe-hongkong.tex17
-rw-r--r--Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/peter-muster-example-company-zuerich.pdfbin0 -> 39009 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/peter-muster-example-company-zuerich.tex19
-rw-r--r--Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/special-papersize.pdfbin0 -> 23324 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/special-papersize.tex18
-rw-r--r--Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/texstudio_d30266.pdfbin0 -> 20883 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/texstudio_d30266.tex15
-rw-r--r--Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/example.jpgbin0 -> 104653 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/john-doe-hongkong.jpgbin0 -> 81028 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/peter-muster-example-company-zuerich.jpgbin0 -> 92917 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/special-papersize.jpgbin0 -> 78562 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/texstudio_d30266.jpgbin0 -> 71205 bytes
-rw-r--r--Master/texmf-dist/tex/xelatex/businesscard-qrcode/businesscard-qrcode.cls318
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rw-r--r--Master/tlpkg/tlpsrc/businesscard-qrcode.tlpsrc0
-rw-r--r--Master/tlpkg/tlpsrc/collection-xetex.tlpsrc1
20 files changed, 656 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/xelatex/businesscard-qrcode/README.md b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/README.md
new file mode 100644
index 00000000000..45d702d29a2
--- /dev/null
+++ b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/README.md
@@ -0,0 +1,232 @@
+Businesscard with QR-Code
+=========================
+
+What happens, if you give your visiting card to someone? Either he manually types the text into his computer or mobilefone, or it will end up in a box and be forgotten. Nowadays data is required electronically, not on paper. Here is the solution: A visiting card with QR-Code that contains a full [vcard], so that it can be scanned with an [app] on the mobilefone and therefore automatically imported into the electronic contacts. This also works well, when you are offline and bluetooth transfer fails. So here is the highly configurable businescard or visitingcards with full [vcard] as QR-Code, ready to send to online printers. You can specify the exact size of the paper and the content within the paper, inluding generation of crop marks.
+
+Other available visitingcard templates, such as [mschlenker] distribute the cards on an A4 paper. But if you want a professional printer, such as [onlineprinters], then you need to be able to generate a PDF with exactly one card, an exactly defined border and crop marks.
+
+[![Example: John Doe from Hongkong](screenshots/john-doe-hongkong.jpg)](examples/john-doe-hongkong.tex)
+[![Example: Businesscard of Peter Muster from Zürich](screenshots/peter-muster-example-company-zuerich.jpg)](examples/peter-muster-example-company-zuerich.tex)
+[![Example: Nearly Real Examle Of My Card](screenshots/example.jpg)](examples/example.tex)
+
+
+Features
+========
+
+- all information is in the QR-Code
+- full privacy control: input is optional, specify only what you need, you decide what information to share, e.g. I print three cards, with phone and address, without address and only with electronical contacts, no phone nor address
+- optional icons, optional small hint texts
+- several alignments
+- freely defined size of paper and content
+- supports honoric titles, full names, address with post office box and extended information
+- supports telefone, email, [jabber] and [matrix] chat
+- supports several urls for your hompages
+- supports [gitea], [github], [git]
+- supports [facebook], [twitter], [google+], [youtube], [wikipedia]
+- supports [pgp] key url and fingerprint
+- supports [nextcloud federation id]
+
+
+Usage
+=====
+
+Installation
+------------
+
+Copy `businesscard-qrcode/businesscard-qrcode.cls` to your LaTeX class path. Simplest way for installation on Linux:
+
+```bash
+mkdir ~/texmf/tex/latex/businesscard-qrcode
+cp businesscard-qrcode/businesscard-qrcode.cls ~/texmf/tex/latex/businesscard-qrcode/
+```
+
+
+Compilation
+------------
+
+**Important:** You must use **`xelatex`** for compilation, because `xelatex` properly supports UTF-8 (e.g. needed for german umlauts or chinese characters). The package `inputenc` messes up with package `qrcode`.
+
+
+Document Structure
+------------------
+
+```latex
+\documentclass[<layout-options>]{businesscard-qrcode}
+
+<data-definitions>
+
+\begin{document}
+ \drawcard
+\end{document}
+```
+
+where `<layout-options>` and `<data-definitions>` are explained below.
+
+
+Layout Options
+--------------
+
+Layout options are set as options to the `\documentclass`, e.g.:
+
+ \documentclass[textwidth=0.7,qrwidth=0.25,www,nofill,iconright,rightalign,hint,icon,textfirst]{businesscard-qrcode}
+
+### Available Options:
+
+- `paperwidth=`: width of the physical paper where the card is printed on (incl. border), default: `89mm`
+- `paperheight=`: height of the physical paper where the card is printed on (incl. border), default: `59mm`
+- `contentwidth=`: width of the card's content without the border that is cut, default: `85mm`
+- `contentheight=`: height of the card's content without the border that is cut, default: `55mm`
+- `fontsize=`: any fontsize allowed in `extarticle`, that are `8pt`, `9pt`, `10pt`, `11pt`, `12pt`, `14pt`, `17pt` and `20pt`, default: `8pt`
+- `padding=`: padding within the card's content, default: `2mm`
+- `cutdist=`: distance in `mm` where the cut marks are set, default: `2`
+- `cutlen=`: length of the cut marks in `mm`, default: `1`
+- `textwidth=`: relative width of the text block `1` means full width, so `qrwidth` plus `textwidth` should be smaller than `1` the remainig space is left empty between the text and QR-Code, default: `0.55` (that's 55% of the available space)
+- `qrwidth=`: relative width of the QR-Code `1` means full width, so `qrwidth` plus `textwidth` should be smaller than `1` the remainig space is left empty between the text and QR-Code, default: `0.40` (that's 40% of the available space)
+- `lang=`: language of the wikipedia page, will be prepended before `wikipedia.org`, e.g. `de.wikipedia.org`, default: `de`
+- `address`or `noaddress`: disable rendering of the address in text and QR-Code, default: address
+- `hint` or `nohint`: show the little text hints, default: `hint`
+- `icon` or `noicon`: show the icons, default: `icon`
+- `rightalign` or `leftalign`: align text left or right, default: `rightalign`
+- `iconleft` or `iconright`: show icon left or right of the text, default: `iconleft`
+- `fill` or `nofill`: fill empty space between icon and text, default: `fill`
+- `qrfirst` or `textfirst`: switch position of QR-Code and text block, default: `qrfirst`
+- `https` or `www`: should links in the hints be prefixed with `https://` or `www.`, default: `https`
+
+
+Data Definitions
+----------------
+
+Your data is entered with commands in the document, e.g.:
+
+ \email{name@example.com}
+
+**Important:**: Spaces *must* be escaped by a backslash `\` in all data definitions, if they should be kept in the QR-Code. This is a limitation of the `qrcode`-package- Without escaping `\`, spaces are show in the text block, but not in the QR-Code. You may make use of this feature, if you do not escape the spaces in `\phone` and `\pgpfingerprint`, but everywhere else. This way, phone number and pgp fingerprint are condensed in the QR-Code.
+
+See this example_
+
+ \givennames{Juan\ Pablo}
+ \familynames{Martínez\ Escudero}
+ \additionalnames{Example\ Company\ Ltd.}
+ \street{Im\ Stutz\ 123}
+ \pobox{Postfach\ 4567}
+ \phone{+41 52 123 45 67}
+ \pgpurl{https://pgp.mit.edu/pks/lookup?op=get\&search=0xF62315D04D4C0C62}
+
+### Recognized Commands:
+
+- `\type`: either `home` or `work` for personal or business cards
+- `\givennames`: your first name and eventual middle names
+- `\familynames`: your family names
+- `\honoricprefix`: honorix name prefixes, e.g. academic titles
+- `\honoricsuffix`: honoric name suffixes
+- `\additionalnames`: additionl names — I use it for the company name in business cards
+- `\pobox`: post office box
+- `\extaddr`: address extension, e.g. name of a building or floor number
+- `\street`: street and number of the address
+- `\city`: name of the address location
+- `\region`: region of the address
+- `\zip`: zip code of the address
+- `\country`: full name of country of the address in the language of the card
+- `\phone`: your phone number, the phone is marked as mobile, so to be used for voice and text (SMS)
+- `\email`: your email address
+- `\jabber`: your [jabber] or xmpp chat address
+- `\matrixorg`: your [matrix] chat addres, hint: use [riot] messenger for [matrix]
+- `\cloud`: your [nextcloud federation id] — the url is prepended automatically
+- `\homepage`: url to a web site with «home» icon — without `https://` not `www` (unless it is required), this is prepended automatically
+- `\world`: url to a web site with «world» icon — without `https://` not `www` (unless it is required), this is prepended automatically
+- `\link`: url to a web site with «link» icon — without `https://` not `www` (unless it is required), this is prepended automatically
+- `\wordpress`: url to a web site with «wordpress» icon — without `https://` not `www` (unless it is required), this is prepended automatically
+- `\drupal`: url to a web site with «» icon — without `https://` not `www` (unless it is required), this is prepended automatically
+- `\joomla`: url to a web site with «joomla» icon — without `https://` not `www` (unless it is required), this is prepended automatically
+- `\wikipedia`: if you or your company have a [wikipedia] entry, specify documentclass option `lang` for the language of you entry and use this definition for the name of your page — the url is prepended automatically
+- `\git`: the url of your [git] repository — without `https://` not `www` (unless it is required), this is prepended automatically
+- `\gitea`: the url of your [gitea] project page, you can use this tag also for other project management sites, such as [gogs] — without `https://` not `www` (unless it is required), this is prepended automatically
+- `\github`: your account name on [github] — only the name of the account, the url is prepended automatically
+- `\facebook`: your account name on [facebook] or the name of your page — only the name of the account or page, the url is prepended automatically
+- `\twitter`: your account name on [twitter] — only the name of the account, the url is prepended automatically
+- `\youtube`: your account name on [youtube] — only the name of the account, the url is prepended automatically
+- `\google`: your account name on [google+] — only the name of the account, the url is prepended automatically
+- `\pgpurl`: the full url to your pgp public key (only added to the QR-Code, not shown in the text)
+- `\pgpfingerprint`: the fingerprint of your pgp public key
+
+
+Print the Card
+==============
+
+The card is designed for professional printing service, such as [onlineprinters]. Please *check* the card and the *QR-Code* well before you pay money for printing! Choose a format, default is `89mm×59mm` with 2mm boder, so the card content is `85mm×55mm`. But the card can be adapted to any other printing format. To print cards of size `10cm×5cm` with `2mm` cut, you specify, [e.g.](examples/special-papersize.tex):
+
+ \documentclass[paperheight=5.4cm,paperwidth=10.4cm,
+ contentheight=5cm,contentwidth=10cm,
+ cutdist=2]
+ {businesscard-qrcode}
+
+![example with special paper size](screenshots/special-papersize.jpg)
+
+
+Usage Example
+=============
+
+Include the documentclass, define your data and add the document environment:
+
+```latex
+\documentclass{businesscard-qrcode}
+
+\type{home}
+\givennames{An}
+\familynames{Example}
+\street{Einbahnstrasse\ 84}
+\city{Irgendwo}
+\zip{1001}
+\country{Switzerland}
+\homepage{example.com}
+\email{name@example.com}
+
+\begin{document}
+ \drawcard
+\end{document}
+```
+
+Save it as file [texstudio_d30266.tex] and compile it to get [texstudio_d30266.pdf]:
+
+ xelatex -synctex=1 -interaction=nonstopmode texstudio_d30266.tex
+
+![the visiting card resulting from the usage example](screenshots/texstudio_d30266.jpg)
+
+See [examples] for more examples.
+
+
+Need More
+=========
+
+If you are missing a feature or a configuration option, consult the [project] page. Just open a [ticket] and the [author] will care about it. Or extend it, it's [lgpl].
+
+
+
+[examples]: examples "more examples"
+[vcard]: https://tools.ietf.org/html/rfc6350 "RFC 6350, vCard Format Specification Version 4.0"
+[app]: https://f-droid.org/de/packages/com.google.zxing.client.android/ "Barcode Scanner"
+[onlineprinters]: https://de.onlineprinters.ch/k/standardvisitenkarten "onlineprinters.ch"
+[mschlenker]: https://gist.github.com/mschlenker/f60e0f15ff1edfc4881c "visitenkarten-qr.tex"
+[texstudio_d30266.tex]: examples/texstudio_d30266.tex "simple example source file"
+[texstudio_d30266.pdf]: examples/texstudio_d30266.pdf "simple example resulting pdf"
+[example.tex]: examples/example.tex "larger example source file"
+[example.pdf]: examples/example.pdf "larger example resulting pdf"
+[jabber]: https://en.wikipedia.org/wiki/Jabber.org "the Jabber / XMPP instant messaging standard"
+[matrix]: https://matrix.org "the matrix instant messaging standard"
+[riot]: https://riot.im "matrix compatible instant messaging tool for all platforms"
+[gitea]: https://gitea.io "github-like project repository, a gogs clone"
+[gogs]: https://gitea.io "github-like project repository"
+[github]: https://github.com "a project repository"
+[git]: https://git-scm.com "a distributed version control system"
+[facebook]: https://facebook.com "a social website"
+[twitter]: https://twitter.com "a social website"
+[google+]: https://plus.google.com "a social website"
+[youtube]: https://youtube.com "a video website"
+[wikipedia]: https://wikipedia.org "the online encyclopedia"
+[pgp]: https://en.wikipedia.org/wiki/Pretty_Good_Privacy "pretty good privacy — encryption standard"
+[nextcloud federation id]: https://nextcloud.com/federation "share your cloud across others"
+[I]: https://marc.wäckerlin.ch "Marc Wäckerlin"
+[ticket]: https://mrw.sh/templates/businesscard-qrcode/issues "open issues and tickets for my LaTeX-templates project"
+[author]: https://marc.wäckerlin.ch "Marc Wäckerlin"
+[project]: https://mrw.sh/templates/businesscard-qrcode "the main project page"
+[lgpl]: https://www.gnu.org/licenses/lgpl-3.0 "Library GNU Public License"
diff --git a/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/example.pdf b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/example.pdf
new file mode 100644
index 00000000000..e6bbc34a1e1
--- /dev/null
+++ b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/example.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/example.tex b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/example.tex
new file mode 100644
index 00000000000..cab94fff375
--- /dev/null
+++ b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/example.tex
@@ -0,0 +1,35 @@
+\documentclass[noaddress,textwidth=0.58,qrwidth=0.35,https,fill,iconright,leftalign,hint,icon,textfirst]{businesscard-qrcode}
+
+\phone{+12 34 567 89 00}
+\type{home}
+\honoricprefix{MSc\ ETH}
+\givennames{Marc}
+\familynames{Wäckerlin}
+\homepage{marc.wäckerlin.ch}
+%\link{marc.wäckerlin.ch}
+%\git{mrw.sh}
+\gitea{mrw.sh}
+\github{mwaeckerlin}
+\cloud{name@nextcloud.org}
+\world{mrw.world}
+%\wordpress{marc.wäckerlin.ch}
+%\wikipedia{Marc\_Wäckerlin}
+%\drupal{religionsfrei.info}
+%\joomla{postsuisseid.ch}
+%\youtube{WintiPirat}
+\facebook{marc.waeckerlin}
+%\google{MarcWäckerlin}
+\twitter{GGR\_Winti}
+\email{name@example.com}
+\matrixorg{@name:matrix.org}
+\street{Irgendwiestrasse\ 84}
+\city{Irgendwo}
+\zip{1001}
+\country{Switzerland}
+\pgpfingerprint{4C8B 41AF FEC4 ED9D 3AF9 8500 F623 15D0 4D4C 0C62}
+\pgpurl{https://pgp.mit.edu/pks/lookup?op=get\&search=0xF62315D04D4C0C62}
+%\jabber{\email}
+
+\begin{document}
+ \drawcard
+\end{document}
diff --git a/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/john-doe-hongkong.pdf b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/john-doe-hongkong.pdf
new file mode 100644
index 00000000000..ba0f0c4d79a
--- /dev/null
+++ b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/john-doe-hongkong.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/john-doe-hongkong.tex b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/john-doe-hongkong.tex
new file mode 100644
index 00000000000..08659873bc9
--- /dev/null
+++ b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/john-doe-hongkong.tex
@@ -0,0 +1,17 @@
+\documentclass[nofill,leftalign,nohint,fontsize=9pt]{businesscard-qrcode}
+
+\type{home}
+\givennames{John}
+\familynames{Doe}
+\extaddr{20/F.,\ One\ Kowloon}
+\city{Kowloon Bay}
+\street{1\ Wang\ Yuen\ Street}
+\country{Hongkong}
+\phone{(852)\ 1234-5678}
+\homepage{example.com}
+\email{name@example.com}
+
+\begin{document}
+ %\StrSubstitute{John}{hn}{e}
+ \drawcard
+\end{document}
diff --git a/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/peter-muster-example-company-zuerich.pdf b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/peter-muster-example-company-zuerich.pdf
new file mode 100644
index 00000000000..e8cd18239a5
--- /dev/null
+++ b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/peter-muster-example-company-zuerich.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/peter-muster-example-company-zuerich.tex b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/peter-muster-example-company-zuerich.tex
new file mode 100644
index 00000000000..48be708d577
--- /dev/null
+++ b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/peter-muster-example-company-zuerich.tex
@@ -0,0 +1,19 @@
+\documentclass[nohint,textwidth=0.55,rightalign,nofill]{businesscard-qrcode}
+
+\type{work}
+\givennames{Peter}
+\familynames{Muster}
+\additionalnames{Example\ Company\ Ltd.}
+\street{Im\ Stutz\ 123}
+\pobox{Postfach\ 4567}
+\zip{8000}
+\city{Zürich}
+\country{Switzerland}
+\phone{+41 44 123 45 67}
+\email{peter.muster@example.com}
+\pgpfingerprint{4C8B 41AF FEC4 ED9D 3AF9 8500 F623 15D0 4D4C 0C62}
+\pgpurl{https://pgp.mit.edu/pks/lookup?op=get\&search=0xF62315D04D4C0C62}
+
+\begin{document}
+ \drawcard
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/special-papersize.pdf b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/special-papersize.pdf
new file mode 100644
index 00000000000..8585349dbb6
--- /dev/null
+++ b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/special-papersize.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/special-papersize.tex b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/special-papersize.tex
new file mode 100644
index 00000000000..b239db0a0ef
--- /dev/null
+++ b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/special-papersize.tex
@@ -0,0 +1,18 @@
+\documentclass[paperheight=5.4cm,paperwidth=10.4cm,
+ contentheight=5cm,contentwidth=10cm,
+ cutdist=2,
+ textwidth=0.6,
+ qrwidth=.35]
+ {businesscard-qrcode}
+
+\givennames{Gretchen\ Frieda}
+\familynames{Huber\ Müller}
+\street{Waldstrasse\ 15}
+\zip{9876}
+\city{Nirgendwo}
+\phone{+41 78 654 32 10}
+\email{gretchen.huber@example.com}
+
+\begin{document}
+ \drawcard
+\end{document}
diff --git a/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/texstudio_d30266.pdf b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/texstudio_d30266.pdf
new file mode 100644
index 00000000000..66d13fecd17
--- /dev/null
+++ b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/texstudio_d30266.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/texstudio_d30266.tex b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/texstudio_d30266.tex
new file mode 100644
index 00000000000..a3002e86e8f
--- /dev/null
+++ b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/examples/texstudio_d30266.tex
@@ -0,0 +1,15 @@
+\documentclass{businesscard-qrcode}
+
+\type{home}
+\givennames{An}
+\familynames{Example}
+\street{Einbahnstrasse\ 84}
+\city{Irgendwo}
+\zip{1001}
+\country{Switzerland}
+\homepage{example.com}
+\email{name@example.com}
+
+\begin{document}
+ \drawcard
+\end{document}
diff --git a/Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/example.jpg b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/example.jpg
new file mode 100644
index 00000000000..6a29694028a
--- /dev/null
+++ b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/example.jpg
Binary files differ
diff --git a/Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/john-doe-hongkong.jpg b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/john-doe-hongkong.jpg
new file mode 100644
index 00000000000..b39b9205a82
--- /dev/null
+++ b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/john-doe-hongkong.jpg
Binary files differ
diff --git a/Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/peter-muster-example-company-zuerich.jpg b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/peter-muster-example-company-zuerich.jpg
new file mode 100644
index 00000000000..3d7da48426b
--- /dev/null
+++ b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/peter-muster-example-company-zuerich.jpg
Binary files differ
diff --git a/Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/special-papersize.jpg b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/special-papersize.jpg
new file mode 100644
index 00000000000..5ca14732890
--- /dev/null
+++ b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/special-papersize.jpg
Binary files differ
diff --git a/Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/texstudio_d30266.jpg b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/texstudio_d30266.jpg
new file mode 100644
index 00000000000..0f62c412043
--- /dev/null
+++ b/Master/texmf-dist/doc/xelatex/businesscard-qrcode/screenshots/texstudio_d30266.jpg
Binary files differ
diff --git a/Master/texmf-dist/tex/xelatex/businesscard-qrcode/businesscard-qrcode.cls b/Master/texmf-dist/tex/xelatex/businesscard-qrcode/businesscard-qrcode.cls
new file mode 100644
index 00000000000..df8b013f0b9
--- /dev/null
+++ b/Master/texmf-dist/tex/xelatex/businesscard-qrcode/businesscard-qrcode.cls
@@ -0,0 +1,318 @@
+% Author: Marc Wäckerlin
+% License: LGPL
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{businesscard-qrcode}[2018/08/15 version 1.2 ready for ctan]
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% option evaluation
+\RequirePackage{kvoptions}
+\SetupKeyvalOptions{
+ family=BCQ,
+ prefix=BCQ@
+}
+\DeclareStringOption[89mm]{paperwidth}
+\DeclareStringOption[59mm]{paperheight}
+\DeclareStringOption[85mm]{contentwidth}
+\DeclareStringOption[55mm]{contentheight}
+\DeclareStringOption[8pt]{fontsize}
+\DeclareStringOption[2mm]{padding}
+\DeclareStringOption[2]{cutdist}
+\DeclareStringOption[1]{cutlen}
+\DeclareStringOption[0.50]{textwidth}
+\DeclareStringOption[0.40]{qrwidth}
+\DeclareStringOption[de]{lang}
+\DeclareBoolOption[true]{address}
+\DeclareComplementaryOption{noaddress}{address}
+\DeclareBoolOption[true]{hint}
+\DeclareComplementaryOption{nohint}{hint}
+\DeclareBoolOption[true]{icon}
+\DeclareComplementaryOption{noicon}{icon}
+\DeclareBoolOption[true]{rightalign}
+\DeclareComplementaryOption{leftalign}{rightalign}
+\DeclareBoolOption[true]{iconleft}
+\DeclareComplementaryOption{iconright}{iconleft}
+\DeclareBoolOption[true]{fill}
+\DeclareComplementaryOption{nofill}{fill}
+\DeclareBoolOption[true]{qrfirst}
+\DeclareComplementaryOption{textfirst}{qrfirst}
+\DeclareBoolOption[true]{https}
+\DeclareComplementaryOption{www}{https}
+\DeclareDefaultOption{\@unknownoptionerror}
+\ProcessKeyvalOptions*
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% definitions from the options
+\def\content{paperwidth=\BCQ@contentwidth,paperheight=\BCQ@contentheight}
+\def\papersize{width=\BCQ@paperwidth,height=\BCQ@paperheight}
+\def\padding{\BCQ@padding} % padding around the content
+\def\border{\BCQ@cutdist} % distance between start of cutmark and content in mm
+\def\cutlen{\BCQ@cutlen} % length of ct marks in mm
+\def\textpercents{\BCQ@textwidth} % size of text part 0..1
+\def\imagepercents{\BCQ@qrwidth} % size of qrcode image part 0..1
+\def\lang{\BCQ@lang}
+\def\protdisplay{\ifBCQ@https https://\else www.\fi}
+\def\protprefix{\ifBCQ@https https://\fi}
+\ifBCQ@address\def\printaddress{}\fi
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% global dependencies and settings
+\LoadClass[\BCQ@fontsize]{extarticle}
+\RequirePackage{marvosym}
+\RequirePackage{fontawesome}
+\RequirePackage[final]{qrcode}
+\RequirePackage{etoolbox}
+\RequirePackage{DejaVuSans}
+\RequirePackage[T1]{fontenc}
+\RequirePackage{wrapfig}
+\RequirePackage[\content,top=\padding,left=\padding,right=\padding,bottom=\padding]{geometry}
+%\RequirePackage{pbox}
+\RequirePackage{varwidth}
+\RequirePackage{calc}
+\pagestyle{empty}
+\setlength{\parindent}{0pt}
+\renewcommand*\familydefault{\sfdefault}
+\setlength{\fboxsep}{0pt}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% data registration
+\newcommand\registerData[1]{
+ \expandafter\newcommand\csname #1\endcsname[1]{
+ \expandafter\def\csname X#1\endcsname{##1}
+ }
+}
+\registerData{type}
+\registerData{givennames}
+\registerData{familynames}
+\registerData{honoricprefix}
+\registerData{honoricsuffix}
+\registerData{additionalnames}
+\registerData{pobox}
+\registerData{extaddr}
+\registerData{street}
+\registerData{city}
+\registerData{region}
+\registerData{zip}
+\registerData{country}
+\registerData{phone}
+\registerData{email}
+\registerData{jabber}
+\registerData{matrixorg}
+\registerData{cloud}
+\registerData{homepage}
+\registerData{wordpress}
+\registerData{drupal}
+\registerData{joomla}
+\registerData{wikipedia}
+\registerData{link}
+\registerData{world}
+\registerData{git}
+\registerData{gitea}
+\registerData{github}
+\registerData{facebook}
+\registerData{twitter}
+\registerData{youtube}
+\registerData{google}
+\registerData{pgpurl}
+\registerData{pgpfingerprint}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% auxiliary commands
+\newcommand\enforceright{\leftskip0pt plus 1fill\rightskip0pt}
+\newcommand\exec[1]{\csname #1\endcsname}
+\newcommand\insa[3][]{\ifcsdef{#2}{
+
+ \ifBCQ@iconleft
+ \ifBCQ@icon\parbox{1em}{\centering\exec{#3}}\ \fi\ifBCQ@hint{\tiny#1}\fi\ifBCQ@fill\hfill\fi\exec{#2}
+ \else
+ \ifBCQ@hint{\tiny#1\ }\fi\exec{#2}\ifBCQ@fill\hfill\fi\ifBCQ@icon\ \parbox{1em}{\centering\exec{#3}}\fi
+ \fi
+}{}}
+\newcommand\ifexists[2]{\ifcsdef{#1}{#2}{}}
+\newcommand\ifboth[3]{\ifcsdef{#1}{\ifcsdef{#2}{#3}{}}{}}
+\newcommand\ifany[3]{\ifcsdef{#1}{#3}{\ifcsdef{#2}{#3}{}}}
+\newcommand\cond[1]{\ifcsdef{#1}{\exec{#1}}{}}
+\newcommand\heightscale{\dimexpr\textheight-\ifcsempty{name}{0em}{2em}-\ifcsdef{Xpgpfingerprint}{2em}{0em}-\ifcsdef{Xadditionalnames}{2em}{0em}\relax}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% name - assemble full name from the parts, such as Xgivennames and Xfamilynames
+\newcommand\name{\ifexists{Xhonoricprefix}{\Xhonoricprefix\ }\ifexists{Xgivennames}{\Xgivennames\ }\ifexists{Xfamilynames}{\Xfamilynames}\ifexists{Xhonoricsuffix}{\ \Xhonoricsuffix}}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% vcard - the content of the vcard
+\newcommand\vcard{BEGIN:VCARD^^J
+VERSION:4.0^^J
+N:\cond{Xfamilynames};\cond{Xgivennames};\cond{Xadditionalnames};\cond{Xhonoricprefix};\cond{Xhonoricsuffix}^^J
+FN:\name\ifexists{Xadditionalnames}{\ifcsempty{name}{}{\ }\Xadditionalnames}^^J
+\ifexists{printaddress}{ADR\ifexists{Xtype}{;TYPE=\Xtype}:\cond{Xpobox};\cond{Xextaddr};\cond{Xstreet};\cond{Xcity};\cond{Xregion};\cond{Xzip};\cond{Xcountry}^^J}
+\ifexists{Xphone}{TEL;VALUE=uri;TYPE=\ifexists{Xtype}{\Xtype,}voice,text:tel:\Xphone^^J}
+\ifexists{Xemail}{EMAIL\ifexists{Xtype}{;TYPE=\Xtype}:\Xemail^^J}
+\ifexists{Xjabber}{IMPP;TYPE=XMPP:\Xjabber^^J}
+\ifexists{Xmatrixorg}{IMPP;TYPE=MATRIX:\Xmatrixorg^^J}
+\ifexists{Xcloud}{URL:https://nextcloud.com/federation/\#\Xcloud^^J}
+\ifexists{Xhomepage}{URL:https://\Xhomepage^^J}
+\ifexists{Xwordpress}{URL:https://\Xwordpress^^J}
+\ifexists{Xdrupal}{URL:https://\Xdrupal^^J}
+\ifexists{Xjoomla}{URL:https://\Xjoomla^^J}
+\ifexists{Xwikipedia}{URL:https://\lang.wikipedia.org/wiki/\Xwikipedia^^J}
+\ifexists{Xlink}{URL:https://\Xlink^^J}
+\ifexists{Xworld}{URL:https://\Xworld^^J}
+\ifexists{Xgit}{URL:https://\Xgit^^J}
+\ifexists{Xgitea}{URL:https://\Xgitea^^J}
+\ifexists{Xgithub}{URL:https://github.com/\Xgithub^^J}
+\ifexists{Xfacebook}{URL:https://facebook.com/\Xfacebook^^J}
+\ifexists{Xtwitter}{URL:https://twitter.com/\Xtwitter^^J}
+\ifexists{Xyoutube}{URL:https://youtube.com/user/\Xyoutube^^J}
+\ifexists{Xgoogle}{URL:https://plus.google.com/+\Xgoogle^^J}
+\ifexists{Xpgpurl}{KEY;MEDIATYPE=application/pgp-keys:\Xpgpurl^^J}
+\ifexists{Xpgpfingerprint}{KEY:data:application/x-pgp-fingerprint,\Xpgpfingerprint^^J}
+END:VCARD^^J}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% address - the address as shown in the textbox
+\newcommand\address{
+
+ \cond{Xpobox}
+
+ \cond{Xextaddr}
+
+ \cond{Xstreet}
+
+ \cond{Xzip} \cond{Xcity}
+
+ \cond{Xregion} \cond{Xcountry}
+
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% inserttext - assemble the textbox
+\newcommand\inserttext{
+ %\frame
+ {
+ \begin{minipage}[c][\heightscale][c]{\textpercents\textwidth}
+ \ifBCQ@rightalign\begin{flushright}\fi
+ \ifexists{printaddress}{
+ \ifBCQ@iconleft
+ \ifBCQ@icon\parbox[c]{1em}{\faMapMarker}\ \ifBCQ@fill\hfill\fi\fi
+ %\frame{
+ %\pbox[t]{\dimexpr\textwidth-2em\relax}{
+ \begin{varwidth}{\dimexpr\textwidth-2em\relax}
+ \ifBCQ@rightalign\enforceright\fi\address
+ \end{varwidth}
+ %}
+ %}
+ \else
+ %\pbox[t]{\dimexpr\textwidth-2em\relax}{
+ \begin{varwidth}{\dimexpr\textwidth-2em\relax}
+ \ifBCQ@rightalign\enforceright\fi\address
+ \end{varwidth}
+ %}
+ \ifBCQ@icon\ifBCQ@fill\hfill\fi\ \parbox[c]{1em}{\faMapMarker}\fi
+ \fi
+ \vspace{1em}
+ }
+
+ \insa[tel:]{Xphone}{faMobile}\insa[mailto:]{Xemail}{Email}\insa[xmpp]{Xjabber}{faCommentsO}\insa[matrix.org]{Xmatrixorg}{faCommentsO}\insa[nextcloud-id]{Xcloud}{faCloud}\insa[\protdisplay]{Xhomepage}{faHome}\insa[\protdisplay]{Xwordpress}{faWordpress}\insa[\protdisplay]{Xdrupal}{faDrupal}\insa[\protdisplay]{Xjoomla}{faJoomla}\insa[{\protprefix}\lang.wikipedia.org/wiki/]{Xwikipedia}{faWikipediaW}\insa[\protdisplay]{Xlink}{faLink}\insa[\protdisplay]{Xworld}{faGlobe}\insa[\protdisplay]{Xgit}{faGit}\insa[\protdisplay]{Xgitea}{faGithubAlt}\insa[{\protprefix}github.com/]{Xgithub}{faGithub}\insa[{\protprefix}facebook.com/]{Xfacebook}{faFacebook}\insa[{\protprefix}twitter.com/]{Xtwitter}{faTwitter}\insa[{\protprefix}youtube.com/user/]{Xyoutube}{faYoutube}\insa[{\protprefix}plus.google.com/+]{Xgoogle}{faGooglePlus}
+
+ \ifBCQ@rightalign\end{flushright}\fi
+ \end{minipage}
+}
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% insertqrcode - insert the qr-code
+\newcommand\insertqrcode{
+ %\frame
+ {
+ \begin{minipage}[c][\heightscale][c]{\imagepercents\textwidth}
+ \qrcode[level=Q,version=0,height=\textwidth]{\vcard}
+ \end{minipage}
+}
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% insertname - insert the name on the top
+\newcommand\insertname{
+ %\frame
+ %\begin{minipage}{\textwidth}
+ %\pbox[t]{0.9\textwidth}
+ {\bfseries
+
+ \cond{name}
+
+ \cond{Xadditionalnames}
+
+ }
+ %\end{minipage}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% drawcard - assemble all blocks into the visiting card
+\newcommand\drawcard{
+ \ifBCQ@rightalign\begin{flushright}\fi
+ \insertname
+ \noindent\makebox[\linewidth]{\rule{\paperwidth}{0.4pt}} % horizontal line
+ \vfill
+ \ifBCQ@qrfirst
+ \insertqrcode
+ \hfill
+ \inserttext
+ \else
+ \inserttext
+ \hfill
+ \insertqrcode
+ \fi
+ \ifexists{Xpgpfingerprint}{
+ \vfill
+ \ifBCQ@iconleft
+ \faLock\ifBCQ@hint{\tiny\ pgp}\fi\hfill{\small\Xpgpfingerprint}
+ \else
+ {\small\Xpgpfingerprint}\hfill\ifBCQ@hint{\tiny{pgp\ }}\fi\faLock
+ \fi
+ }
+ \ifBCQ@rightalign\end{flushright}\fi
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% cut / crop marks
+\RequirePackage[\papersize,noinfo,center,pdftex]{crop}
+\newcommand\tl{
+ \begin{picture}(0,0)
+ \thinlines\unitlength1mm
+ \put(-\border,0){\line(1,0){\cutlen}}
+ \put(0,\border){\line(0,-1){\cutlen}}
+ \end{picture}
+}
+\newcommand\tr{
+ \begin{picture}(0,0)
+ \thinlines\unitlength1mm
+ \put(\border,0){\line(-1,0){\cutlen}}
+ \put(0,\border){\line(0,-1){\cutlen}}
+ \end{picture}
+}
+\newcommand\bl{
+ \begin{picture}(0,0)
+ \thinlines\unitlength1mm
+ \put(-\border,0){\line(1,0){\cutlen}}
+ \put(0,-\border){\line(0,1){\cutlen}}
+ \end{picture}
+}
+\newcommand\br{
+ \begin{picture}(0,0)
+ \thinlines\unitlength1mm
+ \put(\border,0){\line(-1,0){\cutlen}}
+ \put(0,-\border){\line(0,1){\cutlen}}
+ \end{picture}
+}
+\cropdef[]\tl\tr\bl\br{cut}
+\crop[cut]
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 9ca7d959996..31b5ac9c73a 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -127,7 +127,7 @@ my @TLP_working = qw(
boxedminipage boxedminipage2e boxhandler bpchem bpolynomial
br-lex bracketkey braids braille braket brandeis-dissertation
breakcites breakurl bredzenie breqn bropd brushscr
- bullcntr bundledoc burmese bussproofs
+ bullcntr bundledoc burmese businesscard-qrcode bussproofs
bxbase bxcalc bxcjkjatype bxdpx-beamer bxdvidriver
bxjaprnind bxpapersize bxpdfver bxeepic bxenclose
bxjalipsum bxjscls bxnewfont bxorigcapt bxtexlogo bytefield
diff --git a/Master/tlpkg/tlpsrc/businesscard-qrcode.tlpsrc b/Master/tlpkg/tlpsrc/businesscard-qrcode.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/businesscard-qrcode.tlpsrc
diff --git a/Master/tlpkg/tlpsrc/collection-xetex.tlpsrc b/Master/tlpkg/tlpsrc/collection-xetex.tlpsrc
index 689dde10bb7..114354cf9dd 100644
--- a/Master/tlpkg/tlpsrc/collection-xetex.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-xetex.tlpsrc
@@ -12,6 +12,7 @@ depend bidicontour
depend bidipagegrid
depend bidishadowtext
depend bidipresentation
+depend businesscard-qrcode
depend cqubeamer
depend fixlatvian
depend font-change-xetex