diff options
author | Norbert Preining <norbert@preining.info> | 2023-10-07 03:01:12 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2023-10-07 03:01:12 +0000 |
commit | 1ca4946e587189e1924b5a2627aba47c535d3e49 (patch) | |
tree | ecf910cfd5a2eb5394323ffc6a3dd3d3d6cfec16 /graphics | |
parent | eb5f6f6b85d43592051aaf5c6e14e4173cffeba9 (diff) |
CTAN sync 202310070301
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/pgf/contrib/circularglyphs/doc/circularglyphs-doc.pdf | bin | 123781 -> 136241 bytes | |||
-rw-r--r-- | graphics/pgf/contrib/circularglyphs/doc/circularglyphs-doc.tex | 207 | ||||
-rw-r--r-- | graphics/pgf/contrib/circularglyphs/doc/circularglyphs-sample.pdf | bin | 45372 -> 44763 bytes | |||
-rw-r--r-- | graphics/pgf/contrib/circularglyphs/doc/circularglyphs-sample.tex | 13 | ||||
-rw-r--r-- | graphics/pgf/contrib/circularglyphs/tex/circularglyphs.sty | 71 | ||||
-rw-r--r-- | graphics/pgf/contrib/tikz-osci/README.md | 5 | ||||
-rw-r--r-- | graphics/pgf/contrib/tikz-osci/doc/doc.pdf | bin | 0 -> 83881 bytes | |||
-rw-r--r-- | graphics/pgf/contrib/tikz-osci/doc/doc.tex | 161 | ||||
-rw-r--r-- | graphics/pgf/contrib/tikz-osci/doc/example.tex | 29 | ||||
-rw-r--r-- | graphics/pgf/contrib/tikz-osci/tikz-osci.sty | 204 |
10 files changed, 613 insertions, 77 deletions
diff --git a/graphics/pgf/contrib/circularglyphs/doc/circularglyphs-doc.pdf b/graphics/pgf/contrib/circularglyphs/doc/circularglyphs-doc.pdf Binary files differindex 10b3d9170d..298a045759 100644 --- a/graphics/pgf/contrib/circularglyphs/doc/circularglyphs-doc.pdf +++ b/graphics/pgf/contrib/circularglyphs/doc/circularglyphs-doc.pdf diff --git a/graphics/pgf/contrib/circularglyphs/doc/circularglyphs-doc.tex b/graphics/pgf/contrib/circularglyphs/doc/circularglyphs-doc.tex index ec9322d446..e286a414fc 100644 --- a/graphics/pgf/contrib/circularglyphs/doc/circularglyphs-doc.tex +++ b/graphics/pgf/contrib/circularglyphs/doc/circularglyphs-doc.tex @@ -1,19 +1,21 @@ % !TeX TXS-program:compile = txs:///arara -% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} -% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') +% 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[french,11pt,a4paper]{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} -\usepackage{DejaVuSerif} -\usepackage[scale=1.125]{inconsolata} +\usepackage{DejaVuSerifCondensed} +\usepackage[scale=1.075]{inconsolata} +\usepackage{enumitem} \usepackage{circularglyphs} +\usepackage{multicol} \usepackage{soul} -\usepackage{codehigh} \usepackage{multicol} \usepackage{fontawesome5} \usepackage{fancyvrb} \usepackage{fancyhdr} +\usepackage{tabularx} \usepackage{tabularray} \fancyhf{} \renewcommand{\headrulewidth}{0pt} @@ -33,17 +35,50 @@ \usepackage[margin=1.5cm]{geometry} \setlength{\parindent}{0pt} -\def\TPversion{0.1.0} -\def\TPdate{4 octobre 2023} -\usepackage{tcolorbox} +\def\TPversion{0.1.1} +\def\TPdate{6 octobre 2023} + +\usepackage{babel} + +\usepackage[most]{tcolorbox} +\tcbuselibrary{listingsutf8} +\newtcblisting{DemoCode}[1][]{% + enhanced,width=0.95\linewidth,center,% + bicolor,size=title,% + colback=cyan!2!white,% + colbacklower=cyan!1!white,% + colframe=cyan!75!black,% + listing options={% + breaklines=true,% + breakatwhitespace=true,% + style=tcblatex,basicstyle=\small\ttfamily,% + tabsize=4,% + commentstyle={\itshape\color{gray}}, + keywordstyle={\color{blue}},% + classoffset=0,% + keywords={},% + alsoletter={-},% + keywordstyle={\color{blue}},% + classoffset=1,% + alsoletter={-},% + morekeywords={center,justify},% + keywordstyle={\color{violet}},% + classoffset=2,% + alsoletter={-},% + morekeywords={\CircGlyph},% + keywordstyle={\color{green!50!black}},% + classoffset=3,% + morekeywords={Ext,Inline},% + keywordstyle={\color{orange}} + },% + #1 +} \sethlcolor{lightgray!25} \NewDocumentCommand\MontreCode{ m }{% \hl{\vphantom{\texttt{pf}}\texttt{#1}}% } -\usepackage{babel} - \begin{document} \pagestyle{fancy} @@ -118,7 +153,7 @@ \medskip -\textcolor{purple}{\large\CircGlyph{Le principe de toute souveraineté réside essentiellement dans la nation. Nul corps, nul individu ne peut exercer d'autorité qui n'en émane expressément.}} +{\large\CircGlyph[Color=purple]{Le principe de toute souveraineté réside essentiellement dans la nation. Nul corps, nul individu ne peut exercer d'autorité qui n'en émane expressément.}} \vfill~ @@ -150,23 +185,23 @@ Dans l'alphabet \textsf{Circular Glyphs}, on a les règles suivantes : \bigskip \begin{tblr}{width=\linewidth,stretch=1.5,colspec={*{13}{X[m,c]}},row{even}={font=\LARGE\ttfamily},row{odd}={font=\LARGE}} - \CircGlyph*{a}&\CircGlyph*{b}&\CircGlyph*{c}&\CircGlyph*{d}&\CircGlyph*{e}&\CircGlyph*{f}&\CircGlyph*{g}&\CircGlyph*{h}&\CircGlyph*{i}&\CircGlyph*{j}&\CircGlyph*{k}&\CircGlyph*{l}&\CircGlyph*{m}\\ + \CircGlyph[Inline]{a}&\CircGlyph[Inline]{b}&\CircGlyph[Inline]{c}&\CircGlyph[Inline]{d}&\CircGlyph[Inline]{e}&\CircGlyph[Inline]{f}&\CircGlyph[Inline]{g}&\CircGlyph[Inline]{h}&\CircGlyph[Inline]{i}&\CircGlyph[Inline]{j}&\CircGlyph[Inline]{k}&\CircGlyph[Inline]{l}&\CircGlyph[Inline]{m}\\ A&B&C&D&E&F&G&H&I&J&K&L&M\\ - \CircGlyph*{n}&\CircGlyph*{o}&\CircGlyph*{p}&\CircGlyph*{q}&\CircGlyph*{r}&\CircGlyph*{s}&\CircGlyph*{t}&\CircGlyph*{u}&\CircGlyph*{v}&\CircGlyph*{w}&\CircGlyph*{x}&\CircGlyph*{y}&\CircGlyph*{z}\\ + \CircGlyph[Inline]{n}&\CircGlyph[Inline]{o}&\CircGlyph[Inline]{p}&\CircGlyph[Inline]{q}&\CircGlyph[Inline]{r}&\CircGlyph[Inline]{s}&\CircGlyph[Inline]{t}&\CircGlyph[Inline]{u}&\CircGlyph[Inline]{v}&\CircGlyph[Inline]{w}&\CircGlyph[Inline]{x}&\CircGlyph[Inline]{y}&\CircGlyph[Inline]{z}\\ N&O&P&Q&R&S&T&U&V&W&X&Y&Z\\ - \CircGlyph*{0}&\CircGlyph*{1}&\CircGlyph*{2}&\CircGlyph*{3}&\CircGlyph*{4}&\CircGlyph*{5}&\CircGlyph*{6}&\CircGlyph*{7}&\CircGlyph*{8}&\CircGlyph*{9}\\ - 0&1&2&3&4&5&6&7&8&9\\ - \CircGlyph*{ } \\ - Null \\ + \CircGlyph[Inline]{0}&\CircGlyph[Inline]{1}&\CircGlyph[Inline]{2}&\CircGlyph[Inline]{3}&\CircGlyph[Inline]{4}&\CircGlyph[Inline]{5}&\CircGlyph[Inline]{6}&\CircGlyph[Inline]{7}&\CircGlyph[Inline]{8}&\CircGlyph[Inline]{9}\\ + 0&1&2&3&4&5&6&7&8&9\\ + \CircGlyph[Inline]{ }&&&&&&&&&&&\\ + Null&&&&&&&&&&&&&\\ \end{tblr} \subsection{Chargement} Le package se charge dans le préambule, via \MontreCode{\textbackslash usepackage\{circularglyphs\}}. -\begin{codehigh}[language=latex/latex3,style/main=teal!15,style/code=teal!15] +\begin{DemoCode}[listing only] \usepackage{circularglyphs} -\end{codehigh} +\end{DemoCode} Les seuls packages utilisés sont : @@ -185,21 +220,33 @@ Les seuls packages utilisés sont : \section{Commande et fonctionnement} +\subsection{Compatibilité} + +Le package est compatible (normalement) avec les compilateurs classiques (\hologo{LuaLaTeX}, \hologo{pdfLaTeX}, etc) et des tests ont été réalisés pour tester le bon fonctionnement avec des caractères spéciaux comme \MontreCode{;} ou \MontreCode{:}. + +\smallskip + +Attention toutefois si la commande est incluse dans un environnement ou dans une autre commande, surtout si des caractères actifs sont présents\ldots + \subsection{Commande basique} La commande permettant de \textit{transcrire} du texte en \textsf{Circular Glyphs} est tout simplement : -\begin{demohigh}[language=latex/latex3,style/main=teal!15,style/code=teal!15] +\begin{DemoCode}[] %mode paragraphe -\CircGlyph{Les hommes naissent et demeurent libres et egaux en droits. Les distinctions sociales ne peuvent etre fondees que sur l'utilite commune.} -\end{demohigh} +\CircGlyph{Les hommes naissent et demeurent libres et égaux en droits. Les distinctions sociales ne peuvent être fondées que sur l'utilité commune.} +\end{DemoCode} -\begin{demohigh}[language=latex/latex3,style/main=teal!15,style/code=teal!15] +\begin{DemoCode}[] %mode en ligne -\CircGlyph*{Les hommes naissent et demeurent libres et egaux en droits.} -\end{demohigh} +\CircGlyph[Inline]{Les hommes naissent et demeurent libres et égaux en droits.} +\end{DemoCode} -La version étoilée (en mode \textit{en ligne}) ne permet pas d'obtenir une grille très \textit{satisfaisante}, alors que la version non étoilée le gère, grâce à \MontreCode{\textbackslash offinterlineskip} et \MontreCode{\textbackslash par}, donc la commande en version étoilée est à réserver pour insérer des caractères \textsf{Circular Glyphs} simples. +La version avec la clé \MontreCode{[Inline]} (en mode \textit{en ligne}) ne permet pas d'obtenir une grille très \textit{satisfaisante}, alors que la version \textit{classique} le gère, grâce à \MontreCode{\textbackslash offinterlineskip} et \MontreCode{\textbackslash par}, donc la commande avec la clé \MontreCode{[Inline]} est à réserver pour insérer des caractères \textsf{Circular Glyphs} simples. + +\medskip + +Il existe également la clé \MontreCode{[Color=...]} pour permettre de colorer les glyphes de manière directe, car il n'est (pour le moment) pas possible d'utiliser la commande en parallèle de \MontreCode{\textbackslash textcolor} \medskip @@ -211,55 +258,105 @@ Concernant la création et disposition des glyphes : \item le passage à la ligne est géré par le code, ce qui permet d'avoir une présentation sous forme de \textit{grille}. \end{itemize} -\begin{demohigh}[language=latex/latex3,style/main=teal!15,style/code=teal!15] +\begin{DemoCode}[] %positionnement des glyphes -q\CircGlyph*{ABCDEFG}A -\end{demohigh} +y\CircGlyph[Inline]{ABCDEFG}S +\end{DemoCode} -\begin{demohigh}[language=latex/latex3,style/main=teal!15,style/code=teal!15] +\begin{DemoCode}[] %influcence de la police -{\LARGE\sffamily q\CircGlyph*{ABCDEFG}A} -\end{demohigh} +{\LARGE\sffamily q\CircGlyph[Inline]{ABCDEFG}S} +\end{DemoCode} + +\pagebreak \subsection{Caractères alternatifs} -Des caractères alternatifs, accessibles en activant la clé \MontreCode{[Ext]}, permet d'obtenir des glyphes complémentaires (on sort un peu du cadre \textsf{Circular} quand même !). +Des caractères alternatif sont accessibles en activant la clé \MontreCode{[Ext]}, qui permet d'obtenir des glyphes complémentaires (on sort un peu du cadre \textsf{Circular} quand même !). + +\begin{multicols}{4} +\begin{itemize}[label=\textbullet] + \item {\LARGE \MontreCode{,} : \CircGlyph[Inline,Ext]{,}} + \item {\LARGE \MontreCode{;} : \CircGlyph[Inline,Ext]{;}} + \item {\LARGE \MontreCode{.} : \CircGlyph[Inline,Ext]{.}} + \item {\LARGE \MontreCode{?} : \CircGlyph[Inline,Ext]{?}} + \item {\LARGE \MontreCode{!} : \CircGlyph[Inline,Ext]{!}} + \item {\LARGE \MontreCode{:} : \CircGlyph[Inline,Ext]{:}} + \item {\LARGE \MontreCode{-} : \CircGlyph[Inline,Ext]{-}} + \item {\LARGE \MontreCode{'} : \CircGlyph[Inline,Ext]{'}} + \item {\LARGE \MontreCode{+} : \CircGlyph[Inline,Ext]{+}} + \item {\LARGE \MontreCode{*} : \CircGlyph[Inline,Ext]{*}} + \item {\LARGE \MontreCode{(} : \CircGlyph[Inline,Ext]{(}} + \item {\LARGE \MontreCode{)} : \CircGlyph[Inline,Ext]{)}} + \item {\LARGE \MontreCode{=} : \CircGlyph[Inline,Ext]{=}} + \item {\LARGE \MontreCode{/} : \CircGlyph[Inline,Ext]{/}} + \item {\LARGE \MontreCode{<} : \CircGlyph[Inline,Ext]{<}} + \item {\LARGE \MontreCode{>} : \CircGlyph[Inline,Ext]{>}} +\end{itemize} +\end{multicols} +%{\renewcommand\arraystretch{1.5}\begin{tabularx}{\linewidth}{*{13}{c}} +% {\LARGE\CircGlyph[Inline,Ext]{,}}&{\LARGE\CircGlyph[Ext,Inline]{;}}&\CircGlyph[Ext,Inline]{.}&\CircGlyph[Ext,Inline]{?}&\CircGlyph[Ext,Inline]{!}&\CircGlyph[Ext,Inline]{:}&\CircGlyph[Ext,Inline]{-}&\CircGlyph[Ext,Inline]{'}&\CircGlyph[Ext,Inline]{+}&\CircGlyph[Ext,Inline]{+}&\CircGlyph[Ext,Inline]{(}&\CircGlyph[Ext,Inline]{)}&\CircGlyph[Ext,Inline]{=}\\ +% ,&;&.&?&!&:&-&'&+&*&(&)&= \\ +%\end{tabularx}} + +%\begin{tblr}{width=\linewidth,stretch=1.5,colspec={*{13}{X[m,c]}}} +% {\LARGE\CircGlyph[Inline,Ext]{,}}&{\LARGE\CircGlyph[Ext,Inline]{;}}&\CircGlyph[Ext,Inline]{.}&\CircGlyph[Ext,Inline]{?}&\CircGlyph[Ext,Inline]{!}&\CircGlyph[Ext,Inline]{:}&\CircGlyph[Ext,Inline]{-}&\CircGlyph[Ext,Inline]{'}&\CircGlyph[Ext,Inline]{+}&\CircGlyph[Ext,Inline]{+}&\CircGlyph[Ext,Inline]{(}&\CircGlyph[Ext,Inline]{)}&\CircGlyph[Ext,Inline]{=}\\ +%% ,&;&.&?&!&:&-&'&+&*&(&)&= \\ +%% \CircGlyph[Ext,Inline]{/}&\CircGlyph[Ext,Inline]{<}&\CircGlyph[Ext,Inline]{>} \\ +%% /&<&> \\ +%\end{tblr} + +\begin{DemoCode}[] +%texte sans glyphes etendus, mode en ligne +\CircGlyph[Inline]{Moi, auteur ; je : tu ! il ! nous ?} +\end{DemoCode} + +\begin{DemoCode}[] +%texte sans glyphes etendus, mode hors ligne +\CircGlyph{Moi, auteur ; je : tu ! il ! nous ?} +\end{DemoCode} + +\begin{DemoCode}[] +%texte avec glyphes etendus, mode en ligne +\CircGlyph[Ext,Inline]{Moi, auteur ; je : tu ! il ! nous ?} +\end{DemoCode} + +\begin{DemoCode}[] +%texte avec glyphes etendus, mode hors ligne +\CircGlyph[Ext]{Moi, auteur ; je : tu ! il ! nous ?} +\end{DemoCode} + +\begin{DemoCode}[] +%un peu de Maths ? +\CircGlyph[Ext,Inline]{2+3+5=10 et 1<9} +\end{DemoCode} + +\subsection{Conseils et compléments} -\bigskip +Pour les caractères spéciaux et/ou accentués, il est conseillé d'utiliser les encodages \MontreCode{T1} et \MontreCode{utf8}, ainsi que le package \MontreCode{babel}. -\begin{tblr}{width=\linewidth,stretch=1.5,colspec={*{13}{X[m,c]}},row{even}={font=\LARGE\ttfamily},row{odd}={font=\LARGE}} - \CircGlyph*[Ext]{,}&\CircGlyph*[Ext]{;}&\CircGlyph*[Ext]{.}&\CircGlyph*[Ext]{?}&\CircGlyph*[Ext]{!}&\CircGlyph*[Ext]{:}&\CircGlyph*[Ext]{-}&\CircGlyph*[Ext]{'}&\CircGlyph*[Ext]{+}&\CircGlyph*[Ext]{+}&\CircGlyph*[Ext]{(}&\CircGlyph*[Ext]{)}&\CircGlyph*[Ext]{=}\\ - ,&;&.&?&!&:&-&'&+&*&(&)&= \\ - \CircGlyph*[Ext]{/}&\CircGlyph*[Ext]{<}&\CircGlyph*[Ext]{>} \\ - /&<&> \\ -\end{tblr} +\smallskip -\begin{demohigh}[language=latex/latex3,style/main=teal!15,style/code=teal!15] -%texte avec glyphes etendus -\CircGlyph*[Ext]{Moi, je...} -\end{demohigh} +Pour des problèmes de compatibilité avec les \texttt{catcodes}, il est conseillé de limiter l'utilisation de symboles de ponctuation comme \texttt{;} ou \texttt{:}, en utilisant par exemple un éditeur de texte pour les remplacer ou supprimer. -\begin{demohigh}[language=latex/latex3,style/main=teal!15,style/code=teal!15] -%un peu de Laths ? -\CircGlyph*[Ext]{2+3+5=10 et 1<9} -\end{demohigh} +\smallskip -\pagebreak +L'utilisation de \MontreCode{\textbackslash noindent} est recommandée en mode paragraphe pour que la \textit{grille} soit correctement affichée. -\subsection{Conseils et compléments} +\smallskip -Pour les caractères spéciaux et/ou accentués, il est conseillé d'utiliser les encodages \MontreCode{T1} et \MontreCode{utf8}, ainsi que le package \MontreCode{babel}. +Pour de \textit{longs} paragraphes, le temps de compilation peut être relativement long, du fait de l'analyse caractère par caractère\ldots \smallskip -L'utilisation de \MontreCode{\textbackslash noindent} est recommandée en mode paragraphe pour que la \textit{grille} soit correctement affichée. +Il est à noter que certains caractères peuvent poser des soucis en fonction du compilateur et/ou des environnements utilisés (ceci étant dû aux caractères actifs\ldots) -Pour de \textit{longs} paragraphes, le temps de compilation peut être relativement long, du fait de l'analyse caractère par caractère\ldots +\pagebreak \section{Historique} -\verb|v0.1.0|~:~~~~Version initiale +\verb|v0.1.1|~:~~~~Compatibilité accrue avec \hologo{pdfLaTeX} et les caractères actifs + Clé \MontreCode{[Color]} -\vspace*{1cm} +\verb|v0.1.0|~:~~~~Version initiale \end{document}
\ No newline at end of file diff --git a/graphics/pgf/contrib/circularglyphs/doc/circularglyphs-sample.pdf b/graphics/pgf/contrib/circularglyphs/doc/circularglyphs-sample.pdf Binary files differindex aa9cb95861..7d7e7517fa 100644 --- a/graphics/pgf/contrib/circularglyphs/doc/circularglyphs-sample.pdf +++ b/graphics/pgf/contrib/circularglyphs/doc/circularglyphs-sample.pdf diff --git a/graphics/pgf/contrib/circularglyphs/doc/circularglyphs-sample.tex b/graphics/pgf/contrib/circularglyphs/doc/circularglyphs-sample.tex index 1b216a15cd..f2512fc768 100644 --- a/graphics/pgf/contrib/circularglyphs/doc/circularglyphs-sample.tex +++ b/graphics/pgf/contrib/circularglyphs/doc/circularglyphs-sample.tex @@ -1,6 +1,5 @@ % !TeX TXS-program:compile = txs:///arara % arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} -% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') \documentclass[french,11pt,a4paper]{article} \usepackage[utf8]{inputenc} @@ -15,27 +14,27 @@ \medskip -EN ENTRANT CE SOIR-LÀ AU JARDIN, JULIEN ÉTAIT DISPOSÉ À S'OCCUPER DES IDÉES DES JOLIES COUSINES. ELLES L'ATTENDAIENT AVEC IMPATIENCE. IL PRIT SA PLACE ORDINAIRE, À CÔTÉ DE MME DE RÊNAL. L'OBSCURITÉ DEVINT BIENTÔT PROFONDE. IL VOULUT PRENDRE UNE MAIN BLANCHE QUE DEPUIS LONGTEMPS IL VOYAIT PRÈS DE LUI, APPUYÉE SUR LE DOS D'UNE CHAISE. ON HÉSITA UN PEU, MAIS ON FINIT PAR LA LUI RETIRER D'UNE FAÇON QUI MARQUAIT DE L'HUMEUR. JULIEN ÉTAIT DISPOSÉ À SE LE TENIR POUR DIT, ET À CONTINUER GAIEMENT LA CONVERSATION, QUAND IL ENTENDIT M. DE RÊNAL QUI S'APPROCHAIT.\par +EN ENTRANT CE SOIR-LÀ AU JARDIN, JULIEN ÉTAIT DISPOSÉ À S OCCUPER DES IDÉES DES JOLIES COUSINES. ELLES L ATTENDAIENT AVEC IMPATIENCE. IL PRIT SA PLACE ORDINAIRE, À CÔTÉ DE MME DE RÊNAL. L OBSCURITÉ DEVINT BIENTÔT PROFONDE. IL VOULUT PRENDRE UNE MAIN BLANCHE QUE DEPUIS LONGTEMPS IL VOYAIT PRÈS DE LUI, APPUYÉE SUR LE DOS D UNE CHAISE. ON HÉSITA UN PEU, MAIS ON FINIT PAR LA LUI RETIRER D UNE FAÇON QUI MARQUAIT DE L HUMEUR. JULIEN ÉTAIT DISPOSÉ À SE LE TENIR POUR DIT, ET À CONTINUER GAIEMENT LA CONVERSATION, QUAND IL ENTENDIT M. DE RÊNAL QUI S APPROCHAIT.\par \medskip -\noindent\textcolor{red}{\CircGlyph{EN ENTRANT CE SOIR-LÀ AU JARDIN, JULIEN ÉTAIT DISPOSÉ À S'OCCUPER DES IDÉES DES JOLIES COUSINES. ELLES L'ATTENDAIENT AVEC IMPATIENCE. IL PRIT SA PLACE ORDINAIRE, À CÔTÉ DE MME DE RÊNAL. L'OBSCURITÉ DEVINT BIENTÔT PROFONDE. IL VOULUT PRENDRE UNE MAIN BLANCHE QUE DEPUIS LONGTEMPS IL VOYAIT PRÈS DE LUI, APPUYÉE SUR LE DOS D'UNE CHAISE. ON HÉSITA UN PEU, MAIS ON FINIT PAR LA LUI RETIRER D'UNE FAÇON QUI MARQUAIT DE L'HUMEUR. JULIEN ÉTAIT DISPOSÉ À SE LE TENIR POUR DIT, ET À CONTINUER GAIEMENT LA CONVERSATION, QUAND IL ENTENDIT M. DE RÊNAL QUI S'APPROCHAIT.}} +\noindent\CircGlyph[Color=red]{EN ENTRANT CE SOIR-LÀ AU JARDIN, JULIEN ÉTAIT DISPOSÉ À S OCCUPER DES IDÉES DES JOLIES COUSINES. ELLES L ATTENDAIENT AVEC IMPATIENCE. IL PRIT SA PLACE ORDINAIRE, À CÔTÉ DE MME DE RÊNAL. L OBSCURITÉ DEVINT BIENTÔT PROFONDE. IL VOULUT PRENDRE UNE MAIN BLANCHE QUE DEPUIS LONGTEMPS IL VOYAIT PRÈS DE LUI, APPUYÉE SUR LE DOS D UNE CHAISE. ON HÉSITA UN PEU, MAIS ON FINIT PAR LA LUI RETIRER D UNE FAÇON QUI MARQUAIT DE L HUMEUR. JULIEN ÉTAIT DISPOSÉ À SE LE TENIR POUR DIT, ET À CONTINUER GAIEMENT LA CONVERSATION, QUAND IL ENTENDIT M. DE RÊNAL QUI S APPROCHAIT.} \medskip -CETTE MAGNIFICENCE MÉLANCOLIQUE, DÉGRADÉE PAR LA VUE DES BRIQUES NUES ET DU PLÂTRE ENCORE TOUT BLANC, TOUCHA JULIEN. IL S'ARRÊTA EN SILENCE. À L'AUTRE EXTRÉMITÉ DE LA SALLE, PRÈS DE L'UNIQUE FENÊTRE PAR LAQUELLE LE JOUR PÉNÉTRAIT, IL VIT UN MIROIR MOBILE EN ACAJOU. UN JEUNE HOMME, EN ROBE VIOLETTE ET EN SURPLIS DE DENTELLE, MAIS LA TÊTE NUE, ÉTAIT ARRÊTÉ À TROIS PAS DE LA GLACE. CE MEUBLE SEMBLAIT ÉTRANGE EN UN TEL LIEU, ET, SANS DOUTE, Y AVAIT ÉTÉ APPORTÉ DE LA VILLE. JULIEN TROUVA QUE LE JEUNE HOMME AVAIT L'AIR IRRITÉ ; DE LA MAIN DROITE IL DONNAIT GRAVEMENT DES BÉNÉDICTIONS DU CÔTÉ DU MIROIR.\par +CETTE MAGNIFICENCE MÉLANCOLIQUE, DÉGRADÉE PAR LA VUE DES BRIQUES NUES ET DU PLÂTRE ENCORE TOUT BLANC, TOUCHA JULIEN. IL S ARRÊTA EN SILENCE. À L AUTRE EXTRÉMITÉ DE LA SALLE, PRÈS DE L UNIQUE FENÊTRE PAR LAQUELLE LE JOUR PÉNÉTRAIT, IL VIT UN MIROIR MOBILE EN ACAJOU. UN JEUNE HOMME, EN ROBE VIOLETTE ET EN SURPLIS DE DENTELLE, MAIS LA TÊTE NUE, ÉTAIT ARRÊTÉ À TROIS PAS DE LA GLACE. CE MEUBLE SEMBLAIT ÉTRANGE EN UN TEL LIEU, ET, SANS DOUTE, Y AVAIT ÉTÉ APPORTÉ DE LA VILLE. JULIEN TROUVA QUE LE JEUNE HOMME AVAIT L AIR IRRITÉ, DE LA MAIN DROITE IL DONNAIT GRAVEMENT DES BÉNÉDICTIONS DU CÔTÉ DU MIROIR.\par \medskip -\noindent\textcolor{orange}{\CircGlyph{CETTE MAGNIFICENCE MÉLANCOLIQUE, DÉGRADÉE PAR LA VUE DES BRIQUES NUES ET DU PLÂTRE ENCORE TOUT BLANC, TOUCHA JULIEN. IL S'ARRÊTA EN SILENCE. À L'AUTRE EXTRÉMITÉ DE LA SALLE, PRÈS DE L'UNIQUE FENÊTRE PAR LAQUELLE LE JOUR PÉNÉTRAIT, IL VIT UN MIROIR MOBILE EN ACAJOU. UN JEUNE HOMME, EN ROBE VIOLETTE ET EN SURPLIS DE DENTELLE, MAIS LA TÊTE NUE, ÉTAIT ARRÊTÉ À TROIS PAS DE LA GLACE. CE MEUBLE SEMBLAIT ÉTRANGE EN UN TEL LIEU, ET, SANS DOUTE, Y AVAIT ÉTÉ APPORTÉ DE LA VILLE. JULIEN TROUVA QUE LE JEUNE HOMME AVAIT L'AIR IRRITÉ ; DE LA MAIN DROITE IL DONNAIT GRAVEMENT DES BÉNÉDICTIONS DU CÔTÉ DU MIROIR.}} +\noindent\CircGlyph[Color=blue]{CETTE MAGNIFICENCE MÉLANCOLIQUE, DÉGRADÉE PAR LA VUE DES BRIQUES NUES ET DU PLÂTRE ENCORE TOUT BLANC, TOUCHA JULIEN. IL S ARRÊTA EN SILENCE. À L AUTRE EXTRÉMITÉ DE LA SALLE, PRÈS DE L UNIQUE FENÊTRE PAR LAQUELLE LE JOUR PÉNÉTRAIT, IL VIT UN MIROIR MOBILE EN ACAJOU. UN JEUNE HOMME, EN ROBE VIOLETTE ET EN SURPLIS DE DENTELLE, MAIS LA TÊTE NUE, ÉTAIT ARRÊTÉ À TROIS PAS DE LA GLACE. CE MEUBLE SEMBLAIT ÉTRANGE EN UN TEL LIEU, ET, SANS DOUTE, Y AVAIT ÉTÉ APPORTÉ DE LA VILLE. JULIEN TROUVA QUE LE JEUNE HOMME AVAIT L AIR IRRITÉ, DE LA MAIN DROITE IL DONNAIT GRAVEMENT DES BÉNÉDICTIONS DU CÔTÉ DU MIROIR.} \medskip -LA DÉTERMINATION SUBITE QU’IL VENAIT DE PRENDRE FORMA UNE DISTRACTION AGRÉABLE. IL SE DISAIT : IL FAUT QUE J’AIE UNE DE CES DEUX FEMMES ; IL S’APERÇUT QU’IL AURAIT BEAUCOUP MIEUX AIMÉ FAIRE LA COUR À MME DERVILLE ; CE N’EST PAS QU’ELLE FÛT PLUS AGRÉABLE, MAIS TOUJOURS ELLE L’AVAIT VU PRÉCEPTEUR HONORÉ POUR SA SCIENCE, ET NON PAS OUVRIER CHARPENTIER, AVEC UNE VESTE DE RATINE PLIÉE SOUS LE BRAS, COMME IL ÉTAIT APPARU À MME DE RÊNAL.\par +LA DÉTERMINATION SUBITE QU IL VENAIT DE PRENDRE FORMA UNE DISTRACTION AGRÉABLE. IL SE DISAIT : IL FAUT QUE J AIE UNE DE CES DEUX FEMMES ; IL S APERÇUT QU IL AURAIT BEAUCOUP MIEUX AIMÉ FAIRE LA COUR À MME DERVILLE, CE N EST PAS QU ELLE FÛT PLUS AGRÉABLE, MAIS TOUJOURS ELLE L AVAIT VU PRÉCEPTEUR HONORÉ POUR SA SCIENCE, ET NON PAS OUVRIER CHARPENTIER, AVEC UNE VESTE DE RATINE PLIÉE SOUS LE BRAS, COMME IL ÉTAIT APPARU À MME DE RÊNAL.\par \medskip -\noindent\textcolor{blue}{\CircGlyph{LA DÉTERMINATION SUBITE QU’IL VENAIT DE PRENDRE FORMA UNE DISTRACTION AGRÉABLE. IL SE DISAIT : IL FAUT QUE J’AIE UNE DE CES DEUX FEMMES ; IL S’APERÇUT QU’IL AURAIT BEAUCOUP MIEUX AIMÉ FAIRE LA COUR À MME DERVILLE ; CE N’EST PAS QU’ELLE FÛT PLUS AGRÉABLE, MAIS TOUJOURS ELLE L’AVAIT VU PRÉCEPTEUR HONORÉ POUR SA SCIENCE, ET NON PAS OUVRIER CHARPENTIER, AVEC UNE VESTE DE RATINE PLIÉE SOUS LE BRAS, COMME IL ÉTAIT APPARU À MME DE RÊNAL.}} +\noindent\CircGlyph[Color=orange]{LA DÉTERMINATION SUBITE QU IL VENAIT DE PRENDRE FORMA UNE DISTRACTION AGRÉABLE. IL SE DISAIT : IL FAUT QUE J AIE UNE DE CES DEUX FEMMES ; IL S APERÇUT QU IL AURAIT BEAUCOUP MIEUX AIMÉ FAIRE LA COUR À MME DERVILLE, CE N EST PAS QU ELLE FÛT PLUS AGRÉABLE, MAIS TOUJOURS ELLE L AVAIT VU PRÉCEPTEUR HONORÉ POUR SA SCIENCE, ET NON PAS OUVRIER CHARPENTIER, AVEC UNE VESTE DE RATINE PLIÉE SOUS LE BRAS, COMME IL ÉTAIT APPARU À MME DE RÊNAL.} \end{document}
\ No newline at end of file diff --git a/graphics/pgf/contrib/circularglyphs/tex/circularglyphs.sty b/graphics/pgf/contrib/circularglyphs/tex/circularglyphs.sty index d285b23c7a..5366c19461 100644 --- a/graphics/pgf/contrib/circularglyphs/tex/circularglyphs.sty +++ b/graphics/pgf/contrib/circularglyphs/tex/circularglyphs.sty @@ -2,9 +2,10 @@ % licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{circularglyphs}[2023/10/04 0.1.0 Circular glyphs Alphabet] +\ProvidesPackage{circularglyphs}[2023/10/06 0.1.1 Circular glyphs Alphabet] %====HISTORIQUE +% v 0.1.1 Compatibilité accrue avec le moteur pdflatex ^^ + clé [Color] % v 0.1.0 Version initiale %====BASE @@ -21,8 +22,13 @@ \def\tmp@circglyph@nivpt{0.25} %====CLÉS +\defKV[circularglyph]{% + Color=\def\circularglyphcolor{#1} +} \setKVdefault[circularglyph]{% - Ext=false + Ext=false,% + Inline=false,% + Color=black } %====STYLES @@ -191,16 +197,36 @@ } %====MACROCRÉATION -\NewDocumentCommand\GenereCircGlyp{ m m }{%1=lettre,2=pictikz - \IfStrEq{\TmpCaract}{#1}% +%\ifpdftex +%gestion des caractères actifs +\NewDocumentCommand\GenereCircGlyp{ }{% + \begingroup + \catcode`\;=12 + \catcode`\:=12 + \catcode`\!=12 + \catcode`\?=12 + \GenereCircGlypAux +} +\NewDocumentCommand\GenereCircGlypAux{ m m }{%1=lettre,2=pictikz + \endgroup + \IfEq{\TmpCaract}{#1}% {% \raisebox{-\tmp@circglyph@profondeur}{% - \begin{tikzpicture}[CircGlyph]\clip (-0.5,-0.5) rectangle (0.5,0.5) ; \pic at (0,0) {#2} ;\end{tikzpicture}% + \begin{tikzpicture}[CircGlyph,\circularglyphcolor]\clip (-0.5,-0.5) rectangle (0.5,0.5) ; \pic at (0,0) {#2} ;\end{tikzpicture}% }% }{}% } -\NewDocumentCommand\CircGlyphChar{ m }{%1=lettre avec taille gérée par une macro supérieure +\NewDocumentCommand\CircGlyphChar{ }{% + \begingroup + \catcode`\;=12 + \catcode`\:=12 + \catcode`\!=12 + \catcode`\?=12 + \CircGlyphCharAux +} +\NewDocumentCommand\CircGlyphCharAux{ m }{%1=lettre avec taille gérée par une macro supérieure + \endgroup %les caractères min/MAJ \GenereCircGlyp{a}{CircGlyphA}% \GenereCircGlyp{b}{CircGlyphB}% @@ -265,8 +291,8 @@ \GenereCircGlyp{7}{CircGlyphSept}% \GenereCircGlyp{8}{CircGlyphHuit}% \GenereCircGlyp{9}{CircGlyphNeuf}% - %la ponctuation en fonction de [Ext] \GenereCircGlyp{ }{CircGlyphNull}% + %la ponctuation en fonction de [Ext] \ifboolKV[circularglyph]{Ext}% {% \GenereCircGlyp{,}{CircGlyphVirg}% @@ -292,15 +318,20 @@ }% } -\NewDocumentCommand\CircGlyph{ s O{} m }{% +\NewDocumentCommand\CircGlyph{ }{% + \begingroup + \catcode`\;=12 + \catcode`\:=12 + \catcode`\!=12 + \catcode`\?=12 + \CircGlyphAux +} +\NewDocumentCommand\CircGlyphAux{ O{} m }{% + \endgroup \useKVdefault[circularglyph]% - \setKV[circularglyph]{#2}% + \setKV[circularglyph]{#1}% %gestion des caractères spéciaux - \catcode`\;=12% - \catcode`\?=12% - \catcode`\!=12% - \catcode`\:=12% - \xdef\tmpphrase{#3}% + \def\tmpphrase{#2}% \StrSubstitute{\tmpphrase}{À}{A}[\tmpphrase]% \StrSubstitute{\tmpphrase}{à}{a}[\tmpphrase]% \StrSubstitute{\tmpphrase}{Â}{A}[\tmpphrase]% @@ -339,7 +370,17 @@ \settototalheight{\tmp@circglyph@hauteur@totale}{\hbox{azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN}}% \settodepth{\tmp@circglyph@profondeur}{\hbox{azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN}}% %créationdesglyphes - {\IfBooleanF{#1}{\offinterlineskip}\StrLen{\tmpphrase}[\NbCaract]{\foreach \poslet in {1,...,\NbCaract}{{\StrChar{\tmpphrase}{\poslet}[\TmpCaract]\CircGlyphChar{\TmpCaract}}\hspace{0pt}}}\IfBooleanF{#1}{\par}}% + \StrLen{\tmpphrase}[\NbCaract]% + \ifboolKV[circularglyph]{Inline}% + {% + {\foreach \poslet in {1,...,\NbCaract}{{\StrChar{\tmpphrase}{\poslet}[\TmpCaract]\CircGlyphChar{\TmpCaract}}\hspace{0pt}}}% + }% + {% + {% + \offinterlineskip{\foreach \poslet in {1,...,\NbCaract}{{\StrChar{\tmpphrase}{\poslet}[\TmpCaract]\CircGlyphChar{\TmpCaract}}\hspace{0pt}}}\par% + }% + }% + %{\IfBooleanF{#1}{\offinterlineskip}\StrLen{\tmpphrase}[\NbCaract]{\foreach \poslet in {1,...,\NbCaract}{{\StrChar{\tmpphrase}{\poslet}[\TmpCaract]\CircGlyphChar{\TmpCaract}}\hspace{0pt}}}\IfBooleanF{#1}{\par}}% } \endinput
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-osci/README.md b/graphics/pgf/contrib/tikz-osci/README.md new file mode 100644 index 0000000000..f997f44e1e --- /dev/null +++ b/graphics/pgf/contrib/tikz-osci/README.md @@ -0,0 +1,5 @@ +tikz-osci is a package which provides some macros to draw oscilloscope screen captures from math functions provided by the user. +----------------------------------------------------------- +Author : Thibault Giauffret +email : contact at ensciences dot fr +Licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt diff --git a/graphics/pgf/contrib/tikz-osci/doc/doc.pdf b/graphics/pgf/contrib/tikz-osci/doc/doc.pdf Binary files differnew file mode 100644 index 0000000000..064db93334 --- /dev/null +++ b/graphics/pgf/contrib/tikz-osci/doc/doc.pdf diff --git a/graphics/pgf/contrib/tikz-osci/doc/doc.tex b/graphics/pgf/contrib/tikz-osci/doc/doc.tex new file mode 100644 index 0000000000..cee5c63fb5 --- /dev/null +++ b/graphics/pgf/contrib/tikz-osci/doc/doc.tex @@ -0,0 +1,161 @@ +\documentclass[11pt,a4paper,usenames,dvipsnames]{article} + + + +\usepackage{tikz-osci} +\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry} +\usepackage[most]{tcolorbox} +\usepackage{hyperref} +\title{TikZ Oscilloscope Package} +\author{Thibault Giauffret} +\def\version{0.1.0} + +\begin{document} + +\begin{tcolorbox} + \begin{center} + \vspace{0.3cm} + {\huge \textbf{TikZ Oscilloscope Package}}\\[0.3cm] + {\Large Thibault Giauffret}\\[0.3cm] + \textit{Version \version\ of \today} + \vspace{0.3cm} + \end{center} +\end{tcolorbox} + +% Remove paragraph indentation +\setlength{\parindent}{0pt} + +% Listings +\newtcblisting{listing}{ + listing only, + hbox, + listing options={ + basicstyle=\small\ttfamily, + breaklines=true, + columns=fullflexible + }, +} + + +\section{Introduction} + +\begin{center} + \osci[% + scale=0.8 + ] +\end{center} + + + +This package is modest alternative to the \texttt{pst-osci} package, not maintained anymore. + +Some features are not implemented yet, but the package is already usable with the basic options. I'm doing this for fun and to learn how to make a \LaTeX{} package. Therefore, I'm open to any suggestion or contribution : + +\begin{center} + \texttt{ + contact at ensciences dot fr + } +\end{center} + + + +\section{Usage} + +The package is loaded with the command \verb|\usepackage{tikz-osci}|. It defines a single command, \verb|\osci|, which takes a list of options as argument. The options allow you to configure and customize the oscilloscope screen view : + +\begin{tcolorbox}[enhanced,breakable,colback=white,colframe=black,width=\textwidth] + \begin{tabular}{lp{7cm}p{3cm}} + \texttt{scale} & Scale of the oscilloscope (with \texttt{scalebox}). & Default: \texttt{1}. \\ + \texttt{second channel} & 1 if the second channel is enabled, 0 otherwise. & Default: \texttt{0}. \\ + \texttt{screen offset one} & Vertical screen offset of the first channel. & Default: \texttt{0}. \\ + \texttt{screen offset two} & Vertical screen offset of the second channel. & Default: \texttt{0}. \\ + \texttt{time div} & Time division (in ms). & Default: \texttt{20}. \\ + \texttt{voltage div one} & Voltage division of the first channel (in V). & Default: \texttt{1}. \\ + \texttt{voltage div two} & Voltage division of the second channel (in V). & Default: \texttt{1}. \\ + \texttt{sample rate} & Sample rate (in Hz). & Default: \texttt{200}. \\ + \texttt{xy mode} & 1 if the oscilloscope is in XY mode, 0 otherwise. \textbf{\color{red}Not working yet !} & Default: 0. \\ + \texttt{expr one} & Expression of the first channel (pgf maths format). & Default: \texttt{2*sin(2*180/0.020*x)}. \\ + \texttt{expr two} & Expression of the second channel (pgf maths format). & Default: \texttt{1*sin(2*180/0.020*x) + 0.2*sin(2*180/0.040*x)}. \\ + \texttt{color one} & Color of the first channel (in hexadecimal). & Default: \texttt{D62626}. \\ + \texttt{color two} & Color of the second channel (in hexadecimal). & Default: \texttt{1053AF}. \\ + \texttt{color xy} & Color of the XY mode (in hexadecimal). & Default: \texttt{2E8B73}. \\ + \texttt{graph back color} & Background color of the graph (in hexadecimal). & Default: \texttt{FFFFFF}. \\ + \texttt{info back color} & Background color of the information box (in hexadecimal). & Default: \texttt{D6D6D6}. \\ + \texttt{info text color} & Text color of the information box (in hexadecimal). & Default: \texttt{000000}. \\ + \texttt{main axis color} & Color of the main axis (in hexadecimal). & Default: \texttt{000000}. \\ + \texttt{sub axis color} & Color of the sub axis (in hexadecimal). & Default: \texttt{CCCCCC}. \\ + \end{tabular} +\end{tcolorbox} + + +\section{Examples} + +\begin{tcblisting}{enhanced,breakable,colback=white,colframe=black,width=\textwidth} + \osci[% + scale=0.8, + second channel=1, + screen offset one=2, + screen offset two=-2, + time div=20, + voltage div one=4, + voltage div two=1, + sample rate=200, + xy mode=0, + expr one=2*sin(2*180/0.020*x), + expr two=1*sin(2*180/0.020*x)+0.2*sin(2*180/0.040*x), + color one=D62626, + color two=1053AF, + color xy=2E8B73, + graph back color=669966, + info back color=D6D6D6, + info text color=000000, + main axis color=000000, + sub axis color=CCCCCC + ] + \end{tcblisting} + +% \begin{center} +% \osci[% +% scale=0.8, +% second channel=1, +% screen offset one=2, +% screen offset two=-2, +% time div=20, +% voltage div one=4, +% voltage div two=1, +% sample rate=200, +% xy mode=0, +% expr one=2*sin(2*180/0.020*x), +% expr two=1*sin(2*180/0.020*x)+0.2*sin(2*180/0.040*x), +% color one=D62626, +% color two=1053AF, +% color xy=2E8B73, +% graph back color=669966, +% info back color=D6D6D6, +% info text color=000000, +% main axis color=000000, +% sub axis color=CCCCCC +% ] +% \end{center} + +\section{License} + +This package is distributed under the terms of the \textbf{LaTeX Project Public License} (LPPL), version 1.3c or later. The latest version of this license is available at \url{http://www.latex-project.org/lppl.txt}. + +\section{Credits} + +This package requires the following packages : +\begin{itemize} + \item \texttt{xcolor} maintained by the \textit{LaTeX3 Project} (license LPPL 1.3c) ; + \item tikz maintained by the \textit{TikZ and PGF Project} (license LPPL 1.3c) ; + \item pgfkeys maintained by the \textit{Till Tantau} (license LPPL) ; + \item pgfplots maintained by the \textit{Christian Feuersänger} (license LPPL). +\end{itemize} + +\section{Changelog} + +\begin{itemize} + \item \textbf{0.1.0} : Initial release. XY mode not implemented yet. +\end{itemize} + +\end{document} diff --git a/graphics/pgf/contrib/tikz-osci/doc/example.tex b/graphics/pgf/contrib/tikz-osci/doc/example.tex new file mode 100644 index 0000000000..f70a760c94 --- /dev/null +++ b/graphics/pgf/contrib/tikz-osci/doc/example.tex @@ -0,0 +1,29 @@ +\documentclass[11pt,a4paper,usenames,dvipsnames]{article} + +\usepackage{tikz-osci} + +\begin{document} + +\osci[% + scale=0.8, + second channel=1, + screen offset one=2, + screen offset two=-2, + time div=20, + voltage div one=4, + voltage div two=1, + sample rate=200, + xy mode=0, + expr one=2*sin(2*180/0.020*x), + expr two=1*sin(2*180/0.020*x)+0.2*sin(2*180/0.040*x), + color one=D62626, + color two=1053AF, + color xy=2E8B73, + graph back color=668866, + info back color=D6D6D6, + info text color=000000, + main axis color=000000, + sub axis color=CCCCCC, +] + +\end{document}
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-osci/tikz-osci.sty b/graphics/pgf/contrib/tikz-osci/tikz-osci.sty new file mode 100644 index 0000000000..d2d59cd525 --- /dev/null +++ b/graphics/pgf/contrib/tikz-osci/tikz-osci.sty @@ -0,0 +1,204 @@ +% ----------------------------------------------------------- +% This is TikZ Osci package +% +% It provides some macros to draw oscilloscope screen captures +% from math functions provided by the user. +% +% It is based on TikZ and pgfplots and is a replacement can- +% didate to the pstricks pst-osci package which is not main- +% tained anymore. +% +% Author: Thibault Giauffret +% Date: 2013/10/06 +% Version: 0.1.0 +% Licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf +% Not an expert... Just doing it for fun. +% ----------------------------------------------------------- + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{tikz-osci}[2023/09/30 0.1.0 Tikz Osci package] + +% Required packages +\RequirePackage[dvipsnames]{xcolor} +\RequirePackage{pgfkeys} +\RequirePackage{pgfplots} +\RequirePackage{tikz} +\usetikzlibrary{arrows,shapes,positioning} +\usetikzlibrary{decorations.markings,decorations.pathmorphing, + decorations.pathreplacing} +\usetikzlibrary{calc,patterns,shapes.geometric} + + +% Init the keys and get the values +\pgfkeys{ + /osci/.cd, + scale/.store in=\scale, + scale=1, + second channel/.store in=\secondChannel, + second channel=0, + screen offset one/.store in=\screenOffsetOne, + screen offset one=0, + screen offset two/.store in=\screenOffsetTwo, + screen offset two=-0, + time div/.store in=\timeDiv, + time div=20, + voltage div one/.store in=\voltageDivOne, + voltage div one=1, + voltage div two/.store in=\voltageDivTwo, + voltage div two=1, + sample rate/.store in=\sampleRate, + sample rate=200, + xy mode/.store in=\xyMode, + xy mode=0, + expr one/.store in=\exprOne, + expr one=2*sin(2*180/0.020*x), + expr two/.store in=\exprTwo, + expr two=0.6*sin(2*180/0.020*x)+0.2*sin(2*180/0.040*x), + color one/.store in=\colorOne, + color one=D62626, + color two/.store in=\colorTwo, + color two=1053AF, + color xy/.store in=\colorXY, + color xy=2E8B73, + graph back color/.store in=\graphBackColor, + graph back color=FFFFFF, + info back color/.store in=\infoBackColor, + info back color=D6D6D6, + info text color/.store in=\infoTextColor, + info text color=000000, + main axis color/.store in=\mainAxisColor, + main axis color=000000, + sub axis color/.store in=\subAxisColor, + sub axis color=AAAAAA, +} + +% The main command +\newcommand\osci[1][]{ + + % Get the values + \pgfkeys{ + /osci/.cd, + #1, + } + + \scalebox{\scale}{ + % Begin the picture + \begin{tikzpicture} + + % Set the colors + \definecolor{firstcolor}{HTML}{\colorOne} + \definecolor{secondcolor}{HTML}{\colorTwo} + \definecolor{thirdcolor}{HTML}{\colorXY} + \definecolor{graphbackcolor}{HTML}{\graphBackColor} + \definecolor{infoBackColor}{HTML}{\infoBackColor} + \definecolor{infoTextColor}{HTML}{\infoTextColor} + \definecolor{mainAxisColor}{HTML}{\mainAxisColor} + \definecolor{subAxisColor}{HTML}{\subAxisColor} + + % Draw the info box + \draw[black,thick, fill= infoBackColor] + (0,0) -- + ++(10,0) {[rounded corners=10] -- + ++(0,-1.5) -- + ++(-10,0)} -- + cycle + {}; + + % Add time/div label + \draw (5,-0.15) node[anchor=north, color= infoTextColor] {\timeDiv\ ms/div}; + + % Add voltage/div label for the first channel + \draw[firstcolor,fill=firstcolor] (0.5,-0.15) rectangle (1.5,-0.6); + \draw (1,-0.1) node[anchor=north, color=white] {CH1}; + \draw (1,-0.75) node[anchor=north, color= infoTextColor] {\voltageDivOne\ V/div}; + + % Add voltage/div label for the second channel + \ifnum\secondChannel=1 + \draw[secondcolor,fill=secondcolor] (8.5,-0.15) rectangle (9.5,-0.6); + \draw (9,-0.1) node[anchor=north, color=white] {CH2}; + \draw (9,-0.75) node[anchor=north, color= infoTextColor] {\voltageDivTwo\ V/div}; + \fi + + % Add the XY mode label + \ifnum\xyMode=1 + % \draw (5,-0.75) node[anchor=north, color=thirdcolor] {XY mode}; + % Coming soon... + \fi + + % Draw the oscilloscope screen border + \draw[black,thick, fill= graphbackcolor] + (0,0) -- + ++(10,0) {[rounded corners=10] -- + ++(0,8) -- + ++(-10,0)} -- + cycle + {}; + + % Draw the oscilloscope screen graduations + \begin{scope} + + % Remove the border + \clip (0.05,0.05) rectangle (9.95,7.95); + + \begin{axis}[xmin=-5*(\timeDiv/1000), xmax=5*(\timeDiv/1000), ymin=-4, ymax=4, xtick distance = \timeDiv/1000, + axis x line=middle, axis y line=middle, + axis line style={-}, + % Draw major grid + grid=both, + xticklabels={,,}, + yticklabels={,,}, + % Add sub ticks for the x axis + minor tick num=4, + % Remove minor grid + minor grid style={line width=0pt, draw=white, draw opacity=0}, + major grid style={thick,dashed,draw=subAxisColor}, + every major tick/.append style={very thick, major tick length=6pt, color=mainAxisColor}, + every minor tick/.append style={thick, minor tick length=4pt, color=mainAxisColor}, + ] + + % Change plot width + \pgfplotsset{width=11.58cm, height=9.58cm} + % Change tick label style + \pgfplotsset{ every non boxed x axis/.append style={x axis line style=-}, + every non boxed y axis/.append style={y axis line style=-}} + + \ifnum\xyMode=1 + + % Coming soon... + + \else + + % Draw each channel separately + % First channel plot + \addplot[color=firstcolor,very thick,domain=-5*(\timeDiv/1000):5*(\timeDiv/1000), + smooth, samples=\sampleRate]{(\exprOne)/\voltageDivOne+\screenOffsetOne}; + + % If the second channel is enabled, draw it + \ifnum\secondChannel=1 + % Draw the second channel + \addplot[color=secondcolor,very thick,domain=-5*(\timeDiv/1000):5*(\timeDiv/1000), smooth, samples=\sampleRate]{(\exprTwo)/\voltageDivTwo+\screenOffsetTwo}; + \fi + \fi + + \end{axis} + + \ifnum\xyMode=0 + % Draw the first channel's screen marker + \draw[firstcolor,fill=firstcolor] (0.4, \screenOffsetOne+4) -- (0, \screenOffsetOne+4+0.3) -- (0, \screenOffsetOne+4-0.3) -- cycle; + \draw (-0.04, \screenOffsetOne+4) node[anchor=west, color=white,font=\fontsize{8}{10}\selectfont] {1}; + + % Draw the second channel's screen marker + \ifnum\secondChannel=1 + \draw[secondcolor,fill=secondcolor] (0.4, \screenOffsetTwo+4) -- (0, \screenOffsetTwo+4+0.3) -- (0, \screenOffsetTwo+4-0.3) -- cycle; + \draw (-0.04, \screenOffsetTwo+4) node[anchor=west, color=white,font=\fontsize{8}{10}\selectfont] {2}; + \fi + \fi + + \end{scope} + + \end{tikzpicture} + } +} + + + |