texlive[52907] Master: pinoutikz (24nov19)

commits+karl at tug.org commits+karl at tug.org
Sun Nov 24 22:25:54 CET 2019


Revision: 52907
          http://tug.org/svn/texlive?view=revision&revision=52907
Author:   karl
Date:     2019-11-24 22:25:54 +0100 (Sun, 24 Nov 2019)
Log Message:
-----------
pinoutikz (24nov19)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/pinoutikz/
    trunk/Master/texmf-dist/doc/latex/pinoutikz/README.md
    trunk/Master/texmf-dist/doc/latex/pinoutikz/pinoutikz_doc_en.pdf
    trunk/Master/texmf-dist/doc/latex/pinoutikz/pinoutikz_doc_en.tex
    trunk/Master/texmf-dist/tex/latex/pinoutikz/
    trunk/Master/texmf-dist/tex/latex/pinoutikz/pinoutikz.sty
    trunk/Master/tlpkg/tlpsrc/pinoutikz.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/pinoutikz/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pinoutikz/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/pinoutikz/README.md	2019-11-24 21:25:54 UTC (rev 52907)
@@ -0,0 +1,26 @@
+							_________________
+
+							pinoutikz package
+								v 1.0.1
+							   2019/11/23
+							_________________
+
+This package provides macros manipulating for generating chip pinout diagrams.
+
+Main features are:
+  * pinout diagrams:
+     - PDIP packages
+  * formatting of pin labels:
+     - logical negation (show as a text with oveeline).
+
+This bundle contains 4 files:
+  * pinoutikz.sty (the package itself)
+  * pinoutikz_doc.tex and pinoutikz_doc.pdf (manual in english)
+    - this one substitutes for a quick test as well
+  * README (this file)
+
+##############################################################################
+							  Robert Blazek
+							 <robert.h.blazek at gmail.com>
+
+This material is subject to the LATEX Project Public License 1.3c


Property changes on: trunk/Master/texmf-dist/doc/latex/pinoutikz/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/pinoutikz/pinoutikz_doc_en.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/pinoutikz/pinoutikz_doc_en.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pinoutikz/pinoutikz_doc_en.pdf	2019-11-24 21:24:24 UTC (rev 52906)
+++ trunk/Master/texmf-dist/doc/latex/pinoutikz/pinoutikz_doc_en.pdf	2019-11-24 21:25:54 UTC (rev 52907)

Property changes on: trunk/Master/texmf-dist/doc/latex/pinoutikz/pinoutikz_doc_en.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/pinoutikz/pinoutikz_doc_en.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pinoutikz/pinoutikz_doc_en.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/pinoutikz/pinoutikz_doc_en.tex	2019-11-24 21:25:54 UTC (rev 52907)
@@ -0,0 +1,265 @@
+\documentclass[english,a4paper,10pt]{article}
+\usepackage{fontspec}
+\usepackage[bookmarks=true,bookmarksopen=true,colorlinks=true,hyperfootnotes=false,filecolor=black,linkcolor=blue,urlcolor=blue,pdfauthor={Robert Blazek},pdftitle={pinouTikz},pdfsubject={package for strings of tokens},pdfkeywords={pinouTikz,latex,chip,pinout},pdfcreator={LaTeX}]{hyperref}
+\usepackage[margin=1.9cm]{geometry}
+\usepackage{libertine}
+\usepackage[scale=0.85]{noto-mono}
+\usepackage[bottom]{footmisc}
+\usepackage{amsmath,amssymb,amsfonts,color,eurosym,xspace,babel,listings}
+\usepackage{pinoutikz}
+\makeatletter
+\definecolor{@xs at bckgcolor}{rgb}{0.9,1,1}
+\definecolor{@xs at keywordspinouTikz}{rgb}{0,0,0.9}
+\definecolor{@xs at keywordslatex}{rgb}{1,0,0}
+\definecolor{@xs at arguments}{rgb}{0,0,0}
+\definecolor{@xs at comments}{rgb}{0.5,0.5,0.5}
+\definecolor{violet}{rgb}{0.66,0,0.66}
+\lstset{%
+	language=[AlLaTeX]TeX,%
+	morekeywords={numexpr,detokenize},%
+	float=hbp,%
+	basicstyle=\small\ttfamily,%
+	identifierstyle=\color{@xs at arguments},%
+	keywordstyle=\color{@xs at keywordslatex},%
+	commentstyle=\itshape\color{@xs at comments},%
+	columns=fixed,%
+	tabsize=4,%
+	frame=single,%
+	extendedchars=true,%
+	showspaces=false,%
+	showstringspaces=false,%
+	numbers=left,%
+	numberstyle=\tiny\ttfamily,%
+	breaklines=true,%
+	breakindent=3em,%
+	backgroundcolor=\color{@xs at bckgcolor},%
+	breakautoindent=true,%
+	captionpos=t,%
+	xleftmargin=1em,%
+	xrightmargin=1em,%
+	lineskip=0pt,%
+	numbersep=1em,%
+	classoffset=1,%
+	morekeywords={% macros and commands of pinouTikz
+		PDIP,%
+		PLCC,%
+		SOP},%
+	keywordstyle=\color{@xs at keywordspinouTikz},%
+	classoffset=0}
+\makeatother
+
+\newcommand\guill[1]{"#1"}
+\newcommand\argu[1]{$\langle$\textit{#1}$\rangle$}
+\newcommand\ARGU[1]{\texttt{\{}\argu{#1}\texttt{\}}}
+\newcommand\arguC[1]{\texttt{[}\argu{#1}\texttt{]}}
+\newcommand\arguCC[2]{\texttt{[}\argu{#1}{,}\argu{#2}\texttt{]}}
+\newcommand\arguD[1]{\texttt{(}\argu{#1}\texttt{)}}
+\newcommand\texte[1]{\texttt{text}${}_{#1}$}
+\newcommand\etoile{$\langle$\texttt{[*]}$\rangle$}
+\newenvironment{Conditions}[1][1cm]%
+{\begin{list}%
+	{$\vartriangleright$}%
+	{\setlength{\leftmargin}{#1}
+	 \setlength{\itemsep}{0pt}
+	 \setlength{\parsep}{0pt}
+	 \setlength{\topsep}{2ptplus3ptminus2pt}
+	}}%
+{\end{list}}
+\renewcommand\th{${}^\text{th}$\xspace}
+\newcommand\US{syntax unit\xspace}
+\newcommand\USs{syntax units\xspace}
+\newcommand\pinouTikz{\textsf{pinouTikz}\xspace}
+\newcommand\styleexemple{\small\baselineskip1.03\baselineskip\vskip\baselineskip\relax}
+\newcommand\styleexercice{\footnotesize}
+\newcommand\verbinline{\lstinline[basicstyle=\normalsize\ttfamily]}
+\newcommand\colorise{\color{violet}}
+\begin{document}
+\setlength{\parindent}{0pt}
+\begin{titlepage}
+	\null\par\vfill
+	\begin{center}
+		\begin{minipage}{0.75\linewidth}
+			\begin{center}
+				\Huge\bfseries \pinoutikzname\par\vspace{5pt}
+				\small v\pinoutikzversion\par\vspace{25pt}
+				\normalsize User's manual
+			\end{center}
+		\end{minipage}
+	\end{center}
+	\vspace{1cm}
+	\begin{center}
+		Robert {\sc Blazek}\par\small
+		\href{mailto:robert.h.blazek at gmail.com}{\nolinkurl{robert.h.blazek at gmail.com}}\par\vspace{5pt}
+		%\xstringenglishdate
+	\end{center}
+	\vfill\hrulefill
+	\begin{center}
+		\begin{minipage}{0.85\linewidth}
+			\noindent
+			\hfill\textbf{\textit{Abstract}}\hfill{}\medskip\par
+			This package which requires $\varepsilon$-\TeX{}, provides macros manipulating strings of tokens. For a basic use, tokens can be alphanumeric chars, but the macros can also be useful for manipulating tokens, i.e. \TeX{} code. 
+
+		\end{minipage}
+	\end{center}
+	\hrulefill\vfill{}
+\end{titlepage}
+
+\tableofcontents
+
+\section{Introduction}
+\subsection{Description}
+This package defines macros for generating symbolic pinout diagrams for different package classes, such as DIP, PLCC, etc.
+
+\subsection{Motivation}
+Whoever has ever had to do with FPGA or MCUs (whether for living and leisure), it's just natural he or she might have been in a need to document some pins. So was my case and since I failed in finding any package in \LaTeX{} to suit my needs, I opted for creating one myself.
+
+I hope others will find it as useful as it was to me and my colleagues.
+
+This is my first latex package documentation ever - and since I hate reinventing the wheel - this manual has been based upon that of \textbf{xstrings} - with the courtesy of the author, of course.
+
+\section{The macros}
+For a better understanding, let's see first the macros with the simpler arguments possible. No special catcode, no exotic token, no control sequence neither: only alphanumeric chars will be contained in the arguments.\medskip
+
+In the following chapters, all the macros will be presented this way:
+\begin{itemize}
+	\item a short description of the operation;
+	\item the operation under special conditions. For each conditions considered, the operation described has priority on that (those) below;
+	\item finally, several examples are given. I tried to find them most easily comprehensible and most representative of the situations met in normal use.
+\end{itemize}\smallskip
+
+\textbf{Important}: in the following, a \argu{number} can be an integer written with numeric chars, a counter, or the result of an arithmetic operation made with the command \verbinline|\numexpr|.\smallskip
+
+All the macros of \pinouTikz are displayed in {\makeatletter\color{@xs at keywordspinouTikz}red}.
+
+\subsection{The pinout diagrams}
+\subsubsection{\ttfamily\textbackslash PDIP}
+\verbinline|\PDIP|\arguD{pinnumber}\ARGU{pinarray}
+\smallskip
+
+\begin{itemize}
+	\item \argu{pinnumber} thethe  number of pins of a DIP package and should be an even number.
+	\item \ARGU{pinarray} is a list of pins - position of every pin's description is defined by its position in this array.
+\end{itemize}
+
+%% 4-pin example
+%\begin{minipage}[t]{0.65\linewidth}
+\begin{lstlisting}
+\begin{figure}
+  \centering
+  \PDIP(4){%
+  	1/E,2/B,3/NC,4/C}
+  \caption{NPN-Transistor, 4-pin PDIP package} \label{fig:X_DIP4}
+\end{figure}
+\end{lstlisting}%
+
+%% 4-pin example
+\begin{figure}
+  \centering
+  \PDIP(4){%
+  	1/E,
+  	2/B,
+  	3/NC,
+  	4/C
+  	}%
+  \caption{NPN-Transistor, 4-pin PDIP package} \label{fig:X_DIP4}
+\end{figure}
+
+%\end{minipage}\hfill
+%% 8-pin example
+%\begin{minipage}[t]{0.65\linewidth}
+\begin{lstlisting}
+\begin{figure}
+  \centering
+  \PDIP(8){%
+  	1/CLK,
+  	2/A,
+  	3/B,
+  	4/GND,
+  	5/Y,
+  	6/\FormatPinLabel{~Y~},
+  	7/NC,
+  	8/$V_{cc}$%
+  	}
+  \caption{TTL logic chip, 8-pin PDIP package} \label{fig:X_DIP8}
+\end{figure}
+\end{lstlisting}%
+
+%% 8-pin example
+\begin{figure}
+  \centering
+  \PDIP(8){%
+  	1/CLK,
+  	2/A,
+  	3/B,
+  	4/GND,
+  	5/Y,
+  	6/\FormatPinLabel{~Y~},
+  	7/NC,
+  	8/$V_{cc}$%
+  	}
+  \caption{TTL logic chip, 8-pin PDIP package} \label{fig:X_DIP8}
+\end{figure}
+
+%\end{minipage}\hfill
+%% 14-pin example
+%\begin{minipage}[t]{0.65\linewidth}
+\begin{lstlisting}
+\begin{figure}
+  \centering
+  \PDIP(14){%
+  	1/A1,										%1
+  	2/B1,										%2
+  	3/\FormatPinLabel{\#1 AND/~OR~/GPIO1},			%3
+  	4/Y1,										%4
+  	5/C1,										%5
+  	6/\FormatPinLabel{\#2 AND/~OR~/GPIO2},			%6
+  	7/GND,									%7
+  	8/PCLK,									%8
+  	9/PDAT,									%9
+  	10/A2,									%10
+  	11/B2,									%11
+  	12/\FormatPinLabel{\#2 INV/~SME~/GPIO3},		%12
+  	13/C2,									%13
+  	14/$V_{cc}$}								%14
+  \caption{Generic programmable TTL logic chip, 14-pin PDIP package} \label{fig:X_DIP14}
+\end{figure}
+\end{lstlisting}%
+%\end{minipage}\hfill
+
+%% 14-pin example
+\begin{figure}
+  \centering
+  \PDIP(14){%
+  	1/A1,									%1
+  	2/B1,									%2
+  	3/\FormatPinLabel{\#1 AND/~OR~/GPIO1},		%3
+  	4/Y1,									%4
+  	5/C1,									%5
+  	6/\FormatPinLabel{\#2 AND/~OR~/GPIO2},		%6
+  	7/GND,								%7
+  	8/PCLK,								%8
+  	9/PDAT,								%9
+  	10/A2,								%10
+  	11/B2,								%11
+  	12/\FormatPinLabel{\#2 INV/~SME~/GPIO3},	%12
+  	13/C2,								%13
+  	14/$V_{cc}$}							%14
+  \caption{Generic programmable TTL logic chip, 14-pin PDIP package} \label{fig:X_DIP14}
+\end{figure}
+
+%% Examples for PDIP packages
+\begin{minipage}[t]{0.35\linewidth}
+	\styleexemple
+\end{minipage}%
+
+
+%\bigskip\bigskip
+\begin{center}
+$\star$\par
+$\star$\quad$\star$
+\end{center}
+\par\nobreak\bigskip\bigskip
+That's all, I hope you will find this package useful!\par\nobreak
+Please, send me an \href{mailto:robert.h.blazek at gmail.com}{email} if you find a bug or if you have any idea of improvement\ldots\par\nobreak\medskip
+Robert Blazek
+\end{document}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/pinoutikz/pinoutikz_doc_en.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/pinoutikz/pinoutikz.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pinoutikz/pinoutikz.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/pinoutikz/pinoutikz.sty	2019-11-24 21:25:54 UTC (rev 52907)
@@ -0,0 +1,124 @@
+\NeedsTeXFormat{LaTeX2e}[1994/06/01]
+\ProvidesPackage{pinoutikz}[1.0.1 Pinout diagram definitions]
+
+\RequirePackage{ifthen}
+\RequirePackage{lmodern}
+\RequirePackage{xstring}
+\RequirePackage{upquote}
+\RequirePackage{amsmath,amssymb}
+\RequirePackage{amsfonts}
+\RequirePackage{forarray}
+\RequirePackage{arrayjob}
+\RequirePackage{tikz}
+
+%% 'sans serif' option
+\DeclareOption{sans}{
+  \renewcommand{\familydefault}{\sfdefault}
+}
+
+%% 'roman' option
+\DeclareOption{roman}{
+  \renewcommand{\familydefault}{\rmdefault}
+}
+
+%% Global indentation option
+\newif\if at neverindent\@neverindentfalse
+\DeclareOption{neverindent}{
+  \@neverindenttrue
+}
+
+\ExecuteOptions{sans}
+
+\ProcessOptions\relax
+
+\def\pinoutikzname               {pinouTikz}
+\def\pinoutikzversion            {1.0.1}
+\def\pinoutikzdate                 {2019/11/23}
+
+%% Formatt a pin name
+\def\FormatPinLabel#1{
+  \pgfmathparse{0}\let\negstate\pgfmathresult
+  \pgfmathparse{0}\let\index\pgfmathresult
+  \ForEach{~}%
+  {%
+    \StrLen{\thislevelitem}[\itemlen]%
+    \ifthenelse{\itemlen>0}{%
+      \ifthenelse{\equal{\negstate}{1}}{$\overline{\thislevelitem}$}{\thislevelitem}%
+      \pgfmathparse{\index+1}\let\index\pgfmathresult
+    }{}%
+    \pgfmathparse{!\negstate}\let\negstate\pgfmathresult%
+  }%
+  {#1}
+}
+
+%% PIN diagram with label decoding
+%% @param#1: options
+%% @param#2: offset
+%% @param#3: pin name
+%% @param#4: pin number
+\def\PIN[#1](#2)#3#4{
+  % decode label
+  \begin{scope}[shift={(#2)}]
+    \def\pinlabel{#3}
+    \ifthenelse{\equal{#1}{right}}{%
+      \draw (0.12,0) node[label=right:{\footnotesize \pinlabel},label=left:{\small \pgfmathprintnumber{#4}} ]{};
+      \draw (0,-.15) rectangle(0.12,0.15);
+    }%
+    {%
+      \draw (0,0) node[label=left:{\footnotesize \pinlabel},label=right:{\small \pgfmathprintnumber{#4}} ]{};
+      \draw (0,-.15) rectangle(0.12,0.15);
+    }%
+  \end{scope}
+}
+
+%% PDIP package diagram
+%% @param#1: offset
+%% @param#2: number of pins (divisible by 2)
+%% @param#3: comma separated definitions list for every pin - every pin definition must be enclosed in quotation marks ("")
+\def\PDIP(#1)#2{%
+  \begin{tikzpicture}
+  \begin{scope}[shift={(0,0)}]
+    \sffamily
+    \textsf{%
+    \def\pins{{#2}}
+    \pgfmathparse{#1/2-1}\let\cntpinsl\pgfmathresult
+    \pgfmathparse{#1/2}\let\cntstr\pgfmathresult
+    \pgfmathparse{#1-1}\let\cntpinsr\pgfmathresult
+    \pgfmathparse{\cntstr*.5}\let\height\pgfmathresult
+    \draw[line width=1.5pt] (0.12,-0.5) rectangle (1.88,\height);
+    \draw (0.80,\height) arc (180:360:2mm);
+    %iterate through pin definitions
+    \foreach \pinnum/\i in {#2}%
+    {%
+      \pgfmathparse{\pinnum-1}\let\pinidx\pgfmathresult
+      \pgfmathparse{(\pinnum>0 && \pinnum<(\cntstr+1)) ? 0 : 1}\let\pinrange\pgfmathresult
+      \ifthenelse{\equal{\pinrange}{0} }
+      {%
+        \pgfmathparse{(\cntpinsl-\pinidx)*0.5}\let\ypin\pgfmathresult
+        \PIN[left](0,\ypin){\i}{\pinnum}
+      }%else
+      {%
+        \pgfmathparse{(\pinidx-\cntstr)*0.5}\let\ypin\pgfmathresult
+        \PIN[right](1.88,\ypin){\i}{\pinnum}
+      }
+%      \fi
+    }
+  }
+  \end{scope}
+  \end{tikzpicture}
+}
+
+%%
+
+\newlength{\pardefault}
+\setlength{\pardefault}{\parindent}
+\newcommand{\neverindent}{ \setlength{\parindent}{0pt} }
+\newcommand{\autoindent}{ \setlength{\parindent}{\pardefault} }
+
+\if at neverindent
+\neverindent
+\fi
+
+% ...
+
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/pinoutikz/pinoutikz.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2019-11-24 21:24:24 UTC (rev 52906)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2019-11-24 21:25:54 UTC (rev 52907)
@@ -540,7 +540,8 @@
     philex philokalia philosophersimprint
     phonenumbers phonetic phonrule photo physics piano picinpar pict2e
     pictex pictex2 pictexsum piechartmp piff pigpen
-    pinlabel pitex pittetd pixelart pkfix pkfix-helper pkgloader pkuthss
+    pinlabel pinoutikz pitex pittetd pixelart
+    pkfix pkfix-helper pkgloader pkuthss
     pl placeat placeins placeins-plain
     plain-doc plainpkg plainyr plari plantslabels plantuml plates
     platex platex-tools platexcheat plautopatch

Modified: trunk/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc	2019-11-24 21:24:24 UTC (rev 52906)
+++ trunk/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc	2019-11-24 21:25:54 UTC (rev 52907)
@@ -140,6 +140,7 @@
 depend oubraces
 depend perfectcut
 depend physics
+depend pinoutikz
 depend pm-isomath
 depend polexpr
 depend prftree

Added: trunk/Master/tlpkg/tlpsrc/pinoutikz.tlpsrc
===================================================================


More information about the tex-live-commits mailing list