diff options
author | Norbert Preining <norbert@preining.info> | 2023-11-07 03:02:46 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2023-11-07 03:02:46 +0000 |
commit | 02646b6e89ef69971235e0c883e86fd746955e2b (patch) | |
tree | 203df1a9b40b37e9452e03d936e392da7d03c7af /graphics | |
parent | 240fd5fe8af67337e240c10434af4834fc86278f (diff) |
CTAN sync 202311070302
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/pgf/contrib/polyhedra/README.md | 19 | ||||
-rw-r--r-- | graphics/pgf/contrib/polyhedra/polyhedra-doc.pdf | bin | 0 -> 183790 bytes | |||
-rw-r--r-- | graphics/pgf/contrib/polyhedra/polyhedra-doc.tex | 418 | ||||
-rw-r--r-- | graphics/pgf/contrib/polyhedra/polyhedra.sty | 577 | ||||
-rw-r--r-- | graphics/pstricks/base/Changes | 4 | ||||
-rw-r--r-- | graphics/pstricks/base/README | 10 | ||||
-rw-r--r-- | graphics/pstricks/base/doc/pst-news23.pdf | bin | 98838 -> 99253 bytes | |||
-rw-r--r-- | graphics/pstricks/base/doc/pst-news23.tex | 3 | ||||
-rw-r--r-- | graphics/pstricks/base/doc/test-pst.pdf | bin | 0 -> 189902 bytes | |||
-rw-r--r-- | graphics/pstricks/base/doc/test-pst.tex | 257 | ||||
-rw-r--r-- | graphics/pstricks/base/generic/pstricks.tex | 4 | ||||
-rw-r--r-- | graphics/pstricks/base/latex/pstricks.sty | 17 |
12 files changed, 1283 insertions, 26 deletions
diff --git a/graphics/pgf/contrib/polyhedra/README.md b/graphics/pgf/contrib/polyhedra/README.md new file mode 100644 index 0000000000..6a64479e05 --- /dev/null +++ b/graphics/pgf/contrib/polyhedra/README.md @@ -0,0 +1,19 @@ +# polyhedra.sty +A tikz package for drawing polyhedra + +Copyright 2015-2023 Zafeirakis Zafeirakopoulos +zafeirakopoulos@gmail.com + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.3 +of this license or (at your option) any later version. +The latest version of this license is in + https://www.latex-project.org/lppl.txt +and version 1.3c or later is part of all distributions of LaTeX +version 2008 or later. + +This work has the LPPL maintenance status `maintained'. + +The Current Maintainer of this work is Zafeirakis Zafeirakopoulos. + +This work consists of the files polyhedra.sty and polyhedra-doc.tex.
\ No newline at end of file diff --git a/graphics/pgf/contrib/polyhedra/polyhedra-doc.pdf b/graphics/pgf/contrib/polyhedra/polyhedra-doc.pdf Binary files differnew file mode 100644 index 0000000000..1b956e586d --- /dev/null +++ b/graphics/pgf/contrib/polyhedra/polyhedra-doc.pdf diff --git a/graphics/pgf/contrib/polyhedra/polyhedra-doc.tex b/graphics/pgf/contrib/polyhedra/polyhedra-doc.tex new file mode 100644 index 0000000000..c37a67a0c8 --- /dev/null +++ b/graphics/pgf/contrib/polyhedra/polyhedra-doc.tex @@ -0,0 +1,418 @@ +\documentclass[a4paper]{article} +\usepackage{listings} + +\usepackage{polyhedra} + +\begin{document} + +\lstset{language=[LaTeX]{TeX}} + +\lstset{ +basicstyle=\small\sffamily, +backgroundcolor=\color{gray!20}, +%numbers=left, +numberstyle=\tiny, +breaklines=true, +%frame=l, +xleftmargin=\parindent, +columns=fullflexible, +showstringspaces=false, +keywordstyle=\bfseries\color{solarized-green}, +commentstyle=\color{black!50}, +identifierstyle=\color{solarized-blue}, +stringstyle=, +escapeinside={(*}{*)} +} + + +\title{Polyhedra \LaTeX\ package - v. 0.3} +\author{Zafeirakis zafeirakopoulos} +\maketitle +\begin{abstract} +This package provides macros for creating polyhedral objects in 2D and 3D. +It requires tikz and tikz-3dplot. +The macros provided can be used for drawing vertices, edges, rays, polygons and +cones. +\end{abstract} + +\section{Introduction} + + +All the drawing commands work with keyword arguments and are the same in +2d and 3D. + + + +\section{Functionality} + +\subsection{The \emph{polyhedron} environment} + +The \emph{polyhedron} environment is essentially a wrapper for a tikzpicture +environment. +It accepts as extra arguments the dimension of the picture (either $2$ or $3$) +and if the dimension is $3$, then the arguments for the three angles defining +the rotated coordinate system are given. +For the 3D coordinate system, we use tikz-plot3d. + +\begin{center} + \begin{minipage}{0.6\textwidth} + \begin{lstlisting} +\begin{polyhedron}{dim=2} + \axes{x={1,3},y={1,3}} +\end{polyhedron} + \end{lstlisting} + \end{minipage} + \qquad\qquad + \begin{minipage}{0.2\textwidth} + \begin{polyhedron}{dim=2} + \axes{x={1,3},y={1,3}} + \end{polyhedron} + \end{minipage} +\end{center} + + +The dimension argument defaults to $2$. + + +\begin{center} + \begin{minipage}{0.6\textwidth} + \begin{lstlisting} + \begin{polyhedron}{} + \axes{x={1,3},y={1,3}} + \end{polyhedron} + \end{lstlisting} + \end{minipage} + \qquad\qquad + \begin{minipage}{0.2\textwidth} + \begin{polyhedron}{} + \axes{x={1,3},y={1,3}} + \end{polyhedron} + \end{minipage} +\end{center} + + +Let us define a 3D polyhedron. + +\begin{center} + \begin{minipage}{0.6\textwidth} + \begin{lstlisting} +\begin{polyhedron}{dim=3} + \axes{x={1,3},y={1,3},z={1,3}} +\end{polyhedron} + \end{lstlisting} + \end{minipage} + \qquad\qquad + \begin{minipage}{0.2\textwidth} + \begin{polyhedron}{dim=3} + \axes{x={1,3},y={1,3},z={1,3}} + \end{polyhedron} + \end{minipage} +\end{center} + +Since we did not give the angles for the main coordinate system, we get the +default tikz $xy$-plane. + +Now lets rotate the coordinate system by 60 degrees around the $x$-axis and +120 degrees around the $z$-axis. + +\begin{center} + \begin{minipage}{0.6\textwidth} + \begin{lstlisting} +\begin{polyhedron}{dim=3,phi=60,theta=120} + \axes{x={1,3},y={1,3},z={1,3}} +\end{polyhedron} + \end{lstlisting} + \end{minipage} + \qquad\qquad + \begin{minipage}{0.2\textwidth} + \begin{polyhedron}{dim=3,phi=60,theta=120} + \axes{x={1,3},y={1,3},z={1,3}} + \end{polyhedron} + \end{minipage} +\end{center} + + +\subsection{Input} + +The following macros work within the \texttt{polyhedron} environment. + +\subsubsection{Point.} To let A be a point (x,y) or (x,y,z) +\begin{lstlisting} +\point{(x,y,z)}{A} +\end{lstlisting} +After defining a point, we can use the handle (variable name) A, instead of +writing down the coordinates in the macros that follow. + + +\subsubsection{Axes.} + +We saw already some examples using the \emph{axes} command. + +\begin{center} + \begin{minipage}{0.6\textwidth} + \begin{lstlisting} +\begin{polyhedron}{dim=3,phi=60,theta=120} + \axes{x={1,3},y={1,3},z={1,3}} +\end{polyhedron} + \end{lstlisting} + \end{minipage} + \qquad\qquad + \begin{minipage}{0.2\textwidth} + \begin{polyhedron}{dim=3,phi=60,theta=120} + \axes{x={1,3},y={1,3},z={1,3}} + \end{polyhedron} + \end{minipage} +\end{center} + +The command takes the following (self-explanatory) arguments. +All arguments are optional, defaulting to the ones shown here. + +\begin{lstlisting} +x={0,1},y={0,1},z={},xlabel={x},ylabel={y},zlabel={z},labels={true} +\end{lstlisting} + + + +\begin{center} + \begin{minipage}{0.6\textwidth} + \begin{lstlisting} +\begin{polyhedron}{dim=3,phi=60,theta=120} + \axes{x={1,3},z={1,3},zlabel={not z}} +\end{polyhedron} + \end{lstlisting} + \end{minipage} + \qquad\qquad + \begin{minipage}{0.2\textwidth} + \begin{polyhedron}{dim=3,phi=60,theta=120} + \axes{x={1,3},z={1,3},zlabel={not z}} + \end{polyhedron} + \end{minipage} +\end{center} + + + +\subsection{Drawing commands} + +All drawing commands accept the following options: +\begin{description} + \item[color] The color of the polyhedral object to draw. + \item[status] The status of the object. The possible values are: + \begin{itemize} + \item normal + \item focus + \item alert + \item open + \end{itemize} + \item[opacity] The opacity of the object. + \item[thickness] The width of the lines + \item[pattern] The draw pattern +\end{description} + +\subsubsection{Vertex} + +The \emph{vertex} command is used to draw a vertex at a point (x,y,z) or A. +The standard options of color, status, opacity, thickness and pattern apply. +The extra options for vertex are: +\begin{description} + \item[point] sets the coordinates of the vertex and it can be either a tikz + coordinate tuple or a point already defined. + \item[text] The text of the vertex label. + \item[textcolor] The color of the label's text. + \item[anchora] The label anchor relative to the vertex: north, south, east, + west + \item[anchorb] The text's anchor relative to the label: above, below, right, + left +\end{description} + + +\begin{center} + \begin{minipage}{0.7\textwidth} + \begin{lstlisting} +\begin{polyhedron}{} + \vertex{point={0,0},status=normal} + \vertex{point={1,0},status=alert} + \vertex{point={2,0},status=open} + \vertex{point={3,0},color=red,pattern={north west lines}} + \vertex{point={4,0},color=orange,text={A}} +\end{polyhedron} + \end{lstlisting} + \end{minipage} + \hskip 2em + \begin{minipage}{0.2\textwidth} + \begin{polyhedron}{} + \vertex{point={0,0},status=normal} + \vertex{point={1,0},status=alert} + \vertex{point={2,0},status=open} + \vertex{point={3,0},color=red,pattern={north west lines}} + \vertex{point={4,0},color=orange,text={A}} + \end{polyhedron} + \end{minipage} +\end{center} + + + +\subsubsection{Edges and Rays} The command \emph{edge} is used to draw an +edge from point A to point B. +The extra arguments are: +\begin{description} + \item[points] sets the coordinates of the vertices of the edge. It is a list +of (two) points in \{\}. +\end{description} + + +\begin{center} + \begin{minipage}{0.7\textwidth} + \begin{lstlisting} +\begin{polyhedron}{} + \edge{points={(0,0),(2,2)},status=alert} + \edge{points={(0,0),(2,3)},status=focus} + \edge{points={(0,0),(2,4)},status=open} + \edge{points={(0,0),(2,5)},color=orange} + \edge{points={(0,0),(2,6)},status=normal} + \edge{points={(2,1),(3,3)},thickness=3} + \edge{points={(4,1),(3,3)},pattern={dotted}} +\end{polyhedron} + \end{lstlisting} + \end{minipage} + \hskip 2em + \begin{minipage}{0.2\textwidth} + \begin{polyhedron}{} + \edge{points={(0,0),(2,2)},status=alert} + \edge{points={(0,0),(2,3)},status=focus} + \edge{points={(0,0),(2,4)},status=open} + \edge{points={(0,0),(2,5)},color=orange} + \edge{points={(0,0),(2,6)},status=normal} + \edge{points={(2,1),(3,3)},thickness=3} + \edge{points={(4,1),(3,3)},pattern={dotted}} + \end{polyhedron} + \end{minipage} +\end{center} + +Similarly, the command \emph{ray} draw a ray. +The options are exactly the same as for edge. +Note that the sequence in which the points are given matters. +\begin{center} + \begin{minipage}{0.7\textwidth} + \begin{lstlisting} +\begin{polyhedron}{} + \ray{points={(0,0),(2,2)},status=alert} + \ray{points={(0,0),(2,3)},status=focus} + \ray{points={(0,0),(2,4)},status=open} + \ray{points={(0,0),(2,5)},color=orange} + \ray{points={(0,0),(2,6)},status=normal} + \ray{points={(2,1),(3,3)},thickness=3} + \ray{points={(4,1),(3,3)},pattern={dotted}} +\end{polyhedron} + \end{lstlisting} + \end{minipage} + \hskip 2em + \begin{minipage}{0.2\textwidth} + \begin{polyhedron}{} + \ray{points={(0,0),(2,2)},status=alert} + \ray{points={(0,0),(2,3)},status=focus} + \ray{points={(0,0),(2,4)},status=open} + \ray{points={(0,0),(2,5)},color=orange} + \ray{points={(0,0),(2,6)},status=normal} + \ray{points={(2,1),(3,3)},thickness=3} + \ray{points={(4,1),(3,3)},pattern={dotted}} + \end{polyhedron} + \end{minipage} +\end{center} + +\subsubsection{Cone} + +The command \emph{cone} is used to draw a polyhedral cone. +The extra arguments are: +\begin{description} + \item[vertex] Sets the apex of the cone. + \item[generators] A list of points + \item[openeness] A list of boolean values declaring the openness of a + simplicial cone. +\end{description} + + +\begin{center} + \begin{minipage}{0.7\textwidth} + \begin{lstlisting} +\begin{polyhedron}{} + \cone{vertex={(0,0)}, generators={(0,2),(2,2)}, + status=alert} + \cone{vertex={(0,0)}, generators={(2,0),(2,-2)}, + status=focus} +\end{polyhedron} + \end{lstlisting} + \end{minipage} + \hskip 2em + \begin{minipage}{0.2\textwidth} + \begin{polyhedron}{} + \cone{vertex={(0,0)}, generators={(0,2),(2,2)},status=alert} + \cone{vertex={(0,0)}, generators={(2,0),(2,-2)},status=focus} + \end{polyhedron} + \end{minipage} +\end{center} + + +\begin{center} + \begin{minipage}{0.7\textwidth} + \begin{lstlisting} +\begin{polyhedron}{} + \cone{vertex={(0,0)}, generators={(2,0),(2,-2)}, + status=focus} + \cone{vertex={(3,2)},generators={(0,0),(2,-1)}, + pattern={north east lines}} +\end{polyhedron} +\end{lstlisting} + \end{minipage} + \hskip 2em + \begin{minipage}{0.2\textwidth} + \begin{polyhedron}{} + \cone{vertex={(0,0)}, generators={(2,0),(2,-2)},status=focus} + \cone{vertex={(3,2)},generators={(0,0),(2,-1)},pattern={north east lines}} + \end{polyhedron} + \end{minipage} +\end{center} + + + +\subsubsection{Polygon} + +The command \emph{polygon} is used to draw a 2-dimensional polytope in 2D or 3D. +Attention must be paid in the sequence of the points given. +The command does not take the convex hull, but rather draws the polygonal +line defined by the sequence of points. + +The extra arguments are: +\begin{description} + \item[points] The vertices of the cone. + \item[boundary] True or False, for drawing or not the boundary of the polygon. +\end{description} + + +\begin{center} + \begin{minipage}{0.7\textwidth} + \begin{lstlisting} +\begin{polyhedron}{} + \polygon{points={(0,2),(2,2),(2,0)},status=alert} + \polygon{points={(0,-2),(-2,-2),(-2,0)},status=open} + \polygon{points={(0,1),(0,0),(1,0),(1,1)},status=open, + boundary=false,color=orange} +\end{polyhedron} + \end{lstlisting} + \end{minipage} + \hskip 2em + \begin{minipage}{0.2\textwidth} + \begin{polyhedron}{} + \polygon{points={(0,2),(2,2),(2,0)},status=alert} + \polygon{points={(0,-2),(-2,-2),(-2,0)},status=open} +\polygon{points={(0,1),(0,0),(1,0),(1,1)},status=open,boundary=false, +color=orange} + \end{polyhedron} + \end{minipage} +\end{center} + + + +\section{Known limitations and errors} + + +\end{document} diff --git a/graphics/pgf/contrib/polyhedra/polyhedra.sty b/graphics/pgf/contrib/polyhedra/polyhedra.sty new file mode 100644 index 0000000000..2f2ea0f9b8 --- /dev/null +++ b/graphics/pgf/contrib/polyhedra/polyhedra.sty @@ -0,0 +1,577 @@ +% % polyhedra.sty +% % polyhedra LaTeX package +% % Copyright 2015-2023 Zafeirakis Zafeirakopoulos +% % zafeirakopoulos@gmail.com + +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% https://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2008 or later. + +% This work has the LPPL maintenance status `maintained'. + +% The Current Maintainer of this work is Zafeirakis Zafeirakopoulos. + +% This work consists of the files polyhedra.sty and polyhedra-doc.tex. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Identification %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{polyhedra}[2023/10/31 v.0.3 Polyhedra LaTeX package] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%% Required Packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{xcolor,xcolor-solarized} +\RequirePackage{tikz,tikz-3dplot} +\RequirePackage{xparse,xstring} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Tikz setup %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\usetikzlibrary{shapes} +\usetikzlibrary{patterns} +\usetikzlibrary{arrows} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%% Package Options %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\DeclareOption*{\PackageWarning{Polyhedra}{Unknown ‘\CurrentOption’}} +\ProcessOptions\relax + +% \PackageWarningNoLine{Polyhedra}{Solarized Color Scheme used} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%% Default Options %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% Default Sizes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\PolyhedraDefaultHeight}{0.5\textheight} +\newcommand{\PolyhedraDefaultWidth}{0.5\textwidth} +\newcommand{\PolyhedraDefaultScale}{0.6} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%% Default Colors %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand{\VertexColor}{solarized-blue} +\newcommand{\VertexTextColor}{black} + +\newcommand{\EdgeColor}{solarized-blue} +\newcommand{\RayColor}{solarized-cyan} +\newcommand{\PolygonColor}{solarized-blue} +\newcommand{\HalfspaceColor}{gray} + +\newcommand{\AlertColor}{solarized-red} +\newcommand{\FocusColor}{solarized-green} +\newcommand{\intersectionColor}{solarized-base2} +\newcommand{\OpenColor}{solarized-base2} + +\newcommand{\ShadeColor}{gray} + +\newcommand{\OpenPolygonPattern}{north east lines} +\newcommand{\OpenHyperplanePattern}{north west lines} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%% Default Thickness %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand{\VertexThickness}{2} +\newcommand{\RayThickness}{1} +\newcommand{\EdgeThickness}{1} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%% Graphics Commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% Environments %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\makeatletter +\define@key{polyhedron}{dim}{\def\mm@dim{#1}} +\define@key{polyhedron}{phi}{\def\mm@phi{#1}} +\define@key{polyhedron}{theta}{\def\mm@theta{#1}} +\DeclareDocumentEnvironment{polyhedron}{m} +{ + \setkeys{polyhedron}{ +dim={2}, +phi={0}, +theta={0}, +,#1 } % + \ifthenelse{\equal{\mm@dim}{3}} + { + \tdplotsetmaincoords{\mm@phi}{\mm@theta} + \begin{tikzpicture}[scale=\PolyhedraDefaultScale,tdplot_main_coords] + }{ + \begin{tikzpicture}[scale=\PolyhedraDefaultScale] + } +} +{ + \end{tikzpicture} +} +\makeatother + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% Macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\def\splicelist#1{ +\StrCount{#1}{,}[\numofelem] +\ifnum\numofelem>0\relax + \StrBefore[1]{#1}{,}[\myhead]% + \StrBehind[\numofelem]{#1}{,}[\mylast]% +\else + \let\myhead#1% + \let\mylast#1% +\fi +} + + +\newcommand{\point}[2]{ + \coordinate (#2) at #1; +} + + + +\makeatletter + + +\define@key{vertex}{color}{\def\mm@color{#1}} +\define@key{vertex}{status}{\def\mm@status{#1}} +\define@key{vertex}{opacity}{\def\mm@opacity{#1}} +\define@key{vertex}{thickness}{\def\mm@thickness{#1}} +\define@key{vertex}{pattern}{\def\mm@pattern{#1}} + +\define@key{vertex}{point}{\def\mm@point{#1}} + +\define@key{vertex}{text}{\def\mm@text{#1}} +\define@key{vertex}{textcolor}{\def\mm@textcolor{#1}} +\define@key{vertex}{anchora}{\def\mm@anchora{#1}} +\define@key{vertex}{anchorb}{\def\mm@anchorb{#1}} +\DeclareDocumentCommand{\vertex}{m}{% +\begingroup% +\setkeys{vertex}{ +color=\VertexColor, +opacity={1}, +thickness=\VertexThickness, +point={(0,0)}, +status={normal}, +pattern={}, +text={}, +anchora={north}, +anchorb={above} +,#1 } % +\ifthenelse{\equal{\mm@status}{normal}}{\def\fillcolor{\mm@color}}{ +\ifthenelse{\equal{\mm@status}{intesection}}{\def\fillcolor{\IntersectionColor}} +{ +\ifthenelse{\equal{\mm@status}{alert}}{\def\fillcolor{\AlertColor}}{ +\ifthenelse{\equal{\mm@status}{focus}}{\def\fillcolor{\FocusColor}}{ +\ifthenelse{\equal{\mm@status}{open}}{\def\fillcolor{\OpenColor}}{ + \def\fillcolor{\mm@color} +}}}}} + +\StrLeft{\mm@point}{1}[\firstletter] +\ifthenelse{\equal{\firstletter}{(}}{\def\thepoint{\mm@point}}{\def\thepoint{( +\mm@point)}} +\ifthenelse{\equal{\mm@text}{}}{\def\thelabel{}} +{\def\thelabel{label={[anchor=\mm@anchora]\mm@anchorb: \mm@text}}} + \xdef\drawcom{ + node[draw,circle, + color=\mm@color, + inner sep=\mm@thickness pt, + fill=\fillcolor, + pattern=\mm@pattern, + pattern color=\mm@color, + opacity=\mm@opacity, + \thelabel + ] + at \thepoint {} ; + } + \draw \drawcom + \endgroup% +} + +\define@key{ray}{color}{\def\mm@color{#1}} +\define@key{ray}{opacity}{\def\mm@opacity{#1}} +\define@key{ray}{thickness}{\def\mm@thickness{#1}} +\define@key{ray}{status}{\def\mm@status{#1}} +\define@key{ray}{pattern}{\def\mm@pattern{#1}} + +\define@key{ray}{points}{\def\mm@points{#1}} + \DeclareDocumentCommand{\ray}{m}{% +\begingroup% +\setkeys{ray}{ +color=\RayColor, +opacity={1}, +thickness=\RayThickness, +points={(0,0)}, +status={normal}, +pattern={}, + ,#1 } % + \xdef\raypattern{\mm@pattern} + +\ifthenelse{\equal{\mm@status}{normal}}{\xdef\rcolor{\mm@color}}{ +\ifthenelse{\equal{\mm@status}{intesection}}{\xdef\rcolor{\IntersectionColor} +} +{ + \ifthenelse{\equal{\mm@status}{alert}}{\xdef\rcolor{\AlertColor}}{ + \ifthenelse{\equal{\mm@status}{open}}{\xdef\raypattern{dashed}\xdef\rcolor{ +\mm@color}}{ + + \ifthenelse{\equal{\mm@status}{focus}}{\xdef\rcolor{\FocusColor}}{ + \xdef\rcolor{\mm@color} +}}}}} + + \gdef\drawcom{ + [->, color=\rcolor, + line width=\mm@thickness, + opacity=\mm@opacity, + \raypattern] + } + \foreach \point [count=\xi] in \mm@points{ + \StrLeft{\point}{1}[\firstletter] +\ifthenelse{\equal{\firstletter}{(}}{\def\thepoint{\point}}{\def\thepoint{( +\point)}} + \ifnum\xi=1 + \xdef\drawcom{\drawcom \thepoint} + \else + \xdef\drawcom{\drawcom -- \thepoint} + \fi + } + \xdef\drawcom{\drawcom ;} + \draw \drawcom + \endgroup% +} + + +\define@key{edge}{color}{\def\mm@color{#1}} +\define@key{edge}{opacity}{\def\mm@opacity{#1}} +\define@key{edge}{thickness}{\def\mm@thickness{#1}} +\define@key{edge}{status}{\def\mm@status{#1}} +\define@key{edge}{pattern}{\def\mm@pattern{#1}} +\define@key{edge}{points}{\def\mm@points{#1}} +\DeclareDocumentCommand{\edge}{m}{% +\begingroup% +\setkeys{edge}{ +color=\EdgeColor, +opacity={1}, +thickness=\EdgeThickness, +points={(0,0)}, +status={normal}, +pattern={}, +,#1 } % +\xdef\edgepattern{\mm@pattern} +\ifthenelse{\equal{\mm@status}{normal}}{\xdef\rcolor{\mm@color}}{ +\ifthenelse{\equal{\mm@status}{intesection}}{\xdef\rcolor{\IntersectionColor} +} +{ + \ifthenelse{\equal{\mm@status}{alert}}{\xdef\rcolor{\AlertColor}}{ + +\ifthenelse{\equal{\mm@status}{open}}{\xdef\edgepattern{dashed}\xdef\rcolor{ +\mm@color}}{ + + \ifthenelse{\equal{\mm@status}{focus}}{\xdef\rcolor{\FocusColor}}{ + \xdef\rcolor{\mm@color} +}}}}} + + \gdef\drawcom{ + [color=\rcolor, + line width=\mm@thickness, + opacity=\mm@opacity, + \edgepattern] + } + \foreach \point [count=\xi] in \mm@points{ + \StrLeft{\point}{1}[\firstletter] +\ifthenelse{\equal{\firstletter}{(}}{\def\thepoint{\point}}{\def\thepoint{( +\point)}} + \ifnum\xi=1 + \xdef\drawcom{\drawcom \thepoint} + \else + \xdef\drawcom{\drawcom -- \thepoint} + \fi + } + \xdef\drawcom{\drawcom ;} + \draw \drawcom + \endgroup% +} + + +\define@key{polygon}{color}{\def\mm@color{#1}} +\define@key{polygon}{status}{\def\mm@status{#1}} +\define@key{polygon}{pattern}{\def\mm@pattern{#1}} +\define@key{polygon}{opacity}{\def\mm@opacity{#1}} +\define@key{polygon}{thickness}{\def\mm@thickness{#1}} + +\define@key{polygon}{points}{\def\mm@points{#1}} +\define@key{polygon}{boundary}{\def\mm@boundary{#1}} +\DeclareDocumentCommand{\polygon}{m}{% +\begingroup% + \setkeys{polygon}{color=\PolygonColor,opacity={1},thickness={1}, +points={(0,0)},status={normal},pattern={},boundary={true},#1 } % + +\xdef\polygonpattern{\mm@pattern} +\ifthenelse{\equal{\mm@status}{normal}}{\xdef\rcolor{\mm@color}}{ +\ifthenelse{\equal{\mm@status}{intesection}}{\xdef\rcolor{\IntersectionColor} +} +{ + \ifthenelse{\equal{\mm@status}{alert}}{\xdef\rcolor{\AlertColor}}{ + +\ifthenelse{\equal{\mm@status}{open}}{\xdef\polygonpattern{\OpenPolygonPattern} +\xdef\rcolor { +\mm@color}}{ + + \ifthenelse{\equal{\mm@status}{focus}}{\xdef\rcolor{\FocusColor}}{ + \xdef\rcolor{\mm@color} +}}}}} + +\ifthenelse{\equal{\mm@boundary}{true}} +{\def\bounddraw{draw=\rcolor}} +{\def\bounddraw{draw=none}} + + \gdef\drawcom{ + [\bounddraw, + line width=\mm@thickness, + fill=\rcolor, + opacity=\mm@opacity, + pattern=\polygonpattern, + pattern color=\rcolor + ] + } + \foreach \point [count=\xi] in \mm@points{ + \StrLeft{\point}{1}[\firstletter] +\ifthenelse{\equal{\firstletter}{(}}{\def\thepoint{\point}}{\def\thepoint{( +\point)}} + \ifnum\xi=1 + \xdef\drawcom{\drawcom \thepoint} + \else + \xdef\drawcom{\drawcom -- \thepoint} + \fi + } + \xdef\drawcom{\drawcom -- cycle ;} + \draw \drawcom + \endgroup% +} + + +\define@key{halfspace}{color}{\def\mm@color{#1}} +\define@key{halfspace}{opacity}{\def\mm@opacity{#1}} +\define@key{halfspace}{thickness}{\def\mm@thickness{#1}} +\define@key{halfspace}{points}{\def\mm@points{#1}} +\define@key{halfspace}{status}{\def\mm@status{#1}} +\define@key{halfspace}{pattern}{\def\mm@pattern{#1}} +\define@key{halfspace}{patterncolor}{\def\mm@patterncolor{#1}} +\DeclareDocumentCommand{\halfspace}{m}{% +\begingroup% + \setkeys{halfspace}{color=blue,opacity={0.7},thickness={1}, +points={(0,0)},status={normal},pattern={north west +lines},patterncolor={\HalfspaceColor} +,#1 } % + \gdef\drawcom{ + [draw=none,color=\mm@color, + line width=\mm@thickness, + fill=\mm@color, + opacity=\mm@opacity, + pattern=\mm@pattern, + pattern color=\mm@patterncolor + ] + } + \foreach \point [count=\xi] in \mm@points{ + \StrLeft{\point}{1}[\firstletter] +\ifthenelse{\equal{\firstletter}{(}}{\def\thepoint{\point}}{\def\thepoint{( +\point)}} + \ifnum\xi=1 + \xdef\drawcom{\drawcom \thepoint} + \else + \xdef\drawcom{\drawcom -- \thepoint} + \fi + } + \xdef\drawcom{\drawcom -- cycle ;} + \draw \drawcom + \endgroup% +} + + + +\define@key{cone}{color}{\def\mm@color{#1}} +\define@key{cone}{opacity}{\def\mm@opacity{#1}} +\define@key{cone}{thickness}{\def\mm@thickness{#1}} +\define@key{cone}{status}{\def\mm@status{#1}} +\define@key{cone}{pattern}{\def\mm@pattern{#1}} + +\define@key{cone}{generators}{\def\mm@generators{#1}} +\define@key{cone}{vertex}{\def\mm@vertex{#1}} +\DeclareDocumentCommand{\cone}{m}{% +\begingroup% + \setkeys{cone}{color=solarized-blue,opacity={1},thickness={1}, + vertex={(0,0)},generators={(0,0)},status={normal},pattern={north west +lines},#1 } % + +\ifthenelse{\equal{\mm@status}{normal}}{\xdef\rcolor{\mm@color}}{ +\ifthenelse{\equal{\mm@status}{intesection}}{\xdef\rcolor{\IntersectionColor} +} +{ + \ifthenelse{\equal{\mm@status}{alert}}{\xdef\rcolor{\AlertColor}}{ + \ifthenelse{\equal{\mm@status}{focus}}{\xdef\rcolor{\FocusColor}}{ + \xdef\rcolor{\mm@color} +}}}} + + \gdef\drawcom{ + [->,color=\rcolor, + line width=\mm@thickness, + fill=\rcolor, + opacity=\mm@opacity] + } + + \StrLeft{\mm@vertex}{1}[\firstletter] + \ifthenelse{\equal{\firstletter}{(}} + {\def\thevertex{\mm@vertex}} + {\def\thevertex{(\mm@vertex)}} + + \gdef\previouspoint{\thevertex} + + \foreach \point in \mm@generators{ + \StrLeft{\point}{1}[\firstletter] +\ifthenelse{\equal{\firstletter}{(}}{\def\thepoint{\point}}{\def\thepoint{( +\point)}} + + \node (xxxxO) at \thevertex {}; % Possible to add generator labels + \node (xxxxA) at \thepoint {}; % Possible to add generator labels + \coordinate (xxxxB) at ($(xxxxO)!1.5!(xxxxA)$); + \draw [dashed,color=\rcolor] \thevertex -- (xxxxB) ; + \draw \drawcom \thevertex -- (xxxxA) ; + \ifthenelse{\equal{\previouspoint}{\thevertex}}{} + { + \node (xxxxC) at \previouspoint {}; % Possible to add generator labels + \draw [draw=none,pattern color=\rcolor,pattern=\mm@pattern,opacity=0.6] + \thevertex -- ($(xxxxO)!1.3!(xxxxC)$) -- +($(xxxxO)!1.3!(xxxxA)$) ; } + \xdef\previouspoint{\thepoint} + +} +\endgroup% +} + + + + +\define@key{axes}{x}{\def\mm@x{#1}} +\define@key{axes}{y}{\def\mm@y{#1}} +\define@key{axes}{z}{\def\mm@z{#1}} +\define@key{axes}{xlabel}{\def\mm@xlabel{#1}} +\define@key{axes}{ylabel}{\def\mm@ylabel{#1}} +\define@key{axes}{zlabel}{\def\mm@zlabel{#1}} +\define@key{axes}{labels}{\def\mm@labels{#1}} +\DeclareDocumentCommand{\axes}{m}{% +\begingroup% + +\setkeys{axes}{x={0,1},y={0,1},z={},xlabel={x},ylabel={y},zlabel={z},labels={ +true} , #1 } % + + \splicelist{\mm@x} + \ifthenelse{\equal{\mm@z}{}}{ + \coordinate (Origin) at (0,0); + \splicelist{\mm@x} + \coordinate (XAxisMin) at (-\myhead,0); + \coordinate (XAxisMax) at (\mylast,0); + \coordinate (XLabel) at (\mylast +0.3,0,0); + + \splicelist{\mm@y} + \coordinate (YAxisMin) at (0,-\myhead); + \coordinate (YAxisMax) at (0,\mylast); + \coordinate (YLabel) at (0,\mylast +0.3,0); + + \draw [thin, gray,-latex] (XAxisMin) -- (XAxisMax) ;% Draw x axis + \draw [thin, gray,-latex] (YAxisMin) -- (YAxisMax);% Draw y axis + \ifthenelse{\equal{\mm@labels}{no}}{}{ + \node at (XLabel) {\mm@xlabel}; + \node at (YLabel) {\mm@ylabel}; + } + + }{ + \coordinate (Origin) at (0,0); + \splicelist{\mm@x} + \coordinate (XAxisMin) at (-\myhead,0); + \coordinate (XAxisMax) at (\mylast,0); + \coordinate (XLabel) at (\mylast +0.3,0,0); + + \splicelist{\mm@y} + \coordinate (YAxisMin) at (0,-\myhead); + \coordinate (YAxisMax) at (0,\mylast); + \coordinate (YLabel) at (0,\mylast +0.3,0); + + \splicelist{\mm@z} + \coordinate (ZAxisMin) at (0,0,-\myhead); + \coordinate (ZAxisMax) at (0,0,\mylast); + \coordinate (ZLabel) at (0,0,\mylast +0.3); + + \draw [thin, gray,-latex] (XAxisMin) -- (XAxisMax) ;% Draw x axis + \draw [thin, gray,-latex] (YAxisMin) -- (YAxisMax);% Draw y axis + \draw [thin, gray,-latex] (ZAxisMin) -- (ZAxisMax);% Draw z axis + \ifthenelse{\equal{\mm@labels}{no}}{}{ + \node at (XLabel) {\mm@xlabel}; + \node at (YLabel) {\mm@ylabel}; + \node at (ZLabel) {\mm@zlabel}; + } + + } + + + +\endgroup% +} + + + + + +\define@key{hyperplane}{color}{\def\mm@color{#1}} +\define@key{hyperplane}{fill}{\def\mm@fill{#1}} +\define@key{hyperplane}{opacity}{\def\mm@opacity{#1}} +\define@key{hyperplane}{thickness}{\def\mm@thickness{#1}} +\define@key{hyperplane}{points}{\def\mm@points{#1}} +\define@key{hyperplane}{status}{\def\mm@status{#1}} +\define@key{hyperplane}{pattern}{\def\mm@pattern{#1}} +\define@key{hyperplane}{patterncolor}{\def\mm@patterncolor{#1}} +\DeclareDocumentCommand{\hyperplane}{m}{% +\begingroup% + \setkeys{hyperplane}{color=blue,fill=orange,opacity={0.7},thickness={1}, +points={(0,0)},status={normal},pattern={north west +lines},patterncolor={\HalfspaceColor} +,#1 } % + \gdef\drawcom{ + [draw=none,color=\mm@color, + line width=\mm@thickness, + fill=\mm@fill, + opacity=\mm@opacity, + pattern=\mm@pattern, + pattern color=\mm@patterncolor + ] + } + \foreach \point [count=\xi] in \mm@points{ + \StrLeft{\point}{1}[\firstletter] +\ifthenelse{\equal{\firstletter}{(}}{\def\thepoint{\point}}{\def\thepoint{( +\point)}} + \ifnum\xi=1 + \xdef\drawcom{\drawcom \thepoint} + \else + \xdef\drawcom{\drawcom -- \thepoint} + \fi + } + \xdef\drawcom{\drawcom -- cycle ;} + \draw \drawcom + \endgroup% +} + + +\makeatother diff --git a/graphics/pstricks/base/Changes b/graphics/pstricks/base/Changes index 847b7340ab..19cea82ce0 100644 --- a/graphics/pstricks/base/Changes +++ b/graphics/pstricks/base/Changes @@ -1,4 +1,4 @@ -% $Id: Changes 794 2023-10-30 17:42:46Z herbert $ +% $Id: Changes 805 2023-11-06 20:31:22Z herbert $ For all changes see file History! Here are only the last one changes listed. @@ -11,6 +11,7 @@ pstricks.tex -------- versions like 2.47a have only changes in other files, but not in this main package. +3.19b 2023-11-06 - Revert Code for \DocumentMetadata in pstricks.sty 3.19a 2023-10-30 - Try to suppress the warning with lualatex and a missing \DeclareMetada{} (only in pstricks.sty) 3.19 2023-04-30 - Change the presetting of linewidth and color @@ -109,6 +110,7 @@ Version 97 patch 3, 98/06/01 pstricks.sty -------- +0.74 2023-11-06 - Revert Code for \DocumentMetadata 0.73 2023-10-05 - Try to suppress the warning with lualatex and a missing \DeclareMetada{} 0.72 2022-10-23 - updated package versions diff --git a/graphics/pstricks/base/README b/graphics/pstricks/base/README index cb3dc0071f..1fd4da8c3d 100644 --- a/graphics/pstricks/base/README +++ b/graphics/pstricks/base/README @@ -1,4 +1,4 @@ -PSTricks 2023 +PSTricks 2022 This package may be distributed under the terms of the LaTeX Project Public License, as described in lppl.txt in the base LaTeX distribution. @@ -113,12 +113,8 @@ pdf graphic files. See documentation for more informations. -6 - Running lualatex with luapstricks.lua -Works in nearly all cases and make more sense than using auto-pst-pdf-lua. -However, it can be slow for heavy calculations. - -7 - Documentation +6 - Documentation ------------- There is a mailing list devoted to discussions on PSTricks usage. The informations to subscribe to this list and to consult the archives can @@ -126,4 +122,4 @@ be found on the Web page. -- -Denis Girou, Sebastian Rahtz and Herbert Voss (updated August 2023) +Denis Girou, Sebastian Rahtz and Herbert Voss (updated August 2021) diff --git a/graphics/pstricks/base/doc/pst-news23.pdf b/graphics/pstricks/base/doc/pst-news23.pdf Binary files differindex 9df95b74b7..be8b87b6a5 100644 --- a/graphics/pstricks/base/doc/pst-news23.pdf +++ b/graphics/pstricks/base/doc/pst-news23.pdf diff --git a/graphics/pstricks/base/doc/pst-news23.tex b/graphics/pstricks/base/doc/pst-news23.tex index 0dfc437b46..c637212728 100644 --- a/graphics/pstricks/base/doc/pst-news23.tex +++ b/graphics/pstricks/base/doc/pst-news23.tex @@ -31,7 +31,8 @@ \section{\texttt{pstricks.sty}} %-------------------------------------------------------------------------------------- With \LuaLaTeX\ the package now tries to detect if the command \Lcs{DocumentMetadata} is -needed. If yes, than it is defined as \Verb|\DocumentMetadata{}|. +needed. If yes, than it is defined as \Verb|\DocumentMetadata{}|. This code does not really +worked, the reason why the user has to set \Lcs{DocumentMetadata} by it's own. %-------------------------------------------------------------------------------------- diff --git a/graphics/pstricks/base/doc/test-pst.pdf b/graphics/pstricks/base/doc/test-pst.pdf Binary files differnew file mode 100644 index 0000000000..2ac2bd0199 --- /dev/null +++ b/graphics/pstricks/base/doc/test-pst.pdf diff --git a/graphics/pstricks/base/doc/test-pst.tex b/graphics/pstricks/base/doc/test-pst.tex new file mode 100644 index 0000000000..2af57b5daa --- /dev/null +++ b/graphics/pstricks/base/doc/test-pst.tex @@ -0,0 +1,257 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -*- Mode: Latex -*- %%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% test-pst.tex --- Various PSTricks tests, from the PSTricks chapter +%% of "The LaTeX Graphics Companion" (by Goossens, Rahtz, +%% Mittelbach, Addison Wesley, 1997) +%% +%% Author : Sebastian RAHTZ (Oxford University - GB) +%% <sebastian.rahtz@computing-services.oxford.ac.uk> +%% Created the : Tue Feb 3 20:37:47 1998 +%% Last mod. by : Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr> +%% Last mod. the : Wed May 5 20:09:18 1999 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass{article} + +\usepackage[latin1]{inputenc} % From LaTeX distribution +\usepackage{calc} % From LaTeX distribution +\usepackage{graphicx} % From LaTeX distribution +\usepackage{ifthen} % From LaTeX distribution +\usepackage{subfigure} % From CTAN/macros/latex/contrib/supported/subfigure +\usepackage{pst-all} % From PSTricks +\usepackage{pst-poly} % From pstricks/contrib/pst-poly +\usepackage{multido} % From PSTricks +\input{random.tex} % From CTAN/macros/generic + +% Take care that on some non Unix systems, you may have to replace +% the / character by, for instance, the : one (\input{lgc:#2.inl}}) +\newcommand{\ExampleSubFigure}[2][0.3333]{% +\subfigure[Example #2]{% + \begin{minipage}[t]{#1\textwidth} + \parbox[b]{\textwidth}{% + \centering + \input{lgc/#2.inl}} + \end{minipage}}} + +\newpsobject{showgrid}{psgrid}{subgriddiv=1,griddots=10,gridlabels=6pt} + +% New colors defined +\definecolor{brown}{rgb}{.65, .16, .16} +\definecolor{lightblue}{rgb}{.68, .85, .9} +\definecolor{palegreen}{rgb}{.6, .98, .6} +\definecolor{pink}{rgb}{1, .75, .8} +\definecolor{wheat}{rgb}{.96, .87, .7} + +% Layout changes +\textheight=23cm +\topmargin=-2cm +\textwidth=16cm +\oddsidemargin=0cm +\evensidemargin=0cm + +\begin{document} + +\title{Test file for the PSTricks 97 distribution:\\ + most of the PSTricks examples of\\ + \emph{The \LaTeX{} Graphics Companion}} +\author{Sebastian \textsc{Rahtz} --- March 1997} +\date{Version 1.3 (September 9, 1998)} +\maketitle + +\begin{figure}[!htbp] + \centering + \ExampleSubFigure{4-2-1}% + \ExampleSubFigure{4-2-2}% + \ExampleSubFigure{4-2-3} + \ExampleSubFigure{4-2-4}% + \ExampleSubFigure{4-2-5} + \caption{Section 2} +\end{figure} + +\begin{figure}[!htbp] + \centering + \ExampleSubFigure{4-3-1}% + \ExampleSubFigure{4-3-2} + \caption{Section 3} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure{4-4-1}% + \ExampleSubFigure{4-4-2}% + \ExampleSubFigure{4-4-3} + \ExampleSubFigure{4-4-4}% + \ExampleSubFigure{4-4-5}% + \ExampleSubFigure{4-4-6} + \ExampleSubFigure{4-4-7}% + \ExampleSubFigure{4-4-8}% + \ExampleSubFigure{4-4-9} + \ExampleSubFigure{4-4-10}% + \ExampleSubFigure{4-4-11}% + \ExampleSubFigure{4-4-12} + \caption{Section 4} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[0.5]{4-5-1}% + \ExampleSubFigure[0.5]{4-5-2} + \ExampleSubFigure[0.75]{4-5-3}% + \ExampleSubFigure[0.25]{4-5-4} + \ExampleSubFigure[0.15]{4-5-5}% + \ExampleSubFigure[0.25]{4-5-6}% + \ExampleSubFigure[0.2]{4-5-7}% + \ExampleSubFigure[0.2]{4-5-8}% + \ExampleSubFigure[0.2]{4-5-9} + \ExampleSubFigure[0.5]{4-5-10}% + \ExampleSubFigure[0.5]{4-5-11} + \caption{Section 5-A} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[1]{4-5-13} + \ExampleSubFigure[1]{4-5-14} + \ExampleSubFigure[1]{4-5-16} + \caption{Section 5-B} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure{4-6-1}% + \ExampleSubFigure{4-6-2}% + \ExampleSubFigure{4-6-3} + \ExampleSubFigure{4-6-4}% + \ExampleSubFigure{4-6-5}% + \ExampleSubFigure{4-6-6} + \ExampleSubFigure{4-6-7}% + \ExampleSubFigure{4-6-8}% + \ExampleSubFigure{4-6-9} + \ExampleSubFigure{4-6-10}% + \ExampleSubFigure{4-6-11}% + \ExampleSubFigure{4-6-12} + \ExampleSubFigure{4-6-13}% + \ExampleSubFigure{4-6-14}% + \ExampleSubFigure{4-6-15} + \ExampleSubFigure{4-6-16}% + \ExampleSubFigure{4-6-17}% + \ExampleSubFigure{4-6-18} + \caption{Section 6-A} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure{4-6-19}% + \ExampleSubFigure{4-6-20}% + \ExampleSubFigure{4-6-21} + \ExampleSubFigure{4-6-22}% + \ExampleSubFigure{4-6-23}% + \ExampleSubFigure{4-6-24} + \ExampleSubFigure{4-6-25} + \caption{Section 6-B} +\end{figure} + +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[1]{4-6-26} + \ExampleSubFigure{4-6-27}% + \ExampleSubFigure{4-6-28}% + \ExampleSubFigure{4-6-29} + \ExampleSubFigure[0.3333]{4-6-30}% + \ExampleSubFigure[0.6667]{4-6-31} + \ExampleSubFigure[1]{4-6-32} + \caption{Section 6-C} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[1]{4-6-33} + \ExampleSubFigure[0.5]{4-6-34}% + \ExampleSubFigure[0.5]{4-6-35} + \ExampleSubFigure[0.5]{4-6-36}% + \ExampleSubFigure[0.5]{4-6-37} + \caption{Section 6-D} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[1]{4-6-38} + \ExampleSubFigure[1]{4-6-39} + \ExampleSubFigure[0.5]{4-6-40}% + \ExampleSubFigure[0.5]{4-6-41} + \caption{Section 6-E} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[0.5]{4-6-42}% + \ExampleSubFigure[0.5]{4-6-43} + \ExampleSubFigure{4-6-44}% + \ExampleSubFigure{4-6-45}% + \ExampleSubFigure{4-6-46} + \caption{Section 6-F} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[1]{4-7-1} + \ExampleSubFigure[1]{4-7-2} + \ExampleSubFigure[1]{4-7-4} + \caption{Section 7} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[0.5]{4-8-1}% + \ExampleSubFigure[0.25]{4-8-2}% + \ExampleSubFigure[0.25]{4-8-3} + \ExampleSubFigure[1]{4-8-4} + \caption{Section 8-A} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[1]{4-8-5} + \caption{Section 8-B} +\end{figure} + +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[0.5]{4-9-1}% + \ExampleSubFigure[0.5]{4-9-2} + \caption{Section 9} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[0.4]{4-10-1}% + \ExampleSubFigure[0.2]{4-10-2}% + \ExampleSubFigure[0.2]{4-10-3}% + \ExampleSubFigure[0.2]{4-10-4} + \ExampleSubFigure[0.4]{4-10-5}% + \ExampleSubFigure[0.2]{4-10-6}% + \ExampleSubFigure[0.4]{4-10-7} + \caption{Section 10-A} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[1]{4-10-8} + \ExampleSubFigure[1]{4-10-9} + \ExampleSubFigure[1]{4-10-10} + \caption{Section 10-B} +\end{figure} + +\end{document} diff --git a/graphics/pstricks/base/generic/pstricks.tex b/graphics/pstricks/base/generic/pstricks.tex index 34a8898279..fdedb8c449 100644 --- a/graphics/pstricks/base/generic/pstricks.tex +++ b/graphics/pstricks/base/generic/pstricks.tex @@ -88,8 +88,8 @@ \let\pgfforeach\foreach % -\def\fileversion{3.19a} -\def\filedate{2023/10/30} +\def\fileversion{3.19b} +\def\filedate{2023/11/06} \pst@addfams{pstricks} % %\define@boolkey[psset]{pstricks}[Pst@]{useURWfonts}[true]{} diff --git a/graphics/pstricks/base/latex/pstricks.sty b/graphics/pstricks/base/latex/pstricks.sty index 407ecae7b5..686bb4363e 100644 --- a/graphics/pstricks/base/latex/pstricks.sty +++ b/graphics/pstricks/base/latex/pstricks.sty @@ -1,4 +1,4 @@ -% $Id: pstricks.sty 792 2023-10-30 17:30:03Z herbert $ +% $Id: pstricks.sty 806 2023-11-06 20:39:03Z herbert $ %% %% This is file `pstricks.sty'. %% @@ -17,7 +17,7 @@ \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{pstricks}[2023/10/05 v0.73 LaTeX wrapper for `PSTricks' (RN,HV)] +\ProvidesPackage{pstricks}[2023/11/06 v0.74 LaTeX wrapper for `PSTricks' (RN,HV)] % \def\documentclass{% \edef\@tempa{\jobname.tex }% @@ -44,7 +44,6 @@ \newif\if@check@engine \@check@enginetrue \newif\ifpst@xetex \pst@xetexfalse \newif\ifpst@autopdf \pst@autopdffalse -\newif\ifpst@metadata \pst@metadatatrue \DeclareOption{useCalc}{\pst@useCalctrue} \DeclareOption{gsfonts}{\pstGSfontstrue} @@ -52,7 +51,6 @@ \DeclareOption{noEngineCheck}{\@check@enginefalse} \DeclareOption{pdf}{\global\pst@autopdftrue} \DeclareOption{xetex}{\global\pst@xetextrue} -\DeclareOption{nometadata}{\global\pst@metadatafalse} % %---------------------------------DISTILLER -------------------------------- \newif\ifpst@distiller\pst@distillerfalse @@ -89,17 +87,6 @@ \let\pgfutil@protected\protected \let\pgfutil@unexpanded\unexpanded -\ifpst@metadata - \ifluatex - \@ifclassloaded{beamer}{}{% do not execute \DocumentMetadata -% \RequirePackage{pdfmanagement-testphase} - \typeout{>>>Setting Metadata ... }% - \DocumentMetadata{}% - \makeatletter - } - \fi -\fi - \ifpst@useCalc \RequirePackage{pst-calculate} \fi |