summaryrefslogtreecommitdiff
path: root/graphics/pictex-addons
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-06-11 03:00:56 +0000
committerNorbert Preining <norbert@preining.info>2021-06-11 03:00:56 +0000
commitd6b2eaba6fe47c24603040934903c73535ff09ba (patch)
treee608eb7c4afe8e8f2dd739dda2dd79d375f32da0 /graphics/pictex-addons
parent2bd77f5a4d02b0d1649589aa7a548e79b198f6af (diff)
CTAN sync 202106110300
Diffstat (limited to 'graphics/pictex-addons')
-rw-r--r--graphics/pictex-addons/autoarea/ANNOUNCE.txt24
-rw-r--r--graphics/pictex-addons/autoarea/README14
-rw-r--r--graphics/pictex-addons/autoarea/autoarea.sty220
-rw-r--r--graphics/pictex-addons/autoarea/autodemo/README.autodemo26
-rw-r--r--graphics/pictex-addons/autoarea/autodemo/autodemo+.pdfbin0 -> 24873 bytes
-rw-r--r--graphics/pictex-addons/autoarea/autodemo/autodemo+.tex4
-rw-r--r--graphics/pictex-addons/autoarea/autodemo/autodemo-.pdfbin0 -> 25493 bytes
-rw-r--r--graphics/pictex-addons/autoarea/autodemo/autodemo-.tex5
-rw-r--r--graphics/pictex-addons/autoarea/autodemo/autodemo.tex17
9 files changed, 310 insertions, 0 deletions
diff --git a/graphics/pictex-addons/autoarea/ANNOUNCE.txt b/graphics/pictex-addons/autoarea/ANNOUNCE.txt
new file mode 100644
index 0000000000..fa1d7034b5
--- /dev/null
+++ b/graphics/pictex-addons/autoarea/ANNOUNCE.txt
@@ -0,0 +1,24 @@
+SUMMARY: automatic bounding boxes with PiCTeX
+
+PiCTeX is a "generic" set of TeX macros for drawing diagrams and
+pictures, dating from 1987, written and described by Michael J. Wichura.
+The last extensions contributed by other authors may have occurred
+1999. It may be difficult to find somebody who uses it today ...
+yet two users asked me for help this year ...
+
+A new generic package `autoarea.sty' makes PiCTeX recognize lines
+and arcs in determining the "bounding box" of a picture
+(PiCTeX so far accounted for put commands only).
+The "bounding box" is essential for proper placement of a picture
+between running text and margins and for keeping the running text away.
+Examples provided demonstrate what `autoarea.sty' does.
+
+Yes, it should suffice to load the package to have this effect.
+Read additional instructions and informations in the file
+`autoarea.sty'.
+
+`autoarea.sty' has been tested successfully on 42 geometric figures
+from a work by medieval scholar N. Oresme, as reproduced by Dr.
+Richard Lorch using PiCTeX.
+
+
diff --git a/graphics/pictex-addons/autoarea/README b/graphics/pictex-addons/autoarea/README
new file mode 100644
index 0000000000..5ab324fe2f
--- /dev/null
+++ b/graphics/pictex-addons/autoarea/README
@@ -0,0 +1,14 @@
+ File README.aa for
+ [tex-archive]/graphics/pictex/addon/autoarea/
+
+
+AUTOAREA.STY
+ makes PiCTeX's bounding boxes account for lines and arcs.
+ License is LPPL. Read the file for additional informations.
+
+AUTODEMO
+ this subdirectory demonstrates the effect of autoarea.sty .
+
+
+________________________________________________________________________
+This file version 2008/04/25 Uwe Lueck, http://contact-ednotes.sty.de.vu
diff --git a/graphics/pictex-addons/autoarea/autoarea.sty b/graphics/pictex-addons/autoarea/autoarea.sty
new file mode 100644
index 0000000000..84aa0160a7
--- /dev/null
+++ b/graphics/pictex-addons/autoarea/autoarea.sty
@@ -0,0 +1,220 @@
+%% Macro package `autoarea.sty', supporting but not needing LaTeX2e,
+%% copyright (C) 2008 Uwe Lueck [L\"uck]
+%% http://www.contact-ednotes.sty.de.vu
+%% - author-maintained, extending PiCTeX:
+
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname ProvidesPackage\endcsname\relax\else
+ % german.sty trick
+ \ProvidesPackage{autoarea}[2008/08/12 v0.3a
+ automatic accounting for PiCTeX lines and arcs]
+ %
+\fi
+
+% LEGAL/CONTACT
+%
+%% This file can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License, version 1.3c or later, cf.
+%% http://www.latex-project.org/lppl.txt
+%% -- NO WARRANTY! Please report bugs, problems, and suggestions via
+%% http://www.contact-ednotes.sty.de.vu
+
+% FEATURES/USAGE
+%
+% This is an experimental package for use with pictex[wd].sty/.tex.
+% It works with LaTeX2e as well as with Plain TeX or LaTeX2.09.
+% It is "experimental" in that it has come from a mixture of knowing
+% PiCTeX internals and guesses that surprisingly seem to work.
+%
+% PiCTeX's \plot, \circulararc and \ellipticalarc normally don't contribute to
+% proper placement of the picture between text and margins, which may result
+% in pictures overlapping with text or in uneven distances to text margins.
+% You should find a file autodemo-.pdf nearby that illustrates how this may
+% look.
+%
+% In such cases, the document author must use PiCTeX's \setplotarea to correct
+% this manually, determining the "bounding box" (cf. documentation as indicated
+% after \endinput below). PiCTeX's \put, on the opposite, normally DOES
+% contribute to PiCTeX's automatical calculation of the boundaries.
+%
+% autoarea.sty tries to determine the bounding box even for lines and arcs
+% automatically instead, so you can omit \setplotarea (at least for this
+% purpose). You just have to load it (we hope) after pictex[wd].sty/.tex, by,
+% e.g.,
+%
+% \usepackage{pictexwd,autoarea}
+% or
+% \input pictexwd
+% \input autoarea.sty
+%
+% The package defines just three user commands \plottedat, \autoaccountingoff,
+% and \autoaccountingon - which you perhaps won't need, just loading the
+% package may suffice. The samples autodemo-.pdf and autodemo+.pdf nearby both
+% were generated by omitting \setplotarea, the difference being that
+% autodemo+.pdf profits from \usepackage{autoarea}, which may convince you
+% that it's worth trying autoarea.
+%
+% \plottedat XMIN YMIN \plottedat XMAX YMAX may (otherwise) replace
+% \setplotarea x from XMIN to XMAX, y from YMIN to YMAX
+% A single "\plottedat ..." may suffice if other \put commands
+% contribute to proper placement of the picture sufficiently already.
+
+ \expandafter %% ersatz-\newcommand if without LaTeX
+ \ifx \csname newcommand\endcsname \relax
+ \def\newcommand#1{\def#1} \fi
+
+\newcommand{\plottedat}{\put {} at }
+
+% (If the user doesn't want it, we still need it here!)
+%
+% Should a \plot or \circulararc command seem to produce more space than
+% you want, put it between \autoaccountingoff and \autoaccountingon,
+% then try \plottedat and \setplotarea if needed.
+%
+% Our trick will account for starting, ending, or corner points of curves.
+% This may not suffice in general (e.g., with \setquadratic),
+% then you still may need \plottedat or \setplotarea. Below \endinput you
+% find more on CAVEATS etc.
+
+% INTERNALS
+
+\catcode`\!=11 % use and change PiCTeX internals
+
+\let\PT!!start\!start \let\PT!!ljoin\!ljoin \let\PT!!qjoin\!qjoin
+\def\PTaa!start (#1,#2){\plottedat #1 #2 \PT!!start (#1,#2)}
+\def\PTaa!ljoin (#1,#2){\plottedat #1 #2 \PT!!ljoin (#1,#2)}
+\def\PTaa!qjoin (#1,#2) (#3,#4){%
+ \plottedat #1 #2 \plottedat #3 #4 \PT!!qjoin (#1,#2) (#3,#4)}
+
+\expandafter\ifx\csname newcommand\endcsname \def\newcommand#1{\def#1} \fi
+
+\newcommand{\autoaccountingon}{%
+ \let\!start\PTaa!start \let\!ljoin\PTaa!ljoin \let\!qjoin\PTaa!qjoin}
+
+\newcommand{\autoaccountingoff}{%
+ \let\!start\PT!!start \let\!ljoin\PT!!ljoin \let\!qjoin\PT!!qjoin}
+
+\catcode`\!=12
+
+\autoaccountingon % turns on automatic accounting for lines and arcs.
+
+\endinput %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+CAVEATS
+
+1. I won't try to find out whether autoarea.sty makes \setplotarea entirely
+superfluous: will drawing a coordinate system work without \setplotarea?
+
+2. Certainly it was not due to dullness that PiCTeX didn't provide autoarea's
+feature originally. Around 1990, it was important to care for speed with PiCTeX
+(and it may still be, I won't try complex examples).
+Apart from up to four, line and arc commands are irrelevant for placing the
+picture correctly. About the same holds for put commands, and that's why PiCTeX
+has \accountingoff and \accountingon to ignore many of them. Our \autoaccountingoff
+and \autoaccountingon serve the analoguous purpose for line and arc commands.
+
+3. I don't know exactly how arc commands work, therefore I wouldn't be astonished
+if the result still is not properly centered. Our trick is take account of some
+points all of which an approximating curve must meet. Can that curve bend out of
+the bounding rectangle of those points?
+
+
+ACKNOWLEDGEMENTS
+
+This work has been supported by edition projects at the Institute for
+the History of the Sciences directed by Prof. Dr. Menso Folkerts.
+Thanks to Dr. Richard Lorch for introducing me to the subject.
+
+
+
+CHANGE HISTORY
+
+v0.1 2008/02/14 Working, addressed compatibility with ArabTeX.
+v0.2 2008/02/14a Moved compatibility to lorchpic.sty.
+ This one submitted to CTAN, soon kind of withdrawn.
+v0.3 2008/04/19 Made generic, expanded prose.
+ 2008/04/25 `Lueck', not `Lück', for UNIX etc.
+ 2008/05/07 ersatz-\newcommand earlier, typo;
+ removed remarks on PiCTeX documentation.
+ 2008/05/08 Added version numbers, corrected ersatz-\newcommand;
+ uploaded in pictex_may_2008.zip - in vain.
+v0.3a 2008/08/12 typo fix "too text" -> "to text".
+
+_________________________________________________________________________
+
+FORMER VERSION 2008/02/13 (ul, 2008/02/14):
+
+I couldn't find a working redefinition of \circulararc
+("Use of \ellipticalarc doesn't match its definition");
+on the other hand its internals seem to the job all ready;
+and my redefinition seemed to raise further difficulties.
+Here's what I had tried before:
+
+% \circulararc may do the trick for full circles (360 degree) only.
+% CAVEAT: assumes that x and y units are the same.
+% Otherwise or when something else goes wrong, put \circulararc between
+% \autoaccountingarcoff and \autoaccountingarcon.
+%
+% These features come from the start if you load the present package.
+
+\catcode`\!=11 % use and change PiCTeX internals
+
+\let\PT@@start\!start \let\PT@@ljoin\!ljoin \let\PT@@qjoin\!qjoin
+\def\PTaa@start (#1,#2){\plottedat #1 #2 \PT@@start (#1,#2)}
+\def\PTaa@ljoin (#1,#2){\plottedat #1 #2 \PT@@ljoin (#1,#2)}
+\def\PTaa@qjoin (#1,#2) (#3,#4){%
+ \plottedat #1 #2 \plottedat #3 #4 \PT@@qjoin (#1,#2) (#3,#4)}
+
+\let\PT@@circulararc\circulararc
+\def\PTaa@circulararc #1 degrees from #2 #3 center at #4 #5 {%
+ \ifnum #1=360
+ \!dimenE=#2pt \advance\!dimenE-#4pt
+ \!dimenF=#2pt \advance\!dimenF-#4pt
+ \!Pythag\!dimenE\!dimenF\!dimenG
+ \PTaa@plotcorner{#4}{#5}{-}%
+ \PTaa@plotcorner{#4}{#5}{}%
+ \fi
+ % \PT@@circulararc #1 degrees from #2 #3 center at #4 #5
+ %\PT@@circulararc #1 degrees from #2 #3 center at #4 #5 }
+ \ellipticalarc axes ratio 1:1 360 degrees from 0 25 center at 0 0 }
+ %\ellipticalarc axes ratio 1:1 #1 degrees from #2 #3 center at #4 #5 }
+\def\PTaa@plotcorner#1#2#3{%
+ \!dimenE#1pt \!dimenF#2pt
+ \advance\!dimenE#3\!dimenG \advance\!dimenF#3\!dimenG
+ \!removept\!dimenE\@tempa \!removept\!dimenF\@tempb
+ \edef\@tempc{\noexpand\plottedat \@tempa\space\@tempb}%
+ \@tempc
+}
+% <-:
+% 1. May be \!qjoin of \ellipticalarc does the trick already.
+% 2. FUTURE: \accountingcircle[tbrl] if circle isn't full.
+% 3. CAVEAT: May not work in dimension mode.
+% 4. May be improvable with better knowledge of internals than mine.
+
+\newcommand{\autoaccountingon}{%
+ \let\!start\PTaa@start \let\!ljoin\PTaa@ljoin \let\!qjoin\PTaa@qjoin
+ \autoaccountingarcon}
+\newcommand{\autoaccountingarcon}{\let\circulararc\PTaa@circulararc}
+\newcommand{\autoaccountingoff}{%
+ \let\!start\PT@@start \let\!ljoin\PT@@ljoin \let\!qjoin\PT@@qjoin
+ % <- Yet I can't imagine why this could be needed, just in case ...
+ \autoaccountingarcoff}
+\newcommand{\autoaccountingarcoff}{\let\circulararc\PT@@circulararc}
+
+% \setnone FROM ARABTEX SUFFICES INSTEAD OF:
+%
+% COMPATIBILITY WITH ARABTEX ETC.
+%
+% ArabTeX and possibly other packages may disable PiCTeX commands
+% using "<...,...>" syntax, notably \setcoordinatesystem units <1mm,1mm> etc.
+%% TODO: TeX error:
+% Precede such a command (if it breaks) with \restoreanglesyntax,
+% best after \beginpicture to avoid disabling the other package.
+
+\newcommand{\restoreanglesyntax}{\@makeother\<\@makeother\>}
+
+%% todo: or better "compatibility" package ptangles.sty introducing
+%% syntax without <...>!?
+
+%%% end of file
diff --git a/graphics/pictex-addons/autoarea/autodemo/README.autodemo b/graphics/pictex-addons/autoarea/autodemo/README.autodemo
new file mode 100644
index 0000000000..39b8f0abda
--- /dev/null
+++ b/graphics/pictex-addons/autoarea/autodemo/README.autodemo
@@ -0,0 +1,26 @@
+ File README.autodemo for
+ [tex-archive]/graphics/pictex/addon/autoarea/autodemo/
+
+
+AUTODEMO.TEX
+
+ contains a sample of code for a PiCTeX picture placed in the
+ middle running text on one page.
+
+AUTODEMO-.TEX
+
+ runs AUTODEMO.TEX without loading AUTOAREA.STY. The outcome is
+
+ AUTODEMO-.PDF
+
+AUTODEMO+.TEX
+
+ runs AUTODEMO.TEX after loading AUTOAREA.STY. The outcome is
+
+ AUTODEMO+.PDF
+
+Print both pages and watch them side by side.
+
+
+________________________________________________________________________
+This file version 2008/04/25 Uwe Lueck, http://contact-ednotes.sty.de.vu
diff --git a/graphics/pictex-addons/autoarea/autodemo/autodemo+.pdf b/graphics/pictex-addons/autoarea/autodemo/autodemo+.pdf
new file mode 100644
index 0000000000..4ceb8ed8c8
--- /dev/null
+++ b/graphics/pictex-addons/autoarea/autodemo/autodemo+.pdf
Binary files differ
diff --git a/graphics/pictex-addons/autoarea/autodemo/autodemo+.tex b/graphics/pictex-addons/autoarea/autodemo/autodemo+.tex
new file mode 100644
index 0000000000..e59401a480
--- /dev/null
+++ b/graphics/pictex-addons/autoarea/autodemo/autodemo+.tex
@@ -0,0 +1,4 @@
+\ProvidesFile{autodemo+.tex}[2008/04/19 autoarea.sty's effect]
+\newcommand{\autouse}{\usepackage{autoarea}}
+\newcommand{\autofoot}{loaded autoarea.sty -- circle centered}
+\input autodemo \ No newline at end of file
diff --git a/graphics/pictex-addons/autoarea/autodemo/autodemo-.pdf b/graphics/pictex-addons/autoarea/autodemo/autodemo-.pdf
new file mode 100644
index 0000000000..03887de455
--- /dev/null
+++ b/graphics/pictex-addons/autoarea/autodemo/autodemo-.pdf
Binary files differ
diff --git a/graphics/pictex-addons/autoarea/autodemo/autodemo-.tex b/graphics/pictex-addons/autoarea/autodemo/autodemo-.tex
new file mode 100644
index 0000000000..3512c1d65a
--- /dev/null
+++ b/graphics/pictex-addons/autoarea/autodemo/autodemo-.tex
@@ -0,0 +1,5 @@
+\ProvidesFile{autodemo-.tex}[2008/04/19 what's missing without autoarea.sty]
+\newcommand{\autouse}{\relax}
+\newcommand{\autofoot}{didn't load autoarea.sty --
+ {\bf \textit{X}} centered, circle ignored}
+\input autodemo \ No newline at end of file
diff --git a/graphics/pictex-addons/autoarea/autodemo/autodemo.tex b/graphics/pictex-addons/autoarea/autodemo/autodemo.tex
new file mode 100644
index 0000000000..e033f3ff52
--- /dev/null
+++ b/graphics/pictex-addons/autoarea/autodemo/autodemo.tex
@@ -0,0 +1,17 @@
+\ProvidesFile{autodemo.tex}[2008/04/19 common sample for autoarea.sty]
+\documentclass[12pt]{article}
+\usepackage{pictex,lipsum}
+\autouse
+\pagestyle{plain}
+\renewcommand{\thepage}{\bfseries \sffamily \autofoot}
+\nofiles
+\begin{document}
+\lipsum[1]
+\[\beginpicture
+\setcoordinatesystem units <1mm,1mm> point at 0 0
+% \setplotarea x from -35 to 35, y from -35 to 35 %% compare to autoarea.sty
+\circulararc 360 degrees from 0 35 center at 0 0
+\put {\textbf{\itshape X}} at -20 20
+\endpicture\]
+\lipsum[2]
+\end{document}