summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/hvqrurl
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-11-30 03:00:45 +0000
committerNorbert Preining <norbert@preining.info>2019-11-30 03:00:45 +0000
commit763d7adeac2bc39fb895a0748f12422d5c959d4c (patch)
treeeb54a7ed141f7fd10a3bbd0f8ff7d478b22f06fc /macros/latex/contrib/hvqrurl
parentb4325b27feab3a4183f51bfe598686eb72a8c1e0 (diff)
CTAN sync 201911300300
Diffstat (limited to 'macros/latex/contrib/hvqrurl')
-rw-r--r--macros/latex/contrib/hvqrurl/Changes2
-rw-r--r--macros/latex/contrib/hvqrurl/README10
-rw-r--r--macros/latex/contrib/hvqrurl/doc/hvqrurl.pdfbin0 -> 95763 bytes
-rw-r--r--macros/latex/contrib/hvqrurl/doc/hvqrurl.tex150
-rw-r--r--macros/latex/contrib/hvqrurl/latex/hvqrurl.sty47
5 files changed, 209 insertions, 0 deletions
diff --git a/macros/latex/contrib/hvqrurl/Changes b/macros/latex/contrib/hvqrurl/Changes
new file mode 100644
index 0000000000..dbf1c990f2
--- /dev/null
+++ b/macros/latex/contrib/hvqrurl/Changes
@@ -0,0 +1,2 @@
+hvqrurl.sty:
+0.01 2019-11-27 - first CTAN version
diff --git a/macros/latex/contrib/hvqrurl/README b/macros/latex/contrib/hvqrurl/README
new file mode 100644
index 0000000000..12b48923cb
--- /dev/null
+++ b/macros/latex/contrib/hvqrurl/README
@@ -0,0 +1,10 @@
+hvqrurl
+Placing an URL as a QR code into the margin of the text.
+The package loads by default url, qrcode, marginnote,
+xcolor, and xkeyval
+
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
+
+hvoss@tug.org \ No newline at end of file
diff --git a/macros/latex/contrib/hvqrurl/doc/hvqrurl.pdf b/macros/latex/contrib/hvqrurl/doc/hvqrurl.pdf
new file mode 100644
index 0000000000..f1e8eb176c
--- /dev/null
+++ b/macros/latex/contrib/hvqrurl/doc/hvqrurl.pdf
Binary files differ
diff --git a/macros/latex/contrib/hvqrurl/doc/hvqrurl.tex b/macros/latex/contrib/hvqrurl/doc/hvqrurl.tex
new file mode 100644
index 0000000000..23196651ec
--- /dev/null
+++ b/macros/latex/contrib/hvqrurl/doc/hvqrurl.tex
@@ -0,0 +1,150 @@
+%% $Id: hvqrurl.tex 1118 2019-11-29 07:56:18Z herbert $
+\listfiles
+\errorcontextlines=100
+\documentclass[twoside,usegeometry]{scrartcl}
+\usepackage{libertinus-otf}
+\setmonofont[Scale=MatchLowercase,FakeStretch=0.9]{DejaVu Sans Mono}
+\usepackage{microtype}
+\usepackage[english]{babel}
+\usepackage[automark]{scrlayer-scrpage}
+\pagestyle{scrheadings}
+
+\usepackage[showframe=false]{geometry}
+\usepackage{listings}
+%
+\lstset{%
+ language=[LaTeX]TeX,%
+ showstringspaces=false,%
+ tabsize=5,%
+ frame=single,%
+% lineskip=-1pt,%
+ extendedchars=true,%
+ basicstyle={\small\ttfamily},%
+% numbers=left,%
+% stepnumber=1,%
+% numberstyle=\tiny,%
+% xleftmargin=2em,%
+ breaklines=true}
+%
+
+\usepackage{ragged2e}
+\usepackage{hvqrurl}
+\usepackage{xindex}
+
+\usepackage{hvdoctools}
+
+\usepackage{hyperref}
+\hypersetup{urlcolor=blue, linktocpage, colorlinks=true}%
+
+\begin{document}
+\title{Package \texttt{hvqrurl}\\Creating a QR-code of an URL in the margin \\ver 0.01}
+\author{Herbert Voß\thanks{\protect\url{hvoss@tug.org}}}
+\date{\today}
+\maketitle
+
+
+\begin{abstract}
+This package allows to draw an URL as a QR code into the margin of a one- or twosided
+document. The following packages are loaded by default:
+\LPack{qrcode}, \LPack{marginnote}, \LPack{url}, \LPack{xcolor},
+and
+\LPack{xkeyval}.
+\end{abstract}
+
+
+\section{The macro}
+
+
+\begin{BDef}
+\Lcs{hvqrset}\Largb{key=value list}\\
+\Lcs{hvqrurl}\Largb{key=value list}\Largb{URL}\\
+\Lcs{hvqrurl*}\Largb{key=value list}\Largb{URL}
+\end{BDef}
+
+With the default macro \Lcs{hvqrurl} the URL is printed as as QR code into the margin and
+in the the text as usual with the macro \Lcs{url}, for example \hvqrurl{https://mirror.ctan.org/pkg/hvqrurl}.
+With \LPack{hyperref} you'll get the the same color for the QR code as for the URL link and, of course,
+is also a link. This example shows the default setting for a QR code.
+
+
+\section{Optional arguments}
+
+\subsection{No link with \LPack{hyperref}}
+
+\begin{lstlisting}
+With \Lkeyset{qrlink=nolink} the QR code is no link: \hvqrurl[qrlink=nolink]{https://mirror.ctan.org/pkg/hvqrurl}.
+The default setting is \Lkeyset{qrlink=link}.
+\end{lstlisting}
+
+With \Lkeyset{qrlink=nolink} the QR code is no link: \hvqrurl[qrlink=nolink]{https://mirror.ctan.org/pkg/hvqrurl}.
+The default setting is \Lkeyset{qrlink=link}. Without using \LPack{hyperref} this optional argument
+has no meaning.
+
+\subsection{Color of the QR code}
+Without using \LPack{hyperref} the default color is \Lkeyval{black}. It can be changed by
+the optional argument \Lkeyword{qrcolor}. The package \LPack{xcolor}\hvqrurl*[qrlink=nolink,qrcolor=red!40!white]{http://mirror.ctan.org/pkg/xcolor}
+ is loaded by default,
+the reason why an extended color definition is possible. For this example we used
+
+\begin{lstlisting}
+The package \LPack{xcolor}\hvqrurl*[qrcolor=red!40!white]{http://mirror.ctan.org/pkg/xcolor}
+ is loaded by default, ...
+\end{lstlisting}
+
+\subsection{Vertical position of the QR code}
+By default the baseline of the QR code is nearly at the same height as the baseline of the textline.
+However, when changing the size of the QR code it may be nessesary to move up or down the QR code.
+The default value of \Lkeyword{qradjust} is \verb|-1.5\normalbaselineskip|. Setting the value
+to 0pt the QR code \hvqrurl*[qrlink=nolink,qradjust=0pt]{http://ctan.org/} is moved down which is the default
+setting without a vertical adjustment.
+
+\begin{lstlisting}
+The default value of \Lkeyword{qradjust} is \verb|-1.5\normalbaselineskip|. Setting the value
+to 0pt the QR code \hvqrurl*[qradjust=0pt]{http://ctan.org/} is moved down which is the default
+setting without a vertical adjustment.
+\end{lstlisting}
+
+
+\subsection{Size of the QR code}
+By default the QR code is a square with height and width of 1cm.
+it can be changed by setting \Lkeyword{qrheight} to another value, for example to 2cm:
+\hvqrurl*[qrlink=nolink,qrheight=2cm]{https://identity.fu-berlin.de/idp-fub/profile/SAML2/Redirect/SSO;jsessionid=71C984647E3B8F2E716CA067CB13387E?execution=e1s1}
+This is an exetremely long url where it may make sense to use a larger QR code.
+
+\begin{lstlisting}
+it can be changed by setting \Lkeyword{qrheight} to another value, for example to 2cm:
+\hvqrurl*[qrheight=2cm]{https://identity.fu-berlin.de/idp-fub/profile/SAML2/Redirect/SSO;jsessionid=71C984647E3B8F2E716CA067CB13387E?execution=e1s1}
+This is an exetremely long url where it may make sense to use a larger QR code.
+\end{lstlisting}
+
+
+\subsection{QR code level}
+The QR code specification includes four levels of encoding:
+Low (L) (\hvqrurl[qrlink=nolink]{https://www.tug.org/}), Medium (M), Quality (Q),
+and High (H) (\hvqrurl[qrlink=nolink,qradjust=0pt,qrlevel=H]{https://www.tug.org/}),
+in increasing order of error-correction capability.
+In general, for a given text a higher error-correction level requires
+more bits of information in the QR code.
+
+\begin{lstlisting}
+The QR code specification includes four levels of encoding:
+Low (L) (\hvqrurl{https://www.tug.org/}), Medium (M), Quality (Q),
+and High (H) (\hvqrurl[qradjust=0pt,qrlevel=H]{https://www.tug.org/}),
+in increasing order of error-correction capability.
+\end{lstlisting}
+
+The first QR code has the default level \Lkeyval{M} and the last one the
+level \Lkeyval{H}. In general the user has not to set this keyword it will be
+controlled internally by the package.
+
+
+
+\printindex
+
+
+\section{The Package Source}
+\lstinputlisting[basicstyle=\ttfamily\footnotesize,tabsize=3,numbers=left,numberstyle=\tiny]{hvqrurl.sty}
+
+
+\end{document}
+
diff --git a/macros/latex/contrib/hvqrurl/latex/hvqrurl.sty b/macros/latex/contrib/hvqrurl/latex/hvqrurl.sty
new file mode 100644
index 0000000000..b8c657b82f
--- /dev/null
+++ b/macros/latex/contrib/hvqrurl/latex/hvqrurl.sty
@@ -0,0 +1,47 @@
+%% $Id: hvqrurl.sty 1117 2019-11-28 20:54:41Z herbert $
+%%
+%% This file is distributed under the terms of the LaTeX Project Public
+%% License from CTAN archives in directory macros/latex/base/lppl.txt.
+%% Either version 1.3 or, at your option, any later version.
+%%
+% Copyright 2019 Herbert Voss hvoss@tug.org
+%%
+\ProvidesPackage{hvqrurl}[%
+ 2019/11/27 v.0.01 (Herbert Voss) Supports qr images into the margin (hv)]
+%
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{url}
+\RequirePackage{xcolor}
+\RequirePackage{marginnote}
+\RequirePackage{qrcode}
+\RequirePackage{xkeyval}
+
+\newlength\qr@url@qrheight
+\newlength\qr@url@qradjust
+
+\define@key{hvqr}{qrheight}[1cm]{\setlength\qr@url@qrheight{#1}}
+\define@key{hvqr}{qradjust}[-1.5\normalbaselineskip]{\setlength\qr@url@qradjust{#1}}
+\define@key{hvqr}{qrcolor}[black]{\colorlet{qr@url@qrcolor}{#1}}
+\define@key{hvqr}{qrlevel}[M]{\def\qr@url@qrlevel{#1}}
+\define@key{hvqr}{qrlink}[link]{\def\qr@url@qrlink{#1}}
+
+\setkeys{hvqr}{qrheight,qrcolor=black,qradjust,qrlevel,qrlink=link}% the default setting
+
+\newcommand*\hvqrset[1]{\setkeys{hvqr}{#1}}
+
+\def\hvqrurl{\@ifnextchar*{\@tempswafalse\hvqr@url}{\@tempswatrue\hvqr@@url}}
+\def\hvqr@url*{\hvqr@@url}
+
+\newcommand*\hvqr@@url[2][]{%
+ \begingroup
+ \providecommand*\qr@blank{0}%
+ \ifx\relax#1\relax \else\hvqrset{#1}\fi
+ \expandafter\qrset\expandafter{\qr@url@qrlink,height=\qr@url@qrheight,level=\qr@url@qrlevel}%
+ \if@tempswa\url{#2}\fi
+ \edef\reserved@a{\noexpand\marginnote{\noexpand\color{qr@url@qrcolor}\noexpand\qrcode{%
+ \detokenize\expandafter{#2}}}[\qr@url@qradjust]}%
+ \reserved@a
+ \endgroup
+}
+
+\endinput