summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-09-21 20:59:31 +0000
committerKarl Berry <karl@freefriends.org>2017-09-21 20:59:31 +0000
commitdea0a0ba1bb1f2ed8c60eb01add2c19c054a2c2f (patch)
treead4bc5c8a3f140079c9d50343ad88d32ea0b1b1e
parent46c69c97cfe4829801dd8009189eb3b1f56176a3 (diff)
spark-otf (21sep17)
git-svn-id: svn://tug.org/texlive/trunk@45372 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/spark-otf/Changes4
-rw-r--r--Master/texmf-dist/doc/latex/spark-otf/README.md19
-rw-r--r--Master/texmf-dist/doc/latex/spark-otf/spark-otf-doc.bib45
-rw-r--r--Master/texmf-dist/doc/latex/spark-otf/spark-otf-doc.pdfbin0 -> 48475 bytes
-rw-r--r--Master/texmf-dist/doc/latex/spark-otf/spark-otf-doc.tex223
-rw-r--r--Master/texmf-dist/tex/latex/spark-otf/spark-otf.sty101
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check3
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds2
-rw-r--r--Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/spark-otf.tlpsrc0
10 files changed, 396 insertions, 2 deletions
diff --git a/Master/texmf-dist/doc/latex/spark-otf/Changes b/Master/texmf-dist/doc/latex/spark-otf/Changes
new file mode 100644
index 00000000000..3ac0430227a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/spark-otf/Changes
@@ -0,0 +1,4 @@
+0.02 2017-09-21 - added a star version for LuaLaTeX which
+ allows any values in the data list
+ - added error message for pdflatex
+0.01 2017-09-19 - first CTAN version
diff --git a/Master/texmf-dist/doc/latex/spark-otf/README.md b/Master/texmf-dist/doc/latex/spark-otf/README.md
new file mode 100644
index 00000000000..6fa1de08362
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/spark-otf/README.md
@@ -0,0 +1,19 @@
+# README #
+Package spark-otf supports the free fonts from
+"After the Flood" which are available from the
+website http://aftertheflood.co/projects/atf-spark
+
+Following font files are supported:
+
+- Spark - Bar - Medium.otf
+- Spark - Bar - Narrow.otf
+- Spark - Bar - Thin.otf
+- Spark - Dot-line - Medium.otf
+- Spark - Dot - Medium.otf
+- Spark - Dot - Small.otf
+
+
+
+%% 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.
diff --git a/Master/texmf-dist/doc/latex/spark-otf/spark-otf-doc.bib b/Master/texmf-dist/doc/latex/spark-otf/spark-otf-doc.bib
new file mode 100644
index 00000000000..bfcee05cf13
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/spark-otf/spark-otf-doc.bib
@@ -0,0 +1,45 @@
+@online{fontconfig,
+ author ={{\texttt{freedesktop.org}}},
+ sortname = {freedesktop},
+ title = {Fontconfig},
+ subtitle = {A library for configuring and customizing font access},
+ date = {2016-06-15},
+ urldate={2017-03-18},
+ url = {https://www.freedesktop.org/wiki/Software/fontconfig/}
+}
+@online{wikipedia,
+ author = {{\WikipediA}},
+ sortlabel = {Wikipedia},
+ sortname = {Wikipedia},
+ title = {Sparkline},
+ date = {2017-09-03},
+ urldate = {2017-09-19},
+ url = {https://en.wikipedia.org/wiki/Sparkline},
+}
+
+@online{features,
+ author = {{\WikipediA}},
+ sortlabel = {Wikipedia},
+ sortname = {Wikipedia},
+ title = {List of typographic features},
+ date = {2017-02-21},
+ urldate = {2017-03-24},
+ url = {https://en.wikipedia.org/wiki/List_of_typographic_features},
+}
+
+@online{tufte,
+ author = {Edward Tufte},
+ title = {History of Sparklines and Edward Tufte Contribution},
+ date = {2017-09-19},
+ urldate = {2017-09-19},
+ url = {https://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=000AIr00},
+}
+
+@online{atf,
+author = {Max Gadney and Mike Gallagher and Nick Cross and Sabih Ali},
+title = {AtF Spark},
+subtitle = {Our new typeface for code-free sparklines},
+Organisation = {After the flood},
+url = {http://aftertheflood.co/projects/atf-spark},
+}
+
diff --git a/Master/texmf-dist/doc/latex/spark-otf/spark-otf-doc.pdf b/Master/texmf-dist/doc/latex/spark-otf/spark-otf-doc.pdf
new file mode 100644
index 00000000000..482736583f8
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/spark-otf/spark-otf-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/spark-otf/spark-otf-doc.tex b/Master/texmf-dist/doc/latex/spark-otf/spark-otf-doc.tex
new file mode 100644
index 00000000000..9ca37ed67ef
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/spark-otf/spark-otf-doc.tex
@@ -0,0 +1,223 @@
+%% $Id: spark-otf-doc.tex 566 2017-09-20 08:49:20Z herbert $
+%
+\listfiles
+\documentclass[fontsize=11pt,DIV=14]{scrartcl}
+\usepackage{fontspec}
+\usepackage[%usefilenames,
+ TT={Scale=0.88,FakeStretch=0.9},
+ SS={Scale=0.9},
+ RM={Scale=0.9},
+ DefaultFeatures={Ligatures=TeX}]{lucida-otf} % support opentype math fonts
+\usepackage[usefilenames=false]{spark-otf} % support opentype spark fonts
+\makeatletter
+\let\SparkVersion\spark@version
+\makeatother
+
+\usepackage{biblatex}
+\addbibresource{\jobname.bib}
+
+\usepackage{dtk-logos} % for Wikipedia W
+
+\pagestyle{headings}
+
+\usepackage[colorlinks,hyperfootnotes=false]{hyperref}
+% define \code for url-like breaking of typewriter fragments.
+\ifx\nolinkurl\undefined \let\code\url \else \let\code\nolinkurl \fi
+
+% Define \cs to prepend a backslash, and be unbreakable:
+\DeclareRobustCommand\cs[1]{\mbox{\texttt{\char`\\#1}}}
+
+
+\title{Support for the Spark OpenType fonts \\--\\ v.~\SparkVersion}
+\author{Herbert Voß}
+\begin{document}
+\maketitle
+\tableofcontents
+
+\section{Introduction}
+
+A sparkline is a very small line chart, typically drawn without axes or coordinates.
+It presents the general shape of the variation (typically over time) in some measurement,
+such as temperature or stock market price, in a simple and highly condensed way.
+Sparklines are small enough to be embedded in text, or several sparklines may be
+grouped together as elements of a small multiple. Whereas the typical chart is
+designed to show as much data as possible, and is set off from the flow of text,
+sparklines are intended to be succinct, memorable, and located where they are discussed.~\cite{wikipedia}
+
+
+\section{The fonts}
+
+The fonts are available from \url{https://github.com/aftertheflood/spark} and should be saved
+either in \path{Library/fonts/} (MAC OSX), \path{c:\Windows\Fonts} (Windows) or
+\path{/usr/local/share/fonts} (Linux) or any other location where
+the fonts will be found by the system.
+
+\begin{verbatim}
+-rw-r--r-- 1 voss voss 24708 Sep 15 11:20 Spark - Bar - Medium.otf
+-rw-r--r-- 1 voss voss 24696 Sep 15 11:20 Spark - Bar - Narrow.otf
+-rw-r--r-- 1 voss voss 24680 Sep 15 11:20 Spark - Bar - Thin.otf
+-rw-r--r-- 1 voss voss 22140 Sep 15 11:20 Spark - Dot-line - Medium.otf
+-rw-r--r-- 1 voss voss 24616 Sep 15 11:20 Spark - Dot - Medium.otf
+-rw-r--r-- 1 voss voss 24580 Sep 15 11:20 Spark - Dot - Small.otf
+\end{verbatim}
+
+
+The package defines the following families:
+
+\small
+\begin{verbatim}
+\newfontfamily\sparkBarMedium{SparkBar-Medium}[RawFeature=+calt,\spark@DefaultFeatures]
+\newfontfamily\sparkBarNarrow{SparkBar-Narrow}[RawFeature=+calt,\spark@DefaultFeatures]
+\newfontfamily\sparkBarThin{SparkBar-Thin}[RawFeature=+calt,\spark@DefaultFeatures]
+%
+\newfontfamily\sparkDotLine{Spark-Dot-lineMedium}[RawFeature=+calt,\spark@DefaultFeatures]
+%
+\newfontfamily\sparkDotMedium{Spark-DotMedium}[RawFeature=+calt,\spark@DefaultFeatures]
+\newfontfamily\sparkDotSmall{Spark-DotSmall}[RawFeature=+calt,\spark@DefaultFeatures]
+\end{verbatim}
+
+\normalsize
+
+\section{The macros}
+
+\begin{verbatim}
+\sparkBar[<Type>][<No>]{values}[<No>]
+\sparkDot[<Type>][<No>]{values}[<No>]
+\sparkBar*[<Type>][<No>]{values}[<No>]
+\sparkDot*[<Type>][<No>]{values}[<No>]
+\end{verbatim}
+
+If \texttt{[<Type>]} is missing, \texttt{Medium} is assumed. The type is mandatory if you use
+the first \texttt{[<No>]} argument! The star versions are only valid for Lua\LaTeX\ where the values
+can be of any interval. They will be changed to the allowed interval:
+
+\begin{itemize}
+\item for \cs{sparkDot[Line]}: $[0,9]$
+\item for all other: $[0,99]$
+\end{itemize}
+
+
+\section{Text examples}
+
+\footnotesize
+\begin{verbatim}
+\begin{description}
+\item[Bar-Medium] Text \sparkBar{14,95,68,9,19,41,91,1,81,97,79,45,96,76,17,65,8,92} Text
+ {\huge\sparkBar{14,95,68,9,19,41,91,1,81,97,79,45,96,76,17,65,8,92}}
+\item[Bar-Medium] Text \sparkBar[Medium]{14,95,68,9,19,41,91,1,81,97,79,45,96,76,17,65,8,92} Text
+\item[Bar-Narrow] Text \sparkBar[Narrow]{19,32,93,4,95,46,13,23,50,86,94,68,58,41,89,57,74,8} Text
+\item[Bar-Thin] Text \sparkBar[Thin]{13,15,59,73,42,1,41,51,4,97,35,55,37,24,89,21,30,22} Text
+\item[Bar-Medium] Text \sparkBar[Medium][14]{14,95,68,9,19,41,91,1,81,97,79,45,96,76,17,65,8,92}[92] Text
+\item[Bar-Narrow] Text \sparkBar[Narrow][19]{19,32,93,4,95,46,13,23,50,86,94,68,58,41,89,57,74,8}[8] Text
+ {\huge\sparkBar[Narrow][19]{19,32,93,4,95,46,13,23,50,86,94,68,58,41,89,57,74,8}[8]}
+\item[Bar-Thin] Text \sparkBar[Thin][13]{13,15,59,73,42,1,41,51,4,97,35,55,37,24,89,21,30,22}[22] Text
+\end{description}
+\end{verbatim}
+
+\normalsize
+\begin{description}
+\item[Bar-Medium] Text \sparkBar{14,95,68,9,19,41,91,1,81,97,79,45,96,76,17,65,8,92} Text
+ {\huge\sparkBar{14,95,68,9,19,41,91,1,81,97,79,45,96,76,17,65,8,92}}
+\item[Bar-Medium] Text \sparkBar[Medium]{14,95,68,9,19,41,91,1,81,97,79,45,96,76,17,65,8,92} Text
+\item[Bar-Narrow] Text \sparkBar[Narrow]{19,32,93,4,95,46,13,23,50,86,94,68,58,41,89,57,74,8} Text
+\item[Bar-Thin] Text \sparkBar[Thin]{13,15,59,73,42,1,41,51,4,97,35,55,37,24,89,21,30,22} Text
+\item[Bar-Medium] Text \sparkBar[Medium][14]{14,95,68,9,19,41,91,1,81,97,79,45,96,76,17,65,8,92}[92] Text
+\item[Bar-Narrow] Text \sparkBar[Narrow][19]{19,32,93,4,95,46,13,23,50,86,94,68,58,41,89,57,74,8}[8] Text
+ {\huge\sparkBar[Narrow][19]{19,32,93,4,95,46,13,23,50,86,94,68,58,41,89,57,74,8}[8]}
+\item[Bar-Thin] Text \sparkBar[Thin][13]{13,15,59,73,42,1,41,51,4,97,35,55,37,24,89,21,30,22}[22] Text
+\end{description}
+
+
+\footnotesize
+\begin{verbatim}
+\begin{description}
+\item[Dot-Medium] Text \sparkDot{54,39,26,65,29,58,36,99,16,56,76,69,71,77,7,40,79,1} Text
+ {\huge\sparkDot{54,39,26,65,29,58,36,99,16,56,76,69,71,77,7,40,79,1}}
+\item[Dot-Medium] Text \sparkDot[Medium]{54,39,26,65,29,58,36,99,16,56,76,69,71,77,7,40,79,1} Text
+\item[Dot-Small] Text \sparkDot[Small]{1,79,88,46,54,77,91,24,70,22,27,29,40,33,31,95,26,76} Text
+\item[Dot-Line] Text \sparkDot[Line]{9,4,2,1,6,7,3,8,3,7,1,4,9,2,8,5,1,8} Text
+\item[Dot-Medium] Text \sparkDot[Medium][54]{54,39,26,65,29,58,36,99,16,56,76,69,71,77,7,40,79,1}[1] Text
+\item[Dot-Small] Text \sparkDot[Small][1]{1,79,88,46,54,77,91,24,70,22,27,29,40,33,31,95,26,76}[76] Text
+\item[Dot-Line] Text \sparkDot[Line][9]{9,4,2,1,6,7,3,8,3,7,1,4,9,2,8,5,1,8}[8] Text
+ {\huge\sparkDot[Line][9]{9,4,2,1,6,7,3,8,3,7,1,4,9,2,8,5,1,8}[8]}
+\end{description}
+\end{verbatim}
+
+\normalsize
+\begin{description}
+\item[Dot-Medium] Text \sparkDot{54,39,26,65,29,58,36,99,16,56,76,69,71,77,7,40,79,1} Text
+ {\huge\sparkDot{54,39,26,65,29,58,36,99,16,56,76,69,71,77,7,40,79,1}}
+\item[Dot-Medium] Text \sparkDot[Medium]{54,39,26,65,29,58,36,99,16,56,76,69,71,77,7,40,79,1} Text
+\item[Dot-Small] Text \sparkDot[Small]{1,79,88,46,54,77,91,24,70,22,27,29,40,33,31,95,26,76} Text
+\item[Dot-Line] Text \sparkDot[Line]{9,4,2,1,6,7,3,8,3,7,1,4,9,2,8,5,1,8} Text
+\item[Dot-Medium] Text \sparkDot[Medium][54]{54,39,26,65,29,58,36,99,16,56,76,69,71,77,7,40,79,1}[1] Text
+\item[Dot-Small] Text \sparkDot[Small][1]{1,79,88,46,54,77,91,24,70,22,27,29,40,33,31,95,26,76}[76] Text
+\item[Dot-Line] Text \sparkDot[Line][9]{9,4,2,1,6,7,3,8,3,7,1,4,9,2,8,5,1,8}[8] Text
+ {\huge\sparkDot[Line][9]{9,4,2,1,6,7,3,8,3,7,1,4,9,2,8,5,1,8}[8]}
+\end{description}
+
+\section{Examples for Lua\protect\LaTeX}
+The current version of \texttt{spark-otf} supports only star versions for Lua\LaTeX.
+
+\footnotesize
+\begin{verbatim}
+Text \sparkBar*{1,79,88,46,54,77,91,24,70,22,27,29,40,33,31,95,26,76} Text\\
+Text \sparkBar*{9,4,2,1,6,7,3,8,3,7,1,4,9,2,8,5,1,8} Text\\
+Text \sparkBar*[Narrow]{111,179,188,146,154,177,191,124,170,122,127,129,140,133,131,195,126,176} Text\\
+Text \sparkDot[Line]{1,79,88,46,54,77,91,24,70,22,27,29,40,33,31,95,26,76} Text\\
+Text \sparkDot[Line]{9,4,2,1,6,7,3,8,3,7,1,4,9,2,8,5,1,8} Text\\
+Text \sparkDot*[Medium][19]{19,114,12,111,16,17,113,118,113,67,61,74,39,52,38,55,111,88}[88] Text\\
+Text \sparkDot*[Line][111]{111,179,188,146,154,177,191,124,170,122,127,129,140,133,131,195,126,176}[176] Text
+
+\huge
+\sparkBar*{1,79,88,46,54,77,91,24,70,22,27,29,40,33,31,95,26,76}\\
+\sparkBar*{9,4,2,1,6,7,3,8,3,7,1,4,9,2,8,5,1,8}\\
+\sparkBar*[Narrow]{111,179,188,146,154,177,191,124,170,122,127,129,140,133,131,195,126,176}\\
+\sparkDot[Line]{1,79,88,46,54,77,91,24,70,22,27,29,40,33,31,95,26,76}\\
+\sparkDot[Line]{9,4,2,1,6,7,3,8,3,7,1,4,9,2,8,5,1,8}\\
+\sparkDot*[Medium][19]{19,114,12,111,16,17,113,118,113,67,61,74,39,52,38,55,111,88}[88]\\
+\sparkDot*[Line][111]{111,179,188,146,154,177,191,124,170,122,127,129,140,133,131,195,126,176}[176]
+\end{verbatim}
+
+\normalsize
+
+Text \sparkBar*{1,79,88,46,54,77,91,24,70,22,27,29,40,33,31,95,26,76} Text\\
+Text \sparkBar*{9,4,2,1,6,7,3,8,3,7,1,4,9,2,8,5,1,8} Text\\
+Text \sparkBar*[Narrow]{111,179,188,146,154,177,191,124,170,122,127,129,140,133,131,195,126,176} Text\\
+Text \sparkDot[Line]{1,79,88,46,54,77,91,24,70,22,27,29,40,33,31,95,26,76} Text\\
+Text \sparkDot[Line]{9,4,2,1,6,7,3,8,3,7,1,4,9,2,8,5,1,8} Text\\
+Text \sparkDot*[Medium][19]{19,114,12,111,16,17,113,118,113,67,61,74,39,52,38,55,111,88}[88] Text\\
+Text \sparkDot*[Line][111]{111,179,188,146,154,177,191,124,170,122,127,129,140,133,131,195,126,176}[176] Text
+
+\huge
+\sparkBar*{1,79,88,46,54,77,91,24,70,22,27,29,40,33,31,95,26,76}\\
+\sparkBar*{9,4,2,1,6,7,3,8,3,7,1,4,9,2,8,5,1,8}\\
+\sparkBar*[Narrow]{111,179,188,146,154,177,191,124,170,122,127,129,140,133,131,195,126,176}\\
+\sparkDot[Line]{1,79,88,46,54,77,91,24,70,22,27,29,40,33,31,95,26,76}\\
+\sparkDot[Line]{9,4,2,1,6,7,3,8,3,7,1,4,9,2,8,5,1,8}\\
+\sparkDot*[Medium][19]{19,114,12,111,16,17,113,118,113,67,61,74,39,52,38,55,111,88}[88]\\
+\sparkDot*[Line][111]{111,179,188,146,154,177,191,124,170,122,127,129,140,133,131,195,126,176}[176]
+
+\normalsize
+
+
+\nocite{*}
+\printbibliography
+
+
+\end{document}
+
+
+<p class=spark-bar-medium>{14,95,68,9,19,41,91,1,81,97,79,45,96,76,17,65,8,92}</p>
+
+<p class=spark-bar-narrow>{19,32,93,4,95,46,13,23,50,86,94,68,58,41,89,57,74,8}</p>
+
+<p class=spark-bar-thin>{13,15,59,73,42,1,41,51,4,97,35,55,37,24,89,21,30,22}</p>
+
+<p class=spark-dot-medium>{54,39,26,65,29,58,36,99,16,56,76,69,71,77,7,40,79,1}</p>
+
+<p class=spark-dot-small>{1,79,88,46,54,77,91,24,70,22,27,29,40,33,31,95,26,76}</p>
+
+<p class=spark-line-medium>{9,4,2,1,6,7,3,8,3,7,1,4,9,2,8,5,1,8}</p>
+\NewDocumentCommand\spark{omo}{{\sparklinesbarmedium
+ \IfValueT{#1}{#1}\string{#2\string}\IfValueT{#3}{#3}}}
diff --git a/Master/texmf-dist/tex/latex/spark-otf/spark-otf.sty b/Master/texmf-dist/tex/latex/spark-otf/spark-otf.sty
new file mode 100644
index 00000000000..4b05b9d668e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/spark-otf/spark-otf.sty
@@ -0,0 +1,101 @@
+%% $Id: spark-otf.sty 565 2017-09-20 08:23:06Z 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 2017 Herbert Voss hvoss@tug.org
+%%
+\def\spark@version{0.02}
+\ProvidesPackage{spark-otf}[%
+ 2017/09/21 v. \spark@version~(Herbert Voss) Supports spark OpenType for lualatex/xelatex.]
+%
+\RequirePackage{ifxetex,ifluatex,xkeyval}
+%
+\newif\ifspark@usefilenames \spark@usefilenamesfalse
+\DeclareOptionX{usefilenames}[true]{\@nameuse{spark@usefilenames#1}}
+%
+\providecommand\spark@DefaultFeatures{}
+\DeclareOptionX{DefaultFeatures}{\def\spark@DefaultFeatures{#1}}
+
+\ProcessOptionsX\relax
+
+\ifxetex\else\ifluatex\else
+ \@latex@error{This package can only be used with "XeLaTeX" or "LuaLaTeX"!%
+ \MessageBreak "pdfLaTeX" or any other "TeX" version are _not_ possible!}%
+\fi\fi
+\RequirePackage{fontspec,xparse}
+
+\ifluatex\RequirePackage{luacode}\fi
+
+\ifspark@usefilenames
+ \typeout {Using file names for the spark font}%
+%----------------------------------------- file names ----------------------------
+ \newfontfamily\sparkBarMedium{{Spark - Bar - Medium}}[RawFeature=+calt,\spark@DefaultFeatures]
+ \newfontfamily\sparkBarNarrow{{Spark - Bar - Narrow}}[RawFeature=+calt,\spark@DefaultFeatures]
+ \newfontfamily\sparkBarThin{{Spark - Bar - Thin}}[RawFeature=+calt,\spark@DefaultFeatures]
+%
+ \newfontfamily\sparkDotLine{{Spark - Dot-line - Medium}}[RawFeature=+calt,\spark@DefaultFeatures]
+%
+ \newfontfamily\sparkDotMedium{{Spark - Dot - Medium}}[RawFeature=+calt,\spark@DefaultFeatures]
+ \newfontfamily\sparkDotSmall{{Spark - Dot - Small}}[RawFeature=+calt,\spark@DefaultFeatures]
+%Spark - Bar - Medium.otf Spark - Bar - Thin.otf Spark - Dot - Medium.otf
+%Spark - Bar - Narrow.otf Spark - Dot-line - Medium.otf Spark - Dot - Small.otf
+
+\else
+ \typeout {Using symbolic names for the spark font}%
+%----------------------------------------- symbolic names ----------------------------
+ \newfontfamily\sparkBarMedium{SparkBar-Medium}[RawFeature=+calt,\spark@DefaultFeatures]
+ \newfontfamily\sparkBarNarrow{SparkBar-Narrow}[RawFeature=+calt,\spark@DefaultFeatures]
+ \newfontfamily\sparkBarThin{SparkBar-Thin}[RawFeature=+calt,\spark@DefaultFeatures]
+%
+ \newfontfamily\sparkDotLine{Spark-Dot-lineMedium}[RawFeature=+calt,\spark@DefaultFeatures]
+%
+ \newfontfamily\sparkDotMedium{Spark-DotMedium}[RawFeature=+calt,\spark@DefaultFeatures]
+ \newfontfamily\sparkDotSmall{Spark-DotSmall}[RawFeature=+calt,\spark@DefaultFeatures]
+\fi
+%
+\ifluatex
+\begin{luacode}
+function RelativeValues(v,m)
+ local Values = {}
+ for k,x in ipairs(v) do
+ Values[k] = x
+ end
+ table.sort(Values)
+ local MaxVal = (Values[#Values])
+ for k,x in ipairs(v) do
+ Values[k] = math.floor(x/MaxVal*m)
+ end
+ for i,k in ipairs(Values) do
+ tex.sprint(k)
+ if (i < #Values) then tex.sprint(",") end
+ end
+end
+\end{luacode}
+\def\spark@line{Line}
+ \NewDocumentCommand\sparkBar{sO{Medium}O{}mO{}}{{%
+ \IfValueTF{#1}%
+ {\edef\spark@values{\directlua{RelativeValues({#4},99)}}}%
+ {\def\spark@values{#4}}%
+ \@nameuse{sparkBar#2}#3\string{\spark@values\string}#5%
+ }}
+ \NewDocumentCommand\sparkDot{sO{Medium}O{}mO{}}{{%
+ \IfValueTF{#1}%
+ {\def\spark@arg{#2}%
+ \ifx\spark@line\spark@arg \edef\spark@values{\directlua{RelativeValues({#4},9)}}%
+ \else \edef\spark@values{\directlua{RelativeValues({#4},99)}}%
+ \fi}%
+ {\def\spark@values{#4}}%
+ \@nameuse{sparkDot#2}#3\string{\spark@values\string}#5%
+ }}
+\else %% XeLaTeX
+ \NewDocumentCommand\sparkBar{O{Medium}O{}mO{}}{{%
+ \@nameuse{sparkBar#1}#2\string{#3\string}#4%
+ }}
+ \NewDocumentCommand\sparkDot{O{Medium}O{}mO{}}{{%
+ \@nameuse{sparkDot#1}#2\string{#3\string}#4%
+ }}
+\fi
+%%
+\endinput
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 547bf218772..bf2dd1d9943 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -567,7 +567,8 @@ my @TLP_working = qw(
snapshot snotez
songbook songs sort-by-letters soton soul soup sourcecodepro sourcesanspro
sourceserifpro
- spalign spanish-mx sparklines spath3 spectralsequences spelling spie
+ spalign spanish-mx spark-otf sparklines spath3
+ spectralsequences spelling spie
sphack sphdthesis splines splitbib splitindex
spot spotcolor spreadtab spverbatim
sr-vorl srbook-mem srcltx srcredact sseq sslides
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index 838b8ac15d9..ed646e8b45a 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -1049,7 +1049,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`);
'soulpos', "die 'skipping, use bezos'",
'soyombo', "die 'skipping, noinfo license, Mongolian ca.1996'",
'spanish', "die 'skipping, complicated collection'",
-# 'spark-otf', "&MAKEflatten",
+ 'spark-otf', "&MAKEflatten",
'splint', "die 'skipping, binary'",
'springer', "die 'skipping, licenses not checked'",
'sprite', "die 'skipping, noinfo license'",
diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
index ca0ca8643de..56d09a87ec4 100644
--- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
@@ -951,6 +951,7 @@ depend smartref
depend snapshot
depend snotez
depend soul
+depend spark-otf
depend sparklines
depend sphack
depend splitindex
diff --git a/Master/tlpkg/tlpsrc/spark-otf.tlpsrc b/Master/tlpkg/tlpsrc/spark-otf.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/spark-otf.tlpsrc