Hello community,
here is the log from the commit of package texlive-specs-s for openSUSE:Factory checked in at 2020-05-29 21:18:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/texlive-specs-s (Old)
and /work/SRC/openSUSE:Factory/.texlive-specs-s.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "texlive-specs-s"
Fri May 29 21:18:59 2020 rev:39 rq:806929 version:unknown
Changes:
--------
--- /work/SRC/openSUSE:Factory/texlive-specs-s/texlive-specs-s.changes 2019-11-07 23:11:53.656230354 +0100
+++ /work/SRC/openSUSE:Factory/.texlive-specs-s.new.3606/texlive-specs-s.changes 2020-05-29 21:31:42.797638318 +0200
@@ -1,0 +2,60 @@
+Mon May 18 08:47:10 UTC 2020 - Dr. Werner Fink
+
+- Enhance spec file generator to find missing .so man page
+ links for better dependency resolution (bsc#1171682)
+
+-------------------------------------------------------------------
+Wed May 13 13:59:14 UTC 2020 - Dr. Werner Fink
+
+- Modify patch texdoc_cnf.dif to ignore tlpkg/texlive.tlpdb as
+ kpathsea uses the ls-R files as well
+
+-------------------------------------------------------------------
+Tue May 12 09:03:38 UTC 2020 - Dr. Werner Fink
+
+- Correct obsoletes for new packages
+
+-------------------------------------------------------------------
+Wed May 6 11:27:35 UTC 2020 - Dr. Werner Fink
+
+- Scan *.def files as well for RequirePackage
+
+-------------------------------------------------------------------
+Tue May 5 13:55:07 UTC 2020 - Dr. Werner Fink
+
+- Add Requires to tex(epstopdf-base.sty) to fix package split
+ of texlive-epstopdf
+
+-------------------------------------------------------------------
+Mon May 4 09:00:25 UTC 2020 - Dr. Werner Fink
+
+- Skip *-dev packages from file dependendcy scanner as otherwise
+ we see doubling name space for some style files like amsmath.sty
+
+-------------------------------------------------------------------
+Mon Apr 27 06:52:15 UTC 2020 - Dr. Werner Fink
+
+- Add patch pythontex_p2top3.dif and a removes file to fully
+ switch pythontex packages of TeXLive to python3
+
+-------------------------------------------------------------------
+Mon Apr 20 10:29:02 UTC 2020 - Dr. Werner Fink
+
+- Update to TeXLive 2020
+ * Port patches
+ kpathsea_cnf.dif
+ latexpand_perl.dif
+ luaotfload_varfonts.dif
+ luatex_cnf.dif
+ musixtex_various.dif
+ * Delete patches not needed anymore as files have moved
+ tetex_scripts.dif
+ * Delete patche updmap-map_roboto.dif as fixed upstream
+ * Add new patches to catch moved files
+ texlive-scripts-extra_scripts.dif
+ texlive-scripts_scripts.dif
+ * Add new patch xetex_conf.dif to fit FHS location
+ * Remove TeXLive installer files breaking rpm database
+ texlive-scripts.removes
+
+-------------------------------------------------------------------
Old:
----
powerdot-FUBerlin.doc.tar.xz
powerdot-FUBerlin.tar.xz
New:
----
pmboxdraw.doc.tar.xz
pmboxdraw.tar.xz
pmhanguljamo.doc.tar.xz
pmhanguljamo.tar.xz
poiretone.doc.tar.xz
poiretone.tar.xz
powerdot-fuberlin.doc.tar.xz
powerdot-fuberlin.tar.xz
practicalreports.doc.tar.xz
practicalreports.tar.xz
proof-at-the-end.doc.tar.xz
proof-at-the-end.tar.xz
prtec.doc.tar.xz
prtec.tar.xz
ps2eps.doc.tar.xz
ps2eps.tar.xz
pseudo.doc.tar.xz
pseudo.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ texlive-specs-s.spec ++++++
++++ 14770 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/texlive-specs-s/texlive-specs-s.spec
++++ and /work/SRC/openSUSE:Factory/.texlive-specs-s.new.3606/texlive-specs-s.spec
++++++ platex-tools.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/platex-tools/LICENSE new/doc/latex/platex-tools/LICENSE
--- old/doc/latex/platex-tools/LICENSE 2018-03-16 22:29:25.000000000 +0100
+++ new/doc/latex/platex-tools/LICENSE 2019-09-06 00:25:17.000000000 +0200
@@ -1,4 +1,4 @@
-Copyright (c) 2016-2018 Hironobu Yamashita
+Copyright (c) 2016-2019 Hironobu Yamashita
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/platex-tools/Makefile new/doc/latex/platex-tools/Makefile
--- old/doc/latex/platex-tools/Makefile 2018-11-25 23:08:38.000000000 +0100
+++ new/doc/latex/platex-tools/Makefile 1970-01-01 01:00:00.000000000 +0100
@@ -1,28 +0,0 @@
-KANJI = -kanji=utf8
-FONTMAP = -f ipaex.map -f ptex-ipaex.map
-TEXMF = $(shell kpsewhich -var-value=TEXMFHOME)
-
-all: plarray.pdf plextarray.pdf plextdelarray.pdf \
- pxatbegshi.pdf pxftnright.pdf pxmulticol.pdf \
- pxeverysel.pdf pxeveryshi.pdf
-
-.SUFFIXES: .tex .dvi .pdf
-%.dvi: %.tex %.sty
- platex $(KANJI) $<
- platex $(KANJI) $<
- rm *.aux *.log
-.dvi.pdf:
- dvipdfmx $(FONTMAP) $<
-
-.PHONY: install clean
-install:
- mkdir -p ${TEXMF}/doc/platex/platex-tools
- cp ./Makefile ${TEXMF}/doc/platex/platex-tools/
- cp ./LICENSE ${TEXMF}/doc/platex/platex-tools/
- cp ./README.md ${TEXMF}/doc/platex/platex-tools/
- cp ./*.pdf ${TEXMF}/doc/platex/platex-tools/
- cp ./*.tex ${TEXMF}/doc/platex/platex-tools/
- mkdir -p ${TEXMF}/tex/platex/platex-tools
- cp ./*.sty ${TEXMF}/tex/platex/platex-tools/
-clean:
- rm -f *.dvi *.pdf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/platex-tools/README.md new/doc/latex/platex-tools/README.md
--- old/doc/latex/platex-tools/README.md 2018-11-25 23:08:38.000000000 +0100
+++ new/doc/latex/platex-tools/README.md 2019-09-07 23:23:14.000000000 +0200
@@ -27,20 +27,25 @@
Patch for multicol.sty (latex-tools) to support
`\footnote` in vertical writing.
Can be used on pLaTeX/upLaTeX.
+- pxxspace.sty:
+ Patch for xspace.sty (latex-tools) to fix
+ interword spacing with Japanese characters.
+ Can be used on pLaTeX/upLaTeX.
+ Version 0.2 was written by Takayuki YATO in 2019
+ (https://gist.github.com/zr-tex8r/7de76036846e149bc28ec6399a683e3a),
+ and incorporated into this bundle by his courtesy.
- pxeverysel.sty:
Patch for everysel.sty (ms) to improve
compatibility with Japanese font selection in pLaTeX.
Can be used on pLaTeX/upLaTeX.
- Previous version of this package (v0.1) was written by
- Takayuki YATO in 2015
+ Version 0.1 was written by Takayuki YATO in 2015
(https://gist.github.com/zr-tex8r/48c6910bbbe2f41d72de),
and incorporated into this bundle by his courtesy.
- pxeveryshi.sty:
Patch for everyshi.sty (ms) to support
Japanese classes for vertical writing.
Can be used on pLaTeX/upLaTeX.
- Previous version of this package (v0.1) was written by
- Takayuki YATO in 2012
+ Version 0.1 was written by Takayuki YATO in 2012
(https://gist.github.com/zr-tex8r/2702969),
and incorporated into this bundle by his courtesy.
- pxatbegshi.sty:
@@ -78,6 +83,6 @@
## Release Date
-2018-11-25
+2019-09-07
Hironobu Yamashita
Binary files old/doc/latex/platex-tools/pxatbegshi.pdf and new/doc/latex/platex-tools/pxatbegshi.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/platex-tools/pxatbegshi.tex new/doc/latex/platex-tools/pxatbegshi.tex
--- old/doc/latex/platex-tools/pxatbegshi.tex 2018-09-21 23:06:46.000000000 +0200
+++ new/doc/latex/platex-tools/pxatbegshi.tex 2019-09-07 23:23:14.000000000 +0200
@@ -60,12 +60,12 @@
\section*{謝辞}
-本パッケージの実装には、Takayuki Yato (ZR) 氏による
-\textsf{bxpapersize}パッケージを参考にしました
-\footnote{2018/09/21 v0.3までは北川さん (Hironori Kitagawa) による
+本パッケージの実装は、北川さん(Hironori Kitagawa)さんによる
「\verb+\AtBegShi@Output+の処理を強引に横組でやらせるコード」
-をベースにしていましたが、v0.4で\verb+\AtBeginShipoutDiscard+へ
-対応させる改修を機に、書き直しました。}。
+をベースにしています\footnote{2018/09/21 v0.4では
+Takayuki Yato (ZR) 氏による\textsf{bxpapersize}パッケージを参考に
+していましたが、\textsf{multicol}パッケージで問題が起きるようなので
+v0.3以前と同様に北川さんのコードベースに戻しました。}。
\section*{References}
Binary files old/doc/latex/platex-tools/pxxspace.pdf and new/doc/latex/platex-tools/pxxspace.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/platex-tools/pxxspace.tex new/doc/latex/platex-tools/pxxspace.tex
--- old/doc/latex/platex-tools/pxxspace.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/latex/platex-tools/pxxspace.tex 2019-09-06 00:25:17.000000000 +0200
@@ -0,0 +1,100 @@
+%# -*- coding: utf-8 -*-
+\ifx\epTeXinputencoding\undefined\else % defined in e-pTeX (> TL2016)
+ \epTeXinputencoding utf8 % ensure utf-8 encoding for platex
+\fi
+
+\documentclass[a4paper]{jsarticle}
+\usepackage{doc}
+\usepackage{pxxspace}
+\GetFileInfo{pxxspace.sty}
+\title{Package \textsf{pxxspace} \fileversion}
+\author{Takayuki Yato}
+\date{\filedate}
+
+%%%%% BEGIN
+%
+% \RESTOREXSPACE: restore original behavior to show difference
+%
+\makeatletter\def\RESTOREXSPACE{%
+%
+%% patch \@xspace
+\patchcmd\@xspace{%from
+ \pxxs@precheck
+ \@xspace@lettoken@if@letter@TF
+}{%to
+ \@xspace@lettoken@if@letter@TF
+}{}{}
+%% patch \@xspace@eTeX@setup
+\patchcmd\@xspace@eTeX@setup{%from
+ \begingroup
+ \pxxs@forcecjktoken
+}{%to
+ \begingroup
+}{}{}
+%
+}\makeatother
+%
+%%%%% END
+
+\begin{document}
+
+\maketitle
+
+The command \verb+\xspace+ of package \textsf{xspace}
+(included in \textsf{latex-tools} bundle)
+results in wrong interword spacing when followed by
+a Japanese character.
+The package \textsf{pxxspace} provides a patch for \textsf{xspace}
+to correct interword spacing with Japanese characters.
+
+This package is part of \textsf{platex-tools} bundle:
+\begin{verbatim}
+ https://github.com/aminophen/platex-tools
+\end{verbatim}
+
+\bigskip
+
+\textsf{xspace}パッケージ(\textsf{latex-tools}バンドルの一つ)が
+提供する \verb+\xspace+ 命令は、その直後に和文文字を伴うときに
+その和文文字との間のスペーシングが正しくなりません。
+そこで、\textsf{pxxspace}パッケージを読み込めば
+和文文字との間のスペーシングが修正されます。
+
+以下に例を示します。
+\begin{verbatim}
+ % Sample code
+ \documentclass{article}
+ \usepackage{pxxspace}% or, \usepackage{xspace}
+ \newcommand\myTeX{\TeX\xspace}
+ \begin{document}
+ % ASCII-Kanji interword spacing should be 20pt.
+ % At the same time, no spacing before JP punctuations.
+ \xkanjiskip 20pt % visible
+ \myTeX is great!\par
+ \myTeX, it's awesome!\par
+ \myTeX は素晴らしい!\par
+ \myTeX、超スゴイ!\par
+ \end{document}
+\end{verbatim}
+
+\begin{quote}
+\begin{multicols}{2}
+ \xkanjiskip 20pt % visible
+ \newcommand\myTeX{\TeX\xspace}
+ \long\def\TEST{%
+ \myTeX is great!\par
+ \myTeX, it's awesome!\par
+ \myTeX は素晴らしい!\par
+ \myTeX、超スゴイ!\par
+ }
+ % 正しいスペーシング:
+ Correct with \verb+\usepackage{pxxspace}+\par
+ \TEST
+ % 誤ったスペーシング:
+ \RESTOREXSPACE
+ Wrong with \verb+\usepackage{xspace}+\par
+ \TEST
+\end{multicols}
+\end{quote}
+
+\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/platex-tools.doc.tlpobj new/tlpkg/tlpobj/platex-tools.doc.tlpobj
--- old/tlpkg/tlpobj/platex-tools.doc.tlpobj 2019-02-28 03:59:48.000000000 +0100
+++ new/tlpkg/tlpobj/platex-tools.doc.tlpobj 2019-09-08 01:54:43.000000000 +0200
@@ -1,11 +1,10 @@
name platex-tools.doc
category Package
-revision 49250
+revision 52049
shortdesc doc files of platex-tools
relocated 1
-docfiles size=141
+docfiles size=152
RELOC/doc/latex/platex-tools/LICENSE
- RELOC/doc/latex/platex-tools/Makefile
RELOC/doc/latex/platex-tools/README.md
RELOC/doc/latex/platex-tools/plarray.pdf
RELOC/doc/latex/platex-tools/plarray.tex
@@ -23,3 +22,5 @@
RELOC/doc/latex/platex-tools/pxftnright.tex
RELOC/doc/latex/platex-tools/pxmulticol.pdf
RELOC/doc/latex/platex-tools/pxmulticol.tex
+ RELOC/doc/latex/platex-tools/pxxspace.pdf
+ RELOC/doc/latex/platex-tools/pxxspace.tex
++++++ platex-tools.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/platex-tools/plarray.sty new/tex/latex/platex-tools/plarray.sty
--- old/tex/latex/platex-tools/plarray.sty 2018-10-27 23:38:32.000000000 +0200
+++ new/tex/latex/platex-tools/plarray.sty 2019-09-06 00:25:17.000000000 +0200
@@ -7,7 +7,7 @@
%
% This package is expected to be compatible with
% * array.sty in latex-tools
-% (2016/10/06 v2.4d -- 2018/09/13 v2.4i)
+% (2016/10/06 v2.4d -- 2018/11/13 v2.4j)
% * plcore.ltx in platex
% (2001/09/26 v1.2a -- 2018/09/02 v1.3)
%
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/platex-tools/plextarray.sty new/tex/latex/platex-tools/plextarray.sty
--- old/tex/latex/platex-tools/plextarray.sty 2018-10-27 23:38:32.000000000 +0200
+++ new/tex/latex/platex-tools/plextarray.sty 2019-09-06 00:25:17.000000000 +0200
@@ -7,9 +7,9 @@
%
% This package is expected to be compatible with
% * array.sty in latex-tools
-% (2016/10/06 v2.4d -- 2018/09/13 v2.4i)
+% (2016/10/06 v2.4d -- 2018/11/13 v2.4j)
% * plext.sty in platex
-% (2001/09/26 v1.2 -- 2018/09/20 v1.2j)
+% (2001/09/26 v1.2 -- 2018/10/07 v1.2k)
% Largely based on lltjext.sty from LuaTeX-ja project.
%
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/platex-tools/plextdelarray.sty new/tex/latex/platex-tools/plextdelarray.sty
--- old/tex/latex/platex-tools/plextdelarray.sty 2018-09-21 23:06:46.000000000 +0200
+++ new/tex/latex/platex-tools/plextdelarray.sty 2019-09-06 00:25:17.000000000 +0200
@@ -9,7 +9,7 @@
% * delarray.sty in latex-tools
% (2014/10/28 v1.01)
% * plext.sty in platex
-% (2001/09/26 v1.2 -- 2018/09/20 v1.2j)
+% (2001/09/26 v1.2 -- 2018/10/07 v1.2k)
%
\NeedsTeXFormat{pLaTeX2e}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/platex-tools/pxatbegshi.sty new/tex/latex/platex-tools/pxatbegshi.sty
--- old/tex/latex/platex-tools/pxatbegshi.sty 2018-09-21 23:06:46.000000000 +0200
+++ new/tex/latex/platex-tools/pxatbegshi.sty 2019-09-07 23:23:14.000000000 +0200
@@ -5,15 +5,26 @@
% This package is part of the platex-tools bundle.
% https://github.com/aminophen/platex-tools
%
-% Largely based on bxpapersize.sty by T. Yato.
-% Previous versions were largely based on H. Kitagawa's
-% code on GitHub:texjporg/tex-jp-build#21.
+% --------------------------------------------------------------------
+% [Note]
+% Previous version (2018/09/21 v0.4) was largely based on
+% "cope with tate-direction"
+% of bxpapersize.sty 2017/05/02 v0.3a by T. Yato.
+% -- concept: execute all hooks in temporary yoko direction,
+% -- by prepending \yoko and switching back to the original
+% However, it was problematic when used with multicol.sty.
+%
+% Thus, in newer version (2019/09/07 v0.5), I reverted back to
+% the original code (2018/09/21 v0.3), which was largely based on
+% H. Kitagawa's on GitHub:texjporg/tex-jp-build#21.
+% -- concept: execute all hooks inside yoko direction \vbox
+% --------------------------------------------------
%
%% package declaration
\NeedsTeXFormat{pLaTeX2e}
\ProvidesPackage{pxatbegshi}
- [2018/09/21 v0.4 Patch to atbegshi for (u)pLaTeX]
+ [2019/09/07 v0.5 Patch to atbegshi for (u)pLaTeX]
%% preparations
\def\pxabgs@pkgname{pxatbegshi}
@@ -45,56 +56,51 @@
%---------------------------------------
-%% patch \AtBegShi@Output
-% concept: execute all hooks in temporary yoko direction,
-% by prepending \yoko and switching back to the original
-%
+% concept: execute all hooks inside yoko direction \vbox
+
% prepare
\let\pxabgs@AtBegShi@Output\AtBegShi@Output
-% first, check hooks inserted by bxpapersize.sty
-% -> if detected, nothing to do
+% try first patch
\pxabgs@patch@cmd\pxabgs@AtBegShi@Output
- {\bxpr@ABS@prehook}{\bxpr@ABS@prehook}%
-\ifx\pxabgs@fragment\relax\else % found
+ {\let\AtBegShi@OrgProtect\protect}%
+ {\setbox8\vbox\bgroup\yoko\let\AtBegShi@OrgProtect\protect}
+\ifx\pxabgs@fragment\relax % failure
+ \let\pxabgs@AtBegShi@Output\relax
+\else % success, try second patch
\pxabgs@patch@cmd\pxabgs@AtBegShi@Output
- {\bxpr@ABS@posthook}{\bxpr@ABS@posthook}%
- \ifx\pxabgs@fragment\relax\else % found
+ {\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox}%
+ {\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox\egroup}
+ \ifx\pxabgs@fragment\relax % failure
\let\pxabgs@AtBegShi@Output\relax
+ \else % success, try third patch
+ \pxabgs@patch@cmd\pxabgs@AtBegShi@Output{%
+ \begingroup
+ \setbox\AtBeginShipoutBox\box\AtBeginShipoutBox
+ \endgroup
+ \let\protect\AtBegShi@OrgProtect
+ }{%
+ \begingroup
+ \setbox\AtBeginShipoutBox\box\AtBeginShipoutBox
+ \endgroup
+ \let\protect\AtBegShi@OrgProtect
+ \egroup
+ }
+ \ifx\pxabgs@fragment\relax % failure
+ \let\pxabgs@AtBegShi@Output\relax
+ \fi
\fi
\fi
-% -> if not detected, prepend/append hooks
-\ifx\pxabgs@AtBegShi@Output\relax\else
- \expandafter\def\expandafter\pxabgs@AtBegShi@Output\expandafter{%
- \expandafter\pxabgs@ABS@prehook
- \pxabgs@AtBegShi@Output
- \pxabgs@ABS@posthook
- }
- % adjust for atbegshi.sty on non-e-TeX ...
- % (for e-TeX, this patch should fail but does nothing!)
- \pxabgs@patch@cmd\pxabgs@AtBegShi@Output
- {\pxabgs@ABS@prehook\egroup\endgroup}
- {\egroup\endgroup\pxabgs@ABS@prehook}%
- % commit the change
+% commit the change only when successful
+\ifx\pxabgs@AtBegShi@Output\relax
+ \pxabgs@warn{Failed in patching \string\AtBegShi@Output}
+\else
\global\let\AtBegShi@Output\pxabgs@AtBegShi@Output
\fi
-%
-%% done
-
-%--------------------------------------- done
\endgroup
%% internal macros are no longer effective
-%% hooks
-\let\pxabgs@restore@dir\relax
-\def\pxabgs@ABS@prehook{%
- \iftdir
- \yoko
- \let\pxabgs@restore@dir\tate
- \else
- \let\pxabgs@restore@dir\relax
- \fi}
-\def\pxabgs@ABS@posthook{\pxabgs@restore@dir}
+%--------------------------------------- done
\endinput
%% EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/platex-tools/pxmulticol.sty new/tex/latex/platex-tools/pxmulticol.sty
--- old/tex/latex/platex-tools/pxmulticol.sty 2018-11-25 23:08:38.000000000 +0100
+++ new/tex/latex/platex-tools/pxmulticol.sty 2019-09-06 00:25:17.000000000 +0200
@@ -12,7 +12,7 @@
\NeedsTeXFormat{pLaTeX2e}
\ProvidesPackage{pxmulticol}
- [2018/11/25 v0.2 footnote layout package for pLaTeX]
+ [2018/11/25 v0.2 multicol package for pLaTeX]
\RequirePackageWithOptions{multicol}
%% patching internal code for multicol.sty
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/platex-tools/pxxspace.sty new/tex/latex/platex-tools/pxxspace.sty
--- old/tex/latex/platex-tools/pxxspace.sty 1970-01-01 01:00:00.000000000 +0100
+++ new/tex/latex/platex-tools/pxxspace.sty 2019-09-06 00:25:17.000000000 +0200
@@ -0,0 +1,133 @@
+%
+% pxxspace.sty
+% written by Takayuki Yato (ZR)
+%
+% This package is distributed as part of the platex-tools bundle
+% maintained by Hironobu Yamashita
+% by courtesy of the original author.
+% https://github.com/aminophen/platex-tools
+%
+% Original copyright notice:
+% --------------------------------------------------
+% Copyright (c) 2019 Takayuki YATO (aka. "ZR")
+% GitHub: https://github.com/zr-tex8r
+% Twitter: @zr_tex8r
+%
+% This package is distributed under the MIT License.
+% --------------------------------------------------
+%
+% This package is expected to be compatible with
+% * xspace.sty in latex-tools
+% (2009/10/20 v1.13 -- 2014/10/28 v1.13)
+%
+
+%% package declaration
+\NeedsTeXFormat{pLaTeX2e}
+\ProvidesPackage{pxxspace}
+ [2019/04/30 v0.2 Patch for xspace for pLaTeX/upLaTeX]
+\def\pxxs@pkgname{pxxspace}
+
+%--------------------------------------- preparations
+
+%% e-TeX is required
+\RequirePackage{etoolbox}[2011/01/03]% v2.1
+\ifx\numdef\@undefined \endinput \fi
+
+%% packages
+\RequirePackage{xspace}[2009/10/20]% v1.13
+
+%% check if patchable
+\chardef\pxxs@tmpa=\@ne
+\ifpatchable\@xspace{%
+ \@xspace@lettoken@if@letter@TF
+}{}{\chardef\pxxs@tmpa=\z@}
+\ifpatchable\@xspace@eTeX@setup{%
+ \begingroup
+}{}{\chardef\pxxs@tmpa=\z@}
+\ifnum\pxxs@tmpa=\z@
+ \PackageError\pxxs@pkgname
+ {Failure in patching}%
+ {Package loading is aborted.\MessageBreak\@ehc}%
+\expandafter\endinput\fi\relax
+
+%--------------------------------------- helpers
+
+%% packages
+\RequirePackage{pdftexcmds}
+
+%% engine check
+\newif\ifpxxs@uptex
+\pdf@isprimitive\forcecjktoken\forcecjktoken{\pxxs@uptextrue}{}
+
+%% \pxxs@forcecjktoken
+\ifpxxs@uptex
+ \let\pxxs@forcecjktoken\forcecjktoken
+\else
+ \let\pxxs@forcecjktoken\relax
+\fi
+
+%--------------------------------------- adjustments to xspace
+
+%% \pxxs@jt@XXX : probe tokens
+\begingroup
+ \def\do#1#2#3{%
+ \kcatcode#2=#3\relax \kansujichar1=#2\relax
+ \edef\next{%
+ \global\let\noexpand#1=\scantokens\expandafter{\kansuji1}%
+ }\next}
+ \pxxs@forcecjktoken
+ \everyeof{\noexpand}% disable EOF marker
+ \do\pxxs@jt@kanji{\jis"3441}{16}%
+ \do\pxxs@jt@kana{\jis"2422}{17}%
+ \do\pxxs@jt@other{\jis"2123}{18}%
+ \ifpxxs@uptex
+ \do\pxxs@jt@hangul{\ucs"D55C}{19}%
+ \fi
+\endgroup
+
+%% \pxxs@lettoken@if@jachar{<true>}{<false>}
+% Checks if \@let@token is a ja-character token.
+% NB: Here \@let@token might be an \outer-token.
+\let\@let@token\relax
+\def\pxxs@tmpa#1#2{\unexpanded{%
+ \ifcat\noexpand\@let@token#1\expandafter\@firstoftwo
+ \else \expandafter#2\fi}}
+\edef\pxxs@lettoken@if@jachar{%
+ \pxxs@tmpa\pxxs@jt@kana\pxxs@lettoken@if@jachar@a}
+\edef\pxxs@lettoken@if@jachar@a{%
+ \pxxs@tmpa\pxxs@jt@kanji\pxxs@lettoken@if@jachar@b}
+\edef\pxxs@lettoken@if@jachar@b{%
+ \pxxs@tmpa\pxxs@jt@other\pxxs@lettoken@if@jachar@c}
+\edef\pxxs@lettoken@if@jachar@c{%
+ \pxxs@tmpa\pxxs@jt@hangul\@secondoftwo}
+\unless\ifpxxs@uptex
+ \let\pxxs@lettoken@if@jachar@c\@secondoftwo
+\fi
+
+%% \pxxs@precheck
+% Placed just before \@xspace@lettoken@if@letter@TF to modify the
+% behavior of \@xspace so that spaces are omitted if the following
+% token is a ja-character.
+\def\pxxs@precheck#1{%
+ \pxxs@lettoken@if@jachar{\@gobbletwo}{#1}%
+}
+
+%% patch \@xspace
+\patchcmd\@xspace{%from
+ \@xspace@lettoken@if@letter@TF
+}{%to
+ \pxxs@precheck
+ \@xspace@lettoken@if@letter@TF
+}{}{}
+
+%% patch \@xspace@eTeX@setup
+\patchcmd\@xspace@eTeX@setup{%from
+ \begingroup
+}{%to
+ \begingroup
+ \pxxs@forcecjktoken
+}{}{}
+
+%--------------------------------------- done
+\endinput
+%% EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/platex-tools.tlpobj new/tlpkg/tlpobj/platex-tools.tlpobj
--- old/tlpkg/tlpobj/platex-tools.tlpobj 2019-02-28 03:59:48.000000000 +0100
+++ new/tlpkg/tlpobj/platex-tools.tlpobj 2019-09-08 01:54:44.000000000 +0200
@@ -1,13 +1,13 @@
name platex-tools
category Package
-revision 49250
+revision 52049
shortdesc pLaTeX standard tools bundle
relocated 1
longdesc This bundle is an extended version of the latex-tools bundle
longdesc developed by the LaTeX team, mainly intended to support
longdesc pLaTeX2e and upLaTeX2e. Currently patches for the latex-tools
longdesc bundle and Martin Schroder's ms bundle are included.
-runfiles size=9
+runfiles size=10
RELOC/tex/latex/platex-tools/plarray.sty
RELOC/tex/latex/platex-tools/plextarray.sty
RELOC/tex/latex/platex-tools/plextdelarray.sty
@@ -16,8 +16,9 @@
RELOC/tex/latex/platex-tools/pxeveryshi.sty
RELOC/tex/latex/platex-tools/pxftnright.sty
RELOC/tex/latex/platex-tools/pxmulticol.sty
+ RELOC/tex/latex/platex-tools/pxxspace.sty
catalogue-contact-repository https://github.com/aminophen/platex-tools
catalogue-ctan /language/japanese/platex-tools
-catalogue-date 2018-11-25 13:41:24 +0100
+catalogue-date 2019-09-07 11:47:33 +0200
catalogue-license bsd3
catalogue-topics japanese collection
++++++ platex.doc.tar.xz ++++++
Binary files old/texmf-dist/doc/man/man1/platex.man1.pdf and new/texmf-dist/doc/man/man1/platex.man1.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/platex/base/LICENSE new/texmf-dist/doc/platex/base/LICENSE
--- old/texmf-dist/doc/platex/base/LICENSE 2019-04-07 01:20:14.000000000 +0200
+++ new/texmf-dist/doc/platex/base/LICENSE 2020-02-02 23:31:00.000000000 +0100
@@ -1,5 +1,5 @@
Copyright (c) 2010 ASCII MEDIA WORKS
-Copyright (c) 2016-2019 Japanese TeX Development Community
+Copyright (c) 2016-2020 Japanese TeX Development Community
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/platex/base/README.md new/texmf-dist/doc/platex/base/README.md
--- old/texmf-dist/doc/platex/base/README.md 2019-04-07 01:20:14.000000000 +0200
+++ new/texmf-dist/doc/platex/base/README.md 2020-04-12 23:29:19.000000000 +0200
@@ -1,29 +1,39 @@
# platex
-The bundle provides pLaTeX2e and miscellaneous macros for pTeX and e-pTeX.
+The bundle provides pLaTeX2e format and miscellaneous macros
+for pTeX and e-pTeX.
+This is a community edition maintained by
+[Japanese TeX Development Community](http://texjp.org),
+which forked from the original ASCII edition (ptex-texmf-2.5).
-The bundle is a community edition forked from the original ASCII edition
-(ptex-texmf-2.5). The GitHub repository
+## Repository
-- https://github.com/texjporg/platex
+The bundle is maintained on GitHub:
+https://github.com/texjporg/platex
-is now maintained by [Japanese TeX Development Community](http://texjp.org).
+If you have issues, please let us know from the above page.
The original ASCII edition can be obtained from:
-- https://ctan.org/pkg/ptex-texmf
+- https://asciidwango.github.io/ptex/base/sources.html#platex
## Changes from the original ASCII edition
-See the documents (platex.pdf, pldoc.pdf, platexrelease.pdf) for more information.
+The original ASCII edition (pLaTeX2e 2006/11/10) was based on
+pTeX-3.1.10 and LaTeX2e 2005/12/01.
+The community edition (this package) has the following advantages:
-- Fix macros which are inconsistent with the latest e-pTeX
- (e.g. \footnote, tabular, \parbox, \underline).
- Fix several bugs in pLaTeX2e format and packages.
+- Fix macros which are inconsistent with the latest pTeX
+ (e.g. \footnote, tabular, \parbox, \underline).
+- Support LaTeX2e 2015/01/01 and later versions.
- Add platexrelease.sty. As with the latexrelease package, this
package enables us to use the old versions of pLaTeX2e (from
2006/11/10 the ASCII edition).
+See the documents (platex.pdf, pldoc.pdf, platexrelease.pdf)
+for more information.
+
## Documentation
A brief exposition of pLaTeX2e is provided in platex.pdf.
@@ -47,13 +57,6 @@
are encoded in ISO-2022-JP. This is because ISO-2022-JP encoded
texts are most suitable for the traditional pTeX engine.
-## Repository
-
-The bundle is maintained on GitHub:
-https://github.com/texjporg/platex
-
-If you have issues, please let us know from the above page.
-
## License
The bundle may be distributed and/or modified under the terms of
@@ -61,6 +64,6 @@
## Release Date
-2019-04-06
+2020-04-12
Japanese TeX Development Community
Binary files old/texmf-dist/doc/platex/base/exppl2e.pdf and new/texmf-dist/doc/platex/base/exppl2e.pdf differ
Binary files old/texmf-dist/doc/platex/base/platex-en.pdf and new/texmf-dist/doc/platex/base/platex-en.pdf differ
Binary files old/texmf-dist/doc/platex/base/platex.pdf and new/texmf-dist/doc/platex/base/platex.pdf differ
Binary files old/texmf-dist/doc/platex/base/platexrelease.pdf and new/texmf-dist/doc/platex/base/platexrelease.pdf differ
Binary files old/texmf-dist/doc/platex/base/pldoc.pdf and new/texmf-dist/doc/platex/base/pldoc.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/platex.doc.tlpobj new/tlpkg/tlpobj/platex.doc.tlpobj
--- old/tlpkg/tlpobj/platex.doc.tlpobj 2019-04-07 01:38:05.000000000 +0200
+++ new/tlpkg/tlpobj/platex.doc.tlpobj 2020-04-16 01:57:04.000000000 +0200
@@ -1,8 +1,8 @@
name platex.doc
category Package
-revision 50831
+revision 54758
shortdesc doc files of platex
-docfiles size=396
+docfiles size=374
texmf-dist/doc/man/man1/platex.1
texmf-dist/doc/man/man1/platex.man1.pdf
texmf-dist/doc/platex/base/LICENSE
++++++ platex.tar.xz ++++++
++++ 3792 lines of diff (skipped)
++++++ plautopatch.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/plautopatch/LICENSE new/doc/latex/plautopatch/LICENSE
--- old/doc/latex/plautopatch/LICENSE 2018-08-21 23:51:42.000000000 +0200
+++ new/doc/latex/plautopatch/LICENSE 2020-02-25 23:00:24.000000000 +0100
@@ -1,4 +1,4 @@
-Copyright (c) 2018 Hironobu Yamashita
+Copyright (c) 2018-2020 Hironobu Yamashita
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/plautopatch/Makefile new/doc/latex/plautopatch/Makefile
--- old/doc/latex/plautopatch/Makefile 2018-08-21 23:51:42.000000000 +0200
+++ new/doc/latex/plautopatch/Makefile 1970-01-01 01:00:00.000000000 +0100
@@ -1,26 +0,0 @@
-KANJI = -kanji=utf8
-FONTMAP = -f ipaex.map -f ptex-ipaex.map
-TEXMF = $(shell kpsewhich -var-value=TEXMFHOME)
-
-all: plautopatch.pdf plautopatch-ja.pdf
-
-.SUFFIXES: .tex .dvi .pdf
-.tex.dvi:
- platex $(KANJI) $<
- platex $(KANJI) $<
- rm *.aux *.log
-.dvi.pdf:
- dvipdfmx $(FONTMAP) $<
-
-.PHONY: install clean
-install:
- mkdir -p ${TEXMF}/doc/platex/plautopatch
- cp ./Makefile ${TEXMF}/doc/platex/plautopatch/
- cp ./LICENSE ${TEXMF}/doc/platex/plautopatch/
- cp ./README.md ${TEXMF}/doc/platex/plautopatch/
- cp ./*.pdf ${TEXMF}/doc/platex/plautopatch/
- cp ./*.tex ${TEXMF}/doc/platex/plautopatch/
- mkdir -p ${TEXMF}/tex/platex/plautopatch
- cp ./*.sty ${TEXMF}/tex/platex/plautopatch/
-clean:
- rm -f *.dvi *.pdf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/plautopatch/README.md new/doc/latex/plautopatch/README.md
--- old/doc/latex/plautopatch/README.md 2018-12-01 00:18:04.000000000 +0100
+++ new/doc/latex/plautopatch/README.md 2020-02-25 23:00:24.000000000 +0100
@@ -30,7 +30,10 @@
- atbegshi (oberdiek) -> pxatbegshi (platex-tools)
- ftnright (latex-tools) -> pxftnright (platex-tools)
- multicol (latex-tools) -> pxmulticol (platex-tools)
+- xspace (latex-tools) -> pxxspace (platex-tools)
+- textpos -> pxtextpos (maintained here!)
- pdfpages -> pxpdfpages (maintained here!)
+- stfloats (sttools) -> pxstfloats (pxsttools)
- pgfrcs (pgf) -> pxpgfrcs (maintained here!)
- pgfcore (pgf) -> pxpgfmark (by Takayuki YATO)
@@ -42,36 +45,39 @@
## Miscellaneous
This bundle may distribute some tiny patches
-together with the main package. Short information:
+together with the main package.
+All packages are meant for use with pLaTeX/upLaTeX.
+Short information:
- pldocverb.sty:
Patch for doc.sty (latex) to improve
compatibility with `\verb` redefinition in pLaTeX.
- Can be used on pLaTeX/upLaTeX.
- plextcolortbl.sty:
Patch for colortbl.sty (by David Carlisle) to improve
compatibility with plext.sty in pLaTeX.
- Can be used on pLaTeX/upLaTeX.
- plarydshln.sty:
Patch for arydshln.sty (by Hiroshi Nakashima) to improve
- compatibility with pLaTeX/upLaTeX kernels.
- Can be used on pLaTeX/upLaTeX.
+ compatibility with pLaTeX kernel.
- plextarydshln.sty:
Patch for arydshln.sty (by Hiroshi Nakashima) to improve
compatibility with plext.sty in pLaTeX.
- Can be used on pLaTeX/upLaTeX.
- plsiunitx.sty:
Patch for siunitx.sty (by Joseph Wright) to fix
conflict with plarray.sty (platex-tools).
- Can be used on pLaTeX/upLaTeX.
+- pxtextpos.sty:
+ Patch for textpos.sty (by Norman Gray) to support
+ Japanese-style crop marks (called 'tombow' in Japanese).
- pxpdfpages.sty:
Patch for pdfpages.sty (by Andreas Matthias) to support
Japanese-style crop marks (called 'tombow' in Japanese).
- Can be used on pLaTeX/upLaTeX.
- pxpgfrcs.sty:
Patch for pgfrcs.sty (part of PGF) to support
Japanese classes for vertical writing.
- Can be used on pLaTeX/upLaTeX.
+- pxstfloats.sty:
+ Patch for stfloats.sty (sttools) to improve
+ compatibility with pLaTeX kernel.
+ Actually part of pxsttols (https://github.com/aminophen/pxsttools)
+ but included here for convenience.
## Installation
@@ -90,6 +96,6 @@
## Release Date
-2018-11-25
+2020-02-25
Hironobu Yamashita
Binary files old/doc/latex/plautopatch/plautopatch-ja.pdf and new/doc/latex/plautopatch/plautopatch-ja.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/plautopatch/plautopatch-ja.tex new/doc/latex/plautopatch/plautopatch-ja.tex
--- old/doc/latex/plautopatch/plautopatch-ja.tex 2018-12-01 00:18:04.000000000 +0100
+++ new/doc/latex/plautopatch/plautopatch-ja.tex 2020-02-25 23:00:24.000000000 +0100
@@ -116,7 +116,10 @@
\ITEMoTo atbegshi (oberdiek) -> pxatbegshi (platex-tools)
\ITEMoTo ftnright (latex-tools) -> pxftnright (platex-tools)
\ITEMoTo multicol (latex-tools) -> pxmulticol (platex-tools)
+\ITEMoTo xspace (latex-tools) -> pxxspace (platex-tools)
+\ITEMxTx textpos -> pxtextpos (maintained here!)
\ITEMxTx pdfpages -> pxpdfpages (maintained here!)
+\ITEMoTo stfloats (sttools) -> pxstfloats (pxsttools)
\ITEMoTx pgfrcs (pgf) -> pxpgfrcs (maintained here!)
\ITEMoTx pgfcore (pgf) -> pxpgfmark (by Takayuki YATO)
\end{itemize}
@@ -148,6 +151,9 @@
\item 2018/10/27 v0.8 \textsf{everysel}サポートの改良
\item 2018/11/03 v0.9 \textsf{siunitx}のサポート
\item 2018/11/25 v0.9b \textsf{multicol}と\textsf{doc}のサポート
+ \item 2019/06/06 v0.9c \textsf{siunitx}のパッチ改良
+ \item 2019/09/05 v0.9d \textsf{xspace}と\textsf{stfloats}のサポート
+ \item 2020/02/25 v0.9e \textsf{textpos}のサポート
\end{itemize}
\end{document}
Binary files old/doc/latex/plautopatch/plautopatch.pdf and new/doc/latex/plautopatch/plautopatch.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/plautopatch/plautopatch.tex new/doc/latex/plautopatch/plautopatch.tex
--- old/doc/latex/plautopatch/plautopatch.tex 2018-12-01 00:18:04.000000000 +0100
+++ new/doc/latex/plautopatch/plautopatch.tex 2020-02-25 23:00:24.000000000 +0100
@@ -115,7 +115,10 @@
\ITEMoTo atbegshi (oberdiek) -> pxatbegshi (platex-tools)
\ITEMoTo ftnright (latex-tools) -> pxftnright (platex-tools)
\ITEMoTo multicol (latex-tools) -> pxmulticol (platex-tools)
+\ITEMoTo xspace (latex-tools) -> pxxspace (platex-tools)
+\ITEMxTx textpos -> pxtextpos (maintained here!)
\ITEMxTx pdfpages -> pxpdfpages (maintained here!)
+\ITEMoTo stfloats (sttools) -> pxstfloats (pxsttools)
\ITEMoTx pgfrcs (pgf) -> pxpgfrcs (maintained here!)
\ITEMoTx pgfcore (pgf) -> pxpgfmark (by Takayuki YATO)
\end{itemize}
@@ -150,6 +153,9 @@
\item 2018/10/27 v0.8 Better support for \textsf{everysel}
\item 2018/11/03 v0.9 Add support for \textsf{siunitx}
\item 2018/11/25 v0.9b Add support for \textsf{multicol} and \textsf{doc}
+ \item 2019/06/06 v0.9c Update patch for \textsf{siunitx}
+ \item 2019/09/05 v0.9d Add support for \textsf{xspace} and \textsf{stfloats}
+ \item 2020/02/25 v0.9e Add support for \textsf{textpos}
\end{itemize}
\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/plautopatch.doc.tlpobj new/tlpkg/tlpobj/plautopatch.doc.tlpobj
--- old/tlpkg/tlpobj/plautopatch.doc.tlpobj 2019-02-28 03:59:49.000000000 +0100
+++ new/tlpkg/tlpobj/plautopatch.doc.tlpobj 2020-02-26 01:55:04.000000000 +0100
@@ -1,11 +1,10 @@
name plautopatch.doc
category Package
-revision 49288
+revision 53906
shortdesc doc files of plautopatch
relocated 1
-docfiles size=41
+docfiles size=40
RELOC/doc/latex/plautopatch/LICENSE
- RELOC/doc/latex/plautopatch/Makefile
RELOC/doc/latex/plautopatch/README.md
RELOC/doc/latex/plautopatch/plautopatch-ja.pdf
RELOC/doc/latex/plautopatch/plautopatch-ja.tex
++++++ plautopatch.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/plautopatch/plarydshln.sty new/tex/latex/plautopatch/plarydshln.sty
--- old/tex/latex/plautopatch/plarydshln.sty 2018-10-27 23:38:45.000000000 +0200
+++ new/tex/latex/plautopatch/plarydshln.sty 2020-02-25 23:00:24.000000000 +0100
@@ -7,9 +7,9 @@
%
% This package is expected to be compatible with
% * arydshln.sty
-% (2004/08/31 v1.71 -- 2018/09/26 v1.74)
+% (2004/08/31 v1.71 -- 2019/02/21 v1.76)
% * plcore.ltx in platex
-% (2001/09/26 v1.2a -- 2018/09/02 v1.3)
+% (2001/09/26 v1.2a -- 2019/02/08 v1.3b)
%
%% package declaration
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/plautopatch/plautopatch.sty new/tex/latex/plautopatch/plautopatch.sty
--- old/tex/latex/plautopatch/plautopatch.sty 2018-12-01 00:18:04.000000000 +0100
+++ new/tex/latex/plautopatch/plautopatch.sty 2020-02-25 23:00:24.000000000 +0100
@@ -8,7 +8,7 @@
\NeedsTeXFormat{LaTeX2e}% not pLaTeX2e on purpose!
\ProvidesPackage{plautopatch}
- [2018/11/25 v0.9b Automated patches for pLaTeX/upLaTeX]
+ [2020/02/25 v0.9e Automated patches for pLaTeX/upLaTeX]
\ifx\pfmtname\@undefined
\PackageWarningNoLine{plautopatch}{%
@@ -189,12 +189,18 @@
\platpc@patch@after{atbegshi}{pxatbegshi}% platex-tools
\platpc@patch@before{ftnright}{pxftnright}% platex-tools
\platpc@patch@after{multicol}{pxmulticol}% platex-tools
+\platpc@patch@after{xspace}{pxxspace}% platex-tools
+\platpc@patch@after{textpos}{pxtextpos}% (maintained here!)
\platpc@patch@after{pdfpages}{pxpdfpages}% (maintained here!)
+\platpc@patch@before{stfloats}{pxstfloats}% pxsttools -- (!!)
% for TikZ/PGF
\platpc@patch@after{pgfrcs}{pxpgfrcs}% (maintained here!)
% --- pxpgfmark is useful on e-(u)pTeX + dvipdfmx
% --- but does no harm for other conditions
+% --- [Update] pgf 2019-01-05 v3.1 (with \gdef\pgfversion{3.1})
+% ---- already supports inter-picture connections
+% ---- so pxpgfmark is no longer required
\platpc@patch@after{pgfcore}{pxpgfmark}% by Takayuki YATO (ZR)
% special case, mainly for problematic packages
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/plautopatch/pldocverb.sty new/tex/latex/plautopatch/pldocverb.sty
--- old/tex/latex/plautopatch/pldocverb.sty 2018-12-01 00:18:04.000000000 +0100
+++ new/tex/latex/plautopatch/pldocverb.sty 2020-02-25 23:00:24.000000000 +0100
@@ -9,7 +9,7 @@
% * doc.sty
% (2004/02/09 v2.1b -- 2018/09/25 v2.1i)
% * plcore.ltx in platex
-% (2001/09/26 v1.2a -- 2018/09/02 v1.3)
+% (2001/09/26 v1.2a -- 2019/02/08 v1.3b)
%
%% package declaration
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/plautopatch/plextarydshln.sty new/tex/latex/plautopatch/plextarydshln.sty
--- old/tex/latex/plautopatch/plextarydshln.sty 2018-10-27 23:38:45.000000000 +0200
+++ new/tex/latex/plautopatch/plextarydshln.sty 2019-06-06 23:49:00.000000000 +0200
@@ -7,9 +7,9 @@
%
% This package is expected to be compatible with
% * arydshln.sty
-% (2004/08/31 v1.71 -- 2018/09/26 v1.74)
+% (2004/08/31 v1.71 -- 2019/02/21 v1.76)
% * plext.sty in platex
-% (2001/09/26 v1.2 -- 2018/09/20 v1.2j)
+% (2001/09/26 v1.2 -- 2018/10/07 v1.2k)
%
%% package declaration
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/plautopatch/plextcolortbl.sty new/tex/latex/plautopatch/plextcolortbl.sty
--- old/tex/latex/plautopatch/plextcolortbl.sty 2018-09-21 23:07:02.000000000 +0200
+++ new/tex/latex/plautopatch/plextcolortbl.sty 2019-06-06 23:49:00.000000000 +0200
@@ -7,9 +7,9 @@
%
% This package is expected to be compatible with
% * colortbl.sty
-% (2012/06/21 v1.0b -- 2018/05/02 v1.0c)
+% (2012/06/21 v1.0b -- 2018/12/12 v1.0d)
% * plext.sty in platex
-% (2001/09/26 v1.2 -- 2018/09/20 v1.2j)
+% (2001/09/26 v1.2 -- 2018/10/07 v1.2k)
%
%% package declaration
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/plautopatch/plsiunitx.sty new/tex/latex/plautopatch/plsiunitx.sty
--- old/tex/latex/plautopatch/plsiunitx.sty 2018-12-01 00:18:04.000000000 +0100
+++ new/tex/latex/plautopatch/plsiunitx.sty 2019-06-06 23:49:00.000000000 +0200
@@ -4,7 +4,7 @@
%
% This package is part of the plautopatch bundle.
% https://github.com/aminophen/plautopatch
-% (mostly based on lltjp-siunitx.sty 2018-11-02)
+% (mostly based on lltjp-siunitx.sty 2019-06-06)
%
% This package is expected to be compatible with
% * siunitx.sty
@@ -16,7 +16,7 @@
%% package declaration
\NeedsTeXFormat{pLaTeX2e}
\ProvidesPackage{plsiunitx}
- [2018/11/04 v0.2 siunitx package for pLaTeX/upLaTeX]
+ [2019/06/06 v0.3 siunitx package for pLaTeX/upLaTeX]
\RequirePackageWithOptions{siunitx}
\RequirePackage{plarray}% siunitx requires array
@@ -27,22 +27,41 @@
%% inhibit JFM glue around tabular cell components (pLaTeX2e 2018/03/09)
\@ifl@t@r{\pfmtversion}{2017/07/29}{\@firstofone}{\@gobble}
{% = for pLaTeX2e 2017/07/29 or newer
+%
%% new table column: S and s
+\bool_new:N \l__platpc_siunitx_table_collect_relax_bool
+\cs_set_protected:Npn \__siunitx_table_collect_begin_s: {
+ \bool_set_false:N \l__platpc_siunitx_table_collect_relax_bool
+ \cs_set_eq:NN \__siunitx_table_collect_token:N
+ \__siunitx_table_collect_token_s:N
+ \cs_set_eq:NN \__siunitx_table_print: \__siunitx_table_print_s:
+ \__siunitx_table_collect_init_s:
+ \__siunitx_table_collect_get:
+}
+%
\@ifpackageloaded{mdwtab}{}{%
\cs_set_protected:Npn \__siunitx_table_collect_not_braced:N #1
{
- \token_if_eq_meaning:NNF #1 \relax {
- \token_if_eq_meaning:NNF #1 \pltx@next@inhibitglue {
- \token_if_eq_meaning:NNF #1 \removejfmglue {
- \token_if_eq_meaning:NNF #1 \tex_ignorespaces:D
- {
- \token_if_eq_meaning:NNF #1 \tex_unskip:D
- { \__siunitx_table_collect_not_braced_aux_i:N #1 }
+ \token_if_eq_meaning:NNTF #1 \tex_relax:D {
+ \bool_if:NTF \l__platpc_siunitx_table_collect_relax_bool {
+ \__siunitx_table_collect_not_braced_aux_i:N #1
+ } {
+ \bool_set_true:N \l__platpc_siunitx_table_collect_relax_bool
}
- }}}
+ } {
+ \token_if_eq_meaning:NNF #1 \pltx@next@inhibitglue {
+ \token_if_eq_meaning:NNF #1 \removejfmglue {
+ \token_if_eq_meaning:NNF #1 \tex_ignorespaces:D
+ {
+ \token_if_eq_meaning:NNF #1 \tex_unskip:D
+ { \__siunitx_table_collect_not_braced_aux_i:N #1 }
+ }
+ }}
+ }
\__siunitx_table_collect_next:
}
}
+%
}% =
%
%% done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/plautopatch/pxstfloats.sty new/tex/latex/plautopatch/pxstfloats.sty
--- old/tex/latex/plautopatch/pxstfloats.sty 1970-01-01 01:00:00.000000000 +0100
+++ new/tex/latex/plautopatch/pxstfloats.sty 2019-09-06 00:25:35.000000000 +0200
@@ -0,0 +1,106 @@
+%
+% pxstfloats.sty
+% written by Hironobu Yamashita (@aminophen)
+%
+% This package is actually part of the pxsttools bundle, but
+% for now distributed as part of the plautopatch bundle.
+% https://github.com/aminophen/plautopatch
+%
+% This package `pxstfloats.sty' is based on:
+% * stfloats.sty in sttools (2016/06/28 v3.2)
+% Many thanks to lltjp-stfloats.sty in LuaTeX-ja project.
+%
+
+\NeedsTeXFormat{pLaTeX2e}
+\ProvidesPackage{pxstfloats}
+ [2017/02/19 v0.2 stfloats package for pLaTeX]
+\RequirePackage{stfloats}
+
+%% mostly based on \fn@makecol in stfloats.sty, and
+%% the additions for supporting pLaTeX are based on
+%% pLaTeX2e 2017/04/08 community ed.
+%% the code is essentially compatible with
+%% fnpos.sty (yafoot) 1999/07/14 v1.0
+%% |\makeFNmid| + |\makeFNbelow| status.
+\gdef\pxstfl@fnbelowfl@makecol{%
+ \setbox\@outputbox \box\@cclv
+ \let\@elt\relax
+ \xdef\@freelist{\@freelist\@midlist}%
+ \global \let \@midlist \@empty
+ \@combinefloats
+ \ifvoid\footins
+ \else
+ \setbox\@outputbox \vbox {%
+ \boxmaxdepth \@maxdepth
+ \unvbox \@outputbox
+ \vskip \skip\footins
+ \color@begingroup
+ \normalcolor
+ \footnoterule
+ \unvbox \footins
+ \color@endgroup
+ }%
+ \fi
+ \ifvbox\@kludgeins
+ \@makespecialcolbox
+ \else
+ \setbox\@outputbox \vbox to\@colht {%
+ \@texttop
+ \dimen@ \dp\@outputbox
+ \unvbox \@outputbox
+ \iftdir\vbox{\hskip\z@}\fi %% for pLaTeX
+ \vskip -\dimen@
+ \@textbottom
+ }%
+ \fi
+ \global \maxdepth \@maxdepth
+}
+
+%% mostly based on \@makecol in latex.ltx, and
+%% the additions for supporting pLaTeX are based on
+%% pLaTeX2e 2017/04/08 community ed.
+%% the code is essentially compatible with
+%% fnpos.sty (yafoot) 1999/07/14 v1.0
+%% |\makeFNmid| + |\makeFNabove| status.
+\gdef\pxstfl@fnabovefl@makecol {%
+ \ifvoid\footins
+ \setbox\@outputbox \box\@cclv
+ \else
+ \setbox\@outputbox \vbox {%
+ \boxmaxdepth \@maxdepth
+ \unvbox \@cclv
+ \vskip \skip\footins
+ \color@begingroup
+ \normalcolor
+ \footnoterule
+ \unvbox \footins
+ \color@endgroup
+ }%
+ \fi
+ \let\@elt\relax
+ \xdef\@freelist{\@freelist\@midlist}%
+ \global \let \@midlist \@empty
+ \@combinefloats
+ \ifvbox\@kludgeins
+ \@makespecialcolbox
+ \else
+ \setbox\@outputbox \vbox to\@colht {%
+ \@texttop
+ \dimen@ \dp\@outputbox
+ \unvbox \@outputbox
+ \iftdir\vbox{\hskip\z@}\fi %% for pLaTeX
+ \vskip -\dimen@
+ \@textbottom
+ }%
+ \fi
+ \global \maxdepth \@maxdepth
+}
+
+%% the definition \fnunderfloat is unnecessary, as stfloats.sty
+%% has already defined it. others should be re-declared here
+\def\fnbelowfloat{\global\let\@makecol\pxstfl@fnbelowfl@makecol}
+\def\fnabovefloat{\global\let\@makecol\pxstfl@fnabovefl@makecol}
+
+%% all done
+
+\endinput
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/plautopatch/pxtextpos.sty new/tex/latex/plautopatch/pxtextpos.sty
--- old/tex/latex/plautopatch/pxtextpos.sty 1970-01-01 01:00:00.000000000 +0100
+++ new/tex/latex/plautopatch/pxtextpos.sty 2020-02-25 23:00:24.000000000 +0100
@@ -0,0 +1,85 @@
+%
+% pxtextpos.sty
+% written by Hironobu Yamashita (@aminophen)
+%
+% This package is part of the plautopatch bundle.
+% https://github.com/aminophen/plautopatch
+%
+% This package is expected to be compatible with
+% * textpos.sty
+% 2005/10/13 v1.6a -- 2019/04/15 v1.9.1
+%
+
+%% package declaration
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{pxtextpos}
+ [2019/11/17 v0.2a Patch to textpos for (u)pLaTeX]
+
+%% preparations
+\def\pxtxtpos@pkgname{pxtextpos}
+\def\pxtxtpos@warn{\PackageWarningNoLine\pxtxtpos@pkgname}
+
+%% load it
+\RequirePackageWithOptions{textpos}
+
+%% check if \iftombow ... \fi is available
+\ifx\tombowtrue\@undefined
+ \pxtxtpos@warn{Tombow feature unavailable, aborting}
+ \expandafter\endinput
+\fi
+
+%% known definition
+\def\pxtxtpos@textblockorigin#1#2{%
+ \ifTP@abspos
+ \TP@ox=-1in \addtolength\TP@ox{#1}
+ \TP@oy=-1in \addtolength\TP@oy{#2}
+ \ifTP@chatter\typeout{TextBlockOrigin set to #1 x #2}\fi
+ \else
+ \PackageError{textpos}
+ {The \protect\textblockorigin\space command\MessageBreak
+ may only be used if the package was given\MessageBreak
+ the`absolute' option when it was invoked}
+ {If you want to use the \protect\textblockorigin\space command, then
+ \MessageBreak
+ invoke the package with the syntax\MessageBreak
+ \protect\usepackage[absolute]{textpos}}
+ \fi
+}
+\@onlypreamble\pxtxtpos@textblockorigin
+
+%% redefine it
+\ifx\textblockorigin\pxtxtpos@textblockorigin\else
+ \pxtxtpos@warn{%
+ Command \noexpand\textblockorigin is beyond my knowledge.\MessageBreak
+ I will apply the patch anyway, but it may break:\MessageBreak
+ Please report to the author of `\pxtxtpos@pkgname.sty'}
+\fi
+\def\textblockorigin#1#2{%
+ \ifTP@abspos
+ \TP@ox=-1in \addtolength\TP@ox{#1}
+ \TP@oy=-1in \addtolength\TP@oy{#2}
+ %%% addition
+ \iftombow
+ \addtolength\TP@ox{1in}\addtolength\TP@oy{1in}
+ \fi
+ %%%
+ \ifTP@chatter\typeout{TextBlockOrigin set to #1 x #2}\fi
+ \else
+ \PackageError{textpos}
+ {The \protect\textblockorigin\space command\MessageBreak
+ may only be used if the package was given\MessageBreak
+ the`absolute' option when it was invoked}
+ {If you want to use the \protect\textblockorigin\space command, then
+ \MessageBreak
+ invoke the package with the syntax\MessageBreak
+ \protect\usepackage[absolute]{textpos}}
+ \fi
+}
+
+%% reset
+\ifTP@abspos
+ \textblockorigin{0pt}{0pt}%
+\fi
+
+\endinput
+%% EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/plautopatch.tlpobj new/tlpkg/tlpobj/plautopatch.tlpobj
--- old/tlpkg/tlpobj/plautopatch.tlpobj 2019-02-28 03:59:49.000000000 +0100
+++ new/tlpkg/tlpobj/plautopatch.tlpobj 2020-02-26 01:55:04.000000000 +0100
@@ -1,6 +1,6 @@
name plautopatch
category Package
-revision 49288
+revision 53906
shortdesc Automated patches for pLaTeX/upLaTeX
relocated 1
longdesc Japanese pLaTeX/upLaTeX formats and packages often conflict
@@ -12,7 +12,7 @@
longdesc necessary. This helps not only to simplify source files, but
longdesc also to make the appearance of working pLaTeX/upLaTeX sources
longdesc similar to those of ordinary LaTeX ones.
-runfiles size=9
+runfiles size=11
RELOC/tex/latex/plautopatch/plarydshln.sty
RELOC/tex/latex/plautopatch/plautopatch.sty
RELOC/tex/latex/plautopatch/pldocverb.sty
@@ -21,9 +21,10 @@
RELOC/tex/latex/plautopatch/plsiunitx.sty
RELOC/tex/latex/plautopatch/pxpdfpages.sty
RELOC/tex/latex/plautopatch/pxpgfrcs.sty
+ RELOC/tex/latex/plautopatch/pxstfloats.sty
+ RELOC/tex/latex/plautopatch/pxtextpos.sty
catalogue-contact-repository https://github.com/aminophen/plautopatch
catalogue-ctan /language/japanese/plautopatch
-catalogue-date 2018-11-25 16:57:26 +0100
catalogue-license bsd3
catalogue-topics japanese debug-supp bugfix
-catalogue-version 0.9b
+catalogue-version 0.9e
++++++ playfair.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/playfair/README new/doc/fonts/playfair/README
--- old/doc/fonts/playfair/README 2014-05-24 00:44:57.000000000 +0200
+++ new/doc/fonts/playfair/README 2019-10-16 22:55:15.000000000 +0200
@@ -1,4 +1,4 @@
-This is the README for the playfair package, version 2014-05-23.
+This is the README for the playfair package, version 2019-10-15.
This package provides LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX support
for the PlayFairDisplay family of fonts, designed by Claus Eggers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/playfair.doc.tlpobj new/tlpkg/tlpobj/playfair.doc.tlpobj
--- old/tlpkg/tlpobj/playfair.doc.tlpobj 2019-02-28 03:59:49.000000000 +0100
+++ new/tlpkg/tlpobj/playfair.doc.tlpobj 2020-03-24 02:03:13.000000000 +0100
@@ -1,6 +1,6 @@
name playfair.doc
category Package
-revision 34236
+revision 54512
shortdesc doc files of playfair
relocated 1
docfiles size=30
++++++ playfair.tar.xz ++++++
++++ 6839 lines of diff (skipped)
++++++ plex.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/plex/README new/doc/fonts/plex/README
--- old/doc/fonts/plex/README 2019-01-01 23:21:50.000000000 +0100
+++ new/doc/fonts/plex/README 2019-12-07 23:58:11.000000000 +0100
@@ -1,4 +1,4 @@
-This is the README for the plex package, version 2018-12-31.
+This is the README for the plex package, version 2019-12-06.
This package provides LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX
support for the IBMPlex families of fonts. Serif, Sans,
@@ -35,9 +35,9 @@
Option condensed for plex-sans selects the condensed
versions as the default. Commands \plexsans and
\plexsanscondensed allow for local use of the non-default
-sans family.
+sans family. Command \plexsanslgr activates the LGR encoding.
-Font encodings supported are OT1, T1, LY1 and TS1 (and LGR
+Font encodings supported are OT1, T1, TS1 and LY1 (and LGR
for plex-sans).
The following options select lighter bold fonts:
@@ -46,7 +46,7 @@
mb medium
tx text
-and the following options select lighter regular fonts
+and the following options select lighter regular fonts:
l light
el extralight
Binary files old/doc/fonts/plex/plex-samples.pdf and new/doc/fonts/plex/plex-samples.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/plex/plex-samples.tex new/doc/fonts/plex/plex-samples.tex
--- old/doc/fonts/plex/plex-samples.tex 2018-03-27 23:24:05.000000000 +0200
+++ new/doc/fonts/plex/plex-samples.tex 2019-12-07 23:58:11.000000000 +0100
@@ -1,11 +1,10 @@
\documentclass{article}
-\usepackage[T1]{fontenc}
-\usepackage{plex-serif}
-\usepackage{plex-sans}
+\usepackage[LGR,T1]{fontenc}
+\usepackage[sb]{plex-sans}
+\usepackage[m]{plex-serif}
\usepackage{plex-mono}
\usepackage{lipsum}
\begin{document}
-
\section*{Plex Serif}
\subsection*{Regular}
@@ -28,11 +27,10 @@
1234567890
-
\clearpage
\section*{Plex Sans}
-\sf
+\plexsans
\subsection*{Regular}
\lipsum[1]
@@ -55,11 +53,20 @@
1234567890
+\subsection*{LGR}
+
+{\plexsanslgr\noindent
+ a b g d e z h j i k l m n x o p r s t u f q y w\\
+ A B G D E Z H J I K L M N X O P R S T U F Q Y W\\
+}
+
+
\clearpage
\section*{Plex Sans Condensed}
\plexsanscondensed
+
\subsection*{Regular}
\lipsum[1]
@@ -83,7 +90,7 @@
\clearpage
\section*{Plex Mono}
-\tt
+\ttfamily
\subsection*{Regular}
\lipsum[1]
@@ -105,5 +112,10 @@
1234567890
+\subsection*{Mono Non-Ligatures}
+
+
+Officially broken off. Often offline, find me flowerless.
+
\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/plex.doc.tlpobj new/tlpkg/tlpobj/plex.doc.tlpobj
--- old/tlpkg/tlpobj/plex.doc.tlpobj 2019-02-28 03:59:50.000000000 +0100
+++ new/tlpkg/tlpobj/plex.doc.tlpobj 2020-03-24 02:03:15.000000000 +0100
@@ -1,9 +1,9 @@
name plex.doc
category Package
-revision 49583
+revision 54512
shortdesc doc files of plex
relocated 1
-docfiles size=20
+docfiles size=86
RELOC/doc/fonts/plex/LICENSE.txt
RELOC/doc/fonts/plex/README
RELOC/doc/fonts/plex/plex-samples.pdf
++++++ plex.tar.xz ++++++
/work/SRC/openSUSE:Factory/texlive-specs-s/plex.tar.xz /work/SRC/openSUSE:Factory/.texlive-specs-s.new.3606/plex.tar.xz differ: char 26, line 1
++++++ pm-isomath.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/pm-isomath/README new/doc/latex/pm-isomath/README
--- old/doc/latex/pm-isomath/README 2018-01-21 23:32:31.000000000 +0100
+++ new/doc/latex/pm-isomath/README 1970-01-01 01:00:00.000000000 +0100
@@ -1,63 +0,0 @@
-The PM-ISOmath package, version 1.0.04 of 2018
-Original author: Claudio Beccari, 2017
-LaTeX Project Public Licence LPPL v.1.3c (or later)
-
-The PM-ISOmath name stands for "Poor Man ISO Math". In substance
- this package is a poor man solution to the task of typesetting
- math fulfilling the ISO regulations "for physical sciences and
- technology" (formerly regulations ISO 31/XI, now ISO\,80000).
- These regulations refer mostly to the family, series and shape
- of fonts to be used with symbols of various nature.
-
-This package gets inspiration from the ISOmath package by Günter
- Milde, but tries to get the same results without using any math
- [font] groups (or families). As pdfLaTeX users may recall, this
- typesetting program may see at maximum 16 math [font] groups (or
- math font families); sometimes this number results in an error
- that forbids the user to use the symbols s/he needs.
-
-The trick used in this package consists in employing text fonts
- within the \text command (defined by the amsmath package that,
- therefore, is a dependence to which pm-isomath is subjected) and
- chose text font families, series, and shapes to be used within
- that command argument.
-
-The commands are such as to fulfil some math requirements; for
- example while in the scope of the \boldmath declaration, the
- series is automatically set to bold without any user intervention.
- The font size is automatically taken care by \text, so that fonts
- have the correct size also while typesetting exponents or subscripts.
-
-Nevertheless, through proper advanced command options, the user
- remains the person principally responsible of using the right
- font for the right symbol in a document that must fulfil the
- ISO regulations.
-
-This package is usable only with pdfLaTeX; LuaLaTeX and XeLaTeX
- can access OpenType math fonts through the package unicode-math,
- and with the "math-style=ISO" option they have the math switching
- commands agree with the ISO regulations.
-
-pdfLATeX users have available some packages to fulfil the ISO
- requirements; principally the ISOmath package that is subject
- to a number of limitations due the the particular math environment
- of the user, and libertinust1math that produces a complete set-up
- with math fonts that match very well text fonts that are darker
- than the standard default Computer Modern ones (including the
- CM-super and the Latin Modern ones).
-
-This package works very well with the Latin Modern fonts; in
- practice in math mode it uses the same Latin text fonts, and
- the corresponding families, series, and shapes of the LGR
- encoded CBfonts; it may work also with the CM and the CM-super
- fonts, but the original author never uses them, therefore he
- cannot guarantee any suitable result.
-
-For installation of this package, simply run the pm-isomath.dtx
- through pdfLaTeX (and only pdfLaTeX); move the produced sty file
- to the .../tex/latex/pm-isomath/ folder; if it does not exist,
- create it; similarly move pm-isomath.dtx to .../source/latex/pm-isomath/
- and pm-isomath.pdf to .../doc/latex/pm-isomath/.
-
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/pm-isomath/README.txt new/doc/latex/pm-isomath/README.txt
--- old/doc/latex/pm-isomath/README.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/latex/pm-isomath/README.txt 2020-04-20 00:12:52.000000000 +0200
@@ -0,0 +1,31 @@
+%%
+%% This is file `README.txt',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pm-isomath.dtx (with options: `txt')
+%% ______________________________________________________
+%% The PM-ISOmath bundle
+%% Copyright (C) 2017-2020 Claudio Beccari
+%% All rights reserved
+%%
+%% License information appended
+%%
+\ProvidesFile{README.txt}[%
+
+
+%%
+%%
+%% Distributable under the LaTeX Project Public License,
+%% version 1.3c or higher (your choice). The latest version of
+%% this license is at: http://www.latex-project.org/lppl.txt
+%%
+%% This work is "maintained"
+%%
+%% This work consists of this file pm-isomath.dtx, a README.txt file
+%% and the derived files:
+%% pm-isomath.sty, pm-isomath.pdf.
+%%
+%%
+%% End of file `README.txt'.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/pm-isomath/manifest.txt new/doc/latex/pm-isomath/manifest.txt
--- old/doc/latex/pm-isomath/manifest.txt 2018-01-21 23:32:31.000000000 +0100
+++ new/doc/latex/pm-isomath/manifest.txt 1970-01-01 01:00:00.000000000 +0100
@@ -1,34 +0,0 @@
-This is the manifest.txt file that accompanies the package PM-ISOmath,
-version 1.0.04 of 2018
-
-Original author: Claudio Beccari, 2017-2018
-
-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 http://www.latex-project.org/lppl.txt and
-version 1.3 or later is part of all distributions of LaTeX version
-2003/12/01 or later.
-
-This work itself and every derived work are subject to the above
-licence.
-
-This work has the LPPL maintenance status "author-maintained".
-
-The actual maintainer (2018) is Claudio Beccari:
-claudio dot beccari at gmail dot com
-
-This work consists of the files listed in manifest.txt, that is:
- manifest.txt
- README
- pm-isomath.dtx
-
-The derived files are
- pm-isomath.pdf
- pm-isomath.sty
-
-The pm-isomath.dtx file is a self extracting and self documenting
-one; if you run pdflatex (and only pdflatex) on it you get at the
-same time the English documentation and the package file.
-
-The derived file pm-isomath.sty may be used only with pdflatex.
Binary files old/doc/latex/pm-isomath/pm-isomath.pdf and new/doc/latex/pm-isomath/pm-isomath.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/pm-isomath.doc.tlpobj new/tlpkg/tlpobj/pm-isomath.doc.tlpobj
--- old/tlpkg/tlpobj/pm-isomath.doc.tlpobj 2019-02-28 04:00:00.000000000 +0100
+++ new/tlpkg/tlpobj/pm-isomath.doc.tlpobj 2020-04-20 01:55:53.000000000 +0200
@@ -1,9 +1,8 @@
name pm-isomath.doc
category Package
-revision 46402
+revision 54799
shortdesc doc files of pm-isomath
relocated 1
-docfiles size=147
- RELOC/doc/latex/pm-isomath/README
- RELOC/doc/latex/pm-isomath/manifest.txt
+docfiles size=146
+ RELOC/doc/latex/pm-isomath/README.txt
RELOC/doc/latex/pm-isomath/pm-isomath.pdf
++++++ pm-isomath.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/pm-isomath/pm-isomath.sty new/tex/latex/pm-isomath/pm-isomath.sty
--- old/tex/latex/pm-isomath/pm-isomath.sty 2018-01-21 23:32:31.000000000 +0100
+++ new/tex/latex/pm-isomath/pm-isomath.sty 2020-04-20 00:12:52.000000000 +0200
@@ -7,14 +7,14 @@
%% pm-isomath.dtx (with options: `style')
%% ______________________________________________________
%% The PM-ISOmath bundle
-%% Copyright (C) 2017 Claudio Beccari
+%% Copyright (C) 2017-2020 Claudio Beccari
%% All rights reserved
%%
%% License information appended
%%
\NeedsTeXFormat{LaTeX2e}[2017/01/01]
\ProvidesPackage{pm-isomath}[%
-2018/01/12 v.1.0.04
+2020/04/18 v.1.0.05
Poor man package for typesetting ISO compliant math when using pdfLaTeX]
@@ -138,12 +138,14 @@
\csname mathit \endcsname\fi
\def\ISOsha{it}\expandafter\use@mathgroup
\csname M@OT1\endcsname{9}}
-\newcommand\mathbfit[1]{\MathLatin{#1}{lmr}[bx](it)}
-\newcommand\mathsfit[1]{\MathLatin{#1}{lmss}[m](sl)}
-\newcommand\mathsfbfit[1]{\MathLatin{#1}{lmss}[bx](sl)}
+\AtBeginDocument{%
+\providecommand\mathbfit[1]{\MathLatin{#1}{lmr}[bx](it)}
+\providecommand\mathsfit[1]{\MathLatin{#1}{lmss}[m](sl)}
+\providecommand\mathsfbfit[1]{\MathLatin{#1}{lmss}[bx](sl)}}
+\AtBeginDocument{%
\let\vectorsymbol\mathbfit
\let\matrixsymbol\mathbfit
-\let\tensorsymbol\mathsfbfit
+\let\tensorsymbol\mathsfbfit}
\newcommand\iunit{\MathLatin{i}(n)}
\newcommand\junit{\MathLatin{j}(n)}
\ifengineer
@@ -158,8 +160,8 @@
\providecommand*\diff{}
\renewcommand*\diff{\ensuremath{\mathop{}\!\MathLatin{d}(n)}}
\providecommand*\micro{}
-\renewcommand*\micro{\textormath{\ifcsdef{textmicro}%
-{\textmicro}{\ISOmu(rs)}}{\ISOmu(rs)}}
+\renewcommand*\micro{%
+\textormath{\ifcsdef{textmicro}{\textmicro}{\ISOmu(rs)}}{\ISOmu(rs)}}
\providecommand*\ohm{}
\AtBeginDocument{\@ifpackageloaded{textcomp}{%
\renewcommand*\ohm{\textormath{{\textohm}}{\ISOOmega(n)}}}%
@@ -180,16 +182,15 @@
\fi}
%%
-%% Copyright 2017 Claudio Beccari
%%
%% Distributable under the LaTeX Project Public License,
%% version 1.3c or higher (your choice). The latest version of
%% this license is at: http://www.latex-project.org/lppl.txt
%%
-%% This work is "author-maintained"
+%% This work is "maintained"
%%
-%% This work consists of this file pm-isomath.dtx, a README file
-%% the manifest.txt file, and the derived files:
+%% This work consists of this file pm-isomath.dtx, a README.txt file
+%% and the derived files:
%% pm-isomath.sty, pm-isomath.pdf.
%%
%%
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/pm-isomath.tlpobj new/tlpkg/tlpobj/pm-isomath.tlpobj
--- old/tlpkg/tlpobj/pm-isomath.tlpobj 2019-02-28 04:00:00.000000000 +0100
+++ new/tlpkg/tlpobj/pm-isomath.tlpobj 2020-04-20 01:55:53.000000000 +0200
@@ -1,6 +1,6 @@
name pm-isomath
category Package
-revision 46402
+revision 54799
shortdesc Poor man ISO math for pdfLaTeX users
relocated 1
longdesc This small package realizes a poor man approximation of the ISO
@@ -12,7 +12,6 @@
runfiles size=2
RELOC/tex/latex/pm-isomath/pm-isomath.sty
catalogue-ctan /macros/latex/contrib/pm-isomath
-catalogue-date 2018-01-21 19:26:54 +0100
catalogue-license lppl1.3c
catalogue-topics maths physics
-catalogue-version 1.0.04
+catalogue-version 1.0.05
++++++ pmx.doc.tar.xz ++++++
++++ 12625 lines of diff (skipped)
++++++ pmx.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/scripts/pmx/pmx2pdf.lua new/texmf-dist/scripts/pmx/pmx2pdf.lua
--- old/texmf-dist/scripts/pmx/pmx2pdf.lua 2018-03-05 01:11:40.000000000 +0100
+++ new/texmf-dist/scripts/pmx/pmx2pdf.lua 1970-01-01 01:00:00.000000000 +0100
@@ -1,5 +0,0 @@
-#!/usr/bin/env texlua
-
-print ("The pmx2pdf[.lua] script has been retired; please switch")
-print ("to the musixtex script, which now processes .pmx files.")
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/tex/generic/pmx/pmx.tex new/texmf-dist/tex/generic/pmx/pmx.tex
--- old/texmf-dist/tex/generic/pmx/pmx.tex 2018-03-05 01:11:40.000000000 +0100
+++ new/texmf-dist/tex/generic/pmx/pmx.tex 2020-03-04 00:20:40.000000000 +0100
@@ -4,7 +4,8 @@
%% %%
%%%%%%%%%%%%%%%%%%%%%%%
\ifx\pmxversion\undefined\else\endinput\fi
-\def\pmxversion{2.80}\def\pmxdate{15 Mar 17}
+\def\pmxversion{2.94}\def\pmxdate{23 Jan 20}
+% 2.94 add def'ns of \hbp, \hbpp
% 2.80 add def'n of \slx, real stemlength
% 2.73 4 Feb 16 Fix \pmxclefsym to include \smalltreblelowoct
% 2.73 Added \pmxlyr command.
@@ -765,8 +766,10 @@
% 160103 back to 3 args
%
\def\mbgap{\qsk\hqsk}%
+\def\mbrhgt{9}%
\def\mbrest#1#2#3{%
-\CenterBar{\ccn{9}{\meterfont#1}}{#2}{#3}%
+%\CenterBar{\ccn{9}{\meterfont#1}}{#2}{#3}%
+\CenterBar{\ccn{\mbrhgt}{\meterfont#1}}{#2}{#3}%
\CenterBar{%
\ifcase #1%
\relax%
@@ -850,7 +853,17 @@
%
\def\lk{\lyrlink}%
\def\at#1{\lyrraisehere{#1\internote}}%
-
+%
+% 190526 Items for short line enhancements
+%
+\let\wbnt\writebarno
+\def\nobarno{\gdef\writebarno{\global\let\writebarno\wbnt}}
+%
+% 200123 Open headed dotted chord notes
+%
+\def\hbp{\h@symbol\@qbp}%
+\def\hbpp{\h@symbol\@qbpp}%
+%
\catcode`\@=\catcodeat
\endinput
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/pmx.tlpobj new/tlpkg/tlpobj/pmx.tlpobj
--- old/tlpkg/tlpobj/pmx.tlpobj 2019-02-28 04:00:00.000000000 +0100
+++ new/tlpkg/tlpobj/pmx.tlpobj 2020-03-23 01:56:28.000000000 +0100
@@ -1,6 +1,6 @@
name pmx
category Package
-revision 46823
+revision 54488
shortdesc Preprocessor for MusiXTeX
longdesc PMX provides a preprocessor for MusiXTeX. pmxab builds a TeX
longdesc input file based on a .pmx input file in a much simpler
@@ -10,12 +10,10 @@
longdesc proof-listening, pmxab will make a MIDI file of your score.
longdesc scor2prt is an auxiliary program that makes parts from a score.
depend pmx.ARCH
-runfiles size=9
- texmf-dist/scripts/pmx/pmx2pdf.lua
+runfiles size=8
texmf-dist/tex/generic/pmx/pmx.tex
catalogue-contact-home http://icking-music-archive.org/software/indexmt6.html
catalogue-ctan /support/pmx
-catalogue-date 2018-02-13 05:43:04 +0100
catalogue-license gpl2
catalogue-topics music
-catalogue-version 2.84
+catalogue-version 2.94
++++++ poemscol.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/poemscol/README new/doc/latex/poemscol/README
--- old/doc/latex/poemscol/README 2015-06-30 23:27:12.000000000 +0200
+++ new/doc/latex/poemscol/README 2019-08-03 23:57:48.000000000 +0200
@@ -1,6 +1,6 @@
POEMSCOL.STY
-(c) John Burt 2015
-Released under the LaTeX public license
+(c) John Burt 2002-2019
+Released under the LaTeX public license 1.3c
poemscol.sty is a set of LaTeX macros for typesetting critical editions of
poetry. Its features include automatic linenumbering, generation of
Binary files old/doc/latex/poemscol/poemscol.pdf and new/doc/latex/poemscol/poemscol.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/poemscol.doc.tlpobj new/tlpkg/tlpobj/poemscol.doc.tlpobj
--- old/tlpkg/tlpobj/poemscol.doc.tlpobj 2019-02-28 04:00:06.000000000 +0100
+++ new/tlpkg/tlpobj/poemscol.doc.tlpobj 2019-10-30 01:55:55.000000000 +0100
@@ -1,9 +1,9 @@
name poemscol.doc
category Package
-revision 46433
+revision 52574
shortdesc doc files of poemscol
relocated 1
-docfiles size=177
+docfiles size=191
RELOC/doc/latex/poemscol/README
RELOC/doc/latex/poemscol/poemscol.pdf
RELOC/doc/latex/poemscol/poemscolcheatsheet.pdf
++++++ poemscol.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/poemscol/poemscol.sty new/tex/latex/poemscol/poemscol.sty
--- old/tex/latex/poemscol/poemscol.sty 2018-01-24 22:51:12.000000000 +0100
+++ new/tex/latex/poemscol/poemscol.sty 2019-10-29 22:24:43.000000000 +0100
@@ -22,7 +22,7 @@
%% in the same archive or directory.)
\NeedsTeXFormat{LaTeX2e}[1997/12/01]
\ProvidesPackage{poemscol}
- [2018/01/11 v2.98 poemscol file]
+ [2019/10/29 v3.141 poemscol file]
%|\prosexyznote|
%%
@@ -89,17 +89,124 @@
\newcommand{\notessequenceclubpenalty}{\penalty-1500}
\newcommand{\notesvolumetitlepenalty}{\penalty-1500}
\hfuzz=2pt
-\newcommand{\verseindent}{\hspace{2em}}
+\newlength{\verseindentamount}
+\setlength{\verseindentamount}{2em}
+\newcount\l@@pcounter
+\newcommand{\repeatedindent}[1]{\l@@pcounter=#1%
+\loop%
+\ifnum\l@@pcounter>0%
+\hspace{\verseindentamount}%
+\advance \l@@pcounter -1
+\repeat}
+\newcommand{\verseindent}[1][]{%
+\ifthenelse{\equal{#1}{}}{\hspace{\verseindentamount}}{\repeatedindent{#1}}}
+\newlength{\indentedstanzaamount}
+\setlength{\indentedstanzaamount}{\verseindentamount}
+\newlength{\variablestanzaamount}
+\setlength{\variablestanzaamount}{\indentedstanzaamount}
+\newcommand{\adjustst@nzaindent}[1]{\l@@pcounter=#1%
+\loop%
+ \addtolength{\variablestanzaamount}{\indentedstanzaamount}%
+ \advance \l@@pcounter -1%
+\ifnum \l@@pcounter>0
+\repeat}
+\newif\ifinindentedverse
+\newenvironment{indentedverse}[1][]{%
+\inindentedversetrue%
+\ifthenelse{\equal{#1}{}}{\relax}{\adjustst@nzaindent{#1}}%
+\let\\=\@centercr%
+\list{}{\itemsep\z@ \itemindent -\runoverindentvalue\listparindent \itemindent
+\rightmargin 0sp\leftmargin 0sp\advance\leftmargin
+\variablestanzaamount}\item[]}
+{\endlist\inindentedversefalse\setlength{\variablestanzaamount}{\indentedstanzaamount}}
\setlength{\columnsep}{15pt}
-\newdimen\titleindentamount \titleindentamount=1pc
-\newdimen\titleindenttwoamount \titleindenttwoamount=2pc
-\newdimen\titleindentthreeamount \titleindentthreeamount=3pc
+\newlength{\titleindentamount}
+\setlength{\titleindentamount}{1pc}
+\newlength{\titleindenttwoamount}
+\setlength{\titleindenttwoamount}{2pc}
+\newlength{\titleindentthreeamount}
+\setlength{\titleindentthreeamount}{3pc}
\newcommand{\titleindent}{\hspace{\titleindentamount}}
-\setlength{\parindent}{\titleindentamount}
-\newcommand{\afterpoemtitleskip}{\smallskip}
-\newcommand{\afterpoemskip}{\bigskip}
-\newcommand{\aftersequencetitleskip}{\medskip}
-\newcommand{\stanzaskip}{\medskip}
+\setlength{\parindent}{1pc}
+\newlength{\volumetitleindentamount}
+\setlength{\volumetitleindentamount}{0pt}
+\newcommand{\volumetitleindent}{\relax}
+\newlength{\volumetitlesecondlineindentamount}
+\setlength{\volumetitlesecondlineindentamount}{0pt}
+\newcommand{\volumetitlesecondlineindent}{\relax}
+\newlength{\volumesubtitleindentamount}
+\setlength{\volumesubtitleindentamount}{\titleindentamount}
+\newcommand{\volumesubtitleindent}{\hspace{\volumesubtitleindentamount}}
+\newlength{\volumesubtitlesecondlineindentamount}
+\setlength{\volumesubtitlesecondlineindentamount}{\titleindentamount}
+\newcommand{\volumesubtitlesecondlineindent}{\hspace{\volumesubtitlesecondlineindentamount}}
+\newlength{\volumesectiontitleindentamount}
+\setlength{\volumesectiontitleindentamount}{0pt}
+\newcommand{\volumesectiontitleindent}{\relax}
+\newlength{\volumesectiontitlesecondlineindentamount}
+\setlength{\volumesectiontitlesecondlineindentamount}{0pt}
+\newcommand{\volumesectiontitlesecondlineindent}{\relax}
+\newlength{\poemtitleindentamount}
+\setlength{\poemtitleindentamount}{0pt}
+\newcommand{\poemtitleindent}{\relax}
+\newlength{\poemtitlesecondlineindentamount}
+\setlength{\poemtitlesecondlineindentamount}{0pt}
+\newcommand{\poemtitlesecondlineindent}{\relax}
+\newlength{\poemsubtitleindentamount}
+\setlength{\poemsubtitleindentamount}{\titleindentamount}
+\newcommand{\poemsubtitleindent}{\hspace{\poemsubtitleindentamount}}
+\newlength{\poemsectiontitleindentamount}
+\setlength{\poemsectiontitleindentamount}{\titleindentamount}
+\newcommand{\poemsectiontitleindent}{\hspace{\poemsectiontitleindentamount}}
+\newlength{\poemsectiontitlesecondlineindentamount}
+\setlength{\poemsectiontitlesecondlineindentamount}{\titleindentamount}
+\newcommand{\poemsectiontitlesecondlineindent}{\hspace{\poemsectiontitlesecondlineindentamount}}
+\newlength{\poemsubsectiontitleindentamount}
+\setlength{\poemsubsectiontitleindentamount}{\titleindenttwoamount}
+\newcommand{\poemsubsectiontitleindent}{\hspace{\poemsectiontitleindentamount}}
+\newlength{\sequencetitleindentamount}
+\setlength{\sequencetitleindentamount}{0pt}
+\newcommand{\sequencetitleindent}{\relax}
+\newlength{\sequencetitlesecondlineindentamount}
+\setlength{\sequencetitlesecondlineindentamount}{0pt}
+\newcommand{\sequencetitlesecondlineindent}{\hspace{\relax}}
+\newlength{\sequencesubtitleindentamount}
+\setlength{\sequencesubtitleindentamount}{\titleindentamount}
+\newcommand{\sequencesubtitleindent}{\hspace{\sequencesubtitleindentamount}}
+\newlength{\sequencesubtitlesecondlineindentamount}
+\setlength{\sequencesubtitlesecondlineindentamount}{\titleindentamount}
+\newcommand{\sequencesubtitlesecondlineindent}{\hspace{\sequencesubtitlesecondlineindentamount}}
+\newlength{\sequencesectiontitleindentamount}
+\setlength{\sequencesectiontitleindentamount}{\titleindentamount}
+\newcommand{\sequencesectiontitleindent}{\hspace{\sequencesectiontitleindentamount}}
+\newlength{\sequencesectiontitlesecondlineindentamount}
+\setlength{\sequencesectiontitlesecondlineindentamount}{\titleindentamount}
+\newcommand{\sequencesectiontitlesecondlineindent}{\hspace{\sequencesectiontitlesecondlineindentamount}}
+\newlength{\sequencesectionsubtitleindentamount}
+\setlength{\sequencesectionsubtitleindentamount}{\titleindenttwoamount}
+\newcommand{\sequencesectionsubtitleindent}{\hspace{\sequencesectionsubtitleindentamount}}
+\newlength{\sequencesectionsubtitlesecondlineindentamount}
+\setlength{\sequencesectionsubtitlesecondlineindentamount}{\titleindenttwoamount}
+\newcommand{\sequencesectionsubtitlesecondlineindent}{\hspace{\sequencesectionsubtitlesecondlineindentamount}}
+\newlength{\sequencesubsectiontitleindentamount}
+\setlength{\sequencesubsectiontitleindentamount}{\titleindenttwoamount}
+\newcommand{\sequencesubsectiontitleindent}{\hspace{\sequencesubsectiontitleindentamount}}
+\newlength{\sequencesubsubsectiontitleindentamount}
+\setlength{\sequencesubsubsectiontitleindentamount}{\titleindentthreeamount}
+\newcommand{\sequencesubsubsectiontitleindent}{\hspace{\sequencesubsubsectiontitleindentamount}}
+\newlength{\appendixtitleindentamount}
+\setlength{\appendixtitleindentamount}{0pt}
+\newcommand{\appendixtitleindent}{\relax}
+\newlength{\subappendixtitleindentamount}
+\setlength{\subappendixtitleindentamount}{0pt}
+\newcommand{\subappendixtitleindent}{\relax}
+\newlength{\forewordtitleindentamount}
+\setlength{\forewordtitleindentamount}{0pt}
+\newcommand{\forewordtitleindent}{\relax}
+\newlength{\notestitleindentamount}
+\setlength{\notestitleindentamount}{0pt}
+\newcommand{\notestitleindent}{\relax}
+
\newdimen\volumetitleshiftamount \volumetitleshiftamount=1pc
\newcommand{\volumetitleshift}{\hbox{\hspace{\volumetitleshiftamount}}}
\newdimen\voladditionalamount \voladditionalamount=2pc
@@ -113,10 +220,130 @@
\newcommand{\contentsindentfour}{\hspace{\contentsindentfouramount}}
\newdimen\contentsindentfiveamount \contentsindentfiveamount=80pt
\newcommand{\contentsindentfive}{\hspace{\contentsindentfiveamount}}
+\newlength{\contentsvolumetitleindentamount}
+\setlength{\contentsvolumetitleindentamount}{0pt}
+\newcommand{\contentsvolumetitleindent}{\relax}
+\newlength{\contentsvolumetitlesecondlineindentamount}
+\setlength{\contentsvolumetitlesecondlineindentamount}{0pt}
+\newcommand{\contentsvolumetitlesecondlineindent}{\relax}
+\newlength{\contentsvolumesubtitleindentamount}
+\setlength{\contentsvolumesubtitleindentamount}{\titleindentamount}
+\newcommand{\contentsvolumesubtitleindent}{\hspace{\contentsvolumesubtitleindentamount}}
+\newlength{\contentsvolumesubtitlesecondlineindentamount}
+\setlength{\contentsvolumesubtitlesecondlineindentamount}{\titleindentamount}
+\newcommand{\contentsvolumesubtitlesecondlineindent}{\hspace{\contentsvolumesubtitlesecondlineindentamount}}
+\newlength{\contentsvolumesectiontitleindentamount}
+\setlength{\contentsvolumesectiontitleindentamount}{0pt}
+\newcommand{\contentsvolumesectiontitleindent}{\hspace{\contentsvolumesectiontitleindentamount}}
+\newlength{\contentsvolumesectiontitlesecondlineindentamount}
+\setlength{\contentsvolumesectiontitlesecondlineindentamount}{0pt}
+\newcommand{\contentsvolumesectiontitlesecondlineindent}{\hspace{\contentsvolumesectiontitlesecondlineindentamount}}
+\newlength{\contentspoemtitleindentamount}
+\setlength{\contentspoemtitleindentamount}{\contentsindentoneamount}
+\newcommand{\contentspoemtitleindent}{\hspace{\contentspoemtitleindentamount}}
+\newlength{\contentspoemtitlesecondlineindentamount}
+\setlength{\contentspoemtitlesecondlineindentamount}{\contentspoemtitleindentamount}
+\newcommand{\contentspoemtitlesecondlineindent}{\hspace{\contentspoemtitlesecondlineindentamount}}
+\newlength{\contentspoemsubtitleindentamount}
+\setlength{\contentspoemsubtitleindentamount}{\contentspoemsubtitleindentamount}
+\newcommand{\contentspoemsubtitleindent}{\hspace{\contentspoemsubtitleindentamount}}
+\newlength{\contentspoemsectiontitleindentamount}
+\setlength{\contentspoemsectiontitleindentamount}{\contentsindenttwoamount}
+\newcommand{\contentspoemsectiontitleindent}{\hspace{\contentspoemsectiontitleindentamount}}
+\newlength{\contentspoemsectiontitlesecondlineindentamount}
+\setlength{\contentspoemsectiontitlesecondlineindentamount}{\contentspoemsectiontitleindentamount}
+\newcommand{\contentspoemsectiontitlesecondlineindent}{\hspace{\contentspoemsectiontitlesecondlineindentamount}}
+\newlength{\contentspoemsubsectiontitleindentamount}
+\setlength{\contentspoemsubsectiontitleindentamount}{\contentsindentthreeamount}
+\newcommand{\contentspoemsubsectiontitleindent}{\hspace{\contentsindentthreeamount}}
+\newlength{\contentssequencetitleindentamount}
+\setlength{\contentssequencetitleindentamount}{\contentsindentoneamount} %313
+ \newcommand{\contentssequencetitleindent}{\hspace{\contentssequencetitleindentamount}}
+\newlength{\contentssequencetitlesecondlineindentamount}
+\setlength{\contentssequencetitlesecondlineindentamount}{\contentsindentoneamount} %313
+ \newcommand{\contentssequencetitlesecondlineindent}{\hspace{\contentssequencetitlesecondlineindentamount}}
+\newlength{\contentssequencesubtitleindentamount}
+\setlength{\contentssequencesubtitleindentamount}{\contentsindenttwoamount} %313
+\newcommand{\contentssequencesubtitleindent}{\hspace{\contentssequencesubtitleindentamount}}
+\newlength{\contentssequencesubtitlesecondlineindentamount}
+\setlength{\contentssequencesubtitlesecondlineindentamount}{\contentsindenttwoamount} %313
+\newcommand{\contentssequencesubtitlesecondlineindent}{\hspace{\contentssequencesubtitlesecondlineindentamount}}
+\newlength{\contentssequencesectiontitleindentamount}
+\setlength{\contentssequencesectiontitleindentamount}{\contentsindenttwoamount} %313
+\newcommand{\contentssequencesectiontitleindent}{\hspace{\contentssequencesectiontitleindentamount}}
+\newlength{\contentssequencesectiontitlesecondlineindentamount}
+\setlength{\contentssequencesectiontitlesecondlineindentamount}{\contentsindenttwoamount} %313
+\newcommand{\contentssequencesectiontitlesecondlineindent}{\hspace{\contentssequencesectiontitlesecondlineindentamount}}
+\newlength{\contentssequencesectionsubtitleindentamount}
+\setlength{\contentssequencesectionsubtitleindentamount}{\contentsindentthreeamount} %313
+\newcommand{\contentssequencesectionsubtitleindent}{\hspace{\contentssequencesectionsubtitleindentamount}}
+\newlength{\contentssequencesectionsubtitlesecondlineindentamount}
+\setlength{\contentssequencesectionsubtitlesecondlineindentamount}{\contentsindentthreeamount}%313
+\newcommand{\contentssequencesectionsubtitlesecondlineindent}{\hspace{\contentssequencesectionsubtitlesecondlineindentamount}}
+\newlength{\contentssequencesubsectiontitleindentamount}
+\setlength{\contentssequencesubsectiontitleindentamount}{\contentsindentthreeamount}
+\newcommand{\contentssequencesubsectiontitleindent}{\hspace{\contentssequencesubsectiontitleindentamount}}
+\newlength{\contentssequencesubsubsectiontitleindentamount}
+\setlength{\contentssequencesubsubsectiontitleindentamount}{\contentsindentfouramount}
+\newcommand{\contentssequencesubsubsectiontitleindent}{\hspace{\contentssequencesubsubsectiontitleindentamount}}
+
+\newcommand{\afterpoemtitleskip}{\smallskip}
+\newcommand{\afterpoemskip}{\bigskip}
+\newcommand{\aftersequencetitleskip}{\medskip}
+\newcommand{\stanzaskip}{\medskip}
\newcommand{\poemtitlepenalty}{\penalty-1000}
\newcommand{\multilinetitlepenalty}{\penalty-3000}
\newcommand{\sequencetitlepenalty}{\penalty-3000}
\newcommand{\multilinesequencepenalty}{\penalty-3500}
+\newlength{\poemtitlewidth}
+\newif\iftitlescenteredonleftverseblock
+\newif\iftitlesatleftmarginofcenteredblock
+\newif\iftitlesatleftversemargin
+\newif\ifnormaltitleindentation
+\newcommand{\normaltitleindentationscheme}{%
+\normaltitleindentationtrue%
+\titlesatleftversemarginfalse%
+\titlescenteredonleftverseblockfalse%
+\titlesatleftmarginofcenteredblockfalse%
+\centertitlesonfalse%
+}
+\newcommand{\titlesatleftversemarginscheme}{%
+\normaltitleindentationfalse%
+\titlesatleftversemargintrue%
+\titlescenteredonleftverseblockfalse%
+\titlesatleftmarginofcenteredblockfalse%
+\centertitlesonfalse%
+}
+\newcommand{\titlescenteredonleftverseblockscheme}{%
+\normaltitleindentationfalse%
+\titlesatleftversemarginfalse%
+\titlescenteredonleftverseblocktrue%
+\titlesatleftmarginofcenteredblockfalse%
+\centertitlesonfalse%
+}
+\newcommand{\titlesatleftmarginofcenteredblockscheme}{%
+\normaltitleindentationfalse%
+\titlesatleftversemarginfalse%
+\titlescenteredonleftverseblockfalse%
+\titlesatleftmarginofcenteredblocktrue%
+\centertitlesonfalse%
+}
+\newcommand{\centertitlesscheme}{%
+\normaltitleindentationfalse%
+\titlesatleftversemarginfalse%
+\titlescenteredonleftverseblockfalse%
+\titlesatleftmarginofcenteredblockfalse%
+\centertitlesontrue%
+\centerepigraphsontrue%
+}
+\newlength{\lefttitleaddition}
+\setlength{\lefttitleaddition}{0pt}
+\newcommand{\l@ftc@ntertitleblock}{\rightmargin \z@%%
+\setlength{\lefttitleaddition}{\versewidth}%
+\addtolength{\lefttitleaddition}{-\poemtitlewidth}%
+\addtolength{\lefttitleaddition}{-0.5\lefttitleaddition}%
+\setlength{\lefttitlemargin}{\lefttitleaddition}%
+}
\def\makeatletter{\catcode`\@=11}
\def\makeatother{\catcode`\@=12 }
@@ -369,10 +596,21 @@
\let\\=\@centercr%
\list{}{\topsep\z@%
\partopsep\z@%
-\itemsep\z@ \itemindent -\titleentryoverrun\listparindent \itemindent
- \rightmargin 1sp\leftmargin 1sp\advance\leftmargin
- \titleentryoverrun}\item[]}{\endlist}
+\itemsep\z@ \itemindent -\titleentryoverrun%
+\listparindent \itemindent %
+\iftitlesatleftmarginofcenteredblock%
+\left@ligntitleblock%
+\rightmargin \z@\leftmargin \lefttitlemargin%
+\else%
+\iftitlescenteredonleftverseblock
+\l@ftc@ntertitleblock
+\rightmargin \z@\leftmargin \lefttitlemargin
+\else
+\rightmargin \z@\leftmargin \z@%
+\fi\fi%
+\advance\leftmargin \titleentryoverrun}\item[]}{\endlist}
\newlength{\versewidth}
+\setlength{\versewidth}{\linewidth}% default length for \versewidth
\newenvironment{poem}[1][\linewidth]
{\raggedright%
\language=255%no hyphenation in verse
@@ -632,14 +870,14 @@
\newcommand{\setendnotessectiontitledefaults}[6]{%
#2%
#3 \begin{titleentryenvironment}%
-{\ifcentertitleson\begin{center}#4 #1\end{center}\else #4 #1\fi}%
+{\ifcentertitleson\begin{center}#1\end{center}\else #4 #1\fi}%
\end{titleentryenvironment}%
#5%
\label{#6}
}
-\newcommand{\setendnotessectiontitle}[2]{
-\setendnotessectiontitledefaults{#1}{\poemtitlepenalty\backmattersink\begin{center}}{\backmatterheaderfont}
-{\relax}{\end{center}\lefthyphenmin=2\backmatterafterheadersink}{#2}}
+\newcommand{\setendnotessectiontitle}[2]{%
+\setendnotessectiontitledefaults{#1}{\poemtitlepenalty\backmattersink}{\backmatterheaderfont}
+{\notestitleindent}{\lefthyphenmin=2\backmatterafterheadersink}{#2}}
\newcommand{\contentsendnotesdefaults}[4]{\ifpoemcontentson
\immediate\write\poemcontents{\string\begin\string{contentsentryenvironment\string}}%
\literalcontents{#2{#3#1}}%
@@ -777,21 +1015,104 @@
\newcommand{\@poempagetotextnotes}[1]{%
\immediate\write\textnotes{\string\par\string\argpageref\string{#1\string}\string\unskip}%
\@pagemarktotextnotes{#1}}
-\newcommand{\@poemtitletotextnotes}[1]{\literaltextnote{\textbf{#1}}}
+\newcommand{\@poemtitletotextnotes}[1]{%
+\ifputpagenumberinnotes%
+\literaltextnote{\textbf{#1}}%
+\else%
+\literaltextnote{\par}\literaltextnote{\textbf{#1}}%
+\fi}
+\newif\ifappendixincontents
+\appendixincontentstrue
+\newif\ifforewordincontents
+\forewordincontentstrue
+\newcommand{\appendixdividerpage}[1]{\flushbottom{\par\clearpage
+ {\pagestyle{volumetitlestyle}\cleardoublepage}
+\thispagestyle{volumetitlestyle}}
+\fancyhead{}
+\fancyfoot{}
+\fancyhead[RO,LE]{\small\textrm{\thepage}}
+\fancyhead[CO]{\small{\em #1}}
+\fancyhead[CE]{#1}
+\fancyfoot[C]{}}
+\newcommand{\appendixtitle}[1]{
+\setendnotessectiontitledefaults{#1}{\poemtitlepenalty\backmattersink}{\backmatterheaderfont}
+{\appendixtitleindent}{\lefthyphenmin=2\backmatterafterheadersink}{appdx#1}
+\tolerance=500\language=0
+\normalfont \backmattertextfont
+\setlength{\parindent}{\noteindentation}
+\ifappendixincontents\contentsendnotestitle{#1}{appdx#1}\fi
+}
+\newcommand{\makeappendix}[1]{%
+\appendixdividerpage{#1}
+\appendixtitle{#1}
+}
+\newcommand{\contentsendnotessubtitle}[2]{
+\contentsendnotesdefaults{#1}{\contentsindenttwo}{\contentsendnotesfont}{#2}
+}
+\newcommand{\subappendixtitle}[1]{%
+\setendnotessectiontitledefaults{#1}{\poemtitlepenalty\backmattersink}{\backmatterheaderfont}
+{\subappendixtitleindent}{\lefthyphenmin=2\backmatterafterheadersink}{appdx#1}
+\tolerance=500\language=0
+\normalfont \backmattertextfont
+\setlength{\parindent}{\noteindentation}
+\ifappendixincontents\contentsendnotessubtitle{#1}{appdx#1}\fi
+}
+\newcommand{\makesubappendix}[1]{%
+\appendixdividerpage{#1}
+\subappendixtitle{#1}
+}
+\newcommand{\foreworddividerpage}[1]{\flushbottom{\par\clearpage
+ {\pagestyle{volumetitlestyle}\cleardoublepage}
+\thispagestyle{volumetitlestyle}}
+\fancyhead{}
+\fancyfoot{}
+\fancyhead[RO,LE]{\small\textrm{\thepage}}
+\fancyhead[CO]{\small{\em #1}}
+\fancyhead[CE]{#1}
+\fancyfoot[C]{}}
+\newcommand{\forewordtitle}[1]{
+\setendnotessectiontitledefaults{#1}{\poemtitlepenalty\backmattersink}{\backmatterheaderfont}
+{\forewordtitleindent}{\lefthyphenmin=2\backmatterafterheadersink}{foreword#1}
+\tolerance=500\language=0
+\normalfont \backmattertextfont
+\setlength{\parindent}{\noteindentation}
+\ifforewordincontents\contentsendnotestitle{#1}{foreword#1}\fi
+}
+\newcommand{\makeforeword}[1]{%
+\foreworddividerpage{#1}
+\forewordtitle{#1}
+}
+\newcommand{\pmclcontentsentrydefaults}[4]{
+\ifpoemcontentson
+\immediate\write\poemcontents{\string\begin\string{contentsentryenvironment\string}}%
+\literalcontents{#2{#3#1}}%
+ \ifputpagenumberincontents
+\immediate\write\poemcontents{\string\contentsleaders}%
+\literalcontents{#4}
+ \else
+ \literalcontents{\relax}%
+ \fi
+\immediate\write\poemcontents{\string\end\string{contentsentryenvironment\string}}%
+\immediate\write\poemcontents{\string\par}%
+\fi
+}
+\newcommand{\pmclcontentsentry}[3]{%
+\pmclcontentsentrydefaults{#1}{#2}{\contentsendnotesfont}{#3}%
+}
\newcommand{\wholebooktitle}[1]{{\Huge\begin{center}
\hbox{#1}\end{center}}
}
\newcommand{\booksection}[1]{\volumesection{#1}}
\newcommand{\volumetitle}[1]{%
\set@p@emtitle{#1}{\volumetitlesink\par}{\volumetitlefont}
- {\relax}{\nobreak\par\nobreak}{\z@}
+ {\volumetitleindent}{\nobreak\par\nobreak}{\z@}
\putpagenumberincontentsfalse
\putpagenumberinnotesfalse
- \literalcontents{\goodbreak}
- \c@ntentsinfo{#1}{\relax}{\contentsvolumefont}
- {\contentsindentoneamount}
- \literalcontents{\vspace{5pt}\par\nobreak}
+ \literalcontents{\par\goodbreak\bigskip}
+ \c@ntentsinfo{#1}{\contentsvolumetitleindent}{\contentsvolumefont}
+ {\contentsvolumetitleindentamount}
+ \literalcontents{\par\goodbreak\medskip}
\literaltextnote{\notesvolumetitlepenalty\bigskip\goodbreak\par}
\t@xtnotesinfo{\backmattervolumefont #1 \backmattertextfont\nobreak}
\putpagenumberincontentstrue
@@ -799,42 +1120,45 @@
\newcommand{\volumetitlefirstline}[1]{\firstlinesettings%
\set@p@emtitle{#1}{\volumetitlesink\par}
{\volumetitlefont}
- {\relax}{\nobreak\par\nobreak}{\z@}
+ {\volumetitleindent}{\nobreak\par\nobreak}{\z@}
\putpagenumberincontentsfalse
\putpagenumberinnotesfalse
- \c@ntentsinfo{#1}{\relax}{\contentsvolumefont}
- {\contentsindentoneamount}
+\literalcontents{\par\goodbreak\bigskip}
+ \c@ntentsinfo{#1}{\contentsvolumetitleindent}{\contentsvolumefont}
+ {\contentsvolumetitleindentamount}
+ \literalcontents{\medskip\par\nobreak}
\t@xtnotesinfo{\backmattervolumefont #1 \backmattertextfont\nobreak}
\putpagenumberincontentstrue
\putpagenumberinnotestrue}
\newcommand{\volumetitlemiddleline}[1]{\middlelinesettings%
\set@p@emtitle{#1}{\relax}
{\volumetitlefont}
- {\relax}{\nobreak\par\nobreak}{\z@}
+ {\volumetitlesecondlineindent}{\nobreak\par\nobreak}{\z@}
\putpagenumberincontentsfalse
\putpagenumberinnotesfalse
- \c@ntentsinfo{#1}{\contentsindentone}{\contentsvolumefont}
- {\contentsindenttwoamount}
+ \c@ntentsinfo{#1}{\contentsvolumetitleindent}{\contentsvolumefont}
+ {\contentsvolumetitleindentamount}
+ \literalcontents{\medskip\par\nobreak}
\t@xtnotesinfo{\backmattervolumefont #1 \backmattertextfont\nobreak}
\putpagenumberincontentstrue
\putpagenumberinnotestrue}
\newcommand{\volumetitlelastline}[1]{\lastlinesettings%
\set@p@emtitle{#1}{\relax}
{\volumetitlefont}
- {\relax}{\nobreak\par\nobreak}{\z@}
+ {\volumetitlesecondlineindent}{\nobreak\par\nobreak}{\z@}
\putpagenumberincontentsfalse
\putpagenumberinnotesfalse
- \c@ntentsinfo{#1}{\contentsindentone}{\contentsvolumefont}
- {\contentsindenttwoamount}
- \literalcontents{\vspace{5pt}\par\nobreak}
+ \c@ntentsinfo{#1}{\contentsvolumetitleindent}{\contentsvolumefont}
+ {\contentsvolumetitleindentamount}
+ \literalcontents{\medskip\par\nobreak}
\t@xtnotesinfo{\backmattervolumefont #1 \backmattertextfont\nobreak}
\putpagenumberincontentstrue
\putpagenumberinnotestrue}
\newcommand{\volumesubtitle}[1]{{\volumesubtitlefont
-\volumetitleshift #1 \par}
+\volumetitleshift \volumesubtitleindent #1 \par}
\ifpoemcontentson
- \literalcontents{{\contentsvolumesubtitlefont
-#1\vspace{3pt}\par\nobreak}}
+ \literalcontents{{\contentsvolumesubtitlefont\contentsvolumesubtitleindent
+#1\par\medskip\nobreak}}
\fi
\iftextnoteson\iftextnotesatend
\immediate\write\textnotes{\string\backmattervolumesubtitlefont\ #1}
@@ -842,12 +1166,101 @@
\immediate\write\textnotes{\string\nobreak}
\fi\fi
}
-\newcommand{\volumesectiontitle}[1]
-{\clearpage\thispagestyle{volumefirststyle}
-\begin{center} {\volumesubtitlefont\textbf{#1}}
-\end{center} \bigskip\bigskip
+\newcommand{\volumesubtitlefirstline}[1]{{\firstlinesettings\volumesubtitlefont
+\volumetitleshift \volumesubtitlesecondlineindent #1 \par}
\ifpoemcontentson
- \literalcontents{\goodbreak{\contentsvolumesubtitlefont #1\par\nobreak}}
+ \literalcontents{{\contentsvolumesubtitlefont\contentsvolumesubtitleindent
+#1\par\nobreak}}
+ \fi
+ \iftextnoteson\iftextnotesatend
+ \immediate\write\textnotes{\string\backmattervolumesubtitlefont\ #1}
+ \immediate\write\textnotes{\string\par \string\backmattertextfont}
+ \immediate\write\textnotes{\string\nobreak}
+ \fi\fi
+}
+\newcommand{\volumesubtitlemiddleline}[1]{{\middlelinesettings\volumesubtitlefont
+\volumesubtitlesecondlineindent #1 \par}
+ \ifpoemcontentson
+ \literalcontents{{\contentsvolumesubtitlefont\contentsvolumesubtitleindent
+#1\par\nobreak}}
+ \fi
+ \iftextnoteson\iftextnotesatend
+ \immediate\write\textnotes{\string\backmattervolumesubtitlefont\ #1}
+ \immediate\write\textnotes{\string\par \string\backmattertextfont}
+ \immediate\write\textnotes{\string\nobreak}
+ \fi\fi
+}
+\newcommand{\volumesubtitlelastline}[1]{{\lastlinesettings\volumesubtitlefont
+\volumesubtitlesecondlineindent #1 \par}
+ \ifpoemcontentson
+ \literalcontents{{\contentsvolumesubtitlefont\contentsvolumesubtitleindent
+#1\par\medskip\nobreak}}
+ \fi
+ \iftextnoteson\iftextnotesatend
+ \immediate\write\textnotes{\string\backmattervolumesubtitlefont\ #1}
+ \immediate\write\textnotes{\string\par \string\backmattertextfont}
+ \immediate\write\textnotes{\string\nobreak}
+ \fi\fi
+}
+\newcommand{\volumesectiontitle}[1]{\clearpage\thispagestyle{volumefirststyle}
+\ifcentertitleson\begin{center} {\volumesubtitlefont\textbf{#1}}
+\end{center}
+\else \volumesectiontitleindent {\volumesubtitlefont\textbf{#1}}
+\fi\bigskip\bigskip
+ \ifpoemcontentson
+ \literalcontents{\goodbreak{\ifcentertitleson\contentsvolumesubtitlefont #1\par\nobreak\else
+ \contentsvolumesectiontitleindent #1 \par\nobreak\fi}}
+ \fi
+ \iftextnoteson\iftextnotesatend
+ \immediate\write\textnotes{\string\notesvolumetitlepenalty}
+ \immediate\write\textnotes{\string\par \string\begin{bf}}
+ \immediate\write\textnotes{#1 \string\end{bf}}
+ \immediate\write\textnotes{\string\par}
+ \immediate\write\textnotes{\string\nobreak}
+ \fi\fi
+}
+\newcommand{\volumesectiontitlefirstline}[1]{\firstlinesettings\clearpage\thispagestyle{volumefirststyle}
+\ifcentertitleson\begin{center} {\volumesubtitlefont\textbf{#1}}
+\end{center}
+\else \volumesectiontitleindent {\volumesubtitlefont\textbf{#1}\par}
+\fi% \bigskip\bigskip
+ \ifpoemcontentson
+ \literalcontents{\goodbreak{\ifcentertitleson\contentsvolumesubtitlefont #1\par\nobreak\else
+ \contentsvolumesectiontitleindent #1 \par\nobreak\fi}}
+ \fi
+ \iftextnoteson\iftextnotesatend
+ \immediate\write\textnotes{\string\notesvolumetitlepenalty}
+ \immediate\write\textnotes{\string\par \string\begin{bf}}
+ \immediate\write\textnotes{#1 \string\end{bf}}
+ \immediate\write\textnotes{\string\par}
+ \immediate\write\textnotes{\string\nobreak}
+ \fi\fi
+}
+\newcommand{\volumesectiontitlemiddleline}[1]{\middlelinesettings
+\ifcentertitleson\begin{center} {\volumesubtitlefont\textbf{#1}}
+\end{center}
+\else \volumesectiontitleindent {\volumesubtitlefont\textbf{#1}\par}
+\fi% \bigskip\bigskip
+ \ifpoemcontentson
+ \literalcontents{\goodbreak{\ifcentertitleson\contentsvolumesubtitlefont #1\par\nobreak\else
+ \contentsvolumesectiontitleindent #1 \par\nobreak\fi}}
+ \fi
+ \iftextnoteson\iftextnotesatend
+ \immediate\write\textnotes{\string\notesvolumetitlepenalty}
+ \immediate\write\textnotes{\string\par \string\begin{bf}}
+ \immediate\write\textnotes{#1 \string\end{bf}}
+ \immediate\write\textnotes{\string\par}
+ \immediate\write\textnotes{\string\nobreak}
+ \fi\fi
+}
+\newcommand{\volumesectiontitlelastline}[1]{\lastlinesettings
+\ifcentertitleson\begin{center} {\volumesubtitlefont\textbf{#1}}
+\end{center}
+\else \volumesectiontitleindent {\volumesubtitlefont\textbf{#1}}
+\fi\bigskip\bigskip
+ \ifpoemcontentson
+ \literalcontents{\goodbreak{\ifcentertitleson\contentsvolumesubtitlefont #1\par\nobreak\else
+ \contentsvolumesectiontitleindent #1 \par\nobreak\fi}}
\fi
\iftextnoteson\iftextnotesatend
\immediate\write\textnotes{\string\notesvolumetitlepenalty}
@@ -898,15 +1311,31 @@
\newif\ifcentertitleson
\newcommand{\centertitles}{\centertitlesontrue\centerepigraphsontrue}
\makeatletter
-\newcommand{\set@p@emtitle}[6]{\setlength{\titleentryoverrun}{#6}%
+\newcommand{\set@p@emtitle}[6]{\iftitlesatleftversemargin%
+{\begin{pmclverse}\addtolength{\leftmargin}{-\leftmargini}{#2 #3 #4 #1 #5} \end{pmclverse}}%
+\else%
+\setlength{\titleentryoverrun}{#6}%
{#2}%
{#3 \begin{titleentryenvironment}%
-{\ifcentertitleson\begin{center}#4 #1\end{center}\else #4 #1\fi}%
+{{\ifnormaltitleindentation #4 #1%
+\else \ifcentertitleson \begin{center} #1 \end{center} \else #1\fi\fi}}%
\end{titleentryenvironment}}%
{#5}%
\m@kep@emlabel
\m@ken@teholder{#1}%
-\setlength{\titleentryoverrun}{\z@}}
+\setlength{\titleentryoverrun}{\z@}\fi}
+%%% special version for subtitles
+\newcommand{\set@p@emsubtitle}[6]{\iftitlesatleftversemargin%
+{\begin{pmclverse}\addtolength{\leftmargin}{-\leftmargini}{#2 #3 #4 #1 #5} \end{pmclverse}}%
+\else%
+\setlength{\titleentryoverrun}{#6}%
+{#2}%
+{#3 \begin{titleentryenvironment}%
+{{\ifnormaltitleindentation #4 #1%
+\else \ifcentertitleson \begin{center} #1 \end{center} \else #1\fi\fi}}%
+\end{titleentryenvironment}}%
+{#5}%
+\setlength{\titleentryoverrun}{\z@}\fi}
\newcommand{\setcontentsleaders}[1]{%
\def\contentsleaders{#1\nobreak%
}}
@@ -941,25 +1370,34 @@
\fi
\fi\fi
}
+\newlength{\lefttitlemargin}
+\newcommand{\leftaligntitlespace}{\hspace{\lefttitlemargin}}
+\newif\ifleftaligntitles % title flush with left margin of centered poem
+\leftaligntitlesfalse % default value
+\newcommand{\left@ligntitleblock}{\rightmargin \z@%%
+ \setlength{\lefttitlemargin}{\linewidth}%
+ \addtolength{\lefttitlemargin}{-\versewidth}%
+ \addtolength{\lefttitlemargin}{-0.5\lefttitlemargin}
+}
\newcommand{\poemtitle}[1]{%
\set@p@emtitle{#1}{\poemtitlepenalty}{\poemtitlefont}%
-{\relax}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
-\c@ntentsinfo{#1}{\contentsindentone}{\contentspoemtitlefont}%
-{\contentsindenttwoamount}%
+{\poemtitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
+\c@ntentsinfo{#1}{\contentspoemtitleindent}{\contentspoemtitlefont}%
+{\contentspoemtitleindentamount}%
\t@xtnotesinfo{#1}%
}
\newcommand{\poemtitlenocontents}[1]{%
\set@p@emtitle{#1}{\poemtitlepenalty}{\poemtitlefont}%
-{\relax}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
+{\poemtitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
\t@xtnotesinfo{#1}%
}
\newcommand{\poemtitlebaretitle}[1]{%
-\set@p@emtitle{#1}{\poemtitlepenalty}{\poemtitlefont}%
-{\relax}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
+\set@p@emsubtitle{#1}{\poemtitlepenalty}{\poemtitlefont}%
+{\poemtitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
}
\newcommand{\poemtitleonlycontents}[1]{%
-\c@ntentsinfo{#1}{\contentsindentone}{\contentspoemtitlefont}%
-{\contentsindenttwoamount}%
+\c@ntentsinfo{#1}{\contentspoemtitleindent}{\contentspoemtitlefont}%
+{\contentspoemtitleindentamount}%
}
\newcommand{\poemtitleonlynotes}[1]{%
\m@kep@emlabel
@@ -968,9 +1406,9 @@
}
\newcommand{\poemtitlenonotes}[1]{%
\set@p@emtitle{#1}{\poemtitlepenalty}{\poemtitlefont}%
-{\relax}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
-\c@ntentsinfo{#1}{\contentsindentone}{\contentspoemtitlefont}%
-{\contentsindenttwoamount}%
+{\poemtitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
+\c@ntentsinfo{#1}{\contentspoemtitleindent}{\contentspoemtitlefont}%
+{\contentspoemtitleindentamount}%
}
\newcommand{\poemtitleitalic}[2]{%
\poemtitle{#1}}
@@ -999,9 +1437,9 @@
\newcommand{\poemtitlefirstline}[1]{
\firstlinesettings
\set@p@emtitle{#1}{\multilinetitlepenalty}{\poemtitlefont}%
-{\relax}{\nobreak\par\nobreak}{\z@}%
-\c@ntentsinfo{#1}{\contentsindentone}{\contentspoemtitlefont}%
-{\contentsindenttwoamount}%
+{\poemtitleindent}{\nobreak\par\nobreak}{\z@}%
+\c@ntentsinfo{#1}{\contentspoemtitleindent}{\contentspoemtitlefont}%
+{\contentspoemtitleindentamount}%
\t@xtnotesinfo{#1}%
\restoresinglelinesettings
}
@@ -1009,54 +1447,54 @@
\newcommand{\poemtitlemiddleline}[1]{%
\middlelinesettings
\set@p@emtitle{#1}{\par\nobreak}{\poemtitlefont}%
-{\relax}{\nobreak\par\nobreak}{\z@}%
-\c@ntentsinfo{#1}{\contentsindenttwo}{\contentspoemtitlefont}%
-{\contentsindentthreeamount}%
+{\poemtitlesecondlineindent}{\nobreak\par\nobreak}{\z@}%
+\c@ntentsinfo{#1}{\contentspoemtitlesecondlineindent}{\contentspoemtitlefont}%
+{\contentspoemtitlesecondlineindentamount}%
\t@xtnotesinfo{#1}%
\restoresinglelinesettings
}
\newcommand{\poemtitlelastline}[1]{%
\lastlinesettings
\set@p@emtitle{#1}{\par\nobreak}{\poemtitlefont}%
-{\relax}{\nobreak\par\afterpoemtitleskip\nobreak}{\z@}%
-\c@ntentsinfo{#1}{\contentsindenttwo}{\contentspoemtitlefont}%
-{\contentsindentthreeamount}%
+{\poemtitlesecondlineindent}{\nobreak\par\afterpoemtitleskip\nobreak}{\z@}%
+\c@ntentsinfo{#1}{\contentspoemtitlesecondlineindent}{\contentspoemtitlefont}%
+{\contentspoemtitlesecondlineindentamount}%
\t@xtnotesinfo{#1}%
\restoresinglelinesettings
}
\newcommand{\poemsectiontitle}[1]{%
\set@p@emtitle{#1}{\poemtitlepenalty}{\subsectiontitlefont}%
-{\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}%
+{\poemsectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}%
{\titleindentamount}%
-\c@ntentsinfo{#1}{\contentsindenttwo}{\contentspoemtitlefont}%
-{\contentsindentthreeamount}%
+\c@ntentsinfo{#1}{\contentspoemsectiontitleindent}{\contentspoemtitlefont}%
+{\contentspoemsectiontitleindentamount}%
\t@xtnotesinfo{#1}%
}
\newcommand{\poemsectiontitlefirstline}[1]{%
\firstlinesettings
\set@p@emtitle{#1}{\multilinetitlepenalty}{\subsectiontitlefont}%
-{\titleindent}{\nobreak\par\nobreak}{\titleindentamount}%
-\c@ntentsinfo{#1}{\contentsindenttwo}{\contentspoemtitlefont}%
-{\contentsindentthreeamount}%
+{\poemsectiontitleindent}{\nobreak\par\nobreak}{\poemsectiontitleindentamount}%
+\c@ntentsinfo{#1}{\contentspoemsectiontitleindent}{\contentspoemtitlefont}%
+{\contentspoemsectiontitleindentamount}%
\t@xtnotesinfo{#1}%
\restoresinglelinesettings
}
\newcommand{\poemsectiontitlemiddleline}[1]{%
\middlelinesettings
\set@p@emtitle{#1}{\relax}{\subsectiontitlefont}%
-{\titleindent}{\nobreak\par\nobreak}{\titleindentamount}%
-\c@ntentsinfo{#1}{\contentsindentthree}{\contentspoemtitlefont}%
-{\contentsindentfouramount}%
+{\poemsectiontitlesecondlineindent}{\nobreak\par\nobreak}{\poemsectiontitlesecondlineindentamount}%
+\c@ntentsinfo{#1}{\contentspoemsectiontitlesecondlineindent}{\contentspoemtitlefont}%
+{\contentspoemsectiontitlesecondlineindentamount}%
\t@xtnotesinfo{#1}%
\restoresinglelinesettings
}
\newcommand{\poemsectiontitlelastline}[1]{%
\lastlinesettings
\set@p@emtitle{#1}{\par\nobreak}{\subsectiontitlefont}%
-{\titleindent}{\nobreak\par\afterpoemtitleskip\nobreak}%
-{\titleindentamount}%
-\c@ntentsinfo{#1}{\contentsindentthree}{\contentspoemtitlefont}%
-{\contentsindentfouramount}%
+{\poemsectiontitlesecondlineindent}{\nobreak\par\afterpoemtitleskip\nobreak}%
+{\poemsectiontitlesecondlineindentamount}%
+\c@ntentsinfo{#1}{\contentspoemsectiontitlesecondlineindent}{\contentspoemtitlefont}%
+{\contentspoemsectiontitlesecondlineindentamount}%
\t@xtnotesinfo{#1}%
\restoresinglelinesettings
}
@@ -1064,16 +1502,16 @@
\sequencesubsectiontitlenocontents{#1}}%
\newcommand{\poemfirstsectiontitle}[1]{%
\set@p@emtitle{#1}{\par\nobreak}{\subsectiontitlefont}%
-{\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}%
-{\titleindentamount}%
-\c@ntentsinfo{#1}{\contentsindenttwo}{\contentspoemtitlefont}%
-{\contentsindentthreeamount}%
+{\poemsectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}%
+{\poemsectiontitleindentamount}%
+\c@ntentsinfo{#1}{\contentspoemsectiontitleindent}{\contentspoemtitlefont}%
+{\contentspoemsectiontitleindentamount}%
\t@xtnotesinfo{#1}%
}
\newcommand{\poemfirstsectiontitlebaretitle}[1]{%
\set@p@emtitle{#1}{\par\nobreak}{\subsectiontitlefont}%
-{\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}%
-{\titleindentamount}}
+{\poemsectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}%
+{\poemsectiontitleindentamount}}
\newcommand{\poemsectiontitlebaretitle}[1]{%
\set@p@emtitle{#1}{\poemtitlepenalty}{\subsectiontitlefont}%
{\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}%
@@ -1081,16 +1519,16 @@
}
\newcommand{\poemsubsectiontitle}[1]{%
\set@p@emtitle{#1}{\poemtitlepenalty}{\subsectiontitlefont}%
-{\titleindent\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}%
-{\titleindenttwoamount}%
-\c@ntentsinfo{#1}{\contentsindentthree}{\contentspoemtitlefont}%
-{\contentsindentfouramount}%
+{\poemsubsectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}%
+{\poemsubsectiontitleindentamount}%
+\c@ntentsinfo{#1}{\contentspoemsubsectiontitleindent}{\contentspoemtitlefont}%
+{\contentspoemsubsectiontitleindentamount}%
\t@xtnotesinfo{#1}%
}
\newcommand{\poemtitlenotitle}[1]{%
\m@kep@emlabel
\m@ken@teholder{#1}%
-\c@ntentsinfo{#1}{\contentsindentone}{\contentspoemtitlefont}%
+\c@ntentsinfo{#1}{\contentspoemtitleindent}{\contentspoemtitlefont}%
{\contentsindenttwoamount}%
\t@xtnotesinfo{#1}%
}
@@ -1098,10 +1536,10 @@
\poemtitlenotitle{1}}
\newcommand{\sequencetitle}[1]{
\set@p@emtitle{#1}{\sequencetitlepenalty}{\sequencetitlefont}
-{\relax}{\nobreak\par\nobreak\aftersequencetitleskip\nobreak}{\z@}
+{\sequencetitleindent}{\nobreak\par\nobreak\aftersequencetitleskip\nobreak}{\z@}
\putpagenumberincontentsfalse
-\c@ntentsinfo{#1}{\contentsindentone}{\contentssequencetitlefont}
-{\contentsindenttwoamount}
+\c@ntentsinfo{#1}{\contentssequencetitleindent}{\contentssequencetitlefont}
+{\contentssequencetitleindentamount}
\putpagenumberincontentstrue
\t@xtnotesinfo{#1}
}
@@ -1109,106 +1547,133 @@
\newcommand{\sequencetitlefirstline}[1]{
\firstlinesettings
\set@p@emtitle{#1}{\multilinesequencepenalty}{\sequencetitlefont}
-{\relax}{\nobreak\par\nobreak}{\z@}
-\c@ntentsinfo{#1}{\contentsindentone}{\contentssequencetitlefont}
-{\contentsindenttwoamount}
+{\sequencetitleindent}{\nobreak\par\nobreak}{\z@}
+\c@ntentsinfo{#1}{\contentssequencetitleindent}{\contentssequencetitlefont}
+{\contentssequencetitleindentamount}
\t@xtnotesinfo{#1}
\restoresinglelinesettings
}
\newcommand{\sequencetitlemiddleline}[1]{
\middlelinesettings
\set@p@emtitle{#1}{\par\nobreak}{\sequencetitlefont}
-{\relax}{\nobreak\par\nobreak}{\z@}
-\c@ntentsinfo{#1}{\contentsindenttwo}{\contentssequencetitlefont}
-{\contentsindentthreeamount}
+{\sequencetitleindent}{\nobreak\par\nobreak}{\z@}
+\c@ntentsinfo{#1}{\contentssequencetitlesecondlineindent}{\contentssequencetitlefont}
+{\contentssequencetitlesecondlineindentamount}
\t@xtnotesinfo{#1}
\restoresinglelinesettings
}
\newcommand{\sequencetitlelastline}[1]{
\lastlinesettings
\set@p@emtitle{#1}{\par\nobreak}{\sequencetitlefont}
-{\relax}{\nobreak\par\aftersequencetitleskip\nobreak}{\z@}
+{\sequencetitleindent}{\nobreak\par\aftersequencetitleskip\nobreak}{\z@}
+\c@ntentsinfo{#1}{\contentssequencetitlesecondlineindent}{\contentssequencetitlefont}
+{\contentssequencetitlesecondlineindent}
+\t@xtnotesinfo{#1}
+\restoresinglelinesettings
+}
+\newcommand{\sequencesubtitle}[1]{
+\set@p@emsubtitle{#1}{\par\nobreak}{\sequencetitlefont}
+{\sequencesubtitleindent}{\nobreak\par\aftersequencetitleskip\nobreak}{\z@}
+\c@ntentsinfo{#1}{\contentssequencesubtitleindent}{\contentssequencetitlefont}
+{\contentssequencesubtitleindentamount}
+}
+\newcommand{\sequencesubtitlefirstline}[1]{\firstlinesettings
+\set@p@emsubtitle{#1}{\par\nobreak}{\sequencetitlefont}
+{\sequencesubtitleindent}{\nobreak\par\aftersequencetitleskip\nobreak}{\z@}
\c@ntentsinfo{#1}{\contentsindenttwo}{\contentssequencetitlefont}
{\contentsindentthreeamount}
-\t@xtnotesinfo{#1}
+\restoresinglelinesettings
+}
+\newcommand{\sequencesubtitlemiddleline}[1]{\middlelinesettings
+\set@p@emsubtitle{#1}{\par\nobreak}{\sequencetitlefont}
+{\sequencesubtitlesecondlineindent}{\nobreak\par\aftersequencetitleskip\nobreak}{\z@}
+\c@ntentsinfo{#1}{\contentssequencesubtitlesecondlineindent}{\contentssequencetitlefont}
+{\contentssequencesubtitlesecondlineindentamount}
+\restoresinglelinesettings
+}
+\newcommand{\sequencesubtitlelastline}[1]{\lastlinesettings
+\set@p@emsubtitle{#1}{\par\nobreak}{\sequencetitlefont}
+{\sequencesubtitlesecondlineindent}{\nobreak\par\aftersequencetitleskip\nobreak}{\z@}
+\c@ntentsinfo{#1}{\contentssequencesubtitlesecondlineindent}{\contentssequencetitlefont}
+{\contentssequencesubtitlesecondlineindentamount}
\restoresinglelinesettings
}
\newcommand{\sequencesectiontitle}[1]{
\set@p@emtitle{#1}{\poemtitlepenalty}{\poemtitlefont}
-{\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
-{\titleindentamount}
-\c@ntentsinfo{#1}{\contentsindenttwo}{\contentspoemtitlefont}
-{\contentsindentthreeamount}
+{\sequencesectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
+{\sequencesectiontitleindentamount}
+\c@ntentsinfo{#1}{\contentssequencesectiontitleindent}{\contentspoemtitlefont}
+{\contentssequencesectiontitleindentamount}
\t@xtnotesinfo{#1}
}
\newcommand{\sequencefirstsectiontitle}[1]{
\set@p@emtitle{#1}{\par\nobreak\afterpoemtitleskip}{\poemtitlefont}
-{\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
-{\titleindentamount}
-\c@ntentsinfo{#1}{\contentsindenttwo}{\contentspoemtitlefont}
-{\contentsindentthreeamount}
+{\sequencesectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
+{\sequencesectiontitleindentamount}
+\c@ntentsinfo{#1}{\contentssequencesectiontitleindent}{\contentspoemtitlefont}
+{\contentssequencesectiontitleindentamount}
\t@xtnotesinfo{#1}
}
\newcommand{\sequencetitlenonotes}[1]{
\set@p@emtitle{#1}{\par\nobreak}{\sequencetitlefont}
-{\relax}{\nobreak\par\aftersequencetitleskip\nobreak}{\z@}
-\c@ntentsinfo{#1}{\contentsindenttwo}{\contentssequencetitlefont}
-{\contentsindentthreeamount}
+{\sequencetitleindent}{\nobreak\par\aftersequencetitleskip\nobreak}{\sequencetitleindentamount}
+\c@ntentsinfo{#1}{\contentssequencetitleindent}{\contentssequencetitlefont}
+{\contentssequencetitleindentamount}
}
\newcommand{\sequencesectiontitlenonotes}[1]{
\set@p@emtitle{#1}{\poemtitlepenalty}{\poemtitlefont}
-{\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
-{\titleindentamount}
-\c@ntentsinfo{#1}{\contentsindenttwo}{\contentspoemtitlefont}
-{\contentsindentthreeamount}
+{\sequencesectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
+{\sequencesectiontitleindentamount}
+\c@ntentsinfo{#1}{\contentssequencesectiontitleindent}{\contentspoemtitlefont}
+{\contentssequencesectiontitleindentamount}
}
\newcommand{\sequencesectiontitlefirstline}[1]{
\firstlinesettings
\set@p@emtitle{#1}{\multilinetitlepenalty}{\poemtitlefont}
-{\titleindent}{\nobreak\par\nobreak}{\titleindentamount}
-\c@ntentsinfo{#1}{\contentsindenttwo}{\contentspoemtitlefont}
-{\contentsindentthreeamount}
+{\sequencesectiontitleindent}{\nobreak\par\nobreak}{\sequencesectiontitleindentamount}
+\c@ntentsinfo{#1}{\contentssequencesectiontitleindent}{\contentspoemtitlefont}
+{\contentssequencesectiontitleindentamount}
\t@xtnotesinfo{#1}
\restoresinglelinesettings
}
\newcommand{\sequencesectiontitlemiddleline}[1]{
\middlelinesettings
\set@p@emtitle{#1}{\par\nobreak}{\poemtitlefont}
-{\titleindent}{\nobreak\par\nobreak}{\titleindentamount}
-\c@ntentsinfo{#1}{\contentsindentthree}{\contentspoemtitlefont}
-{\contentsindentfouramount}
+{\sequencesectiontitleindent}{\nobreak\par\nobreak}{\sequencesectiontitleindentamount}
+\c@ntentsinfo{#1}{\contentssequencesectiontitlesecondlineindent}{\contentspoemtitlefont}
+{\contentssequencesectiontitlesecondlineindentamount}
\t@xtnotesinfo{#1}
\restoresinglelinesettings
}
\newcommand{\sequencesectiontitlelastline}[1]{
\lastlinesettings
\set@p@emtitle{#1}{\par\nobreak}{\poemtitlefont}
-{\titleindent}{\nobreak\par\afterpoemtitleskip\nobreak}{\titleindentamount}
-\c@ntentsinfo{#1}{\contentsindentthree}{\contentspoemtitlefont}
-{\contentsindentfouramount}
+{\sequencesectiontitleindent}{\nobreak\par\afterpoemtitleskip\nobreak}{\sequencesectiontitleindentamount}
+\c@ntentsinfo{#1}{\contentssequencesectiontitlesecondlineindent}{\contentspoemtitlefont}
+{\contentssequencesectiontitlesecondlineindentamount}
\t@xtnotesinfo{#1}
\restoresinglelinesettings
}
\newcommand{\sequencefirstsectiontitlenocontents}[2]{
\set@p@emtitle{#1}{\par\nobreak\afterpoemtitleskip}{\poemtitlefont}
-{\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
-{\titleindentamount}
+{\sequencesectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
+{\sequencesectiontitleindentamount}
\t@xtnotesinfo{#1}
}
\newcommand{\sequencesectiontitlenocontents}[2]{
\set@p@emtitle{#1}{\poemtitlepenalty}{\poemtitlefont}
-{\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
-{\titleindentamount}
+{\sequencesectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
+{\sequencesectiontitleindentamount}
\t@xtnotesinfo{#1}
}
\newcommand{\sequencefirstsectiontitlefirstline}[1]{
\firstlinesettings
\set@p@emtitle{#1}{\par\nobreak\afterpoemtitleskip}{\poemtitlefont}
-{\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
-{\titleindentamount}
-\c@ntentsinfo{#1}{\contentsindenttwo}{\contentspoemtitlefont}
-{\contentsindentthreeamount}
+{\sequencesectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
+{\sequencesectiontitleindentamount}
+\c@ntentsinfo{#1}{\contentssequencesectiontitleindent}{\contentspoemtitlefont}
+{\contentssequencesectiontitleindentamount}
\t@xtnotesinfo{#1}
\restoresinglelinesettings
}
@@ -1220,16 +1685,32 @@
\newcommand{\sequencefirstsectiontitlenonotes}[1]{
\set@p@emtitle{#1}{\par\nobreak\afterpoemtitleskip}{\poemtitlefont}
-{\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
-{\titleindentamount}
-\c@ntentsinfo{#1}{\contentsindenttwo}{\contentspoemtitlefont}
-{\contentsindentthreeamount}
+{\sequencesectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
+{\sequencesectiontitleindentamount}
+\c@ntentsinfo{#1}{\contentssequencesectiontitleindent}{\contentspoemtitlefont}
+{\contentssequencesectiontitleindentamount}
}
-\newcommand{\sequencesectionsubtitle}[1]{\set@p@emtitle{#1}{\par\nobreak\afterpoemtitleskip}
-{\subsectiontitlefont}{\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\titleindentamount}
+\newcommand{\sequencesectionsubtitle}[1]{\set@p@emsubtitle{#1}{\par\nobreak\afterpoemtitleskip}
+{\subsectiontitlefont}{\sequencesectionsubtitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\sequencesectionsubtitleindentamount}
+}
+\newcommand{\sequencesectionsubtitlefirstline}[1]{\firstlinesettings
+\set@p@emsubtitle{#1}{\par\nobreak\afterpoemtitleskip}
+{\subsectiontitlefont}{\sequencesectionsubtitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\sequencesectionsubtitleindentamount}
+\restoresinglelinesettings
}
-\newcommand{\poemsubtitle}[1]{\sequencesectionsubtitle{#1}
+\newcommand{\sequencesectionsubtitlemiddleline}[1]{\middlelinesettings
+\set@p@emsubtitle{#1}{\par\nobreak\afterpoemtitleskip}
+{\subsectiontitlefont}{\sequencesectionsubtitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\sequencesectionsubtitleindentamount}
+\restoresinglelinesettings
+}
+\newcommand{\sequencesectionsubtitlelastline}[1]{\lastlinesettings
+\set@p@emsubtitle{#1}{\par\nobreak\afterpoemtitleskip}
+{\subsectiontitlefont}{\sequencesectionsubtitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\sequencesectionsubtitleindentamount}
+\restoresinglelinesettings
+}
+\newcommand{\poemsubtitle}[1]{\set@p@emsubtitle{#1}{\par\nobreak\afterpoemtitleskip}
+{\subsectiontitlefont}{\poemsubtitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\titleindentamount}
}
\newcommand{\sequencesectiontitleitalicnonotes}[2]
{\sequencesectiontitlenonotes{#1}
@@ -1246,88 +1727,86 @@
\newcommand{\sequencesubsectiontitle}[1]{
\set@p@emtitle{#1}{\poemtitlepenalty}{\subsectiontitlefont}
-{\titleindent\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
-{\titleindenttwoamount}
-\c@ntentsinfo{#1}{\contentsindentthree}{\contentspoemtitlefont}
-{\contentsindentfouramount}
+{\sequencesubsectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
+{\sequencesubsectiontitleindentamount}
+\c@ntentsinfo{#1}{\contentssequencesubsectiontitleindent}{\contentspoemtitlefont}
+{\contentssequencesubsectiontitleindentamount}
\t@xtnotesinfo{#1}
}
\newcommand{\sequencesubsectiontitlenocontents}[1]{
\set@p@emtitle{#1}{\poemtitlepenalty}{\subsectiontitlefont}
-{\titleindent\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
-{\titleindenttwoamount}
+{\sequencesubsectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
+{\sequencesubsectiontitleindentamount}
\t@xtnotesinfo{#1}
}
\newcommand{\sequencefirstsubsectiontitle}[1]
{\set@p@emtitle{#1}{\par\nobreak}{\subsectiontitlefont}
-{\titleindent\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
-{\titleindenttwoamount}
-\c@ntentsinfo{#1}{\contentsindentthree}{\contentspoemtitlefont}
-{\contentsindentfouramount}
+{\sequencesubsectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
+{\sequencesubsectiontitleindentamount}
+\c@ntentsinfo{#1}{\contentssequencesubsectiontitleindent}{\contentspoemtitlefont}
+{\contentssequencesubsectiontitleindentamount}
\t@xtnotesinfo{#1}
}
\newcommand{\sequencefirstsubsectiontitlenocontents}[1]
{\set@p@emtitle{#1}{\par\nobreak}{\subsectiontitlefont}
-{\titleindent\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
-{\titleindenttwoamount}
+{\sequencesubsectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
+{\sequencesubsectiontitleindentamount}
\t@xtnotesinfo{#1}
}
\newcommand{\sequencesubsectiontitlefirstline}[1]{
\firstlinesettings
\set@p@emtitle{#1}{\multilinetitlepenalty}{\subsectiontitlefont}
-{\titleindent\titleindent}{\nobreak\par\nobreak}{\titleindenttwoamount}
-\c@ntentsinfo{#1}{\contentsindentthree}{\contentspoemtitlefont}
-{\contentsindentfouramount}
+{\sequencesubsectiontitleindent}{\nobreak\par\nobreak}{\sequencesubsectiontitleindentamount}
+\c@ntentsinfo{#1}{\contentssequencesubsectiontitleindent}{\contentspoemtitlefont}
+{\contentssequencesubsectiontitleindentamount}
\t@xtnotesinfo{#1}
\restoresinglelinesettings
}
\newcommand{\sequencesubsectiontitlemiddleline}[1]{
\middlelinesettings
\set@p@emtitle{#1}{\nobreak}{\subsectiontitlefont}
-{\titleindent\titleindent}{\nobreak\par\nobreak}{\titleindenttwoamount}
-\c@ntentsinfo{#1}{\contentsindentfour}{\contentspoemtitlefont}
-{\contentsindentfiveamount}
+{\sequencesubsectiontitlesecondlineindent}{\nobreak\par\nobreak}{\sequencesubsectiontitlesecondlineindentamount}
+\c@ntentsinfo{#1}{\contentssequencesubsectiontitlesecondlineindent}{\contentspoemtitlefont}
+{\contentssequencesubsectiontitlesecondlineindentamount}
\t@xtnotesinfo{#1}
\restoresinglelinesettings
}
\newcommand{\sequencesubsectiontitlelastline}[1]{
\lastlinesettings
\set@p@emtitle{#1}{\nobreak}{\subsectiontitlefont}
-{\titleindent\titleindent}{\nobreak\par\afterpoemtitleskip\nobreak}
-{\titleindenttwoamount}
-\c@ntentsinfo{#1}{\contentsindentfour}{\contentspoemtitlefont}
-{\contentsindentfiveamount}
+{\sequencesubsectiontitleindent}{\nobreak\par\afterpoemtitleskip\nobreak}
+{\sequencesubsectiontitleindentamount}
+\c@ntentsinfo{#1}{\contentssequencesubsectiontitlesecondlineindent}{\contentspoemtitlefont}
+{\contentssequencesubsectiontitlesecondlineindentamount}
\t@xtnotesinfo{#1}
\restoresinglelinesettings
}
\newcommand{\sequencesubsubsectiontitle}[1]{
\set@p@emtitle{#1}{\poemtitlepenalty}{\subsectiontitlefont}
-{\titleindent\titleindent\titleindent}
+{\sequencesubsubsectiontitleindent}
{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
-{\titleindentthreeamount}
-\c@ntentsinfo{#1}{\contentsindentfour}{\contentspoemtitlefont}
-{\contentsindentfiveamount}
+{\sequencesubsubsectiontitleindentamount}
\t@xtnotesinfo{#1}
}
\newcommand{\sequencesubsubsectiontitlenocontents}[1]{
\set@p@emtitle{#1}{\poemtitlepenalty}{\subsectiontitlefont}
-{\titleindent\titleindent\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
-{\titleindentthreeamount}
+{\sequencesubsubsectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
+{\sequencesubsubsectiontitleindentamount}
\t@xtnotesinfo{#1}
}
\newcommand{\sequencefirstsubsubsectiontitlenocontents}[1]{
\set@p@emtitle{#1}{\nobreak\par\nobreak}{\subsectiontitlefont}
-{\titleindent\titleindent\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
-{\titleindentthreeamount}
+{\sequencesubsubsectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}
+{\sequencesubsubsectiontitleindentamount}
\t@xtnotesinfo{#1}
}
\newcommand{\sequencefirstsubsectiontitlefirstline}[1]{
\firstlinesettings
\set@p@emtitle{#1}{\par\nobreak}{\subsectiontitlefont}
-{\titleindent\titleindent}{\nobreak\par\nobreak}{\titleindenttwoamount}
-\c@ntentsinfo{#1}{\contentsindentthree}{\contentspoemtitlefont}
-{\contentsindentfouramount}
+{\sequencesubsectiontitleindent}{\nobreak\par\nobreak}{\sequencesubsectiontitleindentamount}
+\c@ntentsinfo{#1}{\contentssequencesubsectiontitleindent}{\contentspoemtitlefont}
+{\contentssequencesubsectiontitleindent}
\t@xtnotesinfo{#1}
\restoresinglelinesettings
}
@@ -1353,10 +1832,17 @@
\m@kep@emlabel%
\m@ken@teholder{#1}%
\setlength{\titleentryoverrun}{\z@}}
-
+%% subtitle version
+\newcommand{\set@margp@emsubtitle}[7]{\setlength{\titleentryoverrun}{#6}%
+{#2}%
+{#3 \begin{titleentryenvironment}%
+{\ifcentertitleson\begin{center}#4 #1 #7\end{center}\else #4 #1
+#7\fi}\end{titleentryenvironment}}%
+{#5}%
+\setlength{\titleentryoverrun}{\z@}}
\newcommand{\setmargpoemtitle}[2]{%
\set@margp@emtitle{#1}{\poemtitlepenalty}{\poemtitlefont}%
-{\relax}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}{#2}%
+{\sequencetitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}{#2}%
\c@ntentsinfo{#1}{\contentsindentone}{\contentspoemtitlefont}%
{\contentsindenttwoamount}%
\t@xtnotesinfo{#1}%
@@ -1364,19 +1850,19 @@
}
\newcommand{\JHpoemtitle}[2]{%
\set@margp@emtitle{#1}{\poemtitlepenalty}{\poemtitlefont}%
-{\relax}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
+{\sequencetitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
{\JHlabel{#2}}%
-\c@ntentsinfo{#1}{\contentsindentone}{\contentspoemtitlefont}%
-{\contentsindenttwoamount}%
+\c@ntentsinfo{#1}{\contentssequencetitleindent}{\contentspoemtitlefont}%
+{\contentssequencetitleindentamount}%
\t@xtnotesinfo{#1}%
\sources{\label{#2}}%
}
\newcommand{\JHprosesectiontitle}[2]{%
\set@margp@emtitle{#1}{\poemtitlepenalty}{\poemtitlefont}%
-{\relax}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
+{\sequencetitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
{\JHlabel{#2}}%
-\c@ntentsinfo{#1}{\contentsindentone}{\contentspoemtitlefont}%
-{\contentsindenttwoamount}%
+\c@ntentsinfo{#1}{\contentssequencetitleindent}{\contentspoemtitlefont}%
+{\contentssequencetitleindentamount}%
\t@xtnotesinfo{#1}%
\sources{\label{#2}}%
}
@@ -1384,7 +1870,7 @@
\marginpar{{\scriptsize{\the\margrefmarker~p.~\pageref{#1}}}}}
\newcommand{\JHsequencetitle}[2]{%
\set@margp@emtitle{#1}{\sequencetitlepenalty}{\sequencetitlefont}%
-{\relax}{\nobreak\par\nobreak\aftersequencetitleskip\nobreak}{\z@}%
+{\sequencetitleindent}{\nobreak\par\nobreak\aftersequencetitleskip\nobreak}{\z@}%
{\JHlabel{#2}}%
\putpagenumberincontentsfalse%
\c@ntentsinfo{#1}{\contentsindentone}{\contentssequencetitlefont}%
@@ -1395,42 +1881,42 @@
}
\newcommand{\JHsequencesectiontitle}[2]{%
\set@margp@emtitle{#1}{\poemtitlepenalty}{\poemtitlefont}%
-{\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}%
-{\titleindentamount}{\JHlabel{#2}}%
-\c@ntentsinfo{#1}{\contentsindenttwo}{\contentspoemtitlefont}%
+{\sequencesectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}%
+{\sequencesectiontitleindentamount}{\JHlabel{#2}}%
+\c@ntentsinfo{#1}{\contentssequencesectiontitleindent}{\contentspoemtitlefont}%
{\contentsindentthreeamount}%
\t@xtnotesinfo{#1}%
\sources{\label{#2}}%
}
\newcommand{\JHsequencefirstsectiontitle}[2]{%
\set@margp@emtitle{#1}{\par\nobreak\afterpoemtitleskip}{\poemtitlefont}%
-{\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}%
+{\sequencesectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}%
{\titleindentamount}{\JHlabel{#2}}%
-\c@ntentsinfo{#1}{\contentsindenttwo}{\contentspoemtitlefont}%
-{\contentsindentthreeamount}%
+\c@ntentsinfo{#1}{\contentssequencesectiontitleindent}{\contentspoemtitlefont}%
+{\contentssequencesectiontitleindentamount}%
\t@xtnotesinfo{#1}%
\sources{\label{#2}}%
}
\newcommand{\JHpoemsectiontitle}[2]{%
\set@margp@emtitle{#1}{\poemtitlepenalty}{\subsectiontitlefont}%
-{\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}%
-{\titleindentamount}{\JHlabel{#2}}%
-\c@ntentsinfo{#1}{\contentsindenttwo}{\contentspoemtitlefont}%
-{\contentsindentthreeamount}%
+{\poemsectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}%
+{\poemsectiontitleindentamount}{\JHlabel{#2}}%
+\c@ntentsinfo{#1}{\contentspoemsectiontitleindent}{\contentspoemtitlefont}%
+{\contentspoemsectiontitleindentamount}%
\t@xtnotesinfo{#1}%
\sources{\label{#2}}%
}
\newcommand{\JHpoemfirstsectiontitle}[2]{%
\set@margp@emtitle{#1}{\par\nobreak}{\subsectiontitlefont}%
-{\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}%
-{\titleindentamount}{\JHlabel{#2}}%
-\c@ntentsinfo{#1}{\contentsindenttwo}{\contentspoemtitlefont}%
-{\contentsindentthreeamount}%
+{\poemsectiontitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}%
+{\\poemsectiontitleindentamount}{\JHlabel{#2}}%
+\c@ntentsinfo{#1}{\contentsi\poemsectiontitleindent}{\contentspoemtitlefont}%
+{\contents\poemsectiontitleindentamount}%
\t@xtnotesinfo{#1}%
\sources{\label{#2}}%
}
\newcommand{\JHsequencesectionsubtitle}[2]{%
-\set@margp@emtitle{#1}{\par\nobreak}{\subsectiontitlefont}%
+\set@margp@emsubtitle{#1}{\par\nobreak}{\subsectiontitlefont}%
{\titleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}%
{\titleindentamount}{\JHlabel{#2}}%
\sources{\label{#2}}%
@@ -1519,6 +2005,36 @@
{\small \emph{#1}}\end{volumetitlepagequote}}
\newenvironment{epigraphenvironment}{\nopagebreak\afterpoemtitleskip\testforcenterepigraph%
\begin{epigraphquote}\em}{\end{epigraphquote}\afterpoemtitleskip\nopagebreak}
+\newcommand{\set@short@pigraph}[1]{\iftitlesatleftversemargin%
+{\begin{pmclverse}\addtolength{\leftmargin}{-\leftmargini}{\nobreak \emph{#1} \afterpoemtitleskip} \end{pmclverse}}%
+\else%\iftitlesatleftversemargin
+{\nobreak}%
+\begin{titleentryenvironment}%
+\ifnormaltitleindentation
+\hspace{\normalepigraphindentation}\emph{#1}%
+\else % for the \ifnormaltitleindentation
+\ifcenterepigraphson
+\begin{center} \emph{#1}\end{center}
+\else \emph{#1}\fi % for ifcenterepigraphson
+\fi %\ifnormaltitleindentation
+\end{titleentryenvironment}
+{\afterpoemtitleskip}%
+\fi}% for the \iftitlesatleftversemargin
+\newcommand{\shortpoemepigraph}[1]{\nopagebreak\afterpoemtitleskip%
+\set@short@pigraph{#1}
+}
+\newcommand{\shortpoemdedication}[1]{\nopagebreak\afterpoemtitleskip%
+\set@short@pigraph{#1}
+}
+\newcommand{\shortpoemattribution}[1]{\nopagebreak\afterpoemtitleskip%
+\set@short@pigraph{{\small #1}}
+}
+\newcommand{\JHshortepigraph}[2]{\nopagebreak\afterpoemtitleskip%
+\set@short@pigraph{#1}\marginpar{{\scriptsize{\the\margrefmarker~p.~\pageref{#2}}}}
+\sources{\label{#2}}
+}
+\newcommand{\JHshortdedication}[2]{\JHshortepigraph{#1}{#2}}
+
\newlength{\dateindent}%
\setlength{\dateindent}{\leftmargin}%
\newcommand{\variabledateindent}{%
@@ -1652,7 +2168,7 @@
}
\newcommand{\tsaccidental}[1]{\iftextnoteson\ifincludetypescripts\accidental{#1}\fi\fi}
\newcommand{\tsentry}[1]{\iftextnoteson\ifincludetypescripts{\@ifnextchar,{\unskip}{%
-�\@ifnextchar;{\unskip}{}%
+Ê\@ifnextchar;{\unskip}{}%
}#1}\fi\fi\unskip}
\newcommand{\sources}[1]{%
\iftextnoteson
@@ -1790,7 +2306,7 @@
\fi%
\resetlemmacounters%
}
-\expandafter\newcommand\csname prose#1\endcsname[3][0]{%
+\expandafter\newcommand\csname prose#1\endcsname[3][0]{%
\unskip\proselinelabel{##2}%
\setproselemmarange{##2}{##1}%
\csname ifno#1yet\endcsname%
@@ -1805,7 +2321,7 @@
\fi%
\resetlemmacounters\unskip%
}
-\expandafter\newcommand\csname pm#1\endcsname[2][0]{%
+\expandafter\newcommand\csname pm#1\endcsname[2][0]{%
\setpmlemmarange{##1}%
\csname ifno#1yet\endcsname%
\csname first#1\endcsname%
@@ -2038,6 +2554,8 @@
\newif{\ifprosebysentence}
\newif{\ifrunningsentencenumbers}\runningsentencenumberstrue
\newif{\ifmarginsentencenumbers}\marginsentencenumberstrue
+\newif{\ifsuppressfirstpara}\suppressfirstparafalse
+\newif{\ifsuppressfirstsentence}\suppressfirstsentencefalse
\newtoks{\pmnoteheader}
@@ -2051,7 +2569,13 @@
\noexplainyettrue%
}{}
\newcommand{\runningsentencenumberformat}[1]{\nobreak%
-\textsuperscript{\scriptsize{#1}}\unskip\nobreak}
+\ifsuppressfirstsentence%
+\ifthenelse{\thepmsentencenumber=1}{\relax}{%
+\unskip\textsuperscript{\scriptsize{#1}}}%
+\unskip\nobreak%
+\else%
+\textsuperscript{\scriptsize{#1}}%\fi
+\unskip\nobreak}
\newcommand{\marginsentencenumberformat}[1]{\scriptsize{#1}}
\newcommand{\setpmmodulo}[1]{\setcounter{pmmodulo}{#1}%
\addtocounter{pmmodulo}{-1}%
@@ -2078,8 +2602,13 @@
\setlength{\marginparsep}{18pt}%
}
\newcommand{\putpmsentencenumber}{%
+\ifsuppressfirstsentence%
+\ifthenelse{\thepmsentencenumber=1}{\relax}{\putpmmarginnumber{\thepmsentencenumber}%
+{\marginsentencenumberformat}}%
+\else%
\putpmmarginnumber{\thepmsentencenumber}%
-{\marginsentencenumberformat}}
+{\marginsentencenumberformat}%
+\fi}
\newcommand{\putpmmarginnumber}[2]{%
\nolinebreak\begin{marginenvironment}%
\nolinebreak%
@@ -2105,8 +2634,8 @@
\addtocounter{pmindexcount}{1}%
\leavevmode%
\ifthenelse{\value{pmindexcount}>\value{pmmodulo}}%
-{ \putpmsentencenumber\nobreak%
- \setcounter{pmindexcount}{0}%
+{\putpmsentencenumber\nobreak%
+\setcounter{pmindexcount}{0}%
}{\relax}%
\fi%
\ifpmparas%
@@ -2201,9 +2730,20 @@
\newif{\ifpmsentencebypara}% reset sentence counter every paragraph
\pmsentencebyparatrue
\newcommand{\pmparmarformat}[1]{\textbf{{\small #1}}}
-\newcommand{\pmpararunningformat}[1]{\textbf{\small #1}}
+\newcommand{\pmpararunningformat}[1]{%
+\ifsuppressfirstpara%
+\ifthenelse{\thepmparagraph=1}{\relax}{\textbf{\small #1}~}%
+\else%
+\textbf{\small #1}~%
+\fi}
\newcommand{\putpmmarparanumber}{%
-\putpmmarginnumber{\llap{\thepmparagraph~~}}{\pmparmarformat}}
+\ifsuppressfirstpara%
+\ifthenelse{\thepmparagraph=1}{\relax}{\putpmmarginnumber{\llap{\thepmparagraph~~}}
+{\pmparmarformat}}%
+\else%
+\putpmmarginnumber{\llap{\thepmparagraph~~}}{\pmparmarformat}%
+\fi}
+
\newcommand{\pmpara}{\leavevmode%
\pmparastrue\addtocounter{pmparagraph}{1}%
\ifpmparainmar% put in marginal paragraph number
@@ -2700,7 +3240,7 @@
\relax\else%
\nolinebreak\incrementverselinenumber%
\fi%
-\speciallinelockfalse%
+\speciallinelockfalse%
\nobreak
\instanzafalse
@@ -2728,7 +3268,7 @@
\makeatletter
\newcommand{\versopoemtitle}[1]{%
\versoset@p@emtitle{#1}{\poemtitlepenalty}{\poemtitlefont}%
-{\relax}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
+{\poemtitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
\c@ntentsinfo{#1}{\contentsindentone}{\contentspoemtitlefont}%
{\contentsindenttwoamount}%
}
@@ -2736,7 +3276,7 @@
\setlength{\titleentryoverrun}{#6}%
{#2}%
{#3 \begin{titleentryenvironment}%
-{\ifcentertitleson\begin{center}#4 #1\end{center}\else #4 #1\fi}%
+{\ifcentertitleson\begin{center}#1\end{center}\else #4 #1\fi}%
\end{titleentryenvironment}}%
{#5}%
\m@kep@emlabel
@@ -2775,14 +3315,14 @@
}%
\newcommand{\versopoemtitlenocontents}[1]{%
\versoset@p@emtitle{#1}{\poemtitlepenalty}{\poemtitlefont}%
-{\relax}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
+{\poemtitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
}
\newcommand{\versotitleinnotescheck}{\ifparalleltexts\let\titletoothernotes=\versotitletoothernotes\fi}
\makeatother
\makeatletter
\newcommand{\rectopoemtitle}[1]{%
\rectoset@p@emtitle{#1}{\poemtitlepenalty}{\poemtitlefont}%
-{\relax}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
+{\poemtitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
\c@ntentsinfo{#1}{\contentsindentone}{\contentspoemtitlefont}%
{\contentsindenttwoamount}%
}
@@ -2790,7 +3330,7 @@
\setlength{\titleentryoverrun}{#6}%
{#2}%
{#3 \begin{titleentryenvironment}%
-{\ifcentertitleson\begin{center}#4 #1\end{center}\else #4 #1\fi}%
+{\ifcentertitleson\begin{center}#1\end{center}\else #4 #1\fi}%
\end{titleentryenvironment}}%
{#5}%
\m@kep@emlabel
@@ -2829,7 +3369,7 @@
}%
\newcommand{\rectopoemtitlenocontents}[1]{%
\rectoset@p@emtitle{#1}{\poemtitlepenalty}{\poemtitlefont}%
-{\relax}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
+{\poemtitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}%
}
\newcommand{\rectotitleinnotescheck}{\ifparalleltexts\let\titletoothernotes=\rectotitletoothernotes\fi}
\makeatother
@@ -3856,14 +4396,22 @@
\newlength{\epigraphquoterightmargin}
\setlength{\epigraphquoteleftmargin}{1.5em}
\setlength{\epigraphquoterightmargin}{1.5em}
-\newenvironment{epigraphquote}{\list{}{\rightmargin\epigraphquoterightmargin%
- \leftmargin\epigraphquoteleftmargin%
+\newif\ifleftalignepigraphs
+\leftalignepigraphsfalse
+\makeatletter
+\newenvironment{epigraphquote}{\list{}{%
+\ifleftalignepigraphs\left@ligntitleblock%
+\rightmargin 1sp\leftmargin \lefttitlemargin%
+\else
+\rightmargin\epigraphquoterightmargin%
+\leftmargin\epigraphquoteleftmargin%
+\fi
\topsep 0pt%
\partopsep 0pt%
\listparindent 0pt%
}%
\item\relax}
- {\endlist}
+ {\endlist}\makeatother
\newenvironment{volumetitlepagequote}{\list{}{\rightmargin \voladditionalamount%
\leftmargin \voladditionalamount%
\topsep 0pt%
@@ -3872,6 +4420,8 @@
}%
\item\relax}
{\endlist}
+\endinput
+--------------060108090809060900030409--
\endinput
%%
%% End of file `poemscol.sty'.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/poemscol.tlpobj new/tlpkg/tlpobj/poemscol.tlpobj
--- old/tlpkg/tlpobj/poemscol.tlpobj 2019-02-28 04:00:06.000000000 +0100
+++ new/tlpkg/tlpobj/poemscol.tlpobj 2019-10-30 01:55:55.000000000 +0100
@@ -1,6 +1,6 @@
name poemscol
category Package
-revision 46433
+revision 52574
shortdesc Typesetting Critical Editions of Poetry
relocated 1
longdesc The package offers LaTeX macros for typesetting critical
@@ -11,11 +11,11 @@
longdesc breaks, running headers of the form 'Notes to pp. xx-yy' for
longdesc the notes sections, index of titles and first lines, and
longdesc automatic generation of a table of contents.
-runfiles size=31
+runfiles size=38
RELOC/tex/latex/poemscol/poemscol.sty
catalogue-also edmac ledmac ednotes verse
catalogue-ctan /macros/latex/contrib/poemscol
-catalogue-date 2018-01-24 05:32:51 +0100
-catalogue-license lppl1.3
+catalogue-date 2019-10-29 10:15:19 +0100
+catalogue-license lppl1.3c
catalogue-topics crit-ed
-catalogue-version 2.97
+catalogue-version 3.141
++++++ poetry.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/poetry/CHANGES new/doc/latex/poetry/CHANGES
--- old/doc/latex/poetry/CHANGES 2018-09-11 23:39:42.000000000 +0200
+++ new/doc/latex/poetry/CHANGES 2019-12-14 23:27:36.000000000 +0100
@@ -1,3 +1,14 @@
+12 Dec 1203 (14 Dec 2019): Protected the poemline counter
+definition to avoid a clash with memoir. Version 2.2.
+
+9 Nov 1203 (9 Nov 2019): Protected the index commands so
+that the package works with classes that don't include
+indices. Also removed two spurious "{"s. Thanks to David
+Carlisle for pointing out the issues to me. Version 2.1.
+
+2 May 1203 (2 May 2019): Added ability to arbitrarily label
+both the left and right sides of the line. Version 2.0.
+
X Sept 1202 (10 Sept 2018): Removed *requirement* for
hyperref by inserting a fake definition for \phantomsection,
which is the only hyperref command used.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/poetry/README new/doc/latex/poetry/README
--- old/doc/latex/poetry/README 2018-09-11 23:39:42.000000000 +0200
+++ new/doc/latex/poetry/README 2019-05-02 00:51:20.000000000 +0200
@@ -1,6 +1,6 @@
+AMDG
-This document is copyright 2018 by Donald P. Goodman, and is
+This document is copyright 2019 by Donald P. Goodman, and is
released publicly under the LaTeX Project Public License. The
distribution and modification of this work is constrained by the
conditions of that license. See
Binary files old/doc/latex/poetry/poetry.pdf and new/doc/latex/poetry/poetry.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/poetry.doc.tlpobj new/tlpkg/tlpobj/poetry.doc.tlpobj
--- old/tlpkg/tlpobj/poetry.doc.tlpobj 2019-02-28 04:00:06.000000000 +0100
+++ new/tlpkg/tlpobj/poetry.doc.tlpobj 2019-12-15 01:53:41.000000000 +0100
@@ -1,6 +1,6 @@
name poetry.doc
category Package
-revision 48643
+revision 53129
shortdesc doc files of poetry
relocated 1
docfiles size=71
++++++ poetry.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/poetry/poetry.sty new/tex/latex/poetry/poetry.sty
--- old/tex/latex/poetry/poetry.sty 2018-09-11 23:39:42.000000000 +0200
+++ new/tex/latex/poetry/poetry.sty 2019-12-14 23:27:36.000000000 +0100
@@ -13,7 +13,7 @@
%% conditions of that license. See
%% http://www.latex-project.org/lppl.txt
%% for the text of the license. This document is released
-%% under version 1.3 of that license, and this work may be distributed
+%% under version 1.3c of that license, and this work may be distributed
%% or modified under the terms of that license or, at your option, any
%% later version.
%%
@@ -26,13 +26,20 @@
%% derived files poetry.sty and poetry.pdf.
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{poetry}[2018/09/10 v1.1 support for typesetting poetry]
+\ProvidesPackage{poetry}[2019/05/02 v2.2 support for typesetting poetry]
-\ProvidesPackage{poetry}%
+\RequirePackage{modulus}%
+\@ifundefined{c@poemline}{%
\newcounter{poemline}%
+}{}
\newcount\poemlineno%
+\newcounter{poemrtline}%
+\newcount\poemrtlineno%
+\renewcommand\thepoemrtline{}%
\newcounter{verseline}%
\newcount\vslineno%
+\newcounter{stanzacount}%
+\newcount\stanzano%
\newcounter{abspoemno}%
\newcount\poem@abspoemno%
\newcounter{poemno}%
@@ -41,22 +48,43 @@
\newcount\poem@groupno\poem@groupno=0%
\newcounter{poemlinenumsevery}\setcounter{poemlinenumsevery}{1}%
\newcount\poem@linenumsevery\poem@linenumsevery=\value{poemlinenumsevery}%
+\newcounter{poemrtlinenumsevery}\setcounter{poemrtlinenumsevery}{1}%
+\newcount\poem@rt@linenumsevery\poem@rt@linenumsevery=\value{poemrtlinenumsevery}%
\newlength{\poemindent}\setlength{\poemindent}{0pt}%
-\newlength{\poemtopskip}{\setlength{\poemtopskip}{1em}%
-\newlength{\poembotskip}{\setlength{\poembotskip}{1em}%
+\newlength{\poemtopskip}\setlength{\poemtopskip}{1em}%
+\newlength{\poembotskip}\setlength{\poembotskip}{1em}%
\newdimen\poem@topskip\newdimen\poem@botskip%
\newdimen\poem@defleftskip\poem@defleftskip=\the\poemindent%
\newdimen\poem@maxlinewd%
\newlength{\poemmaxlinewd}\setlength{\poemmaxlinewd}{\textwidth}%
+\newdimen\poem@rt@maxlinewd%
+\newlength{\poemrtmaxlinewd}\setlength{\poemrtmaxlinewd}{\textwidth}%
\newdimen\poem@hinwd\poem@hinwd=1em%
\newlength{\poemhinwd}\setlength{\poemhinwd}{1em}%
\newif\ifpoemlinenums\poemlinenumstrue%
-\newif\ifpoemlinenumright\poemlinenumrightfalse%
+\newif\ifpoemrtlinenums\poemrtlinenumstrue%
+\def\poemlinenumright{%
+\renewcommand{\thepoemrtline}{\arabic{poemline}}%
+\renewcommand{\thepoemline}{}%
+}%
+\def\poemlinenumrighttrue{%
+\renewcommand{\thepoemrtline}{\arabic{poemline}}%
+\renewcommand{\thepoemline}{}%
+}%
+\def\poemlinenumrightfalse{%
+\renewcommand{\thepoemline}{\arabic{poemline}}%
+\renewcommand{\thepoemrtline}{}%
+}%
\newdimen\poem@linenumboxwd\poem@linenumboxwd=2em%
\newlength{\poemlinenumboxwd}\setlength{\poemlinenumboxwd}{2em}%
+\newdimen\poem@rt@linenumboxwd\poem@rt@linenumboxwd=2em%
+\newlength{\poemrtlinenumboxwd}\setlength{\poemrtlinenumboxwd}{2em}%
\newdimen\poem@linenumboxgap\poem@linenumboxgap=0pt%
\newlength{\poemlinenumboxgap}\setlength{\poemlinenumboxgap}{0pt}%
+\newdimen\poem@rt@linenumboxgap\poem@rt@linenumboxgap=0pt%
+\newlength{\poemrtlinenumboxgap}\setlength{\poemrtlinenumboxgap}{0pt}%
\def\poemlinenumstyle{}%
+\def\poemrtlinenumstyle{}%
\newdimen\poem@hangindent\poem@hangindent=1em%
\newlength{\poemhangindent}\setlength{\poemhangindent}{1em}%
\newcount\poem@indentevery\poem@indentevery=0%
@@ -65,12 +93,12 @@
\newlength{\poemverseskip}\setlength{\poemverseskip}{\baselineskip}%
\newdimen\poem@buff%
\newcount\poem@tmp%
+\def\loopcommand{\hin}%
\def\poem@expandvsloop#1{\poem@xvsloop#1\relax}%
\def\poem@xvsloop#1{%
\ifx\relax#1\else%
-\poem@tmp=#1%
-\ifnum\poem@tmp=\the\vslineno%
-\hin%
+\ifnum#1=\the\vslineno%
+\loopcommand\relax%
\fi%
\expandafter\poem@xvsloop%
\fi%
@@ -79,39 +107,47 @@
\newcommand{\poem@ifhyph}[1]{\@ifnextchar -{\@firstoftwo{#1}}}
\newcommand{\poem@ifstar}[1]{\@ifnextchar *{\@firstoftwo{#1}}}
\newcommand{\poem@ifques}[1]{\@ifnextchar ?{\@firstoftwo{#1}}}
-\newcount\poem@tmpa
-\def\modulo#1#2{%
-\poem@tmpa=#1%
-\divide\poem@tmpa by#2%
-\multiply\poem@tmpa by#2%
-\multiply\poem@tmpa by-1%
-\advance\poem@tmpa by#1\relax%
-}%
\def\poemvsindentlines{}%
-\def\poemlnindentlines{}%
+\def\poemnumlines{}%
+\def\poemrtnumlines{}%
\def\tlap#1{\vbox to0pt{\vss\hbox{#1}}}%
\def\blap#1{\vbox to0pt{\hbox{#1}\vss}}%
\def\placelineno{%
\setcounter{verseline}{\the\vslineno}%
\setcounter{poemline}{\the\poemlineno}%
+\setcounter{stanzacount}{\the\stanzano}%
+\setcounter{poemrtline}{\the\poemrtlineno}%
\poem@linenumsevery=\value{poemlinenumsevery}%
+\poem@rt@linenumsevery=\value{poemrtlinenumsevery}%
+\poem@indentevery=\value{poemindentevery}%
\poem@linenumboxgap=\the\poemlinenumboxgap%
\poem@linenumboxwd=\the\poemlinenumboxwd%
-\modulo{\the\poemlineno}{\the\poem@linenumsevery}%
+\poem@rt@linenumboxgap=\the\poemrtlinenumboxgap%
+\poem@rt@linenumboxwd=\the\poemrtlinenumboxwd%
\ifpoemlinenums%
-\ifnum\poem@tmpa=0%
-\ifpoemlinenumright%
-\hskip0pt\tlap{%
-\rlap{%
-\hskip\poem@maxlinewd%
-\hskip\poem@linenumboxgap%
-\hbox to\poem@linenumboxwd{%
-\hfil%
-\poemlinenumstyle\thepoemline%
-}%
-}%
+\def\loopcommand{\poem@putlineno}%
+\expandafter\poem@expandvsloop\expandafter{\poemnumlines}%
+\def\loopcommand{\poem@rt@putlineno}%
+\expandafter\poem@expandvsloop\expandafter{\poemrtnumlines}%
+\ifnum\poem@linenumsevery=0\relax\else%
+\modulo{\the\vslineno}{\the\poem@linenumsevery}%
+\ifnum\remainder=0\poem@putlineno\fi%
+\fi%
+\ifnum\poem@rt@linenumsevery=0\relax\else%
+\modulo{\the\vslineno}{\the\poem@rt@linenumsevery}%
+\ifnum\remainder=0\poem@rt@putlineno\fi%
+\fi%
+\fi%
+\ifnum\poem@indentevery=0\relax\else%
+\modulo{\the\vslineno}{\the\poem@indentevery}%
+\ifnum\remainder=0\hin\fi%
+\fi%
+\def\loopcommand{\hin}%
+\expandafter\poem@expandvsloop\expandafter{\poemvsindentlines}%
+\def\@currentlabel{\thepoemline}%
+\phantomsection%
}%
-\else%
+\def\poem@putlineno{%
\hskip-\poem@linenumboxgap%
\llap{%
\tlap{%
@@ -120,30 +156,26 @@
\hfil%
}\penalty10000%
}%
-}\penalty10000%
+}%
+\ifnum\poemlineno=1\relax\else%
+\ifnum\vslineno=1%
+\vskip-\baselineskip%
\fi%
-\else
-\hskip-\poem@linenumboxgap%
-\llap{\tlap{\hbox to\poem@linenumboxwd{\hfil}}}%
-\penalty10000%
\fi%
-\else
-\hskip-\poem@linenumboxgap%
-\llap{\tlap{\hbox to\poem@linenumboxwd{\hfil}}}%
\penalty10000%
-\fi%
-\par\vskip-\baselineskip%
-\poem@indentevery=\value{poemindentevery}%
-\ifnum\poem@indentevery=0%
-\else%
-\modulo{\the\poemlineno}{\the\poem@indentevery}%
-\ifnum\poem@tmpa=0%
-\hin%
-\fi%
-\fi%
-\expandafter\poem@expandvsloop\expandafter{\poemvsindentlines}%
-\def\@currentlabel{\thepoemline}%
-\phantomsection%
+}%
+\def\poem@rt@putlineno{%
+\hskip0pt\tlap{%
+\rlap{%
+\hskip\poem@maxlinewd%
+\hskip\poem@rt@linenumboxgap%
+\hbox to\poem@rt@linenumboxwd{%
+\hfil%
+\poemrtlinenumstyle\thepoemrtline%
+}%
+}%
+}%
+\vskip-\baselineskip%
}%
\def\poem@endline{%
\par%
@@ -170,6 +202,7 @@
\par%
\vslineno=1%
\advance\poemlineno by1%
+\advance\stanzano by1%
\poem@verseskip=\the\poemverseskip%
\vskip\poem@verseskip%
\leftskip=\poem@defleftskip%
@@ -217,6 +250,7 @@
\advance\hsize by\the\poem@maxlinewd%
\poemlineno=1%
\vslineno=1%
+\stanzano=1%
\poem@topskip=\the\poemtopskip%
\poem@botskip=\the\poembotskip%
\vskip\poem@topskip%
@@ -355,6 +389,7 @@
\else%
\def\phantomsection{\relax}%
\fi%
+\ifx\theindex\@undefined\else%
\RequirePackage{imakeidx}
\makeindex[intoc,columns=1,name={\jobname-iofl},title={\poemioflname}]
\def\poemioflname{Index of First Lines}%
@@ -368,6 +403,7 @@
\def\printiofl{%
\printindex[\jobname-iofl]%
}%
+\fi%
\endinput
%%
%% End of file `poetry.sty'.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/poetry.tlpobj new/tlpkg/tlpobj/poetry.tlpobj
--- old/tlpkg/tlpobj/poetry.tlpobj 2019-02-28 04:00:06.000000000 +0100
+++ new/tlpkg/tlpobj/poetry.tlpobj 2019-12-15 01:53:41.000000000 +0100
@@ -1,9 +1,9 @@
name poetry
category Package
-revision 48643
+revision 53129
shortdesc Facilities for typesetting poetry and poetical structure
relocated 1
-longdesc The poetry package provides some macros and general doodads for
+longdesc This package provides some macros and general doodads for
longdesc typesetting poetry. There is, of course, already the excellent
longdesc verse package, and the poetrytex package provides some extra
longdesc functionality on top of it. But poetry provides much of the
@@ -13,7 +13,6 @@
runfiles size=3
RELOC/tex/latex/poetry/poetry.sty
catalogue-ctan /macros/latex/contrib/poetry
-catalogue-date 2018-09-11 08:47:20 +0200
-catalogue-license lppl1.3
+catalogue-license lppl1.3c
catalogue-topics verse
-catalogue-version 1.1
+catalogue-version 2.2
++++++ polexpr.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/polexpr/README.md new/doc/latex/polexpr/README.md
--- old/doc/latex/polexpr/README.md 2019-02-12 23:05:09.000000000 +0100
+++ new/doc/latex/polexpr/README.md 2020-02-01 23:17:01.000000000 +0100
@@ -4,7 +4,7 @@
License
-------
-Copyright (C) 2018-2019 Jean-François Burnol
+Copyright (C) 2018-2020 Jean-François Burnol
See documentation of package [xint](http://www.ctan.org/pkg/xint) for
contact information.
@@ -81,8 +81,10 @@
- 0.7.4 (2019/02/12)
Bugfix: 20000000000 is too big for \numexpr, shouldn't I know that?
Thanks to Jürgen Gilg for report.
+- 0.7.5 (2020/01/31)
+ Synced with xint 1.4. Requires it.
-Files of 0.7.4 release:
+Files of 0.7.5 release:
- README.md,
- polexpr.sty (package file),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/polexpr/polexpr.html new/doc/latex/polexpr/polexpr.html
--- old/doc/latex/polexpr/polexpr.html 2019-02-12 23:05:09.000000000 +0100
+++ new/doc/latex/polexpr/polexpr.html 2020-02-01 23:17:01.000000000 +0100
@@ -362,7 +362,7 @@
<body>
<div class="document" id="package-polexpr-documentation">
<h1 class="title">Package polexpr documentation</h1>
-<h2 class="subtitle" id="id1">0.7.4 (2019/02/12)</h2>
+<h2 class="subtitle" id="id1">0.7.5 (2020/01/31)</h2>
<!-- comment: -*- fill-column: 72; mode: rst; -*- -->
<div class="contents topic" id="contents">
@@ -2891,6 +2891,9 @@
</li>
</ul>
</li>
+<li><p class="first">v0.7.5 (2020/01/31)</p>
+<p>Synced with xint 1.4. Requires it.</p>
+</li>
</ul>
</div>
<div class="section" id="acknowledgments">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/polexpr/polexpr.txt new/doc/latex/polexpr/polexpr.txt
--- old/doc/latex/polexpr/polexpr.txt 2019-02-12 23:05:09.000000000 +0100
+++ new/doc/latex/polexpr/polexpr.txt 2020-02-01 23:17:01.000000000 +0100
@@ -4,7 +4,7 @@
Package polexpr documentation
===============================
-0.7.4 (2019/02/12)
+0.7.5 (2020/01/31)
==================
.. contents::
@@ -2567,6 +2567,11 @@
- 20000000000 is too big for ``\numexpr``, shouldn't I know that?
Thanks to Jürgen Gilg for report.
+- v0.7.5 (2020/01/31)
+
+ Synced with xint 1.4. Requires it.
+
+
Acknowledgments
---------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/polexpr.doc.tlpobj new/tlpkg/tlpobj/polexpr.doc.tlpobj
--- old/tlpkg/tlpobj/polexpr.doc.tlpobj 2019-02-28 04:00:07.000000000 +0100
+++ new/tlpkg/tlpobj/polexpr.doc.tlpobj 2020-02-02 01:58:19.000000000 +0100
@@ -1,6 +1,6 @@
name polexpr.doc
category Package
-revision 50013
+revision 53633
shortdesc doc files of polexpr
relocated 1
docfiles size=67
++++++ polexpr.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/polexpr/polexpr.sty new/tex/latex/polexpr/polexpr.sty
--- old/tex/latex/polexpr/polexpr.sty 2019-02-12 23:05:09.000000000 +0100
+++ new/tex/latex/polexpr/polexpr.sty 2020-02-01 23:17:01.000000000 +0100
@@ -1,33 +1,178 @@
% author: Jean-François Burnol
% License: LPPL 1.3c (author-maintained)
\ProvidesPackage{polexpr}%
- [2019/02/12 v0.7.4 Polynomial expressions with rational coefficients (JFB)]%
-\RequirePackage{xintexpr}[2018/06/17]% xint 1.3c for \ifxintglobaldefs boolean
-\edef\POL@restorecatcodes
+ [2020/01/31 v0.7.5 Polynomial expressions with rational coefficients (JFB)]%
+\RequirePackage{xintexpr}[2020/01/31]% xint 1.4
+\edef\POL@restorecatcodes % TODO: think better about what is reasonable here
{\catcode`\noexpand\_ \the\catcode`\_ %
\catcode`\noexpand\! \the\catcode`\! %
\catcode`\noexpand\* \the\catcode`\* %
+ \catcode`\noexpand\~ \the\catcode`\~ %
+ \catcode`\noexpand\: \the\catcode`\: %
\catcode0 \the\catcode0\relax}%
\catcode`\_ 11 \catcode0 12 \catcode`\* 12
\long\def\xint_stop_atfirstoftwo #1#2{ #1}% not yet in xint 1.3c
\long\def\xint_stop_atsecondoftwo #1#2{ #2}%
-%% PATCH xintexpr TO AUTHORIZE ' IN NAMES (0.5.1)
-\catcode`\! 11
+%% 0.7.5 VERY SERIOUS TROUBLES TO GET polexpr TO WORK WITH xintexpr 1.4
+
+%% I hesitated about incorporating it directly into xint 1.4
+%% Don't do this at home, only xint gurus are allowed.
+\let\POL@originalXINT_expr_redefinemacros\XINT_expr_redefinemacros
+\def\XINT_expr_redefinemacros
+{%
+ \POL@originalXINT_expr_redefinemacros
+ \POL@activateNEhook
+}%
+%% Using \def's and not \let's to get better readable trace
+%% in case I need to debug but this never happens
+\def\POL@activateNEhook@xint % done in a group
+{%
+ \def\POL@NEhook@polfunc{\POL@NE@polfunc}%
+}%
+\def\POL@activateNEhook@pol
+{%
+ \def\POL@NEhook@polfunc{\POL@NP@polfunc}%
+}%
+\def\POL@activateNEhook{\POL@activateNEhook@xint}%
+%
+%
+\catcode`~ 12
+\catcode`! 11
+\catcode`: 11
+% We drop consideration of \XINT_global matters
+% because we have other more urgent and arduous problems
+\def\POL@defpolfunc #1#2%
+{%
+ \expandafter\POL@defpolfunc_a
+ \csname XINT_#2_func_#1\expandafter\endcsname
+ \csname XINT_#2_polfunc_#1\endcsname {#1}{#2}%
+}%
+\def\POL@defpolfunc_a #1#2#3#4%
+{%
+ \protected % xintexpr 1.4 does things such as \expandafter\xintAdd\expanded
+ \expandafter\def\expandafter#2\expandafter##\expandafter1\expandafter
+ {%
+ #2{##1}%
+ }%
+ \def#1##1##2##3%
+ {%
+ % put it directly at the correct level of bracing
+ % don't worry for now about minimizing how many times ##3 is grabbed
+ \expandafter##1\expandafter##2\expandafter{\expandafter
+ {\romannumeral`^^@\POL@NEhook@polfunc{XINT_#4_polfunc_#3}#2{##3}}}%
+ }%
+}%
+%
+\def\POL@polfunc@go #1#2#3{#2#3}% brace stripping intentional
+\def\POL@NEhook@polfunc{\POL@polfunc@go}% default for pure numerics
+%
+% Hook for expansion in \poldef
+\def\POL@NP@polfunc #1{%
+\def\POL@NP@polfunc ##1##2##3%
+{%
+ \if0\expandafter\XINT:NE:hastilde\detokenize{##3}~!\relax
+ \expandafter\XINT:NE:hashash\detokenize{##3}#1!\relax 0%
+ \expandafter\POL@polfunc@go
+ \else
+ \expandafter\POL:NP:polfunc:p
+ \fi {##1}{##2}{##3}%
+}}\expandafter\POL@NP@polfunc\string#%
+\def\POL:NP:polfunc:p #1#2#3%
+{%
+ ~romannumeral~POL:usepolfunc:pol{#1}{#3}%
+}%
+\def\POL:usepolfunc:pol #1%#2%
+{%
+% Here we are in the core of \poldef and we really
+% need to get rid of some \expanded tokens so
+% we accept being exposed to \expanded but arrange to
+% remain invariant. Then we will try to speed up
+% polynomial composition (at this time the \#1
+% is a nested Horner type macro) by «pre-expanding»
+% the argument, but this means using the \POL@get
+% methods inside an \hbox
+%
+% \POL@applypolfunc will be defined \protected
+%
+ \expandafter\xint_c_\expandafter\POL@applypolfunc
+% This will be \protected
+ \csname#1\endcsname
+% #2% brace stripping is deliberate
+}%
+%
+% Hook for expansion in \xintexpr
+\def\POL@NE@polfunc #1{%
+\def\POL@NE@polfunc ##1##2##3%
+{%
+ \if0\expandafter\XINT:NE:hastilde\detokenize{##3}~!\relax
+ \expandafter\XINT:NE:hashash\detokenize{##3}#1!\relax 0%
+ \expandafter\POL@polfunc@go
+ \else
+ \expandafter\POL:NE:polfunc:p
+ \fi {##1}{##2}{##3}%
+}}\expandafter\POL@NE@polfunc\string#%
+\def\POL:NE:polfunc:p #1#2#3%
+{%
+ ~romannumeral~POL:usepolfunc:xint{#1}{#3}%
+}%
+\def\POL:usepolfunc:xint #1%
+{%
+% This is done to overcome \protected and is useful
+% in case the polynomial function ends up nested
+% in some non-polynomial user declared function
+% as the latter (and other things) tries to pre-expand
+% its arguments (as they may be used multiple time)
+% using \expanded, but \#1 is protected.
+% And this works recursively. We are inside braces.
+% However we have a very big problem with constant
+% polynomial functions. We have to handle them
+% in a special way.
+ -`0\csname#1\expandafter\endcsname\expanded
+}%
+\catcode`~ 13
+\catcode`: 12
+
+
+%% Start defining some \protected ones here
+\protected\def\POL@empty{}%
+\newif\ifPOL@pol
+\protected\def\POL@polglobaltrue {\global\let\ifPOL@pol\iftrue}%
+\protected\def\POL@polglobalfalse{\global\let\ifPOL@pol\iffalse}%
+
+
+%% Patch xintexpr to authorize ' in names (0.5.1)
+%% Adapted 0.7.5 to follow-up on xintexpr 1.4 internal changes
+%% (much simpler than previous stuff...)
+%% This allows ' as a character in a polynomial name (not initial one)
\def\POL@XINT_expr_scanfunc_b #1%
{%
- \ifx !#1\xint_dothis{(_}\fi
- \ifcat \relax#1\xint_dothis{(_}\fi
- \if (#1\xint_dothis{\xint_firstoftwo{(`}}\fi
- \if '#1\xint_dothis \XINT_expr_scanfunc_a \fi
- \if @#1\xint_dothis \XINT_expr_scanfunc_a \fi
- \if _#1\xint_dothis \XINT_expr_scanfunc_a \fi
- \ifnum \xint_c_ix<1\string#1 \xint_dothis \XINT_expr_scanfunc_a \fi
- \ifcat a#1\xint_dothis \XINT_expr_scanfunc_a \fi
- \xint_orthat {(_}%
- #1%
+ \ifcat \relax#1\xint_dothis{\iffalse{\fi}(_#1}\fi
+ \if (#1\xint_dothis{\iffalse{\fi}(`}\fi
+ \if 1\ifcat a#10\fi
+ \ifnum\xint_c_ix<1\string#1 0\fi
+ \if @#10\fi
+ \if _#10\fi
+ \if '#10\fi
+ 1%
+ \xint_dothis{\iffalse{\fi}(_#1}\fi
+ \xint_orthat {#1\XINT_expr_scanfunc_a}%
}%
+
+%% Activate polexp's modified xintexpr (only during definitions
+%% of polynomials)
+\def\POL@hackxintexpr {%
+ \let\POL@originalXINT_expr_scanfunc_b\XINT_expr_scanfunc_b
+ \let\XINT_expr_scanfunc_b\POL@XINT_expr_scanfunc_b
+ \def\POL@activateNEhook{\POL@activateNEhook@pol}%
+}%
+\def\POL@restorexintexpr {%
+ \let\XINT_expr_scanfunc_b\POL@originalXINT_expr_scanfunc_b
+ \def\POL@activateNEhook{\POL@activateNEhook@xint}%
+}%
+
+
%% AUXILIARIES
\catcode`! 3
%% added at 0.7
@@ -46,7 +191,6 @@
\polexprsetup{norr=_norr, sqfnorr=_sqf_norr}
\newcount\POL@count
-\newif\ifPOL@pol
\newif\ifxintveryverbose
\newif\ifpoltypesetall
\newif\ifPOL@tosturm@makefirstprimitive
@@ -54,7 +198,7 @@
\newif\ifPOL@isolz@nextwillneedrefine
\newif\ifpoltoexprall
%% the main exchange structure (stored in macros \POLuserpol@<name>)
-%% is: degree.\empty{coeff0}{coeff1}....{coeffN}
+%% is: degree.\POL@empty{coeff0}{coeff1}....{coeffN}
%% (degree=N except zero polynomial recognized from degree set to -1
%% but it has always the {0/1[0]} coeff0.)
\def\POL@ifZero#1{\expandafter\POL@ifZero@aux#1;}%
@@ -67,13 +211,17 @@
%
\def\POL@resultfromarray #1{% ATTENTION, **MUST** be executed with
% \count@ set to 1 + degree (\count@ = 0 for zero polynomial)
- \edef\POL@result{\ifnum\count@>\z@
- \the\numexpr\count@-\@ne.\noexpand\empty
+% Attention to the \protected here at 0.7.5
+% They are many all over the place
+ \protected\edef\POL@result{\ifnum\count@>\z@
+ \the\numexpr\count@-\@ne.\POL@empty
\xintiloop [1+1]%
\expandafter\POL@braceit\csname POL@array#1\xintiloopindex\endcsname
\ifnum\xintiloopindex<\count@
\repeat
- \else-1.\noexpand\empty{0/1[0]}\fi}%
+% Attention to this \protected\POL@empty
+% They are many all over the place
+ \else-1.\POL@empty{0/1[0]}\fi}%
}%
\def\POL@braceit#1{{#1}}% needed as \xintiloopindex can not "see" through braces
@@ -85,12 +233,11 @@
\POL@restoresemicolon
\edef\POL@tmp{\ifxintverbose1\else0\fi}%
\unless\ifxintveryverbose\xintverbosefalse\fi
- \let\POL@originalXINT_expr_scanfunc_b\XINT_expr_scanfunc_b
- \let\XINT_expr_scanfunc_b\POL@XINT_expr_scanfunc_b
+ \POL@hackxintexpr
\xintdeffunc __pol(#2):=0+(#4);% force conversion to raw if a constant
+ \POL@restorexintexpr
\if1\POL@tmp\xintverbosetrue\fi
\edef\POL@polname{\xint_zapspaces #1 \xint_gobble_i}%
- \let\XINT_expr_scanfunc_b\POL@originalXINT_expr_scanfunc_b
\begingroup
\setbox0\hbox{%
\let\xintScalarAdd\xintAdd
@@ -107,48 +254,79 @@
\def\xintSub ##1##2{\xintAdd{##1}{\xintOpp{##2}}}%
% \xintAdd{0} to get \POL@result defined even if numerical only expression
% I could also test \ifPOL@pol, but this is anyhow small overhead
- \xintAdd{0}%
- {\csname XINT_expr_userfunc___pol\endcsname
- {\global\POL@poltrue\def\POL@result{1.\empty{0/1[0]}{1/1[0]}}}}%
+% Attention that xintexpr 1.4 has braces all over the place
+ \expandafter\xintAdd\expandafter{\expandafter0\expandafter}%
+ \romannumeral0\csname XINT_expr_userfunc___pol\endcsname
+ {\POL@polglobaltrue\protected\def\POL@result{1.\POL@empty{0/1[0]}{1/1[0]}}}%
\expandafter}\expandafter
\endgroup\expandafter
\def\csname POLuserpol@\POL@polname\expandafter\endcsname
\expandafter{\POL@result}%
\expandafter\POL@newpol\expandafter{\POL@polname}%
}%
-%%
+%
+
+
\def\POL@newpol#1{%
- \expandafter\POL@ifZero\csname POLuserpol@#1\endcsname
- {\@namedef{XINT_expr_userfunc_#1}##1{0/1[0]}}%
- {\POL@newpolhorner{#1}}%
- \expandafter\XINT_expr_defuserfunc
- \csname XINT_expr_func_#1\endcsname{#1}{expr}%
+%% We must handle specially constant polynomials because they must
+%% be made to work expandably in \poldef of other polynomials due
+%% to complicated matters having to do with the \POL@ifpol conditional
+ \ifnum\PolDegree{#1}<\@ne
+ % non-zero constant
+ % I am defining this one only for the Info message, no time now
+ \expandafter\edef\csname XINT_expr_polfunc_#1\endcsname
+ ##1{\PolNthCoeff{#1}{0}}%
+ % No hooks here!
+ \expandafter\edef\csname XINT_expr_func_#1\endcsname ##1##2##3%
+ {##1##2{{\PolNthCoeff{#1}{0}}}}%
+ \else
+ % polynomial of degree at least 1. This means that mechanism
+ % to get \POL@result will get activated and we must be very careful
+ % to never \edef when the Horner macro will be converted to
+ % a polynomial
+ \POL@newpolhorner{#1}%
+ \POL@defpolfunc{#1}{expr}%
+ \fi
\expandafter\let\csname XINT_flexpr_func_#1\endcsname\@undefined
\ifxintverbose\POL@info{#1}\fi
}%
\def\POL@newfloatpol#1{%
- \expandafter\POL@ifZero\csname POLuserpol@#1\endcsname
- {\@namedef{XINT_flexpr_userfunc_#1}##1{0[0]}}%
- {\POL@newfloatpolhorner{#1}}%
- \expandafter\XINT_expr_defuserfunc
- \csname XINT_flexpr_func_#1\endcsname{#1}{flexpr}%
+%% We must handle specially constant polynomials because they must
+%% be made to work expandably in \poldef of other polynomials due
+%% to complicated matters having to do with the \POL@ifpol conditional
+ \ifnum\PolDegree{#1}<\@ne
+ % non-zero constant
+ % I am defining this one only for the Info message, no time now
+ \expandafter\edef\csname XINT_flexpr_polfunc_#1\endcsname
+ ##1{\PolNthCoeff{#1}{0}}%
+ % No hooks here!
+ \expandafter\edef\csname XINT_flexpr_func_#1\endcsname ##1##2##3%
+ {##1##2{{\PolNthCoeff{#1}{0}}}}%
+ \else
+ % polynomial of degree at least 1. This means that mechanism
+ % to get \POL@result will get activated and we must be very careful
+ % to never \edef when the Horner macro will be converted to
+ % a polynomial
+ \POL@newfloatpolhorner{#1}%
+ \POL@defpolfunc{#1}{flexpr}%
+ \fi
\ifxintverbose\POL@floatinfo{#1}\fi
}%
\def\POL@info #1{%
\xintMessage {polexpr}{Info}%
{Function #1 for the \string\xintexpr\space parser is
- associated to \string\XINT_expr_userfunc_#1\space
+ associated to \string\XINT_expr_polfunc_#1\space
whose meaning uses Horner scheme:
\expandafter\meaning
- \csname XINT_expr_userfunc_#1\endcsname}%
+ \csname XINT_expr_polfunc_#1\endcsname}%
}%
\def\POL@floatinfo #1{%
\xintMessage {polexpr}{Info}%
{Function #1 for the \string\xintfloatexpr\space parser is
- associated to \string\XINT_flexpr_userfunc_#1\space
+ associated to \string\XINT_flexpr_polfunc_#1\space
whose meaning uses Horner scheme:
\expandafter\meaning
- \csname XINT_flexpr_userfunc_#1\endcsname}%
+ \csname XINT_flexpr_polfunc_#1\endcsname}%
}%
%
\def\POL@newpolhorner#1{%
@@ -162,7 +340,7 @@
\expandafter\POL@newpol@horner\POL@var@coeffs\relax
\expandafter
\endgroup
- \expandafter\def\csname XINT_expr_userfunc_#1\expandafter\endcsname
+ \expandafter\def\csname XINT_expr_polfunc_#1\expandafter\endcsname
\expandafter##\expandafter1\expandafter{\POL@tmp{##1}}%
}%
\def\POL@newfloatpolhorner#1{%
@@ -176,7 +354,7 @@
\expandafter\POL@newpol@floathorner\POL@var@coeffs\relax
\expandafter
\endgroup
- \expandafter\def\csname XINT_flexpr_userfunc_#1\expandafter\endcsname
+ \expandafter\def\csname XINT_flexpr_polfunc_#1\expandafter\endcsname
\expandafter##\expandafter1\expandafter{\POL@tmp{##1}}%
}%
\def\POL@newpol@horner#1{\let\xintAdd\relax\let\xintMul\relax
@@ -211,10 +389,9 @@
\def\POL@let#1#2{%
\expandafter\let\csname POLuserpol@#1\expandafter\endcsname
\csname POLuserpol@#2\endcsname
- \expandafter\let\csname XINT_expr_userfunc_#1\expandafter\endcsname
- \csname XINT_expr_userfunc_#2\endcsname
- \expandafter\XINT_expr_defuserfunc
- \csname XINT_expr_func_#1\endcsname{#1}{expr}%
+ \expandafter\let\csname XINT_expr_polfunc_#1\expandafter\endcsname
+ \csname XINT_expr_polfunc_#2\endcsname
+ \POL@defpolfunc{#1}{expr}%
\ifxintverbose\POL@info{#1}\fi
}%
\newcommand\PolGlobalLet[2]{\begingroup
@@ -259,7 +436,7 @@
\def\POL@getfromarray#1#2{%
\count@=#2{0} %<- intentional space
\ifnum\count@=\z@
- \def\POL@result{-1.\empty{0/1[0]}}% 0.5 fix for empty array
+ \protected\def\POL@result{-1.\POL@empty{0/1[0]}}% 0.5 fix for empty array
\else
\xintloop
\edef\POL@tmp{#2{\count@}}%
@@ -283,7 +460,7 @@
\repeat
\count@\count\tw@
\def\POL@tmp##1.{{\csname POL@tmparray##1\endcsname}}%
- \edef\POL@result{\the\numexpr\count@-\@ne.\noexpand\empty
+ \protected\edef\POL@result{\the\numexpr\count@-\@ne.\POL@empty
\xintiloop[1+1]%
\expandafter\POL@tmp\xintiloopindex.%
\ifnum\xintiloopindex<\count@
@@ -480,7 +657,7 @@
{\ifnum\POL@degB<\z@
\expandafter\xint_firstoftwo\else\expandafter\xint_secondoftwo
\fi
- {\def\POL@result{-1.\empty{0/1[0]}}}%
+ {\protected\def\POL@result{-1.\POL@empty{0/1[0]}}}%
{\xintAssignArray\POL@polB\to\POL@arrayB
\POL@normalize{B}%
\POL@gcd@exit BA}}%
@@ -606,11 +783,11 @@
\expandafter\expandafter\expandafter\POL@split
\csname POLuserpol@#1\endcsname;\POL@var@deg\POL@var@coeffs
\ifnum\POL@var@deg<\@ne
- \@namedef{POLuserpol@#2}{-1.\empty{0/1[0]}}%
+ \@namedef{POLuserpol@#2}{-1.\POL@empty{0/1[0]}}%
\else
\edef\POL@var@coeffs{\expandafter\POL@diff\POL@var@coeffs\relax}%
\expandafter\edef\csname POLuserpol@#2\endcsname
- {\the\numexpr\POL@var@deg-\@ne.\noexpand\empty\POL@var@coeffs}%
+ {\the\numexpr\POL@var@deg-\@ne.\POL@empty\POL@var@coeffs}%
\fi
}%
% lazy way but allows to share with AntiDiff
@@ -666,11 +843,11 @@
\expandafter\expandafter\expandafter\POL@split
\csname POLuserpol@#1\endcsname;\POL@var@deg\POL@var@coeffs
\ifnum\POL@var@deg<\z@
- \@namedef{POLuserpol@#2}{-1.\empty{0/1[0]}}%
+ \@namedef{POLuserpol@#2}{-1.\POL@empty{0/1[0]}}%
\else
\edef\POL@var@coeffs{\expandafter\POL@antidiff\POL@var@coeffs\relax}%
\expandafter\edef\csname POLuserpol@#2\endcsname
- {\the\numexpr\POL@var@deg+\@ne.\noexpand\empty{0/1[0]}\POL@var@coeffs}%
+ {\the\numexpr\POL@var@deg+\@ne.\POL@empty{0/1[0]}\POL@var@coeffs}%
\fi
}%
@@ -737,7 +914,7 @@
\POL@count\z@
% if I applied the same as for positive degree, I should make it -1
% if constant is negative. I also don't worry if polynomial is zero.
- \@namedef{POLuserpol@\POL@sturmname _0}{0.\empty{1/1[0]}}%
+ \@namedef{POLuserpol@\POL@sturmname _0}{0.\POL@empty{1/1[0]}}%
\else
\ifPOL@tosturm@makefirstprimitive\POL@makeprimitive{\POL@sturmname _0_}\fi
\POL@tosturm@dosturm
@@ -793,7 +970,7 @@
\POL@mapcoeffs\POL@aux@toint{\POL@sturmname _\the\POL@count}%
\ifnum\POL@count>\z@
\repeat
- \@namedef{POLuserpol@\POL@sturmname _\POL@sturm@N}{0.\empty{1/1[0]}}%
+ \@namedef{POLuserpol@\POL@sturmname _\POL@sturm@N}{0.\POL@empty{1/1[0]}}%
\else % they are already normalized
\advance\POL@count\@ne % attention to include last one also
\xintloop
@@ -984,7 +1161,7 @@
\POL@findrat@xN\POL@findrat@xD\POl@_
% we can't move this to updatequotients because other branch will
% need to do the division first anyhow
- \edef\POLuserpol@_findrat@oneterm{1.\noexpand\empty
+ \edef\POLuserpol@_findrat@oneterm{1.\POL@empty
{\xintiiOpp\POL@findrat@xN/1[0]}{\POL@findrat@xD/1[0]}}%
\POL@divide{\POL@sturmname\POL@sqfnorr}{_findrat@oneterm}% the one without mult.
%\expandafter\POL@split\POL@R;\POL@degR\POL@polR
@@ -1118,7 +1295,7 @@
% zero should never occur here
\POL@findrat@ifnegative{\edef\POL@findrat@x{-\POL@findrat@x}}{}%
\POL@xintfrac@getNDE\POL@findrat@x\POL@findrat@xN\POL@findrat@xD\POL@_
- \edef\POLuserpol@_findrat@oneterm{1.\noexpand\empty
+ \edef\POLuserpol@_findrat@oneterm{1.\POL@empty
{\xintiiOpp{\POL@findrat@xN}/1[0]}{\POL@findrat@xD/1[0]}}%
\POL@divide{\POL@sturmname\POL@sqfnorr}{_findrat@oneterm}% the one without mult.
\expandafter\POL@split\POL@R;\POL@degR\POL@polR
@@ -1185,7 +1362,7 @@
% safer to do the edef as \POL@findrat@x used later in storeit
\edef\POL@findrat@x{\xintIrr{\xintDiv\POL@findrat@Num\POL@findrat@D}[0]}%
\POL@xintfrac@getNDE\POL@findrat@x\POL@findrat@xN\POL@findrat@xD\POL@_
- \edef\POLuserpol@_findrat@oneterm{1.\noexpand\empty
+ \edef\POLuserpol@_findrat@oneterm{1.\POL@empty
{\xintiiOpp{\POL@findrat@xN}/1[0]}{\POL@findrat@xD/1[0]}}%
\POL@divide{\POL@sturmname\POL@sqfnorr}{_findrat@oneterm}% the one without mult.
\expandafter\POL@split\POL@R;\POL@degR\POL@polR
@@ -1210,11 +1387,11 @@
\begingroup\xintglobaldefstrue
% skip some overhead of \xintdefvar...
\XINT_expr_defvar_one{\POL@sturmname L_\POL@findrat@index}%
- {\csname .=\POL@findrat@x\endcsname}%
+ {\POL@findrat@x}%
\XINT_expr_defvar_one{\POL@sturmname R_\POL@findrat@index}%
- {\csname .=\POL@findrat@x\endcsname}%
+ {\POL@findrat@x}%
\XINT_expr_defvar_one{\POL@sturmname Z_\POL@findrat@index _isknown}%
- {\csname .=1\endcsname}%
+ {1}%
\endgroup
}%
\def\POL@findrat@loop@updatequotients{%
@@ -1326,7 +1503,7 @@
\xintloop
% skip some overhead of \xintdefvar...
\XINT_expr_defvar_one{\POL@sturmname M_\x}%
- {\csname .=\csname POL_ZM\POL@sturmname*\x\endcsname\endcsname}%
+ {\csname POL_ZM\POL@sturmname*\x\endcsname}%
\edef\x{\the\numexpr\x-\@ne}%
\ifnum\x>\z@
\repeat
@@ -1901,17 +2078,16 @@
\begingroup\xintglobaldefstrue
% skip some overhead of \xintdefvar...
\XINT_expr_defvar_one{\POL@sturmname L_\POL@isolz@IntervalIndex}%
- {\csname .=\POL@IsoLeft@rawout\endcsname}%
+ {\POL@IsoLeft@rawout}%
\XINT_expr_defvar_one{\POL@sturmname R_\POL@isolz@IntervalIndex}%
- {\csname .=\POL@IsoRight@rawout\endcsname}%
+ {\POL@IsoRight@rawout}%
% added at 0.7
\XINT_expr_defvar_one{\POL@sturmname Z_\POL@isolz@IntervalIndex _isknown}%
- {\csname .=\ifnum\POL@IsoRightSign=\z@ 1\else 0\fi\endcsname}%
+ {\ifnum\POL@IsoRightSign=\z@ 1\else 0\fi}%
\endgroup
}%
%% \PolRefineInterval
-\def\POL@xintexprGetVar#1{\expandafter\expandafter\expandafter
- \XINT_expr_unlock\csname XINT_expr_var_#1\endcsname}%
+\def\POL@xintexprGetVar#1{\csname XINT_expr_varvalue_#1\endcsname}%
% attention, also used by \POL@findrat@loop@a
\def\POL@get@IsoLeft@rawin{%
\edef\POL@IsoLeft@rawin
@@ -2277,28 +2453,70 @@
%% The idea is to execute it with another meaning given to \xintAdd etc..,
%% so that it operates on "polynomials". This is a mixture of expandable
%% and non-expandable techniques.
+%%
+%% And it was complicated to let it work with xintexpr 1.4
+%%
\def\POL@get#1#2#3{%
- \global\POL@polfalse
+ \relax %!! part de la tambouille pour fonctionner en xint 1.4
+ \POL@polglobalfalse
\begingroup
- \def\POL@result{#3}%
+ \protected\def\POL@result{#3}%
#3%
\expandafter
\endgroup
\expandafter\def\expandafter#1\expandafter{\POL@result}%
\unless\ifPOL@pol
% avoid expanding more than twice #3
+ % #3 must be purely numerical or at least compatible with \edef
+ % this is why at 0.7.5 I had to handle especially constant
+ % polynomial functions to remove any protection from them
+ % (because the protection triggers the COMPOSITION when
+ % the polynomial is found as argument of another one and
+ % this is not expandable)
\edef#1{#3}%
\xintiiifZero{#1}%
- {\def#1{-1.\empty{0/1[0]}}}%
- {\edef#1{0.\noexpand\empty{#1}}}%
+ {\def#1{-1.\POL@empty{0/1[0]}}}%
+ {\edef#1{0.\POL@empty{#1}}}%
\fi
#2%
}%
+
+%% COMPOSITION
+%% This did not exist before 0.7.5 and is part of its adaptation to xint 1.4
+%% We thus took up this opportunity to speed up substantially composition.
+%% Very serious difficulties with constant polynomials. Had to handle them
+%% especially.
+%% OK, that was really tough, but advantage now is that composition
+%% at 0.7.5 should be more efficient than before. However when polynomials
+%% become big via composition, coefficients also are big and the time
+%% taken by arithmetic dominates. No time to test really, though, relieved
+%% I can release xint 1.4 at last. My basic polexpr test suite passes,
+%% but it goes back already to old releases.
+\protected\def\POL@applypolfunc#1#2%
+{%
+% This #2 may be also invoing \POL@applypolfunc...
+ \POL@get\POL@A\POL@applypolfunc@b#2#1%
+}%
+\def\POL@applypolfunc@b #1%
+{%
+% and now the have our Horner scheme nested macro
+% which hopefully will do its job with \POL@add, \POL@mul etc...
+ \POL@polglobalfalse
+ \expandafter#1\expanded
+ {{\POL@polglobaltrue\protected\def\noexpand\POL@result{\POL@A}}}%
+ \unless\ifPOL@pol
+ \odef\POL@result{#1{0}}%
+ \xintiiifZero{\POL@result}%
+ {\protected\def\POL@result{-1.\POL@empty{0/1[0]}}}%
+ {\protected\edef\POL@result{0.\POL@empty{\POL@result}}}%
+ \fi
+}%
+
%% ADDITION
\def\POL@add {\POL@get\POL@A\POL@add@b}%
\def\POL@add@b{\POL@get\POL@B\POL@add@c}%
\def\POL@add@c{%
- \global\POL@poltrue
+ \POL@polglobaltrue
\POL@ifZero\POL@A
{\let\POL@result\POL@B}%
{\POL@ifZero\POL@B
@@ -2341,11 +2559,11 @@
\def\POL@mul {\POL@get\POL@A\POL@mul@b}%
\def\POL@mul@b{\POL@get\POL@B\POL@mul@c}%
\def\POL@mul@c{%
- \global\POL@poltrue
+ \POL@polglobaltrue
\POL@ifZero\POL@A
- {\def\POL@result{-1.\empty{0/1[0]}}}%
+ {\protected\def\POL@result{-1.\POL@empty{0/1[0]}}}%
{\POL@ifZero\POL@B
- {\def\POL@result{-1.\empty{0/1[0]}}}%
+ {\protected\def\POL@result{-1.\POL@empty{0/1[0]}}}%
{\POL@@mul}}%
}%
\def\POL@@mul{%
@@ -2436,9 +2654,9 @@
%% POWERS (SCALAR EXPONENT...)
\def\POL@pow #1#2{%
- \global\POL@polfalse
+ \POL@polglobalfalse
\begingroup
- \def\POL@result{#1}%
+ \protected\def\POL@result{#1}%
#1%
\expandafter
\endgroup
@@ -2446,39 +2664,39 @@
\unless\ifPOL@pol
\edef\POL@A{\xintScalarPow{#1}{#2}}% no error check
\xintiiifZero{\POL@A}%
- {\def\POL@result{-1.\empty{0/1[0]}}}%
- {\edef\POL@result{0.\noexpand\empty{\POL@A}}}%
+ {\protected\def\POL@result{-1.\POL@empty{0/1[0]}}}%
+ {\protected\edef\POL@result{0.\POL@empty{\POL@A}}}%
\else
\edef\POL@B{\numexpr\xintNum{#2}\relax}% no check on exponent >= 0
\ifcase\POL@B
- \def\POL@result{0.\empty{1/1[0]}}%
+ \protected\def\POL@result{0.\POL@empty{1/1[0]}}%
\or
\let\POL@result\POL@A
\else
\POL@@pow@check
\fi
\fi
- \global\POL@poltrue
+ \POL@polglobaltrue
}%
\def\POL@@pow@check {%
% no problem here with leftover tokens!
% should I have used that I-don't-care technique more elsewhere?
\ifnum\@ne>\POL@A
- % polynomial is a constant, must get rid of dot and \empty
+ % polynomial is a constant, must get rid of dot and \empty (\POL@empty)
\edef\POL@A{\expandafter\xintScalarPow\romannumeral`^^@%
\expandafter\xint_gob_til_dot\POL@A{\POL@B}}%
\xintiiifZero{\POL@A}%
- {\def\POL@result{-1.\empty{0/1[0]}}}%
- {\edef\POL@result{0.\noexpand\empty{\POL@A}}}%
+ {\protected\def\POL@result{-1.\POL@empty{0/1[0]}}}%
+ {\protected\edef\POL@result{0.\POL@empty{\POL@A}}}%
\else
\ifnum\@ne=\POL@A
% perhaps a constant times X, check constant term
\xintiiifZero
{\expandafter\xint_firstoftwo\romannumeral`^^@%
\expandafter\xint_gob_til_dot\POL@A}
- {\edef\POL@result
+ {\protected\edef\POL@result
{\the\POL@B.% here at least 2.
- \noexpand\empty
+ \POL@empty
\romannumeral\xintreplicate{\POL@B}{{0/1[0]}}%
{\xintScalarPow
{\expandafter\xint_secondoftwo\romannumeral`^^@%
@@ -2531,8 +2749,8 @@
{#2}%
\expandafter\POL@mul\expandafter
{\expandafter\def\expandafter\POL@result\expandafter
- {\POL@result}\global\POL@poltrue}%
- {\def\POL@result{#1}\global\POL@poltrue}%
+ {\POL@result}\POL@polglobaltrue}%
+ {\protected\def\POL@result{#1}\POL@polglobaltrue}%
}%
%% DIVISION
@@ -2540,7 +2758,7 @@
\def\POL@div {\POL@get\POL@A\POL@div@b}%
\def\POL@div@b{\POL@get\POL@B\POL@div@c}%
\def\POL@div@c{%
- \global\POL@poltrue
+ \POL@polglobaltrue
\expandafter\POL@split\POL@A;\POL@degA\POL@polA
\expandafter\POL@split\POL@B;\POL@degB\POL@polB
\ifnum\POL@degA<\POL@degB\space
@@ -2599,9 +2817,9 @@
%% MINUS SIGN AS UNARY OPERATOR
\def\POL@opp #1{%
- \global\POL@polfalse
+ \POL@polglobalfalse
\begingroup
- \def\POL@result{#1}%
+ \protected\def\POL@result{#1}%
#1%
\expandafter
\endgroup
@@ -2609,13 +2827,13 @@
\unless\ifPOL@pol
\edef\POL@A{\xintScalarOpp{#1}}%
\xintiiifZero{\POL@A}%
- {\def\POL@result{-1.\empty{0/1[0]}}}%
- {\edef\POL@result{0.\noexpand\empty{\POL@A}}}%
+ {\protected\def\POL@result{-1.\POL@empty{0/1[0]}}}%
+ {\protected\edef\POL@result{0.\POL@empty{\POL@A}}}%
\else
- \edef\POL@B{0.\noexpand\empty{-1/1[0]}}%
+ \edef\POL@B{0.\POL@empty{-1/1[0]}}%
\POL@@mul
\fi
- \global\POL@poltrue
+ \POL@polglobaltrue
}%
@@ -2626,9 +2844,9 @@
\At\PolEvalAtExpr\krof {#1}{#3}%
}%
\newcommand\PolEvalAt[2]
- {\xintpraw{\csname XINT_expr_userfunc_#1\endcsname{#2}}}%
+ {\xintpraw{\csname XINT_expr_polfunc_#1\endcsname{#2}}}%
\newcommand\POL@eval[2]
- {\csname XINT_expr_userfunc_#1\endcsname{#2}}%
+ {\csname XINT_expr_polfunc_#1\endcsname{#2}}%
\newcommand\PolEvalAtExpr[2]{\xinttheexpr #1(#2)\relax}%
%
\newcommand\PolEvalReduced[3]{\romannumeral`^^@\POL@eval@fork
@@ -2637,11 +2855,11 @@
}%
\newcommand\PolEvalReducedAt[2]{%
\xintpraw % in order not to print denominator if the latter equals 1
- {\xintIrr{\csname XINT_expr_userfunc_#1\endcsname{#2}}[0]}%
+ {\xintIrr{\csname XINT_expr_polfunc_#1\endcsname{#2}}[0]}%
}%
\newcommand\PolEvalReducedAtExpr[2]{%
\xintpraw
- {\xintIrr{\romannumeral`^^@\xintthebareeval#1(#2)\relax}[0]}%
+ {\expandafter\xintIrr\romannumeral`^^@\xintthebareeval#1(#2)\relax[0]}%
}%
%
\newcommand\PolFloatEval[3]{\romannumeral`^^@\POL@eval@fork
@@ -2649,7 +2867,7 @@
\At\PolFloatEvalAtExpr\krof {#1}{#3}%
}%
\newcommand\PolFloatEvalAt[2]
- {\xintpfloat{\csname XINT_flexpr_userfunc_#1\endcsname{#2}}}%
+ {\xintpfloat{\csname XINT_flexpr_polfunc_#1\endcsname{#2}}}%
\newcommand\PolFloatEvalAtExpr[2]{\xintthefloatexpr #1(#2)\relax}%
@@ -2898,12 +3116,12 @@
\expandafter#1%
\fi {#3}#2}%
%
-\def\POL@toexprA #1#2\empty#3{%
+\def\POL@toexprA #1#2\POL@empty#3{%
\ifpoltoexprall\expandafter\POL@toexprall@b
\else\expandafter\POL@toexpr@b
\fi {#3}#2{0}1.%
}%
-\def\POL@toexprD #1#2#3\relax{% #3 has \empty to prevent brace removal
+\def\POL@toexprD #1#2#3\relax{% #3 has \empty (\POL@empty) to prevent brace removal
\expandafter\POL@toexprD@a\expandafter#2%
\the\numexpr #1\expandafter.\romannumeral0\xintrevwithbraces{#3}\relax
}%
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/polexpr.tlpobj new/tlpkg/tlpobj/polexpr.tlpobj
--- old/tlpkg/tlpobj/polexpr.tlpobj 2019-02-28 04:00:07.000000000 +0100
+++ new/tlpkg/tlpobj/polexpr.tlpobj 2020-02-02 01:58:19.000000000 +0100
@@ -1,6 +1,6 @@
name polexpr
category Package
-revision 50013
+revision 53633
shortdesc A parser for polynomial expressions
relocated 1
longdesc The package provides \poldef: a parser for polynomial
@@ -14,11 +14,10 @@
longdesc functions but additionally are also known to the package via
longdesc their coefficients. This allows dedicated macros to implement
longdesc polynomial algorithmics.
-runfiles size=28
+runfiles size=30
RELOC/tex/latex/polexpr/polexpr.sty
catalogue-also polynom
catalogue-ctan /macros/latex/contrib/polexpr
-catalogue-date 2019-02-12 20:32:28 +0100
catalogue-license lppl1.3c
-catalogue-topics maths
-catalogue-version 0.7.4
+catalogue-topics maths arithmetic calculation
+catalogue-version 0.7.5
++++++ polyglossia.doc.tar.xz ++++++
++++ 2710 lines of diff (skipped)
++++++ polyglossia.tar.xz ++++++
++++ 19158 lines of diff (skipped)
++++++ poormanlog.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/generic/poormanlog/README new/doc/generic/poormanlog/README
--- old/doc/generic/poormanlog/README 2019-02-18 00:01:29.000000000 +0100
+++ new/doc/generic/poormanlog/README 2019-09-11 23:20:03.000000000 +0200
@@ -1,126 +1,77 @@
-DOCUMENTATION OF POORMANLOG (v0.04, 2019/02/17)
-===========================
+POORMANLOG (v0.05, 2019/04/22)
+==============================
-(see License at bottom of this file)
+poormanlog.tex provides (expandable) macros \PMLogZ and \PMPowTen
+for computing base 10 logarithms and powers of 10 with a bit less
+than 9 digits of precision.
-The poormanlog.tex file has no dependencies. It provides (expandable)
-macros for base 10 logarithms and powers of 10 with a bit less than 9
-digits of precision (\PMLogZ and \PMPowTen), but its main use will be
-in conjunction with xintexpr.sty, as it provides to the latter
-functions log10() and pow10() and does on-demand modification of the
-power operators ** or ^ to compute according to pow10(y*log10(x)).
+It can be used with TeX (\input poormanlog) and has a LaTeX interface
+(\usepackage{poormanlog}).
-This usage will become obsolete when xintexpr will natively implement
-in arbitrary precision the log10() and pow10() functions.
+Regarding TeX, it requires the e-TeX \numexpr primitive, thus etex
+or pdftex or other binaries with the e-TeX extensions are required.
-The file can be used with Plain TeX (\input poormanlog) or as a
-regular LaTeX package.
+Changes
+-------
-Example (with Plain TeX)
-------------------------
-
- \input xintexpr.sty
- \input poormanlog.tex
-
- \xinteval{log10(3.14159265), pow10(2.71828183)}
-
- \poormanloghack{**}
-
- \xinteval{3.14159265**2.71828183}
-
- \poormanloghack{^}
-
- \xinteval{3.14159265^2.71828183}
-
- \bye
-
-
-User interface
---------------
-
-\PMLogZ{#1} expands in two steps.
-
-input: #1 is a mantissa ddddddddd (it may be an f-expandable macro)
- with exactly 9 digits (the first one must not be zero)
-output: 9 digits xxxxxxxxx such that log10(d.dddddddd) is about 0.xxxxxxxxx
-
-It seems from testing that absolute error is not much more than 1 unit in
-the last place, and result differs from rounded mathematical value by at
-most 1 unit in the 9th digit. (attention not rigorously proven).
-
-\PMPowTen{#1} expands in two steps.
-
-input: #1 is (or expands to) exactly 9 digits ddddddddd representing
- 0.ddddddddd
-output: 9 digits xxxxxxxxx, first one not zero,
- such that 10^0.ddddddddd is about x.xxxxxxxx
-
-It seems from testing that absolute error is less than 2 units in
-the last place, and result differs from rounded mathematical value by at
-most 2 units in the 9th digit. (attention not rigorously proven).
-
-\PoorManLogBaseTen{#1}
-
- in presence of xintfrac this will accept input as recognized by xintfrac
- and produce the logarithm in base 10 with an error (believed to be at
- most) about 1 unit in the 9th (i.e. last) fractional digit.
-
- xintfrac may be loaded before or after.
-
-\PoorManPowerOfTen{#1}
-
- in presence of package xintfrac this will accept input as recognized by
- xintfrac and produce the 10^#1 with 9 digits of float precision, with an
- error (believed to be) at most 2 units in the last place. Of course for
- this the input must be precise enough to have 9 fractional digits of
- **fixed point** precision.
+- v0.04 (2019/02/17): initial release. The package has no
+ dependencies and alongside two macros \PMLogZ and \PMPowTen
+ also provides some specific additions to xint.
- xintfrac may be loaded before or after.
+- v0.05 (2019/04/22): the additions/patches to xint originally
+ provided by poormanlog.tex got moved into xint 1.3f itself.
-\PoorManPower{#1}{#2}
+ Thus, poormanlog now reduces to the sole two macros
+ \PMLogZ and \PMPowTen. It can be imported by other macro
+ files with no danger of conflicting with future releases of
+ xint in case of concurrent usage.
- in presence of package xintfrac computes #1 to the power #2
- xintfrac may be loaded before or after.
+Files
+-----
-log10()
+poormanlog.tex
+poormanlog.sty
+README
- the log10() function is made available, if xintexpr.sty is loaded, for
- usage within \xinteval and \xintfloateval. If a log10() function is
- already defined in xintexpr it will not be overwritten
- xintexpr may be loaded before or after.
+\PMLogZ{#1} computes base-10 logarithms:
+----------------------------------------
-pow10()
+expansion: the argument is submitted to f-expansion and the macro
+ itself expands fully in two steps.
- pow10() function is made available, if xintexpr.sty is loaded, for usage
- within \xinteval and \xintfloateval. If a pow10() function is already
- defined in xintexpr it will not be overwritten
+input: #1 must be (or f-expands to) a mantissa ddddddddd with exactly
+ 9 digits, standing for D = d.dddddddd, 1 <= D < 10
- xintexpr may be loaded before or after.
+output: 9 digits xxxxxxxxx standing for X = 0.xxxxxxxxx such that
+ log10(D) is about X
-modification of ** or ^ operators in \xintexpr and \xintfloatexpr
+precision: It seems from testing that absolute error is not much
+ more than 1 unit in the last place, and result X differs
+ from rounded mathematical value of log10(D) by at most
+ 1 unit in the last place.
+ (*attention estimate not rigorously proven*).
- \poormanloghack{**}
- \poormanloghack{^}
- They will now use pow10(y*log10(x)) formula to compute x to the power y
+\PMPowTen{#1} computes fractional powers of 10:
+-----------------------------------------------
- Of course this means drop of precision, but allows non-integer exponents.
- (half-integer exponents are already accepted in \xintfloatexpr natively).
+expansion: the argument is submitted to f-expansion and the macro
+ itself expands fully in two steps.
- ** xintexpr must have been loaded before **
+input: #1 must be (f-expands to) exactly 9 digits xxxxxxxxx, standing
+ for X = 0.xxxxxxxxx
-Example with LaTeX :
+output: 9 digits ddddddddd, such that D = d.dddddddd is about 10^X
+ The first digit of output is never zero (i.e. 1 <= D < 10)
- \documentclass{article}
- \usepackage{xintexpr}
- \usepackage{poormanlog}% makes log10() and pow10() available
- \poormanloghack{**} % modifies ** operator
- \begin{document}
- \xinteval{3.14159265**2.71828183, log10(3.14159265), pow10(2.71828)}
- \end{document}
+precision: It seems from testing that absolute error is less than
+ 2 units in the last place, and result D differs from
+ rounded mathematical value of 10^X by at most 2 units in
+ the last place.
+ (*attention estimate not rigorously proven*).
LICENSE
@@ -141,5 +92,5 @@
The Author of this Work is Jean-Francois Burnol.
-This Work consists of files poormanlog.tex, poormanlog.sty and the
+This Work consists of files poormanlog.tex, poormanlog.sty and this
README.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/poormanlog.doc.tlpobj new/tlpkg/tlpobj/poormanlog.doc.tlpobj
--- old/tlpkg/tlpobj/poormanlog.doc.tlpobj 2019-02-28 04:00:20.000000000 +0100
+++ new/tlpkg/tlpobj/poormanlog.doc.tlpobj 2019-09-12 01:57:42.000000000 +0200
@@ -1,7 +1,7 @@
name poormanlog.doc
category Package
-revision 50052
+revision 52080
shortdesc doc files of poormanlog
relocated 1
-docfiles size=2
+docfiles size=1
RELOC/doc/generic/poormanlog/README
++++++ poormanlog.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/generic/poormanlog/poormanlog.sty new/tex/generic/poormanlog/poormanlog.sty
--- old/tex/generic/poormanlog/poormanlog.sty 2019-02-18 00:01:29.000000000 +0100
+++ new/tex/generic/poormanlog/poormanlog.sty 2019-09-11 23:20:03.000000000 +0200
@@ -1,4 +1,4 @@
-%% poormanlog.sty v0.04, 2019/02/17
+%% poormanlog.sty v0.05, 2019/04/22
%%
%% Copyright (C) 2019, Jean-Francois Burnol
%%
@@ -12,6 +12,6 @@
%% This Work consists of files poormanlog.tex, poormanlog.sty and
%% the accompanying README
%%
-\ProvidesPackage{poormanlog}[2019/02/17 v0.04 log and powers with 9 digits (JFB)]
+\ProvidesPackage{poormanlog}[2019/04/22 v0.05 base 10 log and pow with 9 digits (JFB)]
\input{poormanlog.tex}% see README file for user documentation
\endinput
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/generic/poormanlog/poormanlog.tex new/tex/generic/poormanlog/poormanlog.tex
--- old/tex/generic/poormanlog/poormanlog.tex 2019-02-18 23:56:15.000000000 +0100
+++ new/tex/generic/poormanlog/poormanlog.tex 2019-09-11 23:20:03.000000000 +0200
@@ -1,4 +1,4 @@
-%% poormanlog.tex v0.04, 2019/02/17
+%% poormanlog.tex v0.05, 2019/04/22
%%
%% Copyright (C) 2019, Jean-Francois Burnol
%%
@@ -12,11 +12,6 @@
%% This Work consists of files poormanlog.tex, poormanlog.sty and the
%% README
%%
-%% ************ BARELY TESTED ****************
-%% >>>>>>> WARNING FOR LACK OF TIME I HAVE NOT YET VALIDATED FULLY <<<<<
-%% >>>>>>> NOR HAVE I MADE PRECISE ESTIMATES. USE AT YOUR OWN RISK <<<<<
-%% (bug reports welcome)
-%% ************ BARELY TESTED ****************
%
% Package macro private prefix: \PML@
%
@@ -35,7 +30,7 @@
\catcode`\noexpand\^ \the\catcode`\^ %
\catcode`\noexpand\: \the\catcode`\: %
\catcode`\noexpand\* \the\catcode`\* %
- \catcode`\noexpand\@ \the\catcode`\@ %
+ \catcode`\noexpand\@ \the\catcode`\@\relax
}%
\catcode`\@ 11 %
\if1\ifx\@namedef\JFBUundefined1\else\ifx\@namedef\relax1\else0\fi\fi
@@ -284,138 +279,5 @@
\the\numexpr1000000000+\expandafter\PML@\romannumeral-`0#1.\relax
}%
\def\PMPowTen#1{\the\numexpr\expandafter\PML@Pa\romannumeral-`0#1.\relax}%
-%%
-%%
-%% ADD-ONS TO XINTFRAC : \PoorManLogBaseTen{#1}, \PoorManPowerOfTen{#1}
-%% and \PoorManPower{#1}{#2}
-%% Does not matter if xintfrac loaded before or after.
-%%
-\def\PoorManLogBaseTen{\romannumeral0\poormanlogbaseten}%
-\def\poormanlogbaseten #1%
- {\expandafter\PML@logbaseten\romannumeral0\XINTinfloat[9]{#1}}%
-\def\PML@logbaseten#1[#2]%
-{%
- \xintiiadd{\xintDSx{-9}{\the\numexpr#2+8\relax}}{\the\numexpr\PML@#1.}%
- [-9]%
-}%
-%
-\def\PoorManPowerOfTen{\the\numexpr\poormanpoweroften}%
-\def\poormanpoweroften #1%
- {\expandafter\PML@powoften\romannumeral0\xintraw{#1}}%
-\catcode`\_ 11 %
-\def\PML@powoften#1{%
- \xint_UDzerominusfork
- #1-\PML@powoften@zero
- 0#1\PML@powoften@neg
- 0-\PML@powoften@pos
- \krof #1%
-}%
-\catcode`\_ 8 %
-\def\PML@powoften@zero 0{1\relax}%/1[0]
-\def\PML@powoften@pos#1[#2]{%
- \expandafter\PML@powoften@pos@a\romannumeral0\xintround{9}{#1[#2]}.%
-}%
-\def\PML@powoften@pos@a#1.#2.{\PML@Pa#2.\expandafter[\the\numexpr-8+#1]}%
-\def\PML@powoften@neg#1[#2]{%
- \expandafter\PML@powoften@neg@a\romannumeral0\xintround{9}{#1[#2]}.%
-}%
-\def\PML@powoften@neg@a#1.#2.{\ifnum#2=0 \xint_afterfi{1\relax/1[#1]}\else
- \expandafter\expandafter\expandafter
- \PML@Pa\expandafter\@gobble\the\numexpr2000000000-#2.%
- \expandafter[\the\numexpr-9+#1\expandafter]\fi
-}%
-%
-\def\PoorManPower#1#2% #1**#2
-{%
- \PoorManPowerOfTen{\xintMul{#2}{\PoorManLogBaseTen{#1}}}%
-}%
-%%
-%% ADD-ONS TO XINTEXPR :
-%%
-%% log10(), pow10()
-%%
-%% Does not matter if xintexpr loaded before or after.
-%%
-\catcode`\_ 11 \catcode`\: 11 %
-\unless\ifcsname XINT_expr_func_log10\endcsname
-\@namedef{XINT_expr_func_log10}#1#2#3%
-{%
- \expandafter #1\expandafter #2\csname.=%
- \XINT:NEhook:one\PoorManLogBaseTen{\XINT_expr_unlock #3}\endcsname
-}%
-\fi
-\unless\ifcsname XINT_flexpr_func_log10\endcsname
-\expandafter\let\csname XINT_flexpr_func_log10\expandafter\endcsname
- \csname XINT_expr_func_log10\endcsname
-\fi
-%
-\unless\ifcsname XINT_expr_func_pow10\endcsname
-\@namedef{XINT_expr_func_pow10}#1#2#3%
-{%
- \expandafter #1\expandafter #2\csname.=%
- \XINT:NEhook:one\PoorManPowerOfTen{\XINT_expr_unlock #3}\endcsname
-}%
-\fi
-\unless\ifcsname XINT_flexpr_func_pow10\endcsname
-\expandafter\let\csname XINT_flexpr_func_pow10\expandafter\endcsname
- \csname XINT_expr_func_pow10\endcsname
-\fi
-%%
-%% On-demand modification of ** or ^ operators in \xintexpr and \xintfloatexpr
-%%
-\catcode`\* 11 \catcode0 12 %
-%
-\def\poormanloghack**{%
-\def\XINT_expr_op_** ##1%
-{%
- \expandafter \XINT_expr_until_**_a
- \expandafter ##1\romannumeral`^^@\expandafter\XINT_expr_getnext
-}%
-\def\XINT_expr_until_**_a ##1{%
-\def\XINT_expr_until_**_a ####1####2%
-{%
- \xint_UDsignfork
- ####2{\expandafter \XINT_expr_until_**_a \expandafter ##1%
- \romannumeral`^^@##1}%
- -{\XINT_expr_until_**_b ####1####2}%
- \krof
-}}\expandafter\XINT_expr_until_**_a\csname XINT_expr_op_-ix\endcsname
-\def\XINT_expr_until_**_b ##1##2##3##4%
-{%
- \ifnum ##2>\XINT_expr_precedence_**
- \xint_afterfi
- {\expandafter \XINT_expr_until_**_a \expandafter ##1%
- \romannumeral`^^@\csname XINT_expr_op_##3\endcsname {##4}}%
- \else
- \xint_afterfi
- {\expandafter ##2\expandafter ##3%
- \csname .=\XINT:NEhook:two
- \PoorManPower{\XINT_expr_unlock ##1}{\XINT_expr_unlock ##4}\endcsname
- }%
- \fi
-}%
-\let\XINT_flexpr_op_** \XINT_expr_op_**
-\let\XINT_flexpr_until_**_a\XINT_expr_until_**_a
-\let\XINT_flexpr_until_**_b\XINT_expr_until_**_b
-}%
-\catcode`\^ 11 \catcode`\* 7 %
-\def\poormanloghack^{%
-\def\XINT_expr_until_^_b ##1##2##3##4%
-{%
- \ifnum ##2>\XINT_expr_precedence_^
- \xint_afterfi
- {\expandafter \XINT_expr_until_^_a \expandafter ##1%
- \romannumeral`**@\csname XINT_expr_op_##3\endcsname {##4}}%
- \else
- \xint_afterfi
- {\expandafter ##2\expandafter ##3%
- \csname .=\XINT:NEhook:two
- \PoorManPower{\XINT_expr_unlock ##1}{\XINT_expr_unlock ##4}\endcsname
- }%
- \fi
-}%
-\let\XINT_flexpr_until_^_b\XINT_expr_until_^_b
-}%
\@tempa
-\def\poormanloghack#1{\csname poormanloghack#1\endcsname}%
\endinput
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/poormanlog.tlpobj new/tlpkg/tlpobj/poormanlog.tlpobj
--- old/tlpkg/tlpobj/poormanlog.tlpobj 2019-02-28 04:00:20.000000000 +0100
+++ new/tlpkg/tlpobj/poormanlog.tlpobj 2019-09-12 01:57:42.000000000 +0200
@@ -1,24 +1,24 @@
name poormanlog
category Package
-revision 50052
+revision 52080
shortdesc Logarithms and powers with (almost) 9 digits
relocated 1
-longdesc This small package (usable with Plain TeX, LaTeX, or others)
-longdesc provides macros for computing logarithms in base 10 and
-longdesc fractional powers of 10, achieving a bit less than 9 digits of
-longdesc precision. The package has no dependencies and can be used on
-longdesc its own, but becomes more user-friendly in the presence of the
-longdesc xintexpr package, as it then provides log10() and pow10()
-longdesc functions and optionally patches the ** or ^ power operators to
-longdesc use those. This usage will become obsolete if and when xintexpr
-longdesc will natively implement log10() and pow10() functions in
-longdesc arbitrary precision. The documentation is included in the
-longdesc README.
-runfiles size=5
+longdesc This small package (usable with Plain e-TeX, LaTeX, or others)
+longdesc with no dependencies provides two fast expandable macros
+longdesc computing logarithms in base 10 and fractional powers of 10.
+longdesc They handle arguments of 9 digit tokens which stand for either
+longdesc 1 <= d.dddddddd < 10 (for the log) or 0.xxxxxxxxx (for powers
+longdesc of 10). They achieve a precision of 1ulp for the logarithm and
+longdesc 2ulp for fractional powers of ten. Extension to other numerical
+longdesc ranges has to be done by user, via own macros or some math
+longdesc engine. The xintexpr package (at 1.3f) imports the poormanlog
+longdesc macros as core constituents of its log10(), pow10(), log(),
+longdesc exp() and pow() functions.
+runfiles size=4
RELOC/tex/generic/poormanlog/poormanlog.sty
RELOC/tex/generic/poormanlog/poormanlog.tex
catalogue-ctan /macros/generic/poormanlog
-catalogue-date 2019-02-19 04:58:07 +0100
+catalogue-date 2019-09-11 10:50:52 +0200
catalogue-license lppl1.3c
catalogue-topics calculation
-catalogue-version 0.04
+catalogue-version 0.05
++++++ prerex.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/prerex/README new/doc/latex/prerex/README
--- old/doc/latex/prerex/README 2017-11-29 23:07:17.000000000 +0100
+++ new/doc/latex/prerex/README 2019-11-15 22:34:58.000000000 +0100
@@ -1,4 +1,4 @@
-prerex, version 2017-11-28. Macros for prerequisite charts, with
+prerex, version 2019-11-15. Macros for prerequisite charts, with
associated editor and viewer applications.
This package consists of
@@ -19,9 +19,7 @@
or Qt-5 and poppler-qt libraries.
See chart.{pdf,svg} for a small example of a prerequisite
-chart and real-life examples at
-
-http://www.cs.queensu.ca/students/undergraduate/prerequisites/
+chart.
Prerequisite charts are useful to students selecting courses and
planning their programs, and to faculty and staff advising students
@@ -71,8 +69,8 @@
of it automatically follow. To install on most Unix-like platforms,
including OS-X and Cygwin on Windows:
- tar zxvf prerex-6.5.4.tar.gz
- cd prerex-6.5.4
+ tar zxvf prerex-6.8.0.tar.gz
+ cd prerex-6.8.0
./configure [--prefix=$HOME]
make
make install (as root if necessary)
Binary files old/doc/latex/prerex/intro.pdf and new/doc/latex/prerex/intro.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/prerex/intro.tex new/doc/latex/prerex/intro.tex
--- old/doc/latex/prerex/intro.tex 2014-10-18 00:03:09.000000000 +0200
+++ new/doc/latex/prerex/intro.tex 2019-11-14 22:53:35.000000000 +0100
@@ -118,11 +118,6 @@
\subsection{Prerex-Formatted Prerequisite Charts}
-\subsubsection*{Where can I see prerex-formatted charts in use?}
-
-There are several charts for both specialized and multi-disciplinary programs
-on-line here: \myurl{http://www.cs.queensu.ca/undergraduate/prerequisites}.
-
\subsubsection*{What file formats are used for prerex-formatted charts?}
The charts themselves are best distributed in the Portable Document
Binary files old/doc/latex/prerex/prerex-6.5.4.tar.gz and new/doc/latex/prerex/prerex-6.5.4.tar.gz differ
Binary files old/doc/latex/prerex/prerex-6.8.0.tar.gz and new/doc/latex/prerex/prerex-6.8.0.tar.gz differ
Binary files old/doc/latex/prerex/prerex.pdf and new/doc/latex/prerex/prerex.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/prerex/prerex.sty.7 new/doc/latex/prerex/prerex.sty.7
--- old/doc/latex/prerex/prerex.sty.7 2014-04-23 00:24:54.000000000 +0200
+++ new/doc/latex/prerex/prerex.sty.7 2019-11-15 22:34:58.000000000 +0100
@@ -191,7 +191,7 @@
.IR c= 0
will produce a
.I straight
-arrow. To change the default curvature, the user program may redefine the
+arrow. Negative curvatures are also allowed. To change the default curvature, the user program may redefine the
.B \eDefaultCurvature
command.
.SH WEB LINKS
Binary files old/doc/latex/prerex/prerex.sty.7.pdf and new/doc/latex/prerex/prerex.sty.7.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/prerex/prerex.tex new/doc/latex/prerex/prerex.tex
--- old/doc/latex/prerex/prerex.tex 2017-11-29 23:07:17.000000000 +0100
+++ new/doc/latex/prerex/prerex.tex 2019-11-15 22:34:58.000000000 +0100
@@ -240,7 +240,8 @@
$c= 0$
will produce a
straight
-arrow. To change the default curvature for all arrows, the user program may redefine the
+arrow. Negative curvatures are also allowed.
+To change the default curvature for all arrows, the user program may redefine the
\verb|\DefaultCurvature|
command.
\subsection{Web Links}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/man/man5/prerex.5 new/doc/man/man5/prerex.5
--- old/doc/man/man5/prerex.5 2014-04-23 00:24:54.000000000 +0200
+++ new/doc/man/man5/prerex.5 2019-11-15 22:34:58.000000000 +0100
@@ -1,4 +1,4 @@
-.TH PREREX 5 2012-03-21 "prerex_format" ""
+.TH PREREX 5 2019-11-15 "prerex_format" ""
.SH NAME
prerex_format -- a format for prerequisite-chart descriptions
.SH DESCRIPTION
@@ -159,7 +159,7 @@
.LP
where
.I c
-is an integer in the range 0-100 specifying the desired curvature; for example,
+is an integer in the range -100:100 specifying the desired curvature; for example,
.IR c= 0
will produce a
.I straight
Binary files old/doc/man/man5/prerex.man5.pdf and new/doc/man/man5/prerex.man5.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/prerex.doc.tlpobj new/tlpkg/tlpobj/prerex.doc.tlpobj
--- old/tlpkg/tlpobj/prerex.doc.tlpobj 2019-02-28 04:00:25.000000000 +0100
+++ new/tlpkg/tlpobj/prerex.doc.tlpobj 2020-03-24 02:03:26.000000000 +0100
@@ -1,9 +1,9 @@
name prerex.doc
category Package
-revision 45940
+revision 54512
shortdesc doc files of prerex
relocated 1
-docfiles size=240
+docfiles size=263
RELOC/doc/latex/prerex/README
RELOC/doc/latex/prerex/chart.pdf
RELOC/doc/latex/prerex/chart.svg
@@ -13,7 +13,7 @@
RELOC/doc/latex/prerex/introFonts.png
RELOC/doc/latex/prerex/introchart1.tex
RELOC/doc/latex/prerex/introchart2.tex
- RELOC/doc/latex/prerex/prerex-6.5.4.tar.gz
+ RELOC/doc/latex/prerex/prerex-6.8.0.tar.gz
RELOC/doc/latex/prerex/prerex.pdf
RELOC/doc/latex/prerex/prerex.sty.7
RELOC/doc/latex/prerex/prerex.sty.7.pdf
++++++ prerex.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/prerex/prerex.sty new/tex/latex/prerex/prerex.sty
--- old/tex/latex/prerex/prerex.sty 2014-04-23 00:24:54.000000000 +0200
+++ new/tex/latex/prerex/prerex.sty 2019-11-15 22:34:58.000000000 +0100
@@ -1,6 +1,6 @@
%% This is file 'prerex.sty'
%%
-%% Copyright (C) 2006-14 R. D. Tennent, rdt@cs.queensu.ca
+%% Copyright (C) 2006-19 R. D. Tennent, rdt@cs.queensu.ca
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -13,7 +13,7 @@
%% This work has the LPPL maintenance status "author-maintained".
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{prerex}[2014/03/22 v6.6.0 LaTeX style for prerequisite charts, pgf version]
+\ProvidesPackage{prerex}[2019/11/15 v6.8.0 LaTeX style for prerequisite charts, pgf version]
%
% Changelog is at the end of the file.
%
@@ -64,7 +64,7 @@
\definecolor{white}{rgb}{1.0,1.0,1.0} % not transparent, hides grid
\newcommand{\DefaultCurvature}{20}
-% where the argument should be in the range 0-100; 0 means no curvature.
+% where the argument should be in the range -100:100; 0 means no curvature.
\newcommand{\CourseURL}[3]{#3.html}
% where the arguments supplied at the call are the x and y coordinates
@@ -442,13 +442,24 @@
\def\@curved#1,#2,#3,#4;#5:{
- \setcounter{@dy}{#2-#4}
- \ifnum#3<#1
- \setcounter{@dx}{#1-#3}
- \setcounter{@myangle}{(-#5) * \the@dx * \the@dy * 2}
- \else
- \setcounter{@dx}{#3-#1}
- \setcounter{@myangle}{#5 * \the@dx * \the@dy * 2}
+ \ifnum#4<#2
+ \setcounter{@dy}{#2-#4}
+ \ifnum#3<#1
+ \setcounter{@dx}{#1-#3}
+ \setcounter{@myangle}{-#5 * \the@dx * \the@dy * 2}
+ \else
+ \setcounter{@dx}{#3-#1}
+ \setcounter{@myangle}{#5 * \the@dx * \the@dy * 2}
+ \fi
+ \else
+ \setcounter{@dy}{#4-#2}
+ \ifnum#3<#1
+ \setcounter{@dx}{#1-#3}
+ \setcounter{@myangle}{-#5 * \the@dx * \the@dy * 2}
+ \else
+ \setcounter{@dx}{#3-#1}
+ \setcounter{@myangle}{#5 * \the@dx * \the@dy * 2}
+ \fi
\fi
\setcounter{@myangle}{\the@myangle / ((\the@dx + \the@dy) * (\the@dx + \the@dy))}
\setcounter{@inangle}{180 - \the@myangle}
@@ -474,13 +485,24 @@
}
\def\@curvedDashed#1,#2,#3,#4;#5:{
- \setcounter{@dy}{#2-#4}
- \ifnum#3<#1
- \setcounter{@dx}{#1-#3}
- \setcounter{@myangle}{(-#5) * \the@dx * \the@dy * 2}
- \else
- \setcounter{@dx}{#3-#1}
- \setcounter{@myangle}{#5 * \the@dx * \the@dy * 2}
+ \ifnum#4<#2
+ \setcounter{@dy}{#2-#4}
+ \ifnum#3<#1
+ \setcounter{@dx}{#1-#3}
+ \setcounter{@myangle}{-#5 * \the@dx * \the@dy * 2}
+ \else
+ \setcounter{@dx}{#3-#1}
+ \setcounter{@myangle}{#5 * \the@dx * \the@dy * 2}
+ \fi
+ \else
+ \setcounter{@dy}{#4-#2}
+ \ifnum#3<#1
+ \setcounter{@dx}{#1-#3}
+ \setcounter{@myangle}{-#5 * \the@dx * \the@dy * 2}
+ \else
+ \setcounter{@dx}{#3-#1}
+ \setcounter{@myangle}{#5 * \the@dx * \the@dy * 2}
+ \fi
\fi
\setcounter{@myangle}{\the@myangle / ((\the@dx + \the@dy) * (\the@dx + \the@dy))}
\setcounter{@inangle}{180 - \the@myangle}
@@ -506,13 +528,24 @@
}
\def\@curvedDotted#1,#2,#3,#4;#5:{
- \setcounter{@dy}{#2-#4}
- \ifnum#3<#1
- \setcounter{@dx}{#1-#3}
- \setcounter{@myangle}{(-#5) * \the@dx * \the@dy * 2}
- \else
- \setcounter{@dx}{#3-#1}
- \setcounter{@myangle}{#5 * \the@dx * \the@dy * 2}
+ \ifnum#4<#2
+ \setcounter{@dy}{#2-#4}
+ \ifnum#3<#1
+ \setcounter{@dx}{#1-#3}
+ \setcounter{@myangle}{-#5 * \the@dx * \the@dy * 2}
+ \else
+ \setcounter{@dx}{#3-#1}
+ \setcounter{@myangle}{#5 * \the@dx * \the@dy * 2}
+ \fi
+ \else
+ \setcounter{@dy}{#4-#2}
+ \ifnum#3<#1
+ \setcounter{@dx}{#1-#3}
+ \setcounter{@myangle}{-#5 * \the@dx * \the@dy * 2}
+ \else
+ \setcounter{@dx}{#3-#1}
+ \setcounter{@myangle}{#5 * \the@dx * \the@dy * 2}
+ \fi
\fi
\setcounter{@myangle}{\the@myangle / ((\the@dx + \the@dy) * (\the@dx + \the@dy))}
\setcounter{@inangle}{180 - \the@myangle}
@@ -600,6 +633,14 @@
%
% Changelog:
%
+% Vesrsion 6.8.0
+%
+% allow for negative curvatures
+%
+% Versin 6.7.0
+%
+% allow for curved upward arrows
+%
% Version 6.6.0
%
% remove code to generate \jobname.map and \jobname.sh files
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/prerex.tlpobj new/tlpkg/tlpobj/prerex.tlpobj
--- old/tlpkg/tlpobj/prerex.tlpobj 2019-02-28 04:00:25.000000000 +0100
+++ new/tlpkg/tlpobj/prerex.tlpobj 2020-03-24 02:03:27.000000000 +0100
@@ -1,6 +1,6 @@
name prerex
category Package
-revision 45940
+revision 54512
shortdesc Interactive editor and macro support for prerequisite charts
relocated 1
longdesc This package consists of prerex.sty, a LaTeX package for
@@ -14,7 +14,5 @@
runfiles size=6
RELOC/tex/latex/prerex/prerex.sty
catalogue-ctan /graphics/prerex
-catalogue-date 2017-12-03 06:19:13 +0100
-catalogue-license gpl
+catalogue-license gpl2 lppl
catalogue-topics graphics-prep
-catalogue-version a
++++++ preview.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/preview/README new/doc/latex/preview/README
--- old/doc/latex/preview/README 2007-01-15 01:54:14.000000000 +0100
+++ new/doc/latex/preview/README 2019-10-31 23:22:47.000000000 +0100
@@ -22,13 +22,13 @@
The preview package is being developed along and distributed with
AUCTeX. It can therefore be obtained as part of AUCTeX distribution
-files available at URL:ftp://ftp.gnu.org/pub/gnu/auctex/ or its
+files available at URL:https://ftp.gnu.org/pub/gnu/auctex/ or its
mirror at CTAN:support/auctex. CTAN also provides a standalone
version at CTAN:macros/latex/contrib/preview. The project page at
-URL:http://savannah.gnu.org/projects/auctex/ offers downloads and
+URL:https://savannah.gnu.org/projects/auctex/ offers downloads and
anonymous CVS access for cutting edge versions. For more information
about the preview package please refer to the home page of AUCTeX at
-URL:http://www.gnu.org/software/auctex/.
+URL:https://www.gnu.org/software/auctex/.
Installation
------------
Binary files old/doc/latex/preview/preview.pdf and new/doc/latex/preview/preview.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/preview.doc.tlpobj new/tlpkg/tlpobj/preview.doc.tlpobj
--- old/tlpkg/tlpobj/preview.doc.tlpobj 2019-02-28 04:00:31.000000000 +0100
+++ new/tlpkg/tlpobj/preview.doc.tlpobj 2019-11-01 02:04:46.000000000 +0100
@@ -1,6 +1,6 @@
name preview.doc
category Package
-revision 44883
+revision 52590
shortdesc doc files of preview
relocated 1
docfiles size=43
++++++ preview.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/preview/prauctex.cfg new/tex/latex/preview/prauctex.cfg
--- old/tex/latex/preview/prauctex.cfg 2007-01-15 01:54:14.000000000 +0100
+++ new/tex/latex/preview/prauctex.cfg 2019-10-31 23:22:47.000000000 +0100
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% The preview style for extracting previews from LaTeX documents.
-%% Developed as part of AUCTeX URL:http://www.gnu.org/software/auctex.
+%% Developed as part of AUCTeX URL:https://www.gnu.org/software/auctex/.
\PreviewMacro*[[][#1{}]\footnote
\PreviewMacro*[?[{@{[]}}{}][#1]\item
\PreviewMacro*\emph
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/preview/prauctex.def new/tex/latex/preview/prauctex.def
--- old/tex/latex/preview/prauctex.def 2007-01-15 01:54:14.000000000 +0100
+++ new/tex/latex/preview/prauctex.def 2019-10-31 23:22:47.000000000 +0100
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% The preview style for extracting previews from LaTeX documents.
-%% Developed as part of AUCTeX URL:http://www.gnu.org/software/auctex.
+%% Developed as part of AUCTeX URL:https://www.gnu.org/software/auctex/.
\ifPreview\else\expandafter\endinput\fi
\nofiles
\preview@delay{\nonstopmode}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/preview/prcounters.def new/tex/latex/preview/prcounters.def
--- old/tex/latex/preview/prcounters.def 2010-02-22 00:13:39.000000000 +0100
+++ new/tex/latex/preview/prcounters.def 2019-10-31 23:22:47.000000000 +0100
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% The preview style for extracting previews from LaTeX documents.
-%% Developed as part of AUCTeX URL:http://www.gnu.org/software/auctex.
+%% Developed as part of AUCTeX URL:https://www.gnu.org/software/auctex/.
\ifPreview\else\expandafter\endinput\fi
\def\pr@eltprint#1{\expandafter\@gobble\ifnum\value{#1}=0%
\csname pr@c@#1\endcsname\else\relax
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/preview/preview.sty new/tex/latex/preview/preview.sty
--- old/tex/latex/preview/preview.sty 2017-07-24 22:54:21.000000000 +0200
+++ new/tex/latex/preview/preview.sty 2019-10-31 23:22:47.000000000 +0100
@@ -22,11 +22,11 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% The preview style for extracting previews from LaTeX documents.
-%% Developed as part of AUCTeX URL:http://www.gnu.org/software/auctex.
+%% Developed as part of AUCTeX URL:https://www.gnu.org/software/auctex/.
\NeedsTeXFormat{LaTeX2e} \def\reserved@a #1#2$#3:
#4${\xdef#1{\reserved@c #2#4 $}} \def\reserved@c #1 #2${#1}
\begingroup \catcode`\_=12
-\reserved@a\pr@version $Name: release_11_91 $ \ifx\pr@version\@empty
+\reserved@a\pr@version $Name: release_12_2 $ \ifx\pr@version\@empty
\reserved@a\pr@version CVS-$Revision: 1.126 $ \endgroup \else
\def\next release_{} \lccode`\_=`.
\edef\next{\lowercase{\endgroup
@@ -215,7 +215,7 @@
\ProcessOptions\relax
\ifPreview\else\expandafter\endinput\fi
%% The preview style for extracting previews from LaTeX documents.
-%% Developed as part of AUCTeX URL:http://www.gnu.org/software/auctex.
+%% Developed as part of AUCTeX URL:https://www.gnu.org/software/auctex/.
\newif\ifpr@outer
\pr@outertrue
\newcount\pr@snippet
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/preview/prfootnotes.def new/tex/latex/preview/prfootnotes.def
--- old/tex/latex/preview/prfootnotes.def 2007-01-15 01:54:14.000000000 +0100
+++ new/tex/latex/preview/prfootnotes.def 2019-10-31 23:22:47.000000000 +0100
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% The preview style for extracting previews from LaTeX documents.
-%% Developed as part of AUCTeX URL:http://www.gnu.org/software/auctex.
+%% Developed as part of AUCTeX URL:https://www.gnu.org/software/auctex/.
\PreviewMacro[[!]\footnote %]
\endinput
%%
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/preview/prlyx.def new/tex/latex/preview/prlyx.def
--- old/tex/latex/preview/prlyx.def 2007-01-15 01:54:14.000000000 +0100
+++ new/tex/latex/preview/prlyx.def 2019-10-31 23:22:47.000000000 +0100
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% The preview style for extracting previews from LaTeX documents.
-%% Developed as part of AUCTeX URL:http://www.gnu.org/software/auctex.
+%% Developed as part of AUCTeX URL:https://www.gnu.org/software/auctex/.
\ifPreview\else\expandafter\endinput\fi
\pr@loadcfg{prlyx}
\g@addto@macro\pr@ship@end{\typeout{Preview:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/preview/prshowbox.def new/tex/latex/preview/prshowbox.def
--- old/tex/latex/preview/prshowbox.def 2007-01-15 01:54:14.000000000 +0100
+++ new/tex/latex/preview/prshowbox.def 2019-10-31 23:22:47.000000000 +0100
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% The preview style for extracting previews from LaTeX documents.
-%% Developed as part of AUCTeX URL:http://www.gnu.org/software/auctex.
+%% Developed as part of AUCTeX URL:https://www.gnu.org/software/auctex/.
\ifPreview\else\expandafter\endinput\fi
\AtEndOfPackage{%
\showboxbreadth\maxdimen
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/preview/prshowlabels.def new/tex/latex/preview/prshowlabels.def
--- old/tex/latex/preview/prshowlabels.def 2007-01-15 01:54:14.000000000 +0100
+++ new/tex/latex/preview/prshowlabels.def 2019-10-31 23:22:47.000000000 +0100
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% The preview style for extracting previews from LaTeX documents.
-%% Developed as part of AUCTeX URL:http://www.gnu.org/software/auctex.
+%% Developed as part of AUCTeX URL:https://www.gnu.org/software/auctex/.
\ifPreview\else\expandafter\endinput\fi
\newbox\pr@labelbox
\def\pr@label#1{\pr@@label{#1}%
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/preview/prtightpage.def new/tex/latex/preview/prtightpage.def
--- old/tex/latex/preview/prtightpage.def 2010-02-22 00:13:39.000000000 +0100
+++ new/tex/latex/preview/prtightpage.def 2019-10-31 23:22:47.000000000 +0100
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% The preview style for extracting previews from LaTeX documents.
-%% Developed as part of AUCTeX URL:http://www.gnu.org/software/auctex.
+%% Developed as part of AUCTeX URL:https://www.gnu.org/software/auctex/.
\ifx\PreviewBorder\@undefined
\newdimen\PreviewBorder
\PreviewBorder=0.50001bp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/preview/prtracingall.def new/tex/latex/preview/prtracingall.def
--- old/tex/latex/preview/prtracingall.def 2007-01-15 01:54:14.000000000 +0100
+++ new/tex/latex/preview/prtracingall.def 2019-10-31 23:22:47.000000000 +0100
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% The preview style for extracting previews from LaTeX documents.
-%% Developed as part of AUCTeX URL:http://www.gnu.org/software/auctex.
+%% Developed as part of AUCTeX URL:https://www.gnu.org/software/auctex/.
\ifPreview\else\expandafter\endinput\fi
\pr@addto@front\pr@ship@start{\let\tracingonline\count@
\let\errorstopmode\@empty\tracingall}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/preview.tlpobj new/tlpkg/tlpobj/preview.tlpobj
--- old/tlpkg/tlpobj/preview.tlpobj 2019-02-28 04:00:32.000000000 +0100
+++ new/tlpkg/tlpobj/preview.tlpobj 2019-11-01 02:04:46.000000000 +0100
@@ -1,6 +1,6 @@
name preview
category Package
-revision 44883
+revision 52590
shortdesc Extract bits of a LaTeX source for output
relocated 1
longdesc The package is a free-standing part of the preview-latex
@@ -19,11 +19,14 @@
RELOC/tex/latex/preview/prshowlabels.def
RELOC/tex/latex/preview/prtightpage.def
RELOC/tex/latex/preview/prtracingall.def
+catalogue-contact-announce https://lists.gnu.org/mailman/listinfo/info-auctex
catalogue-contact-bugs https://debbugs.gnu.org/cgi/pkgreport.cgi?package=auctex
+catalogue-contact-development https://lists.gnu.org/mailman/listinfo/auctex-devel
catalogue-contact-home https://www.gnu.org/software/auctex/preview-latex.html
catalogue-contact-repository https://git.savannah.gnu.org/gitweb/?p=auctex.git
+catalogue-contact-support https://lists.gnu.org/mailman/listinfo/auctex
catalogue-ctan /macros/latex/contrib/preview
-catalogue-date 2018-01-06 12:14:59 +0100
+catalogue-date 2019-10-31 09:36:29 +0100
catalogue-license gpl3
catalogue-topics chunks
-catalogue-version 11.91
+catalogue-version 12.2
++++++ prftree.doc.tar.xz ++++++
Binary files old/doc/latex/prftree/prftreedoc.pdf and new/doc/latex/prftree/prftreedoc.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/prftree/prftreedoc.tex new/doc/latex/prftree/prftreedoc.tex
--- old/doc/latex/prftree/prftreedoc.tex 2016-09-03 23:36:10.000000000 +0200
+++ new/doc/latex/prftree/prftreedoc.tex 2019-06-19 22:35:11.000000000 +0200
@@ -1,8 +1,9 @@
\documentclass{amsart}
\usepackage{color}
\usepackage{graphics}
-\usepackage[ND,SEQ]{prftree}
+\usepackage[ND,SEQ,EQ,ML]{prftree}
\usepackage{url}
+\usepackage{microtype}
\setlength{\fboxsep}{0pt}
@@ -54,7 +55,7 @@
% --------------------------
\clearpage
\section{Basic Commands}\label{sec:basic_commands}
-The package is invoked by putting \verb|\usepackage{prfree.sty}| in
+The package is invoked by putting \verb|\usepackage{prftree.sty}| in
the preamble of the document, and installation reduces to put the file
\texttt{prftree.sty} somewhere in the \LaTeX{} search
path.\vspace{2ex}
@@ -157,8 +158,7 @@
\verb|[noline,straight,d]| is the same as \verb|[noline]|.
The conjunction introduction rule illustrates the various line
-options\footnote{The reader is invited to look at the source code of
- the documentation to see how these examples have been implemented.}:
+options:
\begin{displaymath}
\begin{array}{lcc@{\qquad}l}
\mbox{default (single straight)} &
@@ -207,7 +207,14 @@
{A}{B}{A \wedge B} &
\texttt{[noline]}
\end{array}
-\end{displaymath}\vspace{1ex}
+\end{displaymath}
+These examples are implemented in an array whose cells have the form
+\begin{center}
+ \verb|\prftree[|\emph{option}\verb|]{A}{B}{A \wedge B} &|
+ \verb|\prftree[|\emph{option}\verb|,r]{$\scriptstyle\wedge\mathrm{I}$}|
+\end{center}
+in which the option part is the one on the right of the
+picture.\vspace{1ex}
An assumption is a special proof tree, built by the command:
\begin{displaymath}
@@ -967,42 +974,128 @@
The basic commands illustrated so far allow to control proof trees in
all aspects, but they tend to be verbose in practise. Thus, a number
of abbreviations are provided to make handier the writing of proofs.
-
Since they may collide with other packages, these macros are activated
-by suitable options. By loading the package as
-\verb|\usepackage[ND]{prftree.sty}|, the following abbreviations are
-available, which correspond to the inference rule of natural deduction
-calculi:
+by suitable options. Multiple options can be used at the same time.
+
+\subsection{Natural deduction}
+By loading the package with the \verb|ND| option, the following
+abbreviations are available, which correspond to the inference rules
+of natural deduction calculi:
\begin{itemize}
\item \verb|\NDA|: assumption;
\item \verb|\NDAL|: labelled assumption;
-\item \verb|\NDD|: bounded assumption;
-\item \verb|\NDDL|: labelled bounded assumption;
+\item \verb|\NDD|: discharged assumption;
+\item \verb|\NDDL|: labelled discharged assumption;
\item \verb|\NDP|: generic proof tree;
-\item \verb|\NDANDI|: conjunction introduction;
-\item \verb|\NDANDER|: conjunction elimination, right;
-\item \verb|\NDANDEL|: conjunction elimination, left;
-\item \verb|\NDANDE|: conjunction elimination, unspecified;
-\item \verb|\NDORIR|: disjunction introduction, right;
-\item \verb|\NDORIL|: disjunction introduction, left;
-\item \verb|\NDORI|: disjunction introduction, unspecified;
-\item \verb|\NDORE|: disjunction elimination;
-\item \verb|\NDOREL|: labelled disjunction elimination;
-\item \verb|\NDIMPI|: implication introduction;
-\item \verb|\NDIMPIL|: labelled implication introduction;
-\item \verb|\NDIMPE|: implication elimination;
-\item \verb|\NDNOTI|: negation introduction;
-\item \verb|\NDNOTIL|: labelled negation introduction;
-\item \verb|\NDNOTE|: negation elimination;
-\item \verb|\NDALLI|: universal quantifier introduction;
-\item \verb|\NDALLE|: universal quantifier elimination;
-\item \verb|\NDEXI|: existential quantifier introduction;
-\item \verb|\NDEXE|: existential quantifier elimination;
-\item \verb|\NDEXE|: labelled existential quantifier elimination;
-\item \verb|\NDTI|: truth introduction;
-\item \verb|\NDFE|: falsity elimination;
-\item \verb|\NDLEM|: law of Excluded Middle;
-\item \verb|\NDAX|: a generic axiom rule.
+\item \verb|\NDAX|: a generic axiom rule;
+ \begin{displaymath}
+ \vcenter{\NDAX{x = x}}\enspace;
+ \end{displaymath}
+\item \verb|\NDANDI|: conjunction introduction
+ \begin{displaymath}
+ \vcenter{\NDANDI{\NDA{A}}{\NDA{B}}{A \wedge B}}\enspace;
+ \end{displaymath}
+\item \verb|\NDANDER|, \verb|\NDANDEL|, \verb|\NDANDE|: conjunction
+ elimination right, left, and unspecified, respectively
+ \begin{displaymath}
+ \vcenter{\NDANDEL{\NDA{A \wedge B}}{\NDA{A}}} \quad
+ \vcenter{\NDANDER{\NDA{A \wedge B}}{\NDA{B}}}\enspace;
+ \end{displaymath}
+\item \verb|\NDORIR|, \verb|\NDORIL|, \verb|\NDORI|: disjunction
+ introduction right, left, and unspecified, respectively
+ \begin{displaymath}
+ \vcenter{\NDORIL{\NDA{A}}{\NDA{A \vee B}}} \quad
+ \vcenter{\NDORIR{\NDA{B}}{\NDA{A \vee B}}}\enspace;
+ \end{displaymath}
+\item \verb|\NDOREL|, \verb|\NDORE|: disjunction elimination, possibly
+ labelled
+ \begin{displaymath}
+ \begin{prfenv}
+ \vcenter{\NDOREL{ndorel:1}{\NDA{A \vee B}}
+ {\prfsummary{\NDDL{ndorel:1}{A}}{C}}
+ {\prfsummary{\NDDL{[l]ndorel:1}{B}}{C}}{C}} \quad
+ \vcenter{\NDORE{\NDA{A \vee B}}{\prfsummary{\NDA{A}}{C}}
+ {\prfsummary{\NDA{B}}{C}}{C}}\enspace;
+ \end{prfenv}
+ \end{displaymath}
+\item \verb|\NDIMPIL|, \verb|\NDIMPI|: implication introduction,
+ possibly labelled
+ \begin{displaymath}
+ \begin{prfenv}
+ \vcenter{\NDIMPIL{ndimpil:1}
+ {\prfsummary{\NDDL{ndimpil:1}{A}}{B}}
+ {A \rightarrow B}} \quad
+ \vcenter{\NDIMPI{\prfsummary{\NDA{A}}{B}}{A \rightarrow B}}
+ \enspace;
+ \end{prfenv}
+ \end{displaymath}
+\item \verb|\NDIMPE|: implication elimination
+ \begin{displaymath}
+ \begin{prfenv}
+ \vcenter{\NDIMPE{\NDA{A \rightarrow B}}{\NDA{A}}{B}}\enspace;
+ \end{prfenv}
+ \end{displaymath}
+\item \verb|\NDNOTIL|, \verb|\NDNOTI|: negation introduction, possibly
+ labelled
+ \begin{displaymath}
+ \begin{prfenv}
+ \vcenter{\NDNOTIL{ndnotil:1}
+ {\prfsummary{\NDDL{ndnotil:1}{A}}{\bot}}{\neg A}}\quad
+ \vcenter{\NDNOTI{\prfsummary{\NDA{A}}{\bot}}{\neg A}}\enspace;
+ \end{prfenv}
+ \end{displaymath}
+\item \verb|\NDNOTE|: negation elimination
+ \begin{displaymath}
+ \begin{prfenv}
+ \vcenter{\NDNOTE{\NDA{\neg A}}{\NDA{A}}{\bot}}\enspace;
+ \end{prfenv}
+ \end{displaymath}
+\item \verb|\NDALLI|: universal quantifier introduction
+ \begin{displaymath}
+ \begin{prfenv}
+ \vcenter{\NDALLI{\NDA{A}}{\forall x.\, A}}\enspace;
+ \end{prfenv}
+ \end{displaymath}
+\item \verb|\NDALLE|: universal quantifier elimination
+ \begin{displaymath}
+ \begin{prfenv}
+ \vcenter{\NDALLE{\NDA{\forall x.\, A}}{A[t/x]}}\enspace;
+ \end{prfenv}
+ \end{displaymath}
+\item \verb|\NDEXI|: existential quantifier introduction
+ \begin{displaymath}
+ \begin{prfenv}
+ \vcenter{\NDEXI{\NDA{A[t/x]}}{\exists x.\, A}}\enspace;
+ \end{prfenv}
+ \end{displaymath}
+\item \verb|\NDEXEL|, \verb|\NDEXE|: existential quantifier
+ elimination, possibly labelled
+ \begin{displaymath}
+ \begin{prfenv}
+ \vcenter{\NDEXEL{ndexel:1}{\NDA{\exists x.\, A}}
+ {\prfsummary{\NDDL{ndexel:1}{A}}{B}}{B}}\quad
+ \vcenter{\NDEXE{\NDA{\exists x.\, A}}
+ {\prfsummary{\NDA{A}}{B}}{B}}\enspace;
+ \end{prfenv}
+ \end{displaymath}
+\item \verb|\NDTI|: truth introduction
+ \begin{displaymath}
+ \begin{prfenv}
+ \vcenter{\NDTI{\top}}\enspace;
+ \end{prfenv}
+ \end{displaymath}
+\item \verb|\NDFE|: falsity elimination
+ \begin{displaymath}
+ \begin{prfenv}
+ \vcenter{\NDFE{\NDA{\bot}}{A}}\enspace;
+ \end{prfenv}
+ \end{displaymath}
+\item \verb|\NDLEM|: law of Excluded Middle
+ \begin{displaymath}
+ \begin{prfenv}
+ \vcenter{\NDLEM{A \vee \neg A}}\enspace.
+ \end{prfenv}
+ \end{displaymath}
\end{itemize}
The labels, when present, are the first argument, the rest being the
@@ -1033,36 +1126,127 @@
{\neg\neg A \supset A}
\end{verbatim}\vspace{2ex}
-Similarly, by loading the package as
-\verb|\usepackage[SEQ]{prftree.sty}|, the following abbreviations
-are available, which roughly correspond to the inference rule of
-sequent calculi:
+\subsection{Sequents}
+Similarly, by loading the package with the \verb|SEQ| option, the
+following abbreviations are available, which roughly correspond to the
+inference rule of sequent calculi:
\begin{itemize}
\item \verb|\SEQA|: assumption;
-\item \verb|\SEQD|: bounded assumption;
+\item \verb|\SEQD|: bounded assumption (not normally used, but handy
+ to have in case of fancy calculi);
\item \verb|\SEQP|: generic proof;
-\item \verb|\SEQAX|: axiom rule;
-\item \verb|\SEQLF|: left falsity;
-\item \verb|\SEQLW|: left weakening;
-\item \verb|\SEQRW|: right weakening;
-\item \verb|\SEQLC|: left contraction;
-\item \verb|\SEQRC|: right contraction;
-\item \verb|\SEQLAND|: left conjunction;
-\item \verb|\SEQRAND|: right conjunction;
-\item \verb|\SEQLOR|: left disjunction;
-\item \verb|\SEQROR|: right disjunction;
-\item \verb|\SEQLIMP|: left implication;
-\item \verb|\SEQRIMP|: right implication;
-\item \verb|\SEQLALL|: left universal quantification;
-\item \verb|\SEQRALL|: right universal quantification;
-\item \verb|\SEQLEX|: left existential quantification;
-\item \verb|\SEQREX|: right existential quantification;
-\item \verb|\SEQCUT|: cut rule.
+\item \verb|\SEQAX|: axiom rule
+ \begin{displaymath}
+ \vcenter{\SEQAX{A \Rightarrow A}}\enspace;
+ \end{displaymath}
+\item \verb|\SEQLF|: left falsity
+ \begin{displaymath}
+ \vcenter{\SEQLF{\bot \Rightarrow {}}}\enspace;
+ \end{displaymath}
+\item \verb|\SEQLW|, \verb|\SEQRW|: left and right weakening
+ \begin{displaymath}
+ \vcenter{\SEQLW{\Gamma \Rightarrow \Delta}{A, \Gamma \Rightarrow
+ \Delta}}\quad
+ \vcenter{\SEQLW{\Gamma \Rightarrow \Delta}{\Gamma \Rightarrow
+ \Delta, A}}\enspace;
+ \end{displaymath}
+\item \verb|\SEQLC|, \verb|\SEQRC|: left and right contraction
+ \begin{displaymath}
+ \vcenter{\SEQLC{A, A, \Gamma \Rightarrow \Delta}{A, \Gamma
+ \Rightarrow \Delta}}\quad
+ \vcenter{\SEQRC{\Gamma \Rightarrow \Delta, A, A}{\Gamma
+ \Rightarrow \Delta, A}}\enspace;
+ \end{displaymath}
+\item \verb|\SEQLAND|, \verb|\SEQLANDL|, \verb|\SEQLANDR|: left
+ conjunction; the \verb|L| and \verb|R| variants specify which side
+ of the conjunction is introduced
+ \begin{displaymath}
+ \vcenter{\SEQLANDL{A, \Gamma \Rightarrow \Delta}{A \wedge B, \Gamma
+ \Rightarrow \Delta}}\quad
+ \vcenter{\SEQLANDR{B, \Gamma \Rightarrow \Delta}{A \wedge B, \Gamma
+ \Rightarrow \Delta}}\enspace;
+ \end{displaymath}
+\item \verb|\SEQRAND|: right conjunction
+ \begin{displaymath}
+ \vcenter{\SEQRAND{\Gamma \Rightarrow \Delta, A}{\Gamma \Rightarrow
+ \Delta, B}{\Gamma \Rightarrow \Delta, A \wedge B}}\enspace;
+ \end{displaymath}
+\item \verb|\SEQLOR|: left disjunction
+ \begin{displaymath}
+ \vcenter{\SEQLOR{A, \Gamma \Rightarrow \Delta}{B, \Gamma
+ \Rightarrow \Delta}{A \vee B, \Gamma \Rightarrow
+ \Delta}}\enspace;
+ \end{displaymath}
+\item \verb|\SEQROR|, \verb|\SEQRORL|, \verb|\SEQRORR|: right
+ disjunction; the \verb|R| and \verb|L| variants specify which side
+ of the disjunction is introduced
+ \begin{displaymath}
+ \vcenter{\SEQRORL{\Gamma \Rightarrow \Delta, A}{\Gamma \Rightarrow
+ \Delta, A \vee B}}\quad
+ \vcenter{\SEQRORR{\Gamma \Rightarrow \Delta, B}{\Gamma \Rightarrow
+ \Delta, A \vee B}}\enspace;
+ \end{displaymath}
+\item \verb|\SEQLIMP|: left implication
+ \begin{displaymath}
+ \vcenter{\SEQLIMP{\Gamma \Rightarrow \Delta, A}{B, \Gamma
+ \Rightarrow \Delta}{A \rightarrow B, \Gamma \Rightarrow
+ \Delta}}\enspace;
+ \end{displaymath}
+\item \verb|\SEQRIMP|: right implication
+ \begin{displaymath}
+ \vcenter{\SEQRIMP{A, \Gamma \Rightarrow \Delta, B}{\Gamma
+ \Rightarrow, \Delta, A \rightarrow B}}\enspace;
+ \end{displaymath}
+\item \verb|\SEQLALL|: left universal quantification
+ \begin{displaymath}
+ \vcenter{\SEQLALL{A[t/x], \Gamma \Rightarrow \Delta}{\forall x.\,
+ A, \Gamma \Rightarrow \Delta}}\enspace;
+ \end{displaymath}
+\item \verb|\SEQRALL|: right universal quantification
+ \begin{displaymath}
+ \vcenter{\SEQRALL{\Gamma \Rightarrow \Delta, A}{\Gamma \Rightarrow
+ \Delta, \forall x.\, A}}\enspace;
+ \end{displaymath}
+\item \verb|\SEQLEX|: left existential quantification
+ \begin{displaymath}
+ \vcenter{\SEQLEX{A, \Gamma \Rightarrow \Delta}{\exists x.\, A,
+ \Gamma \Rightarrow \Delta}}\enspace;
+ \end{displaymath}
+\item \verb|\SEQREX|: right existential quantification
+ \begin{displaymath}
+ \vcenter{\SEQREX{\Gamma \Rightarrow \Delta, A[t/x]}{\Gamma
+ \Rightarrow \Delta, \exists x.\, A}}\enspace;
+ \end{displaymath}
+\item \verb|\SEQCUT|: cut rule
+ \begin{displaymath}
+ \vcenter{\SEQCUT{\Gamma \Rightarrow \Delta, A}{A, \Gamma'
+ \Rightarrow \Delta'}{\Gamma \Gamma' \Rightarrow \Delta
+ \Delta'}}\enspace.
+ \end{displaymath}
\end{itemize}
-One can load the package with both options at the same
-time.\vspace{2ex}
+\subsection{Equality}
+Invoking the \verb|EQ| option defines the following inference rules:
+\begin{itemize}
+\item \verb|\EQREFL|: reflexivity
+ \begin{displaymath}
+ \vcenter{\EQREFL{t = t}}\enspace;
+ \end{displaymath}
+\item \verb|\EQSYM|: symmetry
+ \begin{displaymath}
+ \vcenter{\EQSYM{t = s}{s = t}}\enspace;
+ \end{displaymath}
+\item \verb|\EQTRANS|: transitivity
+ \begin{displaymath}
+ \vcenter{\EQTRANS{t = s}{s = r}{t = r}}\enspace;
+ \end{displaymath}
+\item \verb|\EQSUBST|: the substitution rule
+ \begin{displaymath}
+ \vcenter{\EQSUBST{t = s}{A[t/x]}{A[s/x]}}\enspace.
+ \end{displaymath}
+\end{itemize}
+\subsection{Implication}
Since the implication symbol is usually represented either as
$\rightarrow$ or as $\supset$, the package allows to choose which
representation to use. By default, implication is $\rightarrow$, but
@@ -1071,10 +1255,402 @@
\verb|\prfIMPOptiontrue| (implication is $\supset$) and
\verb|prfIMPOptionfalse| (implication is $\rightarrow$).
+\subsection{Martin-L{\"o}f Type Theory and Homotopy Type Theory}
+Invoking the package with the \verb|ML| option enables the support for
+these type theories. This part is derived from Roberta Bonacina's PhD
+dissertation, which used this package in an essential way to develop
+proof trees in Homotopy Type Theory.
+
+Enabling the option \verb|ML| defines a number of symbols which are
+useful to have. However, since they may conflict with other packages,
+they can be disabled invoking the option \verb|MLnodef|. These
+operators are
+\begin{itemize}
+\item \verb|\type|: the symbol $\type$ correctly spaced as a
+ mathematical binary operation;
+\item \verb|\universe|: the symbol for universes;
+\item \verb|\judgementaldef| and \verb|\propositionaldef|: the symbols
+ $\judgementaldef$ and $\propositionaldef$ spaced as mathematical
+ binary operations;
+\item \verb|\emptytype| ($\emptytype$), \verb|\unittype|
+ ($\unittype$), \verb|\booleantype| ($\booleantype$): these symbols
+ are ordinary operators typeset in mathematical boldface font;
+\item \verb|\context| ($\context$), \verb|\identitytype|
+ ($\identitytype$), \verb|\refl| ($\refl$), \verb|\axiomofchoice|
+ ($\axiomofchoice$), \verb|\accessibility| ($\accessibility$),
+ \verb|\ap| ($\ap$), \verb|\apd| ($\apd$), \verb|\basepoint|
+ ($\basepoint$), \verb|\biinv| ($\biinv$), \verb|\cardtype|
+ ($\cardtype$), \verb|\cocone| ($\cocone$), \verb|\cons| ($\cons$),
+ \verb|\contr| ($\contr$), \verb|\equivtype| ($\equivtype$),
+ \verb|\ext| ($\ext$), \verb|\fiber| ($\fiber$), \verb|\funext|
+ ($\funext$), \verb|\glue| ($\glue$), \verb|\happly| ($\happly$),
+ \verb|\hom| ($\hom$), \verb|\id| ($\id$), \verb|\idtoeqv|
+ ($\idtoeqv$), \verb|\im| ($\im$), \verb|\idtoiso| ($\idtoiso$),
+ \verb|\ind| ($\ind$), \verb|\inj| ($\inj$), \verb|\inl| ($\inl$),
+ \verb|\inr| ($\inr$), \verb|\iscontr| ($\iscontr$), \verb|\isequiv|
+ ($\isequiv$), \verb|\ishae| ($\ishae$), \verb|\isotoid|
+ ($\isotoid$), \verb|\isprop| ($\isprop$), \verb|\isset| ($\isset$),
+ \verb|\ker| ($\ker$), \verb|\LEM| ($\LEM$), \verb|\linv| ($\linv$),
+ \verb|\listtype| ($\listtype$), \verb|\loopcons| ($\loopcons$),
+ \verb|\Map| ($\Map$), \verb|\merid| ($\merid$), \verb|\nil|
+ ($\nil$), \verb|\ordtype| ($\ordtype$), \verb|\pair| ($\pair$),
+ \verb|\pred| ($\pred$), \verb|\pr| ($\pr$), \verb|\Prop| ($\Prop$),
+ \verb|\qinv| ($\qinv$), \verb|\rec| ($\rec$), \verb|\rinv|
+ ($\rinv$), \verb|\seg| ($\seg$), \verb|\Set| ($\Set$), \verb|\Succ|
+ ($\Succ$), \verb|\sup| ($\sup$), \verb|\total| ($\total$),
+ \verb|\transport| ($\transport$), \verb|\ua| ($\ua$), \verb|\Wtype|
+ ($\Wtype$), \verb|\transportconst| ($\transportconst$): these
+ symbols are ordinary operators, typeset in the mathematical
+ sans-serif font; their graphical appearance is in brackets.
+\end{itemize}
+
+The large number of inference rules is listed below: they cover the
+structural part of the theories, plus most of the usual inductive
+types, comprehending also some higher-order inductive types. To each
+rule is associated a rule name, which is available as a command: the
+convention is that the rule name is obtained appending \verb|rule| to
+the name of the inference rule. In general, the command to typeset a
+rule conforms to the standard name in the book \emph{Homotopy Type
+ Theory}. The name as typeset, is shown in brackets:
+\begin{itemize}
+\item \verb|\MLctxEMP| $(\scriptstyle\MLctxEMPrule)$,\\ \verb|\MLctxEXT|
+ $(\scriptstyle\MLctxEXTrule)$: context manipulation;
+\item \verb|\MLVble| $(\scriptstyle\MLVblerule)$: variable
+ introduction;
+\item \verb|\MLSubst| $(\scriptstyle\MLSubstrule)$,
+ \verb|\MLWkg|
+ $(\scriptstyle\MLWkgrule)$: substitution and weakening;
+\item \verb|\MLEQrefl| $(\scriptstyle\MLEQreflrule)$,
+ \verb|\MLEQsym| $(\scriptstyle\MLEQsymrule)$,
+ \verb|\MLEQtrans| $(\scriptstyle\MLEQtransrule)$, \\
+ \verb|\MLEQsubst| $(\scriptstyle\MLEQsubstrule)$,
+ \verb|\MLEQsubsteq| $(\scriptstyle\MLEQsubsteqrule)$: structural
+ rules about judgemental equality;
+\item \verb|\MLUintro| $(\scriptstyle\MLUintrorule)$,
+ \verb|\MLUcumul| $(\scriptstyle\MLUcumulrule)$,
+ \verb|\MLUcumuleq| $(\scriptstyle\MLUcumuleqrule)$: type universe;
+\item \verb|\MLpiform| $(\scriptstyle\MLpiformrule)$,
+ \verb|\MLpiformeq| $(\scriptstyle\MLpiformeqrule)$, \\
+ \verb|\MLpiintro| $(\scriptstyle\MLpiintrorule)$,
+ \verb|\MLpiintroeq| $(\scriptstyle\MLpiintroeqrule)$, \\
+ \verb|\MLpielim| $(\scriptstyle\MLpielimrule)$,
+ \verb|\MLpielimeq| $(\scriptstyle\MLpielimeqrule)$, \\
+ \verb|\MLpicomp| $(\scriptstyle\MLpicomprule)$,
+ \verb|\MLpiuniq| $(\scriptstyle\MLpiuniqrule)$: dependent function
+ types;
+\item \verb|\MLKintro| $(\scriptstyle\MLKintrorule)$: generic rule for
+ constant introduction;
+\item \verb|\MLsigmaform| $(\scriptstyle\MLsigmaformrule)$,
+ \verb|\MLsigmaintro| $(\scriptstyle\MLsigmaintrorule)$,
+ \verb|\MLsigmaelim| $(\scriptstyle\MLsigmaelimrule)$, \\
+ \verb|\MLsigmacomp| $(\scriptstyle\MLsigmacomprule)$,
+ \verb|\MLsigmauniq| $(\scriptstyle\MLsigmauniqrule)$: dependent pair
+ types;
+\item \verb|\MLplusform| $(\scriptstyle\MLplusformrule)$,
+ \verb|\MLplusintrol| $(\scriptstyle\MLplusintrolrule)$,
+ \verb|\MLplusintror| $(\scriptstyle\MLplusintrorrule)$, \\
+ \verb|\MLpluselim| $(\scriptstyle\MLpluselimrule)$,
+ \verb|\MLpluscompl| $(\scriptstyle\MLpluscomplrule)$,
+ \verb|\MLpluscompr| $(\scriptstyle\MLpluscomprrule)$, \\
+ \verb|\MLplusuniq| $(\scriptstyle\MLplusuniqrule)$: coproduct types;
+\item \verb|\MLzeroform| $(\scriptstyle\MLzeroformrule)$,
+ \verb|\MLzeroelim| $(\scriptstyle\MLzeroelimrule)$,
+ \verb|\MLzerouniq| $(\scriptstyle\MLzerouniqrule)$: the empty type;
+\item \verb|\MLunitform| $(\scriptstyle\MLunitformrule)$,
+ \verb|\MLunitintro| $(\scriptstyle\MLunitintrorule)$,
+ \verb|\MLunitelim| $(\scriptstyle\MLunitelimrule)$, \\
+ \verb|\MLunitcomp| $(\scriptstyle\MLunitcomprule)$,
+ \verb|\MLunituniq| $(\scriptstyle\MLunituniqrule)$: the unit type;
+\item \verb|\MLnatform| $(\scriptstyle\MLnatformrule)$,
+ \verb|\MLnatintrozero| $(\scriptstyle\MLnatintrozerorule)$, \\
+ \verb|\MLnatintrosucc| $(\scriptstyle\MLnatintrosuccrule)$,
+ \verb|\MLnatelim| $(\scriptstyle\MLnatelimrule)$, \\
+ \verb|\MLnatcompzero| $(\scriptstyle\MLnatcompzerorule)$,
+ \verb|\MLnatcompsucc| $(\scriptstyle\MLnatcompsuccrule)$, \\
+ \verb|\MLnatuniq| $(\scriptstyle\MLnatuniqrule)$: the natural number
+ type;
+\item \verb|\MLidform| $(\scriptstyle\MLidformrule)$,
+ \verb|\MLidintro| $(\scriptstyle\MLidintrorule)$,
+ \verb|\MLidelim| $(\scriptstyle\MLidelimrule)$, \\
+ \verb|\MLidcomp| $(\scriptstyle\MLidcomprule)$,
+ \verb|\MLiduniq| $(\scriptstyle\MLiduniqrule)$: identity types;
+\item \verb|\MLwform| $(\scriptstyle\MLwformrule)$,
+ \verb|\MLwintro| $(\scriptstyle\MLwintrorule)$,
+ \verb|\MLwelim| $(\scriptstyle\MLwelimrule)$, \\
+ \verb|\MLwcomp| $(\scriptstyle\MLwcomprule)$,
+ \verb|\MLwuniq| $(\scriptstyle\MLwuniqrule)$: $\mathsf{W}$ types;
+\item \verb|\MLListform| $(\scriptstyle\MLListformrule)$,
+ \verb|\MLListintron| $(\scriptstyle\MLListintronrule)$,\\
+ \verb|\MLListintroc| $(\scriptstyle\MLListintrocrule)$,
+ \verb|\MLListelim| $(\scriptstyle\MLListelimrule)$,\\
+ \verb|\MLListcompn| $(\scriptstyle\MLListcompnrule)$,
+ \verb|\MLListcompc| $(\scriptstyle\MLListcompcrule)$,\\
+ \verb|\MLListuniq| $(\scriptstyle\MLListuniqrule)$:
+ $\mathsf{List}$ types;
+\item \verb|\MLfunext| $(\scriptstyle\MLfunextrule)$: function extensionality;
+\item \verb|\MLuniv| $(\scriptstyle\MLunivrule)$: univalence;
+\item \verb|\MLSform| $(\scriptstyle\MLSformrule)$,
+ \verb|\MLSintro| $(\scriptstyle\MLSintrorule)$,
+ \verb|\MLSelim| $(\scriptstyle\MLSelimrule)$,\\
+ \verb|\MLScomp| $(\scriptstyle\MLScomprule)$,
+ \verb|\MLSuniq| $(\scriptstyle\MLSuniqrule)$,
+ \verb|\MLSpeqintro| $(\scriptstyle\MLSpeqintrorule)$,\\
+ \verb|\MLSpeqcomp| $(\scriptstyle\MLSpeqcomprule)$: the
+ $\mathbb{S}^1$ circle type;
+\item \verb|\MLIform| $(\scriptstyle\MLIformrule)$,
+ \verb|\MLIintroa| $(\scriptstyle\MLIintroarule)$,
+ \verb|\MLIintrob| $(\scriptstyle\MLIintrobrule)$, \\
+ \verb|\MLIelim| $(\scriptstyle\MLIelimrule)$,
+ \verb|\MLIcompa| $(\scriptstyle\MLIcomparule)$,
+ \verb|\MLIcompb| $(\scriptstyle\MLIcompbrule)$, \\
+ \verb|\MLIuniq| $(\scriptstyle\MLIuniqrule)$,
+ \verb|\MLIpeqintro| $(\scriptstyle\MLIpeqintrorule)$,
+ \verb|\MLIpeqcomp| $(\scriptstyle\MLIpeqcomprule)$: the interval
+ type;
+\item \verb|\MLsigmaintroa| $(\scriptstyle\MLsigmaintroarule)$,
+ \verb|\MLsigmaintrob| $(\scriptstyle\MLsigmaintrobrule)$, \\
+ \verb|\MLsigmacompa| $(\scriptstyle\MLsigmacomparule)$,
+ \verb|\MLsigmacompb| $(\scriptstyle\MLsigmacompbrule)$, \\
+ \verb|\MLsigmapeqintro| $(\scriptstyle\MLsigmapeqintrorule)$,
+ \verb|\MLsigmapeqcomp| $(\scriptstyle\MLsigmapeqcomprule)$:
+ suspensions;
+\item \verb|\MLPOform| $(\scriptstyle\MLPOformrule)$,
+ \verb|\MLPOintroa| $(\scriptstyle\MLPOintroarule)$,
+ \verb|\MLPOintrob| $(\scriptstyle\MLPOintrobrule)$, \\
+ \verb|\MLPOelim| $(\scriptstyle\MLPOelimrule)$,
+ \verb|\MLPOcompa| $(\scriptstyle\MLPOcomparule)$,
+ \verb|\MLPOcompb| $(\scriptstyle\MLPOcompbrule)$, \\
+ \verb|\MLPOuniq| $(\scriptstyle\MLPOuniqrule)$,
+ \verb|\MLPOpeqintro| $(\scriptstyle\MLPOpeqintrorule)$,
+ \verb|\MLPOpeqcomp| $(\scriptstyle\MLPOpeqcomprule)$: pushouts;
+\item \verb|\MLTform| $(\scriptstyle\MLTformrule)$,
+ \verb|\MLTintro| $(\scriptstyle\MLTintrorule)$,
+ \verb|\MLTelim| $(\scriptstyle\MLTelimrule)$, \\
+ \verb|\MLTcomp| $(\scriptstyle\MLTcomprule)$,
+ \verb|\MLTuniq| $(\scriptstyle\MLTuniqrule)$,
+ \verb|\MLTpeqintro| $(\scriptstyle\MLTpeqintrorule)$, \\
+ \verb|\MLTpeqcomp| $(\scriptstyle\MLTpeqcomprule)$: truncations;
+\item \verb|\MLtorusform| $(\scriptstyle\MLtorusformrule)$,
+ \verb|\MLtorusintro| $(\scriptstyle\MLtorusintrorule)$,
+ \verb|\MLtoruselim| $(\scriptstyle\MLtoruselimrule)$,\\
+ \verb|\MLtoruscomp| $(\scriptstyle\MLtoruscomprule)$,
+ \verb|\MLtoruspeqintroa| $(\scriptstyle\MLtoruspeqintroarule)$, \\
+ \verb|\MLtoruspeqintrob| $(\scriptstyle\MLtoruspeqintrobrule)$,
+ \verb|\MLtoruspeqintroc| $(\scriptstyle\MLtoruspeqintrocrule)$, \\
+ \verb|\MLtoruspeqcompa| $(\scriptstyle\MLtoruspeqcomparule)$,
+ \verb|\MLtoruspeqcompb| $(\scriptstyle\MLtoruspeqcompbrule)$, \\
+ \verb|\MLtoruspeqcompc| $(\scriptstyle\MLtoruspeqcompcrule)$:
+ the torus type.
+\end{itemize}
+
+\subsection{Defining new inference rules}
Of course, the reader is encouraged to develop her own abbreviations
-starting from the provided ones.
+starting from the provided ones. To this aim two commands are
+provided. They share the same syntax: \verb|\prfMakeInferenceRule| and
+\verb|\prfMakeInferenceRuleRef| take two arguments, the first one is
+the name of the command associated to the inference rule, and the
+second one is used to write the rule name. For example,
+\begin{center}
+ \verb|\prfMakeInferenceRule{NDANDI}{\mathord{\wedge}\textup{I}}|
+\end{center}
+is how the conjunction introduction rule is defined, and
+\begin{center}
+ \verb| \prfMakeInferenceRuleRef{NDOREL}{\mathord{\vee}\textup{E}}|
+\end{center}
+is how the disjunction elimination rule is defined. The rules
+generated by the \verb|Ref| variant use their first argument as the
+reference to the assumption(s) they discharge.
+
+\subsection{Stacking proofs and assumptions}
+Sometimes, a proof is too large to fit into the text width. Although
+some strategies could be implemented to compress it, see the next
+section, they fail in extreme cases. For example, the elimination rule
+for the circle in Homotopy type theories is:
+\begin{displaymath}
+ \MLScomp
+ {\Gamma, x \type \mathbb{S}^1 \vdash C \type \universe_i}
+ {\Gamma \vdash b \type C[\basepoint/x]}
+ {\Gamma \vdash \ell \type b =_{\loopcons}^{C} b}
+ {\Gamma \vdash p \type \mathbb{S}^1}
+ {\Gamma \vdash \ind_{\mathbb{S}^1}(x.\, C, b, \ell, \basepoint)
+ \type C[p/x]}
+\end{displaymath}
+typeset by
+\begin{verbatim}
+ \MLScomp
+ {\Gamma, x \type \mathbb{S}^1 \vdash C \type \universe_i}
+ {\Gamma \vdash b \type C[\basepoint/x]}
+ {\Gamma \vdash \ell \type b =_{\loopcons}^{C} b}
+ {\Gamma \vdash p \type \mathbb{S}^1}
+ {\Gamma \vdash \ind_{\mathbb{S}^1}(x.\, C, b, \ell, \basepoint)
+ \type C[p/x]}
+\end{verbatim}
+It is clear that on an A5 paper, there is not enough space to write it
+down. In these cases, the package provides a way to \emph{stack} the
+premises of a rule, obtaining
+\begin{displaymath}
+ \MLScomp
+ {\prfStackPremises
+ {\Gamma, x \type \mathbb{S}^1 \vdash C \type \universe_i}
+ {\Gamma \vdash b \type C[\basepoint/x]} }
+ {\prfStackPremises
+ {\Gamma \vdash \ell \type b =_{\loopcons}^{C} b}
+ {\Gamma \vdash p \type \mathbb{S}^1} }
+ {\Gamma \vdash \ind_{\mathbb{S}^1}(x.\, C, b, \ell, \basepoint)
+ \type C[p/x]}
+\end{displaymath}
+The corresponding \LaTeX{} code is
+\begin{verbatim}
+ \MLScomp
+ {\prfStackPremises
+ {\Gamma, x \type \mathbb{S}^1 \vdash C \type \universe_i}
+ {\Gamma \vdash b \type C[\basepoint/x]}
+ }
+ {\prfStackPremises
+ {\Gamma \vdash \ell \type b =_{\loopcons}^{C} b}
+ {\Gamma \vdash p \type \mathbb{S}^1}
+ }
+ {\Gamma \vdash
+ \ind_{\mathbb{S}^1}(x.\, C, b, \ell, \basepoint) \type C[p/x]}
+\end{verbatim}
+The command
+\verb|\prfStackPremises{|$a_1$\verb|}{|$\ldots$\verb|}{|$a_n$\verb|}|
+takes the arguments $a_1, \ldots, a_n$ and typeset them as a proof
+tree with no lines with $a_1$ on the top.
+
+Actually, stacking proofs is possible:
+\begin{displaymath}
+ \MLScomp
+ {\prfStackPremises
+ {\prfsummary{\Gamma\;\context}
+ {\Gamma, x \type \mathbb{S}^1 \vdash \mathbb{S}^1 \type
+ \universe_i}}
+ {\prfsummary{\Gamma\;\context}
+ {\Gamma \vdash \basepoint \type \mathbb{S}^1}} }
+ {\prfStackPremises
+ {\prfsummary{\Gamma\;\context}
+ {\Gamma \vdash \ell \type \basepoint = \basepoint}}
+ {\prfsummary{\Gamma\;\context}
+ {\Gamma \vdash p \type \mathbb{S}^1}} }
+ {\Gamma \vdash \ind_{\mathbb{S}^1}(x.\, C, b, \ell, \basepoint)
+ \type C[p/x]}
+\end{displaymath}
+has been typeset by
+\begin{verbatim}
+ \MLScomp
+ {\prfStackPremises
+ {\prfsummary{\Gamma\;\context}
+ {\Gamma, x \type \mathbb{S}^1 \vdash \mathbb{S}^1 \type
+ \universe_i}}
+ {\prfsummary{\Gamma\;\context}
+ {\Gamma \vdash \basepoint \type \mathbb{S}^1}}
+ }
+ {\prfStackPremises
+ {\prfsummary{\Gamma\;\context}
+ {\Gamma \vdash \ell \type \basepoint = \basepoint}}
+ {\prfsummary{\Gamma\;\context}
+ {\Gamma \vdash p \type \mathbb{S}^1}}
+ }
+ {\Gamma \vdash
+ \ind_{\mathbb{S}^1}(x.\, C, b, \ell, \basepoint) \type C[p/x]}
+\end{verbatim}
-% -------------------------------------
+Since a stack is a proof tree, the parameters could be locally changed
+to control its appearance. For example
+\begin{displaymath}
+ \MLScomp
+ {\prfemptylinethickness20\prflinethickness
+ \prfStackPremises
+ {\Gamma, x \type \mathbb{S}^1 \vdash C \type \universe_i}
+ {\Gamma \vdash b \type C[\basepoint/x]} }
+ {\prfStackPremises
+ {\Gamma \vdash \ell \type b =_{\loopcons}^{C} b}
+ {\Gamma \vdash p \type \mathbb{S}^1} }
+ {\Gamma \vdash \ind_{\mathbb{S}^1}(x.\, C, b, \ell, \basepoint)
+ \type C[p/x]}
+\end{displaymath}
+makes the lines in the left stack far apart.
+\begin{verbatim}
+ \MLScomp
+ {\prfemptylinethickness20\prflinethickness
+ \prfStackPremises
+ {\Gamma, x \type \mathbb{S}^1 \vdash C \type \universe_i}
+ {\Gamma \vdash b \type C[\basepoint/x]} }
+ {\prfStackPremises
+ {\Gamma \vdash \ell \type b =_{\loopcons}^{C} b}
+ {\Gamma \vdash p \type \mathbb{S}^1} }
+ {\Gamma \vdash \ind_{\mathbb{S}^1}(x.\, C, b, \ell, \basepoint)
+ \type C[p/x]}
+\end{verbatim}
+
+Spacing in stacks of proofs is normally difficult to control: if
+really sophisticated formatting is needed, it is better to consider
+the following option:
+\begin{displaymath}
+ \MLScomp
+ {\prfassumption{
+ \begin{array}{@{}c@{\quad}c@{}}
+ {\prfsummary{\Gamma\;\context}
+ {\Gamma, x \type \mathbb{S}^1 \vdash \mathbb{S}^1 \type
+ \universe_i}} &
+ {\Gamma \vdash \ell \type \basepoint = \basepoint} \\
+ {\prfsummary{\Gamma\;\context}
+ {\Gamma \vdash \basepoint \type \mathbb{S}^1}} &
+ {\Gamma \vdash p \type \mathbb{S}^1}
+ \end{array}}}
+ {\Gamma \vdash \ind_{\mathbb{S}^1}(x.\, C, b, \ell, \basepoint)
+ \type C[p/x]}
+\end{displaymath}
+which uses the \verb|array| environment
+\begin{verbatim}
+ \MLScomp
+ {\prfassumption{
+ \begin{array}{@{}c@{\quad}c@{}}
+ {\prfsummary{\Gamma\;\context}
+ {\Gamma, x \type \mathbb{S}^1 \vdash \mathbb{S}^1 \type
+ \universe_i}} &
+ {\Gamma \vdash \ell \type \basepoint = \basepoint} \\
+ {\prfsummary{\Gamma\;\context}
+ {\Gamma \vdash \basepoint \type \mathbb{S}^1}} &
+ {\Gamma \vdash p \type \mathbb{S}^1}
+ \end{array}}}
+ {\Gamma \vdash \ind_{\mathbb{S}^1}(x.\, C, b, \ell, \basepoint)
+ \type C[p/x]}
+\end{verbatim}
+or similar ones, using the multitude of packages to format tables. By
+the way, the obvious solution using stacks is
+\begin{displaymath}
+ \MLScomp
+ {\prfStackPremises
+ {\prfsummary{\Gamma\;\context}
+ {\Gamma, x \type \mathbb{S}^1 \vdash \mathbb{S}^1 \type
+ \universe_i}}
+ {\prfsummary{\Gamma\;\context}
+ {\Gamma \vdash \basepoint \type \mathbb{S}^1}} }
+ {\prfStackPremises
+ {\prfassumption
+ {\Gamma \vdash \ell \type \basepoint = \basepoint}}
+ {\prfassumption
+ {\Gamma \vdash p \type \mathbb{S}^1}} }
+ {\Gamma \vdash \ind_{\mathbb{S}^1}(x.\, C, b, \ell, \basepoint)
+ \type C[p/x]}
+\end{displaymath}
+\begin{verbatim}
+ \MLScomp
+ {\prfStackPremises{\prfsummary{\Gamma\;\context}
+ {\Gamma, x \type \mathbb{S}^1 \vdash \mathbb{S}^1 \type
+ \universe_i}}
+ {\prfsummary{\Gamma\;\context}
+ {\Gamma \vdash \basepoint \type \mathbb{S}^1}} }
+ {\prfStackPremises{\prfassumption
+ {\Gamma \vdash \ell \type \basepoint = \basepoint}}
+ {\prfassumption
+ {\Gamma \vdash p \type \mathbb{S}^1}} }
+ {\Gamma \vdash \ind_{\mathbb{S}^1}(x.\, C, b, \ell, \basepoint)
+ \type C[p/x]}
+\end{verbatim}
+
+%-------------------------------------
\clearpage
\section{Hints and Tricks}\label{sec:hints_and_tricks}
This section shows a few hints and tricks to use the package at its
@@ -1202,8 +1778,9 @@
\end{verbatim}
Of course, the result is not pleasant, because rows are far apart,
-which is unavoidable because of the height of the proof tree. The
-same principle applies also to arrays of proof trees:
+which is unavoidable because of the height of the proof tree.
+
+The same principle applies also to arrays of proof trees:
\begin{displaymath}
\begin{array}{lcccc}
\text{some text} &
@@ -1219,6 +1796,7 @@
\prfsummary<[l]proof:b4>{A}{B}{A \wedge B}}
\end{array}
\end{displaymath}
+which has been typeset by
\begin{verbatim}
\begin{array}{lcccc}
\text{some text} &
@@ -1284,21 +1862,21 @@
\setcounter{prfsummarycounter}{0}
\setcounter{prfassumptioncounter}{0}
\mbox{Let }
- \vcenter{\prfsummary<[f]s:abbrev>
+ \left(\vcenter{\prfsummary<[f]s:abbrev>
{\NDDL{s:notnotA}{\neg\neg A}}
{\NDAL{s:notA}{\neg A}}
- {\neg\neg A \supset A}}
+ {\neg\neg A \supset A}}\right)
\equiv
- \vcenter{\NDIMPIL{s:notnotA}
+ \left(\vcenter{\NDIMPIL{s:notnotA}
{\NDFE{\NDIMPE{\NDDL{[l]s:notnotA}{\neg\neg A}}
{\NDAL{[l]s:notA}{\neg A}}{\bot}}{A}}
- {\neg\neg A \supset A}}
+ {\neg\neg A \supset A}}\right)
\end{displaymath}
allowing to abbreviate the whole proof as
\begin{displaymath}
\NDOREL{s:notA}{\NDLEM{A \vee \neg A}}
{\NDIMPI{\NDDL{[l]s:notA}{A}}{\neg\neg A \supset A}}
- {\prfsummary
+ {\hspace{-1em}\prfsummary
{\NDDL{[l]s:notnotA}{\neg\neg A}}
{\NDDL{[l]s:notA}{\neg A}}
{\neg\neg A \supset A}}
@@ -1310,21 +1888,21 @@
\setcounter{prfsummarycounter}{0}
\setcounter{prfassumptioncounter}{0}
\mbox{Let }
- \vcenter{\prfsummary<[f]s:abbrev>
+ \left(\vcenter{\prfsummary<[f]s:abbrev>
{\NDDL{s:notnotA}{\neg\neg A}}
{\NDAL{s:notA}{\neg A}}
- {\neg\neg A \supset A}}
+ {\neg\neg A \supset A}}\right)
\equiv
- \vcenter{\NDIMPIL{s:notnotA}
+ \left(\vcenter{\NDIMPIL{s:notnotA}
{\NDFE{\NDIMPE{\NDDL{[l]s:notnotA}{\neg\neg A}}
{\NDAL{[l]s:notA}{\neg A}}{\bot}}{A}}
- {\neg\neg A \supset A}}
+ {\neg\neg A \supset A}}\right)
\end{verbatim}
for the definition of the proof summary, and
\begin{verbatim}
\NDOREL{s:notA}{\NDLEM{A \vee \neg A}}
{\NDIMPI{\NDDL{[l]s:notA}{A}}{\neg\neg A \supset A}}
- {\prfsummary<[l]s:abbrev>
+ {\hspace{-1em}\prfsummary
{\NDDL{[l]s:notnotA}{\neg\neg A}}
{\NDDL{[l]s:notA}{\neg A}}
{\neg\neg A \supset A}}
@@ -1467,37 +2045,39 @@
Proof that the Law of Excluded middle implies $\neg\neg A \supset A$:
\begin{displaymath}
- \prftree[r]{$\vee$E}
- {\prfbyaxiom{LEM}
+ \prfIMPOptiontrue
+ \NDORE
+ {\NDLEM
{A \vee \neg A}\hspace{.4em}}
- {\prftree[r]{$\supset$I}
- {\prfboundedassumption{A}}
+ {\NDIMPI
+ {\NDD{A}}
{\neg\neg A \supset A}}
- {\prftree[r]{$\supset$I}
- {\prftree[r]{$\bot$E}
- {\prftree[r]{$\supset$E}
- {\prfboundedassumption{\neg\neg A}}
- {\prfboundedassumption{\neg A}}
+ {\NDIMPI
+ {\NDFE
+ {\NDIMPE
+ {\NDD{\neg\neg A}}
+ {\NDD{\neg A}}
{\bot}}
{A}}
{\neg\neg A \supset A}}
{\neg\neg A \supset A}
+ \prfIMPOptionfalse
\end{displaymath}
Proof that the Law of Excluded middle implies $\neg\neg A \supset A$
with labels instead of rule names, except on axioms:
\begin{displaymath}
- \prftree[l]{$\vee$E}
- {\prfbyaxiom{LEM}
+ \prftree[l]{$\scriptstyle\vee\mathrm{E}$}
+ {\NDLEM
{A \vee \neg A}\hspace{.6em}}
- {\prftree[l]{$\supset$I}
- {\prfboundedassumption{A}}
+ {\prftree[l]{$\scriptstyle\supset\mathrm{I}$}
+ {\NDD{A}}
{\neg\neg A \supset A}}
- {\prftree[l]{$\supset$I}
- {\prftree[l]{$\bot$E}
- {\prftree[l]{$\supset$E}
- {\prfboundedassumption{\neg\neg A}}
- {\prfboundedassumption{\neg A}}
+ {\prftree[l]{$\scriptstyle\supset\mathrm{I}$}
+ {\prftree[l]{$\scriptstyle\bot\mathrm{E}$}
+ {\prftree[l]{$\scriptstyle\supset\mathrm{E}$}
+ {\NDD{\neg\neg A}}
+ {\NDD{\neg A}}
{\bot}}
{A}}
{\neg\neg A \supset A}}
@@ -1572,7 +2152,7 @@
\rightarrow B) \rightarrow (A \rightarrow C))}
\end{displaymath}
-Proof tree can be coloured, as kindly pointed out by Dominic Hughes:
+Proof trees can be coloured, as kindly pointed out by Dominic Hughes:
\begin{displaymath}
\begin{prfenv}
\color{green}\NDIMPIL{ex6:1}
@@ -1823,12 +2403,23 @@
difficulty is how to represent skylines and how to store them, since
\TeX{} provides no abstract data structures. Hence, the implementation
of this feature has been postponed to a remote future, or to the will
-of a real \TeX{} magician.
+of a real \TeX{} magician.\vspace{2ex}
+
+The abbreviated commands reflect their use by the author. It is quite
+possible that you want to define your own commands for inference rules
+of your interest. If you think they could be of general interest, send
+them by email to the author (see below) who will include them in a
+future release of the package, acknowledging your contribution.
\vfill
-Although the package has been tested for a long time, by now, it is
+Although the package has been tested for a long time by now, it is
possible that a few bugs are still present. To signal a bug, please,
write an email to the author (see below), possibly attaching a sample
document which exhibit the misbehaviour, to help tracking and fixing.
\vfill
\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/prftree.doc.tlpobj new/tlpkg/tlpobj/prftree.doc.tlpobj
--- old/tlpkg/tlpobj/prftree.doc.tlpobj 2019-02-28 04:00:32.000000000 +0100
+++ new/tlpkg/tlpobj/prftree.doc.tlpobj 2020-03-04 23:53:23.000000000 +0100
@@ -1,9 +1,9 @@
name prftree.doc
category Package
-revision 41985
+revision 54080
shortdesc doc files of prftree
relocated 1
-docfiles size=87
+docfiles size=109
RELOC/doc/latex/prftree/README
RELOC/doc/latex/prftree/prftreedoc.pdf
RELOC/doc/latex/prftree/prftreedoc.tex
++++++ prftree.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/prftree/prftree.sty new/tex/latex/prftree/prftree.sty
--- old/tex/latex/prftree/prftree.sty 2016-09-03 23:36:10.000000000 +0200
+++ new/tex/latex/prftree/prftree.sty 2019-06-19 22:35:11.000000000 +0200
@@ -1,7 +1,7 @@
%
% prftree.sty
-% by Marco Benini - 3rd September 2016
-% v1.5
+% by Marco Benini - 19th June 2019
+% v1.6
%
% A package to typeset natural deduction proofs, or sequent proofs, or
% tableau proofs
@@ -10,18 +10,25 @@
%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{prftree}[2016/09/03 Natural Deduction Proofs]
+\ProvidesPackage{prftree}[2019/06/19 Natural Deduction Proofs]
% Package options: deactivated by default
\newif\ifprf@NDOption\prf@NDOptionfalse
\newif\ifprf@SEQOption\prf@SEQOptionfalse
\newif\ifprfIMPOption\prfIMPOptionfalse
+\newif\ifprf@EQOption\prf@EQOptionfalse
+\newif\ifprf@MLOption\prf@MLOptionfalse
+\newif\ifprf@MLnodefOption\prf@MLnodefOptionfalse
+% but the STRUT and STRUTlabel are on by default
\newif\ifprfSTRUToption\prfSTRUToptiontrue
\newif\ifprfSTRUTlabeloption\prfSTRUTlabeloptiontrue
\DeclareOption{ND}{\prf@NDOptiontrue}
\DeclareOption{SEQ}{\prf@SEQOptiontrue}
\DeclareOption{IMP}{\prfIMPOptiontrue}
+\DeclareOption{EQ}{\prf@EQOptiontrue}
+\DeclareOption{ML}{\prf@MLOptiontrue}
+\DeclareOption{MLnodef}{\prf@MLnodefOptiontrue}
\DeclareOption{Strut}{\prfSTRUToptionfalse}
\DeclareOption{StrutLabel}{\prfSTRUTlabeloptionfalse}
\ProcessOptions\relax
@@ -977,14 +984,42 @@
\hbox{$\box\prf@rulenamebox$}}
% -------------------------------------------------------------------
-% The following macros are used to simplify the writing of proofs in
-% natural deduction, and they roughly follow the format of proofs as
-% in Troelstra, Schwichtenberg "Basic Proof Theory".
-%
-% Since they may conflict with other packages, they are controlled by
-% options in the package.
+% Support macros to define new inference rules
+%
+% \prfMakeInferenceRule#1#2
+% \prfMakeInferenceRuleRef#1#2
+% #1: name of the command associated to the inference rule
+% #2: rule name
+% The plain version generates a command for typesetting a proof with
+% the inference rule; the Ref version uses the first parameter of the
+% rule as a reference that is appended to the rule name
% -------------------------------------------------------------------
+\def\prfMakeInferenceRule#1#2{%
+ \expandafter\def\csname #1\endcsname%
+ {\prftree[by]{$\scriptstyle{#2}$}}}
+\def\prfMakeInferenceRuleRef#1#2{%
+ \expandafter\def\csname #1\endcsname##1%
+ {\prftree[by]{$\scriptstyle{#2}^{\prfref<##1>}$}}}
+
+% -------------------------------------------------------------------
+% Macros to stack the premises of an inference rule
+%
+% \prfStackPremises{a_1}...{a_n} generates a vertical list containing
+% a_1 on the top and a_n on the bottom.
+% -------------------------------------------------------------------
+
+\def\prfStackPremises{\prf@StackPremises{}}
+\def\prf@StackPremises#1{\@ifnextchar\bgroup%
+ {\prf@@StackPremises{\prfassumption{#1}}}%
+ {\prfassumption{#1}}}
+\def\prf@@StackPremises#1#2{\@ifnextchar\bgroup%
+ {\prf@@@StackPremises{\prftree[noline]{#1}{#2}}}%
+ {\prftree[noline]{#1}{#2}}}
+\def\prf@@@StackPremises#1#2{\@ifnextchar\bgroup%
+ {\prf@@@StackPremises{\prftree[noline]{#1}{#2}}}
+ {\prftree[noline]{#1}{#2}}}
+
% -------------------------------------------------------------------
% Natural deduction systems
%
@@ -997,62 +1032,36 @@
\def\NDAL#1{\prfassumption<#1>}
\def\NDDL#1{\prfboundedassumption<#1>}
\def\NDP{\prftree}
- \def\NDANDI{\prftree[by]{$\scriptstyle\mathord{\wedge}%
- \textup{I}$}}
- \def\NDANDEL{\prftree[by]{$\scriptstyle\mathord{\wedge}%
- \textup{E}_1$}}
- \def\NDANDER{\prftree[by]{$\scriptstyle\mathord{\wedge}%
- \textup{E}_2$}}
- \def\NDANDE{\prftree[by]{$\scriptstyle\mathord{\wedge}%
- \textup{E}$}}
- \def\NDORIL{\prftree[by]{$\scriptstyle\mathord{\vee}%
- \textup{I}_1$}}
- \def\NDORIR{\prftree[by]{$\scriptstyle\mathord{\vee}%
- \textup{I}_2$}}
- \def\NDORI{\prftree[by]{$\scriptstyle\mathord{\vee}%
- \textup{I}$}}
- \def\NDORE{\prftree[by]{$\scriptstyle\mathord{\vee}%
- \textup{E}$}}
- \def\NDOREL#1{\prftree[by]{$\scriptstyle{\vee}%
- {\textup{E}}^{\prfref<#1>}$}}
+ \prfMakeInferenceRule{NDANDI}{\mathord{\wedge}\textup{I}}
+ \prfMakeInferenceRule{NDANDEL}{\mathord{\wedge}\textup{E}_1}
+ \prfMakeInferenceRule{NDANDER}{\mathord{\wedge}\textup{E}_2}
+ \prfMakeInferenceRule{NDANDE}{\mathord{\wedge}\textup{E}}
+ \prfMakeInferenceRule{NDORIL}{\mathord{\vee}\textup{I}_1}
+ \prfMakeInferenceRule{NDORIR}{\mathord{\vee}\textup{I}_2}
+ \prfMakeInferenceRule{NDORI}{\mathord{\vee}\textup{I}}
+ \prfMakeInferenceRule{NDORE}{\mathord{\vee}\textup{E}}
+ \prfMakeInferenceRuleRef{NDOREL}{\mathord{\vee}\textup{E}}
\ifprfIMPOption
- \def\NDIMPI{\prftree[by]{$\scriptstyle\mathord{\supset}%
- \textup{I}$}}
- \def\NDIMPE{\prftree[by]{$\scriptstyle\mathord{\supset}%
- \textup{E}$}}
- \def\NDIMPIL#1{\prftree[by]{$\scriptstyle\mathord{\supset}%
- \textup{I}^{\prfref<#1>}$}}
+ \prfMakeInferenceRule{NDIMPI}{\mathord{\supset}\textup{I}}
+ \prfMakeInferenceRule{NDIMPE}{\mathord{\supset}\textup{E}}
+ \prfMakeInferenceRuleRef{NDIMPIL}{\mathord{\supset}\textup{I}}
\else
- \def\NDIMPI{\prftree[by]{$\scriptstyle\mathord{\rightarrow}%
- \textup{I}$}}
- \def\NDIMPE{\prftree[by]{$\scriptstyle\mathord{\rightarrow}%
- \textup{E}$}}
- \def\NDIMPIL#1{%
- \prftree[by]{$\scriptstyle\mathord{\rightarrow}%
- \textup{I}^{\prfref<#1>}$}}\fi
- \def\NDNOTI{\prftree[by]{$\scriptstyle\mathord{\neg}%
- \textup{I}$}}
- \def\NDNOTIL#1{\prftree[by]{$\scriptstyle{\neg}%
- \textup{I}^{\prfref<#1>}$}}
- \def\NDNOTE{\prftree[by]{$\scriptstyle\mathord{\neg}%
- \textup{E}$}}
- \def\NDALLI{\prftree[by]{$\scriptstyle\mathord{\forall}%
- \textup{I}$}}
- \def\NDALLE{\prftree[by]{$\scriptstyle\mathord{\forall}%
- \textup{E}$}}
- \def\NDEXI{\prftree[by]{$\scriptstyle\mathord{\exists}%
- \textup{I}$}}
- \def\NDEXE{\prftree[by]{$\scriptstyle\mathord{\exists}%
- \textup{E}$}}
- \def\NDEXEL#1{%
- \prftree[by]{$\scriptstyle\mathord{\exists}%
- \textup{E}^{\prfref<#1>}$}}
- \def\NDTI{\prftree[by]{$\scriptstyle\mathord{\top}%
- \textup{I}$}}
- \def\NDFE{\prftree[by]{$\scriptstyle\mathord{\bot}%
- \textup{E}$}}
- \def\NDLEM{\prftree[by]{$\scriptstyle\textup{lem}$}}
- \def\NDAX{\prftree[by]{$\scriptstyle\textup{ax}$}}
+ \prfMakeInferenceRule{NDIMPI}{\mathord{\rightarrow}\textup{I}}
+ \prfMakeInferenceRule{NDIMPE}{\mathord{\rightarrow}\textup{E}}
+ \prfMakeInferenceRuleRef{NDIMPIL}{\mathord{\rightarrow}\textup{I}}
+ \fi
+ \prfMakeInferenceRule{NDNOTI}{\mathord{\neg}\textup{I}}
+ \prfMakeInferenceRuleRef{NDNOTIL}{\mathord{\neg}\textup{I}}
+ \prfMakeInferenceRule{NDNOTE}{\mathord{\neg}\textup{E}}
+ \prfMakeInferenceRule{NDALLI}{\mathord{\forall}\textup{I}}
+ \prfMakeInferenceRule{NDALLE}{\mathord{\forall}\textup{E}}
+ \prfMakeInferenceRule{NDEXI}{\mathord{\exists}\textup{I}}
+ \prfMakeInferenceRule{NDEXE}{\mathord{\exists}\textup{E}}
+ \prfMakeInferenceRuleRef{NDEXEL}{\mathord{\exists}\textup{E}}
+ \prfMakeInferenceRule{NDTI}{\mathord{\top}\textup{I}}
+ \prfMakeInferenceRule{NDFE}{\mathord{\bot}\textup{E}}
+ \prfMakeInferenceRule{NDLEM}{\textup{lem}}
+ \prfMakeInferenceRule{NDAX}{\textup{ax}}
\fi
% -------------------------------------------------------------------
@@ -1064,41 +1073,374 @@
\ifprf@SEQOption%
\def\SEQA{\prfassumption}
\def\SEQD{\prfboundedassumption}
- \def\SEQP{\prftree}
- \def\SEQAX{\prftree[by]{$\scriptstyle\textup{Ax}$}}
- \def\SEQLF{\prftree[by]{$\scriptstyle\textup{L}\bot$}}
- \def\SEQLW{\prftree[by]{$\scriptstyle\textup{LW}$}}
- \def\SEQRW{\prftree[by]{$\scriptstyle\textup{RW}$}}
- \def\SEQLC{\prftree[by]{$\scriptstyle\textup{LC}$}}
- \def\SEQRC{\prftree[by]{$\scriptstyle\textup{RC}$}}
- \def\SEQLAND{\prftree[by]{$\scriptstyle\textup{L}%
- \mathord{\wedge}$}}
- \def\SEQRAND{\prftree[by]{$\scriptstyle\textup{R}%
- \mathord{\wedge}$}}
- \def\SEQLOR{\prftree[by]{$\scriptstyle\textup{L}%
- \mathord{\vee}$}}
- \def\SEQROR{\prftree[by]{$\scriptstyle\textup{R}%
- \mathord{\vee}$}}
+ \def\SEQP{\prftree}
+ \prfMakeInferenceRule{SEQAX}{\textup{Ax}}
+ \prfMakeInferenceRule{SEQLF}{\textup{L}\mathord{\bot}}
+ \prfMakeInferenceRule{SEQLW}{\textup{LW}}
+ \prfMakeInferenceRule{SEQRW}{\textup{RW}}
+ \prfMakeInferenceRule{SEQLC}{\textup{LC}}
+ \prfMakeInferenceRule{SEQRC}{\textup{RC}}
+ \prfMakeInferenceRule{SEQLAND}{\textup{L}\mathord{\wedge}}
+ \prfMakeInferenceRule{SEQLANDL}{\textup{L}\mathord{\wedge}_1}
+ \prfMakeInferenceRule{SEQLANDR}{\textup{L}\mathord{\wedge}_2}
+ \prfMakeInferenceRule{SEQRAND}{\textup{R}\mathord{\wedge}}
+ \prfMakeInferenceRule{SEQLOR}{\textup{L}\mathord{\vee}}
+ \prfMakeInferenceRule{SEQROR}{\textup{R}\mathord{\vee}}
+ \prfMakeInferenceRule{SEQRORL}{\textup{R}\mathord{\vee}_1}
+ \prfMakeInferenceRule{SEQRORR}{\textup{R}\mathord{\vee}_2}
\ifprfIMPOption
- \def\SEQLIMP{\prftree[by]{$\scriptstyle\textup{L}%
- \mathord{\supset}$}}
- \def\SEQRIMP{\prftree[by]{$\scriptstyle\textup{R}%
- \mathord{\supset}$}}
+ \prfMakeInferenceRule{SEQLIMP}{\textup{L}\mathord{\supset}}
+ \prfMakeInferenceRule{SEQRIMP}{\textup{R}\mathord{\supset}}
\else
- \def\SEQLIMP{\prftree[by]{$\scriptstyle\textup{L}%
- \mathord{\rightarrow}$}}
- \def\SEQRIMP{\prftree[by]{$\scriptstyle\textup{R}%
- \mathord{\rightarrow}$}}
+ \prfMakeInferenceRule{SEQLIMP}{\textup{L}\mathord{\rightarrow}}
+ \prfMakeInferenceRule{SEQRIMP}{\textup{R}\mathord{\rightarrow}}
\fi
- \def\SEQLALL{\prftree[by]{$\scriptstyle\textup{L}%
- \mathord{\forall}$}}
- \def\SEQRALL{\prftree[by]{$\scriptstyle\textup{R}%
- \mathord{\forall}$}}
- \def\SEQLEX{\prftree[by]{$\scriptstyle\textup{L}%
- \mathord{\exists}$}}
- \def\SEQREX{\prftree[by]{$\scriptstyle\textup{R}%
- \mathord{\exists}$}}
- \def\SEQCUT{\prftree[by]{$\scriptstyle\textup{Cut}$}}
+ \prfMakeInferenceRule{SEQLALL}{\textup{L}\mathord{\forall}}
+ \prfMakeInferenceRule{SEQRALL}{\textup{R}\mathord{\forall}}
+ \prfMakeInferenceRule{SEQLEX}{\textup{L}\mathord{\exists}}
+ \prfMakeInferenceRule{SEQREX}{\textup{R}\mathord{\exists}}
+ \prfMakeInferenceRule{SEQCUT}{\textup{Cut}}
\fi
% -------------------------------------------------------------------
+% Equality rules
+%
+% Package option [EQ]
+% -------------------------------------------------------------------
+
+\ifprf@EQOption%
+ \prfMakeInferenceRule{EQREFL}{\textup{refl}}
+ \prfMakeInferenceRule{EQSYM}{\textup{sym}}
+ \prfMakeInferenceRule{EQTRANS}{\textup{trans}}
+ \prfMakeInferenceRule{EQSUBST}{\textup{subst}}
+\fi
+
+% -------------------------------------------------------------------
+% Martin-Lof and Homotopy Type Theory
+%
+% Package option [ML]
+% -------------------------------------------------------------------
+
+\ifprf@MLOption
+ \ifprf@MLnodefOption\relax\else
+ \def\type{\mathbin{:}}
+ \def\universe{\mathcal{U}}
+ \def\context{\mathsf{ctx}}
+ \def\judgementaldef{\mathbin{:\equiv}}
+ \def\propositionaldef{\mathbin{:=}}
+ \def\identitytype{\mathsf{Id}}
+ \def\refl{\mathsf{refl}}
+ \def\emptytype{\mathbf{0}}
+ \def\unittype{\mathbf{1}}
+ \def\booleantype{\mathbf{2}}
+ \def\axiomofchoice{\mathsf{AC}}
+ \def\accessibility{\mathsf{acc}}
+ \def\ap{\mathsf{ap}}
+ \def\apd{\mathsf{apd}}
+ \def\basepoint{\mathsf{base}}
+ \def\biinv{\mathsf{biinv}}
+ \def\cardtype{\mathsf{Card}}
+ \def\cocone{\mathsf{cocone}}
+ \def\cons{\mathsf{cons}}
+ \def\contr{\mathsf{contr}}
+ \def\equivtype{\mathsf{Equiv}}
+ \def\ext{\mathsf{ext}}
+ \def\fiber{\mathsf{fib}}
+ \def\funext{\mathsf{funext}}
+ \def\glue{\mathsf{glue}}
+ \def\happly{\mathsf{happly}}
+ \def\hom{\mathsf{hom}}
+ \def\id{\mathsf{id}}
+ \def\idtoeqv{\mathsf{idtoeqv}}
+ \def\idtoiso{\mathsf{idtoiso}}
+ \def\im{\mathsf{im}}
+ \def\ind{\mathsf{ind}}
+ \def\inj{\mathsf{inj}}
+ \def\inl{\mathsf{inl}}
+ \def\inr{\mathsf{inr}}
+ \def\iscontr{\mathsf{isContr}}
+ \def\isequiv{\mathsf{isequiv}}
+ \def\ishae{\mathsf{ishae}}
+ \def\isotoid{\mathsf{istoid}}
+ \def\isntype#1{\mathsf{is-}{#1}\mathsf{-type}}
+ \def\isprop{\mathsf{isProp}}
+ \def\isset{\mathsf{isSet}}
+ \def\ker{\mathsf{ker}}
+ \def\LEM{\mathsf{LEM}}
+ \def\linv{\mathsf{linv}}
+ \def\listtype{\mathsf{List}}
+ \def\loopcons{\mathsf{loop}}
+ \def\Map{\mathsf{Map}}
+ \def\merid{\mathsf{merid}}
+ \def\nil{\mathsf{nil}}
+ \def\ordtype{\mathsf{Ord}}
+ \def\pair{\mathsf{pair}}
+ \def\pred{\mathsf{pred}}
+ \def\pr{\mathsf{pr}}
+ \def\Prop{\mathsf{Prop}}
+ \def\qinv{\mathsf{qinv}}
+ \def\rec{\mathsf{rec}}
+ \def\rinv{\mathsf{rinv}}
+ \def\seg{\mathsf{seg}}
+ \def\Set{\mathsf{Set}}
+ \def\Succ{\mathsf{succ}}
+ \def\sup{\mathsf{sup}}
+ \def\total{\mathsf{total}}
+ \def\transport{\mathsf{transport}}
+ \def\transportconst{\mathsf{transportconst}}
+ \def\ua{\mathsf{ua}}
+ \def\Wtype{\mathsf{W}}
+ \fi
+
+ \def\MLctxEMPrule{\ensuremath{\mathsf{ctx}\mathsf{-EMP}}}
+ \def\MLctxEXTrule{\ensuremath{\mathsf{ctx}\mathsf{-EXT}}}
+ \def\MLVblerule{\ensuremath{\mathsf{Vble}}}
+ \def\MLSubstrule{\ensuremath{\mathsf{Subst}}}
+ \def\MLWkgrule{\ensuremath{\mathsf{Wkg}}}
+ \def\MLEQreflrule{\ensuremath{\mathord{\equiv}\mathsf{-refl}}}
+ \def\MLEQsymrule{\ensuremath{\mathord{\equiv}\mathsf{-sym}}}
+ \def\MLEQtransrule{\ensuremath{\mathord{\equiv}\mathsf{-trans}}}
+ \def\MLEQsubstrule{\ensuremath{\mathord{\equiv}\mathsf{-subst}}}
+ \def\MLEQsubsteqrule{\ensuremath{\mathord{\equiv}%
+ \mathsf{-subst}\mathsf{-eq}}}
+ \def\MLUintrorule{\ensuremath{\universe\mathsf{-intro}}}
+ \def\MLUcumulrule{\ensuremath{\universe\mathsf{-cumul}}}
+ \def\MLUcumuleqrule{\ensuremath{\universe%
+ \mathsf{-cumul}\mathsf{-eq}}}
+ \def\MLpiformrule{\ensuremath{\Pi\mathsf{-form}}}
+ \def\MLpiformeqrule{\ensuremath{\Pi\mathsf{-form}\mathsf{-eq}}}
+ \def\MLpiintrorule{\ensuremath{\Pi\mathsf{-intro}}}
+ \def\MLpiintroeqrule{\ensuremath{\Pi\mathsf{-intro}\mathsf{-eq}}}
+ \def\MLpielimrule{\ensuremath{\Pi\mathsf{-elim}}}
+ \def\MLpielimeqrule{\ensuremath{\Pi\mathsf{-elim}\mathsf{-eq}}}
+ \def\MLpicomprule{\ensuremath{\Pi\mathsf{-comp}}}
+ \def\MLpiuniqrule{\ensuremath{\Pi\mathsf{-uniq}}}
+ \def\MLKintrorule{\ensuremath{k\mathsf{-intro}}}
+ \def\MLsigmaformrule{\ensuremath{\Sigma\mathsf{-form}}}
+ \def\MLsigmaintrorule{\ensuremath{\Sigma\mathsf{-intro}}}
+ \def\MLsigmaelimrule{\ensuremath{\Sigma\mathsf{-elim}}}
+ \def\MLsigmacomprule{\ensuremath{\Sigma\mathsf{-comp}}}
+ \def\MLsigmauniqrule{\ensuremath{\Sigma\mathsf{-uniq}}}
+ \def\MLplusformrule{\ensuremath{\mathord{+}\mathsf{-form}}}
+ \def\MLplusintrolrule{\ensuremath{\mathord{+}\mathsf{-intro}_1}}
+ \def\MLplusintrorrule{\ensuremath{\mathord{+}\mathsf{-intro}_2}}
+ \def\MLpluselimrule{\ensuremath{\mathord{+}\mathsf{-elim}}}
+ \def\MLpluscomplrule{\ensuremath{\mathord{+}\mathsf{-comp}_1}}
+ \def\MLpluscomprrule{\ensuremath{\mathord{+}\mathsf{-comp}_2}}
+ \def\MLplusuniqrule{\ensuremath{\mathord{+}\mathsf{-uniq}}}
+ \def\MLzeroformrule{\ensuremath{\mathbf{0}\mathsf{-form}}}
+ \def\MLzeroelimrule{\ensuremath{\mathbf{0}\mathsf{-elim}}}
+ \def\MLzerouniqrule{\ensuremath{\mathbf{0}\mathsf{-uniq}}}
+ \def\MLunitformrule{\ensuremath{\mathbf{1}\mathsf{-form}}}
+ \def\MLunitintrorule{\ensuremath{\mathbf{1}\mathsf{-intro}}}
+ \def\MLunitelimrule{\ensuremath{\mathbf{1}\mathsf{-elim}}}
+ \def\MLunitcomprule{\ensuremath{\mathbf{1}\mathsf{-comp}}}
+ \def\MLunituniqrule{\ensuremath{\mathbf{1}\mathsf{-uniq}}}
+ \def\MLnatformrule{\ensuremath{\mathbb{N}\mathsf{-form}}}
+ \def\MLnatintrozerorule{\ensuremath{\mathbb{N}\mathsf{-intro}_1}}
+ \def\MLnatintrosuccrule{\ensuremath{\mathbb{N}\mathsf{-intro}_2}}
+ \def\MLnatelimrule{\ensuremath{\mathbb{N}\mathsf{-elim}}}
+ \def\MLnatcompzerorule{\ensuremath{\mathbb{N}\mathsf{-comp}_1}}
+ \def\MLnatcompsuccrule{\ensuremath{\mathbb{N}\mathsf{-comp}_2}}
+ \def\MLnatuniqrule{\ensuremath{\mathbb{N}\mathsf{-uniq}}}
+ \def\MLidformrule{\ensuremath{\mathord{=}\mathsf{-form}}}
+ \def\MLidintrorule{\ensuremath{\mathord{=}\mathsf{-intro}}}
+ \def\MLidelimrule{\ensuremath{\mathord{=}\mathsf{-elim}}}
+ \def\MLidcomprule{\ensuremath{\mathord{=}\mathsf{-comp}}}
+ \def\MLiduniqrule{\ensuremath{\mathord{=}\mathsf{-uniq}}}
+ \def\MLwformrule{\ensuremath{\mathsf{W}\mathsf{-form}}}
+ \def\MLwintrorule{\ensuremath{\mathsf{W}\mathsf{-intro}}}
+ \def\MLwelimrule{\ensuremath{\mathsf{W}\mathsf{-elim}}}
+ \def\MLwcomprule{\ensuremath{\mathsf{W}\mathsf{-comp}}}
+ \def\MLwuniqrule{\ensuremath{\mathsf{W}\mathsf{-uniq}}}
+ \def\MLListformrule{\ensuremath{\mathsf{List}\mathsf{-form}}}
+ \def\MLListintronrule{\ensuremath{\mathsf{List}\mathsf{-intro_1}}}
+ \def\MLListintrocrule{\ensuremath{\mathsf{List}\mathsf{-intro_2}}}
+ \def\MLListelimrule{\ensuremath{\mathsf{List}\mathsf{-elim}}}
+ \def\MLListcompnrule{\ensuremath{\mathsf{List}\mathsf{-comp_1}}}
+ \def\MLListcompcrule{\ensuremath{\mathsf{List}\mathsf{-comp_2}}}
+ \def\MLListuniqrule{\ensuremath{\mathsf{List}\mathsf{-uniq}}}
+ \def\MLfunextrule{\ensuremath{\Pi\mathsf{-ext}}}
+ \def\MLunivrule{\ensuremath{\universe_i\mathsf{-univ}}}
+ \def\MLSformrule{\ensuremath{\mathbb{S}^1\mathsf{-form}}}
+ \def\MLSintrorule{\ensuremath{\mathbb{S}^1\mathsf{-intro}}}
+ \def\MLSelimrule{\ensuremath{\mathbb{S}^1\mathsf{-elim}}}
+ \def\MLScomprule{\ensuremath{\mathbb{S}^1\mathsf{-comp}}}
+ \def\MLSuniqrule{\ensuremath{\mathbb{S}^1\mathsf{-uniq}}}
+ \def\MLSpeqintrorule{\ensuremath{\mathbb{S}^1\mathsf{-intro}%
+ \mathsf{-}\mathsf{=}}}
+ \def\MLSpeqcomprule{\ensuremath{\mathbb{S}^1\mathsf{-comp}%
+ \mathsf{-}\mathsf{=}}}
+ \def\MLIformrule{\ensuremath{I\mathsf{-form}}}
+ \def\MLIintroarule{\ensuremath{I\mathsf{-intro}_1}}
+ \def\MLIintrobrule{\ensuremath{I\mathsf{-intro}_2}}
+ \def\MLIelimrule{\ensuremath{I\mathsf{-elim}}}
+ \def\MLIcomparule{\ensuremath{I\mathsf{-comp}_1}}
+ \def\MLIcompbrule{\ensuremath{I\mathsf{-comp}_2}}
+ \def\MLIuniqrule{\ensuremath{I\mathsf{-uniq}}}
+ \def\MLIpeqintrorule{\ensuremath{I\mathsf{-intro}%
+ \mathsf{-}\mathsf{=}}}
+ \def\MLIpeqcomprule{\ensuremath{I\mathsf{-comp}{-}\mathsf{=}}}
+ \def\MLsigmaintroarule{\ensuremath{\Sigma\mathsf{-intro}_1}}
+ \def\MLsigmaintrobrule{\ensuremath{\Sigma\mathsf{-intro}_2}}
+ \def\MLsigmacomparule{\ensuremath{\Sigma\mathsf{-comp}_1}}
+ \def\MLsigmacompbrule{\ensuremath{\Sigma\mathsf{-comp}_2}}
+ \def\MLsigmapeqintrorule{\ensuremath{\Sigma\mathsf{-intro}%
+ \mathsf{-}\mathsf{=}}}
+ \def\MLsigmapeqcomprule{\ensuremath{\Sigma\mathsf{-comp}%
+ \mathsf{-}\mathsf{=}}}
+ \def\MLPOformrule{\ensuremath{\sqcup\mathsf{-form}}}
+ \def\MLPOintroarule{\ensuremath{\sqcup\mathsf{-intro}_1}}
+ \def\MLPOintrobrule{\ensuremath{\sqcup\mathsf{-intro}_2}}
+ \def\MLPOelimrule{\ensuremath{\sqcup\mathsf{-elim}}}
+ \def\MLPOcomparule{\ensuremath{\sqcup\mathsf{-comp}_1}}
+ \def\MLPOcompbrule{\ensuremath{\sqcup\mathsf{-comp}_2}}
+ \def\MLPOuniqrule{\ensuremath{\sqcup\mathsf{-uniq}}}
+ \def\MLPOpeqintrorule{\ensuremath{\sqcup\mathsf{-intro}%
+ \mathsf{-}\mathsf{=}}}
+ \def\MLPOpeqcomprule{\ensuremath{\sqcup%
+ \mathsf{-comp}\mathsf{-}\mathsf{=}}}
+ \def\MLTformrule{\ensuremath{||\cdot||\mathsf{-form}}}
+ \def\MLTintrorule{\ensuremath{||\cdot||\mathsf{-intro}}}
+ \def\MLTelimrule{\ensuremath{||\cdot||\mathsf{-elim}}}
+ \def\MLTcomprule{\ensuremath{||\cdot||\mathsf{-comp}}}
+ \def\MLTuniqrule{\ensuremath{||\cdot||\mathsf{-uniq}}}
+ \def\MLTpeqintrorule{\ensuremath{||\cdot||\mathsf{-intro}%
+ \mathsf{-}\mathsf{=}}}
+ \def\MLTpeqcomprule{\ensuremath{||\cdot||\mathsf{-comp}%
+ \mathsf{-}\mathsf{=}}}
+ \def\MLtorusformrule{\ensuremath{T^2\mathsf{-form}}}
+ \def\MLtorusintrorule{\ensuremath{T^2\mathsf{-intro}}}
+ \def\MLtoruselimrule{\ensuremath{T^2\mathsf{-elim}}}
+ \def\MLtoruscomprule{\ensuremath{T^2\mathsf{-comp}}}
+ \def\MLtoruspeqintroarule{\ensuremath{T^2\mathsf{-intro}%
+ \mathsf{-}\mathsf{=_p}}}
+ \def\MLtoruspeqintrobrule{\ensuremath{T^2\mathsf{-intro}%
+ \mathsf{-}\mathsf{=_q}}}
+ \def\MLtoruspeqintrocrule{\ensuremath{T^2\mathsf{-intro}%
+ \mathsf{-}\mathsf{=_t}}}
+ \def\MLtoruspeqcomparule{\ensuremath{T^2\mathsf{-comp}%
+ \mathsf{-}\mathsf{=_p}}}
+ \def\MLtoruspeqcompbrule{\ensuremath{T^2\mathsf{-comp}%
+ \mathsf{-}\mathsf{=_q}}}
+ \def\MLtoruspeqcompcrule{\ensuremath{T^2\mathsf{-comp}%
+ \mathsf{-}\mathsf{=_t}}}
+
+ \prfMakeInferenceRule{MLctxEMP}{\MLctxEMPrule}
+ \prfMakeInferenceRule{MLctxEXT}{\MLctxEXTrule}
+ \prfMakeInferenceRule{MLSubst}{\MLSubstrule}
+ \prfMakeInferenceRule{MLWkg}{\MLWkgrule}
+ \prfMakeInferenceRule{MLVble}{\MLVblerule}
+ \prfMakeInferenceRule{MLEQrefl}{\MLEQreflrule}
+ \prfMakeInferenceRule{MLEQsym}{\MLEQsymrule}
+ \prfMakeInferenceRule{MLEQtrans}{\MLEQtransrule}
+ \prfMakeInferenceRule{MLEQsubst}{\MLEQsubstrule}
+ \prfMakeInferenceRule{MLEQsubsteq}{\MLEQsubsteqrule}
+ \prfMakeInferenceRule{MLUintro}{\MLUintrorule}
+ \prfMakeInferenceRule{MLUcumul}{\MLUcumulrule}
+ \prfMakeInferenceRule{MLUcumuleq}{\MLUcumuleqrule}
+ \prfMakeInferenceRule{MLpiform}{\MLpiformrule}
+ \prfMakeInferenceRule{MLpiformeq}{\MLpiformeqrule}
+ \prfMakeInferenceRule{MLpiintro}{\MLpiintrorule}
+ \prfMakeInferenceRule{MLpiintroeq}{\MLpiintroeqrule}
+ \prfMakeInferenceRule{MLpielim}{\MLpielimrule}
+ \prfMakeInferenceRule{MLpielimeq}{\MLpielimeqrule}
+ \prfMakeInferenceRule{MLpicomp}{\MLpicomprule}
+ \prfMakeInferenceRule{MLpiuniq}{\MLpiuniqrule}
+ \prfMakeInferenceRule{MLKintro}{\MLKintrorule}
+ \prfMakeInferenceRule{MLsigmaform}{\MLsigmaformrule}
+ \prfMakeInferenceRule{MLsigmaintro}{\MLsigmaintrorule}
+ \prfMakeInferenceRule{MLsigmaelim}{\MLsigmaelimrule}
+ \prfMakeInferenceRule{MLsigmacomp}{\MLsigmacomprule}
+ \prfMakeInferenceRule{MLsigmauniq}{\MLsigmauniqrule}
+ \prfMakeInferenceRule{MLplusform}{\MLplusformrule}
+ \prfMakeInferenceRule{MLplusintrol}{\MLplusintrolrule}
+ \prfMakeInferenceRule{MLplusintror}{\MLplusintrorrule}
+ \prfMakeInferenceRule{MLpluselim}{\MLpluselimrule}
+ \prfMakeInferenceRule{MLpluscompl}{\MLpluscomplrule}
+ \prfMakeInferenceRule{MLpluscompr}{\MLpluscomprrule}
+ \prfMakeInferenceRule{MLplusuniq}{\MLplusuniqrule}
+ \prfMakeInferenceRule{MLzeroform}{\MLzeroformrule}
+ \prfMakeInferenceRule{MLzeroelim}{\MLzeroelimrule}
+ \prfMakeInferenceRule{MLzerouniq}{\MLzerouniqrule}
+ \prfMakeInferenceRule{MLunitform}{\MLunitformrule}
+ \prfMakeInferenceRule{MLunitintro}{\MLunitintrorule}
+ \prfMakeInferenceRule{MLunitelim}{\MLunitelimrule}
+ \prfMakeInferenceRule{MLunitcomp}{\MLunitcomprule}
+ \prfMakeInferenceRule{MLunituniq}{\MLunituniqrule}
+ \prfMakeInferenceRule{MLnatform}{\MLnatformrule}
+ \prfMakeInferenceRule{MLnatintrozero}{\MLnatintrozerorule}
+ \prfMakeInferenceRule{MLnatintrosucc}{\MLnatintrosuccrule}
+ \prfMakeInferenceRule{MLnatelim}{\MLnatelimrule}
+ \prfMakeInferenceRule{MLnatcompzero}{\MLnatcompzerorule}
+ \prfMakeInferenceRule{MLnatcompsucc}{\MLnatcompsuccrule}
+ \prfMakeInferenceRule{MLnatuniq}{\MLnatuniqrule}
+ \prfMakeInferenceRule{MLidform}{\MLidformrule}
+ \prfMakeInferenceRule{MLidintro}{\MLidintrorule}
+ \prfMakeInferenceRule{MLidelim}{\MLidelimrule}
+ \prfMakeInferenceRule{MLidcomp}{\MLidcomprule}
+ \prfMakeInferenceRule{MLiduniq}{\MLiduniqrule}
+ \prfMakeInferenceRule{MLwform}{\MLwformrule}
+ \prfMakeInferenceRule{MLwintro}{\MLwintrorule}
+ \prfMakeInferenceRule{MLwelim}{\MLwelimrule}
+ \prfMakeInferenceRule{MLwcomp}{\MLwcomprule}
+ \prfMakeInferenceRule{MLwuniq}{\MLwuniqrule}
+ \prfMakeInferenceRule{MLListform}{\MLListformrule}
+ \prfMakeInferenceRule{MLListintron}{\MLListintronrule}
+ \prfMakeInferenceRule{MLListintroc}{\MLListintrocrule}
+ \prfMakeInferenceRule{MLListelim}{\MLListelimrule}
+ \prfMakeInferenceRule{MLListcompn}{\MLListcompnrule}
+ \prfMakeInferenceRule{MLListcompc}{\MLListcompcrule}
+ \prfMakeInferenceRule{MLListuniq}{\MLListuniqrule}
+ \prfMakeInferenceRule{MLfunext}{\MLfunextrule}
+ \prfMakeInferenceRule{MLuniv}{\MLunivrule}
+ \prfMakeInferenceRule{MLSform}{\MLSformrule}
+ \prfMakeInferenceRule{MLSintro}{\MLSintrorule}
+ \prfMakeInferenceRule{MLSelim}{\MLSelimrule}
+ \prfMakeInferenceRule{MLScomp}{\MLScomprule}
+ \prfMakeInferenceRule{MLSuniq}{\MLSuniqrule}
+ \prfMakeInferenceRule{MLSpeqintro}{\MLSpeqintrorule}
+ \prfMakeInferenceRule{MLSpeqcomp}{\MLSpeqcomprule}
+ \prfMakeInferenceRule{MLIform}{\MLIformrule}
+ \prfMakeInferenceRule{MLIintroa}{\MLIintroarule}
+ \prfMakeInferenceRule{MLIintrob}{\MLIintrobrule}
+ \prfMakeInferenceRule{MLIelim}{\MLIelimrule}
+ \prfMakeInferenceRule{MLIcompa}{\MLIcomparule}
+ \prfMakeInferenceRule{MLIcompb}{\MLIcompbrule}
+ \prfMakeInferenceRule{MLIuniq}{\MLIuniqrule}
+ \prfMakeInferenceRule{MLIpeqintro}{\MLIpeqintrorule}
+ \prfMakeInferenceRule{MLIpeqcomp}{\MLIpeqcomprule}
+ \prfMakeInferenceRule{MLsigmaintroa}{\MLsigmaintroarule}
+ \prfMakeInferenceRule{MLsigmaintrob}{\MLsigmaintrobrule}
+ \prfMakeInferenceRule{MLsigmacompa}{\MLsigmacomparule}
+ \prfMakeInferenceRule{MLsigmacompb}{\MLsigmacompbrule}
+ \prfMakeInferenceRule{MLsigmapeqintro}{\MLsigmapeqintrorule}
+ \prfMakeInferenceRule{MLsigmapeqcomp}{\MLsigmapeqcomprule}
+ \prfMakeInferenceRule{MLPOform}{\MLPOformrule}
+ \prfMakeInferenceRule{MLPOintroa}{\MLPOintroarule}
+ \prfMakeInferenceRule{MLPOintrob}{\MLPOintrobrule}
+ \prfMakeInferenceRule{MLPOelim}{\MLPOelimrule}
+ \prfMakeInferenceRule{MLPOcompa}{\MLPOcomparule}
+ \prfMakeInferenceRule{MLPOcompb}{\MLPOcompbrule}
+ \prfMakeInferenceRule{MLPOuniq}{\MLPOuniqrule}
+ \prfMakeInferenceRule{MLPOpeqintro}{\MLPOpeqintrorule}
+ \prfMakeInferenceRule{MLPOpeqcomp}{\MLPOpeqcomprule}
+ \prfMakeInferenceRule{MLTform}{\MLTformrule}
+ \prfMakeInferenceRule{MLTintro}{\MLTintrorule}
+ \prfMakeInferenceRule{MLTelim}{\MLTelimrule}
+ \prfMakeInferenceRule{MLTcomp}{\MLTcomprule}
+ \prfMakeInferenceRule{MLTuniq}{\MLTuniqrule}
+ \prfMakeInferenceRule{MLTpeqintro}{\MLTpeqintrorule}
+ \prfMakeInferenceRule{MLTpeqcomp}{\MLTpeqcomprule}
+ \prfMakeInferenceRule{MLtorusform}{\MLtorusformrule}
+ \prfMakeInferenceRule{MLtorusintro}{\MLtorusintrorule}
+ \prfMakeInferenceRule{MLtoruselim}{\MLtoruselimrule}
+ \prfMakeInferenceRule{MLtoruscomp}{\MLtoruscomprule}
+ \prfMakeInferenceRule{MLtoruspeqintroa}{\MLtoruspeqintroarule}
+ \prfMakeInferenceRule{MLtoruspeqintrob}{\MLtoruspeqintrobrule}
+ \prfMakeInferenceRule{MLtoruspeqintroc}{\MLtoruspeqintrocrule}
+ \prfMakeInferenceRule{MLtoruspeqcompa}{\MLtoruspeqcomparule}
+ \prfMakeInferenceRule{MLtoruspeqcompb}{\MLtoruspeqcompbrule}
+ \prfMakeInferenceRule{MLtoruspeqcompc}{\MLtoruspeqcompcrule}
+\fi
+% -------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/prftree.tlpobj new/tlpkg/tlpobj/prftree.tlpobj
--- old/tlpkg/tlpobj/prftree.tlpobj 2019-02-28 04:00:32.000000000 +0100
+++ new/tlpkg/tlpobj/prftree.tlpobj 2020-03-04 23:53:23.000000000 +0100
@@ -1,15 +1,14 @@
name prftree
category Package
-revision 41985
+revision 54080
shortdesc Macros for building proof trees
relocated 1
longdesc A package to typeset proof trees for natural deduction calculi,
longdesc sequent-like calculi, and similar.
-runfiles size=11
+runfiles size=15
RELOC/tex/latex/prftree/prftree.sty
catalogue-also proofs
catalogue-ctan /macros/latex/contrib/prftree
-catalogue-date 2016-09-03 12:05:13 +0200
catalogue-license gpl
catalogue-topics tree maths proof
-catalogue-version 1.5
+catalogue-version 1.6
++++++ procIAGssymp.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/procIAGssymp/TestPaper.tex new/doc/latex/procIAGssymp/TestPaper.tex
--- old/doc/latex/procIAGssymp/TestPaper.tex 2006-01-09 01:44:40.000000000 +0100
+++ new/doc/latex/procIAGssymp/TestPaper.tex 2019-07-29 23:18:39.000000000 +0200
@@ -146,4 +146,4 @@
\end{document}
\endinput
%%
-%% End of file TestPaper.tex
+%% End of file TestPaper.tex
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/procIAGssymp.doc.tlpobj new/tlpkg/tlpobj/procIAGssymp.doc.tlpobj
--- old/tlpkg/tlpobj/procIAGssymp.doc.tlpobj 2019-02-28 04:00:32.000000000 +0100
+++ new/tlpkg/tlpobj/procIAGssymp.doc.tlpobj 2019-07-30 01:54:07.000000000 +0200
@@ -1,6 +1,6 @@
name procIAGssymp.doc
category Package
-revision 15878
+revision 51771
shortdesc doc files of procIAGssymp
relocated 1
docfiles size=2
++++++ procIAGssymp.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/procIAGssymp/procIAGssymp.sty new/tex/latex/procIAGssymp/procIAGssymp.sty
--- old/tex/latex/procIAGssymp/procIAGssymp.sty 2006-01-13 01:03:23.000000000 +0100
+++ new/tex/latex/procIAGssymp/procIAGssymp.sty 2019-07-29 23:18:39.000000000 +0200
@@ -164,4 +164,4 @@
% can be used to put some space and a rule after the abstract
\newcommand{\linea}{\vskip1mm\noindent\rule{74mm}{.5pt}}
%
-% end end end
+% end end end
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/procIAGssymp.tlpobj new/tlpkg/tlpobj/procIAGssymp.tlpobj
--- old/tlpkg/tlpobj/procIAGssymp.tlpobj 2019-02-28 04:00:33.000000000 +0100
+++ new/tlpkg/tlpobj/procIAGssymp.tlpobj 2019-07-30 01:54:07.000000000 +0200
@@ -1,6 +1,6 @@
name procIAGssymp
category Package
-revision 15878
+revision 51771
shortdesc Macros for IAG symposium papers
relocated 1
longdesc This package provides (re-)definitions of some LaTeX commands
++++++ proofread.doc.tar.xz ++++++
Binary files old/doc/latex/proofread/example.pdf and new/doc/latex/proofread/example.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/proofread/example.tex new/doc/latex/proofread/example.tex
--- old/doc/latex/proofread/example.tex 2018-07-31 22:54:36.000000000 +0200
+++ new/doc/latex/proofread/example.tex 2019-05-03 00:36:57.000000000 +0200
@@ -107,10 +107,10 @@
interpretatie van het verleden. Daaraan dienen we meteen toe te voegen dat een
dergelijk geheel niet onveranderlijk is. Integendeel, een canon mag en kan niet
worden gecanoniseerd. Essentieel is juist dat deze voortdurend onderwerp is van
-reflectie. Wie en wat verdienen een plek in de canon en waarom? Micha\"el Zeeman
+reflectie. Wie en wat verdienen een plek in de canon en waarom? \del{Micha\"el Zeeman
zei hierover eens: ``De canon leert geen vaststaande grootheden, de canon
onderwijst lezen, kijken en luisteren, dat is kritisch oordelen.'' De canon
-nodigt uit tot kritiek, tot aanvulling en in ieder geval tot gebruik.
+nodigt uit tot kritiek, tot aanvulling en in ieder geval tot gebruik.}
We hebben geprobeerd\com{a comment without highlighting} een beknopte canon te
formuleren voor de `Nederlandse' geschiedenis. Bij de samenstelling hebben drie
Binary files old/doc/latex/proofread/proofread.pdf and new/doc/latex/proofread/proofread.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/proofread/proofread.vmb new/doc/latex/proofread/proofread.vmb
--- old/doc/latex/proofread/proofread.vmb 2018-07-31 22:54:36.000000000 +0200
+++ new/doc/latex/proofread/proofread.vmb 2019-05-03 00:36:57.000000000 +0200
@@ -1,7 +1,7 @@
" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.
UseVimball
finish
-plugin/visPlugin.vim [[[1
+vis/plugin/visPlugin.vim [[[1
60
" vis.vim:
" Function: Perform an Ex command on a visual highlighted block (CTRL-V).
@@ -63,7 +63,7 @@
" ---------------------------------------------------------------------
" Modelines: {{{1
" vim: fdm=marker
-autoload/vis.vim [[[1
+vis/autoload/vis.vim [[[1
339
" vis.vim:
" Function: Perform an Ex command on a visual highlighted block (CTRL-V).
@@ -404,7 +404,7 @@
" ------------------------------------------------------------------------------
" Modelines: {{{1
" vim: fdm=marker
-plugin/cecutil.vim [[[1
+vis/plugin/cecutil.vim [[[1
600
" cecutil.vim : save/restore window position
" save/restore mark position
@@ -1006,7 +1006,7 @@
" Modelines: {{{1
" ================
" vim: ts=4 fdm=marker
-doc/vis.txt [[[1
+vis/doc/vis.txt [[[1
247
*vis.txt* The Visual Block Tool Sep 07, 2016
@@ -1255,7 +1255,7 @@
==============================================================================
Modelines: {{{1
vim:tw=78:ts=8:ft=help:fdm=marker
-syntax/proofread.vim [[[1
+proofread/syntax/proofread.vim [[[1
17
" escape sequences for package proofread.sty
map <Esc>d s\del{}<Esc>hp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/proofread.doc.tlpobj new/tlpkg/tlpobj/proofread.doc.tlpobj
--- old/tlpkg/tlpobj/proofread.doc.tlpobj 2019-02-28 04:00:33.000000000 +0100
+++ new/tlpkg/tlpobj/proofread.doc.tlpobj 2019-05-03 01:40:14.000000000 +0200
@@ -1,6 +1,6 @@
name proofread.doc
category Package
-revision 48322
+revision 50938
shortdesc doc files of proofread
relocated 1
docfiles size=84
@@ -8,6 +8,5 @@
RELOC/doc/latex/proofread/README.txt
RELOC/doc/latex/proofread/example.pdf
RELOC/doc/latex/proofread/example.tex
- RELOC/doc/latex/proofread/proofread.hd
RELOC/doc/latex/proofread/proofread.pdf
RELOC/doc/latex/proofread/proofread.vmb
++++++ proofread.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/proofread/proofread.sty new/tex/latex/proofread/proofread.sty
--- old/tex/latex/proofread/proofread.sty 2018-07-31 22:54:36.000000000 +0200
+++ new/tex/latex/proofread/proofread.sty 2019-05-03 00:36:57.000000000 +0200
@@ -14,7 +14,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{proofread}
- [2018/07/31 v1.03 Commands for inserting annotations]
+ [2019/04/25 v1.04 Commands for inserting annotations]
\RequirePackage{marginnote}
\ifx\undefined\DoubleSpacing
@@ -127,7 +127,6 @@
}
\AtBeginDocument{\marginparpush2pt}
\ifx\undefined\marginparmargin\else\marginparmargin{outer}\fi
-\newbox\PR@soulbox
\newcount\PR@markerno\PR@markerno=1
\newcommand{\com}[1]{%
\marginnote{%
@@ -145,8 +144,7 @@
}
\newcommand{\del}[1]{%
\com{delete}%
- \sbox\PR@soulbox{\st{#1}}%
- \hilite[red]{{\usebox\PR@soulbox}}%
+ \hilite[red]{#1}%
}
\newcommand{\yel}[2][]{%
\com{#1}%
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/proofread.tlpobj new/tlpkg/tlpobj/proofread.tlpobj
--- old/tlpkg/tlpobj/proofread.tlpobj 2019-02-28 04:00:33.000000000 +0100
+++ new/tlpkg/tlpobj/proofread.tlpobj 2019-05-03 01:40:15.000000000 +0200
@@ -1,6 +1,6 @@
name proofread
category Package
-revision 48322
+revision 50938
shortdesc Commands for inserting annotations
relocated 1
longdesc This package defines a few LaTeX commands that may be useful
@@ -21,7 +21,7 @@
runfiles size=2
RELOC/tex/latex/proofread/proofread.sty
catalogue-ctan /macros/latex/contrib/proofread
-catalogue-date 2018-07-31 13:24:40 +0200
+catalogue-date 2019-04-25 16:49:10 +0200
catalogue-license lppl1.3c
catalogue-topics editorial decoration
-catalogue-version 1.03
+catalogue-version 1.04
++++++ prooftrees.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/prooftrees/README new/doc/latex/prooftrees/README
--- old/doc/latex/prooftrees/README 2017-02-11 00:29:24.000000000 +0100
+++ new/doc/latex/prooftrees/README 2019-09-30 23:46:12.000000000 +0200
@@ -1,4 +1,4 @@
-%% Copyright 2017 Clea F. Rees
+%% Copyright 2019 Clea F. Rees
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -14,7 +14,7 @@
%
% This work consists of all files listed in manifest.txt.
-This package supports drawing proof trees of the kind often used in
+This package supports drawing tableaux (proof trees) of the kind often used in
introductory logic classes, especially those aimed at students without strong
mathemtical backgrounds. Hodges (1991) is one example of a text which uses
this system. When teaching such a system it is especially useful to annotate
@@ -27,13 +27,13 @@
proof lines or branch closures.
prooftrees is based on Forest and, hence, TikZ. The package requires version
-2.0.3 of Forest for expected results and will not work with version 1.
+2.1+ of Forest for expected results and will not work with version 1.
The author is certain that some of her beliefs are false, but sure that her
belief that prooftrees has bugs is not among them.
Clea F. Rees
ReesC21 <at> cardiff <dot> ac <dot> uk
-2017/02/08
+2019/09/30
vim: set nospell:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/prooftrees/manifest.txt new/doc/latex/prooftrees/manifest.txt
--- old/doc/latex/prooftrees/manifest.txt 2016-03-19 23:13:00.000000000 +0100
+++ new/doc/latex/prooftrees/manifest.txt 2019-09-30 23:46:12.000000000 +0200
@@ -1,4 +1,4 @@
-Copyright 2016 Clea F. Rees
+Copyright 2019 Clea F. Rees
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 http://www.latex-project.org/lppl.txt and version 1.3 or later is part of all distributions of LaTeX version 2005/12/01 or later.
Binary files old/doc/latex/prooftrees/prooftrees.pdf and new/doc/latex/prooftrees/prooftrees.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/prooftrees/prooftrees.tex new/doc/latex/prooftrees/prooftrees.tex
--- old/doc/latex/prooftrees/prooftrees.tex 2017-02-11 00:29:24.000000000 +0100
+++ new/doc/latex/prooftrees/prooftrees.tex 2019-09-30 23:46:12.000000000 +0200
@@ -1,4 +1,4 @@
-%% Copyright 2017 Clea F. Rees
+%% Copyright 2019 Clea F. Rees
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -20,7 +20,7 @@
%%
\pdfminorversion=7
\RequirePackage{svn-prov}
-\ProvidesFileSVN{$Id: prooftrees.tex 5848 2017-02-09 02:15:38Z cfrees $}[v0.6 \revinfo]
+\ProvidesFileSVN{$Id: prooftrees.tex 8642 2019-09-30 00:20:55Z cfrees $}[v0.7 \revinfo]
\GetFileInfoSVN*
\let\prooftreesdocversion\fileversion
\let\prooftreesdocbase\filebase
@@ -291,7 +291,7 @@
% It could at least do us the favour of holding some of its much less defensible and much more inconvenient design decisions in equal contempt!!
\defbibheading{bibliography}[\refname]{%
\section*{#1}%
- \markboth{#1}{#1}}
+ \markboth{#1}{}}
\makeindex
@@ -315,7 +315,7 @@
\bigskip
\begin{figure}[!b]
-\begin{adjustwidth}{-2em}{-2em}
+\begin{adjustwidth}{-3em}{-5em}
\centering
\begin{minipage}[t]{.475\linewidth}
\begin{prooftree}
@@ -387,7 +387,7 @@
]
]
]
- \end{prooftree}
+ \end{prooftree}%
\end{minipage}\hfill
\begin{minipage}[t]{.525\linewidth}
\begin{prooftree}
@@ -441,8 +441,8 @@
]
]
]
- \end{prooftree}
- \end{minipage}
+ \end{prooftree}%
+ \end{minipage}%
\end{adjustwidth}
\end{figure}
@@ -1488,6 +1488,22 @@
The default values for the document can be set outside the \env{prooftree} environment using \cs{forestset}\marg{settings}.
If \emph{only} proof trees will be typeset, a default style can be configured using \pkg{forest}'s \keyname*[fkeylist]{default preamble}.
+\DescribeKeys[fregbool]{auto move, not auto move}\vals{true,false}\AfterLastParam
+\Default{true}
+Determines whether \pkg{prooftrees} will move lines automatically, where possible, to avoid combining different justifications when different branches are treated differently.
+The default is to avoid conflicts automatically where possible.
+Turning this off permits finer-grained control of what gets moved using \keyname[fstyle]{move by}.
+The following are equivalent to the default setting:
+\begin{latexcode}
+ auto move
+ auto move=true
+\end{latexcode}
+Either of the following will turn auto move off:
+\begin{latexcode}
+ not auto move
+ auto move=false
+\end{latexcode}
+
\DescribeKeys[fregbool]{line numbering, not line numbering}\vals{true,false}\AfterLastParam
\Default{true}
This determines whether lines should be numbered.
@@ -1558,6 +1574,12 @@
If the format of such annotations is changed with \keyname[fregkeylist]{close format}, this dimension may require adjustment.
\Example{close sep=\cs{baselineskip}}
+\DescribeKey[fregdim]{proof tree inner proof width}\val{dimension}\AfterLastParam
+\Default{0pt}
+
+\DescribeKey[fregdim]{proof tree inner proof midpoint}\val{dimension}\AfterLastParam
+\Default{0pt}
+
\DescribeKey[fregcount]{line no shift}\val{integer}\AfterLastParam
\Default{0}
This value increments or decrements the number used for the first line of the proof.
@@ -1862,6 +1884,18 @@
Additional \TikZ{} keys to apply to this proof line.
\Example{line options=\arg{draw, rounded corners}}
+\DescribeKey[fstyle]{line no override}\val{text}\AfterLastParam
+Substitute \meta{text} for the programmatically-assigned line number.
+\meta{text} will be wrapped by \keyname[macro]{\cs{linenumberstyle}}, so should not be anything which would not make sense in that context.
+\Example{line no override=\arg{n}}
+
+\DescribeKey[fstyle]{no line no}\AfterLastParam
+Do not typeset a line number for this line.
+Intended for use in trees where \keyname[foptbool]{line numbering} is activated, but some particular line should not have its number typeset.
+Note that the number for the line is still assigned and the node which would otherwise contain that number is still typeset.
+If the next line is automatically numbered, the line numbering will, therefore, ‘jump’, skipping the omitted number.
+\Example{no line no}
+
% END subsec:lo
% END sec:ops
@@ -1899,7 +1933,24 @@
\section{Version History}\label{sec:hanes}
% BEGIN sec:hanes
+\subsection*{0.7}\label{subsec:v0.7}
+
+% BEGIN subsec:v0.7
+
+Implement \keyname[fregbool]{auto move}.
+See \cref{subsec:go}.
+The main point of this option is to allow automatic moves to be switched off if one teaches students to first apply all available non-branching rules for the tableau as a whole, as opposed to all non-branching rules for the sub-tree.
+The automatic algorithm is consistent with the latter, but not former, approach.
+The algorithm favours compact trees, which are more likely to fit on \pkg{beamer} slides.
+Switching the algorithm off permits users to specify exactly how things should or should not be move.
+Thanks to Peter Smith for prompting this.
+
+Fix bug reported at \href{https://tex.stackexchange.com/q/479263/39222}{tex.stackexchange.com/q/479263/39222}.
+
+% END subsec:v0.7
+
\subsection*{0.6}\label{subsec:v0.6}
+
% BEGIN subsec:v0.6
Add compatibility option for use with \pkg{bussproofs}.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/prooftrees/prooftrees_biber.bib new/doc/latex/prooftrees/prooftrees_biber.bib
--- old/doc/latex/prooftrees/prooftrees_biber.bib 2016-12-06 23:58:45.000000000 +0100
+++ new/doc/latex/prooftrees/prooftrees_biber.bib 2019-09-30 23:46:12.000000000 +0200
@@ -1,27 +1,27 @@
@BOOK{hodges-logic,
AUTHOR = {Hodges, Wilfred},
- ISBN = {0140136363},
PUBLISHER = {Penguin},
+ DATE = {1977, 1991},
+ ISBN = {0140136363},
TITLE = {Logic: An Introduction to Elementary Logic},
- YEAR = {1977, 1991},
-}
-
-@MANUAL{saso-forest-manual,
- AUTHOR = {Živanović, Sašo},
- DATE = {2016-03-04},
- EDITION = {2.0.2},
- KEYWORDS = {TeX, LaTeX, PGF, TikZ, Forest},
- TITLE = {Forest: A {PGF}/Ti\mkbibemph{k}{Z}-Based Package for Drawing Linguistic Trees},
- URL = {http://spj.ff.uni-lj.si/zivanovic/},
}
@MANUAL{tantau-tikz-pgf-manual,
AUTHOR = {Tantau, Till},
+ URL = {http://sourceforge.net/projects/pgf},
DATE = {2015-08-29},
EDITION = {3.0.1a},
- KEYWORDS = {TeX, LaTeX, PGF, TikZ},
+ KEYWORDS = {TeX,LaTeX,PGF,TikZ},
SUBTITLE = {Manual for Version 3.0.1a},
TITLE = {The {T}i\mkbibemph{k}{Z} and {PGF} Packages},
- URL = {http://sourceforge.net/projects/pgf},
+}
+
+@MANUAL{saso-forest-manual,
+ AUTHOR = {Živanović, Sašo},
+ URL = {http://spj.ff.uni-lj.si/zivanovic/},
+ DATE = {2016-03-04},
+ EDITION = {2.0.2},
+ KEYWORDS = {TeX,LaTeX,PGF,TikZ,Forest},
+ TITLE = {Forest: A {PGF}/Ti\mkbibemph{k}{Z}-Based Package for Drawing Linguistic Trees},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/prooftrees.doc.tlpobj new/tlpkg/tlpobj/prooftrees.doc.tlpobj
--- old/tlpkg/tlpobj/prooftrees.doc.tlpobj 2019-02-28 04:00:33.000000000 +0100
+++ new/tlpkg/tlpobj/prooftrees.doc.tlpobj 2019-10-01 02:22:28.000000000 +0200
@@ -1,6 +1,6 @@
name prooftrees.doc
category Package
-revision 43184
+revision 52221
shortdesc doc files of prooftrees
relocated 1
docfiles size=236
++++++ prooftrees.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/prooftrees/prooftrees.sty new/tex/latex/prooftrees/prooftrees.sty
--- old/tex/latex/prooftrees/prooftrees.sty 2017-02-11 00:29:24.000000000 +0100
+++ new/tex/latex/prooftrees/prooftrees.sty 2019-09-30 23:46:12.000000000 +0200
@@ -1,4 +1,4 @@
-%% Copyright 2017 Clea F. Rees
+%% Copyright 2019 Clea F. Rees
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -16,7 +16,7 @@
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{svn-prov}
-\ProvidesPackageSVN{$Id: prooftrees.sty 5848 2017-02-09 02:15:38Z cfrees $}[v0.6 \revinfo]
+\ProvidesPackageSVN{$Id: prooftrees.sty 8641 2019-09-29 23:57:27Z cfrees $}[v0.7 \revinfo]
\RequirePackage{etoolbox}
% define \prooftrees@enw to hold the name of the environment
% default is to name the environment prooftree, this ensures backwards compatibility
@@ -44,18 +44,28 @@
not justifications,% default is for no line justifications (b/c there's no point in enabling this if the user doesn't specify any content)
declare boolean register={single branches},% single branches: explicitly drawn branches and a normal level distance between lone children and their parents
not single branches,% default is for lone children to be grouped with their parents
+ declare boolean register={auto move},% ble mae'n bosibl, symud pethau'n awtomatig
+ auto move,% default: symud yn awtomatig
declare dimen register={line no width},% default will be set to the width of 99 wrapped in the line numbering style
line no width'=0pt,% fallback default is 0pt
declare dimen register={just sep},% amount by which to shift justifications away from the main tree
just sep'=1.5em,% default is 1.5em
+ declare dimen register={just dist},% distance of justifications from centre of inner tree; overrides just sep
+ just dist'=0pt,
declare dimen register={line no sep},% amount by which to shift line numbers away from the main tree
line no sep'=1.5em,
+ declare dimen register={line no dist},% distance of line nos. from centre of inner tree; overrides line no sep
+ line no dist'=0pt,
declare dimen register={close sep},% distance between closure symbols and any following annotation
close sep'=.75\baselineskip,
declare dimen register={proof tree line no x},
proof tree line no x'=0pt,
declare dimen register={proof tree justification x},
proof tree justification x'=0pt,
+ declare dimen register={proof tree inner proof width},
+ proof tree inner proof width'=0pt,
+ declare dimen register={proof tree inner proof midpoint},
+ proof tree inner proof midpoint'=0pt,
declare count register={proof tree rhif lefelau},% count the levels in the proof tree
proof tree rhif lefelau'=0,
declare count register={proof tree lcount},% count the line numbers (on the left)
@@ -336,11 +346,28 @@
},
}{},
},
+ proof tree inner proof midpoint/.min={>{OOw2+d}{x}{min x}{##1+##2}}{fake=root,descendants},
+ proof tree inner proof width/.max={>{OOw2+d}{x}{max x}{##1+##2}}{fake=root,descendants},
+ proof tree inner proof width-/.register=proof tree inner proof midpoint,
+ proof tree inner proof midpoint+/.process={Rw+d{proof tree inner proof width}{##1/2}},
}{},
if line numbering={% get the x position of line numbers and adjust the location and alignment of the proof statement
proof tree line no x/.min={>{OOw2+d}{x}{min x}{##1+##2}}{fake=root,descendants},
+ if={%
+ > Rd= {line no dist}{0pt}%
+ }{%
+ proof tree line no x-/.register=line no sep,
+ }{%
+ tempdima/.register=proof tree inner proof width,
+ tempdima:=2,
+ if={%
+ > RR< {line no dist}{tempdima}%
+ }{}{%
+ proof tree line no x/.register=proof tree inner proof midpoint,
+ proof tree line no x-/.register=line no dist,
+ },
+ },
proof tree line no x-/.register=line no width,
- proof tree line no x-/.register=line no sep,
for root={%
tempdimc/.option=x,
x'+/.register=proof tree line no x,
@@ -360,7 +387,20 @@
}{},
if justifications={% get the x position of justifications and create the nodes which will hold the justification content, if required
proof tree justification x/.max={>{OOw2+d}{x}{max x}{##1+##2}}{fake=root,descendants},
- proof tree justification x+/.register=just sep,
+ if={%
+ > Rd= {just dist}{0pt}%
+ }{%
+ proof tree justification x+/.register=just sep,
+ }{%
+ tempdima/.register=proof tree inner proof width,
+ tempdima:=2,
+ if={%
+ > RR< {just dist}{tempdima}%
+ }{}{%
+ proof tree justification x/.register=proof tree inner proof midpoint,
+ proof tree justification x+/.register=just dist,
+ },
+ },
append={%
[,
proof tree line justification,
@@ -390,96 +430,100 @@
},
},
proof tree ffurf={% processed before proof tree symud auto: adjusts the alignment of lines when some levels of the tree are grouped together either whenever the number of children is only 1 or by applying the grouped style to particular nodes when specifying the tree
- if single branches={%
- where={%
- >{O! _O< O &&}{grouped}{2}{level}{proof tree rhifo}%
- }{%
- if={%
- >{_O= _O< &}{1}{!parent.n children}{1}{!parent,parent.n children}%
+ if auto move={%
+ if single branches={%
+ where={%
+ >{O! _O< O &&}{grouped}{2}{level}{proof tree rhifo}%
}{%
- not tempboola,
- for root/.process={Ow1}{level}{%
- for level={##1}{%
- if={%
- >{_O< _O= &}{1}{!parent.n children}{1}{n}%
- }{%
- tempboola,
- }{},
- },
- },
- if tempboola={%
- proof tree toing,
- }{},
- }{},
- }{},
- }{},
- where={%
- >{O _O< O &&}{grouped}{1}{level}{proof tree rhifo}%
- }{% this searches for certain kinds of structural asymmetry in the tree and attempts to move lines appropriately in such cases - the algorithm is intended to be relatively conservative (not in the sense of 'cautious' or 'safe' but in the sense of 'reflection of the overlapping consensus of reasonable users' / 'what would be rationally agreed behind the prooftrees veil of ignorance'; apologies for the inconvenience if you are an unreasonable user)
- not tempboola,
- for root/.process={Ow1}{level}{%
- for level={##1}{%
if={%
- >{_O< _O= &}{1}{!parent.n children}{1}{n}%
- }{%
- tempboola,
- }{},
- },
- },% Sašo: http://chat.stackexchange.com/transcript/message/27874731#27874731, see also http://chat.stackexchange.com/transcript/message/27874722#27874722
- if tempboola={%
- if n children=0{%
- if={>{OO|}{!parent.proof tree toing}{!parent.proof tree toing with}}{% we're already moving the parent and the child will move with the parent, so we can just mark this and do nothing else
- proof tree toing with,
+ >{_O= _O< &}{1}{!parent.n children}{1}{!parent,parent.n children}%
}{%
- for root/.process={Ow1}{level}{% don't move a terminal node even in case of asymmetry: instead, create a separate proof line for terminal nodes on this level which are only children, by moving children with siblings on this level down a proof line, without altering their physical location
- % this makes the tree more compact and stops it looking silly
+ not tempboola,
+ for root/.process={Ow1}{level}{%
for level={##1}{%
if={%
- >{_O< _O= &}{1}{!parent.n children}{1}{n}%
- }{% this just serves to keep the levels nice for the sub-tree and ensure things align. We need this because we want to skip a level here to allow room for the terminal node in the other branch
- for parent={%
- if proof tree rhiant cymysg={}{% we mark the parent to avoid increasing the line number of its descendants more than once
- proof tree rhiant cymysg,
- for descendants={%
- proof tree toing by'+=1,
- },
- },
- },
+ >{_O< _O= &}{1}{!parent.n children}{1}{n}%
+ }{%
+ tempboola,
}{},
},
- },% Sašo: http://chat.stackexchange.com/transcript/message/27874731#27874731, see also http://chat.stackexchange.com/transcript/message/27874722#27874722
+ },
+ if tempboola={%
+ proof tree toing,
+ }{},
+ }{},
+ }{},
+ }{},
+ where={%
+ >{O _O< O &&}{grouped}{1}{level}{proof tree rhifo}%
+ }{% this searches for certain kinds of structural asymmetry in the tree and attempts to move lines appropriately in such cases - the algorithm is intended to be relatively conservative (not in the sense of 'cautious' or 'safe' but in the sense of 'reflection of the overlapping consensus of reasonable users' / 'what would be rationally agreed behind the prooftrees veil of ignorance'; apologies for the inconvenience if you are an unreasonable user)
+ not tempboola,
+ for root/.process={Ow1}{level}{%
+ for level={##1}{%
+ if={%
+ >{_O< _O= &}{1}{!parent.n children}{1}{n}%
+ }{%
+ tempboola,
+ }{},
},
- no edge,
- }{%
- if={%
- >{_O= _O< &}{1}{!parent.n children}{1}{!parent,parent.n children}%
- }{% don't try to move if the node has more than 1 child or the grandparent has no more than that; otherwise, mark the node as one to move - we figure out where to move it later
- proof tree toing,
- }{no edge},
- },
- }{no edge},
+ },% Sašo: http://chat.stackexchange.com/transcript/message/27874731#27874731, see also http://chat.stackexchange.com/transcript/message/27874722#27874722
+ if tempboola={%
+ if n children=0{%
+ if={>{OO|}{!parent.proof tree toing}{!parent.proof tree toing with}}{% we're already moving the parent and the child will move with the parent, so we can just mark this and do nothing else
+ proof tree toing with,
+ }{%
+ for root/.process={Ow1}{level}{% don't move a terminal node even in case of asymmetry: instead, create a separate proof line for terminal nodes on this level which are only children, by moving children with siblings on this level down a proof line, without altering their physical location
+ % this makes the tree more compact and stops it looking silly
+ for level={##1}{%
+ if={%
+ >{_O< _O= &}{1}{!parent.n children}{1}{n}%
+ }{% this just serves to keep the levels nice for the sub-tree and ensure things align. We need this because we want to skip a level here to allow room for the terminal node in the other branch
+ for parent={%
+ if proof tree rhiant cymysg={}{% we mark the parent to avoid increasing the line number of its descendants more than once
+ proof tree rhiant cymysg,
+ for descendants={%
+ proof tree toing by'+=1,
+ },
+ },
+ },
+ }{},
+ },
+ },% Sašo: http://chat.stackexchange.com/transcript/message/27874731#27874731, see also http://chat.stackexchange.com/transcript/message/27874722#27874722
+ },
+ no edge,
+ }{%
+ if={%
+ >{_O= _O< &}{1}{!parent.n children}{1}{!parent,parent.n children}%
+ }{% don't try to move if the node has more than 1 child or the grandparent has no more than that; otherwise, mark the node as one to move - we figure out where to move it later
+ proof tree toing,
+ }{no edge},
+ },
+ }{no edge},
+ }{},
}{},
},
proof tree symud awto={% processed before typesetting nodes: if _this_ could be done during packing, that would be very nice, even if the previous stuff can't be
- proof tree aros'=0,
- for proof tree symud={%
- if proof tree toing={% this relies on an experimental feature of forest, which is anffodus
- for nodewalk={fake=parent,fake=sibling,descendants}{do dynamics},
- delay n={\foresteregister{proof tree aros}}{%
- tempcounta/.max={>{OOOOw4+n}{level}{proof tree toing by}{proof tree toooing}{proof tree rhifo}{(##1+##2+##3)*##4}}{parent,sibling,descendants},
- if tempcounta>=1{%
- if={%
- >{Rw1+n OOw2+n >}{tempcounta}{##1+1}{level}{proof tree toing by}{##1+##2}%
- }{%
- tempcounta-/.option=level,
- tempcounta'+=1,
- move by/.register=tempcounta,
+ if auto move={%
+ proof tree aros'=0,
+ for proof tree symud={%
+ if proof tree toing={% this relies on an experimental feature of forest, which is anffodus
+ for nodewalk={fake=parent,fake=sibling,descendants}{do dynamics},
+ delay n={\foresteregister{proof tree aros}}{%
+ tempcounta/.max={>{OOOOw4+n}{level}{proof tree toing by}{proof tree toooing}{proof tree rhifo}{(##1+##2+##3)*##4}}{parent,sibling,descendants},
+ if tempcounta>=1{%
+ if={%
+ >{Rw1+n OOw2+n >}{tempcounta}{##1+1}{level}{proof tree toing by}{##1+##2}%
+ }{%
+ tempcounta-/.option=level,
+ tempcounta'+=1,
+ move by/.register=tempcounta,
+ }{no edge},
}{no edge},
- }{no edge},
- },
- proof tree aros'+=4,
- }{},
- },
+ },
+ proof tree aros'+=4,
+ }{},
+ },
+ }{},
},
proof tree nodiadau={% processed after proof tree creu nodiadau and before before drawing tree: creates annotation content which may include cross-references, applies highlighting and additional TikZ keys to line numbers, justifications and to wffs where specified for entire proof lines
where proof tree crefs={}{}{% resolve cross-refs in closures
@@ -605,7 +649,16 @@
for tree={%
if={%
>{O _O< &}{grouped}{1}{level}%
- }{l'=\baselineskip}{},
+ }{% osgoi overlapping nodes, if posibl: cwestiwn https://tex.stackexchange.com/q/456254/
+ not tempboola,
+ tempcounta/.option=level,
+ tempcountb/.option=proof tree toing,
+ tempcountb+/.option=proof tree toooing,
+ for nodewalk={fake=root, descendants}{if={> RO= On> O! O! OOw2+nR= &&&&
+ {tempcounta}{level} {!u.n children}{1} {proof tree arweinydd} {proof tree phantom} {proof tree toing by} {proof tree toooing}{##1+##2} {tempcountb}
+ }{tempboola}{}},
+ if tempboola={}{l'=\baselineskip},
+ }{},
},
},
before drawing tree={% set final alignment for proof lines which have been moved by effectively grouping lead nodes and moving their subtrees accordingly - this requires that each line number and justification be the child of the previous one and that if justifications are used at all, then justifications exist for all proof lines, even if empty
@@ -654,6 +707,27 @@
}{},
},
}{},
+ if={%
+ > RR| {auto move}{single branches}%
+ }{}{%
+ where proof tree arweinydd={%
+ for nodewalk={%
+ save append={proof tree walk}{%
+ current,
+ do until={%
+ > O+t_+t=! {content}{}%
+ }{parent}%
+ }%
+ }{},
+ }{},
+ where level>=1{%
+ if grouped={%
+ if in saved nodewalk={current}{proof tree walk}{}{%
+ no edge,
+ },
+ }{},
+ }{},
+ },
},
},
move by/.style={% this implements both the automated moves prooftrees finds necessary and any additional moves requested by the user - more accurately, it implements initial moves, which may get corrected later (e.g. to avoid skipping numbers or creating empty proof lines, which we assume aren't wanted)
@@ -701,8 +775,8 @@
parent anchor=parent,
proof tree toing by=#1-2+proof_tree_cadw_toing_by,
proof tree phantom,
- edge path/.option=!last dynamic node.edge path,
- edge/.option=!last dynamic node.edge,
+ edge path/.option=!u.edge path,
+ edge/.option=!u.edge,
before drawing tree={%
if={>{RR|}{line numbering}{justifications}}{%
proof tree proof line no/.process={Ow1+n}{!n=1.proof tree proof line no}{##1-1},
@@ -746,6 +820,22 @@
},
proof tree rhestr rhifau llinellau+/.option=#1.proof tree proof line no,% works according to Sašo's anti-pgfmath version
},
+ line no override/.style={% 2018-02-19 ateb https://tex.stackexchange.com/a/416037/
+ before drawing tree={
+ for name/.process={Ow}{proof tree proof line no}{line no ##1}{
+ content=\linenumberstyle{#1},
+ typeset node,
+ },
+ },
+ },
+ no line no/.style={% 2018-02-19 gweler uchod
+ before drawing tree={
+ for name/.process={Ow}{proof tree proof line no}{line no ##1}{
+ content=,
+ typeset node,
+ },
+ },
+ },
proof tree dadfygio/.style={% style for use in debugging moves which displays information about nodes in the tree
before packing={%
for tree={%
@@ -760,6 +850,21 @@
},
},
},
+ proof tree alino/.style={% debugging / dangos dimension stuff
+ before drawing tree={%
+ tikz+/.process={%
+ RRRRw4{proof tree inner proof midpoint}{line no width}{line no dist}{just dist}
+ {
+ \begin{scope}[densely dashed]
+ \draw [darkgray] (##1,0) coordinate (a) -- (a |- current bounding box.south);
+ \draw [green] (current bounding box.west) -- ++(##2,0) coordinate (b);
+ \draw [blue] (b) -- ++(##3,0) coordinate (c);
+ \draw [magenta] (c) -- ++(##4,0);
+ \end{scope}
+ }%
+ },
+ },
+ },
}
\environbodyname\prooftreebody
\bracketset{action character=@}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/prooftrees.tlpobj new/tlpkg/tlpobj/prooftrees.tlpobj
--- old/tlpkg/tlpobj/prooftrees.tlpobj 2019-02-28 04:00:34.000000000 +0100
+++ new/tlpkg/tlpobj/prooftrees.tlpobj 2019-10-01 02:22:28.000000000 +0200
@@ -1,6 +1,6 @@
name prooftrees
category Package
-revision 43184
+revision 52221
shortdesc Forest-based proof trees (symbolic logic)
relocated 1
longdesc The package supports drawing proof trees of the kind often used
@@ -16,11 +16,11 @@
longdesc lines or branch closures. prooftrees is based on forest and,
longdesc hence, TikZ. The package requires version 2.0.2 of Forest for
longdesc expected results and will not work with version 1.
-runfiles size=10
+runfiles size=11
RELOC/tex/latex/prooftrees/prooftrees.sty
catalogue-also forest
catalogue-ctan /graphics/pgf/contrib/prooftrees
-catalogue-date 2017-02-09 05:21:50 +0100
+catalogue-date 2019-09-30 10:14:15 +0200
catalogue-license lppl1.3
catalogue-topics tree pgf-tikz logic
-catalogue-version 0.6
+catalogue-version 0.7 svn 8641
++++++ ps2pk.doc.tar.xz ++++++
Binary files old/texmf-dist/doc/man/man1/mag.man1.pdf and new/texmf-dist/doc/man/man1/mag.man1.pdf differ
Binary files old/texmf-dist/doc/man/man1/pfb2pfa.man1.pdf and new/texmf-dist/doc/man/man1/pfb2pfa.man1.pdf differ
Binary files old/texmf-dist/doc/man/man1/pk2bm.man1.pdf and new/texmf-dist/doc/man/man1/pk2bm.man1.pdf differ
Binary files old/texmf-dist/doc/man/man1/ps2pk.man1.pdf and new/texmf-dist/doc/man/man1/ps2pk.man1.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/ps2pk.doc.tlpobj new/tlpkg/tlpobj/ps2pk.doc.tlpobj
--- old/tlpkg/tlpobj/ps2pk.doc.tlpobj 2019-03-27 02:26:09.000000000 +0100
+++ new/tlpkg/tlpobj/ps2pk.doc.tlpobj 2019-11-19 01:55:51.000000000 +0100
@@ -1,6 +1,6 @@
name ps2pk.doc
category TLCore
-revision 50602
+revision 52851
shortdesc doc files of ps2pk
docfiles size=27
texmf-dist/doc/man/man1/mag.1
++++++ pseudocode.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/pseudocode.doc.tlpobj new/tlpkg/tlpobj/pseudocode.doc.tlpobj
--- old/tlpkg/tlpobj/pseudocode.doc.tlpobj 2019-02-28 04:00:38.000000000 +0100
+++ new/tlpkg/tlpobj/pseudocode.doc.tlpobj 2020-03-04 23:53:24.000000000 +0100
@@ -1,6 +1,6 @@
name pseudocode.doc
category Package
-revision 15878
+revision 54080
shortdesc doc files of pseudocode
relocated 1
docfiles size=43
++++++ pseudocode.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/pseudocode.tlpobj new/tlpkg/tlpobj/pseudocode.tlpobj
--- old/tlpkg/tlpobj/pseudocode.tlpobj 2019-02-28 04:00:38.000000000 +0100
+++ new/tlpkg/tlpobj/pseudocode.tlpobj 2020-03-04 23:53:24.000000000 +0100
@@ -1,13 +1,13 @@
name pseudocode
category Package
-revision 15878
+revision 54080
shortdesc LaTeX environment for specifying algorithms in a natural way
relocated 1
longdesc This package provides the environment "pseudocode" for
longdesc describing algorithms in a natural manner.
runfiles size=2
RELOC/tex/latex/pseudocode/pseudocode.sty
+catalogue-also pseudo
catalogue-ctan /macros/latex/contrib/pseudocode
-catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl
catalogue-topics pseudocode
++++++ psnfss.doc.tar.xz ++++++
++++ 1620 lines of diff (skipped)
++++++ psnfss.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fonts/map/dvips/psnfss/psnfss.map new/fonts/map/dvips/psnfss/psnfss.map
--- old/fonts/map/dvips/psnfss/psnfss.map 2014-05-10 00:39:48.000000000 +0200
+++ new/fonts/map/dvips/psnfss/psnfss.map 2020-04-12 20:27:45.000000000 +0200
@@ -2,47 +2,47 @@
%
eurmo10 EURM10 " .167 SlantFont" \Hv@@Scale phvro8r
}{}
-\DeclareFontShape{8r}{phv}{mc}{n}{
+\DeclareFontShape{8r}{phv}{c}{n}{
<-> \Hv@@Scale phvr8rn
}{}
-\DeclareFontShape{8r}{phv}{mc}{sl}{
+\DeclareFontShape{8r}{phv}{c}{sl}{
<-> \Hv@@Scale phvro8rn
}{}
@@ -42,7 +42,7 @@
}{}
\DeclareFontShape{8r}{phv}{m}{it}{<->ssub * phv/m/sl}{}
-\DeclareFontShape{8r}{phv}{mc}{it}{<->ssub * phv/mc/sl}{}
+\DeclareFontShape{8r}{phv}{c}{it}{<->ssub * phv/c/sl}{}
\DeclareFontShape{8r}{phv}{bx}{n}{<->ssub * phv/b/n}{}
\DeclareFontShape{8r}{phv}{bx}{sl}{<->ssub * phv/b/sl}{}
\DeclareFontShape{8r}{phv}{b}{it}{<->ssub * phv/b/sl}{}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/8rpzc.fd new/tex/latex/psnfss/8rpzc.fd
--- old/tex/latex/psnfss/8rpzc.fd 2006-01-13 01:03:49.000000000 +0100
+++ new/tex/latex/psnfss/8rpzc.fd 2020-04-12 20:27:45.000000000 +0200
@@ -1,15 +1,13 @@
\ProvidesFile{8rpzc.fd}
- [2001/06/04 font definitions for 8r/pzc.]
+ [2020/03/25 font definitions for 8r/pzc.]
\DeclareFontFamily{8r}{pzc}{}
-\DeclareFontShape{8r}{pzc}{mb}{it}{
+\DeclareFontShape{8r}{pzc}{m}{it}{
<-> pzcmi8r
}{}
-\DeclareFontShape{8r}{pzc}{m}{it}{<->ssub * pzc/mb/it}{}
-\DeclareFontShape{8r}{pzc}{mb}{sl}{<->ssub * pzc/mb/it}{}
-\DeclareFontShape{8r}{pzc}{m}{sl}{<->ssub * pzc/mb/sl}{}
-\DeclareFontShape{8r}{pzc}{m}{n}{<->ssub * pzc/mb/it}{}
+\DeclareFontShape{8r}{pzc}{m}{sl}{<->ssub * pzc/m/it}{}
+\DeclareFontShape{8r}{pzc}{m}{n}{<->ssub * pzc/m/it}{}
\endinput
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/avant.sty new/tex/latex/psnfss/avant.sty
--- old/tex/latex/psnfss/avant.sty 2006-08-27 20:14:13.000000000 +0200
+++ new/tex/latex/psnfss/avant.sty 2020-04-12 20:27:45.000000000 +0200
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
\ProvidesPackage{avant}%
-[2005/04/12 PSNFSS-v9.2a
+[2020/03/25 PSNFSS-v9.3
(SPQR)
]
\renewcommand{\sfdefault}{pag}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/bookman.sty new/tex/latex/psnfss/bookman.sty
--- old/tex/latex/psnfss/bookman.sty 2006-08-27 20:14:13.000000000 +0200
+++ new/tex/latex/psnfss/bookman.sty 2020-04-12 20:27:45.000000000 +0200
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
\ProvidesPackage{bookman}%
-[2005/04/12 PSNFSS-v9.2a
+[2020/03/25 PSNFSS-v9.3
(SPQR)
]
\renewcommand{\rmdefault}{pbk}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/chancery.sty new/tex/latex/psnfss/chancery.sty
--- old/tex/latex/psnfss/chancery.sty 2006-08-27 20:14:13.000000000 +0200
+++ new/tex/latex/psnfss/chancery.sty 2020-04-12 20:27:45.000000000 +0200
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
\ProvidesPackage{chancery}%
-[2005/04/12 PSNFSS-v9.2a
+[2020/03/25 PSNFSS-v9.3
(SPQR)
]
\renewcommand{\rmdefault}{pzc}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/charter.sty new/tex/latex/psnfss/charter.sty
--- old/tex/latex/psnfss/charter.sty 2006-08-27 20:14:13.000000000 +0200
+++ new/tex/latex/psnfss/charter.sty 2020-04-12 20:27:45.000000000 +0200
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
\ProvidesPackage{charter}%
-[2005/04/12 PSNFSS-v9.2a
+[2020/03/25 PSNFSS-v9.3
(P.Dyballa)
]
\renewcommand{\rmdefault}{bch}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/courier.sty new/tex/latex/psnfss/courier.sty
--- old/tex/latex/psnfss/courier.sty 2006-08-27 20:14:13.000000000 +0200
+++ new/tex/latex/psnfss/courier.sty 2020-04-12 20:27:45.000000000 +0200
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
\ProvidesPackage{courier}%
-[2005/04/12 PSNFSS-v9.2a
+[2020/03/25 PSNFSS-v9.3
(WaS)
]
\renewcommand{\ttdefault}{pcr}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/helvet.sty new/tex/latex/psnfss/helvet.sty
--- old/tex/latex/psnfss/helvet.sty 2006-08-27 20:14:13.000000000 +0200
+++ new/tex/latex/psnfss/helvet.sty 2020-04-12 20:27:45.000000000 +0200
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
\ProvidesPackage{helvet}%
-[2005/04/12 PSNFSS-v9.2a
+[2020/03/25 PSNFSS-v9.3
(WaS)
]
\RequirePackage{keyval}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/mathpazo.sty new/tex/latex/psnfss/mathpazo.sty
--- old/tex/latex/psnfss/mathpazo.sty 2006-08-27 20:14:13.000000000 +0200
+++ new/tex/latex/psnfss/mathpazo.sty 2020-04-12 20:27:45.000000000 +0200
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
\ProvidesPackage{mathpazo}%
-[2005/04/12 PSNFSS-v9.2a
+[2020/03/25 PSNFSS-v9.3
Palatino w/ Pazo Math (D.Puga, WaS)
]
\let\s@ved@info\@font@info
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/mathpple.sty new/tex/latex/psnfss/mathpple.sty
--- old/tex/latex/psnfss/mathpple.sty 2006-08-27 20:14:13.000000000 +0200
+++ new/tex/latex/psnfss/mathpple.sty 2020-04-12 20:27:45.000000000 +0200
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
\ProvidesPackage{mathpple}%
-[2005/04/12 PSNFSS-v9.2a
+[2020/03/25 PSNFSS-v9.3
Palatino w/ Math (WaS)
]
\PackageWarningNoLine{mathpple}{%
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/mathptm.sty new/tex/latex/psnfss/mathptm.sty
--- old/tex/latex/psnfss/mathptm.sty 2006-08-27 20:14:13.000000000 +0200
+++ new/tex/latex/psnfss/mathptm.sty 2020-04-12 20:27:45.000000000 +0200
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
\ProvidesPackage{mathptm}%
-[2005/04/12 PSNFSS-v9.2a
+[2020/03/25 PSNFSS-v9.3
Times w/ Math (SPQR, WaS)
]
\PackageWarningNoLine{mathptm}{%
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/mathptmx.sty new/tex/latex/psnfss/mathptmx.sty
--- old/tex/latex/psnfss/mathptmx.sty 2006-08-27 20:14:13.000000000 +0200
+++ new/tex/latex/psnfss/mathptmx.sty 2020-04-12 20:27:45.000000000 +0200
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
\ProvidesPackage{mathptmx}%
-[2005/04/12 PSNFSS-v9.2a
+[2020/03/25 PSNFSS-v9.3
Times w/ Math, improved (SPQR, WaS)
]
\def\rmdefault{ptm}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/newcent.sty new/tex/latex/psnfss/newcent.sty
--- old/tex/latex/psnfss/newcent.sty 2006-08-27 20:14:13.000000000 +0200
+++ new/tex/latex/psnfss/newcent.sty 2020-04-12 20:27:45.000000000 +0200
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
\ProvidesPackage{newcent}%
-[2005/04/12 PSNFSS-v9.2a
+[2020/03/25 PSNFSS-v9.3
(SPQR)
]
\renewcommand{\rmdefault}{pnc}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/ot1phv.fd new/tex/latex/psnfss/ot1phv.fd
--- old/tex/latex/psnfss/ot1phv.fd 2006-01-13 01:03:49.000000000 +0100
+++ new/tex/latex/psnfss/ot1phv.fd 2020-04-12 20:27:45.000000000 +0200
@@ -1,5 +1,5 @@
\ProvidesFile{ot1phv.fd}
- [2001/06/04 scalable font definitions for OT1/phv.]
+ [2020/03/25 scalable font definitions for OT1/phv.]
\expandafter\ifx\csname Hv@scale\endcsname\relax
\let\Hv@@scale\@empty
\else
@@ -16,13 +16,13 @@
\DeclareFontShape{OT1}{phv}{m}{sl}{
<-> \Hv@@scale phvro7t
}{}
-\DeclareFontShape{OT1}{phv}{mc}{n}{
+\DeclareFontShape{OT1}{phv}{c}{n}{
<-> \Hv@@scale phvr7tn
}{}
-\DeclareFontShape{OT1}{phv}{mc}{sc}{
+\DeclareFontShape{OT1}{phv}{c}{sc}{
<-> \Hv@@scale phvrc7tn
}{}
-\DeclareFontShape{OT1}{phv}{mc}{sl}{
+\DeclareFontShape{OT1}{phv}{c}{sl}{
<-> \Hv@@scale phvro7tn
}{}
\DeclareFontShape{OT1}{phv}{b}{n}{
@@ -44,7 +44,7 @@
<-> \Hv@@scale phvbo7tn
}{}
\DeclareFontShape{OT1}{phv}{m}{it}{<->ssub * phv/m/sl}{}
-\DeclareFontShape{OT1}{phv}{mc}{it}{<->ssub * phv/mc/sl}{}
+\DeclareFontShape{OT1}{phv}{c}{it}{<->ssub * phv/c/sl}{}
\DeclareFontShape{OT1}{phv}{bx}{n}{<->ssub * phv/b/n}{}
\DeclareFontShape{OT1}{phv}{bx}{sc}{<->ssub * phv/b/sc}{}
\DeclareFontShape{OT1}{phv}{bx}{sl}{<->ssub * phv/b/sl}{}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/ot1pzc.fd new/tex/latex/psnfss/ot1pzc.fd
--- old/tex/latex/psnfss/ot1pzc.fd 2006-01-13 01:03:49.000000000 +0100
+++ new/tex/latex/psnfss/ot1pzc.fd 2020-04-12 20:27:45.000000000 +0200
@@ -1,15 +1,13 @@
\ProvidesFile{ot1pzc.fd}
- [2001/06/04 font definitions for OT1/pzc.]
+ [2020/03/25 font definitions for OT1/pzc.]
\DeclareFontFamily{OT1}{pzc}{}
-\DeclareFontShape{OT1}{pzc}{mb}{it}{
+\DeclareFontShape{OT1}{pzc}{m}{it}{
<-> pzcmi7t
}{}
-\DeclareFontShape{OT1}{pzc}{m}{it}{<->ssub * pzc/mb/it}{}
-\DeclareFontShape{OT1}{pzc}{mb}{sl}{<->ssub * pzc/mb/it}{}
-\DeclareFontShape{OT1}{pzc}{m}{sl}{<->ssub * pzc/mb/it}{}
-\DeclareFontShape{OT1}{pzc}{m}{n}{<->ssub * pzc/mb/it}{}
+\DeclareFontShape{OT1}{pzc}{m}{sl}{<->ssub * pzc/m/it}{}
+\DeclareFontShape{OT1}{pzc}{m}{n}{<->ssub * pzc/m/it}{}
\endinput
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/palatino.sty new/tex/latex/psnfss/palatino.sty
--- old/tex/latex/psnfss/palatino.sty 2006-08-27 20:14:13.000000000 +0200
+++ new/tex/latex/psnfss/palatino.sty 2020-04-12 20:27:45.000000000 +0200
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
\ProvidesPackage{palatino}%
-[2005/04/12 PSNFSS-v9.2a
+[2020/03/25 PSNFSS-v9.3
(SPQR)
]
\renewcommand{\rmdefault}{ppl}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/pifont.sty new/tex/latex/psnfss/pifont.sty
--- old/tex/latex/psnfss/pifont.sty 2006-08-27 20:14:13.000000000 +0200
+++ new/tex/latex/psnfss/pifont.sty 2020-04-12 20:27:45.000000000 +0200
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
\ProvidesPackage{pifont}%
-[2005/04/12 PSNFSS-v9.2a
+[2020/03/25 PSNFSS-v9.3
Pi font support (SPQR)
]
\newcommand{\Pifont}[1]{\fontfamily{#1}\fontencoding{U}%
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/t1phv.fd new/tex/latex/psnfss/t1phv.fd
--- old/tex/latex/psnfss/t1phv.fd 2006-01-13 01:03:49.000000000 +0100
+++ new/tex/latex/psnfss/t1phv.fd 2020-04-12 20:27:45.000000000 +0200
@@ -1,5 +1,5 @@
\ProvidesFile{t1phv.fd}
- [2001/06/04 scalable font definitions for T1/phv.]
+ [2020/03/25 scalable font definitions for T1/phv.]
\expandafter\ifx\csname Hv@scale\endcsname\relax
\let\Hv@@scale\@empty
\else
@@ -15,13 +15,13 @@
\DeclareFontShape{T1}{phv}{m}{sl}{
<-> \Hv@@scale phvro8t
}{}
-\DeclareFontShape{T1}{phv}{mc}{n}{
+\DeclareFontShape{T1}{phv}{c}{n}{
<-> \Hv@@scale phvr8tn
}{}
-\DeclareFontShape{T1}{phv}{mc}{sc}{
+\DeclareFontShape{T1}{phv}{c}{sc}{
<-> \Hv@@scale phvrc8tn
}{}
-\DeclareFontShape{T1}{phv}{mc}{sl}{
+\DeclareFontShape{T1}{phv}{c}{sl}{
<-> \Hv@@scale phvro8tn
}{}
\DeclareFontShape{T1}{phv}{b}{n}{
@@ -43,7 +43,7 @@
<-> \Hv@@scale phvbo8tn
}{}
\DeclareFontShape{T1}{phv}{m}{it}{<->ssub * phv/m/sl}{}
-\DeclareFontShape{T1}{phv}{mc}{it}{<->ssub * phv/mc/sl}{}
+\DeclareFontShape{T1}{phv}{c}{it}{<->ssub * phv/c/sl}{}
\DeclareFontShape{T1}{phv}{bx}{n}{<->ssub * phv/b/n}{}
\DeclareFontShape{T1}{phv}{bx}{sc}{<->ssub * phv/b/sc}{}
\DeclareFontShape{T1}{phv}{bx}{sl}{<->ssub * phv/b/sl}{}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/t1pzc.fd new/tex/latex/psnfss/t1pzc.fd
--- old/tex/latex/psnfss/t1pzc.fd 2006-01-13 01:03:49.000000000 +0100
+++ new/tex/latex/psnfss/t1pzc.fd 2020-04-12 20:27:45.000000000 +0200
@@ -1,15 +1,13 @@
\ProvidesFile{t1pzc.fd}
- [2001/06/04 font definitions for T1/pzc.]
+ [2020/03/25 font definitions for T1/pzc.]
\DeclareFontFamily{T1}{pzc}{}
-\DeclareFontShape{T1}{pzc}{mb}{it}{
+\DeclareFontShape{T1}{pzc}{m}{it}{
<-> pzcmi8t
}{}
-\DeclareFontShape{T1}{pzc}{m}{it}{<->ssub * pzc/mb/it}{}
-\DeclareFontShape{T1}{pzc}{mb}{sl}{<->ssub * pzc/mb/it}{}
-\DeclareFontShape{T1}{pzc}{m}{sl}{<->ssub * pzc/mb/sl}{}
-\DeclareFontShape{T1}{pzc}{m}{n}{<->ssub * pzc/mb/it}{}
+\DeclareFontShape{T1}{pzc}{m}{sl}{<->ssub * pzc/m/it}{}
+\DeclareFontShape{T1}{pzc}{m}{n}{<->ssub * pzc/m/it}{}
\endinput
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/times.sty new/tex/latex/psnfss/times.sty
--- old/tex/latex/psnfss/times.sty 2006-08-27 20:14:13.000000000 +0200
+++ new/tex/latex/psnfss/times.sty 2020-04-12 20:27:45.000000000 +0200
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
\ProvidesPackage{times}%
-[2005/04/12 PSNFSS-v9.2a
+[2020/03/25 PSNFSS-v9.3
(SPQR)
]
\renewcommand{\sfdefault}{phv}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/ts1phv.fd new/tex/latex/psnfss/ts1phv.fd
--- old/tex/latex/psnfss/ts1phv.fd 2006-01-13 01:03:49.000000000 +0100
+++ new/tex/latex/psnfss/ts1phv.fd 2020-04-12 20:27:45.000000000 +0200
@@ -1,5 +1,5 @@
\ProvidesFile{ts1phv.fd}
- [2001/06/04 scalable font definitions for TS1/phv.]
+ [2020/03/25 scalable font definitions for TS1/phv.]
\expandafter\ifx\csname Hv@scale\endcsname\relax
\let\Hv@@scale\@empty
\else
@@ -12,10 +12,10 @@
\DeclareFontShape{TS1}{phv}{m}{sl}{
<-> \Hv@@scale phvro8c
}{}
-\DeclareFontShape{TS1}{phv}{mc}{n}{
+\DeclareFontShape{TS1}{phv}{c}{n}{
<-> \Hv@@scale phvr8cn
}{}
-\DeclareFontShape{TS1}{phv}{mc}{sl}{
+\DeclareFontShape{TS1}{phv}{c}{sl}{
<-> \Hv@@scale phvro8cn
}{}
\DeclareFontShape{TS1}{phv}{b}{n}{
@@ -31,7 +31,7 @@
<-> \Hv@@scale phvbo8cn
}{}
\DeclareFontShape{TS1}{phv}{m}{it}{<->ssub * phv/m/sl}{}
-\DeclareFontShape{TS1}{phv}{mc}{it}{<->ssub * phv/mc/sl}{}
+\DeclareFontShape{TS1}{phv}{c}{it}{<->ssub * phv/c/sl}{}
\DeclareFontShape{TS1}{phv}{bx}{n}{<->ssub * phv/b/n}{}
\DeclareFontShape{TS1}{phv}{bx}{sl}{<->ssub * phv/b/sl}{}
\DeclareFontShape{TS1}{phv}{b}{it}{<->ssub * phv/b/sl}{}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/ts1pzc.fd new/tex/latex/psnfss/ts1pzc.fd
--- old/tex/latex/psnfss/ts1pzc.fd 2006-01-13 01:03:49.000000000 +0100
+++ new/tex/latex/psnfss/ts1pzc.fd 2020-04-12 20:27:45.000000000 +0200
@@ -3,13 +3,11 @@
\DeclareFontFamily{TS1}{pzc}{}
-\DeclareFontShape{TS1}{pzc}{mb}{it}{
+\DeclareFontShape{TS1}{pzc}{m}{it}{
<-> pzcmi8c
}{}
-\DeclareFontShape{TS1}{pzc}{m}{it}{<->ssub * pzc/mb/it}{}
-\DeclareFontShape{TS1}{pzc}{mb}{sl}{<->ssub * pzc/mb/it}{}
-\DeclareFontShape{TS1}{pzc}{m}{sl}{<->ssub * pzc/mb/sl}{}
-\DeclareFontShape{TS1}{pzc}{m}{n}{<->ssub * pzc/mb/it}{}
+\DeclareFontShape{TS1}{pzc}{m}{sl}{<->ssub * pzc/m/it}{}
+\DeclareFontShape{TS1}{pzc}{m}{n}{<->ssub * pzc/m/it}{}
\endinput
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/psnfss/utopia.sty new/tex/latex/psnfss/utopia.sty
--- old/tex/latex/psnfss/utopia.sty 2006-08-27 20:14:13.000000000 +0200
+++ new/tex/latex/psnfss/utopia.sty 2020-04-12 20:27:45.000000000 +0200
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
\ProvidesPackage{utopia}%
-[2005/04/12 PSNFSS-v9.2a
+[2020/03/25 PSNFSS-v9.3
(P.Dyballa)
]
\PackageWarningNoLine{utopia}{%
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/psnfss.tlpobj new/tlpkg/tlpobj/psnfss.tlpobj
--- old/tlpkg/tlpobj/psnfss.tlpobj 2019-02-28 04:00:39.000000000 +0100
+++ new/tlpkg/tlpobj/psnfss.tlpobj 2020-04-13 01:55:00.000000000 +0200
@@ -1,6 +1,6 @@
name psnfss
category Package
-revision 33946
+revision 54694
shortdesc Font support for common PostScript fonts
relocated 1
longdesc Font definition files, macros and font metrics for
@@ -31,6 +31,8 @@
longdesc which uses Palatino as base font, with the mathpazo fonts. The
longdesc bundle as a whole is part of the LaTeX 'required' set of
longdesc packages.
+depend symbol
+depend zapfding
depend graphics
execute addMap charter.map
execute addMap fpls.map
@@ -145,7 +147,6 @@
RELOC/tex/latex/psnfss/utopia.sty
catalogue-also psnfssx
catalogue-ctan /macros/latex/required/psnfss
-catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl
catalogue-topics font-supp font-use
-catalogue-version 9.2a
+catalogue-version 9.3
++++++ pst-eucl.doc.tar.xz ++++++
++++ 4217 lines of diff (skipped)
++++++ pst-eucl.tar.xz ++++++
++++ 9495 lines of diff (skipped)
++++++ pst-fractal.doc.tar.xz ++++++
/work/SRC/openSUSE:Factory/texlive-specs-s/pst-fractal.doc.tar.xz /work/SRC/openSUSE:Factory/.texlive-specs-s.new.3606/pst-fractal.doc.tar.xz differ: char 26, line 1
++++++ pst-fractal.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/generic/pst-fractal/pst-fractal.tex new/tex/generic/pst-fractal/pst-fractal.tex
--- old/tex/generic/pst-fractal/pst-fractal.tex 2018-12-01 23:47:30.000000000 +0100
+++ new/tex/generic/pst-fractal/pst-fractal.tex 2020-03-17 22:31:08.000000000 +0100
@@ -1,4 +1,4 @@
-%% $Id: pst-fractal.tex 846 2018-11-30 21:44:45Z herbert $
+%% $Id: pst-fractal.tex 1162 2020-03-16 19:18:15Z herbert $
%%
%% This is file `pst-fractal.tex',
%%
@@ -22,8 +22,8 @@
\ifx\PSTricksAddLoaded\endinput\else\input pstricks-add.tex\fi
\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi
%
-\def\fileversion{0.10}
-\def\filedate{2018/11/30}
+\def\fileversion{0.11a}
+\def\filedate{2020/03/16}
\message{`PST-fractal' v\fileversion, \filedate\space (hv)}
%
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
@@ -509,10 +509,10 @@
\def\psKochflake@i{\@ifnextchar({\psKochflake@ii}{\psKochflake@ii(0,0)}}
\def\psKochflake@ii(#1){{%
\addbefore@par{radius=0.25cm,maxIter=5}%
- \pst@getcoor{#1}\pst@tempA%
- \begin@SpecialObj%
+ \pst@getcoor{#1}\pst@tempA
+ \begin@SpecialObj
\addto@pscode{
- gsave ^^J%
+ gsave ^^J
\pst@tempA translate
\pst@usecolor\pslinecolor
\pst@fractal@angle rotate ^^J
@@ -523,8 +523,8 @@
tx@Kochflake end ^^J
}% end add@pscode
\psk@fillstyle
- \addto@pscode{stroke grestore }
- \end@SpecialObj%
+ \addto@pscode{stroke grestore }%
+ \end@SpecialObj
}}
%
\def\psAppolonius{\pst@object{psAppolonius}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/pst-fractal/pst-fractal.sty new/tex/latex/pst-fractal/pst-fractal.sty
--- old/tex/latex/pst-fractal/pst-fractal.sty 2018-12-01 23:47:30.000000000 +0100
+++ new/tex/latex/pst-fractal/pst-fractal.sty 2020-03-11 22:16:29.000000000 +0100
@@ -1,4 +1,4 @@
-%% $Id: pst-fractal-doc.tex 658 2017-11-26 16:55:41Z herbert $
+%% $Id: pst-fractal.sty 1154 2020-03-10 19:38:13Z herbert $
\RequirePackage{pstricks}
\ProvidesPackage{pst-fractal}[2007/09/25 package wrapper for
pst-fractal.tex (hv)]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/pst-fractal.tlpobj new/tlpkg/tlpobj/pst-fractal.tlpobj
--- old/tlpkg/tlpobj/pst-fractal.tlpobj 2019-02-28 04:01:13.000000000 +0100
+++ new/tlpkg/tlpobj/pst-fractal.tlpobj 2020-03-18 01:56:47.000000000 +0100
@@ -1,6 +1,6 @@
name pst-fractal
category Package
-revision 49295
+revision 54376
shortdesc Draw fractal sets using PSTricks
relocated 1
longdesc The package uses PSTricks to draw the Julia and Mandelbrot
@@ -14,7 +14,6 @@
RELOC/tex/generic/pst-fractal/pst-fractal.tex
RELOC/tex/latex/pst-fractal/pst-fractal.sty
catalogue-ctan /graphics/pstricks/contrib/pst-fractal
-catalogue-date 2018-11-30 23:09:54 +0100
catalogue-license lppl
catalogue-topics graphics-use pstricks
-catalogue-version 0.10
+catalogue-version 0.11a
++++++ pst-func.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/generic/pst-func/Changes new/doc/generic/pst-func/Changes
--- old/doc/generic/pst-func/Changes 2018-12-14 22:55:21.000000000 +0100
+++ new/doc/generic/pst-func/Changes 2019-05-17 22:56:26.000000000 +0200
@@ -1,4 +1,5 @@
..... pst-func.tex
+0.93 2019-05-17 - fix for missing end in a local dictionary (\psBinomialX)
0.92 2018-12-13 - allow algebraic mode for \pscumIntegral
0.91 2018-11-15 - new algorithm for sin/cos integral to prevent problems
with large values
Binary files old/doc/generic/pst-func/pst-func-doc.pdf and new/doc/generic/pst-func/pst-func-doc.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/pst-func.doc.tlpobj new/tlpkg/tlpobj/pst-func.doc.tlpobj
--- old/tlpkg/tlpobj/pst-func.doc.tlpobj 2019-02-28 04:01:13.000000000 +0100
+++ new/tlpkg/tlpobj/pst-func.doc.tlpobj 2020-03-04 23:53:24.000000000 +0100
@@ -1,9 +1,9 @@
name pst-func.doc
category Package
-revision 49413
+revision 54080
shortdesc doc files of pst-func
relocated 1
-docfiles size=1003
+docfiles size=1006
RELOC/doc/generic/pst-func/Changes
RELOC/doc/generic/pst-func/README.md
RELOC/doc/generic/pst-func/pst-func-doc.bib
++++++ pst-func.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/generic/pst-func/pst-func.tex new/tex/generic/pst-func/pst-func.tex
--- old/tex/generic/pst-func/pst-func.tex 2018-12-14 22:55:21.000000000 +0100
+++ new/tex/generic/pst-func/pst-func.tex 2019-05-17 22:56:26.000000000 +0200
@@ -31,8 +31,8 @@
% interface to the `xkeyval' package
\pst@addfams{pst-func}
%
-\def\fileversion{0.92}
-\def\filedate{2018/12/13}
+\def\fileversion{0.93}
+\def\filedate{2019/05/17}
\message{`PST-func' v\fileversion, \filedate\space (hv)}
%
\pstheader{pst-func.pro}
@@ -581,51 +581,56 @@
kOld scx 0 moveto % starting point#
%%----------------------------------------------------------------------------------------------------------------------------------------------------------------
%%-------------------- Code, der bei gro{\ss}em N \"{u}ber den Logarithmus arbeitet von Manuel Luque ---------------------------------------------
- /SumLog {% log(1) + log(2) + ... + log(n) = log(n!)
- 1 dict begin % Erwartet die Eingabe eines Wertes, n\"{a}mlich bis zu welchem Wert addiert werden soll ---> n
- /nV exch def % der \"{u}bergebene Wert wird in nV abgespeichert
- /iV 1 def % Startwert ist iV=1
- 0 nV { iV log add /iV iV 1 add def } repeat % 0 + log(1) + log(2) + ... + log(n) Die Null ist dazu n\"{o}tig um die erste Addition machen zu k\"{o}nnen
- end
- } def
- /binomial_comb{ % log(N!) - log(k!) - log((n-k)!) = log[N!/(k!*(n-k)!)]
- 2 dict begin
- /nV exch def
- /NV exch def
- NV SumLog nV SumLog sub
- NV nV sub SumLog sub
- end
- } def
- /PnN {
- 3 dict begin
- /pV exch def
- /nV exch def
- /NV exch def
- 10
- NV nV binomial_comb
- nV pV log mul
- NV nV sub 1 pV sub log mul add add
- exp
- } def
+ /SumLog {% log(1) + log(2) + ... + log(n) = log(n!)
+ 2 dict begin % Erwartet die Eingabe eines Wertes, n\"{a}mlich bis zu welchem Wert addiert werden soll ---> n
+ /nV exch def % der \"{u}bergebene Wert wird in nV abgespeichert
+ /iV 1 def % Startwert ist iV=1
+ 0 nV { iV log add /iV iV 1 add def } repeat % 0 + log(1) + log(2) + ... + log(n) Die Null ist dazu n\"{o}tig um die erste Addition machen zu k\"{o}nnen
+ end
+ } def
+ /binomial_comb{ % log(N!) - log(k!) - log((n-k)!) = log[N!/(k!*(n-k)!)]
+ 2 dict begin
+ /nV exch def
+ /NV exch def
+ NV SumLog nV SumLog sub
+ NV nV sub SumLog sub
+ end
+ } def
+ /PnN {
+ 3 dict begin
+ /pV exch def
+ /nV exch def
+ /NV exch def
+ 10
+ NV nV binomial_comb
+ nV pV log mul
+ NV nV sub 1 pV sub log mul add add
+ exp
+ end
+ } def
%%------------------------------------------------------------------------------------------------
%%------------------------------------------------------------------------------------------------
- N ValueSwitch2Log gt { } {%
- 0 1 m 1 sub {%
- /k exch def % save loop variable
- k 0 eq
- { /Y q N exp def }
- { /Y Y N k sub 1 add mul k div p mul q div def }
- ifelse
- } for
- } ifelse
- m 1 n {% % n-m+1 times
- /k exch def % save loop variable
- N ValueSwitch2Log gt { N k p PnN /Y exch def }
- { k 0 eq
- { /Y q N exp def }
- { /Y Y N k sub 1 add mul k div p mul q div def }
- ifelse
- } ifelse % recursive definition
+ N ValueSwitch2Log gt
+ { }
+ { 0 1 m 1 sub
+ {%
+ /k exch def % save loop variable
+ k 0 eq
+ { /Y q N exp def }
+ { /Y Y N k sub 1 add mul k div p mul q div def }
+ ifelse
+ } for
+ } ifelse
+ m 1 n {% % n-m+1 times
+ /k exch def % save loop variable
+ N ValueSwitch2Log gt
+ { N k p PnN /Y exch def }
+ { k 0 eq
+ { /Y q N exp def }
+ { /Y Y N k sub 1 add mul k div p mul q div def }
+ ifelse
+ }
+ ifelse % recursive definition
\ifx\psk@fillstylename\pst@alternateColors
newpath
kOld scx 0 moveto
@@ -725,7 +730,7 @@
\else\psBinomialF@iii{#1}{#2}{#3}{#5}\fi
\fi}%
\def\psBinomialF@iii#1#2#3#4{%
- \addbefore@par{valuewidth=15}%
+ \addbefore@par{valuewidth=15}%
\begin@OpenObj
\addto@pscode{%
/ValueSwitch2Log \psFunc@Switch2Log\space def
@@ -740,72 +745,75 @@
\ifPst@markZeros /kOld dx neg m add def \else
/kOld m def \fi
\psFunc@leftEnd 0 eq
- { }
- { kOld 0 eq
- { kOld \psFunc@leftEnd sub scx 0 moveto % starting point
- \ifPst@LineEnding
- kOld \psFunc@radiusout\pst@number\psxunit div sub scx 0 L stroke
- kOld scx 0 newpath \psFunc@radiusout 0 360 arc kOld scx 0 \psFunc@radiusinR 360 0 arcn closepath \pst@usecolor\psk@LineEndColorR fill \else
- kOld scx 0 L stroke \fi }
- { } ifelse } ifelse
+ { }
+ { kOld 0 eq
+ { kOld \psFunc@leftEnd sub scx 0 moveto % starting point
+ \ifPst@LineEnding
+ kOld \psFunc@radiusout\pst@number\psxunit div sub scx 0 L stroke
+ kOld scx 0 newpath \psFunc@radiusout 0 360 arc kOld scx 0
+ \psFunc@radiusinR 360 0 arcn closepath \pst@usecolor\psk@LineEndColorR fill
+ \else
+ kOld scx 0 L stroke
+ \fi
+ }{ } ifelse } ifelse
kOld scx 0 moveto % starting point
%%----------------------------------------------------------------------------------------------------------------------------------------------------------------
%%-------------------- Code, der bei gro{\ss}em N \"{u}ber den Logarithmus arbeitet von Manuel Luque ---------------------------------------------
- /SumLog {% log(1) + log(2) + ... + log(n) = log(n!)
- 1 dict begin % Erwartet die Eingabe eines Wertes, n\"{a}mlich bis zu welchem Wert addiert werden soll ---> n
- /nV exch def % der \"{u}bergebene Wert wird in nV abgespeichert
- /iV 1 def % Startwert ist iV=1
- 0 nV { iV log add /iV iV 1 add def } repeat % 0 + log(1) + log(2) + ... + log(n) Die Null ist dazu n\"{o}tig um die erste Addition machen zu k\"{o}nnen
- end
- } def
- /binomial_comb{ % log(N!) - log(k!) - log((n-k)!) = log[N!/(k!*(n-k)!)]
- 2 dict begin
- /nV exch def
- /NV exch def
- NV SumLog nV SumLog sub
- NV nV sub SumLog sub
- end
- } def
- /PnN {
- 3 dict begin
- /pV exch def
- /nV exch def
- /NV exch def
- 10
- NV nV binomial_comb
- nV pV log mul
- NV nV sub 1 pV sub log mul add add
- exp
- } def
+ /SumLog {% log(1) + log(2) + ... + log(n) = log(n!)
+ 2 dict begin % Erwartet die Eingabe eines Wertes, n\"{a}mlich bis zu welchem Wert addiert werden soll ---> n
+ /nV exch def % der \"{u}bergebene Wert wird in nV abgespeichert
+ /iV 1 def % Startwert ist iV=1
+ 0 nV { iV log add /iV iV 1 add def } repeat % 0 + log(1) + log(2) + ... + log(n) Die Null ist dazu n\"{o}tig um die erste Addition machen zu k\"{o}nnen
+ end
+ } def
+ /binomial_comb{ % log(N!) - log(k!) - log((n-k)!) = log[N!/(k!*(n-k)!)]
+ 2 dict begin
+ /nV exch def
+ /NV exch def
+ NV SumLog nV SumLog sub
+ NV nV sub SumLog sub
+ end
+ } def
+ /PnN {
+ 3 dict begin
+ /pV exch def
+ /nV exch def
+ /NV exch def
+ 10
+ NV nV binomial_comb
+ nV pV log mul
+ NV nV sub 1 pV sub log mul add add
+ exp
+ end
+ } def
%%------------------------------------------------------------------------------------------------
%%------------------------------------------------------------------------------------------------
- 0 1 m 1 sub {
- /k exch def % save loop variable
- N ValueSwitch2Log gt { k 0 eq
- { N k p PnN /Y exch def /F Y def }
- { N k p PnN /Y exch def /F F Y add def }
- ifelse }
- { k 0 eq
- { /Y q N exp def
- /F Y def }
- { /Y Y N k sub 1 add mul k div p mul q div def
- /F F Y add def
- } ifelse
- } ifelse
- } for
- m 1 n { % n-m+1 times
- /k exch def % save loop variable
- N ValueSwitch2Log gt { k 0 eq
- { N k p PnN /Y exch def /F Y def }
- { N k p PnN /Y exch def /F F Y add def } ifelse }
- { k 0 eq
- { /Y q N exp def
- /F Y def }
- { /Y Y N k sub 1 add mul k div p mul q div def
- /F F Y add def
- } ifelse
- } ifelse % recursive definition
- F 1 gt { /F 1 def } if
+ 0 1 m 1 sub {
+ /k exch def % save loop variable
+ N ValueSwitch2Log gt { k 0 eq
+ { N k p PnN /Y exch def /F Y def }
+ { N k p PnN /Y exch def /F F Y add def }
+ ifelse
+ }{ k 0 eq
+ { /Y q N exp def /F Y def }
+ { /Y Y N k sub 1 add mul k div p mul q div def
+ /F F Y add def
+ } ifelse
+ } ifelse
+ } for
+ m 1 n { % n-m+1 times
+ /k exch def % save loop variable
+ N ValueSwitch2Log gt
+ { k 0 eq
+ { N k p PnN /Y exch def /F Y def }
+ { N k p PnN /Y exch def /F F Y add def }
+ ifelse }
+ { k 0 eq
+ { /Y q N exp def /F Y def }
+ { /Y Y N k sub 1 add mul k div p mul q div def /F F Y add def
+ } ifelse
+ } ifelse % recursive definition
+ F 1 gt { /F 1 def } if
\ifPst@markZeros kOld scx F scy L k dx add scx F scy L k dx add scx 0 L kOld 1 add scx 0 L
\else
kOld scx F scy newpath \psFunc@radiusout 0 360 arc kOld scx F scy \psFunc@radiusinL 360 0 arcn closepath \pst@usecolor\psk@LineEndColorL fill
@@ -875,60 +883,58 @@
kOld scx 0 moveto % starting point
%%----------------------------------------------------------------------------------------------------------------------------------------------------------------
%%-------------------- Code, der bei gro{\ss}em N \"{u}ber den Logarithmus arbeitet von Manuel Luque ---------------------------------------------
- /SumLog {% log(1) + log(2) + ... + log(n) = log(n!)
- 1 dict begin % Erwartet die Eingabe eines Wertes, n\"{a}mlich bis zu welchem Wert addiert werden soll ---> n
- /nV exch def % der \"{u}bergebene Wert wird in nV abgespeichert
- /iV 1 def % Startwert ist iV=1
- 0 nV { iV log add /iV iV 1 add def } repeat % 0 + log(1) + log(2) + ... + log(n) Die Null ist dazu n\"{o}tig um die erste Addition machen zu k\"{o}nnen
- end
- } def
- /binomial_comb{ % log(N!) - log(k!) - log((n-k)!) = log[N!/(k!*(n-k)!)]
- 2 dict begin
- /nV exch def
- /NV exch def
- NV SumLog nV SumLog sub
- NV nV sub SumLog sub
- end
- } def
- /PnN {
- 3 dict begin
- /pV exch def
- /nV exch def
- /NV exch def
- 10
- NV nV binomial_comb
- nV pV log mul
- NV nV sub 1 pV sub log mul add add
- exp
- } def
-%%------------------------------------------------------------------------------------------------
+ /SumLog {% log(1) + log(2) + ... + log(n) = log(n!)
+ 2 dict begin % Erwartet die Eingabe eines Wertes, n\"{a}mlich bis zu welchem Wert addiert werden soll ---> n
+ /nV exch def % der \"{u}bergebene Wert wird in nV abgespeichert
+ /iV 1 def % Startwert ist iV=1
+ 0 nV { iV log add /iV iV 1 add def } repeat % 0 + log(1) + log(2) + ... + log(n) Die Null ist dazu n\"{o}tig um die erste Addition machen zu k\"{o}nnen
+ end
+ } def
+ /binomial_comb{ % log(N!) - log(k!) - log((n-k)!) = log[N!/(k!*(n-k)!)]
+ 2 dict begin
+ /nV exch def
+ /NV exch def
+ NV SumLog nV SumLog sub
+ NV nV sub SumLog sub
+ end
+ } def
+ /PnN {
+ 3 dict begin
+ /pV exch def
+ /nV exch def
+ /NV exch def
+ 10
+ NV nV binomial_comb
+ nV pV log mul
+ NV nV sub 1 pV sub log mul add add
+ exp
+ end
+ } def
%%------------------------------------------------------------------------------------------------
- 0 1 m 1 sub {
- /k exch def % save loop variable
- N ValueSwitch2Log gt { k 0 eq
- { N k p PnN /Y exch def /F Y def /FS 1 F sub def }
- { N k p PnN /Y exch def /F F Y add def /FS 1 F sub def }
- ifelse }
- { k 0 eq
- { /Y q N exp def
- /F Y def /FS 1 F sub def }
- { /Y Y N k sub 1 add mul k div p mul q div def
- /F F Y add def /FS 1 F sub def }
- ifelse } ifelse
- } for
- m 1 n { % n-m+1 times
- /k exch def % save loop variable
- N ValueSwitch2Log gt { k 0 eq
- { N k p PnN /Y exch def /F Y def /FS 1 F sub def }
- { N k p PnN /Y exch def /F F Y add def /FS 1 F sub def } ifelse }
- { k 0 eq
- { /Y q N exp def
- /F Y def /FS 1 F sub def }
- { /Y Y N k sub 1 add mul k div p mul q div def
- /F F Y add def /FS 1 F sub def }
- ifelse
- } ifelse % recursive definition
- FS 0 lt { /FS 0 def } if
+ 0 1 m 1 sub {
+ /k exch def % save loop variable
+ N ValueSwitch2Log gt { k 0 eq
+ { N k p PnN /Y exch def /F Y def /FS 1 F sub def }
+ { N k p PnN /Y exch def /F F Y add def /FS 1 F sub def }
+ ifelse }
+ { k 0 eq
+ { /Y q N exp def /F Y def /FS 1 F sub def }
+ { /Y Y N k sub 1 add mul k div p mul q div def
+ /F F Y add def /FS 1 F sub def }
+ ifelse } ifelse
+ } for
+ m 1 n { % n-m+1 times
+ /k exch def % save loop variable
+ N ValueSwitch2Log gt { k 0 eq
+ { N k p PnN /Y exch def /F Y def /FS 1 F sub def }
+ { N k p PnN /Y exch def /F F Y add def /FS 1 F sub def } ifelse }
+ { k 0 eq
+ { /Y q N exp def /F Y def /FS 1 F sub def }
+ { /Y Y N k sub 1 add mul k div p mul q div def
+ /F F Y add def /FS 1 F sub def }
+ ifelse
+ } ifelse % recursive definition
+ FS 0 lt { /FS 0 def } if
\ifPst@markZeros kOld scx FS scy L k dx add scx FS scy L k dx add scx 0 L kOld 1 add scx 0 L
\else
\ifPst@LineEnding
@@ -1033,6 +1039,7 @@
nV pV log mul
NV nV sub 1 pV sub log mul add add
exp
+ end
} def
%%------------------------------------------------------------------------------------------------
%%------------------------------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/pst-func/pst-func.sty new/tex/latex/pst-func/pst-func.sty
--- old/tex/latex/pst-func/pst-func.sty 2018-12-14 22:55:21.000000000 +0100
+++ new/tex/latex/pst-func/pst-func.sty 2019-05-17 22:56:26.000000000 +0200
@@ -13,4 +13,4 @@
\ProvidesFile{pst-func.pro}[2018/12/13 v. 0.17, PostScript prologue file (hv)]
\@addtofilelist{pst-func.pro}}{}%
\endinput
-%% $Id: pst-func.sty 861 2018-12-13 20:40:06Z herbert $
+%% $Id: pst-func.sty 887 2018-12-29 13:17:59Z herbert $
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/pst-func.tlpobj new/tlpkg/tlpobj/pst-func.tlpobj
--- old/tlpkg/tlpobj/pst-func.tlpobj 2019-02-28 04:01:14.000000000 +0100
+++ new/tlpkg/tlpobj/pst-func.tlpobj 2020-03-04 23:53:25.000000000 +0100
@@ -1,6 +1,6 @@
name pst-func
category Package
-revision 49413
+revision 54080
shortdesc PSTricks package for plotting mathematical functions
relocated 1
longdesc The package is built for use with PSTricks. It provides macros
@@ -22,15 +22,14 @@
longdesc Vasicek function for describing the evolution of interest
longdesc rates; and implicit functions. The plots may be generated as
longdesc volumes of rotation about the X-axis, as well.
-runfiles size=24
+runfiles size=23
RELOC/dvips/pst-func/pst-func.pro
RELOC/tex/generic/pst-func/pst-func.tex
RELOC/tex/latex/pst-func/pst-func.sty
catalogue-contact-home http://pstricks.tug.org
-catalogue-contact-repository http://comedy.dante.de/~herbert/TeXnik/
+catalogue-contact-repository https://archiv.dante.de/~herbert/TeXnik/
catalogue-contact-support http://tug.org/mailman/listinfo/pstricks
catalogue-ctan /graphics/pstricks/contrib/pst-func
-catalogue-date 2018-12-13 23:22:32 +0100
catalogue-license lppl
catalogue-topics maths graphics-plotfn graphics-use pstricks
-catalogue-version 0.92
+catalogue-version 0.93
++++++ pst-ghsb.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/pst-ghsb.doc.tlpobj new/tlpkg/tlpobj/pst-ghsb.doc.tlpobj
--- old/tlpkg/tlpobj/pst-ghsb.doc.tlpobj 2019-02-28 04:01:50.000000000 +0100
+++ new/tlpkg/tlpobj/pst-ghsb.doc.tlpobj 2020-03-04 23:53:25.000000000 +0100
@@ -1,6 +1,6 @@
name pst-ghsb.doc
category Package
-revision 45797
+revision 54074
shortdesc doc files of pst-ghsb
relocated 1
docfiles size=26
++++++ pst-ghsb.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/pst-ghsb.tlpobj new/tlpkg/tlpobj/pst-ghsb.tlpobj
--- old/tlpkg/tlpobj/pst-ghsb.tlpobj 2019-02-28 04:01:50.000000000 +0100
+++ new/tlpkg/tlpobj/pst-ghsb.tlpobj 2020-03-04 23:53:25.000000000 +0100
@@ -1,6 +1,6 @@
name pst-ghsb
category Package
-revision 45797
+revision 54074
shortdesc HSB gradients via PSTricks
relocated 1
longdesc Usage modeled on pst-grad; superseded by pst-slpe.
++++++ pst-marble.doc.tar.xz ++++++
/work/SRC/openSUSE:Factory/texlive-specs-s/pst-marble.doc.tar.xz /work/SRC/openSUSE:Factory/.texlive-specs-s.new.3606/pst-marble.doc.tar.xz differ: char 25, line 1
++++++ pst-marble.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dvips/pst-marble/pst-marble.pro new/dvips/pst-marble/pst-marble.pro
--- old/dvips/pst-marble/pst-marble.pro 2019-02-27 22:55:03.000000000 +0100
+++ new/dvips/pst-marble/pst-marble.pro 2019-05-02 23:11:11.000000000 +0200
@@ -1,5 +1,7 @@
%%Copyright: 2018, 2019 Aubrey Jaffer
-%%CreationDate: 2019-02-20
+%%CreationDate: 2019-04-16
+
+% pst-marble-v1.6
% This program can redistributed and/or modified under the terms of
% the LaTeX Project Public License Distributed from CTAN archives in
@@ -11,9 +13,11 @@
/URL (http://people.csail.mit.edu/jaffer/Marbling) def
/pi 3.141592653589793 def
+/pio180 pi 180 div def
/e 2.718281828459045 def
/e^-1 1 e div def
/m4o3 -4 3.0 div def
+/p1o3 1 3 div def
% dps define max, if not already defined
systemdict /max known not {
@@ -29,6 +33,8 @@
/arcsin {neg dup dup mul neg 1 add sqrt neg atan 180 sub} bind def
} if
+/asin { dup dup mul 1 sub neg 0 max sqrt atan } bind def
+
/numeric? % x --> bool
{
type dup /realtype eq exch /integertype eq or
@@ -63,7 +69,8 @@
actions sdx get aload pop /ct exch def
ct /drop eq
{
- pop pop pop /cy exch def /cx exch def
+ % cx cy rad^2 bgc rgb sr^-2 gc
+ pop pop pop pop pop /cy exch def /cx exch def
cx cy sdx find-drop-background /bgc exch def
actions sdx get 3 bgc put
}
@@ -71,21 +78,29 @@
ct /rake eq
{pop pop pop pop pop pop}
{
- ct /wiggle eq
- {numeric? {pop pop pop} if pop}
+ ct /jiggle eq
+ {pop pop pop pop pop pop pop pop pop}
{
ct /offset eq
{pop pop}
{
- ct /vortex eq
- {pop pop pop pop}
+ ct /turn eq
+ {pop pop pop}
{
- ct /stir eq
- {pop pop pop pop pop}
+ ct /vortex eq
+ {pop pop pop pop}
{
- ct /stylus eq
- {pop pop pop pop pop pop pop pop pop pop}
- {(unrecognized token) = ct =} ifelse
+ ct /stir eq
+ {pop pop pop pop pop}
+ {
+ ct /wriggle eq
+ {pop pop pop pop pop pop pop}
+ {
+ ct /stylus eq
+ {pop pop pop pop pop pop pop pop pop pop pop}
+ {(unrecognized token) = ct =} ifelse
+ } ifelse
+ } ifelse
} ifelse
} ifelse
} ifelse
@@ -112,8 +127,8 @@
{
/idx exch def
spractions idx get aload pop /ct exch def
- ct /Gaussian-spray eq
- {Gaussian-spray-do}
+ ct /normal-spray eq
+ {normal-spray-do}
{
ct /uniform-spray eq
{uniform-spray-do}
@@ -139,24 +154,32 @@
/ct-dispatch
{
- ct /wiggle eq
- {wiggle-deformation}
+ ct /offset eq
+ {offset-deformation}
{
- ct /offset eq
- {offset-deformation}
+ ct /turn eq
+ {do-turn}
{
- ct /rake eq
- {rake-deformation}
+ ct /jiggle eq
+ {jiggle-deformation}
{
- ct /vortex eq
- {vortex-deformation}
+ ct /rake eq
+ {rake-deformation}
{
- ct /stir eq
- {stir-deformation}
+ ct /vortex eq
+ {vortex-deformation}
{
- ct /stylus eq
- {stylus-deformation}
- {(unrecognized token) = ct =} ifelse
+ ct /stir eq
+ {stir-deformation}
+ {
+ ct /wriggle eq
+ {wriggle-deformation}
+ {
+ ct /stylus eq
+ {stylus-deformation}
+ {(unrecognized token) = ct =} ifelse
+ } ifelse
+ } ifelse
} ifelse
} ifelse
} ifelse
@@ -174,7 +197,9 @@
actions cdx get aload pop /ct exch def
ct /drop eq
% movement due to drop.
- { % px py cx cy rad^2 bgc rgb
+ { % px py cx cy rad^2 bgc rgb sr^-2 gc
+ pop
+ pop
/rgb exch def
pop % /bgc exch def
/rad^2 exch def
@@ -203,26 +228,110 @@
dx add exch
} bind def
-/wiggle-deformation % px py dx dy period ofst depth --> px py
+/do-turn % cx cy [trv]
{
- dup numeric?
+ /trv exch def
+ /cy exch def /cx exch def
+ cy sub exch cx sub exch trv transform
+} bind def
+
+% /Round {0.5 add floor} bind def
+
+/symmod % x m --> x
+{
+ 2 copy div round mul sub
+} bind def
+
+% /cbrt % x --> x
+% {
+% /x exch def
+% x 0 lt { -1 } { 1 } ifelse x abs p1o3 exp mul
+% } bind def
+
+/g_1 % common code to compute inverse of non-linear deformation
+{
+ mdls 2 div
+ a 0 lt { neg } if
+ mf 0 gt
+ {1 1 af 180 div abs sub 0 max pw exp sub}
+ {af 180 div abs pw exp} ifelse
+ mul
+
+ %% one iteration of Newton-Raphson
+ %% g_1=g_0-(g_0-a+(m/2)*sin(g_0*f))/(1+pi*m*f/360*cos(g_0*f))
+ /g exch def
+ /gf g freq mul def
+ g
+ g a sub major gf sin mul add
+ 1 mf 2 div gf cos mul add
+ div
+ sub
+} bind def
+
+/wriggle-deformation % px py cx cy freq major minor mf mdls pw --> px py
+{
+ /pw exch def
+ /mdls exch def
+ /mf exch def
+ /minor exch def
+ /major exch def
+ /freq exch def
+ /cy exch def /cx exch def
+ /py exch def /px exch def
+ /rd px cx sub dup mul py cy sub dup mul add sqrt def
+ /a rd mdls symmod def
+ /af a freq mul def
+ 1e-6 rd lt
{
- /depth exch def
- /ofst exch def
- /period exch def
- /dy exch def /dx exch def
- /py exch def /px exch def
- /a py dx mul px dy mul sub period mul ofst add sin depth mul def
+ mf 0 ne
+ {
+ g_1
+
+ dup a sub exch
+ % find the minor axis displacement from the major axis value
+ % where it was moved from.
+ freq mul cos minor mul
+ }
+ {
+ af cos-sin exch neg
+ exch major mul exch minor mul
+ } ifelse
+ % on stack are radial and angular displacements from cx,cy
+ px cx sub py cy sub atan add /ang exch def
+ rd add /rd exch def
+ ang cos-sin rd mul cx add exch rd mul cy add
+ }
+ { px py } ifelse
+} bind def
+
+/jiggle-deformation % px py dx dy freq ofst [trv] major minor mf mdls pw --> px py
+{
+ /pw exch def
+ /mdls exch def
+ /mf exch def
+ /minor exch def
+ /major exch def
+ /trv exch def
+ /ofst exch def
+ /freq exch def
+ /dy exch def /dx exch def
+ /py exch def /px exch def
+ /a py dx mul px dy mul add ofst add mdls symmod def
+ /af a freq mul def
+ mf 0 ne
+ {
+ g_1
+
+ dup a sub exch
+ % find the minor axis displacement from the major axis value
+ % where it was moved from.
+ freq mul cos minor mul
}
{
- % old-style: px py ang {func} --> px py
- /func exch def /ang exch 90 sub def
- /dy ang cos def /dx ang sin def
- /py exch def /px exch def
- /a py dx mul px dy mul sub 1000 mul func exec
- 1e-3 mul oversample 0 gt {neg} if def
+ af cos-sin exch neg
+ % exch major mul exch minor mul
} ifelse
- px dx a mul add py dy a mul add
+ [ trv aload pop px py ] transform
} bind def
/tines % cnt spacing ofst
@@ -336,13 +445,8 @@
/rad^2 exch def /cy exch def /cx exch def
/py exch def /px exch def
/p-c^2 px cx sub dup mul py cy sub dup mul add def
- % p-c^2 rad^2 4096 mul gt
- % { px py }
- % {
- /a rad^2 p-c^2 div 1 add sqrt def
- py cy sub px cx sub a mul cx add exch a mul cy add
- % }
- % ifelse
+ /a rad^2 p-c^2 div 1 add sqrt def
+ py cy sub px cx sub a mul cx add exch a mul cy add
} bind def
%% Given x, y coordinates on stack, calculates movement due to
@@ -353,7 +457,7 @@
{
actions exch get aload pop /ct exch def
ct /drop eq
- {pop pop spread} % pop rgb-vectors
+ {pop pop pop pop spread} % pop sr^-2 gc and rgb-vectors
{ct-dispatch} ifelse
} for
} bind def
@@ -374,12 +478,12 @@
actions idx get aload pop /act exch def
/drop act eq
{
- aload pop setrgbcolor pop
- /rad exch sqrt def /Cy exch def /Cx exch def
- /eps 0.005 scl sqrt rad mul acnt idx sub 1 add log mul div def
+ pop pop aload pop setrgbcolor pop
+ /Rad exch sqrt def /Cy exch def /Cx exch def
+ /eps 0.005 scl sqrt Rad mul acnt idx sub 1 add log mul div def
- rad Cx add Cy composite-map moveto
- rad 0
+ Rad Cx add Cy composite-map moveto
+ Rad 0
{
dup /oy exch def
Minsky-circle 2 copy
@@ -415,10 +519,51 @@
res
} bind def
-/shade % v[3] pwr
+/do-tint % v[3] pwr
{
+ /pwr exch 2 exch sub def
+ { dup 1e-30 lt {} {pwr exp} ifelse } Vmap1
+} bind def
+/do-shade % v[3] pwr
+{
+ /pwr exch 2 exch sub def
+ { 1 exch sub dup 1e-30 lt {} {pwr exp} ifelse 1 exch sub } Vmap1
+} bind def
+
+/paper-shading % v[3] pwr
+{
+ % /pwr exch def
+ % {dup 1e-30 lt {} {pwr exp} ifelse} Vmap1
/pwr exch def
- {dup 1e-30 lt {} {pwr exp} ifelse} Vmap1
+ paper
+ {
+ /c2 exch def
+ /c1 exch def
+ % c2 pwr mul c1 2 pwr sub mul add 2 div
+ c2 c1 ge
+ { 1 1 c1 c2 div sub dup 1e-30 lt {} {pwr exp} ifelse sub c2 mul }
+ {
+ 1 c1 sub 1 c2 sub div dup
+ 1e-30 lt {} {2 pwr sub exp} ifelse 1 c2 sub mul 1 exch sub
+ } ifelse
+ } Vmap2
+} bind def
+
+% Exposed to user
+/tint % v[3] pwr
+{
+ dup 0 lt
+ { neg exch color-norm exch do-shade }
+ { exch color-norm exch do-tint }
+ ifelse
+} bind def
+% Exposed to user
+/shade % v[3] pwr
+{
+ dup 0 lt
+ { neg exch color-norm exch do-tint }
+ { exch color-norm exch do-shade }
+ ifelse
} bind def
/sharpen % 0<=x<=1
@@ -436,7 +581,9 @@
actions cdx get aload pop /ct exch def
ct /drop eq
% movement due to drop.
- { % px py cx cy rad^2 bgc rgb
+ { % px py cx cy rad^2 bgc rgb sr^-2 gc
+ /gc exch def
+ /sr^-2 exch def
/rgb exch def
/bgc exch def
/rad^2 exch def
@@ -446,12 +593,17 @@
/disc a^2 1e-10 lt {0} {1 rad^2 a^2 div sub} ifelse def
disc 0 le
{
- disc -0.001 le
- {rgb}
+ rgb gc 0 ne
+ {
+ e a^2 sr^-2 mul exp gc mul paper-shading
+ }
+ if
+ disc -0.001 gt
{
/a disc neg sqrt sharpen def
- rgb bgc {1 a sub mul exch a mul add} Vmap2}
- ifelse
+ bgc {1 a sub mul exch a mul add} Vmap2
+ }
+ if
exit
}
{
@@ -466,6 +618,61 @@
} loop
} bind def
+% At this point, fx and fy contain the raster coordinates;
+% [ r g b ] is on top of the stack.
+/do-shadings
+{
+ /scnt shadings length def
+ scnt 0 gt
+ {
+ 0 1 scnt -1 add
+ {
+ /idx exch def
+ shadings idx get aload pop /ct exch def
+ ct /jiggle-shade eq
+ {
+ % [ dx dy freq ofst major mf mdls pw ]
+ /pw exch def
+ /mdls exch def
+ /mf exch def
+ /major exch def
+ /ofst exch def
+ /freq exch def
+ /dy exch def /dx exch def
+ /a fy dx mul fx dy mul add ofst add mdls symmod def
+ /af a freq mul def
+ mf 0 ne
+ {
+ g_1
+ freq mul cos mf mul 1 add 0 max paper-shading
+ } if
+ }
+ {
+ ct /wriggle-shade eq
+ {
+ % [ cx cy freq ofst major mf mdls pw ]
+ /pw exch def
+ /mdls exch def
+ /mf exch def
+ /major exch def
+ /ofst exch def
+ /freq exch def
+ /cy exch def /cx exch def
+ /a fx cx sub dup mul fy cy sub dup mul add sqrt
+ ofst add mdls symmod def
+ /af a freq mul def
+ mf 0 ne
+ {
+ g_1
+ freq mul cos mf mul 1 add 0 max paper-shading
+ } if
+ }
+ {(unrecognized shade token) = ct =} ifelse
+ } ifelse
+ } for
+ } if
+} bind def
+
/do-raster
{
/sampleover 1 oversample div def
@@ -478,13 +685,9 @@
/ix exch def
/fx ix scl div def
fx fy actions2rgb
- % color modifications
- % fy dup mul fx dup mul add sqrt dup
- % riplim lt
- % {180. ripple div mul sin abs .75 mul 1 exch sub shade}
- % {pop}
- % ifelse
- % end color modifications
+
+ do-shadings % color modifications
+
aload pop setrgbcolor
newpath ix iy moveto sampleover 0 rlineto
0 sampleover rlineto sampleover neg 0 rlineto closepath FILL
@@ -492,13 +695,15 @@
} for
} bind def
-% [ cx cy rad^2 [ bgc ] [ rgb ] /drop ]
+% [ cx cy rad^2 bgc rgb sr^-2 gc /drop ]
% [ cx cy [ r ] th L^-1 /stir ]
% [ cx cy circ t /vortex ]
% [ bx by ex ey L tU rpts nx ny stpx stpy /stylus ]
% [ dx dy [ rs ] V tU L^-1 /rake ]
-% [ dx dy period ofst depth /wiggle ]
+% [ dx dy freq ofst [trv] major minor mf mdls pw /jiggle ]
+% [ cx cy freq major minor mf mdls pw /wriggle ]
% [ dx dy /offset ]
+% [ cx cy [trv] /turn ]
/concatstrings % (a) (b) -> (ab)
{ exch dup length
@@ -518,7 +723,13 @@
rgb 256 mod 255 div
] def
} if
- rgb {1 gt} forall or or { [ rgb {255 div} forall ] } { rgb } ifelse
+ rgb length 2 eq
+ { [ rgb aload pop color-norm ] }
+ {
+ rgb {1 gt} forall or or { [ rgb {255 div} forall ] } { rgb } ifelse
+ {1e-9 max 0.999 min} Vmap1
+ }
+ ifelse
} bind def
/color-norm*
@@ -528,13 +739,26 @@
[ clr* {color-norm} forall ]
} bind def
-/drop % cx cy rad^2 rgb
+/edgy-color
{
- /rgb exch def
+ exch color-norm 2 array astore
+} bind def
+
+/drop % cx cy rad rgb
+{
+ /rgb exch color-norm def
/rad^2 exch .001 mul dup mul def
/cy exch .001 mul def
/cx exch .001 mul def
- [ cx cy rad^2 -1 rgb color-norm /drop ]
+ /es rgb length 2 eq { rgb 0 get } { 0 } ifelse def
+ % [ cx cy rad^2 bgc rgb sr^-2 gc /drop ]
+ [ cx cy
+ rad^2
+ -1 % bgc
+ rgb length 2 eq { rgb 1 get } { rgb } ifelse % rgb
+ es rad^2 div % sr^-2
+ es 0 gt { e es exp 1 sub es div e es exp div } { 1 } ifelse % gc
+ /drop ]
} bind def
/vortex % cx cy circ tcoef
@@ -587,18 +811,105 @@
/wiggle % angle period ofst depth
{
- dup numeric?
- {
- /depth exch def
- /ofst exch def
- /period exch def
- /ang exch 90 sub def
- [ ang cos-sin exch
- 1000 360 div period mul
- ofst
- depth 1e-3 mul oversample 0 gt {neg} if /wiggle ] }
- { /wiggle 3 array astore }
- ifelse
+ /depth exch def
+ /ofst exch 90 add def
+ /period exch 360 dup mul exch div def
+ /ang exch def
+ ang period ofst 0.75 div depth 2 mul 0 exch jiggle
+} bind def
+
+/jiggle % angle period ofst major minor
+{
+ /minor exch -0.5e-3 mul def
+ /major exch 0.5e-3 mul def
+ /ofst exch 1e-3 mul def
+ /period exch def
+ /freq 360e3 period div def
+ /ang exch def
+ /mf oversample 0 le { 0 } { major freq mul pio180 mul } ifelse def
+ /pw 4 3 div 1 mf abs add div def
+ % [ dx dy freq ofst [trv] major minor mf mdls pw ]
+ [ ang cos-sin % dx, dy
+ freq
+ ofst
+ mf 0 ne
+ { [ ang cos-sin exch 2 copy neg exch ] }
+ { [ ang cos-sin major mul exch major mul
+ ang cos-sin minor mul exch minor mul
+ neg exch ] }
+ ifelse % [ trv ]
+ major
+ minor
+ mf
+ 360 freq div abs % mdls
+ pw
+ /jiggle ]
+} bind def
+
+/wriggle % cx cy period major minor
+{
+ /minor exch -0.5 mul def % is angular range
+ /major exch 0.5e-3 mul def
+ /period exch def
+ /freq 360e3 period div def
+ /cy exch 1e-3 mul def /cx exch 1e-3 mul def
+ /mf oversample 0 le { 0 } { major freq mul pio180 mul } ifelse def
+ /pw 4 3 div 1 mf abs add div def
+ % [ cx cy freq major minor mf mdls pw ]
+ [ cx
+ cy
+ freq
+ major
+ minor
+ mf
+ 360 freq div abs % mdls
+ pw
+ /wriggle ]
+} bind def
+
+/wriggle-shade % cx cy period ofst major
+{
+ /major exch 0.5e-3 mul def
+ /ofst exch 1e-3 mul def
+ /period exch def
+ /freq 360e3 period div def
+ /cy exch 1e-3 mul def /cx exch 1e-3 mul def
+ /mf major freq mul pio180 mul def
+ /pw 4 3 div 1 mf abs add div def
+ % [ cx cy freq ofst major mf mdls pw ]
+ [ cx
+ cy
+ freq
+ ofst
+ major
+ mf
+ 360 freq div abs % mdls
+ pw
+ /wriggle-shade ]
+} bind def
+
+/jiggle-shade % angle period ofst major
+{
+ /major exch 0.5e-3 mul def
+ /ofst exch 1e-3 mul def
+ /period exch def
+ /freq 360e3 period div def
+ /ang exch def
+ /mf major freq mul pio180 mul def
+ /pw 4 3 div 1 mf abs add div def
+ % [ dx dy freq ofst major mf mdls pw ]
+ [ ang cos-sin % dx, dy
+ freq
+ ofst
+ major
+ mf
+ 360 freq div abs % mdls
+ pw
+ /jiggle-shade ]
+} bind def
+/shading % angle period ofst major
+{
+ jiggle-shade
} bind def
/shift % angle r
@@ -610,6 +921,19 @@
[ dx dy /offset ]
} bind def
+/turn % cx cy angle
+{
+ /th exch def
+ /cy exch .001 mul def
+ /cx exch .001 mul def
+ % [ cx cy [ trv ] ]
+ [ cx
+ cy
+ [ th oversample 0 gt {neg} if neg cos-sin 2 copy neg exch cx cy ]
+ /turn
+ ]
+} bind def
+
/concentric-rings % xc yc thick [ color ] count
{
/cnt exch def
@@ -741,15 +1065,30 @@
/cnt exch def
/clra exch color-norm* def
/eccentricity exch sqrt def
+ /angle exch def
+ /r exch 2 mul def
+ /yc exch def
+ /xc exch def
+ xc yc
+ r eccentricity div r eccentricity mul
+ angle clra cnt drad normal-drops
+} bind def
+
+/normal-drops % xc yc L_x L_y angle [ rgb ] cnt drad
+{
+ /drad exch def
+ /cnt exch def
+ /clra exch color-norm* def
/angle exch neg def
- /r exch 2 sqrt div def
+ /R_y exch 8 sqrt div def
+ /R_x exch 8 sqrt div def
/yc exch def
/xc exch def
/nclr clra length def
/cdx 0 def
cnt
{
- random:normal2 eccentricity div r mul exch eccentricity mul r mul
+ random:normal2 R_x mul exch R_y mul
[ angle cos-sin 2 copy neg exch xc yc ] transform
drad clra cdx nclr mod get drop
/cdx cdx 1 add def
@@ -758,28 +1097,47 @@
/Gaussian-spray % xc yc r angle eccentricity [ rgb ] cnt drad
{
- /Gaussian-spray 9 array astore
+ /drad exch def
+ /cnt exch def
+ /clra exch color-norm* def
+ /eccentricity exch sqrt def
+ /angle exch def
+ /r exch 2 mul def
+ /yc exch def
+ /xc exch def
+ xc yc
+ r eccentricity div r eccentricity mul
+ angle clra cnt drad 1 3 div exp normal-spray
+} bind def
+
+/normal-spray % xc yc L_x L_y angle [ rgb ] cnt drad
+{
+ /normal-spray 9 array astore
} bind def
-/Gaussian-spray-do % xc yc r angle eccentricity [ rgb ] cnt drad
+/normal-spray-do % xc yc L_x L_y angle [ rgb ] cnt drad
{
/drad exch def
/cnt exch def
/clra exch color-norm* def
- /eccentricity exch sqrt def
/angle exch neg def
- /r exch 2 sqrt div def
- /yc exch def
- /xc exch def
+ /R_y exch 8 sqrt div .001 mul def
+ /R_x exch 8 sqrt div .001 mul def
+ /yc exch .001 mul def
+ /xc exch .001 mul def
/nclr clra length def
/cdx 0 def
cnt
{
- random:normal2 eccentricity div r mul exch eccentricity mul r mul
+ % random:normal2 eccentricity div r mul exch eccentricity mul r mul
+ random:normal2 R_x mul exch R_y mul
[ angle cos-sin 2 copy neg exch xc yc ] transform
+ /fy exch def /fx exch def
+ clra cdx nclr mod get
+ do-shadings aload pop setrgbcolor
newpath
- clra cdx nclr mod get aload pop setrgbcolor
- e random:normal2 pop drad log 3 mul add 3 div exp 0 360 arc fill
+ fx 1000 mul fy 1000 mul
+ e random:normal2 pop drad log 9 mul add 3 div exp 0 360 arc fill
/cdx cdx 1 add def
} repeat
} bind def
@@ -817,10 +1175,10 @@
/cnt exch def
/clra exch color-norm* def
/angle exch neg def
- /ysid exch def
- /xsid exch def
- /yc exch def
- /xc exch def
+ /ysid exch .001 mul def
+ /xsid exch .001 mul def
+ /yc exch .001 mul def
+ /xc exch .001 mul def
/nclr clra length def
/cdx 0 def
cnt
@@ -828,9 +1186,12 @@
random:uniform 0.5 sub xsid mul
random:uniform 0.5 sub ysid mul
[ angle cos-sin 2 copy neg exch xc yc ] transform
+ /fy exch def /fx exch def
+ clra cdx nclr mod get
+ do-shadings aload pop setrgbcolor
newpath
- clra cdx nclr mod get aload pop setrgbcolor
- e random:normal2 pop drad log 3 mul add 3 div exp 0 360 arc fill
+ fx 1000 mul fy 1000 mul
+ e random:normal2 pop drad log 9 mul add 3 div exp 0 360 arc fill
/cdx cdx 1 add def
} repeat
} bind def
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/generic/pst-marble/pst-marble.tex new/tex/generic/pst-marble/pst-marble.tex
--- old/tex/generic/pst-marble/pst-marble.tex 2019-02-27 22:55:03.000000000 +0100
+++ new/tex/generic/pst-marble/pst-marble.tex 2019-05-02 23:11:11.000000000 +0200
@@ -25,8 +25,8 @@
\let \PSTMARBLELoaded\endinput
\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
\ifx\PSTXKeyLoaded\endinput \else\input pst-xkey.tex\fi
-\def\fileversion{1.4}
-\def\filedate{2019/02/25}
+\def\fileversion{1.6}
+\def\filedate{2019/03/20}
\message{`PST' v\fileversion, \filedate}
%
\pstheader{pst-marble.pro}
@@ -34,12 +34,14 @@
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
\pst@addfams{pst-marble}
\define@key[psset]{pst-marble}{background}{\def\pst@marble@background{#1 }}
+\define@key[psset]{pst-marble}{paper}{\def\pst@marble@paper{#1 }}
\define@key[psset]{pst-marble}{viscosity}{\def\pst@marble@visc{#1 }}
\define@key[psset]{pst-marble}{oversample}{\def\pst@marble@oversample{#1 }}
\define@key[psset]{pst-marble}{overscan}{\def\pst@marble@overscan{#1 }}
\define@key[psset]{pst-marble}{seed}{\def\pst@marble@seed{#1}}
\define@key[psset]{pst-marble}{actions}{\def\pst@marble@actions{#1 }}
\define@key[psset]{pst-marble}{spractions}{\def\pst@marble@spractions{#1 }}
+\define@key[psset]{pst-marble}{shadings}{\def\pst@marble@shadings{#1 }}
% colors are red, green, and blue components between 0 and 1.
\define@key[psset]{pst-marble}{colors}{\def\pst@marble@colors{#1 }}
\define@boolkey[psset]{pst-marble}[Pst@]{drawcontours}[true]{}
@@ -49,6 +51,9 @@
background={
[1 1 1]
},
+ paper={
+ [1 1 1]
+ },
colors={
[0.275 0.569 0.796]
[0.965 0.882 0.302]
@@ -66,14 +71,15 @@
overscan=1,
actions={0 0 36 colors 35 concentric-rings},
spractions={},
+ shadings={},
drawcontours=false,
bckg=true
}
\psset[pstricks]{shapealpha=1}
-\def\psMarble{\def\pst@par{}\pst@object{psMarble}}
-\def\psMarble@i{\@ifnextchar({\psMarble@ii}{\psMarble@iii(-5,-5)(5,5)}}
-\def\psMarble@ii(#1,#2){\@ifnextchar({\psMarble@iii(#1,#2)}{\psMarble@iii(#1 -0.5 mul, #2 -0.5 mul)(#1 0.5 mul,#2 0.5 mul)}}
-\def\psMarble@iii(#1,#2)(#3,#4){
+\def\psMarble{\pst@object{psMarble}}
+\def\psMarble@i(#1,#2){
+\@ifnextchar({\psMarble@ii(#1,#2)}{\psMarble@ii(#1 -0.5 mul, #2 -0.5 mul)(#1 0.5 mul,#2 0.5 mul)}}
+\def\psMarble@ii(#1,#2)(#3,#4){
\begin@SpecialObj
\addto@pscode{
plotdict begin
@@ -81,6 +87,7 @@
/STROKE {\pst@number\pslinewidth 1000 div SLW \tx@setStrokeTransparency \tx@setBlendmode systemdict /stroke get exec} def
/cm {\pst@number\psunit mul } bind def
/background \pst@marble@background color-norm def
+/paper \pst@marble@paper color-norm def
/colors [\pst@marble@colors] def
/seed (\pst@marble@seed) rc4setkey def
/lox #1 cm cvi def
@@ -94,6 +101,8 @@
/acnt actions length def
/spractions [\pst@marble@spractions] def
/pcnt spractions length def
+/shadings [\pst@marble@shadings] def
+/scnt shadings length def
\ifPst@drawcontours /Contours {STROKE} def \else /Contours {FILL} def \fi
gsave
\ifPst@bckg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/pst-marble/pst-marble.sty new/tex/latex/pst-marble/pst-marble.sty
--- old/tex/latex/pst-marble/pst-marble.sty 2019-02-27 22:55:03.000000000 +0100
+++ new/tex/latex/pst-marble/pst-marble.sty 2019-05-02 23:11:11.000000000 +0200
@@ -1,11 +1,11 @@
\RequirePackage{pstricks}
-\ProvidesPackage{pst-marble}[2019/02/25 package wrapper for PSTricks pst-marble.tex]
+\ProvidesPackage{pst-marble}[2019/02/18 package wrapper for PSTricks pst-marble.tex]
\input pst-marble.tex
\ProvidesFile{pst-marble.tex}
[\filedate\space v\fileversion\space `PST-marble']
\IfFileExists{pst-marble.pro}{
\ProvidesFile{pst-marble.pro}
- [2019-02-25 v. 1.4, PostScript prologue file]
+ [2019-02-26 v. 1.6, PostScript prologue file]
\@addtofilelist{pst-marble.pro}}{}
\endinput
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/pst-marble.tlpobj new/tlpkg/tlpobj/pst-marble.tlpobj
--- old/tlpkg/tlpobj/pst-marble.tlpobj 2019-02-28 04:02:08.000000000 +0100
+++ new/tlpkg/tlpobj/pst-marble.tlpobj 2019-05-03 01:40:29.000000000 +0200
@@ -1,16 +1,16 @@
name pst-marble
category Package
-revision 50146
-shortdesc A PSTricks package to draw marble-like pattern
+revision 50925
+shortdesc A PSTricks package to draw marble-like patterns
relocated 1
-longdesc This is a PSTricks package to draw marble-like pattern.
-runfiles size=8
+longdesc This is a PSTricks package to draw marble-like patterns.
+runfiles size=10
RELOC/dvips/pst-marble/pst-marble.pro
RELOC/tex/generic/pst-marble/pst-marble.tex
RELOC/tex/latex/pst-marble/pst-marble.sty
catalogue-contact-home http://people.csail.mit.edu/jaffer/Marbling/How-To
catalogue-ctan /graphics/pstricks/contrib/pst-marble
-catalogue-date 2019-02-26 22:16:24 +0100
+catalogue-date 2019-05-01 21:41:19 +0200
catalogue-license lppl1.3c
-catalogue-topics graphics-use pstricks
-catalogue-version 1.4
+catalogue-topics graphics graphics-use pstricks
+catalogue-version 1.6
++++++ pst-node.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/generic/pst-node/Changes new/doc/generic/pst-node/Changes
--- old/doc/generic/pst-node/Changes 2019-03-03 23:13:20.000000000 +0100
+++ new/doc/generic/pst-node/Changes 2020-04-12 00:54:50.000000000 +0200
@@ -1,4 +1,5 @@
----- pst-node.tex
+1.42a 2020-04-01 - fix typo in the documentation
1.42 2019-03-03 - bugfix for \rnode inside \psframebox*
1.41 2017-12-30 - added \psnpolygon
1.40a 2017-12-14 - modified documentation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/generic/pst-node/README new/doc/generic/pst-node/README
--- old/doc/generic/pst-node/README 2019-03-03 23:13:20.000000000 +0100
+++ new/doc/generic/pst-node/README 2020-04-12 00:54:50.000000000 +0200
@@ -4,10 +4,6 @@
Save the files pst-node.sty|.tex|.pro in a directory, which is part of your
local TeX node. Then do not forget to run texhash to update this node
if these packages are new to your TeX distribution.
-For more information see the documentation of your LaTeX distribution
-on installing packages into your LaTeX distribution or the
-TeX Frequently Asked Questions:
-(http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages).
pst-node needs pstricks, which should be part of your
local TeX installation, otherwise get it from a CTAN server, f.ex.
@@ -20,3 +16,5 @@
%% 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.
+
+hvoss@tug.org
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/generic/pst-node/psmatrix-docDE.bib new/doc/generic/pst-node/psmatrix-docDE.bib
--- old/doc/generic/pst-node/psmatrix-docDE.bib 2013-09-19 00:21:57.000000000 +0200
+++ new/doc/generic/pst-node/psmatrix-docDE.bib 1970-01-01 01:00:00.000000000 +0100
@@ -1,35 +0,0 @@
-@Manual{pstricks2007,
- Title = {PSTricks - {\PS} macros for Generic TeX. Version 1.5},
- Author = {Timothy Van Zandt},
- Organization = {},
- Address =
- {\url{http://www.tug.org/tex-archive/graphics/pstricks/base/doc/pst-user.pdf}},
- Note = {},
- year = 2007,
-}
-
-
-@Manual{siart,
- Title = {Befehls\"ubersicht f\"ur \texttt{PSTricks} (Version
- 0.93},
- Author = {Uwe Siart},
- Organization = {},
- Address =
- {\url{http://www.siart.de/typografie/pstricks-referenz.pdf}},
- Note = {},
- year = 2009,
-}
-
-
-
-
-@Book{PSTricks2,
- author = {Herbert Vo\ss},
- title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX},
- edition = {fünfte},
- publisher = {DANTE -- Lehmanns},
- year = {2008},
- address = {Heidelberg/Hamburg}
-}
-
-
Binary files old/doc/generic/pst-node/psmatrix-docDE.pdf and new/doc/generic/pst-node/psmatrix-docDE.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/generic/pst-node/psmatrix-docDE.tex new/doc/generic/pst-node/psmatrix-docDE.tex
--- old/doc/generic/pst-node/psmatrix-docDE.tex 2017-12-30 23:43:07.000000000 +0100
+++ new/doc/generic/pst-node/psmatrix-docDE.tex 1970-01-01 01:00:00.000000000 +0100
@@ -1,1155 +0,0 @@
-%% $Id: psmatrix-docDE.tex 696 2017-12-30 19:01:07Z herbert $
-\listfiles
-\documentclass[11pt,ngerman,a4paper,BCOR10mm,DIV12,bibliography=totoc,parskip,smallheadings,
- headexclude,footexclude,oneside]{pst-doc}
-\usepackage[utf8]{inputenc}
-\usepackage{babel}
-
-%\setlength{\parindent}{0pt}
-%\setlength{\parskip}{1ex plus 0.2ex minus 0.1ex}
-
-\usepackage{pst-node,pst-grad,pstricks-add,pst-blur,float}
-\def\tab#1{\tabular{@{}l@{}}#1\endtabular}
-\def\OptEinh{\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{\texttt{Einheit}}\kern1pt}
-
-\let\myFV\fileversion
-
-\usepackage{tabularx}
-\usepackage{longtable}
-
-\addbibresource{\jobname.bib}
-
-
-\lstset{explpreset={pos=l,rframe=},frame=,backgroundcolor=\color{white},literate={ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
- {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
- {ß}{\ss}1}
-
-
-\usepackage{bibgerm}
-
-%\psset{subgriddiv=0,gridlabels=7pt,gridcolor=black!15}
-%\hypersetup{pdfauthor={Christine Roemer},pdftitle={psmatrix}}
-%
-\def\bgImage{\hspace*{1cm}%
-\begin{psmatrix}[colsep=0.8cm,rowsep=0.4cm,mcol=c,emnode=r]
- & & semantische Ebene & &
- \psshadowbox[framearc=0.25]{Bedeutung}\\
- & & morphologische Ebene & & \\
-[name=A]\tab{pragmatische\\Ebene} & [name=B]& & & \\
- & & syntaktische Ebene & & \\
- & & \tab{phonetisch-phonologische Ebene\\graphische Ebene}
- & & \psshadowbox[framearc=0.25]{Formativ}
-\end{psmatrix}
-\psset{nodesep=3pt,arrowscale=1.5,arrows=->,
- armA=6mm,angleB=180}
-\ncline{A}{B}
-\ncangles{A}{1,3} \ncangles{A}{2,3}
-\ncangles{A}{4,3} \ncangles{A}{5,3}
-\ncline{1,3}{1,5} \ncline{5,3}{5,5}
-\ncline{<->}{1,5}{5,5}%
-}
-
-\lstset{basicstyle=\ttfamily\footnotesize}
-
-\begin{document}
-\author{Timothy van Zandt\\Herbert Vo\ss}
-\docauthor{Christine R\"omer}
-\date{\today}
-\title{Schematische \"Ubersichten mit \texttt{psmatrix}}
-
-\maketitle%
-
-\tableofcontents
-
-\clearpage
-\begin{abstract}
-Mit der
-\texttt{psmatrix}-Umgebung\index{psmatrix@\texttt{psmatrix}-Umgebung} k\"onnen au{\ss}erhalb
-einer mathematischen
-Umgebung vielfältige schematische \"Ubersichten gesetzt werden. Das Makro \texttt{psmatrix}
-wird nicht extra geladen. Es ist in verschiedene Pakete des
-PSTricks-Verbundes\index{PSTricks-Verbund}
-(\texttt{pstricks,\\pst-node,pst-grad})\index{pstricks@\texttt{pstricks}}
-\index{pst-node@\texttt{pst-node}} \index{pst-grad@\texttt{pst-grad}} integriert
- und wird mit ihnen aufgerufen.
-
-\vfill\noindent
-Danke f\"ur die Unterst\"utzung bei der Erstellung dieser Dokumentation an Herbert Vo\ss.
-\end{abstract}
-
-
-\section{Einf\"uhrung}
-
-Mit der
-\texttt{psmatrix}-Umgebung\index{psmatrix@\texttt{psmatrix}-Umgebung} k\"onnen
-au{\ss}erhalb einer mathematischen
-Umgebung schematische \"Ubersichten gesetzt werden. Sie basiert auf dem
-Tabellenmakro \texttt{array}\index{array@\texttt{array}} und gleicht ihm deshalb in der
-Syntax. Es hat jedoch nicht dessen
-Einschr\"ankungen bez\"uglich Verbindungen über die Zellen und Zeilen hinweg. Das Makro
-\texttt{psmatrix}
-wird nicht extra geladen. Es ist in verschiedene Pakete des
-PSTricks-Verbundes\index{PSTricks-Verbund}
-(\texttt{pstricks,\\pst-node,pst-grad})\index{pstricks@\texttt{pstricks}}
-\index{pst-node@\texttt{pst-node}} \index{pst-grad@\texttt{pst-grad}} integriert und
-wird mit ihnen aufgerufen.
-
-\section{Erstellen einer Matrix}
-\subsection{Einordnung}
-
-Das Makro \bs{\texttt{psmatrix}} arbeitet sowohl in einer \TeX - als auch
-\LaTeX-Umgebung:
-
-\begin{BDef}
-\Lcs{psmatrix}\OptArgs \ldots\ \Lcs{endpsmatrix} & \% TeX-Version\\
-\LBEG{psmatrix}\OptArgs \ldots \ \LEND{psmatrix} & \% LaTeX-Version
-\end{BDef}
-
-Da mit der \TeX-Version einige Einschr\"ankungen verbunden sind, wird nur auf
-die \LaTeX-Variante eingegangen. Das Grundprinzip des Strukturaufbaus
-stellt eine Knoten- und Knotenverbindungszuordnung dar. Diese kann mehrfach
-geschachtelt und sowohl bei der Knotenbelegung als auch
-Verbindungsdarstellung in verschiedener Weise ausgestalltet werden. Dazu
-stellt der PSTricksverbund zahlreiche Makros bereit.
-
-\subsection{Matrixgrundstruktur}\index{Matrixgrundstruktur}
-
-Die Knoten werden in der Art einer Tabelle innerhalb der
-\texttt{psmatrix}-Umgebung\index{psmatrix@\texttt{psmatrix}-Umgebung} angeordnet.
-
-\begin{LTXexample}[width=.3\linewidth]
-\begin{psmatrix}[rowsep=0.2cm]
-1 & 2 & 3 \\
-X & Y & Z
-\end{psmatrix}
-\end{LTXexample}
-
-
-\section{Zuordnung Knoten zu Verbindungen}
-
-Die Matrix entsteht durch die Zuordnung von Knoten zu Verbindungen. Die
-Knoten werden in die Zellen in der \texttt{psmatrix}-Umgebung eingetragen
-(siehe obiges Beispiel). Nach \bs{\texttt{end}}\{\texttt{psmatrix}\} werden die gew\"unschten
-Linien definiert. Grunds\"atzlich geschieht dies nach dem Schema
-
-\psframebox{\bs
-nc\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{\texttt{Verbindung}}
-[\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{\texttt{Optionen}}]
-\{Koordinaten ZelleA\}\{Koordinaten ZelleB\}}
-
-Die Koordinaten\index{Zellen-Koordinaten} werden, wenn den Zellen keine
-Namen gegeben werden (siehe
-Parameter \texttt{name}),
-durch abz\"ahlen gewonnen: jeweils erst die Zeile und danach durch Komma abgetrennt
-die Zelle.
-
-\vspace{4mm}
-\begin{LTXexample}[width=.3\linewidth]
-\begin{psmatrix}[rowsep=0.2cm]
-1 & 2 & 3 \\
-X & Y & Z
-\end{psmatrix}
-\ncline[linecolor=red]{1,1}{2,2}
-\ncline[linecolor=green]{1,3}{2,2}
-\ncline[linestyle=dotted]{<-}{1,2}{2,1}
-\ncline[linestyle=dashed]{->}{1,2}{2,3}
-\end{LTXexample}
-
-
-\section{Knotenparameter}
-\subsection{mnode}\index{mnode@\texttt{mnode}}
-
-Der Parameter \texttt{mnode=<Knotenart>} legt die Knotenart fest. Das kann lokal für
-einzelne Knoten oder global für die ganze Matrix erfolgen (siehe folgende
-Beispiele). Dazu muss neben
-dem Paket \texttt{pstricks}\index{pstricks@\texttt{pstricks}} auch
-\texttt{pst-node}\index{pst-node@\texttt{pst-node}} geladen werden.
-
-\begin{LTXexample}[width=.2\linewidth]
-\begin{psmatrix}[mnode=circle,rowsep=0.2cm,colsep=1cm]
-1 & 2 \\
-X & Y
-\end{psmatrix}
-\end{LTXexample}
-
-\begin{LTXexample}[width=.2\linewidth]
-\begin{psmatrix}[mnode=circle,rowsep=0.2cm,colsep=1cm]
-1 & 2 \\
-[mnode=dia] X & Y
-\end{psmatrix}
-\end{LTXexample}
-
-Folgende \textbf{Knotenarten}\index{Knotenarten} stehen zur Verf\"ugung. Ihr Aufruf erfolgt mit
-\texttt{mnode=} über die in Klammern angegebenen K\"urzel.
-
-\begin{compactitem}
- \item \texttt{Rnode} (R):\index{Rnode@\texttt{Rnode} (R)}
- Es wird damit das Eingetragene zur Basislinie
- positioniert. Mittels Optionen kann dies variiert werden.
-\vspace{2mm}
-\begin{LTXexample}[width=.2\linewidth]
-\begin{psmatrix}[rowsep=0.2cm,linecolor=blue,radius=0.5]
-X & [mnode=R,vref=0pt] Y
-\end{psmatrix}
-\ncline{1,1}{1,2}
-\end{LTXexample}
-
-\item \texttt{Cnode} (C):\index{Cnode@\texttt{Cnode} (C)} Ungef\"ullte Kreise werden gesetzt.
-Deren Radius mit dem Parameter \texttt{radius}\index{radius@\texttt{radius}} modifiziert
-werden kann. Es muss irgendetwas eingetragen werden, was dann aber nicht erscheint.
-\vspace{2mm}
-\begin{LTXexample}[width=.3\linewidth]
-\begin{psmatrix}[mnode=C,rowsep=0.2cm,linecolor=blue,radius=0.5]
- X & Y
-\end{psmatrix}
-\end{LTXexample}
-\vspace{2mm}
-
-\item \texttt{pnode} (p):\index{pnode@\texttt{pnode} (p)} Ein Knoten mit dem Radius Null, ein
-leerer Knoten (siehe folgendes Beispiel, wo der Knoten 1 leer gesetzt wird).
-
-\item \texttt{Circlenode}
-(Circle):\index{Circlenode@\texttt{Circlenode} (Circle)} Ein Knoten, der von einem Kreis
-umschlossen
-wird, dessen Umfang richtet sich nach dem Inhalt. Er kann mit der Option
-\texttt{radius} modifiziert werden (siehe obiges Beispiel).
-
-\vspace{2mm}
-\begin{LTXexample}[width=.42\linewidth]
-\begin{psmatrix}[mnode=Circle,radius=1cm,rowsep=0.2cm]
- X & Y \\
-[mnode=p] 1 & 2
-\end{psmatrix}
-\end{LTXexample}
-\vspace{2mm}
-
-\item \texttt{dianode} (dia):\index{dianode@\texttt{dianode} (dia)} Ein Knoten, der von
-einer Raute umschlossen
-wird, deren Umfang richtet sich nach dem Inhalt
-
-\vspace{2mm}
-\begin{LTXexample}[width=.2\linewidth]
-\begin{psmatrix}[mnode=dia,rowsep=0.2cm,colsep=0.7cm]
- X & Y \\
- 1 & 2
-\end{psmatrix}
-\end{LTXexample}
-\vspace{2mm}
-
-\item \texttt{dotnode} (dot):\index{Rnode@\texttt{dotnode} (dot)} Es wird im unmarkierten
-Fall ein gef\"ullter Kreisknoten gesetzt, der
-u.\,a. \"uber den Parameter \texttt{dotscale} gesteuert
-werden kann.
-
-\vspace{2mm}
-\begin{LTXexample}[width=.2\linewidth]
-\begin{psmatrix}[mnode=dot,rowsep=0.2cm]
-[mnode=dot,dotscale=3] X & Y \\
-[mnode=dot,dotscale=2,dotstyle=triangle]1&2
-\end{psmatrix}
-\end{LTXexample}
-\vspace{2mm}
-
-\item \texttt{rnode} (r):\index{Rnode@\texttt{rnode} (r)}
-Unterscheidet sich von \bs{rnode} (R) in der
-Festlegung des Knotenzentrums, das ohne optionale Parameter das Zentrum
-der umgebenden Box ist. Eingesetzter "`Text"' erscheint pur.
-
-\vspace{2mm}
-\begin{LTXexample}[width=.2\linewidth]
-\begin{psmatrix}[mnode=r,rowsep=0.2cm]
- X & Y \\
- 1 & 2
-\end{psmatrix}
-\end{LTXexample}
-\vspace{2mm}
-
-
-
-\item \texttt{fnode} (f):\index{fnode@\texttt{fnode} (f)} Ein leerer
-Rahmen, dessen Gr\"o{"s}e \"uber
-\texttt{framesize=} und
-Koordinatenfestlegungen beeinflusst werden kann.%\footnote{Diese Funktion
-%ist bisher nur eingeschr\"ankt nutzbar, die K\"astchen einer Zeile werden nicht getrennt.
-%Mit "`Text"' gef\"ullte K\"astchen k\"onnen einfach mit \bs{\texttt{fbox}\{
-%\}} oder \bs{\texttt{psframebox}\{ \}} gesetzt werden.}
-
-\vspace{2mm}
-\begin{LTXexample}[width=.2\linewidth]
-\begin{psmatrix}[mnode=f,rowsep=0.2cm]
- X & Y \\
- 1 & 2
-\end{psmatrix}
-\end{LTXexample}
-\vspace{2mm}
-
-
-\item \texttt{circlenode}
-(circle):\index{circlenode@\texttt{circlenode} (circle)} Entspricht
-weitgehend \texttt{Circlenode}. Es
-kann aber nicht der Radius ge\"andert werden.
-
-\vspace{2mm}
-\begin{LTXexample}[width=.2\linewidth]
-\begin{psmatrix}[mnode=circle,rowsep=0.2cm,colsep=1cm]
- X & Y \\
- 1 & 2
-\end{psmatrix}
-\end{LTXexample}
-\vspace{2mm}
-
-\item \texttt{ovalnode} (oval):\index{ovalnode@\texttt{ovalnode} (oval)} Ovaler Knoten,
-dessen Gr\"o"se aus dem Inhalt resultiert.
-
-\vspace{2mm}
-\begin{LTXexample}[width=.2\linewidth]
-\begin{psmatrix}[mnode=oval,rowsep=0.2cm,colsep=0.7cm]
- XX & YY \\
- 1 & 2
-\end{psmatrix}
-\end{LTXexample}
-\vspace{2mm}
-
-
-\item \texttt{trinode} (tri):\index{trinode@\texttt{trinode} (tri)}
-Dreieck, dessen Gr\"o"se aus dem Inhalt resultiert.
-
-\vspace{2mm}
-\begin{LTXexample}[width=.2\linewidth]
-\begin{psmatrix}[mnode=tri,rowsep=0.2cm,colsep=0.7cm]
- X & Y \\
- 1 & 2
-\end{psmatrix}
-\end{LTXexample}
-\vspace{2mm}
-
-Mit der Option \texttt{trimode}\index{trimode@\texttt{trimode}} kann die Lage der Dreiecke verändert
-werden. Die Sternversion verkleinert die Basis und erzeugt aus
-stumpfwinkligen (Winkel zwischen 90 und 180 Grad) spitzwinkelige (kleiner
-als 90 Grad) Dreiecke.
-\vspace{2mm}
-\begin{table}[H]
-\centering
-\caption{Ver\"anderung der Dreieckslage}
-\begin{tabular}{@{}ll@{}}
-Befehl & Lage des Dreiecks \\ \hline
-\texttt{trimode=U} & Spitze oben \\
-\texttt{trimode=D} & Spitze unten \\
-\texttt{trimode=R} & Spitze rechts \\
-\texttt{trimode=L} & Spitze links
-\end{tabular}
-\end{table}
-
-\vspace{2mm}
-\begin{LTXexample}[width=.25\linewidth]
-\begin{pspicture}(0,-2)(3,2)
-\begin{psmatrix}[mnode=tri,rowsep=0.2cm,colsep=0.7cm]
- [trimode=U] Dreieck \\
- [trimode=*D]Dreieck
-\end{psmatrix}
-\end{pspicture}
-\end{LTXexample}
-\vspace{2mm}
-
-
- \item \texttt{no node} (none):\index{no node@\texttt{no node} (none)} Ohne Knoten, was für das
- Einf\"ugen von Verbindungslinien sinnvoll sein kann.
-
-
-\end{compactitem}
-
-
-
-\subsection{emnode}\index{emnode@\texttt{emnode}}
-
-Mit \texttt{emnode} k\"onnen verschiedene Arten (Parameter wie bei
-\texttt{mnode} von Knoten für "`leere"' Zellen gesetzt
-werden. Es muss also nichts in die Zellen eingetragen werden. Wie
-nachfolgendes Beispiel auch belegt, kann es dabei auf der rechten Seite zu
-fehlerhaften Ausgaben kommen, weil
-\bs{pst-node}\index{pst-node@\texttt{pst-node}} da noch nicht v\"ollig korrekt
-arbeitet.
-
-
-\vspace{2mm}
-\begin{LTXexample}[width=.2\linewidth]
-\begin{psmatrix}[emnode=circle,rowsep=0.2cm,colsep=2cm]
- & \\
- &
-\end{psmatrix}
-\end{LTXexample}
-\vspace{2mm}
-
-\subsection{nodealign}\index{nodealign@\texttt{nodealign}}
-
-Der Parameter \texttt{nodealign} kann in [\texttt{nodealign=true}]
-abge\"andert werden, um das Zentrum des Knotens auf die Basisebene zu
-verschieben (vgl. \cite[S.\,259]{PSTricks2}).
-
-\section{Parameter zu Zellen und Zeilen}
-
-\subsection{name}\index{name@\texttt{name}}
-
-Der Parameter \texttt{name} erm\"oglicht es, jeder Zelle einen
-selbstgew\"ahlten Namen zu geben, der am Anfang einer Zelle eingef\"ugt werden
-muss. Dies kann beim Setzen von Linien die
-Arbeit erleichtern, man muss dann nicht die Positionen ausz\"ahlen.
-
-\vspace{2mm}
-\begin{LTXexample}[width=.4\linewidth]
-\begin{psmatrix}[emnode=r,colsep=0.4cm,
- rowsep=0.4cm]
- & [name=A] Buch & \\
-[name=B]Fachbuch & [name=C]Lehrbuch & [name=D]Roman
-\end{psmatrix}
-\psset{nodesep=3pt,arrows=->}
-\ncline{A}{B} \ncline{A}{C} \ncline{A}{D}
-\end{LTXexample}
-\vspace{2mm}
-
-
-Au"serdem ist es \"uber diese Zellenfestlegung m\"oglich, auch \Lcs{pcline} und
-\Lcs{psline} in einer Matrixumgebung zu benutzen. Diese nehmen die
-Koordinatenargumente (hier gleich Zellennamen) aber in runden Klammern, wie
-in dem folgenden Beispiel zu sehen ist.
-
-\vspace{2mm}
-\begin{LTXexample}[width=.45\linewidth]
-\begin{psmatrix}[emnode=r,colsep=1cm,
- rowsep=0.4cm]
-[name=A]Buch \psspan{3} & \\[1cm]
-[name=B]Fachbuch & [name=C]Lehrbuch &
-[name=D]Roman
-\end{psmatrix}
-\psset{nodesep=3pt,arrows=->,linecolor=red}
-\psline(A)(C)
-\pcline(A)(B)
-\nbput*[nrot=:D]{\footnotesize \texttt{pcline}}
-\ncline{A}{D}
-\naput*[nrot=:U]{\footnotesize \texttt{ncline}}
-\end{LTXexample}
-
-\Lcs{pcline} geht immer vom Zentrum aus und kann nicht an einer
-Umgebungsbox beginnen oder aufh\"oren. Sie kann deshalb von
-\texttt{nodesep} nicht beeinflusst werden. Andere Parameter --
-beispielsweise \texttt{offset=},\index{offset@\texttt{offset}} der eine vertikale Verschiebung
-erm\"oglicht, -- k\"onnen das aber schon. \Lcs{psline}
-reagiert wiederum darauf nicht.
-
-\vspace{2mm}
-\begin{LTXexample}[width=.3\linewidth]
-\begin{psmatrix}[emnode=r,colsep=1cm,rowsep=0.4cm]
-[name=A]Fachbuch & \\[1cm]
- & [name=C]Roman
-\end{psmatrix}
-\psset{nodesep=3pt,arrows=<-,linecolor=red,offset=0.3cm}
-\pcline(A)(C)
-\pcline(C)(A)
-\end{LTXexample}
-
-\begin{LTXexample}[width=.3\linewidth]
-\begin{psmatrix}[emnode=r,colsep=1cm,rowsep=0.4cm]
- [name=A] Fachbuch & \\[1cm]
- & [name=C] Roman
-\end{psmatrix}
-\psset{nodesep=3pt,arrows=->,linecolor=red,offset=1cm}
-\psline(A)(C)
-\psline(C)(A)
-\end{LTXexample}
-
-
-
-\subsection{mcol}\index{mcol@\texttt{mcol}}
-
-Mit \texttt{mcol} kann lokal und global der horizontale
-Zellenabstand\index{Zellenabstand!horizontal}
-mit den Optionen \texttt{l,r,c} modifiziert werden.
-
-\vspace{2mm}
-\begin{LTXexample}[width=.4\linewidth]
-\begin{psmatrix}[emnode=r,colsep=0.4cm,
- rowsep=0.4cm,mcol=r]
- & [name=A] Buch & \\
-[name=B]Fachbuch & [name=C]Lehrbuch & [name=D]Roman
-\end{psmatrix}
-\psset{nodesep=3pt,arrows=->}
-\ncline{A}{B} \ncline{A}{C} \ncline{A}{D}
-\end{LTXexample}
-\vspace{2mm}
-
-\begin{LTXexample}[width=.4\linewidth]
-\begin{psmatrix}[emnode=r,colsep=0.4cm,
- rowsep=0.4cm,mcol=l]
- & [name=A]Buch & \\
-[name=B]Fachbuch & [name=C]Lehrbuch & [name=D]Roman
-\end{psmatrix}
-\psset{nodesep=3pt,arrows=->}
-\ncline{A}{B} \ncline{A}{C} \ncline{A}{D}
-\end{LTXexample}
-
-\subsection{rowsep und colsep}\index{Abstand!Zellen und Zeilen}
-
-Mit \texttt{rowsep}\index{rowsep@\texttt{rowsep}} kann man den
-vertikalen und mit \texttt{colsep}\index{colsep@\texttt{colsep}}
-den horizontalen Abstand zwischen
-den Zeilen bzw. Zellen regulieren; welchen hinzuf\"ugen oder mit einem
-negativen Wert reduzieren (siehe Beispiele bei \texttt{name}).
-
-\subsection{mnodesize}\index{mnodesize@\texttt{mnodesize}}
-
-Im Defaultfall wird die Breite der Zellen\index{Zelle!Breite} von deren Inhalt bestimmt;
-innerhalb einer Zellenspalte von der mit dem gr\"o"sten Umfang. Mit
-\texttt{mnodesize=} kann allen Spalten dieselbe Breite gegeben werden.
-Dabei ist zu beachten, dass kein automatischen
-Zeilenumbruch\index{Zelle!Zeilenumbruch} in den Zellen
-erfolgt. Man kann in eine Zelle jedoch mehrere Zeilen über eine Tabelle
-einbringen.
-
-\begin{LTXexample}[width=.52\linewidth]
-\begin{psmatrix}[emnode=r,
-colsep=-0.4cm,rowsep=0.6cm,
-mnodesize=3cm]
-& [name=A]
- \begin{tabular}{c}Grafische\\Grundelemente\end{tabular} & \\
-[name=B]Linien & [name=C]Polygone &
-[name=D]Rahmen
-\end{psmatrix}
-\psset{nodesep=3pt,arrows=->}
-\ncline{A}{B} \ncline{A}{C}
-\ncline{A}{D}
-\end{LTXexample}
-
-Wenn der von \texttt{mnodesize=} festgelegte Raum nicht ausreichend ist
-erweitert sich einfach die Zelle.
-
-\subsection{psspan}\index{psspan@\texttt{psspan}}
-
-Mit \texttt{psspan\{n\}} k\"onnen Zellen analog zu
-\bs{multicolumn}\index{multicolumn@\texttt{\textbackslash{multicolumn}}} mehrere
-Zellen\index{Zellen!zusammenfassen} zusammengefasst werden.
-
-\begin{LTXexample}[width=.4\linewidth]
-\begin{psmatrix}[emnode=r,colsep=0.4cm,
-rowsep=0.4cm]
-[name=A]Buch \psspan{3} & \\
-[name=B]Fachbuch & [name=C]Lehrbuch & [name=D]Roman
-\end{psmatrix}
-\psset{nodesep=3pt,arrows=->}
-\ncline{A}{B} \ncline{A}{C} \ncline{A}{D}
-\end{LTXexample}
-
-
-\section{Knotenverbindungen}\index{Knotenverbindung}
-
-Die Knotenverbindungen beginnen in der Regel mit \texttt{nc} und haben die Syntax:
-
-\begin{BDef}
-\bs{Knotenverbindung}\OptArgs\{Pfeile\}\{KnotenA\}\{KnotenB\}
-\end{BDef}
-
-Sie gehen von einem Knoten zu einem anderen, wenn es nicht anders festgelegt
-wurde, ist die Zielorientierung die Knotenmitte.
-
-Die Knotenverbindungen können über eine Reihe von Parametern geändert
-werden (vgl. \cite[S.\,43\,f]{PSTricks2} und \cite{siart}). Einige, die für das Zeichnen von
-Strukturen besonders relevant sind, werden in der nachfolgenden Tabelle
-aufgelistet:\index{Knotenverbindung!Parameter}
-
-\begin{table}[H]
-\centering
-\caption{Parameter f\"ur Knotenverbindungen}
-\begin{tabular}{@{}lll@{}}
-Name & Werte & Vorgabe \\ \hline
-\texttt{linewidth} & <Wert>\OptEinh\ & 0.8pt \\
-\texttt{linecolor} & <Farbe> & black \\
-\texttt{linestyle} & none|solid|dotted|dashed & solid \\
-\texttt{shadow} & & false \\
-\texttt{shadowsize} & <Wert>\OptEinh\ & 3pt \\
-\texttt{shadowangle} & <Winkel> & $-$45 \\
-\texttt{shadowcolor} & <Farbe> & darkgray \\
-\texttt{arrows} & <Pfeiltyp> & -- \\
-\texttt{doubleline} & & false
-\end{tabular}
-\end{table}
-
-\subsection{ncline}
-
-Mit \Lcs{ncline} wird eine direkte Linie von einem Knoten zum anderen
-gezogen\footnote{Wenn Sie das nächste Beispiel mit den
-folgenden Beispielen vergleichen, können Sie auch sehen, dass eine bessere
-Positionierung in einer einfachen Box über die Umgebung
-\bs{\texttt{pspicture}}
-m\"oglich ist. Zumal ohne diese Umgebung die Kurvenlinien \"uber die Box
-hinausragen w\"urden, wie dies im ersten Beispiel zu \texttt{ncdiag} der
-Fall ist.}.
-
-\begin{LTXexample}[width=.35\linewidth]
-\begin{psmatrix}[emnode=r,colsep=2cm]
- KnotenX & KnotenY
-\end{psmatrix}
-\ncline[linecolor=red]{1,1}{1,2}
-\end{LTXexample}
-
-
-\subsection{ncarc}\xLcs{ncarc}
-
-Eine Kurve verbindet die Knoten.
-
-\begin{LTXexample}[width=.35\linewidth]
-\begin{pspicture}(0,-0.5)(4,1)
-\begin{psmatrix}[emnode=r,colsep=2cm]
- KnotenX & KnotenY
-\end{psmatrix}
-\ncarc[linecolor=red]{<->}{1,1}{1,2}
-\end{pspicture}
-\end{LTXexample}
-
-Mit der Option \texttt{arcangle=}\index{arcangle@\texttt{arcangle}} kann der
-Steigungswinkel\index{Steigungswinkel} erh\"oht werden.
-
-\begin{LTXexample}[width=.35\linewidth]
-\begin{pspicture}(0,-0.5)(4,1)
-\begin{psmatrix}[emnode=r,colsep=2cm]
- KnotenX & KnotenY
-\end{psmatrix}
-\ncarc[arcangle=60,linecolor=red]{<->}{1,1}{1,2}
-\end{pspicture}
-\end{LTXexample}
-
-In der Sternchenversion wird der von der Kurve eingeschlossenen Raum mit
-der Linienfarbe ausgefüllt.
-
-\begin{LTXexample}[width=.4\linewidth]
-\begin{pspicture}(0,-0.5)(4,1)
-\begin{psmatrix}[emnode=r,colsep=2cm]
- KnotenX & KnotenY
-\end{psmatrix}
-\ncarc*[arcangle=60,linecolor=red]{<->}{1,1}{1,2}
-\end{pspicture}
-\end{LTXexample}
-
-
-\subsection{ncdiag}
-
-Mit \Lcs{ncdiag} wird eine Linie in drei Segmente "`zerlegt"'. Man kann
-diese Zerlegung über die Winkelfestlegungen (siehe folgendes Beispiel)
-steuern.
-
-\begin{LTXexample}[width=.4\linewidth]
-\begin{psmatrix}[emnode=r,colsep=2cm]
- KnotenX & KnotenY
-\end{psmatrix}
-\ncdiag[angleA=90,angleB=-90,linecolor=red]{<->}{1,1}{1,2}
-\end{LTXexample}
-
-Die Angabe \texttt{arm=0}\index{arm@\texttt{arm}} erzwingt eine gerade Linie.
-
-\begin{LTXexample}[width=.4\linewidth]
-\begin{psmatrix}[emnode=r,colsep=2cm]
- KnotenX & KnotenY
-\end{psmatrix}
-\ncdiag[angleA=-90,angleB=90,arm=0,linecolor=red]{<->}{1,1}{1,2}
-\end{LTXexample}
-
-\subsection{ncdiagg}
-
-\Lcs{ncdiagg} ist \Lcs{ncdiag} \"ahnlich. Für den Ausgangsknoten wird aber
-nur eine Verbindung gezeichnet.
-
-\begin{LTXexample}[width=.3\linewidth]
-\usepackage{pstricks-add}
-\begin{pspicture}(-1,-1)(4,6)
- \circlenode{A}{A}\quad\circlenode{C}{C}
- \rput(0,4){\circlenode{B}{B}}
- \rput(1,5){\circlenode{D}{D}}
- {\psset{arrowscale=2,linearc=0.2,
- linecolor=red,armA=0.5,angleA=90}
- \ncdiagg[lineAngle=-160]{->}{A}{B}
- \ncput*[nrot=:U]{Linie I}
- \ncdiagg[lineAngle=-160]{->}{C}{D}
- \ncput*[nrot=:U]{Linie II}}
-\end{pspicture}
-\end{LTXexample}
-
-\subsection{ncbar}
-
-\Lcs{ncbar} arbeitet ähnlich wie \Lcs{ncdiag}. Zwei Knoten werden
-durch drei Linienteile verbunden.
-
-\begin{LTXexample}[width=.4\linewidth]
-\begin{pspicture}(0,1)(4,-2)
-\begin{psmatrix}[emnode=r]
-\psset{arrowscale=2}
-Verbinde {\rnode{A}{KnotenX}} mit
-{\rnode{B}{KnotenY}}!
-\end{psmatrix}
-\ncbar[nodesep=3pt,angleA=-90,angleB=90,linecolor=red,arrows=<->,arrowscale=2,
-arm=0.8]{A}{B}
-\end{pspicture}
-\end{LTXexample}
-
-
-\subsection{ncbarr}
-
-\Lcs{ncbarr} verwendet f\"unf Liniensegmente und erstellt damit eine
-S-f\"ormige Verbindung.
-
-\begin{LTXexample}[width=.3\linewidth]
-\begin{psmatrix}
- & \circlenode{X}{X}\\[1cm]
- & \circlenode{Y}{Y}
-\end{psmatrix}
-\ncbarr[angleA=0,linecolor=red]{X}{Y}
-\end{LTXexample}
-
-
-\subsection{ncangle}
-
-\Lcs{ncangle} erm\"oglich genauer berechnete dreiteilige Linien. Es
-arbeitet analog zu \Lcs{ncdiag}.
-
-\begin{LTXexample}[width=.37\linewidth]
-\begin{pspicture}(0,1)(4,-1)
-\begin{psmatrix}[emnode=r,colsep=2cm,
- rowsep=0.5cm]
-KnotenX & KnotenY \\
-\end{psmatrix}
-\ncdiag[angleA=-90,angleB=135,armA=1cm,armB=1cm,
-linearc=.5,linecolor=red]{->}{1,1}{1,2}
-\end{pspicture}
-\end{LTXexample}
-
-\subsection{ncangles}
-
-\Lcs{ncangles} produziert viergliedrige Linien.
-
-\begin{LTXexample}[width=.4\linewidth]
-\begin{pspicture}(0,1)(4,-2.3)
-\begin{psmatrix}[emnode=r,colsep=2cm,
- rowsep=0.5cm]
-\psframebox{\emph{KnotenX}} &
-\psframebox{\emph{KnotenY}}
-\end{psmatrix}
-\ncangles[angleA=-90,angleB=135,armA=1cm,
- armB=1cm,
-linearc=.15,linecolor=red]{->}{1,1}{1,2}
-\rput[bl](-5,-0.7){armA}
-\rput[rB](-0.4,0.5){armB}
-\end{pspicture}
-\end{LTXexample}
-
-\subsection{ncloop}
-
-\Lcs{ncloop} setzt f\"unfgliedrige Linien. Gegenüber \Lcs{ncangles}
-kommt noch die Option \texttt{loopsize}\index{loopsize@\texttt{loopsize}} hinzu, die die
-H\"ohe für einen Loop (eine Schlinge) vorgibt.
-
-
-\begin{LTXexample}[width=.45\linewidth]
-\begin{pspicture}(-1.5,-1)(4,2)
-\rnode[lB]{A}{\psframebox{Knoten mit Schlinge}}
-\ncloop[angleB=180,loopsize=1,arm=.5,
- linearc=.2,linecolor=red]{->}{A}{A}
-\ncput[npos=3.5,nrot=:U]{\psline{|<->|}%
- (0.5,-0.2)(-0.5,-0.2)}
-\nbput[npos=3.5,nrot=:D,labelsep=.35cm]{%
- {\small\texttt{loopsize}}}
-\end{pspicture}
-\end{LTXexample}
-
-\subsection{nccurve}
-
-\Lcs{nccurve} setzt eine B\`ezierkurve zwischen zwei Knoten, die über
-die Winkel \texttt{angleA} und \texttt{angleB} sowie den
-Kurvenparameter\index{Kurvenparameter}
-\texttt{ncurv}\index{nccurv@\texttt{nccurv}} gesteuert werden kann.
-
-\begin{LTXexample}[width=.4\linewidth]
-\begin{psmatrix}[emnode=r,colsep=2cm,
-rowsep=0.5cm]
-{\rnode{A}{\psframebox{KnotenX}}} & \\
-& {\rnode{B}{\psframebox{KnotenY}}}
-\end{psmatrix}
-\nccurve[angleB=180,ncurv=0.9,
-linecolor=red]{A}{B}
-\end{LTXexample}
-
-\subsection{nccircle}
-
-\Lcs{nccircle} erzeugt \"uber einem Knoten einen ungef\"ullten oder gef\"ullten
-(Sternchenversion) Kreis.
-
-\vspace{2mm}
-\begin{LTXexample}[width=.25\linewidth]
-\begin{pspicture}(-1,-1)(3,2)
-\begin{psmatrix}[emnode=r]
-\rnode{A}{herum}
-\end{psmatrix}
-\nccircle[nodesep=3pt,linecolor=red]{->}{A}{.8cm}
-\kern 5pt
-\end{pspicture}
-\end{LTXexample}
-
-\vspace{2mm}
-\begin{LTXexample}[width=.25\linewidth]
-\begin{pspicture}(-1,-1)(3,2)
-\begin{psmatrix}[emnode=r]
-\rnode{A}{dar\"uber}
-\end{psmatrix}
-\nccircle*[nodesep=3pt,linecolor=lightgray]{->}{A}{1cm}
-\kern 5pt
-\end{pspicture}
-\end{LTXexample}
-
-\subsection{offset}
-
-Die Option \texttt{offset}\index{offset@\texttt{offset}} verschiebt, wie
-schon bei den Erl\"auterungen zu dem Parameter \texttt{name} angesprochen,
-die Verbindungslinie parallel zum eigentlich festgelegten Verlauf. Dies ist
-besonders bei zwei Linien sinnvoll und effektiv.
-Wenn man jede Linien einzeln modifizieren m\"ochte, kann dies mit
-\texttt{offsetA}\index{offsetA@\texttt{offsetA}} und
-\texttt{offsetB}\index{offsetB@\texttt{offsetB}}
-geschehen. Beispielsweise, wenn von
-einem Knoten zwei Verbindungen ausgehen sollen.
-
-\vspace{2mm}
-\begin{LTXexample}[width=.2\linewidth]
-\begin{psmatrix}[emnode=r,colsep=1cm,rowsep=0.4cm]
-[name=A]Buch \\
-[name=B]Fachbuch \\
-[name=C]\LaTeX buch
-\end{psmatrix}
-\psset{nodesep=3pt,arrows=->,linecolor=red,offset=0.3cm}
-\pcline[offsetA=0.3cm](A)(B)
-\pcline[offsetB=-0.3cm](A)(C)
-\end{LTXexample}
-
-
-\section{Linien beschriften}\index{Linienbeschriftung}
-
-\subsection{Beschriftung einf\"ugen}
-
-\psframebox{\parbox{0.65\textwidth}{
-\bs ncput\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{*}
-[\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{\texttt{Optionen}}]
-\{Beschriftung auf der Linie\}\\
-\bs naput\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{*}
-[\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{\texttt{Optionen}}]
-\{Beschriftung \"uber der Linie\}\\
-\bs nbput\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{*}
-[\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{\texttt{Optionen}}]
-\{Beschriftung unter der Linie\}
-}}
-
-\begin{LTXexample}[width=.4\linewidth]
-\begin{pspicture}(0,1)(4,-2)
-\begin{psmatrix}[emnode=r]
-\psset{arrowscale=2}
-Verbinde {\rnode{A}{KnotenX}} mit
-{\rnode{B}{KnotenY}}!
-\end{psmatrix}
-\ncbar[nodesep=3pt,angleA=-90,angleB=90,
-linecolor=red,arrows=<->,arrowscale=2,arm=0.8]
-{A}{B}
-\ncput*{auf}
-\naput*{\"uber}
-\nbput*{unter}
-\end{pspicture}
-\end{LTXexample}
-
-Die angegebene Sternchenversion ist besser geeignet, da sie die Linien
-überschreibt und damit die Beschriftungen besser sichtbar sind (vgl. mit
-der nachfolgenden Beispielversion ohne Sternchen). Das betrifft besonders
-die \texttt{naput}-Version.
-
-\begin{LTXexample}[width=.4\linewidth]
-\begin{pspicture}(0,1)(4,-2)
-\begin{psmatrix}[emnode=r]
-\psset{arrowscale=2}
-Verbinde {\rnode{A}{KnotenX}} mit
-{\rnode{B}{KnotenY}}!
-\end{psmatrix}
-\ncbar[nodesep=3pt,angleA=-90,angleB=90,
-linecolor=red,arrows=<->,arrowscale=2,arm=0.8]
-{A}{B}
-\ncput{auf}
-\naput{\"uber}
-\nbput{unter}
-\end{pspicture}
-\end{LTXexample}
-
-Ohne die Angabe von Optionen wird die Beschriftung auf den sichtbaren
-Linienteil geschrieben. Sie orientiert sich dabei an der Linienmitte.
-Mit \texttt{npos=}\index{npos@\texttt{npos}} und
-\text{nrot=}\index{nrot@\texttt{nrot}} kann diese Orientierung ge\"andert werden.
-
-Mit \Lcs{psset}\{labelset=\} kann der Abstand zwischen Label und Linie
-reguliert werden. Wenn der Wert auf 0pt gesetzt wird (also direkt über oder
-unter der Linie, sollte f\"ur \Lcs{naput} bzw. \Lcs{nbput} nicht die
-Sternchenversion gew\"ahlt werden, die wahrscheinlich ohnehin nur f\"ur
-\Lcs{ncput} sinnvoll scheint. Die Nullversion ist immer dann zu nehmen,
-wenn es Probleme mit dem Sichtbarmachen des Labels gibt.
-
-\subsection{npos}
-
-\texttt{npos} ermöglicht die Platzierung der Beschriftung auf den
-verschiedenen Segmenten des entsprechenden Linientyps. Die Zahl gibt vor
-dem Punkt die Segmentnummer (0,1,2,\ldots) und nach dem Punkt den Abstand
-zum Segmentanfang an. Im folgenden Beispiel bekommt die Beschriftung den
-Wert 1.2 und steht damit auf dem zweiten Liniensegment 20\% vom
-Segmentanfang.
-
-\begin{table}[H]
-\centering
-\caption{Zusammenstellung der Kurzformen für die Drehwinkel}\label{tab:wind}
- \begin{tabular}{@{}l|*{8}{>{\ttfamily}c}@{}}
- \emph{Buchstabe} & U & L & D & R & N & W & S & E \\\hline
- \emph{Bedeutung} & Up& Left&Down&Right&North&West&South&East\\
- \emph{Enstprechung} &0&90&180&270&*0&*90&*180&*270
-%
-% \begin{tabular}{@{}>{\ttfamily}llr@{}}
-% \textrm{Buchstabe} & Bedeutung & Winkel\\\hline
-% U & Up & 0\\
-% L & Left & 90\\
-% D & Down & 180\\
-% R & Right & 270\\
-% N & North & *0\\
-% W & West & *90\\
-% S & South & *180\\
-% E & East & *270
- \end{tabular}
-\end{table}
-
-\begin{LTXexample}[width=.4\linewidth]
-\begin{pspicture}(0,1)(4,-2)
-\begin{psmatrix}[emnode=r]
-\psset{arrowscale=2}
-Verbinde {\rnode{A}{KnotenX}} mit
-{\rnode{B}{KnotenY}}!
-\end{psmatrix}
-\ncbar[nodesep=3pt,angleA=-90,angleB=90,
-linecolor=red,arrows=<->,arrowscale=2,arm=0.8]
-{A}{B}
-\ncput*[npos=1.2]{auf}
-\end{pspicture}
-\end{LTXexample}
-
-
-\subsection{nrot}
-
-\texttt{nrot=:Winkel/K\"urzel} erm\"oglicht es die Beschriftung zu
-drehen:
-
-\begin{table}[htb]
-\centering\tabcolsep=3pt
-\caption{Vergleich der verschiedenen Knotenverbindungen bez\"uglich ihrer
-Segmentanzahl}\label{tab:segmente}
-\hspace*{-1em}
-\begin{tabular}{@{} lccc | lccc @{}}
-\emph{Verbindung} & \emph{Segm.} & \emph{Bereich} & \emph{Vorgabe} &
-\emph{Verbindung} & \emph{Segm.} & \emph{Bereich} & \emph{Vorgabe}\\\hline
- \Lcs{ncline} & $1$ & $0\leq npos\leq 1$ & $0.5$ &
- \Lcs{nccurve} & $1$ & $0\leq npos\leq 1$ & $0.5$\\
- \Lcs{ncarc} & $1$ & $0\leq npos\leq 1$ & $0.5$ &
- \Lcs{ncbar} & $3$ & $0\leq npos\leq 3$ & $1.5$\\
- \Lcs{ncdiag} & $3$ & $0\leq npos\leq 3$ & $1.5$ &
- \Lcs{ncdiagg} & $2$ & $0\leq npos\leq 2$ & $0.5$\\
- \Lcs{ncangle} & $3$ & $0\leq npos\leq 3$ & $1.5$ &
- \Lcs{ncangles} & $4$ & $0\leq npos\leq 4$ & $1.5$\\
- \Lcs{ncloop} & $5$ & $0\leq npos\leq 5$ & $2.5$ &
- \Lcs{nccircle} & $1$ & $0\leq npos\leq 1$ & $0.5$\\
-\end{tabular}
-\end{table}
-
-
-\begin{LTXexample}[width=.4\linewidth]
-\begin{pspicture}(0,1)(4,-2)
-\begin{psmatrix}[emnode=r]
-\psset{arrowscale=2}
-Verbinde {\rnode{A}{KnotenX}} mit
-{\rnode{B}{KnotenY}}!
-\end{psmatrix}
-\ncbar[nodesep=3pt,angleA=-90,angleB=90,
-linecolor=red,arrows=<->,arrowscale=2,arm=0.8]
-{A}{B}
-\ncput*[nrot=:L]{auf}
-\end{pspicture}
-\end{LTXexample}
-
-\section{Strukturbeispiele}
-
-
-
-Jetzt sollen noch einige wenige Beispiele von Struktur\"ubersichten
-vorgestellt werden, die von mir in der \texttt{pstmatrix}-Umgebung gesetzt wurden.
-
-\begin{figure}[H]\centering
-\begin{psmatrix}[colsep=0.8,rowsep=0.8]
-\psframebox[fillcolor=red!40,fillstyle=solid,doubleline=true]
-{$\left[\tabular{c}GF: /Pinguin/\\ WA: +N\endtabular\right]$}
- & \psframebox[fillcolor=yellow!40,fillstyle=solid]{Vogel} \\
-\psframebox[fillcolor=blue!40,fillstyle=solid,doubleline=true]{\tabular{l}aufrecht\\ gehend\endtabular}
- & \psshadowbox[fillcolor=red,fillstyle=solid,shadow=true,blur=true,shadowsize=5pt]{\textbf{Pinguin}} &
- \psframebox[fillcolor=blue!40,fillstyle=solid,doubleline=true]{flugunfähig}\\
- & \psframebox[fillcolor=green!40,fillstyle=solid]{Felsenpinguin}
-\end{psmatrix}
-\ncline{1,1}{2,2} \naput{s}
-\ncline{1,2}{2,2} \naput{ob}
-\ncline{2,1}{2,2} \naput{a}
-\ncline{2,2}{2,3} \naput{a}
-\ncline{2,2}{3,2} \naput{ub}
-\caption{Ein Frame}
-\end{figure}
-
-\begin{lstlisting}[language={[LaTeX]TeX},basicstyle=\rmfamily\small,backgroundcolor={\color{yellow!20}},frame=single]
-\usepackage{pst-node,pst-blur}
-\begin{psmatrix}[colsep=0.8,rowsep=0.8]
-\psframebox[fillcolor=red!40,fillstyle=solid,doubleline=true]
-{$\left[\tabular{c}GF: /Pinguin/\\ WA: +N\endtabular\right]$}
- & \psframebox[fillcolor=yellow!40,fillstyle=solid]{Vogel} \\
-\psframebox[fillcolor=blue!40,fillstyle=solid,doubleline=true]{\tabular{l}aufrecht\\ gehend\endtabular}
- & \psshadowbox[fillcolor=red,fillstyle=solid,shadow=true,blur=true,shadowsize=5pt]{\textbf{Pinguin}} &
- \psframebox[fillcolor=blue!40,fillstyle=solid,doubleline=true]{flugunfähig}\\
- & \psframebox[fillcolor=green!40,fillstyle=solid]{Felsenpinguin}
-\end{psmatrix}
-\ncline{1,1}{2,2} \naput{s}
-\ncline{1,2}{2,2} \naput{ob}
-\ncline{2,1}{2,2} \naput{a}
-\ncline{2,2}{2,3} \naput{a}
-\ncline{2,2}{3,2} \naput{ub}
-\end{lstlisting}
-
-
-\begin{figure}[H]\centering
-\begin{psmatrix}[colsep=0.8,rowsep=0.8]
-\psset{shortput=nab,framesep=10pt}
- \psshadowbox[framearc=0.25,fillcolor=blue!20,fillstyle=solid,doubleline=true]{Lebewesen} &
- \psframebox[fillcolor=yellow!40,fillstyle=solid]{allgemeine Kategorisierung}\\
- \psshadowbox[framearc=0.25,fillcolor=red!40,fillstyle=solid,doubleline=true]{\textbf{Löwe}}
-& \psframebox[fillcolor=red!40,fillstyle=solid,doubleline=true]{Basisebene}\\
- \psshadowbox[framearc=0.25,fillcolor=blue!20,fillstyle=solid,doubleline=true]{Höhlenlöwe}
-& \psframebox[fillcolor=green!30,fillstyle=solid]{spezielle Kategorisierung}
-\end{psmatrix}
-\psset{nodesep=2pt,arrows=->}
-\ncline[arrowscale=2]{1,1}{2,1}
-\ncline[arrowscale=2]{2,1}{3,1}
-\caption{Eine konzeptuelle Kategorisierung}
-\end{figure}
-
-\begin{lstlisting}[language={[LaTeX]TeX},basicstyle=\rmfamily\small,backgroundcolor={\color{yellow!20}},frame=single]
-\begin{psmatrix}[colsep=0.8,rowsep=0.8]
-\psset{shortput=nab,framesep=10pt}
- \psshadowbox[framearc=0.25,fillcolor=blue!20,fillstyle=solid,doubleline=true]{Lebewesen} &
- \psframebox[fillcolor=yellow!40,fillstyle=solid]{allgemeine Kategorisierung}\\
- \psshadowbox[framearc=0.25,fillcolor=red!40,fillstyle=solid,doubleline=true]{\textbf{Löwe}}
-& \psframebox[fillcolor=red!40,fillstyle=solid,doubleline=true]{Basisebene}\\
- \psshadowbox[framearc=0.25,fillcolor=blue!20,fillstyle=solid,doubleline=true]{Höhlenlöwe}
-& \psframebox[fillcolor=green!30,fillstyle=solid]{spezielle Kategorisierung}
-\end{psmatrix}
-\psset{nodesep=2pt,arrows=->}
-\ncline[arrowscale=2]{1,1}{2,1}
-\ncline[arrowscale=2]{2,1}{3,1}
-\end{lstlisting}
-
-\begin{figure}[H]\centering
-\psset{framearc=0.2,shadow=true,fillstyle=solid,shadowcolor=black!55}
-\begin{psmatrix}[colsep=0,rowsep=0.9]
- & & \psframebox[fillcolor=blue!30]{Synchronie}\\
- & \psframebox[fillcolor=red!30]{Sprache} & \\
- & & \psframebox[fillcolor=blue!30]{Diachronie} \\
-\psframebox[fillcolor=red!30]{Menschliche Rede} & & \\
- & \psframebox[fillcolor=red!30]{Sprechen} &
- \end{psmatrix}
- \psset{shadow=false}
-\ncline[arrows=->,arrowscale=2]{2,2}{1,3}
-\ncline[arrows=->,arrowscale=2]{2,2}{3,3}
-\ncline[arrows=->,arrowscale=2]{4,1}{2,2}
-\ncline[arrows=->,arrowscale=2]{4,1}{5,2}
-\caption{F. de Saussure zu Sprache}
-\end{figure}
-
-\begin{lstlisting}[language={[LaTeX]TeX},basicstyle=\rmfamily\small,backgroundcolor={\color{yellow!20}},frame=single]
-\psset{framearc=0.2,shadow=true,fillstyle=solid,shadowcolor=black!55}
-\begin{psmatrix}[colsep=0,rowsep=0.9]
- & & \psframebox[fillcolor=blue!30]{Synchronie}\\
- & \psframebox[fillcolor=red!30]{Sprache} & \\
- & & \psframebox[fillcolor=blue!30]{Diachronie} \\
-\psframebox[fillcolor=red!30]{Menschliche Rede} & & \\
- & \psframebox[fillcolor=red!30]{Sprechen} &
- \end{psmatrix}
- \psset{shadow=false}
-\ncline[arrows=->,arrowscale=2]{2,2}{1,3}
-\ncline[arrows=->,arrowscale=2]{2,2}{3,3}
-\ncline[arrows=->,arrowscale=2]{4,1}{2,2}
-\ncline[arrows=->,arrowscale=2]{4,1}{5,2}
-\end{lstlisting}
-
-\begin{figure}[H] \centering
-\begin{psmatrix}[emnode=r,colsep=0.5cm,rowsep=0.5cm,mcol=c]
- & & & & <Metall> & \\
- & & & [mnode=oval] 18 & &\\
- <WERKZEUG> & & & & & \\
- & & & &[mnode=tri] 12 &\\
- & & & & & <arbeiten> \\
- & & [mnode=C,linestyle=dashed,radius=0.5,mcol=l] & & &\\
- \fbox{12} & & & \fbox{51} & & \\
- & \fbox{36} & & & <Hammer> &\\
- <Feile> & & <Zange> & & &
-\end{psmatrix}
-\psset{arrowscale=2,labelsep=0pt}
-\ncline{->}{1,5}{2,4}
-\ncarc{->}{4,5}{2,4}\naput[npos=0.4]{OBJ}
-\ncarc{->}{6,3}{4,5}\naput[npos=0.4]{INSTR}
-\ncline{<->}{6,3}{3,1}
-\ncarc{->}{6,3}{7,1}\naput[npos=0.4]{UB}
-\ncarc{->}{6,3}{7,4}\naput[npos=0.4]{UB}
-\ncarc{->}{6,3}{8,2}\naput[npos=0.4]{UB}
-\ncarc{->}{9,1}{7,1} \ncarc{->}{9,3}{8,2}
-\ncarc{->}{8,5}{7,4} \ncline{->}{5,6}{4,5}
-\caption{Begriffliches Merkmalsnetz nach Hoffmann}
-\end{figure}
-
-\begin{lstlisting}[language={[LaTeX]TeX},basicstyle=\rmfamily\small,backgroundcolor={\color{yellow!20}},frame=single]
-\begin{psmatrix}[emnode=r,colsep=0.5cm,rowsep=0.5cm,mcol=c]
- & & & & <Metall> & \\
- & & & [mnode=oval] 18 & &\\
- <WERKZEUG> & & & & & \\
- & & & &[mnode=tri] 12 &\\
- & & & & & <arbeiten> \\
- & & [mnode=C,linestyle=dashed,radius=0.5,mcol=l] & & &\\
- \fbox{12} & & & \fbox{51} & & \\
- & \fbox{36} & & & <Hammer> &\\
- <Feile> & & <Zange> & & &
-\end{psmatrix}
-\psset{arrowscale=2,labelsep=0pt}
-\ncline{->}{1,5}{2,4}
-\ncarc{->}{4,5}{2,4}\naput[npos=0.4]{OBJ}
-\ncarc{->}{6,3}{4,5}\naput[npos=0.4]{INSTR}
-\ncline{<->}{6,3}{3,1}
-\ncarc{->}{6,3}{7,1}\naput[npos=0.4]{UB}
-\ncarc{->}{6,3}{7,4}\naput[npos=0.4]{UB}
-\ncarc{->}{6,3}{8,2}\naput[npos=0.4]{UB}
-\ncarc{->}{9,1}{7,1} \ncarc{->}{9,3}{8,2}
-\ncarc{->}{8,5}{7,4} \ncline{->}{5,6}{4,5}
-\end{lstlisting}
-
-\newpage
-\bgroup
-\appendix
-
-%\addcontentsline{toc}{section}{Literaturverzeichnis}
-
-\nocite{*}
-\raggedright
-
-\printbibliography
-\egroup
-\clearpage
-\addcontentsline{toc}{section}{Index}
-\printindex
-
-
-\end{document}
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/generic/pst-node/pst-node-doc.bib new/doc/generic/pst-node/pst-node-doc.bib
--- old/doc/generic/pst-node/pst-node-doc.bib 2017-12-11 23:23:56.000000000 +0100
+++ new/doc/generic/pst-node/pst-node-doc.bib 2020-04-12 00:54:50.000000000 +0200
@@ -3,7 +3,7 @@
@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} }
@Book{companion,
- author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Dennis Roegel and Herbert Vo\ss},
+ author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Dennis Roegel and Herbert Voß},
title = {The {\LaTeX} {G}raphics {C}ompanion},
publisher = {{Addison-Wesley Publishing Company}},
edition = {2},
@@ -50,7 +50,7 @@
}
@Book{PSTricks2,
- author = {Herbert Vo\ss{}},
+ author = {Herbert Voß},
title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX},
edition = {7},
publisher = {DANTE and Lehmanns Media},
@@ -59,7 +59,7 @@
}
@Book{PSTricksE,
- author = {Herbert Vo\ss{}},
+ author = {Herbert Voß},
title = {\texttt{PSTricks} -- {G}raphics and {P}ost{S}cript for \LaTeX},
edition = {1},
publisher = {UIT},
@@ -68,7 +68,7 @@
}
@Book{LTXquick,
- author = {Herbert Vo\ss{}},
+ author = {Herbert Voß},
title = {{\LaTeX} quick reference},
edition = {1},
publisher = {UIT},
@@ -77,7 +77,7 @@
}
@Book{presentations,
- author = {Herbert Vo\ss},
+ author = {Herbert Voß},
title = {Presentations with \LaTeX},
edition = {2},
publisher = {DANTE and Lehmanns Media},
Binary files old/doc/generic/pst-node/pst-node-doc.pdf and new/doc/generic/pst-node/pst-node-doc.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/generic/pst-node/pst-node-doc.tex new/doc/generic/pst-node/pst-node-doc.tex
--- old/doc/generic/pst-node/pst-node-doc.tex 2017-12-30 23:43:07.000000000 +0100
+++ new/doc/generic/pst-node/pst-node-doc.tex 2020-04-12 00:54:50.000000000 +0200
@@ -1,4 +1,4 @@
-%% $Id: pst-node-doc.tex 696 2017-12-30 19:01:07Z herbert $
+%% $Id: pst-node-doc.tex 1164 2020-04-01 09:12:28Z herbert $
\documentclass[fontsize=11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,headings=small,
headinclude=false,footinclude=false,oneside]{pst-doc}
\listfiles
@@ -73,7 +73,7 @@
\vfill
\noindent
-Thanks to: Marco Daniel; Denis Girou; Rolf Niepraschk; Sebastian Rahtz; Andi Setiawan;
+Thanks to: Marco Daniel; Denis Girou; Thomas Iyer; Rolf Niepraschk; Sebastian Rahtz; Andi Setiawan;
\end{abstract}
\clearpage
@@ -832,7 +832,7 @@
point is one-half \Lkeyword{ncurvA} times the distance between the two endpoints.)
\begin{BDef}
-\LcsStar{nccircle}\OptArgs\OptArg*{\Largb{arrows}}\Largb{nodeA}\Largb{nodeB}
+\LcsStar{nccircle}\OptArgs\OptArg*{\Largb{arrows}}\Largb{nodeA}\Largb{radius}
\end{BDef}
\Lcs{nccircle} draws a circle, or part of a circle, that, if complete, would
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/pst-node.doc.tlpobj new/tlpkg/tlpobj/pst-node.doc.tlpobj
--- old/tlpkg/tlpobj/pst-node.doc.tlpobj 2019-03-04 02:24:05.000000000 +0100
+++ new/tlpkg/tlpobj/pst-node.doc.tlpobj 2020-04-12 01:55:41.000000000 +0200
@@ -1,14 +1,11 @@
name pst-node.doc
category Package
-revision 50215
+revision 54687
shortdesc doc files of pst-node
relocated 1
-docfiles size=259
+docfiles size=192
RELOC/doc/generic/pst-node/Changes
RELOC/doc/generic/pst-node/README
- RELOC/doc/generic/pst-node/psmatrix-docDE.bib
- RELOC/doc/generic/pst-node/psmatrix-docDE.pdf
- RELOC/doc/generic/pst-node/psmatrix-docDE.tex
RELOC/doc/generic/pst-node/pst-node-doc.bib
RELOC/doc/generic/pst-node/pst-node-doc.pdf
RELOC/doc/generic/pst-node/pst-node-doc.tex
++++++ pst-node.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/generic/pst-node/pst-node.tex new/tex/generic/pst-node/pst-node.tex
--- old/tex/generic/pst-node/pst-node.tex 2019-03-03 23:13:20.000000000 +0100
+++ new/tex/generic/pst-node/pst-node.tex 2020-04-12 00:54:50.000000000 +0200
@@ -1,4 +1,4 @@
-% $Id: pst-node.tex 940 2019-03-03 12:32:03Z herbert $
+% $Id: pst-node.tex 1164 2020-04-01 09:12:28Z herbert $
%%
%% BEGIN pst-node.tex
%%
@@ -6,7 +6,7 @@
%% This uses the header file `pst-node.pro'.
%%
%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
-%% COPYRIGHT 2009-2018 by Herbert Voss, hvoss tug.org.
+%% COPYRIGHT 2009- by Herbert Voss, hvoss@tug.org.
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN
@@ -18,8 +18,8 @@
\ifx\PSTricksLoaded\endinput\else\input pstricks.tex \fi\relax
\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi
%
-\def\fileversion{1.42}
-\def\filedate{2019/03/03}
+\def\fileversion{1.42a}
+\def\filedate{2020/04/01}
\message{ v\fileversion, \filedate}
%
\edef\TheAtCode{\the\catcode`\@}
@@ -72,7 +72,7 @@
\define@key[psset]{pst-node}{NodeCoorPrefix}[]{\def\psk@NodeCoorPrefix{#1}}% if empty it is N-<Name>.x|y
\psset[pst-node]{saveNodeCoors=false,showNode=false,markNode=false,NodeCoorPrefix=}%
%
-\def\pst@newnode#1#2#3#4{%
+\def\pst@newnode#1#2#3#4{% name type coors initcode
\pst@killglue
\leavevmode
\pst@getnode{#1}\pst@thenode
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/pst-node.tlpobj new/tlpkg/tlpobj/pst-node.tlpobj
--- old/tlpkg/tlpobj/pst-node.tlpobj 2019-03-04 02:24:05.000000000 +0100
+++ new/tlpkg/tlpobj/pst-node.tlpobj 2020-04-12 01:55:41.000000000 +0200
@@ -1,6 +1,6 @@
name pst-node
category Package
-revision 50215
+revision 54687
shortdesc Nodes and node connections in PSTricks
relocated 1
longdesc The package enables the user to connect information, and to
@@ -18,7 +18,6 @@
RELOC/tex/generic/pst-node/pst-node97.tex
RELOC/tex/latex/pst-node/pst-node.sty
catalogue-ctan /graphics/pstricks/contrib/pst-node
-catalogue-date 2019-03-03 15:57:10 +0100
catalogue-license lppl
catalogue-topics graphics-in-tex linguistic
-catalogue-version 1.42
+catalogue-version 1.42a
++++++ pst-ob3d.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/generic/pst-ob3d/Changes new/doc/generic/pst-ob3d/Changes
--- old/doc/generic/pst-ob3d/Changes 2007-10-28 00:41:30.000000000 +0200
+++ new/doc/generic/pst-ob3d/Changes 2020-03-24 21:50:01.000000000 +0100
@@ -1,4 +1,5 @@
pst-ob3d.dtx --------
+0.22 2020-03-24 Load pst-tools for the random macros (hv)
0.21 2007-08-22 Updated the style file (hv)
0.20 2006-11-25 First CTAN release
0.12 2004-09-29 small fix to the latex-wrapper part (hv)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/generic/pst-ob3d/README new/doc/generic/pst-ob3d/README
--- old/doc/generic/pst-ob3d/README 2007-10-28 00:41:30.000000000 +0200
+++ new/doc/generic/pst-ob3d/README 2020-03-24 21:50:01.000000000 +0100
@@ -10,5 +10,7 @@
* Run "latex" on pst-ob3d.dtx to generate the documentation
* This is a PSTricks (PostScript Tricks) package, which won't
- run with pdftex. In this case go to http://PSTricks.de/
+ run with pdftex. In this case go to http://PSTricks.tug.org/
for some help.
+
+hvoss@tug.org
\ No newline at end of file
Binary files old/doc/generic/pst-ob3d/pst-ob3d.pdf and new/doc/generic/pst-ob3d/pst-ob3d.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/pst-ob3d.doc.tlpobj new/tlpkg/tlpobj/pst-ob3d.doc.tlpobj
--- old/tlpkg/tlpobj/pst-ob3d.doc.tlpobj 2019-02-28 04:02:14.000000000 +0100
+++ new/tlpkg/tlpobj/pst-ob3d.doc.tlpobj 2020-03-25 16:13:16.000000000 +0100
@@ -1,9 +1,9 @@
name pst-ob3d.doc
category Package
-revision 15878
+revision 54514
shortdesc doc files of pst-ob3d
relocated 1
-docfiles size=50
+docfiles size=51
RELOC/doc/generic/pst-ob3d/Changes
RELOC/doc/generic/pst-ob3d/README
RELOC/doc/generic/pst-ob3d/pst-ob3d.pdf
++++++ pst-ob3d.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/generic/pst-ob3d/pst-ob3d.tex new/tex/generic/pst-ob3d/pst-ob3d.tex
--- old/tex/generic/pst-ob3d/pst-ob3d.tex 2007-10-28 00:41:30.000000000 +0200
+++ new/tex/generic/pst-ob3d/pst-ob3d.tex 2020-03-24 21:50:01.000000000 +0100
@@ -26,7 +26,7 @@
%% Denis Girou (CNRS/IDRIS - France)
%% Herbert Voss
%%
-%% August 22, 2007
+%% Mar 24, 2020
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
@@ -36,15 +36,15 @@
%% `pst-ob3d' is a PSTricks package to draw basic three dimensional
%% objects with various customizations.
%%
-\def\fileversion{0.21}
-\def\filedate{2007/08/22}
+\def\fileversion{0.22}
+\def\filedate{2020/03/24}
\message{`Pst-Objects3d' v\fileversion, \filedate\space (DG,hv)}
\csname PstObjectsThreeDLoaded\endcsname
\let\PstObjectsThreeDLoaded\endinput
-\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
+\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi
+\ifx\PSTricksLoaded\endinput\else \input pstricks.tex\fi
\ifx\PSTthreeDLoaded\endinput\else\input pst-3d.tex\fi
-\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey \fi
-\input random.tex
+\ifx\PSTtoolsLoaded\endinput\else \input pst-tools \fi
\edef\PstAtCode{\the\catcode`\@}
\catcode`\@=11\relax
\pst@addfams{pst-ob3d}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/pst-ob3d/pst-ob3d.sty new/tex/latex/pst-ob3d/pst-ob3d.sty
--- old/tex/latex/pst-ob3d/pst-ob3d.sty 2007-10-28 00:41:30.000000000 +0200
+++ new/tex/latex/pst-ob3d/pst-ob3d.sty 2020-03-24 21:50:01.000000000 +0100
@@ -26,7 +26,7 @@
%% Denis Girou (CNRS/IDRIS - France)
%% Herbert Voss
%%
-%% August 22, 2007
+%% Mar 24, 2020
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/pst-ob3d.tlpobj new/tlpkg/tlpobj/pst-ob3d.tlpobj
--- old/tlpkg/tlpobj/pst-ob3d.tlpobj 2019-02-28 04:02:14.000000000 +0100
+++ new/tlpkg/tlpobj/pst-ob3d.tlpobj 2020-03-25 16:13:16.000000000 +0100
@@ -1,6 +1,6 @@
name pst-ob3d
category Package
-revision 15878
+revision 54514
shortdesc Three dimensional objects using PSTricks
relocated 1
longdesc The package uses PSTricks to provide basic three-dimensional
@@ -11,7 +11,6 @@
RELOC/tex/generic/pst-ob3d/pst-ob3d.tex
RELOC/tex/latex/pst-ob3d/pst-ob3d.sty
catalogue-ctan /graphics/pstricks/contrib/pst-ob3d
-catalogue-date 2018-09-15 12:55:45 +0200
catalogue-license lppl
-catalogue-topics graphics-3d pstricks
-catalogue-version 0.21
+catalogue-topics graphics graphics-3d pstricks
+catalogue-version 0.22