summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-02-14 03:01:19 +0000
committerNorbert Preining <norbert@preining.info>2024-02-14 03:01:19 +0000
commita90336c3069c198b41b7b6eb76e3389610ad5eb7 (patch)
tree1d39210ab0b0caece02b2322e3fd773db8385982 /graphics
parentff59efb1f42e705d74a6d50a1f8dbd7988ccf380 (diff)
CTAN sync 202402140301
Diffstat (limited to 'graphics')
-rw-r--r--graphics/pgf/contrib/pictochrono/README.md5
-rw-r--r--graphics/pgf/contrib/pictochrono/doc/pictochrono-doc.pdfbin0 -> 239299 bytes
-rw-r--r--graphics/pgf/contrib/pictochrono/doc/pictochrono-doc.tex216
-rw-r--r--graphics/pgf/contrib/pictochrono/tex/pictochrono.sty113
4 files changed, 334 insertions, 0 deletions
diff --git a/graphics/pgf/contrib/pictochrono/README.md b/graphics/pgf/contrib/pictochrono/README.md
new file mode 100644
index 0000000000..2cd58caa7a
--- /dev/null
+++ b/graphics/pgf/contrib/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/graphics/pgf/contrib/pictochrono/doc/pictochrono-doc.pdf b/graphics/pgf/contrib/pictochrono/doc/pictochrono-doc.pdf
new file mode 100644
index 0000000000..e3bda35cd9
--- /dev/null
+++ b/graphics/pgf/contrib/pictochrono/doc/pictochrono-doc.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/pictochrono/doc/pictochrono-doc.tex b/graphics/pgf/contrib/pictochrono/doc/pictochrono-doc.tex
new file mode 100644
index 0000000000..f55a582174
--- /dev/null
+++ b/graphics/pgf/contrib/pictochrono/doc/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}<v.align>
+\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}<vcenter>
+ &
+ \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/graphics/pgf/contrib/pictochrono/tex/pictochrono.sty b/graphics/pgf/contrib/pictochrono/tex/pictochrono.sty
new file mode 100644
index 0000000000..d12e83ba0a
--- /dev/null
+++ b/graphics/pgf/contrib/pictochrono/tex/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