summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-12-10 23:19:40 +0000
committerKarl Berry <karl@freefriends.org>2013-12-10 23:19:40 +0000
commit602bc1298a2fbd2796094426f27542a3ae7bf067 (patch)
tree584f802234332df34308763f1f5fb33c6605e0df
parent7e38f53708fe271b07ec84b89dd8861f4bf622d0 (diff)
pas-tableur (10dec13)
git-svn-id: svn://tug.org/texlive/trunk@32375 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/pas-tableur/README37
-rw-r--r--Master/texmf-dist/doc/latex/pas-tableur/README.TEXLIVE7
-rw-r--r--Master/texmf-dist/tex/latex/pas-tableur/pas-tableur.sty241
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds2
-rw-r--r--Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/pas-tableur.tlpsrc0
7 files changed, 289 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/pas-tableur/README b/Master/texmf-dist/doc/latex/pas-tableur/README
new file mode 100644
index 00000000000..13fa4f3b946
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pas-tableur/README
@@ -0,0 +1,37 @@
+********* README file for pas-crosswords ******************
+********************* ENGLISH *****************************
+
+This package uses TikZ to imitate spreadsheet.
+
+Licence
+-------
+
+This program can be redistributed and/or modified under the terms
+of the LaTeX Project Public License Distributed from CTAN
+archives in directory macros/latex/base/lppl.txt.
+
+Documentation
+-------------
+
+The documentation of the package is under the
+directory /doc/ in french language.
+
+Thanks to use pas-tableur.sty.
+
+********* Fichier README pour pas-crosswords ******************
+********************** FRANCAIS *******************************
+
+Cette extension utilise TikZ pour imiter les feuilles de calculs sous tableur.
+
+Licence
+-------
+
+L'extension peut être redistribuée et/ou modifiée sous les termes
+de la licence LaTeX Project Public (voir macros/latex/base/lppl.txt).
+
+Documentation
+-------------
+
+La documentation de l'extension se trouve dans le répertoire /doc/.
+
+Merci d'utiliser pas-tableur.sty.
diff --git a/Master/texmf-dist/doc/latex/pas-tableur/README.TEXLIVE b/Master/texmf-dist/doc/latex/pas-tableur/README.TEXLIVE
new file mode 100644
index 00000000000..be87441fe8e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pas-tableur/README.TEXLIVE
@@ -0,0 +1,7 @@
+The following files have been removed in the TeX Live installation of
+the current package, typically due to duplication, lack of space, or
+missing source code. You can find these files on CTAN at
+ http://mirror.ctan.org/macros/latex/contrib/pas-tableur
+If questions or concerns, email tex-live@tug.org.
+
+ pas-tableur.pdf
diff --git a/Master/texmf-dist/tex/latex/pas-tableur/pas-tableur.sty b/Master/texmf-dist/tex/latex/pas-tableur/pas-tableur.sty
new file mode 100644
index 00000000000..45d53c917f1
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pas-tableur/pas-tableur.sty
@@ -0,0 +1,241 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% pas-tableur.sty v1.04 encodage : UTF8 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% Créé par Stéphane PASQUET %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% V1.02 : 12/05/2012 -> Modification de la macro \tableur : on peut désormais écrire \tableur{A,B,C,D} ou \tableur{A-D}
+% V1.03 : 13/05/2012 -> Modification de la macro \celtxt : on peut désormais insérer l'accent circonflexe dans du texte et si le texte est plus large que la cellule, le trait gris de séparation des cellules n'est plus visible (le texte s'écrit par dessus).
+% V1.04 : 13/05/2012 -> Alélioration de la macro \celtxt : le texte est réduit pour ne pas effacer les traits de cellule
+
+% Informations générales
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{pas-tableur}[2012/05/12]
+
+\RequirePackage{tikz}
+\usetikzlibrary{calc}
+\RequirePackage{xstring}
+\RequirePackage{multido}
+
+% Définition des couleurs
+
+\definecolor{grayTopCell}{cmyk}{0.08,0.05,0.06,0}
+\definecolor{grayBottomCell}{cmyk}{0.1,0.07,0.08,0}
+\definecolor{graySepCell}{cmyk}{0.29,0.21,0.21,0}
+\definecolor{blueSelecCellTop}{cmyk}{0.52,0.17,0,0}
+\definecolor{blueSelecCellBottom}{cmyk}{0.75,0.34,0,0}
+\definecolor{blueSelec}{cmyk}{0.23,0.06,0,0}
+
+% Définition des dimensions lignes/colonnes
+\def\colminwidth{7em}
+\def\lineminheight{1.57em}
+
+% Définition des polices de caractères
+\newcommand{\helvbx}{\usefont{T1}{phv}{m}{n}}
+\newcommand{\helv}{\usefont{T1}{phv}{l}{n}}
+
+% Définition des compteurs
+\newcounter{celnumber}
+\newcounter{tmp}
+\newcounter{nbcolselected}
+\newcounter{nblineselected}
+\newcount\cntcol
+
+% Macros auxiliaires pour mémoriser les lettres désignant les colonnes
+\newcommand*\defcolumns{\cntcol\z@\valheadcols}
+\newcommand*\valheadcols[1]{\expandafter\valheadcols@#1,\valheadcols@,}
+\newcommand*\defcolumnsB{\cntcol\z@\valheadcolsB}
+\newcommand*\valheadcolsB[1]{\valheadcols@#1,\valheadcols@,}
+\def\valheadcols@#1,{%
+ \ifx\valheadcols@#1%
+ \else
+ \advance\cntcol\@ne
+ \expandafter\xdef\csname ValCol#1\endcsname{\number\cntcol}
+ \expandafter\valheadcols@
+ \fi
+}
+\newcommand*\ValCol[1]{\@nameuse{ValCol#1}}
+
+% Macros auxiliaires pour mémoriser les lettres désignant les colonnes sélectionnées
+\newcommand*\defcolselected{\cntcol\z@\valcolselected}
+\newcommand*\valcolselected[1]{\expandafter\valcolselected@#1,\valcolselected@,}
+\def\valcolselected@#1,{%
+ \ifx\valcolselected@#1%
+ \else
+ \advance\cntcol\@ne
+ \expandafter\xdef\csname ValColSelected\number\cntcol\endcsname{#1}
+ \expandafter\valcolselected@
+ \fi
+}
+\newcommand*\ValColSelected[1]{\@nameuse{ValColSelected#1}}
+
+% Macros auxiliaires pour mémoriser les lettres désignant les lignes sélectionnées
+\newcommand*\deflineselected{\cntcol\z@\vallineselected}
+\newcommand*\vallineselected[1]{\vallineselected@#1,\vallineselected@,}
+\def\vallineselected@#1,{%
+ \ifx\vallineselected@#1%
+ \else
+ \advance\cntcol\@ne
+ \expandafter\xdef\csname ValLineSelected\number\cntcol\endcsname{#1}
+ \expandafter\vallineselected@
+ \fi
+}
+\newcommand*\ValLineSelected[1]{\@nameuse{ValLineSelected#1}}
+
+%----------> Liste des noms de colonnes <----------
+\global\def\col@names{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
+
+%----------> Construction du tableur <-----------
+\newcommand{\tableur}[2][1] % [#1] -> nombre de lignes (par défaut, "1"), #2 -> A,B,...,Z
+{%
+% On mémorise les lettres des colonnes
+% \ValCol{A} sera égal à "1" si la 1ère colonne porte la lettre "A"
+\setcounter{celnumber}{0}
+\IfSubStr{#2}{-}
+{%
+ \StrBefore{#2}{-}[\str@start] % 1ère lettre, par ex. "G"
+ \StrBehind{#2}{-}[\str@end] % 2ème lettre, par ex. "L"
+ \StrBetween{\col@names}{\str@start}{\str@end}[\str@col] % retourne par exemple "HIJK"
+ \edef\str@col{\str@start\str@col\str@end}
+ \StrLen{\str@col}[\nb@columns]
+ \StrChar{\str@col}{1}[\lettre]
+ \xdef\chaine{\lettre}
+ \multido{\i=2+1}{\nb@columns}
+ {
+ \StrChar{\str@col}{\i}[\lettre]
+ \xdef\chaine{\chaine,\lettre}
+ } % ici, \chaine = "H,I,J,K,"
+ \StrGobbleRight{\chaine}{1}[\chaine] % retire la dernière virgule : \chaine -> "H,I,J,K"
+ \defcolumns{\chaine}
+ \multido{\i=1+1}{\nb@columns}
+ {
+ \StrChar{\str@col}{\i}[\lettre]
+ \node[below right,inner xsep=1ex,minimum width=\colminwidth,minimum height=\lineminheight] (c\thecelnumber) at ({\thecelnumber*\colminwidth},0) {\helvbx\lettre};
+ \fill[grayTopCell] (c\thecelnumber.north west) -- (c\thecelnumber.north east) -- ($0.5*(c\thecelnumber.north east)+0.5*(c\thecelnumber.south east)$) -- ($0.5*(c\thecelnumber.south west)+0.5*(c\thecelnumber.north west)$) -- cycle;
+ \fill[grayBottomCell] (c\thecelnumber.south west) -- (c\thecelnumber.south east) -- ($0.5*(c\thecelnumber.south east)+0.5*(c\thecelnumber.north east)$) -- ($0.5*(c\thecelnumber.south west)+0.5*(c\thecelnumber.north west)$) -- cycle;
+ \node[below right,inner sep=1ex,minimum width=\colminwidth,minimum height=\lineminheight] at (c\thecelnumber.north west) {\helvbx\lettre};
+ \stepcounter{celnumber}
+ }
+}
+{
+ \defcolumnsB{#2}
+ \foreach \i in {#2}
+ {
+ \node[below right,inner xsep=1ex,minimum width=\colminwidth,minimum height=\lineminheight] (c\thecelnumber) at ({\thecelnumber*\colminwidth},0) {\helvbx\i};
+ \fill[grayTopCell] (c\thecelnumber.north west) -- (c\thecelnumber.north east) -- ($0.5*(c\thecelnumber.north east)+0.5*(c\thecelnumber.south east)$) -- ($0.5*(c\thecelnumber.south west)+0.5*(c\thecelnumber.north west)$) -- cycle;
+ \fill[grayBottomCell] (c\thecelnumber.south west) -- (c\thecelnumber.south east) -- ($0.5*(c\thecelnumber.south east)+0.5*(c\thecelnumber.north east)$) -- ($0.5*(c\thecelnumber.south west)+0.5*(c\thecelnumber.north west)$) -- cycle;
+ \node[below right,inner sep=1ex,minimum width=\colminwidth,minimum height=\lineminheight] at (c\thecelnumber.north west) {\helvbx\i};
+ \stepcounter{celnumber}
+ }
+}
+
+% Placement des numéros de lignes
+\foreach \i in {1,...,#1}
+{
+ \node[below left,inner xsep=1ex,minimum width=3em,minimum height=\lineminheight,draw,very thin] (nb) at (0,{-\i*\lineminheight}) {\helvbx\i};
+ \fill[grayTopCell] (nb.north west) -- (nb.north east) -- ($0.5*(nb.north east)+0.5*(nb.south east)$) -- ($0.5*(nb.south west)+0.5*(nb.north west)$) -- cycle;
+ \fill[grayBottomCell] (nb.south west) -- (nb.south east) -- ($0.5*(nb.south east)+0.5*(nb.north east)$) -- ($0.5*(nb.south west)+0.5*(nb.north west)$) -- cycle;
+ \node[below left,inner xsep=1ex,minimum width=3em,minimum height=\lineminheight,draw,very thin] (nb) at (0,{-\i*\lineminheight}) {\helvbx\i};
+}
+\addtocounter{celnumber}{-1}
+
+% Tracé de la grille
+\draw[black,very thin] (0,0) grid[xstep=\colminwidth] (c\thecelnumber.south east);
+\foreach \i in {1,...,#1}
+{
+ \draw[graySepCell,very thin] (0,{-(\i+1)*\lineminheight}) -- ({(\thecelnumber+1)*\colminwidth},{-(\i+1)*\lineminheight});
+}
+\addtocounter{celnumber}{1}
+\foreach \x in {0,...,\thecelnumber}
+{
+ \draw[graySepCell] ({\x*\colminwidth},-\lineminheight) -- ({\x*\colminwidth},{-(#1+1)*\lineminheight});
+}
+\addtocounter{celnumber}{-1}
+\draw (c0.south west) -- (c\thecelnumber.south east);
+\draw (c0.south west) -- ($(c0.south west)+(0,{-\lineminheight*#1})$);
+}
+
+%-----------> Insérer un texte dans une cellule <---------------
+\newcommand\celtxt{%
+ \begingroup
+ \@makeother^%
+ \@makeother$%
+ \@celtxt@
+}
+\newsavebox{\tmp@txt}
+\newlength{\tmp@ltxt}
+\newcommand\@celtxt@[4][l]{
+ \StrPosition{#4}{=}[\@equalPos]
+ \ifnum\@equalPos=1
+ \def\@scale{1}
+ \def\@style{\texttt}
+ \else
+ \def\@scale{0.9}
+ \def\@style{\relax}
+ \fi
+ \node[below right] at ($(c0.south west)+({(\ValCol{#2}-1)*\colminwidth},{-(#3-1)*\lineminheight})$) {\makebox[\colminwidth][#1]{\@style{#4}\phantom{-.}}};
+ \endgroup
+}
+
+% Macro auxiliaire : colorie en-tête colonne
+\newcommand*\colorHead[2]
+{
+ \fill[blueSelecCellTop] (c#1.north west) -- (c#1.north east) -- ($0.5*(c#1.north east)+0.5*(c#1.south east)$) -- ($0.5*(c#1.south west)+0.5*(c#1.north west)$) -- cycle;
+ \fill[blueSelecCellBottom] (c#1.south west) -- (c#1.south east) -- ($0.5*(c#1.south east)+0.5*(c#1.north east)$) -- ($0.5*(c#1.south west)+0.5*(c#1.north west)$) -- cycle;
+ \node[below right,inner sep=1ex,minimum width=\colminwidth,minimum height=\lineminheight] at (c#1.north west) {\helvbx#2};
+ \draw[black,very thin] (0,0) grid[xstep=\colminwidth] (c\thecelnumber.south east);
+ \draw (c0.south west) -- (c\thecelnumber.south east);
+}
+% Macro auxiliaire : colorie en-tête ligne
+\newcommand*\colorLine[1]
+{
+ \node[below left,inner xsep=1ex,minimum width=3em,minimum height=\lineminheight,draw,very thin] (nb) at (0,{-#1*\lineminheight}) {\helvbx#1};
+ \fill[blueSelecCellTop] (nb.north west) -- (nb.north east) -- ($0.5*(nb.north east)+0.5*(nb.south east)$) -- ($0.5*(nb.south west)+0.5*(nb.north west)$) -- cycle;
+ \fill[blueSelecCellBottom] (nb.south west) -- (nb.south east) -- ($0.5*(nb.south east)+0.5*(nb.north east)$) -- ($0.5*(nb.south west)+0.5*(nb.north west)$) -- cycle;
+ \node[below left,inner xsep=1ex,minimum width=3em,minimum height=\lineminheight,draw,very thin] (nb) at (0,{-#1*\lineminheight}) {\helvbx#1};
+}
+
+\newcommand{\selecCell}[2] % #1 = colonne, #2 = ligne
+{
+ \setcounter{tmp}{\ValCol{#1}}
+ \addtocounter{tmp}{-1}
+ \colorHead{\thetmp}{#1}
+ \colorLine{#2}
+ \draw[very thick,black] ($(c0.south west)+({\thetmp*\colminwidth},{-(#2-1)*\lineminheight+0.5pt})$) rectangle +(\colminwidth,-\lineminheight);
+ \fill[black] ($(c0.south west)+({(\thetmp+1)*\colminwidth},{-(#2-1)*\lineminheight-\lineminheight})+(-1pt,1.5pt)$) rectangle+(3pt,-3pt);
+}
+
+\newcommand{\multiSelec}[2] % #1 : colonnes (B,C,D) par exemple, #2 : lignes (2,3,4)
+{
+ \defcolselected{#1} % on mémorise les noms des colonnes sélectionnées - \ValColSelected{1} = lettre de la première colonne
+ %\xdef\firstlettercol\ValColSelected{1}
+
+ \deflineselected{#2} % on mémorise les noms des lignes sélectionnées - \ValLineSelected{1} = numéro de la première ligne
+ %\def\firstline{\ValLineSelected{1}}
+
+ \setcounter{nbcolselected}{0}
+
+ \foreach \c in {#1}
+ {
+ \stepcounter{nbcolselected}
+ \setcounter{tmp}{\ValCol\c}
+ \addtocounter{tmp}{-1}
+ \colorHead{\thetmp}{\c}
+ }
+
+ \setcounter{nblineselected}{0}
+ \foreach \l in {#2}
+ {
+ \stepcounter{nblineselected}
+ \colorLine{\l}
+ }
+
+ \fill[blueSelec,opacity=.5] ($(c0.south west)+({(\ValCol{\ValColSelected{1}}-1)*\colminwidth},{-(\ValLineSelected{1}-1)*\lineminheight})$) rectangle +({\thenbcolselected*\colminwidth},{-\thenblineselected*\lineminheight});
+
+ \draw[very thick,black] ($(c0.south west)+({(\ValCol{\ValColSelected{1}}-1)*\colminwidth},{-(\ValLineSelected{1}-1)*\lineminheight+0.5pt})$) rectangle +(\colminwidth,-\lineminheight);
+ \fill[black] ($(c0.south west)+({(\ValCol{\ValColSelected{1}}-1)*\colminwidth+\thenbcolselected*\colminwidth-1pt},{-(\ValLineSelected{1}-1)*\lineminheight-\thenblineselected*\lineminheight+1.5pt})$) rectangle+(3pt,-3pt);
+}
+\endinput
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index ab1c1057ce0..c1dc998c5af 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -347,7 +347,7 @@ my @TLP_working = qw(
paper papercdcase papermas papertex
paracol paralist parallel paratype
paresse parnotes parrun parselines parskip
- pas-crosswords pas-cv passivetex
+ pas-crosswords pas-cv pas-tableur passivetex
patch patchcmd patgen2-tutorial path pauldoc pawpict pax
pbox pb-diagram pbsheet
pdf14
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index 8cebbe928aa..06c7db46646 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -737,6 +737,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`);
'pandora-type1', "die 'skipping, pandora is nosell'",
'paradigm', "die 'skipping, too old, for BLUe'",
'pas-crosswords', "&MAKEflatten",
+ 'pas-tableur', "&MAKEflatten",
'pb-diagram', "&MAKEpbdiagram",
'pcarl', "die 'skipping, free support for nonfree font'",
'pclnfss', "die 'skipping, nonfree hardware fonts'",
@@ -2595,6 +2596,7 @@ $standardclean = '\.head|\.tmp|\.dvi|\.log|\.out|\.aux|\.toc|\.lof|\.lot'
'oinuit' => 'cmssbxo10.tfm', # should not be here
'oscola' => '\.pdf$', # no source
'parnotes' => 'PNmanual.pdf', # no source
+ 'pas-tableur' => '\.pdf$', # no source
'piechartmp' => 'piechartmp.pdf', # no source
'ptptex' => '(overcite|cite|wrapfig).sty', # duplicated
'sapthesis' => '.*-ML.*\.pdf', # univ logos
diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
index 0938f4707fe..e8d27b5e920 100644
--- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
@@ -602,6 +602,7 @@ depend paresse
depend parnotes
depend parselines
depend pas-cv
+depend pas-tableur
depend patch
depend patchcmd
depend pauldoc
diff --git a/Master/tlpkg/tlpsrc/pas-tableur.tlpsrc b/Master/tlpkg/tlpsrc/pas-tableur.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/pas-tableur.tlpsrc