diff options
author | Karl Berry <karl@freefriends.org> | 2020-11-18 22:05:50 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-11-18 22:05:50 +0000 |
commit | df7d40bacc4541cd2cebf1c02871e35ebd1fd8b5 (patch) | |
tree | bc0e7eff8b3299ee366d17f8a7c1e7bc1358e417 /Master/texmf-dist/source/latex | |
parent | a81dc8da20974ac68df068de6e67b801459a693b (diff) |
datax (18nov20)
git-svn-id: svn://tug.org/texlive/trunk@56958 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r-- | Master/texmf-dist/source/latex/datax/datax.dtx | 156 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/datax/datax.ins | 54 |
2 files changed, 210 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/datax/datax.dtx b/Master/texmf-dist/source/latex/datax/datax.dtx new file mode 100644 index 00000000000..469f8afcf5c --- /dev/null +++ b/Master/texmf-dist/source/latex/datax/datax.dtx @@ -0,0 +1,156 @@ +% \iffalse meta-comment +% +% Copyright (C) 2020 by David Gustavsson +% +% This file may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3 of this license or (at your option) any later +% version. The latest version of this license is in: +% +% http://www.latex-project.org/lppl.txt +% +% and version 1.3 or later is part of all distributions of +% LaTeX version 2005/12/01 or later. +% +% \fi +% +% \iffalse +%<package>\NeedsTeXFormat{LaTeX2e}[2020/02/02] +%<package>\ProvidesPackage{datax} +%<package> [2020/11/17 v1.1 data import into LaTeX] +%<package>\RequirePackage{pgfkeys} +%<package>\RequirePackage{pgfopts} +% +%<*driver> +\begin{filecontents}{datax-example-data.tex} + \pgfkeyssetvalue{/datax/s}{A literal string} + \pgfkeyssetvalue{/datax/x}{\num{2.4}} + \pgfkeyssetvalue{/datax/c}{\SI{3e8}{\meter\per\second}} +\end{filecontents} +\documentclass{ltxdoc} +\usepackage[dataxfile=datax-example-data.tex]{datax} +\usepackage{booktabs} +\usepackage{siunitx} +\usepackage[hidelinks]{hyperref} + +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} +\DocInput{datax.dtx} +\end{document} +%</driver> +% \fi +% +%\CheckSum{19} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \changes{v1.0}{2020/11/15}{Initial version} +% +% \GetFileInfo{datax.sty} +% \DoNotIndex{} +% +% \title{The \textsf{datax} package\thanks{This document +% corresponds to \textsf{datax}~\fileversion, +% dated~\filedate.}} +% \author{David Gustavsson \texttt{david.e.gustavsson@gmail.com}} +% +% \maketitle +% +% \section{Motivation} +% \textsf{datax} allows you to export data from your scripts, and import them as \textsf{siunitx} commands. +% This is analogous to how the author uses \textsf{graphicx} to programmatically generate graphics and include +% in a document. +% +% \section{Installation} +% Place |datax.sty| in a place where \LaTeX{} can find it (often |~/texmf/tex/latex/datax/datax.sty|). Run |texhash| if needed. +% +% \section{Usage} +% The package is loaded with |\usepackage[dataxfile=|\meta{data.tex}|]{datax}|, which reads the file specified as +% \meta{dataxfile}. +% +% \DescribeMacro{\datax} +% From then on data can be inserted as |\datax|\marg{tag}. If the file |data.tex| contains references +% to a string \(s\), a number \(x\) and a physical constant \(c\), then the macro produces this output: +% +% \begin{center} +% \begin{tabular}{rl}\toprule +% Input & Output \\\midrule +% |\datax{s}| & \datax{s} \\ +% |\datax{x}| & \datax{x} \\ +% |\datax{c}| & \datax{c} \\ +% |\datax{undefined}| & \datax{undefined} \\ +% \bottomrule +% \end{tabular} +% \end{center} +% +% \section{Interactions} +% Technically, \textsf{datax} only needs a data file consisting of a number of assignments: +% |\pgfkeyssetvalue{/datax/|\meta{tag}|}{|\meta{value}|}| +% but of course the entire point of the package is automation. For this, you need an interaction plugin for your script +% language. If your language is not listed below, you might need to write this plugin for yourself, or request it. +% \begin{center} +% \begin{tabular}{rlp{5cm}}\toprule +% Language & Plugin & Comments\\\midrule +% |julia| & \href{https://github.com/Datax-package/Datax.jl}{Datax.jl} & By the current author \\ +% |Matlab| & \href{https://github.com/Datax-package/Datax.m}{Datax.m} & By the current author \\ +% \bottomrule +% \end{tabular} +% \end{center} +% +% \StopEventually{\PrintIndex} +% \section{Implementation} +% +% \begin{macrocode} +\pgfkeys{ % + /packageoptions/dataxfile/.initial=data.tex, % +} +\ProcessPgfPackageOptions{/packageoptions} + +\pgfkeys{ % + /datax/.is family, datax, % + .unknown/.code={ % + \pgfkeyssetvalue{ % + \pgfkeyscurrentpath/\pgfkeyscurrentname % + }{ % + #1 % + } % + }, % +} + +\def\dataxfile{./\pgfkeysvalueof{/packageoptions/dataxfile}} +\InputIfFileExists{% + \dataxfile + }{}{ + \PackageWarning{datax}{Cannot read file `\dataxfile'} +} +% \end{macrocode} +% \begin{macro}{\datax} +% Include datum from the specified data file. +% \begin{macrocode} +\newcommand{\datax}[1]{ + \pgfkeysifdefined{/datax/#1}{ % + \pgfkeysvalueof{/datax/#1} % + }{ % + \PackageWarning{datax}{Data value `#1' undefined}\textbf{??} % + } % +} +% \end{macrocode} +% \end{macro} +% \Finale +\endinput diff --git a/Master/texmf-dist/source/latex/datax/datax.ins b/Master/texmf-dist/source/latex/datax/datax.ins new file mode 100644 index 00000000000..7e27b7a6f63 --- /dev/null +++ b/Master/texmf-dist/source/latex/datax/datax.ins @@ -0,0 +1,54 @@ +%% +%% Copyright (C) 2020 by David Gustavsson +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3 of this license or (at your option) any later +%% version. The latest version of this license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2005/12/01 or later. +%% + +\input docstrip.tex +\keepsilent +\usedir{tex/latex/datax} + +\preamble +This is a generated file. + +Copyright (C) 2020 by David Gustavsson + +This file may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either +version 1.3 of this license or (at your option) any later +version. The latest version of this license is in: + + http://www.latex-project.org/lppl.txt + +and version 1.3 or later is part of all distributions of +LaTeX version 2005/12/01 or later. + +\endpreamble + + +\generate{\file{datax.sty}{\from{datax.dtx}{package}}} + +\obeyspaces +\Msg{****************************************************} +\Msg{* *} +\Msg{* To finish the installation you have to move the *} +\Msg{* following file into a directory searched by TeX: *} +\Msg{* *} +\Msg{* datax.sty *} +\Msg{* *} +\Msg{* To produce the documentation run the file *} +\Msg{* datax.dtx through LaTeX. *} +\Msg{* *} +\Msg{* Happy TeXing! *} +\Msg{* *} +\Msg{****************************************************} + +\endbatchfile |