From bf10c9df91f9956204ce8b9cfa145956024fe37f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 14 Feb 2024 21:27:15 +0000 Subject: pictochrono (14feb24) git-svn-id: svn://tug.org/texlive/trunk@69855 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/pictochrono/README.md | 5 + .../doc/latex/pictochrono/pictochrono-doc.pdf | Bin 0 -> 239299 bytes .../doc/latex/pictochrono/pictochrono-doc.tex | 216 +++++++++++++++++++++ .../tex/latex/pictochrono/pictochrono.sty | 113 +++++++++++ Master/tlpkg/bin/tlpkg-ctan-check | 2 +- Master/tlpkg/libexec/ctan2tds | 1 + Master/tlpkg/tlpsrc/collection-pictures.tlpsrc | 1 + Master/tlpkg/tlpsrc/pictochrono.tlpsrc | 0 8 files changed, 337 insertions(+), 1 deletion(-) create mode 100644 Master/texmf-dist/doc/latex/pictochrono/README.md create mode 100644 Master/texmf-dist/doc/latex/pictochrono/pictochrono-doc.pdf create mode 100644 Master/texmf-dist/doc/latex/pictochrono/pictochrono-doc.tex create mode 100644 Master/texmf-dist/tex/latex/pictochrono/pictochrono.sty create mode 100644 Master/tlpkg/tlpsrc/pictochrono.tlpsrc (limited to 'Master') diff --git a/Master/texmf-dist/doc/latex/pictochrono/README.md b/Master/texmf-dist/doc/latex/pictochrono/README.md new file mode 100644 index 00000000000..2cd58caa7a9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/pictochrono/README.md @@ -0,0 +1,5 @@ +pictochrono provides a chronometer, made with tikz, for inline insertion. +------------------------------------------------------------------------ +Author.......: Cédric Pierquet +email........: cpierquet@outlook.fr +Licence......: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/pictochrono/pictochrono-doc.pdf b/Master/texmf-dist/doc/latex/pictochrono/pictochrono-doc.pdf new file mode 100644 index 00000000000..e3bda35cd97 Binary files /dev/null and b/Master/texmf-dist/doc/latex/pictochrono/pictochrono-doc.pdf differ diff --git a/Master/texmf-dist/doc/latex/pictochrono/pictochrono-doc.tex b/Master/texmf-dist/doc/latex/pictochrono/pictochrono-doc.tex new file mode 100644 index 00000000000..f55a582174a --- /dev/null +++ b/Master/texmf-dist/doc/latex/pictochrono/pictochrono-doc.tex @@ -0,0 +1,216 @@ +% !TeX TXS-program:compile = txs:///arara +% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode} +% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') + +\documentclass[english,11pt,a4paper]{article} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +%\usepackage{DejaVuSerif} +%\usepackage[scale=1.125]{inconsolata} +\usepackage{pictochrono} +\usepackage{soul} +\usepackage{tabularray} +\usepackage{lipsum} +\usepackage{codehigh} +\usepackage{fontawesome5} +\usepackage{fancyvrb} +\usepackage{fancyhdr} +\fancyhf{} +\renewcommand{\headrulewidth}{0pt} +%\rhead{\sffamily\small\affloetalab[Legende]} +\lfoot{\sffamily\small [pictochrono]} +\cfoot{\sffamily\small - \thepage{} -} +\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}} +\usepackage{hologo} +\usepackage{xspace} +\providecommand\tikzlogo{Ti\textit{k}Z} +\providecommand\TeXLive{\TeX{}Live\xspace} +\providecommand\PSTricks{\textsf{PSTricks}\xspace} +\let\pstricks\PSTricks +\let\TikZ\tikzlogo + +\usepackage{hyperref} +\urlstyle{same} +\hypersetup{pdfborder=0 0 0} +\usepackage[margin=2cm]{geometry} +\setlength{\parindent}{0pt} + +\def\TPversion{0.1.0} +\def\TPdate{13/02/2024} +\usepackage{tcolorbox} + +\sethlcolor{lightgray!25} +\NewDocumentCommand\MontreCode{ m }{% + \hl{\vphantom{\texttt{pf}}\texttt{#1}}% +} + +\usepackage{babel} + +\begin{document} + +\pagestyle{fancy} + +\thispagestyle{empty} + +\begin{center} + \begin{minipage}{0.88\linewidth} + \begin{tcolorbox}[colframe=yellow,colback=yellow!15] + \begin{center} + \begin{tabular}{c} + {\Huge \texttt{pictochrono}}\\ + \\ + {\LARGE A chronometer, made with Ti\textit{k}Z,} \\ + \\ + {\LARGE for inline insertion.} \\ + \\ + {\small \texttt{Version \TPversion{} -- \TPdate}} + \end{tabular} + \end{center} + \end{tcolorbox} +\end{minipage} +\end{center} + +\begin{center} + \begin{tabular}{c} + \texttt{Cédric Pierquet}\\ + {\ttfamily c pierquet -- at -- outlook . fr}\\ + \texttt{\url{https://github.com/cpierquet/pictochrono}} +\end{tabular} +\end{center} + +\hrule + +\phantomsection + +\hypertarget{matoc}{} + +\tableofcontents + +\vspace*{5mm} + +\hrule + +\vspace*{5mm} + +\vfill + +\begin{tcolorbox}[colframe=lightgray,colback=lightgray!10] +\hfill +{\pictochrono[Height=4cm]{20}} +\hfill~ +\end{tcolorbox} + +\medskip + +\begin{tcolorbox}[colframe=lightgray,colback=lightgray!10] +{\LARGE\bfseries\sffamily Exercise n°1 (\pictochrono[ColTime=red]{10})\dotfill(5 points)}\\ +{\LARGE\bfseries\sffamily Exercise n°2 (\pictochrono[ColTime=blue]{25})\dotfill(9 points)}\\ +{\LARGE\bfseries\sffamily Exercise n°3 (\pictochrono[Delta=15,ColTime=orange]{35})\dotfill(11 points)} +\end{tcolorbox} + +\vfill~ + +\pagebreak + +\section{The package pictochrono} + +\subsection{Ideas} + +The idea is to display a pictogram like "chronometer" to present times for exercises, for example. + +The pictogram can be inserted inline with automatic height and vertical offset, or with a manual height and offset. + +\subsection{Loading} + +The package loads within the preamble, with \MontreCode{\textbackslash usepackage\{pictochrono\}}. + +The only loaded packages are \MontreCode{simplekv}, \MontreCode{calc}, \MontreCode{simplekv}, \MontreCode{xstring}, \MontreCode{etoolbox} and \MontreCode{tikz} (with \MontreCode{calc} library). + +\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\usepackage{pictochrono} +\end{codehigh} + +\section{The command} + +\subsection{Usage} + +The command is \MontreCode{\textbackslash pictochrono}. + +\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\pictochrono[keys]{duration} +\end{codehigh} + +\medskip + +The optional keys are : + +\begin{itemize} + \item the key \MontreCode{Height} : + \begin{itemize} + \item can use an automatic height, with \MontreCode{auto} (by default, global height of current fonte + small vertical offset) ; + \item can specify a global height ; + \end{itemize} + \item the key \MontreCode{Color} for the main color (\MontreCode{black} by default) ; + \item the key \MontreCode{ColTime} for the color of duration, if specified (\MontreCode{lightgray} by default) ; + \item the key \MontreCode{Delta} for the graduations of minutes (within \texttt{0/5/10/15/20/30}) (\MontreCode{5} by default) ; + \item the key \MontreCode{Offset} for manual vertical offset (\MontreCode{auto} by default) ; +\end{itemize} + +\medskip + +The mandatory argument, between \MontreCode{\{...\}}, is the duration to be displayed. + +\medskip + +The optional argument, between \MontreCode{<...>}, can specify a vertical alignment of the pictogram (within \texttt{vcenter/vbottom/vtop}, or empty for default positioning). + +\subsection{Examples} + +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +%automatic inline insertion +This is a test, with a \pictochrono{25} minutes chronometer. +\end{demohigh} + +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +%automatic inline insertion, with user colors. +{\Huge This is an other test, with a +\pictochrono[Delta=15,Color=blue,ColTime=red]{20} minutes chronometer.} +\end{demohigh} + +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +%manual inline insertion, with manual offset. +This a \pictochrono[Height=3em,Offset=-0.75em]{45} minutes chronometer. +\end{demohigh} + +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +%manual insertion +\pictochrono[Height=5cm,ColTime=teal]{33} +\end{demohigh} + +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +%wihtin a tblr +\begin{tblr}{hlines,vlines,colspec={Q[m,c]Q[8cm,m,j]}} + \pictochrono[Height=4cm,ColTime=purple]{20} + & + \lipsum[1][1-9] \\ +\end{tblr} +\end{demohigh} + +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] + %wihtin a tblr +\begin{tblr}{hlines,vlines,colspec={Q[m,c]Q[8cm,m,j]}} + \pictochrono[Height=4cm,ColTime=purple]{20} + & + \lipsum[1][1-9] \\ +\end{tblr} +\end{demohigh} + +\vfill + +\section{History} + +\verb|v0.1.0|~:~~~~Initial version + +\vspace*{15mm} + +\end{document} \ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/pictochrono/pictochrono.sty b/Master/texmf-dist/tex/latex/pictochrono/pictochrono.sty new file mode 100644 index 00000000000..d12e83ba0a4 --- /dev/null +++ b/Master/texmf-dist/tex/latex/pictochrono/pictochrono.sty @@ -0,0 +1,113 @@ +% Author : C. Pierquet +% licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{pictochrono}[2024/02/13 0.1.0 Inline chronometer, made with tikz] + +%====HISTORY +% v 0.1.0 Initial version + +%====BASE +\RequirePackage{tikz} +\usetikzlibrary{calc} +\RequirePackage{calc} +\RequirePackage{simplekv} +\RequirePackage{xstring} +\RequirePackage{etoolbox} + +%====DIMENSIONS +\newlength{\tmp@chrono@hauteur@totale} +\newlength{\tmp@chrono@profondeur} +\newlength{\tmp@chrono@offset} + +%====KEYS +\defKV[chronotikz]{Color=\def\colchrono{#1},Height=\def\hautchrono{#1},Delta=\def\deltachrono{#1},ColTime=\def\coltimechrono{#1},Offset=\def\raisechrono{#1}} +\setKVdefault[chronotikz]{Color=black,Height=auto,Delta=5,ColTime=lightgray,Offset=auto} + +%====INTERNAL MACRO +\newcommand\tmp@chrono@draw{% + \draw[\colchrono,line width={\echellechronotraits\tmp@chrono@hauteur@totale}] (0,0) circle[radius=1] ; + %rules + \filldraw[line width={\echellechronotraits\tmp@chrono@hauteur@totale},\colchrono,rounded corners={\echellechronoarrondis\tmp@chrono@hauteur@totale}] (65:1)--(65:1.15)--(57.5:1.15)--(57.5:1)--cycle ; + \filldraw[line width={\echellechronotraits\tmp@chrono@hauteur@totale},\colchrono,rounded corners={\echellechronoarrondis\tmp@chrono@hauteur@totale}] (115:1)--(115:1.15)--(122.5:1.15)--(122.5:1)--cycle ; + \filldraw[line width={\echellechronotraits\tmp@chrono@hauteur@totale},\colchrono,line join=round,rounded corners={\echellechronoarrondis\tmp@chrono@hauteur@totale}] (-0.1,1)--++(0,0.2)-|++(-0.15,0.15)--++(0.5,0)|-++(-0.15,-0.15)--++(0,-0.2)--cycle ; +} + +%====MAIN MACRO +\NewDocumentCommand\pictochrono{ O{} m D<>{} }{%1:=options,2=durée,3=baseline tikz + \restoreKV[chronotikz]% + \setKV[chronotikz]{#1}% + %calcul des dimensions + \def\echellechronotraits{0.037}% + \def\echellechronoarrondis{0.003}% + \IfStrEqCase{\deltachrono}{% + {10}{\def\tmp@gen@traits{90,150,210,270,330,30}}% + {15}{\def\tmp@gen@traits{0,90,180,270}}% + {20}{\def\tmp@gen@traits{90,210,330}}% + {30}{\def\tmp@gen@traits{90,270}}% + }% + [\def\tmp@gen@traits{0,30,60,90,120,150,180,210,240,270,300,330}]% + %option tikz + \ifstrempty{#3}% + {% + \tikzset{chronoalign/.style={}}% + }% + {% + \IfStrEqCase{#3}{% + {vcenter}{\tikzset{chronoalign/.style={baseline=(current bounding box.center)}}}% + {vtop}{\tikzset{chronoalign/.style={baseline=(current bounding box.north)}}}% + {vbottom}{\tikzset{chronoalign/.style={baseline=(current bounding box.south)}}}% + }% + [\tikzset{chronoalign/.style={}}]% + }% + %hauteur auto ou non + \IfStrEq{\hautchrono}{auto}% + {% + \settototalheight{\tmp@chrono@hauteur@totale}{\hbox{qB}}% + \settodepth{\tmp@chrono@profondeur}{\hbox{q}}% + \IfStrEq{\raisechrono}{auto}% + {% + \setlength{\tmp@chrono@offset}{-\tmp@chrono@profondeur}% + }% + {% + \setlength{\tmp@chrono@offset}{-\raisechrono}% + }% + %envt + \raisebox{\tmp@chrono@offset}{% + \begin{tikzpicture}[x={0.4125\tmp@chrono@hauteur@totale},y={0.4125\tmp@chrono@hauteur@totale},transform shape,chronoalign] + %time + \IfEq{#2}{}{}{\filldraw[rounded corners={\echellechronoarrondis\tmp@chrono@hauteur@totale},\coltimechrono,draw=none] (0,0)--({90-6*(#2)}:0.9) arc ({90-6*(#2)}:90:0.9)--cycle ;}% + %rules + \IfStrEq{\deltachrono}{0}% + {}% + {\foreach \i in \tmp@gen@traits {\draw[\colchrono,line width={\echellechronotraits\tmp@chrono@hauteur@totale}] (\i:0.6)--(\i:0.85);}}% + %clock + \tmp@chrono@draw + \end{tikzpicture}% + }% + }% + {% + \IfStrEq{\raisechrono}{auto}% + {% + \setlength{\tmp@chrono@offset}{0pt}% + }% + {% + \setlength{\tmp@chrono@offset}{\raisechrono}% + }% + \setlength{\tmp@chrono@hauteur@totale}{\hautchrono}% + \raisebox{\tmp@chrono@offset}{% + \begin{tikzpicture}[x={0.4125\tmp@chrono@hauteur@totale},y={0.4125\tmp@chrono@hauteur@totale},transform shape,chronoalign] + %time + \IfEq{#2}{}{}{\filldraw[rounded corners={\echellechronoarrondis\tmp@chrono@hauteur@totale},\coltimechrono,draw=none] (0,0)--({90-6*(#2)}:0.9) arc ({90-6*(#2)}:90:0.9)--cycle ;}% + %rules + \IfStrEq{\deltachrono}{0}% + {}% + {\foreach \i in \tmp@gen@traits {\draw[\colchrono,line width={\echellechronotraits\tmp@chrono@hauteur@totale}] (\i:0.6)--(\i:0.85);}}% + %clock + \tmp@chrono@draw + \end{tikzpicture}% + }% + }% +} + +\endinput \ No newline at end of file diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 498761a20c9..e36284de8d7 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -658,7 +658,7 @@ my @TLP_working = qw( phonenumbers phonetic phonrule photo photobook physconst physics physics2 physunits piano picinpar pict2e - pictex pictex2 pictexsum picture piechartmp piff pigpen + pictex pictex2 pictexsum pictochrono picture piechartmp piff pigpen pinlabel pinoutikz pitex piton pittetd pixelart pixelarttikz pkfix pkfix-helper pkgloader pkuthss pl placeat placeins placeins-plain diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index ebc3d6f99ac..ca1c7bf4430 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -1825,6 +1825,7 @@ chomp (my $ctan_root = `tlpkginfo --ctan-root`); 'pgfplots' => '&POSTpgfplots', 'physics2' => '&POST_onelevel', 'pict2e' => '&POSTpict2e', + 'pictochrono' => '&POST_onelevel', 'pixelarttikz' => '&POST_onelevel', 'pkfix-helper' => '&POSTpkfix_helper', 'platex' => '&POST_preserve_man', diff --git a/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc b/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc index 2a77b643ed7..9f42f935514 100644 --- a/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc @@ -130,6 +130,7 @@ depend picinpar depend pict2e depend pictex depend pictex2 +depend pictochrono depend pinlabel depend pixelart depend pixelarttikz diff --git a/Master/tlpkg/tlpsrc/pictochrono.tlpsrc b/Master/tlpkg/tlpsrc/pictochrono.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d -- cgit v1.2.3