Hello community,
here is the log from the commit of package texlive-specs-f for openSUSE:Factory checked in at 2017-06-25 19:21:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/texlive-specs-f (Old)
and /work/SRC/openSUSE:Factory/.texlive-specs-f.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "texlive-specs-f"
Sun Jun 25 19:21:39 2017 rev:27 rq:504796 version:unknown
Changes:
--------
--- /work/SRC/openSUSE:Factory/texlive-specs-f/texlive-specs-f.changes 2017-06-08 14:54:25.983594375 +0200
+++ /work/SRC/openSUSE:Factory/.texlive-specs-f.new/texlive-specs-f.changes 2017-06-25 19:24:35.375448780 +0200
@@ -1,0 +2,42 @@
+Mon Jun 19 13:31:54 UTC 2017 - werner@suse.de
+
+- Fix texlive-pdftex-def dependency as now texlive-graphics-def does
+ provide pdftex.def
+- Fix texlive-rotating dependency as now texlive-graphics does
+ provide rotating.sty
+
+-------------------------------------------------------------------
+Fri Jun 16 12:14:49 UTC 2017 - werner@suse.de
+
+- Notive: Some patches have been moved
+ * bbold_bbold11.dif from texlive-specs-b to texlive-specs-c
+ * context_fourier-map.dif from texlive-specs-e to texlive-specs-f
+ * dvips_config.dif from texlive-specs-g to texlive-specs-h
+ * jadetex_ini.dif from texlive-specs-l to texlive-specs-m
+ * texdoc_cnf.dif from texlive-specs-v to texlive-specs-w
+ * texdraw_info.dif from texlive-specs-v to texlive-specs-w
+ this entry exists only to silent the auto factory bot
+
+-------------------------------------------------------------------
+Tue Jun 13 10:38:52 UTC 2017 - werner@suse.de
+
+- Final TeXLive 2017 20170520
+- Remove patch fontspec_emph.dif as now upstream
+- Update patches
+ * kpathsea_cnf.dif
+ * latex2man_tmphandling.dif
+ * latexdiff_perl.dif
+ * latexpand_perl.dif
+ * luaotfload_varfonts.dif
+ * luatex_cnf.dif
+ * musixtex_various.dif
+ * tetex_scripts.dif
+ * tex4ht_env.dif
+ * texconfig_scripts.dif
+
+-------------------------------------------------------------------
+Thu Jun 1 12:29:31 UTC 2017 - werner@suse.de
+
+- Update to TeXLive 2017 20170520 pretest
+
+-------------------------------------------------------------------
Old:
----
context-lilypond.doc.tar.xz
context-lilypond.tar.xz
datatool.doc.tar.xz
datatool.tar.xz
dateiliste.doc.tar.xz
dateiliste.tar.xz
datenumber.doc.tar.xz
datenumber.tar.xz
datetime.doc.tar.xz
datetime.tar.xz
datetime2-bahasai.doc.tar.xz
datetime2-bahasai.tar.xz
datetime2-basque.doc.tar.xz
datetime2-basque.tar.xz
datetime2-breton.doc.tar.xz
datetime2-breton.tar.xz
datetime2-bulgarian.doc.tar.xz
datetime2-bulgarian.tar.xz
datetime2-catalan.doc.tar.xz
datetime2-catalan.tar.xz
datetime2-croatian.doc.tar.xz
datetime2-croatian.tar.xz
datetime2-czech.doc.tar.xz
datetime2-czech.tar.xz
datetime2-danish.doc.tar.xz
datetime2-danish.tar.xz
datetime2-dutch.doc.tar.xz
datetime2-dutch.tar.xz
datetime2-en-fulltext.doc.tar.xz
datetime2-en-fulltext.tar.xz
datetime2-english.doc.tar.xz
datetime2-english.tar.xz
datetime2-esperanto.doc.tar.xz
datetime2-esperanto.tar.xz
datetime2-estonian.doc.tar.xz
datetime2-estonian.tar.xz
datetime2-finnish.doc.tar.xz
datetime2-finnish.tar.xz
datetime2-french.doc.tar.xz
datetime2-french.tar.xz
datetime2-galician.doc.tar.xz
datetime2-galician.tar.xz
datetime2-german.doc.tar.xz
datetime2-german.tar.xz
datetime2-greek.doc.tar.xz
datetime2-greek.tar.xz
datetime2-hebrew.doc.tar.xz
datetime2-hebrew.tar.xz
datetime2-icelandic.doc.tar.xz
datetime2-icelandic.tar.xz
datetime2-irish.doc.tar.xz
datetime2-irish.tar.xz
datetime2-it-fulltext.doc.tar.xz
datetime2-it-fulltext.tar.xz
datetime2-italian.doc.tar.xz
datetime2-italian.tar.xz
datetime2-latin.doc.tar.xz
datetime2-latin.tar.xz
datetime2-lsorbian.doc.tar.xz
datetime2-lsorbian.tar.xz
datetime2.doc.tar.xz
datetime2.tar.xz
New:
----
concmath-fonts.doc.tar.xz
concmath-fonts.tar.xz
concprog.doc.tar.xz
concprog.tar.xz
concrete.doc.tar.xz
concrete.tar.xz
confproc.doc.tar.xz
confproc.tar.xz
constants.doc.tar.xz
constants.tar.xz
conteq.doc.tar.xz
conteq.tar.xz
context-account.doc.tar.xz
context-account.tar.xz
context-algorithmic.tar.xz
context-animation.doc.tar.xz
context-animation.tar.xz
context-annotation.doc.tar.xz
context-annotation.tar.xz
context-bnf.doc.tar.xz
context-bnf.tar.xz
context-chromato.doc.tar.xz
context-chromato.tar.xz
context-cmscbf.doc.tar.xz
context-cmscbf.tar.xz
context-cmttbf.doc.tar.xz
context-cmttbf.tar.xz
context-construction-plan.doc.tar.xz
context-construction-plan.tar.xz
context-cyrillicnumbers.doc.tar.xz
context-cyrillicnumbers.tar.xz
context-degrade.doc.tar.xz
context-degrade.tar.xz
context-fancybreak.doc.tar.xz
context-fancybreak.tar.xz
context-filter.doc.tar.xz
context-filter.tar.xz
context-french.doc.tar.xz
context-french.tar.xz
context-fullpage.doc.tar.xz
context-fullpage.tar.xz
context-gantt.doc.tar.xz
context-gantt.tar.xz
context-gnuplot.doc.tar.xz
context-gnuplot.tar.xz
context-inifile.doc.tar.xz
context-inifile.tar.xz
context-layout.doc.tar.xz
context-layout.tar.xz
context-letter.doc.tar.xz
context-letter.tar.xz
context.doc.tar.xz
context.tar.xz
context_fourier-map.dif
conv-xkv.doc.tar.xz
conv-xkv.tar.xz
cooking-units.doc.tar.xz
cooking-units.tar.xz
cormorantgaramond.doc.tar.xz
cormorantgaramond.tar.xz
correctmathalign.doc.tar.xz
correctmathalign.tar.xz
cquthesis.doc.tar.xz
cquthesis.tar.xz
css-colors.doc.tar.xz
css-colors.tar.xz
cstypo.doc.tar.xz
cstypo.tar.xz
currency.doc.tar.xz
currency.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ texlive-specs-f.spec ++++++
++++ 25349 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/texlive-specs-f/texlive-specs-f.spec
++++ and /work/SRC/openSUSE:Factory/.texlive-specs-f.new/texlive-specs-f.spec
++++++ context-lilypond.doc.tar.xz -> context-bnf.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/context/third/bnf/NEWS new/doc/context/third/bnf/NEWS
--- old/doc/context/third/bnf/NEWS 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/context/third/bnf/NEWS 2016-11-25 19:27:21.000000000 +0100
@@ -0,0 +1,28 @@
+
+
+ BNF Module News
+
+
+
+VERSION 0.3
+
+ Nothing more than a clean-up of the project tree. Although the autotools
+ setup was working OK it was more confusing than helpful. People tend to
+ install these kinds of things in a much more ad hoc manner anyway.
+
+
+
+VERSION 0.2
+
+
+ Total rewrite of the logic. Much easier to specify grammars, as the need for
+ commas and full-stops has been lifted. Furthermore, there is now an
+ alternative way of specifying non-terminals, using '-pairs instead. The
+ output is a lot nicer now as well, albeit not as compact as before.
+
+
+
+VERSION 0.1
+
+
+ Initial release, nothing much to report here.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/context/third/bnf/README new/doc/context/third/bnf/README
--- old/doc/context/third/bnf/README 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/context/third/bnf/README 2016-11-25 19:27:21.000000000 +0100
@@ -0,0 +1,39 @@
+
+
+ BNF Module README
+
+
+INTRODUCTION
+
+
+ The t-bnf module implements a way to easily write BNF grammars in CONTEXT.
+ Let's look at an example BNF grammar in a document:
+
+ \starttext
+
+ Here's a \BNF\ grammar. Enjoy.
+
+ \placebnfgrammar
+ [here]
+ [bnf:test]
+ {A test of the \BNF\ module}
+ {\startbnfgrammar[]
+ <S>: a<S>b
+ <S>: $\epsilon$
+ \stopbnfgrammar}
+
+ Which will match the language $L = \{\,a^nb^n \mid n \geq 0\,\}$.
+
+ \stoptext
+
+ You may try to generate module documenation embedded in t-bnf.tex with texexec
+ as well:
+
+ % texexec --interface=en --module --pdf t-bnf.tex
+
+ If you have any issues with creating the documentation this may be a result
+ of lacking the proper language format. You can look up the proper
+ information for generating these formats in minstall.pdf at PRAGMA-ADEs site
+ (http://www.pragma-ade.com/).
+
+ Enjoy!
Binary files old/doc/context/third/bnf/t-bnf.pdf and new/doc/context/third/bnf/t-bnf.pdf differ
Binary files old/doc/context/third/lilypond/demo.pdf and new/doc/context/third/lilypond/demo.pdf differ
Binary files old/doc/context/third/lilypond/t-lilypond.pdf and new/doc/context/third/lilypond/t-lilypond.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/context-bnf.doc.tlpobj new/tlpkg/tlpobj/context-bnf.doc.tlpobj
--- old/tlpkg/tlpobj/context-bnf.doc.tlpobj 1970-01-01 01:00:00.000000000 +0100
+++ new/tlpkg/tlpobj/context-bnf.doc.tlpobj 2017-04-14 17:36:59.000000000 +0200
@@ -0,0 +1,9 @@
+name context-bnf.doc
+category ConTeXt
+revision 23167
+shortdesc doc files of context-bnf
+relocated 1
+docfiles size=71
+ RELOC/doc/context/third/bnf/NEWS
+ RELOC/doc/context/third/bnf/README
+ RELOC/doc/context/third/bnf/t-bnf.pdf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/context-lilypond.doc.tlpobj new/tlpkg/tlpobj/context-lilypond.doc.tlpobj
--- old/tlpkg/tlpobj/context-lilypond.doc.tlpobj 2016-04-14 18:54:15.000000000 +0200
+++ new/tlpkg/tlpobj/context-lilypond.doc.tlpobj 1970-01-01 01:00:00.000000000 +0100
@@ -1,8 +0,0 @@
-name context-lilypond.doc
-category ConTeXt
-revision 23167
-shortdesc doc files of context-lilypond
-relocated 1
-docfiles size=50
- RELOC/doc/context/third/lilypond/demo.pdf
- RELOC/doc/context/third/lilypond/t-lilypond.pdf
++++++ context-lilypond.doc.tar.xz -> context-bnf.tar.xz ++++++
Binary files old/doc/context/third/lilypond/demo.pdf and new/doc/context/third/lilypond/demo.pdf differ
Binary files old/doc/context/third/lilypond/t-lilypond.pdf and new/doc/context/third/lilypond/t-lilypond.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/context/third/bnf/t-bnf.tex new/tex/context/third/bnf/t-bnf.tex
--- old/tex/context/third/bnf/t-bnf.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/tex/context/third/bnf/t-bnf.tex 2016-11-25 19:33:30.000000000 +0100
@@ -0,0 +1,195 @@
+%D \module
+%D [ file=t-bnf,
+%D version=2004.6.23,
+%D title=\CONTEXT\ BNF Grammar Module,
+%D subtitle=Grammars,
+%D author={Nikolai Weibull},
+%D date=\currentdate,
+%D copyright={Nikolai Weibull}]
+%C
+%C This module is NOT part of the \CONTEXT\ macro||package.
+%C This module is free software; you can redistribute it and/or modify
+%C it under the terms of the GNU General Public License as published by
+%C the Free Software Foundation; either version 2 of the License, or
+%C (at your option) any later version.
+%C
+%C This module is distributed in the hope that it will be useful,
+%C but WITHOUT ANY WARRANTY; without even the implied warranty of
+%C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%C GNU General Public License for more details.
+%C
+%C You should have received a copy of the GNU General Public License
+%C along with this program; if not, write to the Free Software
+%C Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+\writestatus{loading}{BNF Macros / Initialization}
+
+\unprotect
+
+%M \usemodule[bnf]
+%D We define a new system variable for our settings:
+
+\definesystemvariable{bnf}
+
+%D We need some constants for the multi||lingual interface,
+
+\startconstants english dutch
+ terminalstart: terminalstart terminalstart
+ terminalstop: terminalstop terminalstop
+ nonterminalstart: nonterminalstart nonterminalstart
+ nonterminalstop: nonterminalstop nonterminalstop
+ is: is worden
+\stopconstants
+
+%D and while we're at it, lets define some variables.
+
+\startvariables english dutch
+ bnfgrammar: bnfgrammar bnfspraakleer
+ bnfgrammars: bnfgrammars bnfspraakleer
+\stopvariables
+
+%D Finally, we want the commands to be multi||lingually accessible, so we set
+%D that up as well:
+
+\startcommands english dutch
+ setupbnfgrammar: setupbnfgrammar stelbnfspraakleer
+ startbnfgrammar: startbnfgrammar startbnfspraakleer
+ stopbnfgrammar: stopbnfgrammar startbnfspraakleer
+\stopcommands
+
+%D \macros
+%D {startbnfgrammar, stopbnfgrammar}
+%D
+%D Now to the interesting parts, those that are actually useful to the outside
+%D world. First we have the \type{\startbnfgrammar} and \type{\stopbnfgrammar}
+%D pairs, which are of course used to delimit \BNF\ grammars. We would like to
+%D define \type{\startbnfgrammar} as \type{\def\startbnfgrammar[#1]}, but a bug
+%D in \CONTEXT\ prevents us from doing this, as the first character in the
+%D grammar may be active, for example \type{<}, but while checking for the
+%D presence of \type{[}, it gets ruined. A way around it is of course to
+%D require that the user pass an empty \type{[]} pair, and we will use this
+%D method at the moment.
+
+\def\complexstartbnfgrammar[#1]%
+ {\endgraf\nobreak\medskip
+ \begingroup
+ \setupbnfgrammar[#1]%
+ \chardef\bnfsinglequote=`'
+ \defineactivecharacter : {\@@bnfis}
+ \defineactivecharacter | {\@@bnfoption}
+ \defineactivecharacter " %
+ {\thinspace\bgroup\@@bnfterminalstart\setupinlineverbatim%
+ \defineactivecharacter " {\@@bnfterminalstop\egroup\thinspace}}
+ \defineactivecharacter ' %
+ {\thinspace\bgroup\@@bnfterminalstart\setupinlineverbatim%
+ \defineactivecharacter ' {\@@bnfterminalstop\egroup\thinspace}}
+ \catcode`<=13
+ \let\par=\bnfgrammarline
+ \obeylines}
+
+\def\stopbnfgrammar{\medbreak\checknextindentation[\@@bnfindentnext]}
+
+\definecomplexorsimpleempty\startbnfgrammar
+
+%D \macros
+%D {<>,bnfgrammarrule}
+%D
+%D We need a couple more macros to deal with the interior of a \BNF\ grammar.
+%D \type{\<>} is used for non||terminals, and \type{\bnfgrammarrule} is used
+%D later on in \type{\bnfgrammarswitch} for continuing a line.
+
+\def\<#1>{\leavevmode\hbox{\@@bnfnonterminalstart#1\/\@@bnfnonterminalstop}}
+
+\bgroup
+ \catcode`<=13
+ \global\let<=\<
+ \gdef\bnfgrammarrule<#1>{\endgraf\indent\<#1>}
+\egroup
+
+%D \macros
+%D {bnfgrammarline, bnfgrammarswitch, bnfgrammarcont}
+%D
+%D These macros deal with the ending of a line in a grammar.
+%D \type{\bnfgrammarline} is called whenever a new line begins, and invokes
+%D \type{\bnfgrammarswitch} to determine what to do next. If the next token is
+%D \type{\<}, we will call upon \type{\bnfgrammarrule} to deal with the new
+%D rule. If it is \type{\stopbnfgrammar}, we end the top||level group, and let
+%D it process \type{\stopbnfgrammar} afterwards. Otherwise we invoke
+%D \type{\bnfgrammarcont}, which will end the line and add some indentation to
+%D the continuing line.
+
+\def\bnfgrammarline{\futurelet\next\bnfgrammarswitch}
+\def\bnfgrammarswitch%
+ {\ifx\next\<
+ \let\next=\bnfgrammarrule
+ \else\ifx\next\stopbnfgrammar
+ \let\next=\endgroup
+ \else
+ \let\next=\bnfgrammarcont
+ \fi\fi
+ \next}
+\def\bnfgrammarcont{\hfil\break\indent\qquad}
+
+%D \macros
+%D {setupbnfgrammar}
+%D
+%D We want to allow our users to change the way the \BNF\ grammars are typeset,
+%D so we define a setup command for them to use.
+%D
+%D It allows you to define the start and stop sequence for terminals and
+%D non||terminals, as well as colons (lhs / rhs separator) and vertical bars
+%D (alternative), and commas. This has been multi||lingualized above, so
+%D choose your language.
+
+\def\dosetupbnfgrammar[#1]%
+ {\getparameters[\??bnf][#1]}
+
+\def\setupbnfgrammar%
+ {\dosingleargument\dosetupbnfgrammar}
+
+\setupbnfgrammar
+ [\c!terminalstart=\tttf,
+ \c!terminalstop=,
+ \c!nonterminalstart=\mathematics{\langle},
+ \c!nonterminalstop=\mathematics{\rangle},
+ \c!is={ \mathematics{\longrightarrow}},
+ \c!option=\mathematics{\vert},
+ \c!indentnext=\v!no]
+
+%D \macros
+%D {BNF}
+%D
+%D We also define a useful abbreviation to be used for header texts and labels.
+
+\logo[BNF]{bnf}
+
+%D And we use it here:
+
+\setupheadtext[\s!en][\v!bnfgrammar=\BNF\ Grammar]
+\setupheadtext[\s!en][\v!bnfgrammars=\BNF\ Grammars]
+\setuplabeltext[\s!en][\v!bnfgrammar=\BNF\ Grammar ]
+
+%D Finally we define a float to be use with \BNF\ grammars, so that we can
+%D finish off with something like this:
+%D
+%D \startbuffer
+%D \placebnfgrammar
+%D [][]
+%D {An example of a placed grammar.}
+%D {\startbnfgrammar[]
+%D <exp>: <num> | <num> "+" <num>
+%D <num>: "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
+%D \stopbnfgrammar}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \getbuffer
+%D
+%D which looks kind of nice.
+
+\definefloat
+ [\v!bnfgrammar]
+ [\v!bnfgrammars]
+
+\protect \endinput
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/context-bnf.tlpobj new/tlpkg/tlpobj/context-bnf.tlpobj
--- old/tlpkg/tlpobj/context-bnf.tlpobj 1970-01-01 01:00:00.000000000 +0100
+++ new/tlpkg/tlpobj/context-bnf.tlpobj 2017-04-14 17:36:59.000000000 +0200
@@ -0,0 +1,19 @@
+name context-bnf
+category ConTeXt
+revision 23167
+shortdesc A BNF module for ConTeXt
+relocated 1
+longdesc The module provides a simple way to write good-looking BNF-
+longdesc style grammars in ConTeXt. Grammars are written using the BNF
+longdesc syntax right in your ConTeXt documents, so there is a clear
+longdesc separation between content and layout. This allows the user to
+longdesc decide exactly how the grammar is to be displayed, while also
+longdesc allowing the gist of the grammar to be understood from simply
+longdesc looking at the source ConTeXt document.
+depend context
+runfiles size=2
+ RELOC/tex/context/third/bnf/t-bnf.tex
+catalogue-ctan /macros/context/contrib/context-bnf
+catalogue-date 2016-06-24 19:18:15 +0200
+catalogue-license gpl
+catalogue-topics formal-spec
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/context-lilypond.doc.tlpobj new/tlpkg/tlpobj/context-lilypond.doc.tlpobj
--- old/tlpkg/tlpobj/context-lilypond.doc.tlpobj 2016-04-14 18:54:15.000000000 +0200
+++ new/tlpkg/tlpobj/context-lilypond.doc.tlpobj 1970-01-01 01:00:00.000000000 +0100
@@ -1,8 +0,0 @@
-name context-lilypond.doc
-category ConTeXt
-revision 23167
-shortdesc doc files of context-lilypond
-relocated 1
-docfiles size=50
- RELOC/doc/context/third/lilypond/demo.pdf
- RELOC/doc/context/third/lilypond/t-lilypond.pdf
++++++ context-lettrine.doc.tar.xz ++++++
++++++ context-lettrine.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/context-lettrine.tlpobj new/tlpkg/tlpobj/context-lettrine.tlpobj
--- old/tlpkg/tlpobj/context-lettrine.tlpobj 2016-04-14 18:54:15.000000000 +0200
+++ new/tlpkg/tlpobj/context-lettrine.tlpobj 2017-04-14 17:37:00.000000000 +0200
@@ -9,6 +9,6 @@
RELOC/tex/context/interface/third/lettrine.xml
RELOC/tex/context/third/lettrine/t-lettrine.tex
catalogue-ctan /macros/context/contrib/context-lettrine
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license pd
catalogue-topics lettrine
++++++ context-mathsets.doc.tar.xz ++++++
++++++ context-mathsets.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/context-mathsets.tlpobj new/tlpkg/tlpobj/context-mathsets.tlpobj
--- old/tlpkg/tlpobj/context-mathsets.tlpobj 2016-04-14 18:54:15.000000000 +0200
+++ new/tlpkg/tlpobj/context-mathsets.tlpobj 2017-04-14 17:37:01.000000000 +0200
@@ -11,6 +11,6 @@
RELOC/tex/context/interface/third/t-mathsets.xml
RELOC/tex/context/third/mathsets/t-mathsets.tex
catalogue-ctan /macros/context/contrib/context-mathsets
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license other-free
catalogue-topics maths
++++++ context-notes-zh-cn.doc.tar.xz ++++++
++++++ context-rst.doc.tar.xz ++++++
++++++ context-rst.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/context-rst.tlpobj new/tlpkg/tlpobj/context-rst.tlpobj
--- old/tlpkg/tlpobj/context-rst.tlpobj 2016-04-14 18:54:16.000000000 +0200
+++ new/tlpkg/tlpobj/context-rst.tlpobj 2017-04-14 17:37:01.000000000 +0200
@@ -6,7 +6,7 @@
longdesc The package provides a converter and module for typesetting
longdesc reStructuredText with ConTeXt. The module uses several lua
longdesc scripts in doing its work. Documentation is supplied in rst,
-longdesc which seems to be readable as text, but...
+longdesc which seems to be readable as text, but ....
depend context
runfiles size=42
RELOC/scripts/context/lua/third/rst/mtx-t-rst.lua
@@ -18,7 +18,7 @@
RELOC/tex/context/third/rst/rst_setups.lua
RELOC/tex/context/third/rst/t-rst.mkiv
catalogue-ctan /macros/context/contrib/context-rst
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license other-free
catalogue-topics foreign-import
catalogue-version 0.6c
++++++ context-ruby.doc.tar.xz ++++++
++++++ context-ruby.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/context-ruby.tlpobj new/tlpkg/tlpobj/context-ruby.tlpobj
--- old/tlpkg/tlpobj/context-ruby.tlpobj 2016-04-14 18:54:16.000000000 +0200
+++ new/tlpkg/tlpobj/context-ruby.tlpobj 2017-04-14 17:37:01.000000000 +0200
@@ -14,6 +14,6 @@
RELOC/tex/context/third/ruby/t-ruby.mkiv
RELOC/tex/context/third/ruby/t-ruby.mkvi
catalogue-ctan /macros/context/contrib/context-ruby
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license pd
catalogue-topics notes
++++++ context-simplefonts.doc.tar.xz ++++++
++++++ context-simplefonts.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/context-simplefonts.tlpobj new/tlpkg/tlpobj/context-simplefonts.tlpobj
--- old/tlpkg/tlpobj/context-simplefonts.tlpobj 2016-04-14 18:54:16.000000000 +0200
+++ new/tlpkg/tlpobj/context-simplefonts.tlpobj 2017-04-14 17:37:01.000000000 +0200
@@ -11,6 +11,6 @@
RELOC/tex/context/third/simplefonts/t-simplefonts.mkii
RELOC/tex/context/third/simplefonts/t-simplefonts.mkiv
catalogue-ctan /macros/context/contrib/context-simplefonts
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license gpl
catalogue-topics font-supp context
++++++ context-simpleslides.doc.tar.xz ++++++
++++++ context-simpleslides.tar.xz ++++++
++++++ context-title.doc.tar.xz ++++++
++++++ context-title.tar.xz ++++++
++++++ context-transliterator.doc.tar.xz ++++++
++++++ context-transliterator.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/context-transliterator.tlpobj new/tlpkg/tlpobj/context-transliterator.tlpobj
--- old/tlpkg/tlpobj/context-transliterator.tlpobj 2016-04-14 18:54:19.000000000 +0200
+++ new/tlpkg/tlpobj/context-transliterator.tlpobj 2017-04-14 17:37:02.000000000 +0200
@@ -32,6 +32,6 @@
RELOC/tex/context/third/transliterator/transliterator.run
RELOC/tex/context/third/transliterator/transliterator.tuc
catalogue-ctan /macros/context/contrib/context-transliterator
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license bsd
catalogue-topics enc-juggle
++++++ context-typearea.doc.tar.xz ++++++
++++++ context-typearea.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/context-typearea.tlpobj new/tlpkg/tlpobj/context-typearea.tlpobj
--- old/tlpkg/tlpobj/context-typearea.tlpobj 2016-04-14 18:54:20.000000000 +0200
+++ new/tlpkg/tlpobj/context-typearea.tlpobj 2017-04-14 17:37:02.000000000 +0200
@@ -9,6 +9,6 @@
runfiles size=1
RELOC/tex/context/third/typearea/t-typearea.tex
catalogue-ctan /macros/context/contrib/context-typearea
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license gpl
catalogue-topics geometry context
++++++ context-typescripts.doc.tar.xz ++++++
++++++ context-typescripts.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/context-typescripts.tlpobj new/tlpkg/tlpobj/context-typescripts.tlpobj
--- old/tlpkg/tlpobj/context-typescripts.tlpobj 2016-04-14 18:54:20.000000000 +0200
+++ new/tlpkg/tlpobj/context-typescripts.tlpobj 2017-04-14 17:37:02.000000000 +0200
@@ -75,6 +75,6 @@
RELOC/tex/context/third/typescripts/type-vollkorn.mkii
RELOC/tex/context/third/typescripts/type-vollkorn.mkiv
catalogue-ctan /macros/context/contrib/context-typescripts
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license gpl2
catalogue-topics font-use context
++++++ context-vim.doc.tar.xz ++++++
++++++ context-vim.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/context-vim.tlpobj new/tlpkg/tlpobj/context-vim.tlpobj
--- old/tlpkg/tlpobj/context-vim.tlpobj 2016-04-14 18:54:20.000000000 +0200
+++ new/tlpkg/tlpobj/context-vim.tlpobj 2017-04-14 17:37:03.000000000 +0200
@@ -22,6 +22,6 @@
RELOC/tex/context/third/vim/t-vim.tex
catalogue-also context-filter
catalogue-ctan /macros/context/contrib/context-vim
-catalogue-date 2015-08-03 06:08:41 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license bsd
catalogue-topics synt-hlt ext-code context
++++++ context-visualcounter.doc.tar.xz ++++++
++++++ context-visualcounter.tar.xz ++++++
++++++ context-lilypond.doc.tar.xz -> context.doc.tar.xz ++++++
/work/SRC/openSUSE:Factory/texlive-specs-f/context-lilypond.doc.tar.xz /work/SRC/openSUSE:Factory/.texlive-specs-f.new/context.doc.tar.xz differ: char 25, line 1
++++++ context-lilypond.doc.tar.xz -> context.tar.xz ++++++
/work/SRC/openSUSE:Factory/texlive-specs-f/context-lilypond.doc.tar.xz /work/SRC/openSUSE:Factory/.texlive-specs-f.new/context.tar.xz differ: char 25, line 1
++++++ context_fourier-map.dif ++++++
--- texmf-dist/fonts/map/pdftex/context/fourier.map
+++ texmf-dist/fonts/map/pdftex/context/fourier.map 2007-05-24 09:05:32.000000000 +0000
@@ -0,0 +1,26 @@
+fourier-alt Fourier-Alternate-Roman http://www.latex-project.org/lppl.txt
+=========================================================================
+
+== PURPOSE ==
+
+This package, initially a collection of Michael Covington's private macros, provides
+numerous minor LaTeX enhancements for linguistics, including multiple accents on the
+same letter, interlinear glosses (word-by-word translations), Discourse Represenation
+Structures, and example numbering.
+
+The package works both with LaTeX 2.09 and LaTeX 2e.
+
+== CONTENTS ==
+
+The package consists of the following files:
+
+* covington.sty: the actual package
+* covington.tex: the documentation
+* README (this file)
+
+== CHANGES ==
+
+* Version 1.4 (2017-05-23):
+
+ - Introduce a new macro \twodias that supersedes the rather odd \twoacc
+ (which is kept for backwards compatibility).
+
+ - Introduce macro \SetDiaOffset for more convenient setting of vertical
+ distance in stacked diacritics.
+
+ - LaTeX 2.09 is no longer officially supported (it might continue to work,
+ but is not tested).
+
+ - Documentation file converted to un*x line endings.
+
+* Version 1.3 (2017-04-05):
+
+ - Gloss variants \xgll and \xglll that work inside macros (such as footnotes)
+ but require explicit gloss line end markers (\xgle).
+
+ - Provide way to globally alter indentation and vertical distance of reflists
+ (new lengths \reflistindent, \reflistparsep and \reflistitemsep).
+
+* Version 1.2 (2016-08-26):
+
+ - New length \examplenumbersep to adjust (increase) the horizontal space
+ between example number and example text.
+
+ - Add some more info about bibliography generation.
+
+* Version 1.1a (2016-07-07):
+
+ - Fix encoding problem in documentation and some typos. No change in functionality.
+
+* Version 1.1 (2016-07-06):
+
+ - The package now uses NFSS font commands if available (fallback for LaTeX 2.09
+ is still provided).
+
+ - Work around clash with classes/packages that define their own example and
+ examples environments (most notably the beamer class) as well as execise
+ environments. The covington package no longer blindly attempts to define
+ these environments. By default, it does not define them if they are already
+ defined (covington's own environments, however, are still available via aliases).
+ By means of a new package option, a redefinition can also be forced.
+
+ - New length \twoaccsep allows for the adjustment of the distance between stacked
+ accents.
+
+ - Update manual.
+
+ - New maintainer: J. Spitzmueller.
+
+ - License has been changed to LPPL (in agreement with M. Covington).
+
+ - Introduce version numbers. Arbitrarily, we start with 1.1.
Binary files old/doc/latex/covington/covington.pdf and new/doc/latex/covington/covington.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/covington/covington.tex new/doc/latex/covington/covington.tex
--- old/doc/latex/covington/covington.tex 2006-01-09 01:49:07.000000000 +0100
+++ new/doc/latex/covington/covington.tex 2017-06-06 23:51:35.000000000 +0200
@@ -1,129 +1,215 @@
-% File: covington.tex (in LaTeX2e)
-% Documentation for covington.sty
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% File covington.tex
+%%
+%% Documentation of covington
+%%
+%% This file is part of the covington LaTeX package
+%%
+%% Original author:
+%% ================
+%% Michael A. Covington
+%% Artificial Intelligence Programs
+%% The University of Georgia
+%% Athens, Georgia 30602-7415 USA
+%% mcovingt@aisun1.ai.uga.edu
+%%
+%% Current maintainer:
+%% ===================
+%% Juergen Spitzmueller
+%%
+%% 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 has the LPPL maintenance status "maintained".
+%%
+%% The Current Maintainer of this work is Juergen Spitzmueller.
+%%
+%% Code repository and issue tracker: https://github.com/jspitz/covington
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\documentclass[english]{article}
+
+\usepackage[libertine]{newtxmath}
+\usepackage[osf]{libertine}
+\usepackage[scaled=0.75]{beramono}
+\usepackage[T1]{fontenc}
+\usepackage[latin9]{inputenc}
-\documentclass{article}
\usepackage{covington}
-\title{\bf Typing Linguistics with {\tt covington.sty}}
-\author{Michael A. Covington \\
- \small Artificial Intelligence Center \\
- \small The University of Georgia \\
- \small Athens, Georgia 30602 \sc u.s.a.\\
- mcovingt@ai.uga.edu\\
- http://www.ai.uga.edu/$\sim$mc}
-\date{2001 March 27}
-\begin{document}
-\maketitle
-{\footnotesize \tableofcontents}
-\typeout{Run LaTeX twice to get a correct table of contents.}
+\usepackage{url}
+\usepackage[bookmarks=true,
+ bookmarksnumbered=false,
+ bookmarksopen=false,
+ breaklinks=false,
+ pdfborder={0 0 0},
+ backref=false,
+ colorlinks=false
+]{hyperref}
+\hypersetup{%
+ pdftitle={The covington manual},
+ pdfauthor={J�rgen Spitzm�ller},
+ pdfkeywords={latex,linguistics}
+}
-\section*{New in This Version}
-\begin{itemize}
-\item It is no longer necessary to type \verb"\it" to get proper italic type in feature structures.
-\item Instructions have been rewritten with \LaTeXe\ users in mind.
-\end{itemize}
+\usepackage{microtype}
-\section*{New in Preceding Versions}
-\begin{itemize}
-\item Multiple accents on a single letter (e.g., \emph{\acm{a}}) are supported.
-\item This package is now called {\tt covington} (with the o)
-and is compatible with \LaTeXe\ and NFSS as well as \LaTeX\ 2.09.
-\item The vertical placement of labeled feature structures has
-been changed
-so that the category labels line up regardless of the size of
-the structures.
-\end{itemize}
-
-\section*{Introduction}
-This file, {\tt covington.tex}, is the documentation for the
-March 2001 version of {\tt covington.sty}, which is a \LaTeX\ style
-option for typing many of the special notations common in linguistics.
-
-{\footnotesize
-In em\TeX\ under MS-DOS, {\tt covington.sty} is called {\tt covingto.sty}.
-The missing $n$ has no effect.}
-
-To use {\tt covington.sty}, you should have a copy of it in either your
-current directory or the directory where \LaTeX\ styles are kept on your
-system.
-
-Then, under \LaTeXe,
-include the command
-\verb"\usepackage{covington}"
-after your \verb"\documentclass" command.
-
-{\footnotesize
-In \LaTeX\ 2.09,
-include {\tt covington} among the optional parameters of
-\verb"\documentstyle", like this: \hfill\\
-{\tt
-\verb"\documentstyle[12pt,"\underline{covington}\verb"]{article}"
-}\hfill\\
-Note the spelling {\tt covington} (9 letters).
-}
+% Tweak the TOC (make it more compact)
+\usepackage{tocloft}
+\setlength{\cftbeforesecskip}{0pt}
+\renewcommand{\cfttoctitlefont}{\normalsize\bfseries}
+\renewcommand{\cftsecfont}{\footnotesize}
+\renewcommand{\cftsecpagefont}{\footnotesize}
+
+\usepackage{babel}
+
+\usepackage{listings}
+\lstset{language={[LaTeX]TeX},
+ basicstyle={\small\ttfamily},
+ frame=single}
+
+% markup
+\newcommand*\jmacro[1]{\textbf{\texttt{#1}}}
+\newcommand*\jenv[1]{\textbf{\texttt{#1}}}
+\newcommand*\jcsmacro[1]{\jmacro{\textbackslash{#1}}}
+\newcommand*\joption[1]{\textbf{\texttt{#1}}}
+\newcommand*\jfmacro[1]{\texttt{#1}}
+\newcommand*\jfenv[1]{\texttt{#1}}
+\newcommand*\jfcsmacro[1]{\jfmacro{\textbackslash{#1}}}
+
+% Strings
+\newcommand*{\cvt}{\textsf{covington}}
+
+%
+% Titling
+%
+\def\pversion{Version 1.4}
+\def\pdate{May 23, 2017}
+
+\title{\textbf{The \cvt\ Package\\Macros for Linguistics}}
+\author{Michael A. Covington \and J\"urgen Spitzm\"uller\thanks{Current maintainer.
+ Please report issues via \protect\url{https://github.com/jspitz/covington}}}
+
+\date{\pversion, \pdate}
-In what follows I presume that you know how to use \LaTeX\ and have
-access to the \LaTeX\ manual. Note that {\tt covington.sty} does not
+\begin{document}
+
+\maketitle
+
+\begin{abstract}
+\noindent This package, initially a collection of Michael A. Covington's private macros, provides
+numerous minor \LaTeX\ enhancements for linguistics, including multiple diacritics on the
+same letter, interlinear glosses (word-by-word translations), Discourse Representation Structures,
+and example numbering.
+\end{abstract}
+
+\tableofcontents
+
+
+\section{Introduction}
+
+This file is the documentation for \MakeLowercase{\pversion}
+of \cvt\ (\pdate), which is a \LaTeX\ package providing macros
+for typing some special notations common in linguistics.%
+\footnote{The package has a long history. It started off as a collection of private macros back in the
+\LaTeX\ 2.09 days and was initially released as \texttt{covingtn.sty} (following the old 8.3 \textsc{fat}
+file name limit). In em\TeX\ under \textsc{ms-dos}, the file was distributed as \texttt{covingto.sty}.
+Eventually, it has been renamed to \cvt\ and adapted to \LaTeXe. Its \LaTeX\ 2.09 traces
+are however still visible, and the style might actually still work with \LaTeX\ 2.09 (which is however not guaranteed).}
+
+To use \cvt\ with \LaTeXe, load the package as usual by adding the command
+\lstinline"\usepackage{covington}" to your document preamble.
+The package has the following option:
+\begin{description}
+ \item{\joption{force}:} Force the redefinition of environments that have already been
+ defined by other packages or the class.
+
+ This applies to the \jenv{example}, \jenv{examples} and \jenv{exercise} environments,
+ which are by default not touched if they are already defined before \cvt\ is loaded.
+ See sec.~\ref{sec:ex}, \ref{sec:exs} and \ref{sec:exercises} for details.
+\end{description}
+%
+In what follows we presume that you know how to use \LaTeX\ and have
+access to \LaTeX\ manuals. Note that \cvt\ does not
provide any special fonts or character sets. However, it can be used in
combination with other style sheets that do.
-If you are using {\tt covington.sty} and {\tt uga.sty} (UGa thesis style)
-together, you should mention {\tt uga} before {\tt covington}.
+If you are using \cvt\ and \texttt{uga.sty} (UGa thesis style)
+together, you should load \texttt{uga} before \cvt.
-\section{Accents}
+\section{Stacked diacritics}\label{sec:accents}
-\LaTeX\ provides a generous range of accents that can be placed on any
+\LaTeX\ provides a generous range of diacritics that can be placed on or below any
letter, such as:
\begin{flushleft}
\`{x} \'{x} \^{x} \"{x} \~{x} \={x} \H{x} \t{xx} \c{x} \d{x} \b{x}
\end{flushleft}
which are typed, respectively, as:
-\begin{verbatim}
+\begin{lstlisting}
\`{x} \'{x} \^{x} \"{x} \~{x} \={x} \H{x} \t{xx} \c{x} \d{x} \b{x}
-\end{verbatim}
-\LaTeX also provides the foreign characters
+\end{lstlisting}
+\LaTeX\ also provides support for many non-\textsc{ascii} characters, such as%
+\footnote{Please refer to \cite{pakin} for a comprehensive list of special characters and symbols.}:
\begin{flushleft}\obeyspaces
\i \j \ae \AE \oe \OE \aa \AA \o \O \l \L \ss ?` !`
\end{flushleft}
-which are typed as:
-\begin{verbatim}
+via the macros:
+\begin{lstlisting}
\i \j \ae \AE \oe \OE \aa \AA \o \O \l \L \ss ?` !`
-\end{verbatim}
-
-But by itself, \LaTeX\ doesn't give you a convenient way to put two
-accents on the same letter. To fill this gap, {\tt covington.sty} provides
+\end{lstlisting}
+%
+Out of the box, however, \LaTeX\ doesn't give you a convenient way to put \emph{two}
+diacritical marks on the same letter. To fill this gap, \cvt\ provides
the following macros:
\begin{flushleft}
-\verb,\twoacc[...|...], \quad to combine any 2 accents, e.g.,
- \verb.\twoacc[\~|\={a}]. = \twoacc[\~|\={a}]\\[6pt]
-\verb,\acm{...}, \quad for acute over macron, e.g., \verb.\acm{a}. = \acm{a}\\
-\verb,\grm{...}, \quad for grave over macron, e.g., \verb.\grm{a}. = \grm{a}\\
-\verb,\cim{...}, \quad for circumflex over macron, e.g., \verb.\cim{a}. = \cim{a}
-\end{flushleft}
-The first of these is the general case and the latter three are special
-cases that occur often in transcribing Greek. Now you can type
+ \jcsmacro{twodias\{<upper diac.>\}\{<lower diac.>\}\{<char>\}}\\to combine any two diacritics, e.\,g.,
+ \lstinline[moretexcs={twodias}].\twodias{\~}{\=}{a}. = \twodias{\~}{\=}{a}\\[6pt]
+ \jcsmacro{acm\{\ldots\}} \quad for acute over macron, e.\,g., \lstinline[moretexcs={acm}].\acm{a}. = \acm{a}\\
+ \jcsmacro{grm\{\ldots\}} \quad for grave over macron, e.\,g., \lstinline[moretexcs={grm}].\grm{a}. = \grm{a}\\
+ \jcsmacro{cim\{\ldots\}} \quad for circumflex over macron, e.\,g., \lstinline[moretexcs={cim}].\cim{a}. = \cim{a}
+\end{flushleft}
+The first of these is the general case\footnote{%
+ Alternatively, there's also the old syntax \jcsmacro{twoacc[<upper diac.>|<char with lower diacr.>],}
+ e.\,g. \jfcsmacro{twoacc[\textbackslash\textasciitilde|\textbackslash=\{a\}]} to the same effect, which is however discouraged
+ due to its rather odd form.} and the latter three are special
+cases that are often used in Greek transcription. Now you can type
\emph{Koin\acm{e}} with both accents in place.
-Note the peculiar syntax of \verb.\twoacc. --- its arguments are in
-square brackets, not curly brackets, and are separated by \verb.|..
-The first argument is the upper accent (only) and the second argument
-is the letter with the lower accent indicated.
+The vertical distance between the two diacritics can be adjusted via the macro \jcsmacro{SetDiaOffset\{<length>\}}
+which lets you increase or decrease the vertical space that is currently in effect.
+If you'd use \verb"\SetDiaOffset{-0.25ex}", the above examples would come out as
+
+\SetDiaOffset{-.25ex}
+\begin{flushleft}
+ \jcsmacro{twodias\{<upper diac.>\}\{<lower diac.>\}\{<char>\}}\\to combine any two diacritics, e.\,g.,
+ \lstinline[moretexcs={twodias}].\twodias{\~}{\=}{a}. = \twodias{\~}{\=}{a}\\[6pt]
+ \jcsmacro{acm\{\ldots\}} \quad for acute over macron, e.\,g., \lstinline[moretexcs={acm}].\acm{a}. = \acm{a}\\
+ \jcsmacro{grm\{\ldots\}} \quad for grave over macron, e.\,g., \lstinline[moretexcs={grm}].\grm{a}. = \grm{a}\\
+ \jcsmacro{cim\{\ldots\}} \quad for circumflex over macron, e.\,g., \lstinline[moretexcs={cim}].\cim{a}. = \cim{a}
+\end{flushleft}
+with a slightly better matching distance for the font used here.
-Note also that not all accents work in the {\tt tabbing} environment.
-Use {\tt tabular} or see the \LaTeX\ manual for workarounds.
+Note that not all accent macros work in the \jfenv{tabbing} environment.
+Use the \jfenv{Tabbing} package or refer to \cite{pakin} for alternative solutions.
\section{Example numbers}
Linguistics papers often include numbered examples.
-The macro \verb"\exampleno" generates a new example number and can be
+The macro \jcsmacro{exampleno} generates a new example number and can be
used anywhere you want the number to appear. For example, to display a
sentence with a number at the extreme right, do this:
-\begin{verbatim}
+\begin{lstlisting}[moretexcs={exampleno}]
\begin{flushleft}
This is a sentence. \hfill (\exampleno)
\end{flushleft}
-\end{verbatim}
+\end{lstlisting}
Here's what you get:
\begin{flushleft}
This is a sentence. \hfill (\exampleno)
@@ -131,41 +217,56 @@
The example counter is actually the same as \LaTeX's equation counter,
so that if you use equations and numbered examples in the same
paper, you get a single continuous series of numbers. If you want to
-access the number without changing it, use \verb"\theequation".
+access the number without changing it, use \jfcsmacro{theequation}.
-Also, you can use \verb"\label" and \verb"\ref" with example numbers in
-exactly the same way as with equation numbers. See the \LaTeX\ manual for
-details. This applies to the {\tt example} and {\tt examples}
-environments, described next, as well as to \verb"\exampleno" itself.
+Also, you can use \jfcsmacro{label} and \jfcsmacro{ref} with example numbers in
+exactly the same way as with equation numbers. Refer to your \LaTeX\ manual for
+details. This applies to the \jenv{example} and \jenv{examples}
+environments, described next, as well as to \jcsmacro{exampleno} itself.
-\section{The {\tt example} environment}
+\section{The \jenv{example} environment}\label{sec:ex}
-The {\tt example} environment displays a single example
+The \jenv{example} environment (alias \jenv{covexample}) displays a single example
with a generated example number to the left of it.
If you type
-\begin{verbatim}
+\begin{lstlisting}
\begin{example}
This is a sentence.
\end{example}
-\end{verbatim}
+\end{lstlisting}
+or
+\begin{lstlisting}
+\begin{covexample}
+This is a sentence.
+\end{covexample}
+\end{lstlisting}
you get:
\begin{example}
This is a sentence.
\end{example}
-The {\tt example} environment is a lot like {\tt flushleft}. The example
-can be of any length; it can consist of many lines (separated by \verb"\\"),
-or even whole paragraphs.
-
-One way to number sub--examples is to use {\tt itemize} or {\tt
-enumerate} within an example, like this:
-\begin{verbatim}
+The example can be of any length; it can consist of many lines (separated by \verb"\\"), or even whole paragraphs.
+
+If you need more space between the example number and the text, you can increase it by means of
+the length \jcsmacro{examplenumbersep} (which is preset to \texttt{0pt}). Doing \lstinline|\setlength\examplenumbersep{1em}|,
+for instance, will increase the space by 1\,em.
+
+Note that, as of version 1.1, \cvt\ checks if there is already an \jenv{example} environment defined
+(e.\,g., by the class). If so, \cvt\ does not
+define its own one. However, there is always the alias environment \jenv{covexample} which can be used in order to
+produce \texttt{covington's} example. If you use the package option \joption{force}, \cvt\ will override
+existing \jenv{example} environments. In any case, the package will issue a warning if \jenv{example} is already defined
+(this is the case, for instance, if you use \cvt\ with the \texttt{beamer} class).
+
+One way to number sub-examples is to use \jfenv{itemize} or \jfenv{enumerate}
+within an example, like this:
+\begin{lstlisting}
\begin{example}
\begin{itemize}
\item[(a)] This is the first sentence.
\item[(b)] This is the second sentence.
\end{itemize}
\end{example}
-\end{verbatim}
+\end{lstlisting}
This prints as:
\begin{example}
\begin{itemize}
@@ -173,76 +274,100 @@
\item[(b)] This is the second sentence.
\end{itemize}
\end{example}
-However, the {\tt examples} environment, described next, is usually more
+However, the \jenv{examples} environment, described next, is usually more
convenient.
-\section{The {\tt examples} environment}
+\section{The \jenv{examples} environment}\label{sec:exs}
To display a series of examples together, each with its own example
-number, use {\tt examples} instead of {\tt example}. The only
+number, use \jenv{examples} (or \jenv{covexamples}) instead of \jenv{example} or \jenv{covexample}. The only
difference is that there can be more than one example, and each of them
-has to be introduced by \verb"\item", like this:
-\begin{verbatim}
+has to be introduced by \jfcsmacro{item}, like this:
+\begin{lstlisting}
\begin{examples}
\item This is the first sentence.
\item This is the second sentence.
\end{examples}
-\end{verbatim}
+\end{lstlisting}
+or, respectively:
+\begin{lstlisting}
+\begin{covexamples}
+\item This is the first sentence.
+\item This is the second sentence.
+\end{covexamples}
+\end{lstlisting}
This prints as:
\begin{examples}
\item This is the first sentence.
\item This is the second sentence.
\end{examples}
+As for \jenv{example}, \cvt\ checks if there is already an \jenv{examples} environment defined,
+and if this is the case, \cvt\ does not define its own one. The alias environment \jenv{covexamples}
+is always available as a fallback. If you use the package option \joption{force}, \cvt\ will override
+existing \jenv{examples} environments. The package will issue a warning if \jenv{examples} is already defined
+(this is the case, for instance, if you use \cvt\ with the \texttt{beamer} class), telling you
+how it has dealt with the situation.
-\section{Glossing sentences word--by--word}
+\section{Glossing sentences word-by-word}\label{sec:gloss}
-To gloss a sentence is to annotate it word--by--word. Most commonly, a
-sentence in a foreign language is followed by a word--for--word
+To gloss a sentence is to annotate it word-by-word. Most commonly, a
+sentence in a foreign language is followed by a word-for-word
translation (with the words lined up vertically) and then a smooth
translation (not lined up), like this:%
\footnote{The macros for handling glosses are adapted with permission
-from {\tt gloss.tex}, by Marcel R. van der Goot.}
+from \texttt{gloss.tex}, by Marcel R. van der Goot.}
\gll Dit is een Nederlands voorbeeld.
This is a Dutch example.
\glt `This is an example in Dutch.'
\glend
That particular example would be typed as:
-\begin{verbatim}
+\begin{lstlisting}[moretexcs={gll,glt,glend}]
\gll Dit is een Nederlands voorbeeld.
This is a Dutch example.
\glt `This is an example in Dutch.'
\glend
-\end{verbatim}
+\end{lstlisting}
Notice that the words do not have to be typed lining up; instead, \TeX\
counts them. If the words in the two languages do not correspond
-one--to--one, you can use curly brackets to show the intended grouping.
+one-to-one, you can use curly brackets to group words.
For example, to print
\gll Dit is een voorbeeldje in het Nederlands.
This is a {little example} in {} Dutch.
\glt `This is a little example in Dutch.'
\glend
you would type:
-\begin{verbatim}
+\begin{lstlisting}[moretexcs={gll,glt,glend}]
\gll Dit is een voorbeeldje in het Nederlands.
This is a {little example} in {} Dutch.
\glt `This is a little example in Dutch.'
\glend
-\end{verbatim}
-All together, {\tt covington.sty} gives you five macros for dealing with
+\end{lstlisting}
+Note that \cvt\ locally activates the end of line in glosses in order to identify the different lines of the gloss (via category code change). This does not work inside macros (e.\,g., if the gloss is in a footnote). To work around this, a special version of the \jcsmacro{gll} macro is provided that does without the character activation: \jcsmacro{xgll}. This can also be used in macro arguments; however, the end of each gloss line needs to be explicitly specified by the \jcsmacro{xgle} macro in this case. If you want to put the above gloss in a footnote, thus, you would type:
+\begin{lstlisting}[moretexcs={xgll,xgle,glt,glend}]
+\xgll Dit is een voorbeeldje in het Nederlands.\xgle
+ This is a {little example} in {} Dutch.\xgle
+\glt `This is a little example in Dutch.'
+\glend
+\end{lstlisting}
+%
+All together, \cvt\ provides eight macros for dealing with
glosses:
\begin{itemize}
-\item \verb"\gll" introduces two lines of words vertically aligned, and
-activates an environment very similar to {\tt flushleft}.
-\item \verb"\glll" is like \verb"gll" except that it introduces {\em
-three} lines of lined--up words (useful for cited forms, morphology,
+\item \jcsmacro{gll} introduces two lines of words vertically aligned, and
+activates an environment very similar to \jfenv{flushleft}. The two lines are separated by a normal line break (carriage return).
+\item \jcsmacro{glll} is like \jcsmacro{gll} except that it introduces
+\emph{three} lines of lined-up words (useful for cited forms, morphology,
and translation).
-\item \verb"\glt" ends the set of lined--up lines and introduces a line
+\item \jcsmacro{xgll} is similar to \jcsmacro{gll} except that it does not make the line ending active. It thus works inside macros such as footnotes but requires explicit gloss line termination via \jcsmacro{xgle}.
+\item \jcsmacro{xglll} is similar to \jcsmacro{glll} except that it does not make the line ending active. It thus works inside macros such as footnotes but requires explicit gloss line termination via \jcsmacro{xgle}.
+\item \jcsmacro{xgle} is a gloss line ending marker to be used with \jcsmacro{xgll} and \jcsmacro{xglll}.
+\item \jcsmacro{glt} ends the set of lined-up lines and introduces a line
(or more) of translation.
-\item \verb"\gln" is like \verb"\glt" but does not start a new line
+\item \jcsmacro{gln} is like \jcsmacro{glt} but does not start a new line
(useful when no translation follows but you want to put a number on the
right).
-\item \verb"\glend" ends the special {\tt flushleft}--like environment.
+\item \jcsmacro{glend} ends the special \jfenv{flushleft}-like environment.
\end{itemize}
Here are several examples. First, a sentence with three lines aligned,
instead of just two:
@@ -252,13 +377,13 @@
\glt `This is another example.'
\glend
This is typed as:
-\begin{verbatim}
+\begin{lstlisting}[moretexcs={glll,glt,glend}]
\glll Hoc est aliud exemplum.
n.sg.nom 3.sg n.sg.nom n.sg.nom
This is another example.
\glt `This is another example.'
\glend
-\end{verbatim}
+\end{lstlisting}
Next, an example with a gloss but no translation, with an example number
at the right:
\gll Hoc habet numerum.
@@ -266,13 +391,13 @@
\gln \hfill (\exampleno)
\glend
That one was typed as:
-\begin{verbatim}
+\begin{lstlisting}[moretexcs={gll,gln,glend,exampleno}]
\gll Hoc habet numerum.
This has number
\gln \hfill (\exampleno)
\glend
-\end{verbatim}
-Finally we'll put a glossed sentence inside the {\tt example}
+\end{lstlisting}
+Finally we'll put a glossed sentence inside the \texttt{example}
environment, which is a very common way of using it:
\begin{example}
\gll Hoc habet numerum praepositum.
@@ -281,147 +406,185 @@
\glend
\end{example}
This last example was, of course, typed as:
-\begin{verbatim}
+\begin{lstlisting}[moretexcs={gll,glt,glend}]
\begin{example}
\gll Hoc habet numerum praepositum.
This has number preposed
\glt `This one has a number in front of it.'
\glend
\end{example}
-\end{verbatim}
-Notice that every glossed sentence begins with either \verb"\gll" or
-\verb"\glll", then contains either \verb"\glt" or \verb"\gln", and ends
-with \verb"\glend". Layout is critical in the part preceding
-\verb"\glt" or \verb"\gln", and fairly free afterward.
+\end{lstlisting}
+Notice that every glossed sentence begins with either \jcsmacro{gll} or
+\jcsmacro{glll}, then contains either \jcsmacro{glt} or \jcsmacro{gln}, and ends
+with \jcsmacro{glend}. Layout is critical in the part preceding
+\jcsmacro{glt} or \jcsmacro{gln}, and fairly free afterward.
\section{Phrase structure rules}
-To print the phrase structure rule \psr{S}{NP~VP} you can type
-\verb"\psr{S}{NP~VP}", and likewise for other phrase structure rules.
+To print phrase structure rules such as \psr{S}{NP~VP} you can use \texttt{covington's} macro
+\lstinline[moretexcs={psr}]"\psr{<constituent>}{<sub-constituents>}" (for the given example,
+\lstinline[moretexcs={psr}]"\psr{S}{NP~VP}").
\section{Feature structures}
-To print a feature structure such as:
+To print a feature structure such as
\begin{flushleft}
-%\fs{\it case:nom \\ \it person:P}
-\fs{case:nom}
+\fs{case:nom \\ person:P}
\end{flushleft}
you can type:
-\begin{verbatim}
+\begin{lstlisting}[moretexcs={fs}]
\fs{case:nom \\ person:P}
-\end{verbatim}
+\end{lstlisting}
The feature structure can appear anywhere --- in continuous text, in a
-displayed environment such as {\tt flushleft}, or inside a
-phrase--structure rule, or even inside another feature structure.
+displayed environment such as \jfenv{flushleft}, or inside a
+phrase-structure rule, or even inside another feature structure.
To put a category label at the top of the feature structure, like this,
\begin{flushleft}
\lfs{N}{case:nom \\ person:P}
\end{flushleft}
here's what you type:
-\begin{verbatim}
+\begin{lstlisting}[moretexcs={lfs}]
\lfs{N}{case:nom \\ person:P}
-\end{verbatim}
-And here is an example of a PS--rule made of labeled feature structures:
+\end{lstlisting}
+And here is an example of a \textsc{ps}-rule made of labeled feature structures:
\begin{flushleft}
\psr{\lfs{S}{tense:T}}
{\lfs{NP}{case:nom \\ number:N}
\lfs{VP}{tense:T \\ number:N} }
\end{flushleft}
-which was of course typed as:
-\begin{verbatim}
+which was obviously coded as:
+\begin{lstlisting}[moretexcs={lfs,psr}]
\psr{\lfs{S}{tense:T}}
{\lfs{NP}{case:nom \\ number:N}
\lfs{VP}{tense:T \\ number:N} }
-\end{verbatim}
+\end{lstlisting}
-\section{Discourse representation structures}
+\section{Discourse Representation Structures}
-Several macros in {\tt covington.sty} facilitate display of discourse
-repsesentation structures (DRSes) in the box notation originally used by
-Hans Kamp. The simplest is \verb"\drs", which takes two arguments:
-a list of discourse variables joined by \verb"~", and a list of DRS
+Several macros in \cvt\ facilitate display of discourse
+Representation Structures (\textsc{drs}es) in the box notation introduced by
+Hans Kamp. The simplest one is \jcsmacro{drs}, which takes two arguments:
+a list of discourse variables joined by \verb"~", and a list of \textsc{drs}
conditions separated by \verb"\\". Nesting is permitted. Note that the
-\verb"\drs" macro itself does not give you a displayed environment; you
-must use {\tt flushleft} or the like to display the DRS.
+\jcsmacro{drs} macro itself does not give you a displayed environment; you
+must use \jfenv{flushleft} or the like to display the \textsc{drs}.
Here are some examples:
-\begin{verbatim}
-\drs{X}{donkey(X)\\green(X)}
-\end{verbatim}
+
+\begin{minipage}{.5\textwidth}
+\begin{lstlisting}[moretexcs={drs}]
+\begin{flushleft}
+ \drs{X}{donkey(X)\\green(X)}
+\end{flushleft}
+\end{lstlisting}
+\end{minipage}\hfill
+\begin{minipage}{.4\textwidth}
\begin{flushleft}
\drs{X}{donkey(X)\\green(X)}
\end{flushleft}
-\begin{verbatim}
-\drs{X}
-{named(X,`Pedro') \\
-\drs{Y}{donkey(Y)\\owns(X,Y)}~~
- {\large $\Rightarrow$}~
- \drs{~}{feeds(X,Y)}
-}
-\end{verbatim}
+\end{minipage}
+
+\medskip
+
+\begin{minipage}{.5\textwidth}
+\begin{lstlisting}[moretexcs={drs}]
\begin{flushleft}
-\drs{X}
-{named(X,`Pedro') \\
-\drs{Y}{donkey(Y)\\owns(X,Y)}~~
- {\large $\Rightarrow$}~
- \drs{~}{feeds(X,Y)}
-}
+ \drs{X}
+ {named(X,`Pedro') \\
+ \drs{Y}{donkey(Y)\\owns(X,Y)}~~
+ {\large $\Rightarrow$}~
+ \drs{~}{feeds(X,Y)}
+ }
+\end{flushleft}
+\end{lstlisting}
+\end{minipage}\hfill
+\begin{minipage}{.4\textwidth}
+ \begin{flushleft}
+ \drs{X}
+ {named(X,`Pedro') \\
+ \drs{Y}{donkey(Y)\\owns(X,Y)}~~
+ {\large $\Rightarrow$}~
+ \drs{~}{feeds(X,Y)}
+ }
+ \end{flushleft}
+\end{minipage}
+
+\medskip
+
+\noindent To display a sentence above the \textsc{drs}, use \jcsmacro{sdrs}, as in:
+
+\begin{lstlisting}[moretexcs={sdrs}]
+\begin{flushleft}
+ \sdrs{A donkey is green.}{X}{donkey(X)\\green(X)}
+\end{flushleft}
+\end{lstlisting}
+which prints as:
+
+\begin{flushleft}
+ \sdrs{A donkey is green.}{X}{donkey(X)\\green(X)}
\end{flushleft}
-To display a sentence above the DRS, use \verb"\sdrs", like this:
-\begin{verbatim}
-\sdrs{A donkey is green.}{X}{donkey(X)\\green(X)}
-\end{verbatim}
-\begin{flushleft}
-\sdrs{A donkey is green.}{X}{donkey(X)\\green(X)}
-\end{flushleft}
-Some DRS connectives are also provided (normally for forming
-DRSes that are to be nested within other DRSes).
-The macro \verb"\negdrs" forms a DRS preceded by a negation symbol:
-\begin{verbatim}
+
+Some \textsc{drs} connectives are also provided (normally for forming
+\textsc{drs}es that are to be nested within other \textsc{drs}es).
+The macro \jcsmacro{negdrs} forms a \textsc{drs} preceded by a negation symbol:
+\begin{lstlisting}[moretexcs={negdrs}]
\negdrs{X}{donkey(X)\\green(X)}
-\end{verbatim}
+\end{lstlisting}
\begin{flushleft}
\negdrs{X}{donkey(X)\\green(X)}
\end{flushleft}
-Finally, \verb"\ifdrs" forms a pair of DRSes joined by a big arrow,
+Finally, \jcsmacro{ifdrs} forms a pair of \textsc{drs}es joined by a big arrow,
like this:
-\begin{verbatim}
+\begin{lstlisting}[moretexcs={ifdrs}]
\ifdrs{X}{donkey(X)\\hungry(X)}
{~}{feeds(Pedro,X)}
-\end{verbatim}
+\end{lstlisting}
\begin{flushleft}
\ifdrs{X}{donkey(X)\\hungry(X)}
{~}{feeds(Pedro,X)}
\end{flushleft}
-If you have an ``if''--structure appearing among ordinary predicates
-inside a DRS, you may prefer to use \verb"\alifdrs", which is just like
-\verb"\ifdrs" but shifted slightly to the left for better alignment.
+If you have an ``if''-structure appearing among ordinary predicates
+inside a \textsc{drs}, you may prefer to use \jcsmacro{alifdrs}, which is just like
+\jcsmacro{ifdrs} but shifted slightly to the left for better alignment.
-\section{Exercises}
+\section{Exercises}\label{sec:exercises}
-The {\tt exercise} environment generates an exercise numbered according
+The \jenv{exercise} environment (alias \jenv{covexercise}) generates an exercise numbered according
to chapter, section, and subsection (suitable for use in a large book;
-in this example, the subsection number is going to come out as 0).
+in this example, the subsection number is going to come out as 0). Here is an example:
\begin{exercise}[Project]
Prove that the above assertion is true.
\end{exercise}
-This was typed as
-\begin{verbatim}
+This was coded as
+\begin{lstlisting}
\begin{exercise}[Project]
Prove that the above assertion is true.
\end{exercise}
-\end{verbatim}
-and the argument \verb"[Project]" is optional (actually, any word could
-go there).
-
-\section{Reference Lists}
-
-To type an LSA--style hanging--indented reference list, use the {\tt
-reflist} environment. ({\em Note:\/} {\tt reflist} is not presently
-integrated with Bib\TeX\ in any way.) For example,
-\begin{verbatim}
+\end{lstlisting}
+The argument (\verb"[Project]" in the example) is optional.
+
+Note that, as of version 1.1, \cvt\ checks if there is already an \jenv{exercise} environment
+defined (e.\,g., by the class). If so, \cvt\ does not define its own one. However, there is always
+the alias environment \jenv{covexercise} which can be used in order to produce \texttt{covington's} exercise.
+If you use the package option \joption{force}, \cvt\ will override existing \jenv{exercise}
+environments. In any case, the package will issue a warning if \jenv{exercise} is already defined.
+
+\section{Reference Lists}\label{sec:reflists}
+
+To type a simple \textsc{lsa}-style hanging-indented reference list, you can use the \jenv{reflist}
+environment. (\emph{Note:} \jenv{reflist} is not integrated with Bib\TeX\ in any way.%
+\footnote{For Bib\TeX, there are several options: the \textsc{lsa} style, as used in the journal \emph{Language},
+can be obtained by means of the style files \texttt{lsalike.bst}
+(\url{http://www.icsi.berkeley.edu/ftp/pub/speech/jurafsky/lsalike.bst}) or \texttt{language.bst}
+(\url{http://ron.artstein.org/resources/language.bst}); the latter uses \texttt{natbib}.
+The so-called \emph{Unified Style Sheet for Linguistics}, as proposed by the \textsc{cel}x\textsc{j}
+(\emph{Committee of Editors of Linguistics Journals}), which slightly differs from the \textsc{lsa} style,
+is followed by the style file \texttt{unified.bst} (available at \url{http://celxj.org/downloads/unified.bst}).
+A \texttt{biblatex} style file for the unified style is available at
+\url{https://github.com/semprag/biblatex-sp-unified}.}) For example,
+\begin{lstlisting}
\begin{reflist}
Barton, G. Edward; Berwick, Robert C.; and Ristad, Eric Sven. 1987.
Computational complexity and natural language. Cambridge,
@@ -431,9 +594,9 @@
Massachusetts: MIT Press.
Covington, Michael. 1993. Natural language processing for Prolog
-programmers. Englewood Cliffs, New Jersey: Prentice--Hall.
+programmers. Englewood Cliffs, New Jersey: Prentice-Hall.
\end{reflist}
-\end{verbatim}
+\end{lstlisting}
prints as:
\begin{reflist}
Barton, G. Edward; Berwick, Robert C.; and Ristad, Eric Sven. 1987.
@@ -443,9 +606,17 @@
Chomsky, Noam. 1965. Aspects of the theory of syntax. Cambridge,
Massachusetts: MIT Press.
-Covington, Michael A. 1993. Natural--language processing for Prolog
-programmers. Englewood Cliffs, New Jersey: Prentice--Hall.
+Covington, Michael A. 1993. Natural language processing for Prolog
+programmers. Englewood Cliffs, New Jersey: Prentice-Hall.
\end{reflist}
+By default, the references have a hanging indentation of 3\,em. This can
+be globally changed by altering the length \jcsmacro{reflistindent}.
+Doing \lstinline|\setlength\reflistindent{1.5em}|, for instance,
+will shorten the indentation by half. Likewise, the length \jcsmacro{reflistitemsep}
+(6\,pt by default) and \jcsmacro{reflistparsep} (ca. 4\,pt by default) can be adjusted
+to alter the vertical separation (\jfcsmacro{itemsep} and \jfcsmacro{parsep}, for that
+matter) of reference entries.
+
Notice that within the reference list, ``French spacing'' is in effect
--- that is, spaces after periods are no wider than normal spaces. Thus
you do not have to do anything special to avoid excessive space after
@@ -454,31 +625,120 @@
\section{Displayed sentences}
-The macro \verb"\sentence" displays an italicized sentence (it is a
-combination of {\tt flushleft} and \verb"\em"). If you type
-\begin{verbatim}
+The macro \jcsmacro{sentence} displays an italicized sentence (it is a
+combination of \jfenv{flushleft} and \jfmacro{itshape}). If you type
+\begin{lstlisting}[moretexcs={sentence}]
\sentence{This is a sentence.}
-\end{verbatim}
+\end{lstlisting}
you get:
\sentence{This is a sentence.}
\section{Big curly brackets (disjunctions)}
-Last of all, the 2--argument macro \verb"\either" expresses alternatives
-within a sentence or PS--rule:
+Last of all, the two-argument macro \jcsmacro{either} expresses alternatives
+within a sentence or \textsc{ps}-rule:
\begin{flushleft}
-\verb"the \either{big}{large} dog" $=$ the \either{big}{large} dog \\
+\lstinline[moretexcs={either}]"the \either{big}{large} dog" $=$ the \either{big}{large} dog \\
\end{flushleft}
\begin{flushleft}
-\verb"\psr{A}{B~\either{C}{D}~E} " $=$ \psr{A}{B~\either{C}{D}~E}
+\lstinline[moretexcs={either,psr}]"\psr{A}{B~\either{C}{D}~E} " $=$ \psr{A}{B~\either{C}{D}~E}
\end{flushleft}
-That's all there is.
-Suggestions for improving {\tt covington.sty} are welcome, and bug
-reports are actively solicited. Please note, however, that this is free
-software, and the author makes no commitment to do any further work on
+That's all there is for now.
+Suggestions for improving \cvt\ are welcome, and bug
+reports are actively solicited (via \url{https://github.com/jspitz/covington}). Please note, however, that this is free
+software, and the authors make no commitment to do any further work on
it.
+\section{Release history}
+
+\subsection*{1.4 (2017 May 23)}
+
+\begin{itemize}
+ \item Introduce a new macro \jcsmacro{twodias} that supersedes the rather odd \jcsmacro{twoacc}
+ (which is kept for backwards compatibility). See sec.~\ref{sec:accents} for details.
+ \item Introduce macro \jcsmacro{SetDiaOffset} for more convenient setting of vertical distance
+ in stacked diacritics. See sec.~\ref{sec:accents} for details.
+ \item \LaTeX\ 2.09 is no longer officially supported (it might continue to work, but is not
+ tested).
+\end{itemize}
+
+\subsection*{1.3 (2017 April 5)}
+
+\begin{itemize}
+ \item Gloss variants \jcsmacro{xgll} and \jcsmacro{xglll} that work
+ inside macros (such as footnotes) but require explicit gloss
+ line end markers (\jcsmacro{xgle}). See sec.~\ref{sec:gloss} for details.
+ \item New lengths \jcsmacro{reflistindent}, \jcsmacro{reflistparsep} and
+ \jcsmacro{reflistitemsep} to globally adjust the indentation or vertical
+ space, respectively, of reflist items.
+ See sec.~\ref{sec:reflists} for details.
+\end{itemize}
+
+\subsection*{1.2 (2016 August 26)}
+
+\begin{itemize}
+ \item New length \jcsmacro{examplenumbersep} to adjust (increase) the horizontal space
+ between example number and example text. See sec.~\ref{sec:ex} for details.
+ \item Add some more info about bibliography generation.
+\end{itemize}
+
+\subsection*{1.1a (2016 July 7)}
+
+\begin{itemize}
+ \item Fix encoding problem in documentation and some typos. No change in functionality.
+\end{itemize}
+
+\subsection*{1.1 (2016 July 6)}
+
+\begin{itemize}
+ \item The package now uses \textsc{nfss} font commands if available (fallback for \LaTeX\ 2.09 is still provided).
+ \item Work around clash with classes\slash packages that define their own \jenv{example} and
+ \jenv{examples} environments (most notably the \texttt{beamer} class) as well as \jenv{execise} environments.
+ The \cvt\ package no longer blindly attempts to define these environments. By default, it does not
+ define them if they are already defined (\texttt{covington's} own environments, however, are still available via aliases).
+ By means of a new package option, a redefinition can also be forced. See sec.~\ref{sec:ex} and \ref{sec:exs} for details.
+ \item New length \jcsmacro{twoaccsep} allows for the adjustment of the distance between stacked accents (see sec.~\ref{sec:accents}).
+ \item Update manual.
+ \item New maintainer: J. Spitzm\"uller.
+ \item License has been changed to \textsc{lppl} (in agreement with M. Covington)
+ \item Introduce version numbers. Arbitrarily, we start with 1.1.
+\end{itemize}
+
+\subsection*{2014 May 16}
+
+\begin{itemize}
+ \item Patches by Robin Fairbairns:
+ \begin{itemize}
+ \item Setting of \jfcsmacro{textfloatsep} uses \jfcsmacro{setlength} rather than \jfcsmacro{renewcommand}
+ \item Style file converted to un*x line endings
+ \end{itemize}
+\end{itemize}
+
+\subsection*{2001 March 27}
+
+\begin{itemize}
+ \item It is no longer necessary to type \jfcsmacro{it} to get proper italic type in feature structures.
+ \item Instructions have been rewritten with \LaTeXe\ users in mind.
+\end{itemize}
+
+\subsection*{Older versions}
+
+\begin{itemize}
+ \item Multiple accents on a single letter (e.\,g., \emph{\acm{a}}) are supported.
+ \item This package is now called \cvt\ (with the o)
+ and is compatible with \LaTeXe\ and \textsc{nfss} as well as \LaTeX\ 2.09.
+ \item The vertical placement of labeled feature structures has
+ been changed
+ so that the category labels line up regardless of the size of
+ the structures.
+\end{itemize}
+
+\begin{thebibliography}{99}
+ \bibitem{pakin} Pakin, Scott. The Comprehensive \LaTeX\ Symbol List.
+ 30 November 2015. \url{http://www.ctan.org/pkg/comprehensive}.
+\end{thebibliography}
+
\end{document}
Binary files old/doc/latex/covington/covingtonGerm.pdf and new/doc/latex/covington/covingtonGerm.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/covington/covingtonGerm.tex new/doc/latex/covington/covingtonGerm.tex
--- old/doc/latex/covington/covingtonGerm.tex 2010-04-08 00:55:02.000000000 +0200
+++ new/doc/latex/covington/covingtonGerm.tex 1970-01-01 01:00:00.000000000 +0100
@@ -1,491 +0,0 @@
-% File: covington.tex (in LaTeX2e)
-% Documentation in German for covington.sty
-
-\documentclass{article}
-\usepackage[ngerman]{babel}
-\usepackage[latin1]{inputenc}
-\setlength{\parindent}{0pt}
-\setlength{\parskip}{1ex plus 0.2ex minus 0.1ex}
-\usepackage{covington}
-\title{\bf Linguistisch editieren mit {\tt covington.sty}}
-\author{Michael A. Covington\footnote{Deutsche ?bersetzung von Robert Galow
-(Friedrich-Schiller-Universit?t Jena).}\\
- \small Artificial Intelligence Center \\
- \small The University of Georgia \\
- \small Athens, Georgia 30602 \sc u.s.a.\\
- mcovingt@ai.uga.edu\\
- http://www.ai.uga.edu/$\sim$mc}
-
-\date{29.03.2007}
-
-
-\begin{document}
-\maketitle
-{\footnotesize \tableofcontents}
-\typeout{Run LaTeX twice to get a correct table of contents.}
-
-\section*{Neues in dieser Version}
-\begin{itemize}
-\item Merkmalsstrukturen erfordern nicht l?nger den Befehl \verb"\it", um kursive Schrift anzeigen zu lassen.
-\item Die vorliegende Dokumentation wurde f?r \LaTeXe\ Benutzer redigiert.
-\end{itemize}
-
-\section*{Neues in ?lteren Versionen}
-\begin{itemize}
-\item Mehrere Akzente ?ber einem einzigen Graphem (Bsp.: \emph{\acm{a}}) werden unterst?tzt.
-\item Dieses Paket wurde in {\tt covington} (mit \textit{o}) umbenannt und ist sowohl mit \LaTeXe\ und NFSS
-als auch \LaTeX\ 2.09. kompatibel.
-\item Die vertikale Anordnung beschrifteter Merkmalsstrukturen wurde derart ver?ndert, dass die
-Kategoriebezeichnungen nun unabh?ngig von der Gr??e der Strukturdarstellung angeordnet werden.
-\end{itemize}
-
-\section*{Einf?hrung}
-Die Datei {\tt covington.tex} ist die Dokumentation der Version {\tt covington.sty} vom M?rz 2001.
-Mit dieser \LaTeX\ Style-Option wird es nun m?glich spezielle und f?r die Linguistik typische Anmerkungen
-sowie Strukturen darzustellen.
-
-{\footnotesize
-In em\TeX\ unter MS-DOS finden Sie {\tt covington.sty} mit der Bezeichnung {\tt covingto.sty}.
-Das fehlende $n$ hat keinerlei Auswirkungen.}
-
-Um {\tt covington.sty} nutzen zu k?nnen, sollten Sie entweder ?ber eine Kopie in ihrem aktuellen Ordner oder im \LaTeX\- Verzeichnis verf?gen, in dem ihre \LaTeX\ Style-Files gespeichert werden.
-
-Unter \LaTeXe\
-f?gen Sie nach \verb"\documentclass"
-den Befehl\\ \verb"\usepackage{covington}" hinzu.
-
-{\footnotesize
-Bei \LaTeX\ 2.09 f?gen Sie {\tt covington} unmittelbar in den \verb"\documentstyle" Befehl mit ein.
-Das Ergebnis: \hfill\\
-{\tt
-\verb"\documentstyle[12pt,"\underline{covington}\verb"]{article}"
-}\hfill\\
-Beachten Sie die richtige Schreibweise {\tt covington} (9 Buchstaben).
-}
-
-F?r diese Dokumentation wird vorausgesetzt, dass Sie wissen, wie Sie korrekt mit \LaTeX\ umgehen und dass
-Sie ?ber eine \LaTeX-Anleitung verf?gen. {\tt covington.sty} bietet Ihnen keine speziellen Fonts
-oder Grapheme, kann jedoch mit anderen passenden Stildateien verwendet werden.
-
-Falls Sie {\tt covington.sty} und {\tt uga.sty} (UGa thesis style)
-zusammen nutzen, sollten Sie {\tt uga} vor {\tt covington} erw?hnen.
-
-
-\section{Akzente}
-
-\LaTeX\ bietet eine gro?z?gige Auswahl von Akzenten, die ?ber jedem beliebigen Graphem platziert werden
-k?nnen.
-Beispiele:
-\begin{flushleft}
-\`{x} \'{x} \^{x} \"{x} \~{x} \={x} \H{x} \t{xx} \c{x} \d{x} \b{x}
-\end{flushleft}
-Die Eingabe erfolgt so:
-\begin{verbatim}
-\`{x} \'{x} \^{x} \"{x} \~{x} \={x} \H{x} \t{xx} \c{x} \d{x} \b{x}
-\end{verbatim}
-
-\LaTeX\ erm?glicht nat?rlich auch diese Grapheme:
-\begin{flushleft}\obeyspaces
-\i \j \ae \AE \oe \OE \aa \AA \o \O \l \L \ss ?` !`
-\end{flushleft}
-Die Eingabe daf?r:
-\begin{verbatim}
-\i \j \ae \AE \oe \OE \aa \AA \o \O \l \L \ss ?` !`
-\end{verbatim}
-
-\LaTeX\ bietet leider keine bequeme M?glichkeit zwei Akzente ?ber dem selben
-Graphem zu realisieren. Abhilfe schafft hier {\tt covington.sty} mit den folgenden
-Makros:
-\begin{flushleft}
-\verb,\twoacc[...|...], \quad um 2 beliebige Akzente zu kombinieren. Bsp.:
- \verb.\twoacc[\~|\={a}]. = \twoacc[\~|\={a}]\\[6pt]
-\verb,\acm{...}, \quad f?r einen Akut ?ber dem L?ngsstrich,Bsp.: \verb.\acm{a}. = \acm{a}\\
-\verb,\grm{...}, \quad f?r einen Gravis ?ber dem L?ngsstrich, Bsp.: \verb.\grm{a}. = \grm{a}\\
-\verb,\cim{...}, \quad f?r Zirkumflex ?ber dem L?ngsstrich, Bsp.: \verb.\cim{a}. = \cim{a}
-\end{flushleft}
-Der erste der obigen Beispiele ist der allgemeine Fall, die anderen drei sind spezielle. Diese
-entstehen oft beim Transkribieren aus dem Griechischen. Nun k?nnen sie mit beiden Akzenten an selber Stelle
-\emph{Koin\acm{e}} schreiben.
-
-Beachten sie die spezielle Syntax von \verb.\twoacc. --- dessen Argumente werden in eckigen, aber nicht
-geschwungenen Klammern gefasst. Die Argumente werden durch \verb.|. getrennt.
-Das erste Argument ist der obere Akzent (nur), das zweite das Graphem mit dem niedrigen Akzent.
-
-Bitte beachten Sie, dass Akzente nicht in der {\tt tabbing} Umgebung funktionieren.
-Nutzen Sie {\tt tabular} oder ihre \LaTeX\ Anleitung f?r L?sungsvorschl?ge.
-
-\section{Makros f?r nummerierte Satzbeispiele}
-
-Linguistische Aufs?tze beinhalten oft nummerierte Beispiele.
-Das Makro \verb"\exampleno" generiert eine neue Beispielnummer und kann an beliebiger Stelle genutzt werden.
-Um beispielsweise einen Satz mit einer rechtsb?ndigen Beispielnummer zu erhalten, geben Sie ein:
-\begin{verbatim}
-\begin{flushleft}
-Das ist ein Satz. \hfill (\exampleno)
-\end{flushleft}
-\end{verbatim}
-Das Resultat sieht so aus:
-\begin{flushleft}
-Das ist ein Satz. \hfill (\exampleno)
-\end{flushleft}
-Der Beispielz?hler funktioniert im Prinzip wie die \LaTeX-Nummerierung von Gleichungen.
-Sollten Sie also Gleichungen UND nummerierte Beispiele im selben Dokument nutzen,
-erhalten Sie eine fortlaufende Nummerierung von Beispielen. Um auf die
-Nummer zuzugreifen, ohne sie zu ?ndern, nutzen Sie \verb"\theequation".
-
-Sie k?nnen auch \verb"\label" und \verb"\ref" jeweils f?r Beispielnummern als auch f?r
-die Gleichungsnummerierung nutzen. Sehen Sie dazu in Ihren \LaTeX\ Unterlagen nach.
-Die dargestellte Situation trifft auch f?r die {\tt example} und {\tt examples}
-Umgebungen zu, die als n?chstes beschrieben werden sollen, aber auch f?r \verb"\exampleno" selbst.
-
-\section{Nummerierte Beispiele mit der {\tt example}-Umgebung}
-
-Die {\tt example}-Umgebung stellt ein einziges Beispiel mit einer linksb?ndig
-generierten Beispielnummer dar.
-
-Wenn Sie Nachfolgendes eingeben,
-\begin{verbatim}
-\begin{example}
-This is a sentence.
-\end{example}
-\end{verbatim}
-erhalten Sie als Resultat:
-\begin{example}
-Das ist ein Beispiel.
-\end{example}
-Die {\tt example}-Umgebung ?hnelt stark {\tt flushleft}. Dabei kann das Beispiel
-beliebiger L?nge sein und sowohl mehreren Zeilen (getrennt durch \verb"\\")
-oder sogar ganzen Abs?tzen bestehen.
-
-Eine M?glichkeit innerhalb untergeordneter Beispiele zu nummerieren, bietet {\tt itemize} oder {\tt
-enumerate}.
-
-Beispiel:
-\begin{verbatim}
-\begin{example}
-\begin{itemize}
-\item[(a)] Das ist der erste Satz.
-\item[(b)] Das ist der zweite Satz.
-\end{itemize}
-\end{example}
-\end{verbatim}
-Das Resultat:
-\begin{example}
-\begin{itemize}
-\item[(a)] Das ist der erste Satz.
-\item[(b)] Das ist der zweite Satz.
-\end{itemize}
-\end{example}
-Die im n?chsten Punkt beschriebene {\tt examples}-Umgebung ist ?blicher.
-
-\section{Nummerierte Beispiele mit der {\tt examples}-Umgebung}
-
-Um mehrere Beispiele mit jeweiliger Nummerierung zusammen anzeigen zu lassen,
-nutzen Sie {\tt examples} anstelle von {\tt example}. Der einzige Unterschied besteht darin,
-dass mehrere Beispiele angezeigt werden k?nnen, implementiert mit \verb"\item".
-
-Ein Beispiel:
-\begin{verbatim}
-\begin{examples}
-\item Das ist der erste Satz.
-\item Das ist der zweite Satz.
-\end{examples}
-\end{verbatim}
-Das Resultat:
-\begin{examples}
-\item Das ist der erste Satz.
-\item Das ist der zweite Satz.
-\end{examples}
-
-
-\section{S?tze glossieren und interlineares ?bersetzen}
-
-Einen Satz zu glossieren meint, ihn Lexem f?r Lexem zu "`erl?utern"'. In der Regel werden bei
-interlinearen ?bersetzungen zun?chst S?tze der Ausgangssprache Wort f?r Wort, also unter Verzicht auf
-syntaktisch-grammatikalische Regeln, in vertikaler Anordnung ?bersetzt. Danach folgt die philologische
-?bersetzung, die Lexeme nach syntaktischen und grammatischen Regeln der Zielsprache gliedert,
-Satzglieder also korrekt anordnet.
-
-Ein Beispiel:%
-\footnote{Die Makros zum Umgang mit Glossen wurden mit Erlaubnis von Marcel R. van der Goot von {\tt gloss.tex} angepasst.}
-\gll Dit is een Nederlands voorbeeld.
- Das ist ein niederl?ndisches Beispiel.
-\glt `Das ist ein Beispiel auf Niederl?ndisch.'
-\glend
-Dieses spezielle Beispiel wird so eingegeben:
-\begin{verbatim}
-\gll Dit is een Nederlands voorbeeld.
- Das ist ein niederl?ndisches Beispiel.
-\glt `Das ist ein Beispiel auf Niederl?ndisch.'
-\glend
-\end{verbatim}
-Da \TeX\ Lexeme z?hlt, m?ssen Sie diese nicht in einer Zeile entsprechend ihrer Anzahl ordnen. Wenn also
-Lexeme von Ausgangs- und Zielsprache nicht korrespondieren, k?nnen Sie zur Veranschaulichung der
-intendierten Reihenfolge geschweifte Klammern nutzen.
-M?chten Sie beispielsweise folgende S?tze darstellen
-\gll Dit is een voorbeeldje in het Nederlands.
- Das ist ein {kleines Beispiel} auf {} Niederl?ndisch.
-\glt `Das ist ein kleines Beispiel auf Niederl?ndisch.'
-\glend
-schreiben Sie:
-\begin{verbatim}
-\gll Dit is een voorbeeldje in het Nederlands.
- Das ist ein {kleines Beispiel} auf {} Niederl?ndisch.
-\glt `Das ist ein kleines Beispiel auf Niederl?ndisch.'
-\glend
-\end{verbatim}
-Insgesamt bietet Ihnen {\tt covington.sty} f?nf Makros zum Umgang mit Glossen:
-\begin{itemize}
-\item \verb"\gll" stellt zwei Zeilen vertikal zueinander angeordneter W?rter dar. Die damit verbundene
-Umgebung ?hnelt {\tt flushleft}.
-\item \verb"\glll" entspricht \verb"gll", nur gibt es
-{\em drei} Zeilen angeordneter W?rter (N?tzlich f?r Zitate, Morphologisches,
-und ?bersetzungen).
-\item \verb"\glt" beendet Zeilen mit aufeinander angeordneter W?rter und f?hrt eine Zeile
-(oder mehr) mit der ?bersetzung auf.
-\item \verb"\gln" entspricht \verb"\glt" , beginnt aber keine neue Zeile
-(n?tzlich, wenn keine ?bersetzung folgt, daf?r aber eine rechtsb?ndige Beispielnummerierung).
-\item \verb"\glend" beendet die \verb"\gll" Umgebung.
-\end{itemize}
-Hier sind weitere Beispiele. Erstens, einen Satz mit drei Zeilen in vertikaler Anordnung:
-\glll Hoc est aliud exemplum.
- n.sg.nom 3.sg n.sg.nom n.sg.nom
- Das ist ein anderes Beispiel.
-\glt `Das ist ein anderes Beispiel.'
-\glend
-Die Eingabe muss sein:
-\begin{verbatim}
-\glll Hoc est aliud exemplum.
- n.sg.nom 3.sg n.sg.nom n.sg.nom
- Das ist ein anderes Beispiel.
-\glt `Das ist ein anderes Beispiel.'
-\glend
-\end{verbatim}
-Jetzt ein Beispiel mit einer Glosse ohne philologische ?bersetzung. Auf der rechten Seite setzen wir
-au?erdem eine Beispielnummer:
-\gll Hoc habet numerum.
- Das hat Nummer.
-\gln \hfill (\exampleno)
-\glend
-Die Eingabe muss sein:
-\begin{verbatim}
-\gll Hoc habet numerum.
- Das hat Nummer
-\gln \hfill (\exampleno)
-\glend
-\end{verbatim}
-Hier noch eine sehr g?ngige Methode: Wir f?gen einen glossierten Satz in die {\tt example}
-Umgebung ein:
-\begin{example}
-\gll Hoc habet numerum praepositum.
- Das hat Nummer davor
-\glt `Dieses hat eine Nummer davor.'
-\glend
-\end{example}
-Die Eingabe muss sein:
-\begin{verbatim}
-\begin{example}
-\gll Hoc habet numerum praepositum.
- Das hat Nummer davor
-\glt `Dieses hat eine Nummer davor.'
-\glend
-\end{example}
-\end{verbatim}
-Bitte merken Sie sich, dass jeder glossierte Satz entweder mit \verb"\gll" oder
-\verb"\glll" beginnt, dann entweder \verb"\glt" oder \verb"\gln" enth?lt, und schlie?lich mit
-\verb"\glend" endet. Das Layout im Arbeitsschritt vor
-\verb"\glt" oder \verb"\gln" ist an feste Kriterien gebunden, danach aber wesentlich freier gestaltbar.
-
-\section{Satzstruktur-Regeln darstellen}
-
-Um die Satzstruktur-Regel \psr{S}{NP~VP} darzustellen, k?nnen Sie
-\verb"\psr{S}{NP~VP}" eingeben.
-Das gilt nat?rlich auch f?r alle anderen Satzstruktur-Regeln.
-
-\section{Repr?sentation von Merkmalsstrukturen}
-
-Um eine Merkmalsstrukur wie die nachfolgende zu erhalten,
-\begin{flushleft}
-%\fs{\it Kasus:nom \\ \it Persona:P}
-\fs{Kasus:nom}
-\end{flushleft}
-k?nnen Sie eingeben:
-\begin{verbatim}
-\fs{Kasus:nom \\ Persona:P}
-\end{verbatim}
-
-Merkmalstrukturen k?nnen ?berall integriert werden -- in Flie?texte, in spezielle
-Umgebungen wie {\tt flushleft}, in den Zusammenhang syntaktischer Regeln oder
-sogar in andere Merkmalstrukturen.
-
-Um Kategorienamen einer Merkmalstruktur ?ber diesselbe zu setzen, wie in
-dem nachfolgenden Beispiel zu sehen ist,
-\begin{flushleft}
-\lfs{N}{Kasus:nom \\ Persona:P}
-\end{flushleft}
-geben Sie Folgendes ein:
-\begin{verbatim}
-\lfs{N}{Kasus:nom \\ Persona:P}
-\end{verbatim}
-Hier noch ein Beispiel f?r eine Satzstrukturdarstellung mit Kategoriebezeichnung ?ber der jeweiligen
-Merkmalsstruktur:
-\begin{flushleft}
-\psr{\lfs{S}{Tempus:T}}
- {\lfs{NP}{Kasus:nom \\ Nummerus:N}
- \lfs{VP}{Tempus:T \\ Nummerus:N}}
-\end{flushleft}
-Die Eingabe daf?r ist:
-\begin{verbatim}
-\psr{\lfs{S}{Tempus:T}}
- {\lfs{NP}{Kasus:nom \\ Nummerus:N}
- \lfs{VP}{Tempus:T \\ Nummerus:N}}
-\end{verbatim}
-
-
-\section{Discourse Representation Structures nach H.Kamp setzen}
-
-Verschiedene Makros in {\tt covington.sty} erleichtern Diskurs Structures
-(Kurz DRS von \emph{Discourse representation structure}. Wir wollen uns im
-Folgenden auf die Verwendung
-dieser g?ngigen Abk?rzung festlegen). Konkret sind die K?stchen-Bezeichnungen von Hans Kamp gemeint.
-Das einfachste Makro ist \verb"\drs", welches zwei Argumente verlangt:
-Ein Verzeichnis der Diskursvariablen verbunden mit \verb"~", und ein
-Verzeichnis von DRS-Bedingungen
-getrennt durch \verb"\\". Verschachtelung ist dabei erlaubt. Beachten Sie jedoch, dass Ihnen das
-\verb"\drs" Makro an sich keine entfaltete Umgebung bietet. Sie m?ssen {\tt
-flushleft} oder ?hnliches nutzen,
-um eine DRS anzeigen zu lassen.
-Hier sind einige Beispiele:
-\begin{verbatim}
-\drs{X}{Esel(X)\\gr?n(X)}
-\end{verbatim}
-\begin{flushleft}
-\drs{X}{Esel(X)\\gr?n(X)}
-\end{flushleft}
-\begin{verbatim}
-\drs{X}
-{named(X,`Pedro') \\
-\drs{Y}{Esel(Y)\\besitzt(X,Y)}~~
- {\large $\Rightarrow$}~
- \drs{~}{f?ttert(X,Y)}
-}
-\end{verbatim}
-\begin{flushleft}
-\drs{X}
-{named(X,`Pedro') \\
-\drs{Y}{Esel(Y)\\besitzt(X,Y)}~~
- {\large $\Rightarrow$}~
- \drs{~}{f?ttert(X,Y)}
-}
-\end{flushleft}
-Um einen Satz oberhalb der DRS-Box zu platzieren, verwenden Sie \verb"\sdrs" wie im n?chsten Beispiel:
-\begin{verbatim}
-\sdrs{Ein Esel ist gr?n.}{X}{Esel(X)\\gr?n(X)}
-\end{verbatim}
-\begin{flushleft}
-\sdrs{Ein Esel ist gr?n.}{X}{Esel(X)\\gr?n(X)}
-\end{flushleft}
-Au?erdem werden Ihnen DRS-Verbindungen angeboten, die normalerweise zur Repr?sentation von einer DRS in
-einer anderen vorgesehen sind.
-Das Makro \verb"\negdrs" generiert eine DRS, vor der ein Negationssymbol steht:
-\begin{verbatim}
-\negdrs{X}{Esel(X)\\gr?n(X)}
-\end{verbatim}
-\begin{flushleft}
-\negdrs{X}{Esel(X)\\gr?n(X)}
-\end{flushleft}
-Als letztes ist \verb"\ifdrs" zu erw?hnen. Dabei handelt es sich um die Verbindung zweier DRS durch einen
-gro?en Pfeil.
-Beispiel:
-\begin{verbatim}
-\ifdrs{X}{Esel(X)\\hungrig(X)}
- {~}{f?ttert(Pedro,X)}
-\end{verbatim}
-\begin{flushleft}
-\ifdrs{X}{Esel(X)\\hungrig(X)}
- {~}{f?ttert(Pedro,X)}
-\end{flushleft}
-Bei Verbindungen von gew?hnlichen Pr?dikaten und Konditionals?tzen innerhalb
-einer DRS ist die Benutzung von \verb"\alifdrs" zu empfehlen. \verb"\alifdrs" ist
-\verb"\ifdrs" sehr ?hnlich, wird aber zwecks besserer Anordnung etwas weiter nach links ger?ckt.
-
-\section{?bungsbeispiele}
-
-Die {\tt exercise}-Umgebung generiert eine nach Kapitel, Absatz und
-Unterabschnitt nummerierte ?bung. Diese Option eignet sich beispielsweise f?r in B?chern auftretende ?bungen.
-Im folgenden Beispiel wird der Unterabschnitt als 0 angezeigt:
-\begin{exercise}[Projekt]
-Beweisen Sie die Richtigkeit der oben gestellten Hypothese.
-\end{exercise}
-Die notwendige Eingabe:
-\begin{verbatim}
-\begin{exercise}[Projekt]
-Beweisen Sie die Richtigkeit der oben gestellten Hypothese.
-\end{exercise}
-\end{verbatim}
-Das Argument \verb"[Projekt]" kann optional verwendet werden und ist durch jedes beliebige Lexem ersetzbar.
-
-\section{Literaturverweise nach LSA-Muster}
-
-Um Bibliographien im LSA-Stil zu verfassen, nutzen Sie bitte die {\tt
-reflist}-Umgebung. ({\em Anmerkung:\/} {\tt reflist} ist derzeit noch nicht
-in Bib\TeX\ integriert.) Beispielsweise sehen die kommenden Nachweise in der Ausgabe wie folgt aus:
-
-\begin{verbatim}
-\begin{reflist}
-Barton, G. Edward; Berwick, Robert C.; and Ristad, Eric Sven. 1987.
-Computational complexity and natural language. Cambridge,
-Massachusetts: MIT Press.
-
-Chomsky, Noam. 1965. Aspects of the theory of syntax. Cambridge,
-Massachusetts: MIT Press.
-
-Covington, Michael. 1993. Natural language processing for Prolog
-programmers. Englewood Cliffs, New Jersey: Prentice--Hall.
-\end{reflist}
-\end{verbatim}
-\begin{reflist}
-Barton, G. Edward; Berwick, Robert C.; and Ristad, Eric Sven. 1987.
-Computational complexity and natural language. Cambridge,
-Massachusetts: MIT Press.
-
-Chomsky, Noam. 1965. Aspects of the theory of syntax. Cambridge,
-Massachusetts: MIT Press.
-
-Covington, Michael A. 1993. Natural language processing for Prolog
-programmers. Englewood Cliffs, New Jersey: Prentice--Hall.
-\end{reflist}
-Beachten Sie, dass innerhalb dieser Bibliographien ``French spacing'' angewandt wird.
-Das bedeutet: Die Leerstellen nach Punkten sind nicht gr??er als das konventionelle Leerzeichen. Sie m?ssen
-also nichts gegen ?bergro?e Abst?nde nach Namen unternehmen.
-
-
-\section{Das Makro {\tt sentence}}
-
-Das Makro \verb"\sentence" hilft bei der Ausgabe von kursiven S?tzen, und ist eine
-Kombination von {\tt flushleft} und \verb"\em"). Bei der Eingabe von
-\begin{verbatim}
-\sentence{Das ist ein Satz.}
-\end{verbatim}
-ist das Resultat:
-\sentence{Das ist ein Satz.}
-
-
-\section{Geschwungene Klammern und Disjunktionen mit {\tt either}}
-
-Zu guter Letzt: Das 2-Argumente-Makro \verb"\either" repr?sentiert Alternativen
-innerhalb eines Satzes oder einer Satzstruktur:
-\begin{flushleft}
-\verb"the \either{schwer}{gro?e} dog" $=$ the \either{schwer}{gro?} dog \\
-\end{flushleft}
-\begin{flushleft}
-\verb"\psr{A}{B~\either{C}{D}~E} " $=$ \psr{A}{B~\either{C}{D}~E}
-\end{flushleft}
-
-Mehr gibt es nicht zu sagen.
-Vorschl?ge zur Verbesserung von {\tt covington.sty} sind willkommen und auf Bug-Reports wird gern
-eingegangen. Bitte beachten Sie, dass es sich um kostenlose Software handelt und der Autor nicht zu
-weiterer Arbeit an der Software verpflichtet ist.
-
-\end{document}
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/covington.doc.tlpobj new/tlpkg/tlpobj/covington.doc.tlpobj
--- old/tlpkg/tlpobj/covington.doc.tlpobj 2016-04-14 18:54:29.000000000 +0200
+++ new/tlpkg/tlpobj/covington.doc.tlpobj 2017-06-07 02:21:37.000000000 +0200
@@ -1,10 +1,9 @@
name covington.doc
category Package
-revision 34064
+revision 44501
shortdesc doc files of covington
relocated 1
-docfiles size=119
+docfiles size=136
+ RELOC/doc/latex/covington/README
RELOC/doc/latex/covington/covington.pdf
RELOC/doc/latex/covington/covington.tex
- RELOC/doc/latex/covington/covingtonGerm.pdf
- RELOC/doc/latex/covington/covingtonGerm.tex
++++++ covington.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/covington/covington.sty new/tex/latex/covington/covington.sty
--- old/tex/latex/covington/covington.sty 2014-05-16 23:10:46.000000000 +0200
+++ new/tex/latex/covington/covington.sty 2017-06-06 23:51:35.000000000 +0200
@@ -1,21 +1,71 @@
-%%% File covington.sty
-%%%
-%%% Michael A. Covington
-%%% Artificial Intelligence Programs
-%%% The University of Georgia
-%%% Athens, Georgia 30602-7415 USA
-%%% mcovingt@aisun1.ai.uga.edu
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% File covington.sty
+%%
+%% LaTeX macros for Linguistics
+%%
+%% Original author:
+%% ================
+%% Michael A. Covington
+%% Artificial Intelligence Programs
+%% The University of Georgia
+%% Athens, Georgia 30602-7415 USA
+%% mcovingt@aisun1.ai.uga.edu
+%%
+%% Contributors:
+%% =============
+%% Robin Fairbairns 2014-05-16: patched setting of \textfloatsep
+%% to use \setlength rather than \renewcommand; also converted to un*x line endings
+%%
+%% Current maintainer:
+%% ===================
+%% Juergen Spitzmueller
+%%
+%% 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 has the LPPL maintenance status "maintained".
+%%
+%% The Current Maintainer of this work is Juergen Spitzmueller.
+%%
+%% Code repository and issue tracker: https://github.com/jspitz/covington
+%%
+%% See covington.tex for documentation.
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
%%%
-%%% You may copy and distribute this file freely.
-%%% (If you modify it, please change its name and add your own comments.)
+%%% Metadata
%%%
-%%% See covington.tex for documentation.
-%%
-%% Robin Fairbairns: patched setting of \textfloatsep to use
-%% \setlength rather than \renewcommand; also converted to un*x line endings
-\typeout{* covington.sty : Covington's linguistic macros, 2001 March 27 *}
-%% patched 2014-05-16 (rf10@cl.cam.ac.uk)
+\def\filedate{2017/05/23}
+\def\fileversion{1.4}
+\def\filename{covington.sty}
+
+% Force redefinition of environments?
+\newif\ifforceredef\forceredeffalse
+
+\@ifundefined{ProvidesPackage}{%
+\typeout{* covington.sty : Covington's linguistic macros, \fileversion\ \filedate *}
+}{%
+\ProvidesPackage{covington}
+ [\filedate\space v\fileversion\space Covington's linguistic macros]
+\DeclareOption{force}{\forceredeftrue}
+\ProcessOptions
+}
+
+% Macro to issue warnings
+\newcommand\cov@warning[1]{%
+ \@ifundefined{PackageWarning}{%
+ \typeout{* covington warning : #1 *}
+ }{%
+ \PackageWarning{covington}{#1}%
+ }
+}
%%%
%%% Preferences about how text is laid out
@@ -31,20 +81,35 @@
% This is adapted from the \diatop macro in wsuipa.sty, which was
% originally designed by Jean-Pierre Paillet.
+% Length to adjust accent distance
+% Introduced 2016-07-06 JSP.
+\newlength\twoaccsep
+\setlength{\twoaccsep}{-0.8ex}
+\newcommand*\SetDiaOffset[1]{\addtolength{\twoaccsep}{#1}}
+
\def\twoacc[#1|#2]{\leavevmode{\setbox1=\hbox{{#1{}}}%
\setbox2=\hbox{{#2{}}}%
\dimen0=\ifdim\wd1>\wd2\wd1\else\wd2\fi%
- \dimen1=\ht2\advance\dimen1by-0.8ex%
+ \dimen1=\ht2\advance\dimen1by\twoaccsep%
\setbox1=\hbox to1\dimen0{\hss#1\hss}%
\rlap{\raise1\dimen1\box1}%
\hbox to1\dimen0{\hss#2\hss}}}%
% Example of usage: \twoacc[\^|\={a}]
-% Special cases:
-\def\acm#1{\twoacc[\'|\={#1}]} % acute over macron
-\def\grm#1{\twoacc[\`|\={#1}]} % grave over macron
-\def\cim#1{\twoacc[\^|\={#1}]} % circumflex over macron
+% 2017-05-21: Introduce a less odd syntax: \twodias{\^}{\=}{a}
+\newcommand*\twodias[3]{\leavevmode{\setbox1=\hbox{{#1{}}}%
+ \setbox2=\hbox{{#2{#3}}}%
+ \dimen0=\ifdim\wd1>\wd2\wd1\else\wd2\fi%
+ \dimen1=\ht2\advance\dimen1by\twoaccsep%
+ \setbox1=\hbox to1\dimen0{\hss#1\hss}%
+ \rlap{\raise1\dimen1\box1}%
+ \hbox to1\dimen0{\hss#2{#3}\hss}}}
+
+% Special cases:
+\def\acm#1{\twodias{\'}{\=}{#1}} % acute over macron
+\def\grm#1{\twodias{\`}{\=}{#1}} % grave over macron
+\def\cim#1{\twodias{\^}{\=}{#1}} % circumflex over macron
%%%
%%% Example numbering
@@ -88,8 +153,29 @@
% \item[(b)] This is the second example.
% \end{itemize}
% \end{example}
-
-\newenvironment{example}{\begin{examples}\item}{\end{examples}}
+%
+% New in 1.1 (2016-07-06):
+% We provide a covexample environment and only (re)define
+% example if it does not yet exist or if redefinition is
+% forced by the "force" option. This prevents clashes
+% with packages/classes that roll their own example environment
+% (such as beamer).
+
+\newenvironment{covexample}{\begin{covexamples}\item}{\end{covexamples}}
+
+\@ifundefined{example}{%
+ \newenvironment{example}{\begin{covexample}}{\end{covexample}}
+}{%
+\ifforceredef
+ \renewenvironment{example}{\begin{covexample}}{\end{covexample}}
+ \cov@warning{The example environment was already defined. Redefining it.}
+\else
+ \cov@warning{The example environment was already defined.^^J
+ Covington does not touch it.^^J
+ Use covexample if you want to access covington's^^J
+ version, or use the force package option.}
+\fi
+}
%%%
%%% The 'examples' environment
@@ -105,13 +191,25 @@
%
% Thanks to Darrel Hankerson of Auburn University, and numerous others
% across the net, for help with this macro.
+%
+% New in 1.1 (2016-07-06):
+% We provide a covexamples environment and only (re)define
+% examples if it does not yet exist or if redefinition is
+% forced by the "force" option. This prevents clashes
+% with packages/classes that roll their own examples environment
+% (such as beamer).
\newcounter{equationsave} % used in trick with equation number
-\newenvironment{examples}% % define "example" environment
+\newlength\examplenumbersep
+\setlength\examplenumbersep{0pt}
+
+\newenvironment{covexamples}% % define "example" environment
{%
\begin{list}{(\theequation)}%
{%
+\addtolength{\labelwidth}{\examplenumbersep}%
+\addtolength{\leftmargin}{\examplenumbersep}%
\setcounter{equationsave}{\arabic{equation}}%
\usecounter{equation}% % sets it to zero, unwantedly
\setcounter{equation}{\arabic{equationsave}}% % restores previous value
@@ -121,11 +219,25 @@
\raggedright}% % text is flushleft, not justified
{\end{list}}
+\@ifundefined{examples}{%
+ \newenvironment{examples}{\begin{covexamples}}{\end{covexamples}}
+}{%
+\ifforceredef
+ \renewenvironment{examples}{\begin{covexamples}}{\end{covexamples}}
+ \cov@warning{The examples environment was already defined. Redefining it.}
+\else
+ \cov@warning{The examples environment was already defined.^^J
+ Covington does not touch it.^^J
+ Use covexamples if you want to access covington's^^J
+ version, or use the force package option.}
+\fi
+}
+
%%%
%%% Sentences with word-by-word glosses
%%%
-% See covingtn.tex for full documentation. Some examples:
+% See covington.tex for full documentation. Some examples:
%
% Displayed sentence with gloss and translation:
%
@@ -166,15 +278,15 @@
% baselinestretch.
\@ifundefined{new@fontshape}%
- {\def\@selfnt{\ifx\@currsize\normalsize\@normalsize\else\@currsize\fi}}
- {\def\@selfnt{\selectfont}}
+ {\def\cov@selfnt{\ifx\@currsize\normalsize\@normalsize\else\@currsize\fi}}
+ {\def\cov@selfnt{\selectfont}}
% Thanks to Hans-Peter Kolb for this macro.
\def\gll % Introduces 2-line text-and-gloss.
{\begin{flushleft}
\vskip\baselineskip% % Added 1992 Nov 8 to force single spacing
\def\baselinestretch{1}%
-\@selfnt%
+\cov@selfnt%
\vskip-\baselineskip%
\bgroup
\catcode`\^^M=12
@@ -185,13 +297,40 @@
{\begin{flushleft}
\vskip\baselineskip% % Added 1992 Nov 8 to force single spacing
\def\baselinestretch{1}%
-\@selfnt%
+\cov@selfnt%
\vskip-\baselineskip%
\bgroup
\catcode`\^^M=12
\threesent
}
+
+% The following two \x.. versions introduce special forms of glossing
+% macros that do not activate the newline char. The latter does not
+% work inside arguments (see http://tex.stackexchange.com/questions/169740)
+% Inspired by this post of David Carlisle to the mentioned stackexchange thread:
+% http://tex.stackexchange.com/a/169744/19291
+% These macros require the gloss lines to be ended explicitly with \xgle
+\def\xgll % Introduces 2-line text-and-gloss.
+ {\begin{flushleft}
+\vskip\baselineskip% % Added 1992 Nov 8 to force single spacing
+\def\baselinestretch{1}%
+\cov@selfnt%
+\vskip-\baselineskip%
+ \bgroup
+ \ignorespaces\xtwosent
+ }
+
+\def\xglll % Introduces 3-line text-and-gloss.
+ {\begin{flushleft}
+\vskip\baselineskip% % Added 1992 Nov 8 to force single spacing
+\def\baselinestretch{1}%
+\cov@selfnt%
+\vskip-\baselineskip%
+ \bgroup
+ \ignorespaces\xthreesent
+ }
+
\def\glt{{\hskip -\glossglue}\unhbox\gline\smallskip\newline} % \newline was \\
% Introduces translation.
% Required even if no translation follows.
@@ -222,9 +361,18 @@
\glossglue = 5pt plus 2pt minus 1pt % allow stretch/shrink between words
\newif\ifnotdone
-\let\eachwordone=\it
-\let\eachwordtwo=\rm
-\let\eachwordthree=\rm
+% Add semantic markup (with latex 2.09 backwards support)
+\@ifundefined{selectfont}{%
+ \def\cov@emphasized{\it}%
+ \def\cov@normalfont{\rm}%
+}{%
+ \def\cov@emphasized{\normalfont\itshape}%
+ \def\cov@normalfont{\normalfont\rmfamily}%
+}
+
+\let\eachwordone=\cov@emphasized
+\let\eachwordtwo=\cov@normalfont
+\let\eachwordthree=\cov@normalfont
\def\lastword#1#2#3% #1 = \each, #2 = line box, #3 = word box
{\setbox#2=\vbox{\unvbox#2%
@@ -298,6 +446,63 @@
}
} % restore \catcode`\^^M
+% An explicit gloss line ending (for \xgll and \xglll variants=
+\gdef\xgle{}
+% Special versions of \getwords, \donewords, \twosent and \threesent for the \x..
+% variants of gloss introducers (using \xgle as separator instead of active newline)
+\gdef\xgetwords(#1,#2)#3 #4\xgle% #1=linebox, #2=\each, #3=1st word, #4=remainder
+ {\setbox#1=\vbox{\hbox{#2\strut#3 }% adds space
+ \unvbox#1%
+ }%
+ \def\more{#4}%
+ \ifx\more\empty\let\more=\xdonewords
+ \else\let\more=\xgetwords
+ \fi
+ \more(#1,#2)#4\xgle%
+ }
+
+\gdef\xdonewords(#1,#2)\xgle{}%
+
+\gdef\xtwosent#1\xgle#2\xgle% #1 = first line, #2 = second line
+ {\xgetwords(\lineone,\eachwordone)#1 \xgle%
+ \xgetwords(\linetwo,\eachwordtwo)#2 \xgle%
+ \loop\lastword{\eachwordone}{\lineone}{\wordone}%
+ \lastword{\eachwordtwo}{\linetwo}{\wordtwo}%
+ \global\setbox\gline=\hbox{\unhbox\gline
+ \hskip\glossglue
+ \vtop{\box\wordone % vtop was vbox
+ \nointerlineskip
+ \box\wordtwo
+ }%
+ }%
+ \testdone
+ \ifnotdone
+ \repeat
+ \egroup % matches \bgroup in \gloss
+ }
+
+\gdef\xthreesent#1\xgle#2\xgle#3\xgle% #1 = first line, #2 = second line, #3 = third
+ {\xgetwords(\lineone,\eachwordone)#1 \xgle%
+ \xgetwords(\linetwo,\eachwordtwo)#2 \xgle%
+ \xgetwords(\linethree,\eachwordthree)#3 \xgle%
+ \loop\lastword{\eachwordone}{\lineone}{\wordone}%
+ \lastword{\eachwordtwo}{\linetwo}{\wordtwo}%
+ \lastword{\eachwordthree}{\linethree}{\wordthree}%
+ \global\setbox\gline=\hbox{\unhbox\gline
+ \hskip\glossglue
+ \vtop{\box\wordone % vtop was vbox
+ \nointerlineskip
+ \box\wordtwo
+ \nointerlineskip
+ \box\wordthree
+ }%
+ }%
+ \testdone
+ \ifnotdone
+ \repeat
+ \egroup % matches \bgroup in \gloss
+ }
+
%\def\gloss % raw TeX macro for 2 aligned lines
% {\bgroup
% \catcode`\^^M=12
@@ -311,7 +516,7 @@
% \psr To print S -> NP VP, use: \psr{S}{NP~VP}
-\newcommand{\psr}[2]{\mbox{\it #1 $\rightarrow$ #2}}
+\newcommand{\psr}[2]{\mbox{\cov@emphasized #1 $\rightarrow$ #2}}
%%%
@@ -329,9 +534,8 @@
% Modified 2001 Mar 27 so that italics are used without the user typing \it.
\newcommand{\fs}[1]
{
- \mbox{\small
+ \mbox{\small\cov@emphasized
$
- \it
\left[
\!\!
\begin{array}{l}
@@ -345,15 +549,14 @@
% Modified 1990 Dec 5 so that features are left aligned.
\newcommand{\lfs}[2]
{
- \mbox{$
- \it
+ \mbox{\cov@emphasized
+ $
\!\!
\begin{array}[t]{c}
#1
\\
\mbox{\small%
$
- \it
\left[
\!\!
\begin{array}{l}
@@ -411,7 +614,7 @@
\newcommand{\drs}[2]
{
{
- \it
+ \cov@emphasized
\begin{tabular}{|l|}
\hline
~ \vspace{-2ex} \\
@@ -430,7 +633,7 @@
\newcommand{\sdrs}[3]
{\begin{tabular}{l}
-\mbox{\it #1} \\
+\mbox{\cov@emphasized #1} \\
~ \\
\drs{#2}{#3}
\end{tabular}}
@@ -458,9 +661,15 @@
% exercise Environment for exercises, numbered by subsection.
% Optional argument for describing the exercise
% ("Project" or the like).
+%
+% New in 1.1 (2016-07-06):
+% We provide a covexercise environment and only (re)define
+% example if it does not yet exist or if redefinition is
+% forced by the "force" option. This prevents clashes
+% with packages/classes that roll their own exercise environment.
-% \bx Abbreviation for \begin{exercise}
-% \ex Abbreviation for \end{exercise}
+% \bx Abbreviation for \begin{covexercise}
+% \ex Abbreviation for \end{covexercise}
% reflist Environment for hanging-indented list
% (suitable for LSA-style reference list).
@@ -472,31 +681,52 @@
% large curly brackets. Good for alternatives
% within sentences or PS-rules.
-\newtheorem{exercise}{Exercise}[subsection]
+\newtheorem{covexercise}{Exercise}[subsection]
% Exercise numbering resets to 0 not only at the start of
% a subsection, but also at the start of a section or chapter
% even if it is not divided into subsections.
-\@addtoreset{exercise}{section}
-\@addtoreset{exercise}{chapter}
+\@addtoreset{covexercise}{section}
+\@addtoreset{covexercise}{chapter}
-\newcommand{\bx}{\begin{exercise}}
-\newcommand{\ex}{\end{exercise}}
+\newcommand{\bx}{\begin{covexercise}}
+\newcommand{\ex}{\end{covexercise}}
+
+\@ifundefined{exercise}{%
+ \newenvironment{exercise}{\begin{covexercise}}{\end{covexercise}}
+}{%
+\ifforceredef
+ \renewenvironment{exercise}{\begin{covexercise}}{\end{covexercise}}
+ \cov@warning{The exercise environment was already defined. Redefining it.}
+\else
+ \cov@warning{The exercise environment was already defined.^^J
+ Covington does not touch it.^^J
+ Use covexercise if you want to access covington's^^J
+ version, or use the force package option.}
+\fi
+}
+\newlength\reflistindent
+\setlength\reflistindent{3em}
+\newlength\reflistitemsep
+\setlength\reflistitemsep{6pt}
+\newlength\reflistparsep
+\setlength\reflistparsep{\parsep}
\@ifundefined{reflist}{
\newenvironment{reflist}{\begin{list}{}%
{\setlength{\labelwidth}{0pt}
\setlength{\labelsep}{0pt}
- \setlength{\leftmargin}{3em}
- \setlength{\itemindent}{-3em}
- \setlength{\listparindent}{-3em}
- \setlength{\itemsep}{6pt}}\item}{\end{list}}
+ \setlength{\leftmargin}{\reflistindent}
+ \setlength{\itemindent}{-\reflistindent}
+ \setlength{\listparindent}{-\reflistindent}
+ \setlength{\itemsep}{\reflistitemsep}
+ \setlength{\parsep}{\reflistparsep}}\item}{\end{list}}
}
% Modified 1992 Nov 8 to skip defining reflist if reflist is already
% defined. Permits using uga.sty with covingtn.sty.
\newcommand{\sentence}[1]
- {\begin{flushleft}{\it #1}\end{flushleft}}
+ {\begin{flushleft}{\cov@emphasized #1}\end{flushleft}}
\newcommand{\either}[2]
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/covington.tlpobj new/tlpkg/tlpobj/covington.tlpobj
--- old/tlpkg/tlpobj/covington.tlpobj 2016-04-14 18:54:29.000000000 +0200
+++ new/tlpkg/tlpobj/covington.tlpobj 2017-06-07 02:21:37.000000000 +0200
@@ -1,16 +1,17 @@
name covington
category Package
-revision 34064
+revision 44501
shortdesc Linguistic support
relocated 1
longdesc Numerous minor LaTeX enhancements for linguistics, including
-longdesc multiple accents on the same letter, interline glosses (word-by-
-longdesc word translations), Discourse Representation Structures, and
-longdesc example numbering.
-runfiles size=4
+longdesc multiple accents on the same letter, interline glosses
+longdesc (word-by-word translations), Discourse Representation
+longdesc Structures, and example numbering.
+runfiles size=6
RELOC/tex/latex/covington/covington.sty
catalogue-also gb4e
catalogue-ctan /macros/latex/contrib/covington
-catalogue-date 2015-08-03 05:43:12 +0200
-catalogue-license pd
+catalogue-date 2017-05-25 12:40:59 +0200
+catalogue-license lppl1.3
catalogue-topics linguistic
+catalogue-version 1.4
++++++ cprotect.doc.tar.xz ++++++
++++++ cprotect.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cprotect.tlpobj new/tlpkg/tlpobj/cprotect.tlpobj
--- old/tlpkg/tlpobj/cprotect.tlpobj 2016-04-14 18:54:30.000000000 +0200
+++ new/tlpkg/tlpobj/cprotect.tlpobj 2017-04-14 17:37:14.000000000 +0200
@@ -12,7 +12,7 @@
runfiles size=3
RELOC/tex/latex/cprotect/cprotect.sty
catalogue-ctan /macros/latex/contrib/cprotect
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl1.3
catalogue-topics verbatim
catalogue-version 1.0e
++++++ crbox.doc.tar.xz ++++++
++++++ crbox.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/crbox.tlpobj new/tlpkg/tlpobj/crbox.tlpobj
--- old/tlpkg/tlpobj/crbox.tlpobj 2016-04-14 18:54:30.000000000 +0200
+++ new/tlpkg/tlpobj/crbox.tlpobj 2017-04-14 17:37:15.000000000 +0200
@@ -8,7 +8,7 @@
runfiles size=1
RELOC/tex/latex/crbox/crbox.sty
catalogue-ctan /macros/latex/contrib/crbox
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl
catalogue-topics boxing typesetting decoration
catalogue-version 0.1
++++++ crimson.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/crimson/README new/doc/fonts/crimson/README
--- old/doc/fonts/crimson/README 2016-02-20 00:37:24.000000000 +0100
+++ new/doc/fonts/crimson/README 2017-03-17 23:01:03.000000000 +0100
@@ -1,5 +1,5 @@
This is the README for the crimson package,
-version 2016-02-19.
+version 2017-03-16.
This package provides LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX
support for the Crimson Text family of fonts, designed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/crimson.doc.tlpobj new/tlpkg/tlpobj/crimson.doc.tlpobj
--- old/tlpkg/tlpobj/crimson.doc.tlpobj 2016-04-14 18:54:30.000000000 +0200
+++ new/tlpkg/tlpobj/crimson.doc.tlpobj 2017-04-14 17:37:15.000000000 +0200
@@ -1,6 +1,6 @@
name crimson.doc
category Package
-revision 39782
+revision 43525
shortdesc doc files of crimson
relocated 1
docfiles size=12
++++++ crimson.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/crimson/crimson.sty new/tex/latex/crimson/crimson.sty
--- old/tex/latex/crimson/crimson.sty 2016-02-20 00:37:24.000000000 +0100
+++ new/tex/latex/crimson/crimson.sty 2017-03-17 23:01:05.000000000 +0100
@@ -1,5 +1,5 @@
\ProvidesPackage{crimson}[%
- 2016/02/06 (Bob Tennent) Supports crimson fonts for all LaTeX engines. ]
+ 2017/03/16 (Bob Tennent) Supports crimson fonts for all LaTeX engines. ]
\RequirePackage{ifxetex,ifluatex,textcomp}
@@ -12,10 +12,10 @@
\crimson@otffalse
\fi\fi
-\newcommand*{\crimson@scale}{1}
+\newcommand*{\Crimson@scale}{1}
\RequirePackage{xkeyval}
-\DeclareOptionX{scaled}{\renewcommand*{\crimson@scale}{#1}}
-\DeclareOptionX{scale}{\renewcommand*{\crimson@scale}{#1}}
+\DeclareOptionX{scaled}{\renewcommand*{\Crimson@scale}{#1}}
+\DeclareOptionX{scale}{\renewcommand*{\Crimson@scale}{#1}}
\newif\ifcrimson@semibold \crimson@semiboldfalse
@@ -49,7 +49,7 @@
\ifxetex\XeTeXtracingfonts=1\fi
\defaultfontfeatures{
Ligatures = TeX ,
- Scale = \crimson@scale,
+ Scale = \Crimson@scale,
Extension = .otf ,
}
\setmainfont
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/crimson.tlpobj new/tlpkg/tlpobj/crimson.tlpobj
--- old/tlpkg/tlpobj/crimson.tlpobj 2016-04-14 18:54:30.000000000 +0200
+++ new/tlpkg/tlpobj/crimson.tlpobj 2017-04-14 17:37:15.000000000 +0200
@@ -1,6 +1,6 @@
name crimson
category Package
-revision 39782
+revision 43525
shortdesc Crimson fonts with LaTeX support
relocated 1
longdesc This package provides LaTeX, pdfLaTeX, XeLaTeX, and LuaLaTeX
@@ -113,6 +113,6 @@
RELOC/tex/latex/crimson/TS1Crimson-TLF.fd
RELOC/tex/latex/crimson/crimson.sty
catalogue-ctan /fonts/crimson
-catalogue-date 2016-02-19 15:20:28 +0100
+catalogue-date 2017-03-17 08:10:17 +0100
catalogue-license ofl
catalogue-topics font-serif font-otf font-type1
++++++ crop.doc.tar.xz ++++++
++++++ crop.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/crop.tlpobj new/tlpkg/tlpobj/crop.tlpobj
--- old/tlpkg/tlpobj/crop.tlpobj 2016-04-14 18:54:32.000000000 +0200
+++ new/tlpkg/tlpobj/crop.tlpobj 2017-04-14 17:37:16.000000000 +0200
@@ -18,7 +18,7 @@
RELOC/tex/latex/crop/crop.sty
catalogue-also zwpagelayout
catalogue-ctan /macros/latex/contrib/crop
-catalogue-date 2015-08-08 19:53:23 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl
catalogue-topics layout-page
catalogue-version 1.5
++++++ crossreference.doc.tar.xz ++++++
++++++ crossreference.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/crossreference.tlpobj new/tlpkg/tlpobj/crossreference.tlpobj
--- old/tlpkg/tlpobj/crossreference.tlpobj 2016-04-14 18:54:32.000000000 +0200
+++ new/tlpkg/tlpobj/crossreference.tlpobj 2017-04-14 17:37:16.000000000 +0200
@@ -9,6 +9,6 @@
runfiles size=1
RELOC/tex/latex/crossreference/crossreference.sty
catalogue-ctan /macros/latex/contrib/crossreference
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl
catalogue-topics label-ref
++++++ crossrefware.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/man/man1/bbl2bib.1 new/texmf-dist/doc/man/man1/bbl2bib.1
--- old/texmf-dist/doc/man/man1/bbl2bib.1 1970-01-01 01:00:00.000000000 +0100
+++ new/texmf-dist/doc/man/man1/bbl2bib.1 2017-04-24 00:08:21.000000000 +0200
@@ -0,0 +1,202 @@
+.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{
+. if \nF \{
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{
+. nr % 0
+. nr F 2
+. \}
+. \}
+.\}
+.rr rF
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "bbl2bib 1"
+.TH bbl2bib 1 "2017-04-23" "" "CROSSREF LIBRARY"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+bbl2bib.pl \- convert thebibliography environment to a bib file
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+bbl2bib.pl [\fB\-o\fR \fIoutput\fR] \fIfile\fR
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+.IP "\fB\-o\fR \fIoutput\fR" 4
+.IX Item "-o output"
+Output file. If this option is not used, the name for the
+output file is formed by changing the extension to \f(CW\*(C`.bib\*(C'\fR
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+The script tries to reconstruct a \f(CW\*(C`bib\*(C'\fR file from the corresponding
+\&\f(CW\*(C`thebibliography\*(C'\fR environment. One can argue that this operation is
+akin to reconstructing a cow from the steak. The way the script does
+it is searching for the entry in the \s-1MR\s0 database, and
+creating the corresponding BibTeX fields.
+.PP
+The script reads a TeX or Bbl file and extracts from it the
+\&\f(CW\*(C`thebibliography\*(C'\fR environment. For each bibitem it creates a plain
+text bibliography entry, and then tries to match it in
+the database.
+=head1 \s-1INPUT FILE\s0
+.PP
+We assume some structure of the input file:
+.IP "1." 4
+The bibliography is contained between the lines
+.Sp
+.Vb 1
+\& \ebegin{thebibliography}...
+.Ve
+.Sp
+and
+.Sp
+.Vb 1
+\& \eend{thebibliography}
+.Ve
+.IP "2." 4
+Each bibliography item starts from the line
+.Sp
+.Vb 1
+\& \ebibitem[...]{....}
+.Ve
+.SH "EXAMPLES"
+.IX Header "EXAMPLES"
+.Vb 3
+\& bbl2bib \-o \- file.tex > result.bib
+\& bbl2bib \-o result.bib file.bbl
+\& bbl2bib file.tex
+.Ve
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Boris Veytsman
+.SH "COPYRIGHT AND LICENSE"
+.IX Header "COPYRIGHT AND LICENSE"
+Copyright (C) 2014\-2017 Boris Veytsman
+.PP
+This is free software. You may redistribute copies of it under the
+terms of the \s-1GNU\s0 General Public License
+http://www.gnu.org/licenses/gpl.html. There is \s-1NO WARRANTY,\s0 to the
+extent permitted by law.
Binary files old/texmf-dist/doc/man/man1/bbl2bib.man1.pdf and new/texmf-dist/doc/man/man1/bbl2bib.man1.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/man/man1/bibdoiadd.1 new/texmf-dist/doc/man/man1/bibdoiadd.1
--- old/texmf-dist/doc/man/man1/bibdoiadd.1 2016-02-15 23:07:53.000000000 +0100
+++ new/texmf-dist/doc/man/man1/bibdoiadd.1 2017-04-24 00:08:21.000000000 +0200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07)
+.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -38,6 +38,8 @@
. ds PI \(*p
. ds L" ``
. ds R" ''
+. ds C`
+. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
@@ -48,17 +50,24 @@
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
-.ie \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
..
-. nr % 0
-. rr F
-.\}
-.el \{\
-. de IX
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{
+. if \nF \{
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
..
+. if !\nF==2 \{
+. nr % 0
+. nr F 2
+. \}
+. \}
.\}
+.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
@@ -124,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "bibdoiadd 1"
-.TH bibdoiadd 1 "2016-02-14" "" "CROSSREF LIBRARY"
+.TH bibdoiadd 1 "2017-04-09" "" "CROSSREF LIBRARY"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -133,13 +142,18 @@
bibdoiadd.pl \- add DOI numbers to papers in a given bib file
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
-bibdoiadd [\fB\-c\fR \fIconfig_file\fR] [\fB\-f\fR] [\fB\-o\fR \fIoutput\fR] \fIbib_file\fR
+bibdoiadd [\fB\-c\fR \fIconfig_file\fR] [\fB\-e\fR 1|0] [\fB\-f\fR] [\fB\-o\fR \fIoutput\fR] \fIbib_file\fR
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-c\fR \fIconfig_file\fR" 4
.IX Item "-c config_file"
Configuration file. If this file is absent, some defaults are used.
See below for its format.
+.IP "\fB\-e\fR" 4
+.IX Item "-e"
+If 1 (default), add empty doi if a doi cannot be found. This prevents
+repeated searches for the same entries if you add new entries to the
+file. Calling \f(CW\*(C`\-e 0\*(C'\fR suppresses this behavior.
.IP "\fB\-f\fR" 4
.IX Item "-f"
Force checking doi number even if one is present
@@ -151,7 +165,7 @@
.IX Header "DESCRIPTION"
The script reads a BibTeX file. It checks whether the entries have
DOIs. If now, tries to contact http://www.crossref.org to get the
-corresponding \s-1DOI\s0. The result is a BibTeX file with the fields
+corresponding \s-1DOI. \s0 The result is a BibTeX file with the fields
\&\f(CW\*(C`doi=...\*(C'\fR added.
.PP
The name of the output file is either set by the \fB\-o\fR option or
@@ -175,23 +189,23 @@
\& $field = value ;
.Ve
.PP
-The important parameters are \f(CW$mode\fR (\f(CW\*(Aqfree\*(Aq\fR or \f(CW\*(Aqpaid\*(Aq\fR,
+The important parameters are \f(CW$mode\fR (\f(CW\*(Aqfree\*(Aq\fR or \f(CW\*(Aqpaid\*(Aq\fR),
\&\f(CW$email\fR (for free users) and \f(CW$username\fR & \f(CW$password\fR for paid
members.
.SH "EXAMPLES"
.IX Header "EXAMPLES"
.Vb 2
-\& bibdoiadd \-c bibdoiadd.cfg citations.bib > result.bib
-\& bibdoiadd \-c bibdoiadd.cfg citations.bib \-o result.bib
+\& bibdoiadd \-c bibdoiadd.cfg \-o \- citations.bib > result.bib
+\& bibdoiadd \-c bibdoiadd.cfg \-o result.bib citations.bib
.Ve
.SH "AUTHOR"
.IX Header "AUTHOR"
Boris Veytsman
.SH "COPYRIGHT AND LICENSE"
.IX Header "COPYRIGHT AND LICENSE"
-Copyright (C) 2014\-2016 Boris Veytsman
+Copyright (C) 2014\-2017 Boris Veytsman
.PP
This is free software. You may redistribute copies of it under the
terms of the \s-1GNU\s0 General Public License
-http://www.gnu.org/licenses/gpl.html. There is \s-1NO\s0 \s-1WARRANTY\s0, to the
+http://www.gnu.org/licenses/gpl.html. There is \s-1NO WARRANTY,\s0 to the
extent permitted by law.
Binary files old/texmf-dist/doc/man/man1/bibdoiadd.man1.pdf and new/texmf-dist/doc/man/man1/bibdoiadd.man1.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/man/man1/bibmradd.1 new/texmf-dist/doc/man/man1/bibmradd.1
--- old/texmf-dist/doc/man/man1/bibmradd.1 1970-01-01 01:00:00.000000000 +0100
+++ new/texmf-dist/doc/man/man1/bibmradd.1 2017-04-17 00:25:15.000000000 +0200
@@ -0,0 +1,182 @@
+.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{
+. if \nF \{
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{
+. nr % 0
+. nr F 2
+. \}
+. \}
+.\}
+.rr rF
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "bibmradd 1"
+.TH bibmradd 1 "2017-04-03" "" "CROSSREF LIBRARY"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+bibmradd.pl \- add MR numbers to papers in a given bib file
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+bibmradd [\-d] [\fB\-f\fR] [\fB\-e\fR 1|0] [\fB\-o\fR \fIoutput\fR] \fIbib_file\fR
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+.IP "\fB\-d\fR" 4
+.IX Item "-d"
+Debug mode
+.IP "\fB\-e\fR" 4
+.IX Item "-e"
+If 1 (default), add an empty mrnumber if a mr cannot be found. This
+prevents repeated searches for the same entries if you add new entries
+to the file. Calling \f(CW\*(C`\-e 0\*(C'\fR suppresses this behavior.
+.IP "\fB\-f\fR" 4
+.IX Item "-f"
+Force searching for \s-1MR\s0 numbers even if the entry already has one.
+.IP "\fB\-o\fR \fIoutput\fR" 4
+.IX Item "-o output"
+Output file. If this option is not used, the name for the
+output file is formed by adding \f(CW\*(C`_mr\*(C'\fR to the input file
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+The script reads a BibTeX file. It checks whether the entries have
+mrnumberss. If not, tries to contact internet to get the numbers. The
+result is a BibTeX file with the fields
+\&\f(CW\*(C`mrnumber=...\*(C'\fR added.
+.PP
+The name of the output file is either set by the \fB\-o\fR option or
+is derived by adding the suffix \f(CW\*(C`_mr\*(C'\fR to the output file.
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Boris Veytsman
+.SH "COPYRIGHT AND LICENSE"
+.IX Header "COPYRIGHT AND LICENSE"
+Copyright (C) 2014\-2017 Boris Veytsman
+.PP
+This is free software. You may redistribute copies of it under the
+terms of the \s-1GNU\s0 General Public License
+http://www.gnu.org/licenses/gpl.html. There is \s-1NO WARRANTY,\s0 to the
+extent permitted by law.
Binary files old/texmf-dist/doc/man/man1/bibmradd.man1.pdf and new/texmf-dist/doc/man/man1/bibmradd.man1.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/man/man1/bibzbladd.1 new/texmf-dist/doc/man/man1/bibzbladd.1
--- old/texmf-dist/doc/man/man1/bibzbladd.1 2016-02-15 23:07:53.000000000 +0100
+++ new/texmf-dist/doc/man/man1/bibzbladd.1 2017-04-24 00:08:21.000000000 +0200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07)
+.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -38,6 +38,8 @@
. ds PI \(*p
. ds L" ``
. ds R" ''
+. ds C`
+. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
@@ -48,17 +50,24 @@
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
-.ie \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
..
-. nr % 0
-. rr F
-.\}
-.el \{\
-. de IX
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{
+. if \nF \{
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
..
+. if !\nF==2 \{
+. nr % 0
+. nr F 2
+. \}
+. \}
.\}
+.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
@@ -124,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "bibzbladd 1"
-.TH bibzbladd 1 "2016-02-14" "" "CROSSREF LIBRARY"
+.TH bibzbladd 1 "2017-04-02" "" "CROSSREF LIBRARY"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -133,9 +142,17 @@
bibzbladd.pl \- add Zbl numbers to papers in a given bib file
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
-bibzbladd [\fB\-f\fR] [\fB\-o\fR \fIoutput\fR] \fIbib_file\fR
+bibzbladd [\-d] [\fB\-f\fR] [\fB\-e\fR 1|0] [\fB\-o\fR \fIoutput\fR] \fIbib_file\fR
.SH "OPTIONS"
.IX Header "OPTIONS"
+.IP "\fB\-d\fR" 4
+.IX Item "-d"
+Debug mode
+.IP "\fB\-e\fR" 4
+.IX Item "-e"
+If 1 (default), add an empty zblnumber if a zbl cannot be found. This
+prevents repeated searches for the same entries if you add new entries
+to the file. Calling \f(CW\*(C`\-e 0\*(C'\fR suppresses this behavior.
.IP "\fB\-f\fR" 4
.IX Item "-f"
Force searching for Zbl numbers even if the entry already has one.
@@ -157,9 +174,9 @@
Boris Veytsman
.SH "COPYRIGHT AND LICENSE"
.IX Header "COPYRIGHT AND LICENSE"
-Copyright (C) 2014\-2016 Boris Veytsman
+Copyright (C) 2014\-2017 Boris Veytsman
.PP
This is free software. You may redistribute copies of it under the
terms of the \s-1GNU\s0 General Public License
-http://www.gnu.org/licenses/gpl.html. There is \s-1NO\s0 \s-1WARRANTY\s0, to the
+http://www.gnu.org/licenses/gpl.html. There is \s-1NO WARRANTY,\s0 to the
extent permitted by law.
Binary files old/texmf-dist/doc/man/man1/bibzbladd.man1.pdf and new/texmf-dist/doc/man/man1/bibzbladd.man1.pdf differ
Binary files old/texmf-dist/doc/man/man1/ltx2crossrefxml.man1.pdf and new/texmf-dist/doc/man/man1/ltx2crossrefxml.man1.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/support/crossrefware/Makefile new/texmf-dist/doc/support/crossrefware/Makefile
--- old/texmf-dist/doc/support/crossrefware/Makefile 2016-02-15 23:07:53.000000000 +0100
+++ new/texmf-dist/doc/support/crossrefware/Makefile 2017-04-17 00:25:15.000000000 +0200
@@ -1,7 +1,9 @@
SCRIPTS = \
ltx2crossrefxml.pl \
bibdoiadd.pl \
- bibzbladd.pl
+ bibzbladd.pl \
+ bibmradd.pl \
+ bbl2bib.pl
MAN1 = ${SCRIPTS:%.pl=%.1}
@@ -20,7 +22,8 @@
clean:
- $(RM) *.aux *.toc *.log *.tex *.idx *.ilg *.ind *.out *.zip *.tgz
+ $(RM) *.aux *.toc *.log *.tex *.idx *.ilg *.ind *.out *.zip *.tgz \
+ *~
distclean: clean
$(RM) *.pdf *.1 *.3
@@ -37,5 +40,5 @@
pod2latex -modify -full -prefile head.ltx -out $@ $+
archive: all clean
- cd ..; tar -czvf crossrefware.tgz crossref --exclude CVS \
- --exclude test --exclude *.bib
\ No newline at end of file
+ cd ..; tar -czvf crossrefware.tgz --exclude 'CVS' \
+ --exclude 'test' --exclude *.bib crossref
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/support/crossrefware/README new/texmf-dist/doc/support/crossrefware/README
--- old/texmf-dist/doc/support/crossrefware/README 2016-02-15 23:07:53.000000000 +0100
+++ new/texmf-dist/doc/support/crossrefware/README 2017-04-24 00:08:21.000000000 +0200
@@ -1,11 +1,16 @@
Crossrefware Bundle
- version 2.0
+ version 2.1a
-Scripts useful for working with crossref.org and Zentralblatt MATH.
+Scripts useful for working with Crossref, MathSciNet and Zentralblatt MATH.
+
+This work was commissioned by The Saint Lois University and The
+Princeton University (Mathematics Department)
bibdoiadd.pl - add DOI numbers to papers in a given bib file
bibzbladd.pl - add Zbl numbers to papers in a given bib file
+bibmradd.pl - add MR numbers to papers in a given bib file
+bbl2bib.pl - convert `thebibliography' environment to a bib file
ltx2crossrefxml.pl - a tool for creation of XML files for submitting to crossref.org
The scripts use bibtexperllibs libraries from CTAN
@@ -21,6 +26,13 @@
Changes:
+ Version 2.1a: Bug in bbl2bib corrected
+
+ Version 2.1: New options to add empty doi and zbl when doi or zbl
+ are not found to prevent repeated searches.
+ Added bibmradd.pl
+ Added bbl2bib.pl
+
Version 2.0: Moved to BibTeX::Parser suite.
Now we use new Zbmath interface.
Now we use bibtexperllibs libraries
Binary files old/texmf-dist/doc/support/crossrefware/crossrefware.pdf and new/texmf-dist/doc/support/crossrefware/crossrefware.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/support/crossrefware/head.ltx new/texmf-dist/doc/support/crossrefware/head.ltx
--- old/texmf-dist/doc/support/crossrefware/head.ltx 2016-02-15 23:07:53.000000000 +0100
+++ new/texmf-dist/doc/support/crossrefware/head.ltx 2017-04-17 00:25:15.000000000 +0200
@@ -1,18 +1,39 @@
\documentclass{article}
\usepackage{makeidx}
-\usepackage{librecaslon}
+\usepackage[osf]{mathpazo}
\usepackage[hidelinks]{hyperref}
\makeindex
\begin{document}
-\title{Crossrefware documentation}
-\author{Boris Veytsman}
+\sloppy
+\title{Crossrefware documentation\thanks{This work was commissioned by
+ The Saint Lois University and The Princeton University (Mathematics
+ Department)}}
+\author{Boris Veytsman\thanks{borisv@lk.net, boris@varphi.com}}
\maketitle
\tableofcontents
-These scripts can be used to submit files to Crossref, check and add
-doi numbers and ZbMath numbers to papers.
+\section{Introduction}
+These scripts can be used to submit files to Crossref, check and add
+doi numbers, MathSciNet numbers and ZbMath numbers to papers, and to
+convert `bbl' files to `bib' files.
I am grateful to Josko Plazonic from Princeton Math Dept whose
(unpublished) Python script was an inspiration for this suite.
+The script \path{ltx2crossrefxml} is used to extract the information
+from a \LaTeX\ file and generate an XML file suitable for submission
+to Crossref (the organization that keeps DOI numbering system).
+
+Several scripts, \path{bibdoiadd}, \path{bibmradd} and \path{bibmradd}
+take a \path{bib} file, and add to each entry a DOI, MR or ZBL number
+correspondingly, if they can find this entry in the corresponding
+database.
+
+Script \path{bbl2bib} tries to reconstruct a \path{bib} file from the
+corresponding \path{thebibliography} environment. One can argue that
+this operation is akin to reconstructing a cow from the steak. The
+way the script does it is searching for the entry in the MR database,
+and creating the corresponding Bib\TeX\ fields.
+
+Below are manual pages for these scripts.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/crossrefware.doc.tlpobj new/tlpkg/tlpobj/crossrefware.doc.tlpobj
--- old/tlpkg/tlpobj/crossrefware.doc.tlpobj 2016-04-14 18:54:32.000000000 +0200
+++ new/tlpkg/tlpobj/crossrefware.doc.tlpobj 2017-04-24 02:07:06.000000000 +0200
@@ -1,10 +1,14 @@
name crossrefware.doc
category Package
-revision 39727
+revision 43993
shortdesc doc files of crossrefware
-docfiles size=59
+docfiles size=58
+ texmf-dist/doc/man/man1/bbl2bib.1
+ texmf-dist/doc/man/man1/bbl2bib.man1.pdf
texmf-dist/doc/man/man1/bibdoiadd.1
texmf-dist/doc/man/man1/bibdoiadd.man1.pdf
+ texmf-dist/doc/man/man1/bibmradd.1
+ texmf-dist/doc/man/man1/bibmradd.man1.pdf
texmf-dist/doc/man/man1/bibzbladd.1
texmf-dist/doc/man/man1/bibzbladd.man1.pdf
texmf-dist/doc/man/man1/ltx2crossrefxml.1
++++++ crossrefware.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/scripts/crossrefware/bbl2bib.pl new/texmf-dist/scripts/crossrefware/bbl2bib.pl
--- old/texmf-dist/scripts/crossrefware/bbl2bib.pl 1970-01-01 01:00:00.000000000 +0100
+++ new/texmf-dist/scripts/crossrefware/bbl2bib.pl 2017-04-24 00:08:21.000000000 +0200
@@ -0,0 +1,259 @@
+#!/usr/bin/env perl
+
+=pod
+
+=head1 NAME
+
+bbl2bib.pl - convert thebibliography environment to a bib file
+
+=head1 SYNOPSIS
+
+bbl2bib.pl [B<-o> I<output>] I<file>
+
+=head1 OPTIONS
+
+=over 4
+
+
+
+=item B<-o> I<output>
+
+Output file. If this option is not used, the name for the
+output file is formed by changing the extension to C<.bib>
+
+
+=back
+
+=head1 DESCRIPTION
+
+The script tries to reconstruct a C<bib> file from the corresponding
+C<thebibliography> environment. One can argue that this operation is
+akin to reconstructing a cow from the steak. The way the script does
+it is searching for the entry in the MR database, and
+creating the corresponding BibTeX fields.
+
+The script reads a TeX or Bbl file and extracts from it the
+C<thebibliography> environment. For each bibitem it creates a plain
+text bibliography entry, and then tries to match it in
+the database.
+=head1 INPUT FILE
+
+We assume some structure of the input file:
+
+=over 4
+
+=item 1.
+
+The bibliography is contained between the lines
+
+ \begin{thebibliography}...
+
+and
+
+ \end{thebibliography}
+
+=item 2.
+
+Each bibliography item starts from the line
+
+ \bibitem[...]{....}
+
+=back
+
+
+
+=head1 EXAMPLES
+
+ bbl2bib -o - file.tex > result.bib
+ bbl2bib -o result.bib file.bbl
+ bbl2bib file.tex
+
+=head1 AUTHOR
+
+Boris Veytsman
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (C) 2014-2017 Boris Veytsman
+
+This is free software. You may redistribute copies of it under the
+terms of the GNU General Public License
+Lhttp://www.gnu.org/licenses/gpl.html. There is NO WARRANTY, to the
+extent permitted by law.
+
+=cut
+
+use strict;
+BEGIN {
+ # find files relative to our installed location within TeX Live
+ chomp(my $TLMaster = `kpsewhich -var-value=SELFAUTOPARENT`); # TL root
+ if (length($TLMaster)) {
+ unshift @INC, "$TLMaster/texmf-dist/scripts/bibtexperllibs";
+ }
+}
+use IO::File;
+use BibTeX::Parser;
+use FileHandle;
+use LaTeX::ToUnicode qw (convert);
+use Getopt::Std;
+use URI::Escape;
+use LWP::Simple;
+
+my $USAGE="USAGE: $0 [-o output] file\n";
+my $VERSION = <http://www.gnu.org/licenses/gpl.html. There is NO WARRANTY, to the
+extent permitted by law.
+$USAGE
+END
+our %opts;
+getopts('c:o:s:hV',\%opts) or die $USAGE;
+
+if ($opts{h} || $opts{V}){
+ print $VERSION;
+ exit 0;
+}
+
+################################################################
+# Defaults and parameters
+################################################################
+
+my $inputfile = shift;
+
+my $outputfile = $inputfile;
+
+$outputfile =~ s/\.([^\.]*)$/.bib/;
+
+if (exists $opts{o}) {
+ $outputfile = $opts{o};
+}
+
+
+
+my $input= IO::File->new($inputfile) or
+ die "Cannot find Bbl or TeX file $inputfile\n$USAGE\n";
+my $output = IO::File->new("> $outputfile") or
+ die "Cannot write to $outputfile\n$USAGE\n";
+
+my $userAgent = LWP::UserAgent->new;
+
+
+# Bibitem is a hash with the entries 'key', 'text', 'mr',
+# 'zbl'
+my $bibitem;
+
+while (<$input>) {
+ if (!(/\\begin\{thebibliography\}/../\\end\{thebibliography\}/) ||
+ /\\begin\{thebibliography\}/ || /\\end\{thebibliography\}/) {
+ next;
+ }
+ if (/\\bibitem(\[[^\]]*\])?\{([^\}]*)\}/) {
+ ProcessBibitem($bibitem);
+ $bibitem = undef;
+ $bibitem->{key}=$2;
+ $bibitem->{text}="";
+ }
+ if (!/^\s*$/) {
+ $bibitem -> {text} .= $_;
+ }
+}
+ProcessBibitem($bibitem);
+
+
+exit 0;
+
+sub ProcessBibitem {
+ my $bibitem = shift;
+ my $key = $bibitem->{key};
+ my $text=$bibitem->{text};
+ if (!length($text) || $text =~ /^\s+$/s) {
+ return;
+ }
+
+ my $printtext = $text;
+ $printtext =~ s/^(.)/% $1/mg;
+ print $output "$printtext";
+ $text =~ s/\n/ /mg;
+ $text =~ s/\\bibitem(\[[^\]]*\])?\{[^\}]*\}//;
+
+ # Arxiv entry?
+ if ($text =~ s/\\arxiv\{([^\}]+)\}\.?//) {
+ $bibitem->{arxiv}=$1;
+ }
+
+ # Mr number exists?
+ if ($text =~ s/\\mr\{([^\}]+)\}\.?//) {
+ $bibitem->{mr}=$1;
+ }
+
+ # zbl number exists?
+ if ($text =~ s/\\zbl\{([^\}]+)\}\.?//) {
+ $bibitem->{zbl}=$1;
+ }
+
+ # doi number exists?
+ if ($text =~ s/\\doi\{([^\}]+)\}\.?//) {
+ $bibitem->{doi}=$1;
+ }
+
+ $bibitem->{bib} = SearchMref($bibitem);
+ PrintBibitem($bibitem);
+ return;
+}
+
+
+sub SearchMref {
+ my $bibitem = shift;
+ my $mirror = "http://www.ams.org/mathscinet-mref";
+ my $string=uri_escape_utf8($bibitem->{text});
+ my $response = $userAgent->get("$mirror?ref=$string&dataType=bibtex") ->
+ decoded_content();
+ if ($response =~ /<pre>(.*)<\/pre>/s) {
+ my $bib= $1;
+ my $fh = new FileHandle;
+ open $fh, "<", \$bib;
+ my $parser = new BibTeX::Parser($fh);
+ my $entry = $parser->next;
+ if (ref($entry) && $entry->parse_ok()) {
+ $entry->key($bibitem->{key});
+ return ($entry);
+ }
+ }
+}
+
+
+
+
+sub PrintBibitem {
+ print $output "\n";
+ my $bibitem = shift;
+ if (!ref($bibitem->{bib})) {
+ return;
+ }
+ my $entry=$bibitem->{bib};
+ if ($bibitem->{mr} && ! $entry->field('mrnumber')) {
+ $entry->field('mrnumber', $bibitem->{mr});
+ }
+ if ($entry->field('mrnumber')) {
+ my $mr=$entry->field('mrnumber');
+ while (length($mr)<7) {
+ $mr = "0$mr";
+ }
+ $mr=$entry->field('mrnumber', $mr);
+ }
+ if ($bibitem->{zbl} && ! $entry->field('zblnumber')) {
+ $entry->field('zblnumber', $bibitem->{zbl});
+ }
+ if ($bibitem->{doi} && ! $entry->field('doi')) {
+ $entry->field('doi', $bibitem->{doi});
+ }
+ if ($bibitem->{arxiv} && ! $entry->field('arxiv')) {
+ $entry->field('arxiv', $bibitem->{arxiv});
+ }
+
+ print $output $entry->to_string(), "\n\n";
+}
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/scripts/crossrefware/bibdoiadd.pl new/texmf-dist/scripts/crossrefware/bibdoiadd.pl
--- old/texmf-dist/scripts/crossrefware/bibdoiadd.pl 2016-02-15 23:07:53.000000000 +0100
+++ new/texmf-dist/scripts/crossrefware/bibdoiadd.pl 2017-04-17 00:25:15.000000000 +0200
@@ -8,7 +8,7 @@
=head1 SYNOPSIS
-bibdoiadd [B<-c> I] [B<-f>] [B<-o> I<output>] I
+bibdoiadd [B<-c> I] [B<-e> 1|0] [B<-f>] [B<-o> I<output>] I
=head1 OPTIONS
@@ -19,6 +19,12 @@
Configuration file. If this file is absent, some defaults are used.
See below for its format.
+=item B<-e>
+
+If 1 (default), add empty doi if a doi cannot be found. This prevents
+repeated searches for the same entries if you add new entries to the
+file. Calling C<-e 0> suppresses this behavior.
+
=item B<-f>
Force checking doi number even if one is present
@@ -59,15 +65,15 @@
$field = value ;
-The important parameters are C<$mode> (C<'free'> or C<'paid'>,
+The important parameters are C<$mode> (C<'free'> or C<'paid'>),
C<$email> (for free users) and C<$username> & C<$password> for paid
members.
=head1 EXAMPLES
- bibdoiadd -c bibdoiadd.cfg citations.bib > result.bib
- bibdoiadd -c bibdoiadd.cfg citations.bib -o result.bib
+ bibdoiadd -c bibdoiadd.cfg -o - citations.bib > result.bib
+ bibdoiadd -c bibdoiadd.cfg -o result.bib citations.bib
=head1 AUTHOR
@@ -75,7 +81,7 @@
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2014-2016 Boris Veytsman
+Copyright (C) 2014-2017 Boris Veytsman
This is free software. You may redistribute copies of it under the
terms of the GNU General Public License
@@ -99,17 +105,17 @@
use URI::Escape;
use LWP::Simple;
-my $USAGE="USAGE: $0 [-c config] [-f] [-o output] file\n";
+my $USAGE="USAGE: $0 [-c config] [-e 1|0] [-f] [-o output] file\n";
my $VERSION = <http://www.gnu.org/licenses/gpl.html. There is NO WARRANTY, to the
extent permitted by law.
$USAGE
END
-my %opts;
-getopts('fc:o:hV',\%opts) or die $USAGE;
+our %opts;
+getopts('fe:c:o:hV',\%opts) or die $USAGE;
if ($opts{h} || $opts{V}){
print $VERSION;
@@ -126,12 +132,15 @@
$outputfile =~ s/\.([^\.]*)$/_doi.$1/;
-if ($opts{o}) {
+if (exists $opts{o}) {
$outputfile = $opts{o};
}
my $forceSearch=$opts{f};
-
+my $forceEmpty = 1;
+if (exists $opts{e}) {
+ $forceEmpty = $opts{e};
+}
our $mode='free';
our $email;
@@ -196,7 +205,7 @@
my $doi = GetDoi($prefix, $entry);
- if (length($doi)) {
+ if (length($doi) || $forceEmpty) {
$entry->field('doi',$doi);
}
print $output $entry->to_string(), "\n\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/scripts/crossrefware/bibmradd.pl new/texmf-dist/scripts/crossrefware/bibmradd.pl
--- old/texmf-dist/scripts/crossrefware/bibmradd.pl 1970-01-01 01:00:00.000000000 +0100
+++ new/texmf-dist/scripts/crossrefware/bibmradd.pl 2017-04-17 00:25:15.000000000 +0200
@@ -0,0 +1,210 @@
+#!/usr/bin/env perl
+
+=pod
+
+=head1 NAME
+
+bibmradd.pl - add MR numbers to papers in a given bib file
+
+=head1 SYNOPSIS
+
+bibmradd [-d] [B<-f>] [B<-e> 1|0] [B<-o> I<output>] I
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-d>
+
+Debug mode
+
+=item B<-e>
+
+If 1 (default), add an empty mrnumber if a mr cannot be found. This
+prevents repeated searches for the same entries if you add new entries
+to the file. Calling C<-e 0> suppresses this behavior.
+
+
+=item B<-f>
+
+Force searching for MR numbers even if the entry already has one.
+
+=item B<-o> I<output>
+
+Output file. If this option is not used, the name for the
+output file is formed by adding C<_mr> to the input file
+
+=back
+
+=head1 DESCRIPTION
+
+The script reads a BibTeX file. It checks whether the entries have
+mrnumberss. If not, tries to contact internet to get the numbers. The
+result is a BibTeX file with the fields
+C added.
+
+The name of the output file is either set by the B<-o> option or
+is derived by adding the suffix C<_mr> to the output file.
+
+=head1 AUTHOR
+
+Boris Veytsman
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (C) 2014-2017 Boris Veytsman
+
+This is free software. You may redistribute copies of it under the
+terms of the GNU General Public License
+Lhttp://www.gnu.org/licenses/gpl.html. There is NO WARRANTY, to the
+extent permitted by law.
+
+=cut
+
+use strict;
+BEGIN {
+ # find files relative to our installed location within TeX Live
+ chomp(my $TLMaster = `kpsewhich -var-value=SELFAUTOPARENT`); # TL root
+ if (length($TLMaster)) {
+ unshift @INC, "$TLMaster/texmf-dist/scripts/bibtexperllibs";
+ }
+}
+use IO::File;
+use BibTeX::Parser;
+use Getopt::Std;
+use URI::Escape;
+use LWP::UserAgent;
+$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}=0;
+
+my $USAGE="USAGE: $0 [-d] [-e 1|0] [-f] [-o output] file\n";
+my $VERSION = <http://www.gnu.org/licenses/gpl.html. There is NO WARRANTY, to the
+extent permitted by law.
+$USAGE
+END
+my %opts;
+getopts('de:fo:hV',\%opts) or die $USAGE;
+
+if ($opts{h} || $opts{V}){
+ print $VERSION;
+ exit 0;
+}
+
+################################################################
+# Defaults and parameters
+################################################################
+
+my $inputfile = shift;
+
+my $outputfile = $inputfile;
+
+$outputfile =~ s/\.([^\.]*)$/_mr.$1/;
+
+if ($opts{o}) {
+ $outputfile = $opts{o};
+}
+
+my $forceSearch=$opts{f};
+
+my $forceEmpty = 1;
+if (exists $opts{e}) {
+ $forceEmpty = $opts{e};
+}
+
+my $debug = $opts{d};
+
+my $input= IO::File->new($inputfile) or
+ die "Cannot find BibTeX file $inputfile\n$USAGE\n";
+my $output = IO::File->new("> $outputfile") or
+ die "Cannot write to $outputfile\n$USAGE\n";
+
+my $parser=new BibTeX::Parser($input);
+
+
+
+# Creating the HTTP parameters
+my $mirror =
+ "http://www.ams.org/mathscinet-mref";
+my $userAgent = LWP::UserAgent->new;
+
+while (my $entry = $parser->next ) {
+ if (!$entry->parse_ok()) {
+ print STDERR "Cannot understand entry: ";
+ $entry->print(*STDERR);
+ print STDERR "Skipping this entry\n";
+ next;
+ }
+ if ($entry->has('mrnumber') && !$forceSearch) {
+ print $output $entry->raw_bibtex(), "\n\n";
+ if ($debug) {
+ print STDERR "DEBUG: entry ", $entry->key(),
+ " has mrnumber ", $entry->field('mrnumber'),
+ " and no forced search is requested\n";
+ }
+ next;
+ }
+
+
+ # Now we have an entry with no MR. Let us get to work.
+ if ($debug) {
+ print STDERR "DEBUG: Searching for mr number for entry ",
+ $entry->key, "\n";
+ }
+ my $mr = GetMr($entry, $userAgent, $mirror);
+ if (length($mr) || $forceEmpty) {
+ $entry->field('mrnumber', $mr);
+ }
+ print $output $entry->to_string(), "\n\n";
+
+}
+
+$input->close();
+$output->close();
+exit 0;
+
+###############################################################
+# Getting one MR
+###############################################################
+
+sub GetMr {
+ my $entry=shift;
+ my $userAgent=shift;
+ my $mirror=shift;
+
+ my @query;
+
+ my $string=uri_escape_utf8($entry->to_string());
+
+ if ($debug) {
+ print STDERR "DEBUG: query: $mirror?ref=$string&dataType=bibtex\n" ;
+ }
+
+
+ my $response = $userAgent->get("$mirror?ref=$string&dataType=bibtex");
+ if ($debug) {
+ print STDERR "DEBUG: response: ",
+ $response->decoded_content, "\n";
+ }
+
+ if ($response->decoded_content =~ /MRNUMBER\s*=\s*{(.*)}/m) {
+ my $mr=$1;
+ # Somehow mref deletes leading zeros. They are needed!
+ while (length($mr)<7) {
+ $mr = "0$mr";
+ }
+ if ($debug) {
+ print STDERR "DEBUG: got MR: $mr\n",
+ }
+ return $mr;
+ } else {
+ if ($debug) {
+ print STDERR "DEBUG: Did not get MR\n",
+ }
+ return ("");
+ }
+
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/scripts/crossrefware/bibzbladd.pl new/texmf-dist/scripts/crossrefware/bibzbladd.pl
--- old/texmf-dist/scripts/crossrefware/bibzbladd.pl 2016-02-15 23:07:53.000000000 +0100
+++ new/texmf-dist/scripts/crossrefware/bibzbladd.pl 2017-04-17 00:25:15.000000000 +0200
@@ -8,12 +8,23 @@
=head1 SYNOPSIS
-bibzbladd [B<-f>] [B<-o> I<output>] I
+bibzbladd [-d] [B<-f>] [B<-e> 1|0] [B<-o> I<output>] I
=head1 OPTIONS
=over 4
+=item B<-d>
+
+Debug mode
+
+=item B<-e>
+
+If 1 (default), add an empty zblnumber if a zbl cannot be found. This
+prevents repeated searches for the same entries if you add new entries
+to the file. Calling C<-e 0> suppresses this behavior.
+
+
=item B<-f>
Force searching for Zbl numbers even if the entry already has one.
@@ -41,7 +52,7 @@
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2014-2016 Boris Veytsman
+Copyright (C) 2014-2017 Boris Veytsman
This is free software. You may redistribute copies of it under the
terms of the GNU General Public License
@@ -63,10 +74,11 @@
use Getopt::Std;
use URI::Escape;
use LWP::UserAgent;
+$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}=0;
-my $USAGE="USAGE: $0 [-f] [-o output] file\n";
+my $USAGE="USAGE: $0 [-d] [-e 1|0] [-f] [-o output] file\n";
my $VERSION = <http://www.gnu.org/licenses/gpl.html. There is NO WARRANTY, to the
@@ -74,7 +86,7 @@
$USAGE
END
my %opts;
-getopts('fo:hV',\%opts) or die $USAGE;
+getopts('de:fo:hV',\%opts) or die $USAGE;
if ($opts{h} || $opts{V}){
print $VERSION;
@@ -97,6 +109,13 @@
my $forceSearch=$opts{f};
+my $forceEmpty = 1;
+if (exists $opts{e}) {
+ $forceEmpty = $opts{e};
+}
+
+my $debug = $opts{d};
+
my $input= IO::File->new($inputfile) or
die "Cannot find BibTeX file $inputfile\n$USAGE\n";
my $output = IO::File->new("> $outputfile") or
@@ -118,19 +137,24 @@
print STDERR "Skipping this entry\n";
next;
}
- if (!($entry->type() eq 'ARTICLE')) {
- print $output $entry->raw_bibtex(), "\n\n";
- next;
- }
if ($entry->has('zblnumber') && !$forceSearch) {
print $output $entry->raw_bibtex(), "\n\n";
+ if ($debug) {
+ print STDERR "DEBUG: entry ", $entry->key(),
+ " has zblnumber ", $entry->field('zblnumber'),
+ " and no forced search is requested\n";
+ }
next;
}
# Now we have an entry with no Zbl. Let us get to work.
+ if ($debug) {
+ print STDERR "DEBUG: Searching for zbl number for entry ",
+ $entry->key, "\n";
+ }
my $zbl = GetZbl($entry, $userAgent, $mirror);
- if (length($zbl)) {
+ if (length($zbl) || $forceEmpty) {
$entry->field('zblnumber',$zbl);
}
print $output $entry->to_string(), "\n\n";
@@ -154,12 +178,26 @@
my $string=uri_escape_utf8($entry->to_string());
+ if ($debug) {
+ print STDERR "DEBUG: query: $mirror?bibtex=$string\n" ;
+ }
my $response = $userAgent->get("$mirror?bibtex=$string");
+ if ($debug) {
+ print STDERR "DEBUG: response: ",
+ $response->decoded_content, "\n";
+ }
+
if ($response->decoded_content =~ /^\s*"zbl_id":\s*"(.*)",\s*$/m) {
+ if ($debug) {
+ print STDERR "DEBUG: got zbl: $1\n",
+ }
return $1;
} else {
+ if ($debug) {
+ print STDERR "DEBUG: Did not get zbl\n",
+ }
return ("");
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/tex/latex/crossrefware/bibdoiadd.cfg new/texmf-dist/tex/latex/crossrefware/bibdoiadd.cfg
--- old/texmf-dist/tex/latex/crossrefware/bibdoiadd.cfg 2016-02-15 23:07:53.000000000 +0100
+++ new/texmf-dist/tex/latex/crossrefware/bibdoiadd.cfg 2017-04-17 00:25:15.000000000 +0200
@@ -1,7 +1,8 @@
-$mode = 'paid'; # Other option is 'free'
+#$mode = 'paid'; # Other option is 'free'
+$mode = 'free'; # Other option is 'paid'
$email = 'user@company.domain';
-$username = 'XXXXXX'; # For paid users
-$password = 'XXXXXX'; # For paid users
+#$username = 'XXXXXX'; # For paid users
+#$password = 'XXXXXX'; # For paid users
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/crossrefware.tlpobj new/tlpkg/tlpobj/crossrefware.tlpobj
--- old/tlpkg/tlpobj/crossrefware.tlpobj 2016-04-14 18:54:32.000000000 +0200
+++ new/tlpkg/tlpobj/crossrefware.tlpobj 2017-04-24 02:07:06.000000000 +0200
@@ -1,6 +1,6 @@
name crossrefware
category Package
-revision 39727
+revision 43993
shortdesc Scripts for working with crossref.org
longdesc This bundle contains the following scripts: bibdoiadd.pl: add
longdesc DOI numbers to papers in a given bib file, bibzbladd.pl: add
@@ -8,14 +8,16 @@
longdesc a tool for the creation of XML files for submitting to the
longdesc parent site
depend crossrefware.ARCH
-runfiles size=8
+runfiles size=13
+ texmf-dist/scripts/crossrefware/bbl2bib.pl
texmf-dist/scripts/crossrefware/bibdoiadd.pl
+ texmf-dist/scripts/crossrefware/bibmradd.pl
texmf-dist/scripts/crossrefware/bibzbladd.pl
texmf-dist/scripts/crossrefware/ltx2crossrefxml.pl
texmf-dist/tex/latex/crossrefware/bibdoiadd.cfg
texmf-dist/tex/latex/crossrefware/ltx2crossrefxml.cfg
catalogue-ctan /support/crossrefware
-catalogue-date 2016-02-15 06:00:08 +0100
+catalogue-date 2017-04-23 19:41:28 +0200
catalogue-license gpl
catalogue-topics bibtex-util
-catalogue-version 2.0
+catalogue-version 2.1a
++++++ crossword.doc.tar.xz ++++++
++++++ crossword.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/crossword.tlpobj new/tlpkg/tlpobj/crossword.tlpobj
--- old/tlpkg/tlpobj/crossword.tlpobj 2016-04-14 18:54:33.000000000 +0200
+++ new/tlpkg/tlpobj/crossword.tlpobj 2017-04-14 17:37:16.000000000 +0200
@@ -23,7 +23,7 @@
RELOC/tex/latex/crossword/cwpuzzle.sty
catalogue-also crosswrd
catalogue-ctan /macros/latex/contrib/gene/crossword
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license other-free
catalogue-topics games cwpuzzle
catalogue-version 1.9
++++++ crosswrd.doc.tar.xz ++++++
++++++ crosswrd.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/crosswrd.tlpobj new/tlpkg/tlpobj/crosswrd.tlpobj
--- old/tlpkg/tlpobj/crosswrd.tlpobj 2016-04-14 18:54:33.000000000 +0200
+++ new/tlpkg/tlpobj/crosswrd.tlpobj 2017-04-14 17:37:16.000000000 +0200
@@ -10,7 +10,7 @@
runfiles size=3
RELOC/tex/latex/crosswrd/crosswrd.sty
catalogue-ctan /macros/latex/contrib/crosswrd
-catalogue-date 2016-02-07 10:49:28 +0100
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl
catalogue-topics games cwpuzzle
catalogue-version 3.0
++++++ cryptocode.doc.tar.xz ++++++
++++++ cryptocode.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cryptocode.tlpobj new/tlpkg/tlpobj/cryptocode.tlpobj
--- old/tlpkg/tlpobj/cryptocode.tlpobj 2016-04-14 18:54:34.000000000 +0200
+++ new/tlpkg/tlpobj/cryptocode.tlpobj 2017-04-14 17:37:17.000000000 +0200
@@ -10,7 +10,7 @@
runfiles size=17
RELOC/tex/latex/cryptocode/cryptocode.sty
catalogue-ctan /macros/latex/contrib/cryptocode
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl1.3
catalogue-topics pseudocode
catalogue-version 0.1
++++++ cryst.doc.tar.xz ++++++
++++++ cryst.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cryst.tlpobj new/tlpkg/tlpobj/cryst.tlpobj
--- old/tlpkg/tlpobj/cryst.tlpobj 2016-04-14 18:54:34.000000000 +0200
+++ new/tlpkg/tlpobj/cryst.tlpobj 2017-04-14 17:37:17.000000000 +0200
@@ -12,6 +12,6 @@
RELOC/fonts/tfm/public/cryst/cryst.tfm
RELOC/fonts/type1/public/cryst/cryst.pfb
catalogue-ctan /fonts/cryst
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl
catalogue-topics font font-type1 font-mf font-symbol
++++++ cs.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fonts/type1/public/cs/README new/fonts/type1/public/cs/README
--- old/fonts/type1/public/cs/README 2006-01-10 00:35:48.000000000 +0100
+++ new/fonts/type1/public/cs/README 2016-11-25 19:32:18.000000000 +0100
@@ -1,29 +1,29 @@
CSfonty ve formatu pfb
- ==========================================================
- verze 1.0-alfa, duben 1998 Petr Olsak
+ ==========================================================
+ verze 1.0-alfa, duben 1998 Petr Olsak
-CSfonty ve formatu pfb (Type1) byly pripraveny timto zpusobem:
-- popisy zakladnich znaku jsou cerpany z BaKoMa Computer Modern fontu,
- T1FMT-V2.0 Copyright (c) 1993,1994, Basil K. Malyshev.
-- akcenty jsou cerpany z vystupu programu Metapost pri zpracovani
- Metafontovych zdroju CSfontu a mnohdy rucne upraveny. Soubor csaccents.mf
- byl pro tyto ucely modifikovan (napriklad odstraneno filldraw a nahrazeno
- fill s obvodovou cestou, kterou bylo nutne Metafontem napocitat).
-- akcenty jsou k zakladovym znakum pripojeny programem t1accent, viz
- ftp://math.feld.cvut.cz/pub/olsak/t1accent/
-- tato prvni verze fontu cerpa akcenty pro kazdou variantu rezu z cs*10.mf
- a akcenty jsou pro jine velikosti tehoz rezu zvetsovany geometricky. Neni
- to idealni, ale snazil jsem se najit nejmensi koeficient typu
- "mnozstvi prace / celkovy efekt". Program t1accent bohuzel zdaleka neni a
- nikdy nebude Meta-t1accent.
-- konfiguracni soubory pro generovani CSfontu pomoci t1accent jsou v baliku
- pro ilustraci prilozeny (viz soubory s priponou *.tab).
-- AFM soubory k fontum nejsou distribuovany. Muzete si je vytvorit stazenim
- souboru ftp://ftp.muni.cz/pub/tex/CTAN/dviware/dvitops/printafm.ps a
- pouzitim povelu: echo /Nazev-Fontu printafm | gs printafm.ps > metrika.afm
- ovsem takova metrika nebude obsahovat informace o kerningovych parech a
- ligaturach, ktere jsou bezne obsazeny v tfm metrikach.
+ CSfonty ve formatu pfb (Type1) byly pripraveny timto zpusobem:
+- popisy zakladnich znaku jsou cerpany z BaKoMa Computer Modern fontu,
+ T1FMT-V2.0 Copyright (c) 1993,1994, Basil K. Malyshev.
+- akcenty jsou cerpany z vystupu programu Metapost pri zpracovani
+ Metafontovych zdroju CSfontu a mnohdy rucne upraveny. Soubor csaccents.mf
+ byl pro tyto ucely modifikovan (napriklad odstraneno filldraw a nahrazeno
+ fill s obvodovou cestou, kterou bylo nutne Metafontem napocitat).
+- akcenty jsou k zakladovym znakum pripojeny programem t1accent, viz
+ ftp://math.feld.cvut.cz/pub/olsak/t1accent/
+- tato prvni verze fontu cerpa akcenty pro kazdou variantu rezu z cs*10.mf
+ a akcenty jsou pro jine velikosti tehoz rezu zvetsovany geometricky. Neni
+ to idealni, ale snazil jsem se najit nejmensi koeficient typu
+ "mnozstvi prace / celkovy efekt". Program t1accent bohuzel zdaleka neni a
+ nikdy nebude Meta-t1accent.
+- konfiguracni soubory pro generovani CSfontu pomoci t1accent jsou v baliku
+ pro ilustraci prilozeny (viz soubory s priponou *.tab).
+- AFM soubory k fontum nejsou distribuovany. Muzete si je vytvorit stazenim
+ souboru ftp://ftp.muni.cz/pub/tex/CTAN/dviware/dvitops/printafm.ps a
+ pouzitim povelu: echo /Nazev-Fontu printafm | gs printafm.ps > metrika.afm
+ ovsem takova metrika nebude obsahovat informace o kerningovych parech a
+ ligaturach, ktere jsou bezne obsazeny v tfm metrikach.
CSfonty ve formatu pfb jsou verejne siritelne podle stejnych podminek,
jako jsou sireny BaKoMa fonty. Podrobneji viz soubor ../cm/BaKoMa-CM.Fonts
@@ -37,35 +37,50 @@
GhostScriptu a konecne v Acroreaderu po zavedeni fontu do dokumentu
pdfTeXem.
-Poznamka: protoze tento balik ma pro zarazeni do volne sirenych
-distribuci nevyhovujici licenci, bude potreba prevest Type1
-implementaci CSfontu s vyuzitim jineho vychoziho baliku (bluesky?).
-Kdo to udela?
-
INSTALACE
---------
-1. Instalujte BaKoMa fonty z ftp://ftp.muni.cz/pub/tex/CTAN/fonts/...
- Tento krok neni nutny, ale pokud chcete mit sadu CM+CS.pfb uplnou, je
- tento krok zadouci. Mate-li pdfTeX a navic instalovanou knihovnu
- cspdftexlib.tar z CSTeXu, BaKoMa fonty uz mate instalovany.
-2. Zkopirujte cs*.pfb soubory do texmf/fonts/type1/public/cs/.
-3. Pridejte obsah souboru csfont-d.map do souboru psfonts.map, ktery najdete
- nekde v podadresarich texmf/dvips/*. Tento krok nedelejte, pokud
- nechcete vzdy pouzivat pfb alternativu fontu ve vystupech programu dvips
- a nechcete se vzdat cesty zarazovani fontu jako bitmap generovanych
- z puvodnich lety overenych Metafontovych zdroju. Protoze je tento balik
- pfb fontu oznaceny jako alfa, je tato opatrnost opodstatnena.
-4. Umistete csfont-e.map a vsechny *.enc soubory do texmf/pdftex/config/ a
- misto radku "map +cs.map" v pdftex.cfg napiste "map +csfont-e.map".
- Tim si urcite polepsite, protoze puvodni reseni pdfTeXu a CSfontu vedlo
- pres DC fonty, ktere nepokryvaly matematickou sadu znaku z pocatku
- tabulky a mely jine tvary akcentu.
-5. Provedte MakeTeXls-R nebo mktexlsr pro aktualizaci databaze souboru.
-6. Instalujte pfb fonty do Ghostscriptu. To vyzaduje vlozeni obsahu souboru
- csfont-g.map do ghostscript/Fontmap a dale:
- cd /usr/local/ghostscript/fonts
- ln -s /usr/local/share/texmf/fonts/type1 tex
- Konkretni cesty mohou vypadat na Vasi instalaci mirne jinak.
-
+1. Instalujte BaKoMa fonty z ftp://ftp.muni.cz/pub/tex/CTAN/fonts/...
+ Tento krok neni nutny, ale pokud chcete mit sadu CM+CS.pfb uplnou, je
+ tento krok zadouci. Mate-li pdfTeX a navic instalovanou knihovnu
+ cspdftexlib.tar z CSTeXu, BaKoMa fonty uz mate instalovany.
+2. Zkopirujte cs*.pfb soubory do texmf/fonts/type1/public/cs/.
+3. Pridejte obsah souboru csfont-d.map do souboru psfonts.map, ktery najdete
+ nekde v podadresarich texmf/dvips/*. Tento krok nedelejte, pokud
+ nechcete vzdy pouzivat pfb alternativu fontu ve vystupech programu dvips
+ a nechcete se vzdat cesty zarazovani fontu jako bitmap generovanych
+ z puvodnich lety overenych Metafontovych zdroju. Protoze je tento balik
+ pfb fontu oznaceny jako alfa, je tato opatrnost opodstatnena.
+4. Umistete csfont-e.map a vsechny *.enc soubory do texmf/pdftex/config/ a
+ misto radku "map +cs.map" v pdftex.cfg napiste "map +csfont-e.map".
+ Tim si urcite polepsite, protoze puvodni reseni pdfTeXu a CSfontu vedlo
+ pres DC fonty, ktere nepokryvaly matematickou sadu znaku z pocatku
+ tabulky a mely jine tvary akcentu.
+5. Provedte MakeTeXls-R nebo mktexlsr pro aktualizaci databaze souboru.
+6. Instalujte pfb fonty do Ghostscriptu. To vyzaduje vlozeni obsahu souboru
+ csfont-g.map do ghostscript/Fontmap a dale:
+ cd /usr/local/ghostscript/fonts
+ ln -s /usr/local/share/texmf/fonts/type1 tex
+ Konkretni cesty mohou vypadat na Vasi instalaci mirne jinak.
+
+Korekce balicku v cervnu 2016 (po 17 letech):
+---------------------------------------------
+
+* názvy glyphu nekterych fontu korigovany, aby se mohly spravne vykopirovat z PDF
+ prohlizece pomoci copy-paste. Presne bylo provedeno toto:
+
+ for font in csbxti10 csti8 csti9 csti10 csu10 csitt10 csfi10 csti7 csti12; do
+ test ! -f $font.pfb.orig && cp -a $font.pfb $font.pfb.orig
+ t1disasm $font.pfb.orig | sed 's/dollar/sterling/g' | t1asm - $font.pfb
+ done
+ for font in cscsc10 csr5; do
+ test ! -f $font.pfb.orig && cp -a $font.pfb $font.pfb.orig
+ t1disasm $font.pfb.orig | sed 's/suppress/polishlcross/g' | t1asm - $font.pfb
+ done
+
+* do balicku csplain pridan soubor glyphtounicode-cs.tex obsahujici korekce dalsich
+ specifickych nazvu glyphu, napriklad csqutedblright (prave ceske uvozovky).
+ Po zavedeni tohoto souboru do pdfTeXoveho dokumentu a pri pouziti csfontu
+ by se mely i tyto znaky chovat spravne pri copy-paste. Jine fonty (napr.
+ lm-fonty) tuto pomucku nepotrebuji.
Binary files old/fonts/type1/public/cs/csbxti10.pfb and new/fonts/type1/public/cs/csbxti10.pfb differ
Binary files old/fonts/type1/public/cs/cscsc10.pfb and new/fonts/type1/public/cs/cscsc10.pfb differ
Binary files old/fonts/type1/public/cs/csfi10.pfb and new/fonts/type1/public/cs/csfi10.pfb differ
Binary files old/fonts/type1/public/cs/csitt10.pfb and new/fonts/type1/public/cs/csitt10.pfb differ
Binary files old/fonts/type1/public/cs/csr5.pfb and new/fonts/type1/public/cs/csr5.pfb differ
Binary files old/fonts/type1/public/cs/csti10.pfb and new/fonts/type1/public/cs/csti10.pfb differ
Binary files old/fonts/type1/public/cs/csti12.pfb and new/fonts/type1/public/cs/csti12.pfb differ
Binary files old/fonts/type1/public/cs/csti7.pfb and new/fonts/type1/public/cs/csti7.pfb differ
Binary files old/fonts/type1/public/cs/csti8.pfb and new/fonts/type1/public/cs/csti8.pfb differ
Binary files old/fonts/type1/public/cs/csti9.pfb and new/fonts/type1/public/cs/csti9.pfb differ
Binary files old/fonts/type1/public/cs/csu10.pfb and new/fonts/type1/public/cs/csu10.pfb differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cs.tlpobj new/tlpkg/tlpobj/cs.tlpobj
--- old/tlpkg/tlpobj/cs.tlpobj 2016-04-28 03:16:05.000000000 +0200
+++ new/tlpkg/tlpobj/cs.tlpobj 2017-04-14 17:37:17.000000000 +0200
@@ -1,6 +1,6 @@
name cs
category Package
-revision 40785
+revision 41553
catalogue csfonts
shortdesc Czech/Slovak-tuned Computer Modern fonts
relocated 1
@@ -9,7 +9,7 @@
depend cmexb
execute addMap cs-charter.map
execute addMap csfonts.map
-runfiles size=918
+runfiles size=919
RELOC/fonts/enc/dvips/cs/xl2.enc
RELOC/fonts/enc/dvips/cs/xl2f.enc
RELOC/fonts/enc/dvips/cs/xt2.enc
@@ -411,6 +411,6 @@
RELOC/fonts/vf/cs/cs-charter/bchr8z.vf
RELOC/fonts/vf/cs/cs-charter/bchri8z.vf
catalogue-ctan /macros/cstex/base/csfonts.tar.gz
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license gpl
catalogue-topics czech slovak font font-mf
++++++ csbulletin.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/csbulletin/README new/doc/latex/csbulletin/README
--- old/doc/latex/csbulletin/README 2008-08-09 01:04:29.000000000 +0200
+++ new/doc/latex/csbulletin/README 2017-02-21 02:01:05.000000000 +0100
@@ -1,5 +1,5 @@
=============================================================================
-Package: csbulletin Version 1.0 5 August 2008
+Package: csbulletin Version 1.1 18 February 2016
=============================================================================
The package provides the class for articles for the CSTUG Bulletin
Binary files old/doc/latex/csbulletin/csbulletin.pdf and new/doc/latex/csbulletin/csbulletin.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/csbulletin/csbulletin.tex new/doc/latex/csbulletin/csbulletin.tex
--- old/doc/latex/csbulletin/csbulletin.tex 2008-08-09 01:04:29.000000000 +0200
+++ new/doc/latex/csbulletin/csbulletin.tex 2017-02-21 02:01:05.000000000 +0100
@@ -1,4 +1,4 @@
-%% $Id: csbulletin.tex 30 2008-08-05 20:03:02Z zw $
+%% $Id$
\input utf8-t1 % text is in UTF8, requires encTeX
% for ISO-8859-2: %& --translate-file=il2-t1.tcx
% for CP-1250: %& --translate-file=cp1250t1.tcx
@@ -6,13 +6,12 @@
\documentclass{csbulletin}
% No optional packages needed
% Macros
-\DeclareRobustCommand\version{\unskip~v.\,1.0}
+\DeclareRobustCommand\version{\unskip~v.\,1.1}
\let\pkg\textsc
-% Hack for hyperref
-\mubytein 0
\usepackage[pdftitle=LaTeX\ Class\ for\ CSTUG\ Bulletin, pdfauthor=Zdenek\ Wagner,
pdfkeywords=CSTUG\ Bulletin,bookmarks=false]{hyperref}
+\usepackage{encxvlna}
% section numbering
\setcounter{secnumdepth}{2}
@@ -50,12 +49,6 @@
instrukce pro autory.
\section{Použité balíčky}
-Prosím, uvědomte si, že celý Zpravodaj se zpracovává pdflatexem jako jeden dokument. Používejte
-proto pouze balíčky, které skutečně v dokumentu potřebujete. Dávejte přednost vlastnímu
-jednoduchému makru před komplikovaným balíčkem, který může způsobit kolizi s balíčky potřebnými pro
-jiné články. Tím nechceme autory odrazovat od používání balíčků v nezbytných případech, jen je
-vhodné, aby autoři uvážili, zda nelze problém řešit jednoduššími prostředky.
-
Třída \pkg{csbulletin} nějaké balíčky načítá automaticky. Jejich seznam je uveden v následujících
podsekcích.
@@ -91,10 +84,6 @@
\item \pkg{fancyvrb}
\item \pkg{verbatim}
-
-\item \pkg{encxvlna} je program \pkg{vlna} implementovaný v enc\TeX u. Jeho účelem je doplnění
-vlnek za neslabičné předložky přímo při \TeX ování. Balíček bude načten pouze v případě, že máte
-enc\TeX\ aktivován.
\end{itemize}
\subsection{Babel}\label{babel}
@@ -136,22 +125,13 @@
nepřehledné. Číslování zapnete vložením kladné hodnoty do čítače \texttt{secnumdepth}. V tomto
manuálu je před \verb;\begin{document}; použit příkaz \verb;\setcounter{secnumdepth}{2};.
-\section{Návěští}
-V třídě \pkg{csbulletin} jsou předefinována makra \cmd{label}, \cmd{ref} a \cmd{pageref} tak, aby
-jejich názvy byly pro každý článek unikátní. Nemusíte se proto bát kolize s články jiných autorů.
-
\section{Tabulky a obrázky}
-Článek ve Zpravodaji nezačíná vždy na nové stránce. Nekoncipujte tudíž stránky absolutně. Všechny
+Všechny
tabulky a obrázky musí být v plovoucích prostředích. Musí mít název v makru \cmd{caption} a
případně symbolický název definovaný v makru \cmd{label}.
-\section{Reference}
-Styl pro Zpravodaj zatím není připraven pro použití \BibTeX{}u, ale v budoucích verzích se s tím
-počítá. Pravděpodobně bude pro potřeby Zpravodaje upraven balíček \pkg{chapterbib}.
-
\section{Chyby}
-Třída \pkg{csbulletin} nemá žádné známé zjevné chyby. Jisté konflikty i se způsobem řešení jsou
-zmíněny v dokumentaci balíčku \pkg{encxvlna} a nejsou zcela dořešeny kolize při použití v OS/2. V
+Třída \pkg{csbulletin} nemá žádné známé zjevné chyby. V
každém případě je třeba si uvědomit, že třída samotná pracuje na hranicích možností \LaTeX{}u.
Použití různých balíčků může vést k dalším problémům. Redakce se bude snažit o vyřešení všech
nahlášených potíží.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/csbulletin.doc.tlpobj new/tlpkg/tlpobj/csbulletin.doc.tlpobj
--- old/tlpkg/tlpobj/csbulletin.doc.tlpobj 2016-04-14 18:54:37.000000000 +0200
+++ new/tlpkg/tlpobj/csbulletin.doc.tlpobj 2017-04-14 17:37:18.000000000 +0200
@@ -1,9 +1,9 @@
name csbulletin.doc
category Package
-revision 15878
+revision 43277
shortdesc doc files of csbulletin
relocated 1
-docfiles size=70
+docfiles size=72
RELOC/doc/latex/csbulletin/LICENSE.txt
RELOC/doc/latex/csbulletin/README
RELOC/doc/latex/csbulletin/csbulletin.pdf
++++++ csbulletin.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/csbulletin/csbulacronym.sty new/tex/latex/csbulletin/csbulacronym.sty
--- old/tex/latex/csbulletin/csbulacronym.sty 2008-08-09 01:04:29.000000000 +0200
+++ new/tex/latex/csbulletin/csbulacronym.sty 2017-02-21 02:01:07.000000000 +0100
@@ -1,5 +1,5 @@
\ProvidesPackage{csbulacronym}[2008/04/27 Acronyms for CSTUG bulletin]
-\PackageInfo{csbulacronym}{$Id: csbulacronym.sty 16 2008-04-27 18:17:54Z zw $}
+\PackageInfo{csbulacronym}{$Id$}
%==================================================== TeX logos
\DeclareRobustCommand\CS[1]{\def\next{#1}\leavevmode{$\cal C$}\kern-.3em
@@ -8,6 +8,8 @@
\DeclareRobustCommand\CSTeX{\leavevmode{$\cal C$}\kern-.3em
\lower .67ex\hbox{$\cal S$}\kern-.145em\TeX}
\let\cstex\CSTeX
+\DeclareRobustCommand\csplain{\leavevmode{$\cal C$}\kern-.3em
+ \lower .67ex\hbox{$\cal S$}\kern-.145emplain}
\DeclareRobustCommand\CSLaTeX{\leavevmode{$\cal C$}\kern-.3em
\lower .67ex\hbox{$\cal S$}\LaTeX}
\let\cslatex\CSLaTeX
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/csbulletin/csbulletin.cls new/tex/latex/csbulletin/csbulletin.cls
--- old/tex/latex/csbulletin/csbulletin.cls 2008-08-09 01:04:29.000000000 +0200
+++ new/tex/latex/csbulletin/csbulletin.cls 2017-02-21 02:01:07.000000000 +0100
@@ -1,5 +1,15 @@
-\ProvidesClass{csbulletin}[2008/08/05 CSTUG Bulletin class]
-\ClassInfo{csbulletin}{$Id: csbulletin.cls 29 2008-08-05 19:36:49Z zw $}
+\ProvidesClass{csbulletin}[2017/02/10 CSTUG Bulletin class]
+\ClassInfo{csbulletin}{$Id$}
+
+% Switch
+
+\newif\ifcsbul@nomargins
+\newif\ifcsbul@web
+\newif\ifcsbul@color
+
+% Empty macro for later use
+
+\def\NovyClanek{}
% Language attributes
@@ -30,9 +40,28 @@
\DeclareOption{executivepaper}{}
\DeclareOption{landscape}{}
+% Always at the new page
+
+\DeclareOption{newpage}{\let\NovyClanek\clearpage}
+
+% No margins (special use)
+
+\DeclareOption{nomargins}{\csbul@nomarginstrue}
+
+% Color
+
+\DeclareOption{web}{\PassOptionsToPackage{web}{csbulobalka}\csbul@webtrue}
+\DeclareOption{color}{\PassOptionsToPackage{color}{csbulobalka}\csbul@colortrue}
+\DeclareOption{twocolor}{\PassOptionsToPackage{twocolor}{csbulobalka}\csbul@colortrue}
+\DeclareOption{custom}{\PassOptionsToPackage{custom}{csbulobalka}\csbul@colortrue}
+
% Pass all global options to the "article" class
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
+
+% No margins if the first page given
+%\IfFileExists{\jobname.FirstPage}{\ExecuteOptions{nomargins}}{}
+
\ProcessOptions
\LoadClass[twoside]{article}
@@ -48,8 +77,10 @@
% To be deleted soon
\newif\if@html
+\ifpdf
\IfFileExists{microtype.sty}{\RequirePackage
[protrusion=false,expansion=true,stretch=8,shrink=24,step=4]{microtype}}{}
+\fi
\IfFileExists{array.sty}{\RequirePackage{array}}{}
@@ -62,7 +93,7 @@
\IfFileExists{SpecChar.sty}{\RequirePackage{SpecChar}\AddSpecial\-}{}
-\IfFileExists{csbulobalka.sty}{\RequirePackage{csbulobalka}}{}
+\IfFileExists{csbulobalka.sty}{\RequirePackage{csbulobalka}[2017/02/17]}{}
\ifx\mubytein\undefined
\newcount\mubytein
@@ -70,18 +101,22 @@
\newcount\mubytelog
\else
\IfFileExists{csbulutf8.sty}{\RequirePackage{csbulutf8}}{}
- \IfFileExists{encxvlna.sty}{\RequirePackage{encxvlna}}{}
\fi
% The next macros must be here, otherwise the PDF mode may report strange errors
\newtoks\cislo
\newtoks\rok
+\newtoks\doisufix\doisufix{\the\rok-\the\cislo/\thepage}
\newtoks\naklad
\newtoks\@uzaverka
\newtoks\pristi@uzaverka
\newtoks\obalka
+% Default
+
+\obalka{Anton\'{\i}n Strejc}%'
+
% \uzaverka DD.MM.RRRR<space or end-of-line>
\def\uzaverka #1.#2.#3 {\begingroup
@@ -165,12 +200,12 @@
% Newlines for titles and toc
-\DeclareRobustCommand\nl{\protect\p@nl}
-\def\p@nl{\unskip\\\ignorespaces}
-\DeclareRobustCommand\ln{\protect\p@ln}
-\let\p@ln\relax
-\DeclareRobustCommand\toc@nl{\let\p@nl\relax
- \def\p@ln{\unskip\\\ignorespaces}}
+\DeclareRobustCommand\TitleNewline{\\}
+\DeclareRobustCommand\TocNewline{\space}
+\AtBeginDocument{\addtocontents{toc}{\csbul@newlinedefs}}
+\DeclareRobustCommand\csbul@newlinedefs{%
+ \let\TitleNewline\space
+ \let\TocNewline\\}
%=========================================== Sizes etc.
@@ -252,15 +287,16 @@
\newenvironment{summary}{\ifhmode \par \fi
\begin{otherlanguage*}{english}
\setcounter{secnumdepth}{-1}\section{Summary:
- \zw@englishtitle}}{\ifhmode \par \fi\end{otherlanguage*}}
+ \zw@englishtitle}}{\ifhmode \par
+ \fi\end{otherlanguage*}\aftergroup\zw@summaryOK}
\renewcommand\@seccntformat[1]{\@nameuse{the#1}.\hspace{.5em}}
-\newcommand\StartPage[1][1]{\clearpage\setcounter{page}{#1}}
+\newcommand\StartPage[1][1]{\clearpage\setcounter{page}{#1}\zw@summaryOK}
\renewenvironment{abstract}{\narrower \small \noindent \ignorespaces}{\ifhmode \par \fi}
-\def\keywords:{\ifhmode \par \fi \smallskip \noindent\textbf{Key words:} \ignorespaces}
+\def\keywords:{\ifhmode \par \fi \medskip \noindent\textbf{Keywords:} \ignorespaces}
% ===================================================== New layout
@@ -269,8 +305,6 @@
\paperwidth 148mm
\paperheight 210mm
-\pdfpagewidth\paperwidth
-\pdfpageheight\paperheight
\headheight \z@
\headsep \z@
\textwidth 27cc
@@ -289,6 +323,11 @@
\advance\evensidemargin -1in
\parskip \z@
+\AtBeginDocument{\ifpdf
+ \pdfpagewidth\paperwidth \pdfpageheight\paperheight
+\else
+ \special{papersize=\the\paperwidth,\the\paperheight}\fi}
+
\newdimen\zw@bul@dim
\zw@bul@dim=148mm
\advance\zw@bul@dim -1in
@@ -299,8 +338,30 @@
\def\@oddfoot{\hfill \textrm{\thepage}}%
\def\@evenfoot{\textrm{\thepage}\hfill}}
+\def\ps@csbuldoi{%
+ \def\@oddhead{}\let\@evenhead\@oddhead
+ \def\@oddfoot{{\doiprefix \doi}\hfill \textrm{\thepage}}%
+ \def\@evenfoot{\textrm{\thepage}\hfill{\doiprefix \doi}}}
+
+\def\doiprefix{\footnotesize \textsc{doi:}\space}
+
+\def\ps@ODD{%
+ \def\@oddhead{}\let\@evenhead\@oddhead
+ \def\@oddfoot{\hfill \textrm{\thepage}}\let\@evenfoot\@oddfoot}
+
\pagestyle{csbul}
+\ifcsbul@nomargins
+ \oddsidemargin -1in
+ \evensidemargin -1in
+ \topmargin -1in
+ \pagestyle{empty}
+\fi
+
+% Dirty hax
+\def\ps@odd{\ps@csbul \let\@evenfoot\@oddfoot}
+\def\ps@even{\ps@csbul \let\@oddfoot\@evenfoot}
+
% ============================================ for use with minitoc
@@ -341,8 +402,9 @@
\let\pdf@title\relax
\let\signature\podpis
-\def\csbul@podepis{\ifx\p@dpis\relax \else
- \ifhmode \par \else \textwidth\lastskip \fi
+\def\csbul@podepis{\zw@nosummaryerror
+ \ifx\p@dpis\relax \else
+ \ifhmode \par \fi
\nobreak\medskip
\begin{flushright}\clubpenalty\@M \widowpenalty\@M \interlinepenalty\@M
\itshape\p@dpis
@@ -353,8 +415,20 @@
\AtEndDocument{\csbul@podepis}
+% Dirty hacking...
+\def\Podpis#1{\ifhmode \par \fi \nobreak \medskip
+ \begin{flushright}\clubpenalty\@M \widowpenalty\@M \interlinepenalty\@M
+ \itshape#1
+ \end{flushright}}
+
+\def\zw@nosummaryerror{\ClassWarningNoLine{csbulletin}{English summary is misssing!}}
+\def\zw@summaryOK{\let\zw@nosummaryerror\relax}
+
\def\titlepenalty{-100}
+% DOI removal
+\def\nodoi{\def\doi{}\let\doiprefix\doi}
+
\renewcommand\maketitle[1][\z@]{%
\vskip 3cc\vskip 0pt plus 5cc\penalty\titlepenalty
\vskip 0pt plus-5cc\vskip-\topskip
@@ -378,22 +452,72 @@
\hfill\ifautkn@wn\box\authb@x\fi
\vrule height 17pt width 0pt}}%
\nobreak\vglue 2cc plus 6dd minus 3dd \relax
- \ClanekToc
+ \thispagestyle{csbuldoi}\ClanekToc
\@afterindentfalse \@afterheading}
\def\ClanekToc{%
+ \ifx\zw@englishtitle\undefined
+ \ClassWarningNoLine{csbulletin}{English title not given, it must precede \protect\maketitle!}%
+ \let\zw@englishtitle\t@tle
+ \fi
\begingroup \let\footnote\@gobble
\ifautkn@wn
\def\PutAuthor{\protect\cl@nek{\auth@r}}
- \addcontentsline{toc}{clanek}{\protect\cl@nek{\auth@r}{\t@tle}}%
+ \addcontentsline{toc}{clanek}{\protect\cl@nek[\auth@r]{\t@tle}{\zw@englishtitle}}%
\ifx\pdf@title\relax \def\pdf@title{\protect\cl@nek{\auth@r}{\t@tle}}\fi
\else
\def\PutAuthor{}
- \addcontentsline{toc}{clanek}{\t@tle}%
+ \addcontentsline{toc}{clanek}{\protect\cl@nek{\t@tle}{\zw@englishtitle}}%
\ifx\pdf@title\relax \def\pdf@title{\t@tle}\fi
\fi
\secdef\@chapter\@schapter{\t@tle}% for minitoc
\endgroup}
+
+\newwrite\csbul@info
+\def\csbul@start@page#1{\begingroup
+ \let\@input\@gobble\@starttoc{toc}\endgroup
+ \setcounter{page}{#1}}
+
+% Default fake DOI
+\def\doi{10.5300/xxxx-x/zzz}
+
+% PDF clanek (include PDF, directory = optional argument, name without .pdf)
+
+\def\PDFclanek{\bgroup \catcode`\-12 \catcode`\_12 \csbul@PDFclanek}
+\newcommand*\csbul@PDFclanek[2][]{\egroup\clearpage
+ \ifcat$#1$
+ \def\csbul@fn{#2}
+ \immediate\write\@auxout{\string\CSBULpdf{#2}}
+ \else
+ \def\csbul@fn{#1/#2}
+ \immediate\write\@auxout{\string\CSBULpdf[#1]{#2}}
+ \fi
+ \immediate\openout\csbul@info\csbul@fn.info
+ \immediate\write\csbul@info{\noexpand\csbul@start@page{\thepage}}
+ \immediate\write\csbul@info{\noexpand\def\noexpand\doi{10.5300/\the\doisufix}}
+ \immediate\write\csbul@info{\ifcsbul@web\noexpand\csbul@webtrue\fi}
+ \immediate\write\csbul@info{\ifcsbul@color\noexpand\csbul@colortrue\fi}
+ \immediate\closeout\csbul@info
+ \addtocontents{toc}{\protect\@input{\csbul@fn.toc}}
+ \if@csbul@pdfinclude@ \csbul@PDF@clanek \fi}
+
+\def\csbul@PDF@clanek{\setcounter{section}{1}
+ \pdfximage{\csbul@fn.pdf}\edef\csbul@Npages{\the\pdflastximagepages}
+ \loop
+ \thispagestyle{empty}
+ \vbox to 0mm{\hsize \linewidth \vskip -\topmargin \vskip -\topskip \vskip -1in
+ \parindent \z@
+ \hbox to \hsize{%
+ \ifodd\c@page \hskip -\oddsidemargin \else \hskip -\evensidemargin\fi \hskip -1in
+ \includegraphics[page=\number\c@section]{\csbul@fn.pdf}\hss}\vss}\clearpage
+ \ifnum\value{section}<\csbul@Npages
+ \stepcounter{section}
+ \repeat}
+
+\newif\if@csbul@pdfinclude@
+
+\newcommand*\CSBULpdf[2][]{\global\@csbul@pdfinclude@true}
+
%
% Index
%
@@ -408,59 +532,7 @@
\def\printindex{%
\@input@{\bul@indexname.ind}%
\immediate\closeout\@indexfile}%
-%
-% Counters to reset
-%
-\def\csbul@zerocounters{%
-\setcounter{part}\z@
-\setcounter{section}\z@
-\setcounter{subsection}\z@
-\setcounter{subsubsection}\z@
-\setcounter{paragraph}\z@
-\setcounter{subparagraph}\z@
-\setcounter{equation}\z@
-\setcounter{figure}\z@
-\setcounter{table}\z@
-\setcounter{footnote}\z@
-\setcounter{mpfootnote}\z@
-\setcounter{secnumdepth}{-2}}
-
-\def\csbul@prefix{} % default for single article
-\def\csbul@redef#1 {\expandafter\let\csname csbul@#1\expandafter\endcsname\csname #1\endcsname
- \expandafter\def\csname #1\endcsname##1{\csname csbul@#1\endcsname{\csbul@prefix##1}}}
-\csbul@redef label
-\csbul@redef pageref
-\csbul@redef ref
-
-% Make the prefix
-
-\newcount\csbul@tempcnt
-
-\def\csbul@makeprefix{\global\advance\csbul@tempcnt\@ne
- \edef\csbul@prefix{CSBUL@@\number\csbul@tempcnt}}
-
-% Input
-
-\newcommand\Clanek[2][]{\csbul@makeprefix
- \begingroup
- \csbul@zerocounters
- \renewcommand\documentclass[2][CSBUL]{}%
- \renewcommand\usepackage[2][CSBUL]{}%
- \let\input\CSBULinput
- \renewenvironment{document}{\let\document\@notprerr\setmubytevalues}{\csbul@podepis}% ???
- \ifcat$#1$%
- \def\csbul@fn{#2}%
- \else
- \def\csbul@fn{#1/#2}\graphicspath{{#1/}}\def\csbul@input@path{#1/}%
- \fi
- \csbul@saved@input{\csbul@fn}
- \endgroup}
-
-% Input path
-\def\csbul@input@path{}
-\def\CSBULinput#1{\csbul@saved@input{\csbul@input@path #1}}
-\let\csbul@saved@input\input
%============================================= TUGboat -- obsah
@@ -501,3 +573,5 @@
\AtBeginDocument{\pdfpageheight 210mm \pdfpagewidth 148mm \relax}
\AtBeginDocument{\edef\setmubytevalues{\noexpand\mubytein\the\mubytein
\noexpand\mubyteout\the\mubyteout \noexpand\mubytelog\the\mubytelog \relax}}
+
+\@input{\jobname.info}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/csbulletin.tlpobj new/tlpkg/tlpobj/csbulletin.tlpobj
--- old/tlpkg/tlpobj/csbulletin.tlpobj 2016-04-14 18:54:37.000000000 +0200
+++ new/tlpkg/tlpobj/csbulletin.tlpobj 2017-04-14 17:37:18.000000000 +0200
@@ -1,17 +1,17 @@
name csbulletin
category Package
-revision 15878
+revision 43277
shortdesc LaTeX class for articles submitted to the CSTUG Bulletin (Zpravodaj)
relocated 1
longdesc The package provides the class for articles for the CSTUG
longdesc Bulletin (Zpravodaj Ceskoslovenskeho sdruzeni uzivatelu TeXu).
longdesc You can see the structure of a document by looking to the
longdesc source file of the manual.
-runfiles size=5
+runfiles size=6
RELOC/tex/latex/csbulletin/csbulacronym.sty
RELOC/tex/latex/csbulletin/csbulletin.cls
catalogue-ctan /macros/latex/contrib/csbulletin
-catalogue-date 2015-08-03 05:43:12 +0200
-catalogue-license lppl
+catalogue-date 2017-02-19 10:04:06 +0100
+catalogue-license lppl1.3
catalogue-topics journalpub
-catalogue-version 1.0
+catalogue-version 1.1
++++++ cslatex.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cslatex.tlpobj new/tlpkg/tlpobj/cslatex.tlpobj
--- old/tlpkg/tlpobj/cslatex.tlpobj 2016-05-03 03:17:08.000000000 +0200
+++ new/tlpkg/tlpobj/cslatex.tlpobj 2017-04-14 17:37:18.000000000 +0200
@@ -3,6 +3,12 @@
revision 40855
shortdesc LaTeX support for Czech/Slovak typesetting
depend latex
+depend cm
+depend cslatex
+depend csplain
+depend hyphen-base
+depend latex-fonts
+depend tex-ini-files
depend cslatex.ARCH
execute AddFormat name=cslatex engine=pdftex options="-etex cslatex.ini" fmttriggers=cm,cslatex,csplain,hyphen-base,latex-fonts,latex
execute AddFormat name=pdfcslatex engine=pdftex options="-etex cslatex.ini" fmttriggers=cm,cslatex,csplain,hyphen-base,latex-fonts,latex,tex-ini-files
@@ -46,6 +52,6 @@
texmf-dist/tex/cslatex/cspsfonts/xl2ptm.fd
texmf-dist/tex/cslatex/cspsfonts/xl2pzc.fd
catalogue-ctan /macros/cstex/base/cslatex.tar.gz
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-18 16:48:54 +0200
catalogue-license gpl
catalogue-topics czech slovak format
++++++ csplain.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/tex/csplain/base/csplain.ini new/texmf-dist/tex/csplain/base/csplain.ini
--- old/texmf-dist/tex/csplain/base/csplain.ini 2016-06-07 01:01:45.000000000 +0200
+++ new/texmf-dist/tex/csplain/base/csplain.ini 2016-11-25 19:33:31.000000000 +0100
@@ -262,6 +262,11 @@
Jun. 2016:
* ff-mac + fontfiles: \ffdecl: first modifiers then basic selectors.
* cs-baskerx, cs-heuristica, cs-kurier, cs-iwona, ki-math, pazo-math added
+* plaina4: \ifx\pdfhorigin added (bug when XeTeX is used fixed)
+* glyphtounicode-cs.tex added
+
+ Jul. 2016:
+* etex-mac.tex: \endpinput -> \endinput, typo corrected
COPYRIGHT
=========
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/tex/csplain/base/etex-mac.tex new/texmf-dist/tex/csplain/base/etex-mac.tex
--- old/texmf-dist/tex/csplain/base/etex-mac.tex 2016-01-26 23:51:34.000000000 +0100
+++ new/texmf-dist/tex/csplain/base/etex-mac.tex 2016-11-25 19:33:31.000000000 +0100
@@ -12,7 +12,7 @@
\ifx\loccount\undefined \else
\errmessage{etex.src macro package detected, don't use etex-mac}
- \endpinput \fi
+ \endinput \fi
\chardef\tmp=\catcode`@ \catcode`@=11
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/tex/csplain/base/plaina4.tex new/texmf-dist/tex/csplain/base/plaina4.tex
--- old/texmf-dist/tex/csplain/base/plaina4.tex 2016-04-25 23:50:26.000000000 +0200
+++ new/texmf-dist/tex/csplain/base/plaina4.tex 2016-11-25 19:33:31.000000000 +0100
@@ -14,11 +14,12 @@
\gdef\m@g{\mag\count@
\hsize=159.2truemm \vsize=239.2truemm \dimen\footins8truein
\ifx\pdfpagewidth\undefined\else % added by P. O. Nov 2012
- \recount@true\pdfpagewidth % \recont@true added by P. O Apr. 2016
- \recount@true\pdfpageheight % because media size is distribution-dependent
- \recount@true\pdfhorigin
- \recount@true\pdfvorigin
- \fi
+ \recount@true\pdfpagewidth % \recont@true added by P. O. Apr. 2016
+ \recount@true\pdfpageheight % because media size is distribution-dependent
+ \ifx\pdfhorigin\undefined\else % corrected by P. O. Jun. 2016
+ \recount@true\pdfhorigin
+ \recount@true\pdfvorigin
+ \fi\fi
}
\gdef\recount@true#1{#1=\expandafter\recount@trueA\the#1truept\relax}
{\catcode`p=12 \gdef\recount@trueA#1p#2{#1}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/tex/csplain/base/xeplain.ini new/texmf-dist/tex/csplain/base/xeplain.ini
--- old/texmf-dist/tex/csplain/base/xeplain.ini 2013-11-27 00:20:04.000000000 +0100
+++ new/texmf-dist/tex/csplain/base/xeplain.ini 2016-11-25 19:33:31.000000000 +0100
@@ -35,6 +35,7 @@
%% Next base macros:
\input plaina4 % \hsize and \vsize for A4
+ \pdfpagewidth=210mm \pdfpageheight=297mm
\def\font#1 {} % ignore \font\tenbi=csbxti10
\input csfontsm % macros: \sizespec, \resizefont, \resizeall, \tenbi, \bi
\let\font=\orifont
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/tex/csplain/fonts/glyphtounicode-cs.tex new/texmf-dist/tex/csplain/fonts/glyphtounicode-cs.tex
--- old/texmf-dist/tex/csplain/fonts/glyphtounicode-cs.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/texmf-dist/tex/csplain/fonts/glyphtounicode-cs.tex 2016-11-25 19:33:31.000000000 +0100
@@ -0,0 +1,21 @@
+% glyphtounicode-cs.tex
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% P. Olsak, inspired by Pali Rohar
+
+% Use \input glyphtounicode-cs
+% in your pdfTeX document if you want to have working characters mentioned
+% below when copy-pasting from PDF output or when finding string in the PDF
+% output. This file is special only for csfonts in T1 (*.pfb) format. Other
+% fonts (like lmfonts, for example) need not to use it.
+
+% Note that this file works in pdfTeX only. Other glyph names listed in the
+% glyphtounicode.tex file need not to be declared because the contents of
+% this file is hardcoded in typical PDF viewers.
+
+\pdfgentounicode=1
+\pdfglyphtounicode{csquotedblright}{201C}
+\pdfglyphtounicode{althyphen}{002D}
+\pdfglyphtounicode{polishlcross}{0337}
+\pdfglyphtounicode{suppress}{0337}
+
+% end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/tex/csplain/fonts/lmfonts.tex new/texmf-dist/tex/csplain/fonts/lmfonts.tex
--- old/texmf-dist/tex/csplain/fonts/lmfonts.tex 2016-06-07 01:01:45.000000000 +0200
+++ new/texmf-dist/tex/csplain/fonts/lmfonts.tex 2017-05-14 01:04:42.000000000 +0200
@@ -1,6 +1,6 @@
% lmfonts.tex: loads Latin Modern fonts by plainTeX macros
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Petr Olsak, 2012, 2016
+% Petr Olsak, 2012, 2016, 2017
\ifx\ffdecl\undefined \input ff-mac \fi
@@ -31,7 +31,7 @@
\ismacro\fotenc{U}\iftrue
\font\tenrm = "[lmroman10-regular]:\fontfeatures" \sizespec
\font\tenbf = "[lmroman10-bold]:\fontfeatures" \sizespec
- \font\tenit = "[lmroman10-bold]:\fontfeatures" \sizespec
+ \font\tenit = "[lmroman10-italic]:\fontfeatures" \sizespec
\font\tenbi = "[lmroman10-bolditalic]:\fontfeatures" \sizespec
\font\tentt = "[lmmono10-regular]:\fontfeatures" \sizespec
\font\tenrmc= "[lmromancaps10-regular]:\fontfeatures" \sizespec
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/tex/csplain/opmac/opmac.tex new/texmf-dist/tex/csplain/opmac/opmac.tex
--- old/texmf-dist/tex/csplain/opmac/opmac.tex 2016-06-07 01:01:45.000000000 +0200
+++ new/texmf-dist/tex/csplain/opmac/opmac.tex 2016-11-25 19:33:31.000000000 +0100
@@ -1613,9 +1613,10 @@
\def\magscale[#1]{\mag=#1\def\trueunit{true}%
\ifdim\pgwidth=0pt \else \truedimen\pgwidth \truedimen\pgheight \fi
\ifx\pdfpagewidth\undefined \else
- \truedimen\pdfpagewidth \truedimen\pdfpageheight
- \pdfhorigin=1truein \pdfvorigin=1truein % Origin is independent off \mag
- \fi}
+ \truedimen\pdfpagewidth \truedimen\pdfpageheight
+ \ifx\pdfhorigin\undefined\else
+ \pdfhorigin=1truein \pdfvorigin=1truein % Origin is independent off \mag
+ \fi\fi}
\def\truedimen#1{\ifx\trueunit\empty \else#1=\expandafter\ignorept\the#1truept \fi}
%%%%%%%%%%%%%% XeTeX specific + REF file is read now -- sec 3.26 in opmac-d.pdf
@@ -1766,5 +1767,6 @@
\bfshape: \everymath={\boldmath} instead \boldmath directly
\tskip corrected
Jun. 2016 \thefontsize: \fontdim=#1\ptunit added.
+ \pdfhvorigin unknown in XeTeX, bug fixed
%%%%%%%%%%%%%% End of opmac.tex
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/csplain.tlpobj new/tlpkg/tlpobj/csplain.tlpobj
--- old/tlpkg/tlpobj/csplain.tlpobj 2016-06-07 17:33:43.000000000 +0200
+++ new/tlpkg/tlpobj/csplain.tlpobj 2017-05-14 02:07:47.000000000 +0200
@@ -1,12 +1,12 @@
name csplain
category Package
-revision 41300
+revision 44321
shortdesc Plain TeX multilanguage support
longdesc CSplain is a small extension of basic Plain TeX macros, the
longdesc formats csplain and pdfcsplain can be generated. It supports:
longdesc hyphenation of words for 50+ languages, simple and powerfull
-longdesc font loading system (various sizes of fonts), tex, pdftex,
-longdesc xetex and luatex engines, math fonts simply loaded with full
+longdesc font loading system (various sizes of fonts), TeX, pdfTeX,
+longdesc XeTeX and LuaTeX engines, math fonts simply loaded with full
longdesc amstex-like features, three internal encodings (IL2 for
longdesc Czech/Slovak languages, T1 for many languages with latin
longdesc alphabet and Unicode in new TeX engines), natural UTF-8 input
@@ -18,12 +18,21 @@
longdesc OPmac macros can generate and bibliography without any external
longdesc program.
depend tex
+depend cm
+depend cs
+depend csplain
+depend hyphen-base
+depend plain
+depend enctex
+depend tex-ini-files
+depend luatex
+depend luatex85
depend csplain.ARCH
execute AddFormat name=csplain engine=pdftex options="-etex -enc csplain-utf8.ini" fmttriggers=cm,cs,csplain,hyphen-base,plain,enctex
execute AddFormat name=pdfcsplain engine=pdftex options="-etex -enc csplain-utf8.ini" fmttriggers=cm,cs,csplain,hyphen-base,plain,enctex,tex-ini-files
execute AddFormat name=pdfcsplain engine=xetex options="-etex csplain.ini" fmttriggers=cm,cs,csplain,hyphen-base,plain
execute AddFormat name=pdfcsplain engine=luatex options="-etex csplain.ini" fmttriggers=cm,cs,csplain,hyphen-base,plain,luatex,tex-ini-files,luatex85
-runfiles size=209
+runfiles size=210
texmf-dist/tex/csplain/base/csenc-k.tex
texmf-dist/tex/csplain/base/csenc-p.tex
texmf-dist/tex/csplain/base/csenc-u.tex
@@ -81,6 +90,7 @@
texmf-dist/tex/csplain/fonts/ecfonts.tex
texmf-dist/tex/csplain/fonts/exchars.tex
texmf-dist/tex/csplain/fonts/ff-mac.tex
+ texmf-dist/tex/csplain/fonts/glyphtounicode-cs.tex
texmf-dist/tex/csplain/fonts/ki-math.tex
texmf-dist/tex/csplain/fonts/kp-fonts.tex
texmf-dist/tex/csplain/fonts/kp-math.tex
@@ -103,6 +113,6 @@
texmf-dist/tex/csplain/opmac/opmac.tex
texmf-dist/tex/csplain/opmac/pdfuni.tex
catalogue-ctan /macros/cstex/base/csplain.tar.gz
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2017-04-18 05:31:40 +0200
catalogue-license other-free
catalogue-topics czech slovak format
++++++ csquotes-de.doc.tar.xz ++++++
++++++ csquotes.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/csquotes/RELEASE.md new/doc/latex/csquotes/RELEASE.md
--- old/doc/latex/csquotes/RELEASE.md 2016-02-02 00:01:46.000000000 +0100
+++ new/doc/latex/csquotes/RELEASE.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,95 +0,0 @@
-# Release notes for version 5.1
-
-## Improved block quotation facilities
-
-The highlight of this release is an extension of the block
-quotation facilities. When measuring the length of a quotation,
-`\blockquote` and related commands can determine either the word
-count or the number of lines. See the pointers in the changelog
-for details.
-
-# Release notes for version 5.0
-
-## Backwards compatibility
-
-This release introduces some changes which are not backwards
-compatible out of the box. In order to ease the transition to the
-new version, I've implemented a 'version' option which emulates
-older versions of `csquotes`.
-
-It is quite possible that you do not need to set this option at
-all, even though you have older documents using `csquotes`. You
-only need the 'version' option in older documents if:
-
- - you are using the `<punct>` argument of `\blockquote` and/or
- - you have redefined any of the old
- `\mk(pre|mid|fin)(text|block|disp)punct` hooks.
-
-If these conditions do not apply and you run 5.0 with the default
-settings, the output will be similar to 4.4. There is absolutely
-no need to set `version=4.4` if you didn't use the old hooks and
-the `<punct>` argument of `\blockquote` anyway.
-
-I've also removed some legacy aliases. This is rather old stuff
-from `csquotes` 3.x and even 2.x which has been marked as
-depreciated for some time. Setting `version=4.4` will restore
-them as well.
-
-## Punctuation look-ahead
-
-This release comes with a new punctuation look-ahead feature,
-i.e., in addition to the `<punct>` argument of advanced quotation
-commands like `\textquote`, these commands can now scan ahead for
-trailing punctuation after their last argument and move it around
-if desired.
-
-This is required by quoting conventions such as the US quotation
-style which requires that a period or a comma immediately after a
-closing quotation mark be moved inside the quotes even if it is
-not part of the quoted text.
-
-The implementation of the look-ahead feature also implies a new
-interpretation of the optional `<punct>` argument supported by
-certain quotation commands. In previous version, the `<punct>`
-argument was intended for terminal punctuation which is NOT part
-of the quoted text. Starting with this release, it is intended
-for punctuation which IS part of the quoted text (but may need to
-be moved around).
-
-The modified syntax is more intuitive to use because terminal
-punctuation which is NOT part of the quoted text is simply placed
-after the last argument of the command, i.e.:
-
- \textquote[citation][.]{quoted text}
-
-becomes:
-
- \textquote[citation]{quoted text}.
-
-All of this is discussed at length in the manual. See the
-changelog in the manual for pointers to the relevant sections.
-
-## Revised quotation hooks
-
-The old quotation hooks:
-
- \mkpretextpunct
- \mkmidtextpunct
- \mkfintextpunct
- \mkpreblockpunct
- \mkmidblockpunct
- \mkfinblockpunct
- \mkpredisppunct
- \mkmiddisppunct
- \mkfindisppunct
-
-have been removed and are replaced by new hooks:
-
- \mktextquote
- \mkblockquote
- \mkbegdispquote
- \mkenddispquote
-
-which are much more powerful while being more intuitive to use.
-If you have been using the old hooks in some documents, set
-`version=4.4` to emulate the old interface.
Binary files old/doc/latex/csquotes/csquotes.pdf and new/doc/latex/csquotes/csquotes.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/csquotes/csquotes.tex new/doc/latex/csquotes/csquotes.tex
--- old/doc/latex/csquotes/csquotes.tex 2016-02-02 00:01:46.000000000 +0100
+++ new/doc/latex/csquotes/csquotes.tex 2017-03-12 01:01:04.000000000 +0100
@@ -18,8 +18,8 @@
url={http://www.ctan.org/pkg/csquotes/},
author={Philipp Lehman, Joseph Wright},
email={joseph.wright@morningstar2.co.uk},
- revision={v5.1g},
- date={2016/01/31}}
+ revision={v5.2b},
+ date={2017/03/11}}
\hypersetup{%
pdftitle={The csquotes Package},
@@ -110,7 +110,7 @@
\subsection{License}
-Copyright © 2003--2011 Philipp Lehman, 2015--2016 Joseph Wright. Permission is granted to copy, distribute and\slash or modify this software under the terms of the \lppl, version 1.3c or any later version.\fnurl{http://www.latex-project.org/lppl/}
+Copyright © 2003--2011 Philipp Lehman, 2015--2017 Joseph Wright. Permission is granted to copy, distribute and\slash or modify this software under the terms of the \lppl, version 1.3c or any later version.\fnurl{http://www.latex-project.org/lppl/}
\subsection{Contributions}
@@ -578,7 +578,7 @@
\section{Auxiliary Commands}
\label{aux}
-When quoting text in a formal way, any changes applied to the quoted material, such as omissions, insertions, or alterations, are typically marked as such by using the ellipsis mark and square brackets or parentheses. Use the following commands to indicate such changes in formal quotations:
+When quoting text in a formal way, any changes applied to the quoted material, such as omissions, insertions, or alterations, are typically marked as such by using square brackets or parentheses and, where appropriate, ellipses. Use the following commands to indicate such changes in formal quotations:
\begin{ltxsyntax}
@@ -606,6 +606,16 @@
\textins*{T}ext %= \textins*{T}ext %
\end{ltxcode}
%
+The deletion of individual letters may be indicated with the following command:
+
+\cmditem{textdel}{text}
+
+By default, \cmd{textdel} will output two square brackets. The omitted \prm{text} is not output.
+
+\begin{ltxcode}[escapechar={\%},escapebegin={\rmfamily}]
+ text\textdel{s} %= text\textdel{s} %
+\end{ltxcode}
+%
See \secref{cfg:elp} on how to configure the appearance of ellipses and insertions.
\end{ltxsyntax}
@@ -1010,10 +1020,10 @@
\end{ltxsyntax}
-\subsection{Configuring Ellipses}
+\subsection{Configuring Auxiliary Commands}
\label{cfg:elp}
-The appearance of ellipses and insertions formatted with the auxiliary commands from \secref{aux} is controlled by five hooks. When \cmd{textelp} is used with an empty argument (ellipsis only), it will execute \cmd{mktextelp}. When used with a non-empty \prm{text} argument (ellipsis and insertion), the \prm{text} will be passed as an argument to \cmd{mktextelpins}. The starred form will pass the \prm{text} to \cmd{mktextinselp} instead. These are the default definitions:
+The appearance of ellipses and insertions formatted with the auxiliary commands from \secref{aux} is controlled by six hooks. When \cmd{textelp} is used with an empty argument (ellipsis only), it will execute \cmd{mktextelp}. When used with a non-empty \prm{text} argument (ellipsis and insertion), the \prm{text} will be passed as an argument to \cmd{mktextelpins}. The starred form will pass the \prm{text} to \cmd{mktextinselp} instead. These are the default definitions:
\begin{ltxcode}[showspaces=true]
\newcommand{<<\mktextelp>>}{[\textellipsis\unkern]}
@@ -1028,6 +1038,12 @@
\newcommand{<<\mktextmod>>}[1]{[#1]}
\end{ltxcode}
%
+The \cmd{textdel} command passes its \prm{text} argument to \cmd{mktextdel} for further processing. This is the default definition (note that the argument is not output):
+
+\begin{ltxcode}[showspaces=true]
+\newcommand{<<\mktextdel>>}[1]{[]}
+\end{ltxcode}
+%
You may redefine the above hooks to change the format of the printed output. For example, if you prefer replacements to be indicated by «[\textellipsis text]» rather than «[\textellipsis\unkern] [text]», redefine \cmd{mktextelpins} accordingly:
\begin{ltxcode}
@@ -1533,6 +1549,23 @@
\begin{changelog}
+\begin{release}{5.2b}{2017-03-11}
+\item Added language option \opt{portuguese}\see{opt:opt}
+\end{release}
+
+\begin{release}{5.2a}{2017-02-03}
+ \item Fix behaviour of \cmd{blockquote} inside \cmd{parbox} and
+ related constructs
+\end{release}
+
+\begin{release}{5.2}{2016-12-28}
+ \item Add \cmd{textdel} auxiliary command.\see{aux}
+\end{release}
+
+\begin{release}{5.1h}{2016-07-14}
+\item Adapt \cmd{fixligatures} to work correctly with \luatex
+\end{release}
+
\begin{release}{5.1g}{2016-01-31}
\item Update for new \acr{TU} Unicode encoding
\end{release}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/csquotes.doc.tlpobj new/tlpkg/tlpobj/csquotes.doc.tlpobj
--- old/tlpkg/tlpobj/csquotes.doc.tlpobj 2016-04-14 18:54:38.000000000 +0200
+++ new/tlpkg/tlpobj/csquotes.doc.tlpobj 2017-04-14 17:37:18.000000000 +0200
@@ -1,10 +1,9 @@
name csquotes.doc
category Package
-revision 39538
+revision 43469
shortdesc doc files of csquotes
relocated 1
-docfiles size=101
+docfiles size=103
RELOC/doc/latex/csquotes/README.md
- RELOC/doc/latex/csquotes/RELEASE.md
RELOC/doc/latex/csquotes/csquotes.pdf
RELOC/doc/latex/csquotes/csquotes.tex
++++++ csquotes.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/csquotes/csq-compat.def new/tex/latex/csquotes/csq-compat.def
--- old/tex/latex/csquotes/csq-compat.def 2016-02-02 00:01:46.000000000 +0100
+++ new/tex/latex/csquotes/csq-compat.def 2017-03-12 01:01:05.000000000 +0100
@@ -1,5 +1,5 @@
\ProvidesFile{csq-compat.def}
- [2016/01/31 v5.1g csquotes backwards compatibility (JAW)]
+ [2017/03/11 v5.2b csquotes backwards compatibility (JAW)]
\def\csq@getversion#1{%
\expandafter\csq@getversion@i
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/csquotes/csquotes.def new/tex/latex/csquotes/csquotes.def
--- old/tex/latex/csquotes/csquotes.def 2016-02-02 00:01:46.000000000 +0100
+++ new/tex/latex/csquotes/csquotes.def 2017-03-12 01:01:05.000000000 +0100
@@ -1,5 +1,5 @@
\ProvidesFile{csquotes.def}
- [2016/01/31 v5.1g csquotes generic definitions (JAW)]
+ [2017/03/11 v5.2b csquotes generic definitions (JAW)]
% Set defaults
@@ -39,6 +39,12 @@
[0.025em]
{\quotesinglbase}
{\textquoteright}
+\DeclareQuoteStyle{czech}
+ {\quotedblbase}
+ {\textquotedblleft}
+ [0.025em]
+ {\quotesinglbase}
+ {\fixligatures\textquoteleft}
\DeclareQuoteStyle[quotes]{danish}
{\quotedblbase}
{\textquotedblleft}
@@ -129,6 +135,12 @@
{\guillemotright}
{\textquotedblleft}
{\textquotedblright}
+\DeclareQuoteStyle{icelandic}
+ {\quotedblbase}
+ {\textquotedblleft}
+ [0.05em]
+ {\quotesinglbase}
+ {\fixligatures\textquoteleft}
\DeclareQuoteStyle[quotes]{italian}
{\textquotedblleft}
{\textquotedblright}
@@ -176,6 +188,12 @@
[0.05em]
{\textquoteleft}
{\textquoteright}
+\DeclareQuoteStyle{slovak}
+ {\quotedblbase}
+ {\textquotedblleft}
+ [0.025em]
+ {\quotesinglbase}
+ {\fixligatures\textquoteleft}
\DeclareQuoteStyle[spanish]{spanish}% verified
{\guillemotleft}
[\guillemotright]
@@ -255,8 +273,10 @@
\DeclareQuoteOption{english}
\DeclareQuoteOption{french}
\DeclareQuoteOption{german}
+\DeclareQuoteOption{icelandic}
\DeclareQuoteOption{italian}
\DeclareQuoteOption{norwegian}
+\DeclareQuoteOption{portuguese}
\DeclareQuoteOption{spanish}
\DeclareQuoteOption{swedish}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/csquotes/csquotes.sty new/tex/latex/csquotes/csquotes.sty
--- old/tex/latex/csquotes/csquotes.sty 2016-02-02 00:01:46.000000000 +0100
+++ new/tex/latex/csquotes/csquotes.sty 2017-03-12 01:01:05.000000000 +0100
@@ -1,5 +1,5 @@
% Copyright (c) 2003-2011 Philipp Lehman.
-% (c) 2015-2016 Joseph Wright.
+% (c) 2015-2017 Joseph Wright.
%
% Permission is granted to copy, distribute and/or modify this
% software under the terms of the LaTeX Project Public License
@@ -12,7 +12,7 @@
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
\ProvidesPackage{csquotes}
- [2016/01/31 v5.1g context-sensitive quotations (JAW)]
+ [2017/03/11 v5.2b context-sensitive quotations (JAW)]
%% Compatibility and requirements
@@ -25,7 +25,7 @@
{Outdated 'etoolbox' package}
{Upgrade to etoolbox v1.7 (2008/06/28) or later.\MessageBreak
I found: '\csuse{ver@etoolbox.sty}'.\MessageBreak
- This is a fatal error. I'm aborting now.}%
+ This is a fatal error. I'm aborting now.}
\endinput}
\@ifpackageloaded{inputenc}
@@ -173,7 +173,7 @@
% Grouping control
\protected\def\csq@bqgroup{%
- \bgroup\leavevmode
+ \begingroup\leavevmode
\csq@glevel\currentgrouplevel
\csq@gtype\currentgrouptype}
@@ -186,7 +186,7 @@
\else
\csq@err@gtype
\fi
- \egroup}
+ \endgroup}
\AtEndDocument{%
\ifnum\csq@qlevel>\z@
@@ -1137,7 +1137,7 @@
\csq@ifnested
{\csq@err@nbquote}
{\csq@getpunct{%
- \ifbool{inner}
+ \ifboolexpr{ bool {inner} and bool {hmode} }
{\csq@bquote@ii}
{\ifbool{csdisplay}
{\csq@bquote@i}
@@ -2217,11 +2217,15 @@
\newrobustcmd*{\textins}{%
\@ifstar\mktextmod\mktextins}
+\newrobustcmd*{\textdel}{%
+ \mktextdel}
+
\newcommand{\mktextelp}{[\textellipsis\unkern]}
\newcommand{\mktextelpins}[1]{[\textellipsis\unkern] [#1]}
\newcommand{\mktextinselp}[1]{[#1] [\textellipsis\unkern]}
\newcommand{\mktextins}[1]{[#1]}
\newcommand{\mktextmod}[1]{[#1]}
+\newcommand{\mktextdel}[1]{[]}
%% Auxiliary commands for some styles
@@ -2254,13 +2258,13 @@
\newrobustcmd*{\fixligatures}{%
\ifhmode
\ifnum\spacefactor>3000
- \relax
+ \kern0pt
\else
\ifnum\spacefactor=1007
- \relax
+ \kern0pt
\else
\ifnum\spacefactor=1008
- \relax
+ \kern0pt
\fi
\fi
\fi
@@ -2388,10 +2392,6 @@
{\csq@info{Checking for multilingual support..}%
\@ifpackageloaded{polyglossia}
{\csq@info{... found 'polyglossia' package}%
- \csq@warning
- {Using preliminary 'polyglossia' interface.\MessageBreak
- Some of the multilingual features may not\MessageBreak
- work as expected\@gobble}%
\def\csq@main@language{\xpg@main@language}%
\csq@hook@multilang}
{\@ifpackageloaded{babel}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/csquotes.tlpobj new/tlpkg/tlpobj/csquotes.tlpobj
--- old/tlpkg/tlpobj/csquotes.tlpobj 2016-04-14 18:54:39.000000000 +0200
+++ new/tlpkg/tlpobj/csquotes.tlpobj 2017-04-14 17:37:19.000000000 +0200
@@ -1,6 +1,6 @@
name csquotes
category Package
-revision 39538
+revision 43469
shortdesc Context sensitive quotation facilities
relocated 1
longdesc This package provides advanced facilities for inline and
@@ -17,13 +17,13 @@
longdesc well as the optional active quotes are freely configurable. The
longdesc package is dependent on e-TeX, and requires the author's
longdesc etoolbox package.
-runfiles size=24
+runfiles size=23
RELOC/tex/latex/csquotes/csq-compat.def
RELOC/tex/latex/csquotes/csquotes.cfg
RELOC/tex/latex/csquotes/csquotes.def
RELOC/tex/latex/csquotes/csquotes.sty
catalogue-ctan /macros/latex/contrib/csquotes
-catalogue-date 2016-02-01 07:19:50 +0100
+catalogue-date 2017-03-11 21:09:57 +0100
catalogue-license lppl1.3
catalogue-topics quote-marks
-catalogue-version 5.1g
+catalogue-version 5.2b
++++++ cstex.doc.tar.xz ++++++
++++++ csvsimple.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/csvsimple/CHANGES new/doc/latex/csvsimple/CHANGES
--- old/doc/latex/csvsimple/CHANGES 2014-07-15 00:44:11.000000000 +0200
+++ new/doc/latex/csvsimple/CHANGES 2016-11-25 19:28:30.000000000 +0100
@@ -1,7 +1,7 @@
-%% The LaTeX package csvsimple - version 1.12 (2014/07/14)
+%% The LaTeX package csvsimple - version 1.20 (2016/07/01)
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2008-2014 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2008-2016 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -89,3 +89,16 @@
new key 'csvsorter token'
- changed: encircling column entry braces removed for all entries for better siunitx compatibility
- documentation revised and extended with siunitx examples
+
+version 1.20 (2016/07/01):
+- implementation changed from \roman to \romannumeral
+- write18 replace by \ShellEscape from the shellesc package
+- '\csvlinetotablerow' implemented more efficiently
+- '\csvloop' made long
+- new string comparison macros:
+ '\ifcsvstrequal', '\ifcsvprostrequal', '\ifcsvstrcmp', '\ifcsvnotstrcmp'
+- new filter options:
+ 'filter ifthen', 'filter test', 'filter expr', 'full filter',
+ 'filter strcmp', 'filter not strcmp'
+- code optimizations
+- documentation revised
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/csvsimple/README new/doc/latex/csvsimple/README
--- old/doc/latex/csvsimple/README 2014-07-15 00:44:11.000000000 +0200
+++ new/doc/latex/csvsimple/README 2016-11-25 19:28:30.000000000 +0100
@@ -1,7 +1,7 @@
-%% The LaTeX package csvsimple - version 1.12 (2014/07/14)
+%% The LaTeX package csvsimple - version 1.20 (2016/07/01)
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2008-2014 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2008-2016 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -35,6 +35,7 @@
'csvsimple-example.pdf' Compiled example
'amountsort.xml' csvsorter configuration file (example)
'catsort.xml' csvsorter configuration file (example)
+ 'encoding.xml' csvsorter configuration file (example)
'gradesort.xml' csvsorter configuration file (example)
'matriculationsort.xml' csvsorter configuration file (example)
'namesort.xml' csvsorter configuration file (example)
Binary files old/doc/latex/csvsimple/csvsimple-example.pdf and new/doc/latex/csvsimple/csvsimple-example.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/csvsimple/csvsimple-example.tex new/doc/latex/csvsimple/csvsimple-example.tex
--- old/doc/latex/csvsimple/csvsimple-example.tex 2014-07-15 00:44:11.000000000 +0200
+++ new/doc/latex/csvsimple/csvsimple-example.tex 2016-11-25 19:28:30.000000000 +0100
@@ -1,8 +1,8 @@
-%% The LaTeX package csvsimple - version 1.12 (2014/07/14)
+%% The LaTeX package csvsimple - version 1.20 (2016/07/01)
%% csvsimple-example.tex: an example for csvsimple
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2008-2014 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2008-2016 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
Binary files old/doc/latex/csvsimple/csvsimple.pdf and new/doc/latex/csvsimple/csvsimple.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/csvsimple/csvsimple.tex new/doc/latex/csvsimple/csvsimple.tex
--- old/doc/latex/csvsimple/csvsimple.tex 2014-07-15 00:44:11.000000000 +0200
+++ new/doc/latex/csvsimple/csvsimple.tex 2016-11-25 19:28:30.000000000 +0100
@@ -1,9 +1,10 @@
% \LaTeX-Main\
-%% The LaTeX package csvsimple - version 1.12 (2014/07/14)
+% !TeX encoding=UTF-8
+%% The LaTeX package csvsimple - version 1.20 (2016/07/01)
%% csvsimple.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2008-2014 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2008-2016 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -21,17 +22,19 @@
\documentclass[a4paper,11pt]{ltxdoc}
\usepackage[T1]{fontenc}
-\usepackage[latin1]{inputenc}
+\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{lmodern,parskip,array,ifthen,calc,makeidx}
\usepackage{amsmath,amssymb}
\usepackage[svgnames,table,hyperref]{xcolor}
\usepackage{tikz,siunitx}
+\usepackage{varioref}
\usepackage[pdftex,bookmarks,raiselinks,pageanchor,hyperindex,colorlinks]{hyperref}
\urlstyle{sf}
+\usepackage{cleveref}
\usepackage[a4paper,left=2.5cm,right=2.5cm,top=1.5cm,bottom=1.5cm,
- marginparsep=5mm,marginparwidth=10mm,
+ marginparsep=3mm,marginparwidth=18mm,
headheight=0mm,headsep=0cm,
footskip=1.5cm,includeheadfoot]{geometry}
\usepackage{fancyhdr}
@@ -51,54 +54,64 @@
\setlength{\bibitemsep}{\smallskipamount}
\addbibresource{\jobname.bib}
-\usepackage[most,documentation]{tcolorbox}
\usepackage{longtable,booktabs}
\usepackage{csvsimple}
+\usepackage{tcolorbox}
+\tcbuselibrary{skins,xparse,minted,breakable,documentation,raster}
+
+\definecolor{Green_Dark}{rgb}{0.078431,0.407843,0.176471}
+\definecolor{Blue_Dark}{rgb}{0.090196,0.211765,0.364706}
+\definecolor{Blue_Bright}{rgb}{0.858824,0.898039,0.945098}
+
\tcbset{skin=enhanced,
+ minted options={fontsize=\footnotesize},
doc head={colback=yellow!10!white,interior style=fill},
doc head key={colback=magenta!5!white,interior style=fill},
color key=DarkViolet,
color value=Teal,
color color=Teal,
- index colorize,index annotate}
-
-\lstdefinestyle{mydocumentation}{style=tcbdocumentation,
- classoffset=0,
- texcsstyle=\color{blue},
- % LaTeX and other packages
- moretexcs={arrayrulecolor,draw,includegraphics,ifthenelse,isodd,lipsum,path,pgfkeysalso},
- classoffset=1,
- moretexcs={%
- csvset,csvreader,csvautotabular,csvloop,csvautolongtable,csvstyle,
- csvnames,csvheadset,csviffirstrow,csvifoddrow,csvfilteraccept,
- csvfilterreject,csvline,thecsvrow,thecsvinputline,csvlinetotablerow,
- csvautobooktabular,csvautobooklongtable,
+ color counter=Orange!85!black,
+ color length=Orange!85!black,
+ index colorize,
+ index annotate,
+ beforeafter example/.style={
+ before skip=4pt plus 2pt minus 1pt,
+ after skip=8pt plus 4pt minus 2pt
+ },
+ docexample/.style={bicolor,
+ beforeafter example,
+ arc is angular,fonttitle=\bfseries,
+ %fontupper=\tiny\itshape,
+ fontlower=\footnotesize,
+ %colframe=Blue_Dark,
+ %colback=Blue_Bright!75,
+ colframe=green!25!yellow!50!black,
+ colback=green!25!yellow!7,
+ colbacklower=white,
+% drop fuzzy shadow,
+ drop fuzzy shadow=green!25!yellow!50!black,
+ listing engine=minted,
+ documentation minted style=colorful,
+ documentation minted options={fontsize=\footnotesize},
},
- texcsstyle=\color{Definition}\bfseries,
- classoffset=2,
- keywordstyle=\color{Option}\bfseries,
- % option list
- morekeywords={%
- },
- classoffset=0% restore default
- }
-
-\tcbset{documentation listing style=mydocumentation,%
- docexample/.style={enhanced,colframe=Navy!50!ExampleFrame,colback=Navy!5!ExampleBack,fontlower=\footnotesize,
- bicolor,colbacklower=ExampleBack!5!white,drop fuzzy shadow},
}
-
+\renewcommand*{\tcbdocnew}[1]{\textcolor{green!50!black}{\sffamily\bfseries N} #1}
+\renewcommand*{\tcbdocupdated}[1]{\textcolor{blue!75!black}{\sffamily\bfseries U} #1}
\tcbmakedocSubKey{docCsvKey}{csv}
\NewDocumentCommand{\csvsorter}{}{\textsf{\bfseries\color{red!20!black}CSV-Sorter}}
-\newtcbinputlisting{\csvlisting}[1]{docexample,listing style=tcbdocumentation,fonttitle=\bfseries,
- listing only,title={CSV file \flqq\texttt{\detokenize{#1.csv}}\frqq},listing file=#1.csv}
-
-\newtcbinputlisting{\xmllisting}[1]{docexample,listing options={style=tcbdocumentation,language=XML},
+%\newtcbinputlisting{\csvlisting}[1]{docexample,listing style=tcbdocumentation,fonttitle=\bfseries,
+% listing only,title={CSV file \flqq\texttt{\detokenize{#1.csv}}\frqq},listing file=#1.csv}
+\newtcbinputlisting{\csvlisting}[1]{docexample,minted options={fontsize=\footnotesize},minted language=latex,
+ fonttitle=\bfseries,listing only,title={CSV file \flqq\texttt{\detokenize{#1.csv}}\frqq},listing file=#1.csv}
+
+%\newtcbinputlisting{\xmllisting}[1]{docexample,listing options={style=tcbdocumentation,language=XML},
+% fonttitle=\bfseries,listing only,title={Configuration file \flqq\texttt{\detokenize{#1.xml}}\frqq},listing file=#1.xml}
+\newtcbinputlisting{\xmllisting}[1]{docexample,minted options={fontsize=\footnotesize},minted language=xml,
fonttitle=\bfseries,listing only,title={Configuration file \flqq\texttt{\detokenize{#1.xml}}\frqq},listing file=#1.xml}
\NewTotalTCBox{\verbbox}{m}{enhanced,on line,size=fbox,frame empty,colback=red!5!white,
@@ -111,25 +124,28 @@
pdfkeywords={csv file, comma separated values, key value syntax}
}
-\def\version{1.12}%
-\def\datum{2014/07/14}%
+\def\version{1.20}%
+\def\datum{2016/07/01}%
\makeindex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\begin{center}
-\vspace*{5mm}
-\begin{tcolorbox}[enhanced,
- center upper,width=10cm,boxrule=0.4pt,
- colback=white,colframe=black!50!yellow,drop fuzzy midday shadow=black!50!yellow]
-{\bfseries\LARGE The \texttt{csvsimple} package\par}\medskip
-{\large Manual for version \version\ (\datum)\par}
-\end{tcolorbox}\bigskip
+\begin{tcolorbox}[enhanced,hbox,tikznode,left=8mm,right=8mm,boxrule=0.4pt,
+ colback=white,colframe=black!50!yellow,
+ drop lifted shadow=black!50!yellow,arc is angular,
+ before=\par\vspace*{5mm},after=\par\bigskip]
+{\bfseries\LARGE The \texttt{csvsimple} package}\\[3mm]
+{\large Manual for version \version\ (\datum)}
+\end{tcolorbox}
{\large Thomas F.~Sturm%
\footnote{Prof.~Dr.~Dr.~Thomas F.~Sturm, Institut f\"{u}r Mathematik und Informatik,
Universit\"{a}t der Bundeswehr M\"{u}nchen, D-85577 Neubiberg, Germany;
- email: \href{mailto:thomas.sturm@unibw.de}{thomas.sturm@unibw.de}} }
+ email: \href{mailto:thomas.sturm@unibw.de}{thomas.sturm@unibw.de}}\par\medskip
+\normalsize\url{http://www.ctan.org/pkg/csvsimple}\par
+\url{https://github.com/T-F-S/csvsimple}
+}
\end{center}
\bigskip
\begin{absquote}
@@ -142,6 +158,7 @@
or data base storage.
\end{absquote}
+\clearpage
\tableofcontents
\clearpage
@@ -149,10 +166,10 @@
The |csvsimple| package is applied to the processing of
CSV\footnote{CSV file: file with comma separated values.} files.
This processing is controlled by key value assignments according to the
-syntax of |pgfkeys| \cite{tantau:2013a}. Sample applications of the package
+syntax of |pgfkeys| \cite{tantau:2015a}. Sample applications of the package
are tabular lists, serial letters, and charts.
-An alternative to |csvsimple| is the |datatool| package \cite{talbot:2014a}
+An alternative to |csvsimple| is the |datatool| package \cite{talbot:2016a}
which provides considerably more functions and allows sorting of data by \LaTeX.
|csvsimple| has a different approach for the user interface and
is deliberately restricted to some basic functions with fast
@@ -161,16 +178,18 @@
\subsection{Loading the Package}
The package |csvsimple| loads the packages
-|pgfkeys| \cite{tantau:2013a} and |ifthen| \cite{carlisle:2001b}.
+|pgfkeys| \cite{tantau:2015a},
+|etoolbox| \cite{lehmann:2015a},
+and |ifthen| \cite{carlisle:2014c}.
|csvsimple| itself is loaded in the usual manner in the preamble:
\begin{dispListing}
\usepackage{csvsimple}
\end{dispListing}
Not automatically loaded, but used for many examples are the packages
-|longtable| \cite{carlisle:2004a}
+|longtable| \cite{carlisle:2014d}
and
-|booktabs| \cite{fear:2005a}.
+|booktabs| \cite{fear:2016a}.
\subsection{First Steps}
Every line of a processable CSV file has to contain an identical amount of
@@ -185,7 +204,7 @@
name,givenname,matriculation,gender,grade
Maier,Hans,12345,m,1.0
Huber,Anna,23456,f,2.3
-Wei\ss{}b\"{a}ck,Werner,34567,m,5.0
+Weißbäck,Werner,34567,m,5.0
Bauer,Maria,19202,f,3.3
\end{tcbverbatimwrite}
%-- end embedded file --
@@ -330,10 +349,10 @@
a certificate is printed only for students with grade unequal to 5.0.
\begin{dispExample}
-\csvreader[filter not equal={\grade}{5.0}]%
+\csvreader[filter not strcmp={\grade}{5.0}]%
{grade.csv}{1=\name,2=\firstname,3=\matnumber,4=\gender,5=\grade}%
{\begin{center}\Large\bfseries Certificate in Mathematics\end{center}
- \large\ifthenelse{\equal{\gender}{f}}{Ms.}{Mr.}
+ \large\ifcsvstrcmp{\gender}{f}{Ms.}{Mr.}
\firstname~\name, matriculation number \matnumber, has passed the test
in mathematics with grade \grade.\par\ldots\par
}%
@@ -480,7 +499,7 @@
\begin{dispExample}
\csvset{grade list/.style=
{column names={name=\name,givenname=\firstname,grade=\grade}},
- passed/.style={filter not equal={\grade}{5.0}} }
+ passed/.style={filter not strcmp={\grade}{5.0}} }
The following students passed the test in mathematics:
\csvreader[grade list,passed]{grade.csv}{}{\firstname\ \name\ (\grade); }%
@@ -498,7 +517,7 @@
to define additional \meta{assignments} of macros to columns.
\begin{dispExample}
\csvnames{grade list}{name=\name,givenname=\firstname,grade=\grade}
-\csvstyle{passed}{filter not equal={\grade}{5.0}}
+\csvstyle{passed}{filter not strcmp={\grade}{5.0}}
The following students passed the test in mathematics:
\csvreader[grade list,passed]{grade.csv}{}{\firstname\ \name\ (\grade); }%
@@ -575,11 +594,11 @@
\begin{docCommand}{csvfilteraccept}{}
All following consistent data lines will be accepted and processed.
This command overwrites all previous filter settings and may be used
- inside \refKey{/csv/before filter} to implement
+ inside \refKey{/csv/full filter} to implement
an own filtering rule together with |\csvfilterreject|.
\begin{dispExample}
\csvreader[autotabular,
- before filter=\ifthenelse{\equal{\csvcoliv}{m}}{\csvfilteraccept}{\csvfilterreject}
+ full filter=\ifcsvstrcmp{\csvcoliv}{m}{\csvfilteraccept}{\csvfilterreject}
]{grade.csv}{}{\csvlinetotablerow}%
\end{dispExample}
\end{docCommand}
@@ -614,14 +633,14 @@
The \LaTeX\ counter |csvinputline| can be addressed directly in the usual way,
e.\,g. by |\roman{csvinputline}|.
\begin{dispExample}
-\csvreader[no head, filter equal={\thecsvinputline}{3}]%
+\csvreader[no head, filter test=\ifnumequal{\thecsvinputline}{3}]%
{grade.csv}{}%
{The line with number \thecsvinputline\ contains: \csvline}%
\end{dispExample}
\end{docCommand}
-\begin{docCommand}{csvlinetotablerow}{}
+\begin{docCommand}[doc updated=2016-00-00]{csvlinetotablerow}{}
Typesets the current processed data line with |&| between the entries.
%Most users will never apply this command.
\end{docCommand}
@@ -637,28 +656,29 @@
\subsection{Command Definition}%--------%[[
-\begin{docCsvKey}{before reading}{=\meta{macros}}{no default, initially empty}
- Sets the \meta{macros} to be executed before the CSV file is processed.
+\begin{docCsvKey}{before reading}{=\meta{code}}{no default, initially empty}
+ Sets the \meta{code} to be executed before the CSV file is processed.
\end{docCsvKey}
-\begin{docCsvKey}{after head}{=\meta{macros}}{no default, initially empty}
- Sets the \meta{macros} to be executed after the header line is read.
+\begin{docCsvKey}{after head}{=\meta{code}}{no default, initially empty}
+ Sets the \meta{code} to be executed after the header line is read.
\end{docCsvKey}
-\begin{docCsvKey}{before filter}{=\meta{macros}}{no default, initially empty}
- Sets the \meta{macros} to be executed after reading and consistency checking
+\begin{docCsvKey}{before filter}{=\meta{code}}{no default, initially empty}
+ Sets the \meta{code} to be executed after reading and consistency checking
of a data line. They are executed before any filter condition is checked,
see \refKey{/csv/filter}.
+ Also see \refKey{/csv/full filter}.
\end{docCsvKey}
-\begin{docCsvKey}{late after head}{=\meta{macros}}{no default, initially empty}
- Sets the \meta{macros} to be executed after reading and disassembling
+\begin{docCsvKey}{late after head}{=\meta{code}}{no default, initially empty}
+ Sets the \meta{code} to be executed after reading and disassembling
of the first accepted data line. They are executed before further processing
of this line.
\end{docCsvKey}
-\begin{docCsvKey}{late after line}{=\meta{macros}}{no default, initially empty}
- Sets the \meta{macros} to be executed after reading and disassembling
+\begin{docCsvKey}{late after line}{=\meta{code}}{no default, initially empty}
+ Sets the \meta{code} to be executed after reading and disassembling
of the next accepted data line (after \refKey{/csv/before filter}).
They are executed before further processing of this next line.
|late after line| overwrites |late after first line| and |late after last line|.
@@ -667,55 +687,55 @@
\end{docCsvKey}
-\begin{docCsvKey}{late after first line}{=\meta{macros}}{no default, initially empty}
- Sets the \meta{macros} to be executed after reading and disassembling
+\begin{docCsvKey}{late after first line}{=\meta{code}}{no default, initially empty}
+ Sets the \meta{code} to be executed after reading and disassembling
of the second accepted data line instead of \refKey{/csv/late after line}.
This key has to be set after |late after line|.
\end{docCsvKey}
-\begin{docCsvKey}{late after last line}{=\meta{macros}}{no default, initially empty}
- Sets the \meta{macros} to be executed after processing of the last
+\begin{docCsvKey}{late after last line}{=\meta{code}}{no default, initially empty}
+ Sets the \meta{code} to be executed after processing of the last
accepted data line instead of \refKey{/csv/late after line}.
This key has to be set after |late after line|.
\end{docCsvKey}
-\begin{docCsvKey}{before line}{=\meta{macros}}{no default, initially empty}
- Sets the \meta{macros} to be executed after \refKey{/csv/late after line}
+\begin{docCsvKey}{before line}{=\meta{code}}{no default, initially empty}
+ Sets the \meta{code} to be executed after \refKey{/csv/late after line}
and before \refKey{/csv/command}.
|before line| overwrites |before first line|.
\end{docCsvKey}
-\begin{docCsvKey}{before first line}{=\meta{macros}}{no default, initially empty}
- Sets the \meta{macros} to be executed instead of \refKey{/csv/before line}
+\begin{docCsvKey}{before first line}{=\meta{code}}{no default, initially empty}
+ Sets the \meta{code} to be executed instead of \refKey{/csv/before line}
for the first accepted data line.
This key has to be set after |before line|.
\end{docCsvKey}
-\begin{docCsvKey}{command}{=\meta{macros}}{no default, initially \cs{csvline}}
- Sets the \meta{macros} to be executed for every accepted data line.
+\begin{docCsvKey}{command}{=\meta{code}}{no default, initially \cs{csvline}}
+ Sets the \meta{code} to be executed for every accepted data line.
They are executed between \refKey{/csv/before line} and \refKey{/csv/after line}.
\end{docCsvKey}
-\begin{docCsvKey}{after line}{=\meta{macros}}{no default, initially empty}
- Sets the \meta{macros} to be executed for every accepted data line
+\begin{docCsvKey}{after line}{=\meta{code}}{no default, initially empty}
+ Sets the \meta{code} to be executed for every accepted data line
after \refKey{/csv/command}.
|after line| overwrites |after first line|.
\end{docCsvKey}
-\begin{docCsvKey}{after first line}{=\meta{macros}}{no default, initially empty}
- Sets the \meta{macros} to be executed instead of \refKey{/csv/after line}
+\begin{docCsvKey}{after first line}{=\meta{code}}{no default, initially empty}
+ Sets the \meta{code} to be executed instead of \refKey{/csv/after line}
for the first accepted data line.
This key has to be set after |after line|.
\end{docCsvKey}
-\begin{docCsvKey}{after reading}{=\meta{macros}}{no default, initially empty}
- Sets the \meta{macros} to be executed after the CSV file is processed.
+\begin{docCsvKey}{after reading}{=\meta{code}}{no default, initially empty}
+ Sets the \meta{code} to be executed after the CSV file is processed.
\end{docCsvKey}
@@ -777,7 +797,7 @@
\clearpage
-\subsection{Consistency Check and Filtering}%
+\subsection{Consistency Check}%
\begin{docCsvKey}{check column count}{\colOpt{=true\textbar false}}{default |true|, initially |true|}
This key defines, if the number of entries in a data line is checked against
@@ -801,8 +821,8 @@
\end{docCsvKey}
-\begin{docCsvKey}{on column count error}{=\meta{macros}}{no default, initially empty}
- \meta{macros} to be executed for unfeasible data lines.
+\begin{docCsvKey}{on column count error}{=\meta{code}}{no default, initially empty}
+ \meta{code} to be executed for unfeasible data lines.
\end{docCsvKey}
@@ -811,14 +831,107 @@
\end{docCsvKey}
-\begin{docCsvKey}{filter}{=\meta{condition}}{no default}
+\clearpage
+\subsection{Filtering}%
+
+\begin{docCsvKey}[][doc new=2016-00-00]{filter test}{=\meta{condition}}{no default}
Only data lines which fulfill a logical \meta{condition} are accepted.
- For the \meta{condition}, every term from the |ifthen| package \cite{carlisle:2001b}
+ For the \meta{condition}, every single test normally employed like
+\begin{dispListing}
+\iftest{some testing}{true}{false}
+\end{dispListing}
+ can be used as
+\begin{dispListing}
+filter test=\iftest{some testing},
+\end{dispListing}
+ For |\iftest|, tests from the |etoolbox| package \cite{lehmann:2015a} like
+ |\ifnumcomp|, |\ifdimgreater|, etc. and from \Fullref{sec:stringtests} can be used.
+
+\begin{dispExample}
+\csvreader[head to column names,tabular=llll,
+ table head=\toprule & \bfseries Name & \bfseries Matr & \bfseries Grade\\\midrule,
+ table foot=\bottomrule,
+ %>> list only matriculation numbers greater than 20000 <<
+ filter test=\ifnumgreater{\matriculation}{20000},
+ ]{grade.csv}{}{%
+ \thecsvrow & \slshape\name, \givenname & \matriculation & \grade}
+\end{dispExample}
+\end{docCsvKey}
+
+
+\begin{docCsvKey}{filter strcmp}{=\marg{stringA}\marg{stringB}}{style, no default}
+ Only lines where \meta{stringA} and \meta{stringB} are equal after expansion
+ are accepted.
+ The implementation is done with \refCom{ifcsvstrcmp}.
+\end{docCsvKey}
+
+
+\begin{docCsvKey}{filter not strcmp}{=\marg{stringA}\marg{stringB}}{style, no default}
+ Only lines where \meta{stringA} and \meta{stringB} are not equal after expansion
+ are accepted.
+ The implementation is done with \refCom{ifcsvnotstrcmp}.
+\end{docCsvKey}
+
+
+\begin{docCsvKey}[][doc new=2016-00-00]{filter expr}{=\meta{condition}}{no default}
+ Only data lines which fulfill a logical \meta{condition} are accepted.
+ For the \meta{condition}, every boolean expression
+ from the |etoolbox| package \cite{lehmann:2015a} is feasible.
+ To preprocess the data line before testing the \meta{condition},
+ the option key \refKey{/csv/before filter} can be used.
+\begin{dispExample}
+\csvreader[head to column names,tabular=llll,
+ table head=\toprule & \bfseries Name & \bfseries Matr & \bfseries Grade\\\midrule,
+ table foot=\bottomrule,
+ %>> list only matriculation numbers greater than 20000
+ % and grade less than 4.0 <<
+ filter expr={ test{\ifnumgreater{\matriculation}{20000}}
+ and test{\ifdimless{\grade pt}{4.0pt}} },
+ ]{grade.csv}{}{%
+ \thecsvrow & \slshape\name, \givenname & \matriculation & \grade}
+\end{dispExample}
+\end{docCsvKey}
+
+\clearpage
+\begin{docCsvKey}[][doc new=2016-00-00]{filter ifthen}{=\meta{condition}}{no default}
+ Only data lines which fulfill a logical \meta{condition} are accepted.
+ For the \meta{condition}, every term from the |ifthen| \cite{carlisle:2014c} package
is feasible.
To preprocess the data line before testing the \meta{condition},
the option key \refKey{/csv/before filter} can be used.
+
+\begin{dispExample}
+\csvreader[head to column names,tabular=llll,
+ table head=\toprule & \bfseries Name & \bfseries Matr & \bfseries Grade\\\midrule,
+ table foot=\bottomrule,
+ %>> list only female persons <<
+ filter ifthen=\equal{\gender}{f},
+ ]{grade.csv}{}{%
+ \thecsvrow & \slshape\name, \givenname & \matriculation & \grade}
+\end{dispExample}
+
+\end{docCsvKey}
+
+
+\begin{docCsvKey}{filter}{=\meta{condition}}{no default}
+ Alias for \refKey{/csv/filter ifthen}.
+\end{docCsvKey}
+
+\begin{docCsvKey}{filter equal}{=\marg{stringA}\marg{stringB}}{style, no default}
+ Only lines where \meta{stringA} and \meta{stringB} are equal after expansion
+ are accepted.
+ The implementation is done with the |ifthen| \cite{carlisle:2014c} package.
+\end{docCsvKey}
+
+
+\begin{docCsvKey}{filter not equal}{=\marg{stringA}\marg{stringB}}{style, no default}
+ Only lines where \meta{stringA} and \meta{stringB} are not equal after expansion
+ are accepted.
+ The implementation is done with the |ifthen| \cite{carlisle:2014c} package.
\end{docCsvKey}
+
+
\begin{docCsvKey}{no filter}{}{no value, initially set}
Clears a set filter.
\end{docCsvKey}
@@ -834,18 +947,30 @@
\end{docCsvKey}
-\begin{docCsvKey}{filter equal}{=\marg{string A}\marg{string B}}{style, no default}
- Only lines where \meta{string A} and \meta{string B} are equal after expansion
- are accepted.
-\end{docCsvKey}
-
-\begin{docCsvKey}{filter not equal}{=\marg{string A}\marg{string B}}{style, no default}
- Only lines where \meta{string A} and \meta{string B} are not equal after expansion
- are accepted.
+\enlargethispage*{2cm}
+\begin{docCsvKey}[][doc new=2016-00-00]{full filter}{=\meta{code}}{no default}
+ Technically, this key is an alias for \refKey{/csv/before filter}.
+ Philosophically, \refKey{/csv/before filter} computes something before
+ a filter condition is set, but \refKey{/csv/full filter} should implement
+ the full filtering. Especially, \refCom{csvfilteraccept} or
+ \refCom{csvfilterreject} \emph{should} be set inside the \meta{code}.
+\begin{dispExample}
+\csvreader[head to column names,tabular=llll,
+ table head=\toprule & \bfseries Name & \bfseries Matr & \bfseries Grade\\\midrule,
+ table foot=\bottomrule,
+ %>> list only matriculation numbers greater than 20000
+ % and grade less than 4.0 <<
+ full filter=\ifnumgreater{\matriculation}{20000}
+ {\ifdimless{\grade pt}{4.0pt}{\csvfilteraccept}{\csvfilterreject}}
+ {\csvfilterreject},
+ ]{grade.csv}{}{%
+ \thecsvrow & \slshape\name, \givenname & \matriculation & \grade}
+\end{dispExample}
\end{docCsvKey}
+
%]]
@@ -887,26 +1012,26 @@
\end{docCsvKey}
-\begin{docCsvKey}{before table}{=\meta{macros}}{no default, initially empty}
- Sets the \meta{macros} to be executed before |\begin{tabular}| or before |\begin{longtable}|
+\begin{docCsvKey}{before table}{=\meta{code}}{no default, initially empty}
+ Sets the \meta{code} to be executed before |\begin{tabular}| or before |\begin{longtable}|
or before |\begin{tabbing}|, respectively.
\end{docCsvKey}
-\begin{docCsvKey}{table head}{=\meta{macros}}{no default, initially empty}
- Sets the \meta{macros} to be executed after |\begin{tabular}| or after |\begin{longtable}|
+\begin{docCsvKey}{table head}{=\meta{code}}{no default, initially empty}
+ Sets the \meta{code} to be executed after |\begin{tabular}| or after |\begin{longtable}|
or after |\begin{tabbing}|, respectively.
\end{docCsvKey}
-\begin{docCsvKey}{table foot}{=\meta{macros}}{no default, initially empty}
- Sets the \meta{macros} to be executed before |\end{tabular}| or before |\end{longtable}|
+\begin{docCsvKey}{table foot}{=\meta{code}}{no default, initially empty}
+ Sets the \meta{code} to be executed before |\end{tabular}| or before |\end{longtable}|
or before |\end{tabbing}|, respectively.
\end{docCsvKey}
-\begin{docCsvKey}{after table}{=\meta{macros}}{no default, initially empty}
- Sets the \meta{macros} to be executed after |\end{tabular}| or after |\end{longtable}|
+\begin{docCsvKey}{after table}{=\meta{code}}{no default, initially empty}
+ Sets the \meta{code} to be executed after |\end{tabular}| or after |\end{longtable}|
or after |\end{tabbing}|, respectively.
\end{docCsvKey}
@@ -1038,7 +1163,7 @@
name;givenname;matriculation;gender;grade
Maier;Hans;12345;m;1.0
Huber;Anna;23456;f;2.3
- Wei\ss{}b\"{a}ck;Werner;34567;m;5.0
+ Weißbäck;Werner;34567;m;5.0
\end{tcbverbatimwrite}
\csvautobooktabular[separator=semicolon]{testsemi.csv}
@@ -1052,7 +1177,7 @@
name|givenname|matriculation|gender|grade
Maier|Hans|12345|m|1.0
Huber|Anna|23456|f|2.3
- Wei\ss{}b\"{a}ck|Werner|34567|m|5.0
+ Weißbäck|Werner|34567|m|5.0
\end{tcbverbatimwrite}
\csvautobooktabular[separator=pipe]{pipe.csv}
@@ -1178,26 +1303,26 @@
If \csvsorter\ was completely installed following its documentation, there is
nothing to change here. If the |csvsorter.jar| file is inside the same
directory as the \LaTeX\ source file, you may configure:% preferrably inside the preamble:
- \begin{dispListing}
- \csvset{csvsorter command=java -jar csvsorter.jar}
- \end{dispListing}
+\begin{dispListing}
+\csvset{csvsorter command=java -jar csvsorter.jar}
+\end{dispListing}
\end{docCsvKey}
\begin{docCsvKey}{csvsorter configpath}{=\meta{path}}{no default, initially |.|}
Sorting with \csvsorter\ is done using XML configuration files. If these files
are not stored inside the same directory as the \LaTeX\ source file, a
\meta{path} to access them can be configured:
- \begin{dispListing}
- \csvset{csvsorter configpath=xmlfiles}
- \end{dispListing}
+\begin{dispListing}
+\csvset{csvsorter configpath=xmlfiles}
+\end{dispListing}
Here, the configuration files would be stored in a subdirectory named |xmlfiles|.
\end{docCsvKey}
\begin{docCsvKey}{csvsorter log}{=\meta{file name}}{no default, initially |csvsorter.log|}
Sets the log file of \csvsorter\ to the given \meta{file name}.
- \begin{dispListing}
- \csvset{csvsorter log=outdir/csvsorter.log}
- \end{dispListing}
+\begin{dispListing}
+\csvset{csvsorter log=outdir/csvsorter.log}
+\end{dispListing}
Here, the log file is written to a subdirectory named |outdir|.
\end{docCsvKey}
@@ -1205,9 +1330,9 @@
\begin{docCsvKey}{csvsorter token}{=\meta{file name}}{no default, initially |\textbackslash jobname.csvtoken|}
Sets \meta{file name} as token file. This is an auxiliary file which
communicates the success of \csvsorter\ to |csvsimple|.
- \begin{dispListing}
- \csvset{csvsorter log=outdir/\jobname.csvtoken}
- \end{dispListing}
+\begin{dispListing}
+\csvset{csvsorter log=outdir/\jobname.csvtoken}
+\end{dispListing}
Here, the token file is written to a subdirectory named |outdir|.
\end{docCsvKey}
@@ -1307,6 +1432,51 @@
\end{docCsvKey}
+\clearpage
+\section{String Tests}\label{sec:stringtests}%
+
+The following string tests are complementing the string tests
+from the |etoolbox| \cite{lehmann:2015a} package. They all do the same, i.e.,
+comparing expanded strings for equality.
+\begin{itemize}
+\item\refCom{ifcsvstrcmp} is the most efficient method, because it uses
+ native compiler string comparison (if available).
+\item\refCom{ifcsvstrequal} does not rely on a compiler. It also is the
+ fallback implementation for \refCom{ifcsvstrcmp}, if there is no
+ native comparison method.
+\item\refCom{ifcsvprostrequal} is possibly more failsafe than the other two
+ string tests. It may be used, if strings contain dirty things like |\textbf{A}|.
+\end{itemize}
+\medskip
+
+\begin{docCommand}[doc new=2016-00-00]{ifcsvstrcmp}{\marg{stringA}\marg{stringB}\marg{true}\marg{false}}
+ Compares two strings and executes \meta{true} if they are equal, and \meta{false} otherwise.
+ The comparison is done using |\pdfstrcmp|, if compilation is done with pdf\LaTeX.
+ The comparison is done using |\pdf@strcmp|, if the package |pdftexcmds| is
+ loaded and compilation is done with lua\LaTeX\ or Xe\LaTeX.
+ Otherwise, \refCom{ifcsvstrcmp} is identical to \refCom{ifcsvstrequal}.
+ This command cannot be used inside the preamble.
+\end{docCommand}
+
+
+\begin{docCommand}[doc new=2016-00-00]{ifcsvnotstrcmp}{\marg{stringA}\marg{stringB}\marg{true}\marg{false}}
+ Compares two strings and executes \meta{true} if they are \emph{not} equal, and \meta{false} otherwise.
+ The implementation uses \refCom{ifcsvstrcmp}.
+\end{docCommand}
+
+
+\begin{docCommand}[doc new=2016-00-00]{ifcsvstrequal}{\marg{stringA}\marg{stringB}\marg{true}\marg{false}}
+ Compares two strings and executes \meta{true} if they are equal, and \meta{false} otherwise.
+ The strings are expanded with |\edef| in the test.
+\end{docCommand}
+
+\begin{docCommand}[doc new=2016-00-00]{ifcsvprostrequal}{\marg{stringA}\marg{stringB}\marg{true}\marg{false}}
+ Compares two strings and executes \meta{true} if they are equal, and \meta{false} otherwise.
+ The strings are expanded with |\protected@edef| in the test, i.e. parts of the
+ strings which are protected stay unexpanded.
+\end{docCommand}
+
+
\clearpage
\section{Examples}%
@@ -1321,8 +1491,8 @@
name,givenname,gender,degree,street,zip,location,bonus
Maier,Hans,m,,Am Bachweg 17,10010,Hopfingen,20
% next line with a comma in curly braces
-Huber,Erna,f,Dr.,{Moosstra\ss{}e 32, Hinterschlag},10020,\"{O}rtingstetten,30
-Wei\ss{}b\"{a}ck,Werner,m,Prof. Dr.,Brauallee 10,10030,Klingenbach,40
+Huber,Erna,f,Dr.,{Moosstraße 32, Hinterschlag},10020,Örtingstetten,30
+Weißbäck,Werner,m,Prof. Dr.,Brauallee 10,10030,Klingenbach,40
% this line is ignored %
Siebener , Franz,m, , Blaumeisenweg 12 , 10040 , Pardauz , 50
% preceding and trailing spaces in entries are removed %
@@ -1348,13 +1518,13 @@
\begin{dispExample}
% this example requires the tcolorbox package
-\newcommand{\ifmale}[2]{\ifthenelse{\equal{\gender}{m}}{#1}{#2}}
+\newcommand{\ifmale}[2]{\ifcsvstrcmp{\gender}{m}{#1}{#2}}
\csvreader[head to column names]{address.csv}{}{%
\begin{tcolorbox}[colframe=DarkGray,colback=White,arc=0mm,width=(\linewidth-2pt)/2,
equal height group=letter,before=,after=\hfill,fonttitle=\bfseries,
adjusted title={Letter to \name}]
- \ifthenelse{\equal{\degree}{}}{\ifmale{Mr.}{Ms.}}{\degree}~\givenname~\name\\
+ \ifcsvstrcmp{\degree}{}{\ifmale{Mr.}{Ms.}}{\degree}~\givenname~\name\\
\street\\\zip~\location
\tcblower
{\itshape Dear \ifmale{Sir}{Madam},}\\
@@ -1373,9 +1543,9 @@
\begin{tcbverbatimwrite}{data.csv}
land,group,amount
Bayern,A,1700
-Baden-W\"{u}rttemberg,A,2300
+Baden-Württemberg,A,2300
Sachsen,B,1520
-Th\"{u}ringen,A,1900
+Thüringen,A,1900
Hessen,B,2100
\end{tcbverbatimwrite}
%-- end embedded file --
@@ -1564,10 +1734,10 @@
\csvlisting{data_numbers}
-The |siunitx| \cite{wright:2013a} package provides a new column type |S|
+The |siunitx| \cite{wright:2016a} package provides a new column type |S|
which can align material using a number of different strategies.
The following example demonstrates the application with CSV reading.
-The package documentation \cite{wright:2013a} contains a huge amount
+The package documentation \cite{wright:2016a} contains a huge amount
of formatting options.
\begin{dispExample}
@@ -1583,6 +1753,32 @@
\end{dispExample}
\clearpage
+Special care is needed, if the \emph{first} column is to be formatted with
+the column type |S|. The number detection of |siunitx| is disturbed by
+the line reading code of |csvsimple| which actually is present at the
+first column. To avoid this problem, the content of the first column
+could be formatted not by the table format definition, but by using a
+suitable |\tablenum| formatting directly, see |siunitx| \cite{wright:2016a}.
+
+Another and very nifty workaround suggested by Enrico Gregorio is to
+add an invisible dummy column with |c@{}| as first column:
+
+
+\begin{dispExample}
+% \usepackage{siunitx,array,booktabs}
+\csvloop{
+ file=data_numbers.csv,
+ head to column names,
+ before reading=\centering\sisetup{table-number-alignment=center},
+ tabular={c@{}S[table-format=2.2e1]S},
+ table head= & \textbf{Cats} & \textbf{Dogs}\\\midrule,
+ command= & \cats & \dogs,
+ table foot=\bottomrule}
+\end{dispExample}
+
+
+
+\clearpage
Now, the preceding table shall be sorted by the \emph{cats} values.
If the \csvsorter\ program is properly installed,
see Subsection~\ref{sec:Sorting} on page~\pageref{sec:Sorting},
@@ -1617,9 +1813,9 @@
%-- file embedded for simplicity --
\begin{tcbverbatimwrite}{data_headless.csv}
Bayern,A,1700
-Baden-W\"{u}rttemberg,A,2300
+Baden-Württemberg,A,2300
Sachsen,B,1520
-Th\"{u}ringen,A,1900
+Thüringen,A,1900
Hessen,B,2100
\end{tcbverbatimwrite}
%-- end embedded file --
@@ -1668,7 +1864,7 @@
\clearpage
\subsection{Imported CSV data}\label{importeddata}%
-If data is important from other applications, there is not always a choice
+If data is imported from other applications, there is not always a choice
to format in comma separated values with curly brackets.
Consider the following example data file:
@@ -1678,7 +1874,7 @@
"name";"address";"email"
"Frank Smith";"Yellow Road 123, Brimblsby";"frank.smith@organization.org"
"Mary May";"Blue Alley 2a, London";"mmay@maybe.uk"
-"Hans Meier";"Hauptstrasse 32, Berlin";"hans.meier@corporation.de"
+"Hans Meier";"Hauptstraße 32, Berlin";"hans.meier@corporation.de"
\end{tcbverbatimwrite}
%-- end embedded file --
@@ -1715,35 +1911,115 @@
\clearpage
+\subsection{Encoding}\label{encoding}%
+If the CSV file has a different encoding than the \LaTeX\ source file,
+then special care is needed.
+
+\begin{itemize}
+\item The most obvious treatment is to change the encoding of the CSV file
+ or the \LaTeX\ source file to match the other one (every good editor
+ supports such a conversion). This is the easiest choice, if there a no
+ good reasons against such a step. E.g., unfortunately, several tools
+ under Windows need the CSV file to be |cp1252| encoded while
+ the \LaTeX\ source file may need to be |utf8| encoded.
+
+\item The |inputenc| package allows to switch the encoding inside the
+ document, say from |utf8| to |cp1252|. Just be aware that you should only
+ use pure ASCII for additional texts inside the switched region.
+\begin{dispListing}
+% !TeX encoding=UTF-8
+% ....
+\usepackage[utf8]{inputenc}
+% ....
+\begin{document}
+% ....
+\inputencoding{latin1}% only use ASCII from here, e.g. "Uberschrift
+\csvreader[%...
+ ]{data_cp1252.csv}{%...
+ }{% ....
+ }
+\inputencoding{utf8}
+% ....
+\end{document}
+\end{dispListing}
+
+\item As a variant to the last method, the encoding switch can be done
+ using options from |csvsimple|:
+\begin{dispListing}
+% !TeX encoding=UTF-8
+% ....
+\usepackage[utf8]{inputenc}
+% ....
+\begin{document}
+% ....
+% only use ASCII from here, e.g. "Uberschrift
+\csvreader[%...
+ before reading=\inputencoding{latin1},
+ after reading=\inputencoding{utf8},
+ ]{data_cp1252.csv}{%...
+ }{% ....
+ }
+% ....
+\end{document}
+\end{dispListing}
+
+\pagebreak\item
+If the \csvsorter\ program is properly installed,
+see Subsection~\ref{sec:Sorting} on page~\pageref{sec:Sorting},
+the CSV file can be re-encoded on-the-fly
+with the following configuration file for \csvsorter:
+
+\xmllisting{encoding}
+
+\begin{dispListing}
+% !TeX encoding=UTF-8
+% ....
+\usepackage[utf8]{inputenc}
+% ....
+\begin{document}
+% ....
+\csvreader[%...
+ sort by=encoding.xml,
+ ]{data_cp1252.csv}{%...
+ }{% ....
+ }
+% ....
+\end{document}
+\end{dispListing}
+
+
+\end{itemize}
+
+
+
+
+\clearpage
% Actually, it is not a good idea to include the references like this!
% Do not follow this bad example ...
\begin{tcbverbatimwrite}{\jobname.bib}
-@manual{tantau:2013a,
+@manual{tantau:2015a,
author = {Till Tantau},
title = {The TikZ and PGF Packages},
- subtitle = {Manual for version 3.0.0},
- url = {http://sourceforge.net/projects/pgf/},
- date = {2013-12-20},
+ subtitle = {Manual for version 3.0.1a},
+ url = {http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf},
+ date = {2015-08-29},
}
-
-@manual{carlisle:2001b,
+@manual{carlisle:2014c,
author = {David Carlisle},
title = {The ifthen package},
- url = {http://mirror.ctan.org/macros/latex/base/},
- Xnote = {},
- day = 26,
- month = may,
- year = 2001,
+ url = {http://mirror.ctan.org/macros/latex/base/ifthen.pdf},
+ date = {2014-09-29},
language = {english}
}
-@manual{talbot:2014a,
+
+@manual{talbot:2016a,
author = {Nicola L. C. Talbot},
- title = {User Manual for the datatool bundle version 2.20},
- url = {http://mirror.ctan.org/macros/latex/contrib/datatool/datatool.pdf},
- date = {2014-02-03},
+ title = {User Manual for the datatool bundle version 2.25},
+ url = {http://mirrors.ctan.org/macros/latex/contrib/datatool/datatool-user.pdf},
+ date = {2016-01-18},
}
@manual{sturm:2014j,
@@ -1755,30 +2031,38 @@
language = {english}
}
-@manual{carlisle:2004a,
+@manual{carlisle:2014d,
author = {David Carlisle},
title = {The longtable package},
url = {http://mirror.ctan.org/macros/latex/required/tools/longtable.pdf},
- date = {2004-02-01},
+ date = {2014-10-28},
language = {english}
}
-@manual{fear:2005a,
+
+@manual{fear:2016a,
author = {Simon Fear},
title = {Publication quality tables in \LaTeX},
url = {http://mirror.ctan.org/macros/latex/contrib/booktabs/booktabs.pdf},
- date = {2005-04-15},
+ date = {2016-04-29},
language = {english}
}
-@manual{wright:2013a,
+@manual{wright:2016a,
author = {Joseph Wright},
title = {siunitx --- A comprehensive (SI) units package},
url = {http://mirror.ctan.org/macros/latex/contrib/siunitx/siunitx.pdf},
- date = {2013-07-31},
+ date = {2016-03-01},
language = {english}
}
+@manual{lehmann:2015a,
+ author = {Philipp Lehman and Joseph Wright},
+ title = {The etoolbox Package},
+ url = {http://mirror.ctan.org/macros/latex/contrib/etoolbox/etoolbox.pdf},
+ date = {2015-08-02},
+}
+
\end{tcbverbatimwrite}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/csvsimple/encoding.xml new/doc/latex/csvsimple/encoding.xml
--- old/doc/latex/csvsimple/encoding.xml 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/latex/csvsimple/encoding.xml 2016-11-25 19:28:30.000000000 +0100
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<csv>
+ <noHeader/>
+ <bracket empty="true"/>
+ <charset in="windows-1252" out="UTF-8"/>
+</csv>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/csvsimple.doc.tlpobj new/tlpkg/tlpobj/csvsimple.doc.tlpobj
--- old/tlpkg/tlpobj/csvsimple.doc.tlpobj 2016-04-14 18:54:42.000000000 +0200
+++ new/tlpkg/tlpobj/csvsimple.doc.tlpobj 2017-04-14 17:37:21.000000000 +0200
@@ -1,9 +1,9 @@
name csvsimple.doc
category Package
-revision 34610
+revision 41597
shortdesc doc files of csvsimple
relocated 1
-docfiles size=250
+docfiles size=243
RELOC/doc/latex/csvsimple/CHANGES
RELOC/doc/latex/csvsimple/README
RELOC/doc/latex/csvsimple/amountsort.xml
@@ -12,6 +12,7 @@
RELOC/doc/latex/csvsimple/csvsimple-example.tex
RELOC/doc/latex/csvsimple/csvsimple.pdf
RELOC/doc/latex/csvsimple/csvsimple.tex
+ RELOC/doc/latex/csvsimple/encoding.xml
RELOC/doc/latex/csvsimple/gradesort.xml
RELOC/doc/latex/csvsimple/matriculationsort.xml
RELOC/doc/latex/csvsimple/namesort.xml
++++++ csvsimple.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/csvsimple/csvsimple.sty new/tex/latex/csvsimple/csvsimple.sty
--- old/tex/latex/csvsimple/csvsimple.sty 2014-07-15 00:44:11.000000000 +0200
+++ new/tex/latex/csvsimple/csvsimple.sty 2016-11-25 19:33:46.000000000 +0100
@@ -1,8 +1,8 @@
-%% The LaTeX package csvsimple - version 1.12 (2014/07/14)
+%% The LaTeX package csvsimple - version 1.20 (2016/07/01)
%% csvsimple.sty: Simple LaTeX CSV file processing
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2008-2014 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2008-2016 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -18,9 +18,9 @@
%% This work consists of all files listed in README
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{csvsimple}[2014/07/14 version 1.12 LaTeX CSV file processing]
+\ProvidesPackage{csvsimple}[2016/07/01 version 1.20 LaTeX CSV file processing]
-\RequirePackage{pgfkeys,ifthen}
+\RequirePackage{pgfkeys,ifthen,etoolbox,shellesc}
%---- general
@@ -35,13 +35,6 @@
\def\csv@empty{}
-\def\csv@addto@macro#1#2{%
- \begingroup%
- \toks@\expandafter{#1#2}%
- \xdef#1{\the\toks@}%
- \endgroup%
- }
-
\long\def\csviffirstrow#1#2{%
\ifnum\c@csvrow=1%
\long\def\csviffirstrow@doit{#1}%
@@ -60,12 +53,16 @@
\csvifoddrow@doit%
}
-\def\csv@and{&}
-
-\def\csvlinetotablerow{%
- \setcounter{csvcol}{0}%
- \stepcounter{csvcol}\csv@current@col%
- \whiledo{\thecsvcol<\csv@columncount}{\csv@and\stepcounter{csvcol}\csv@current@col}%
+\def\csv@assemble@csvlinetotablerow{%
+ \global\c@csvcol 1\relax%
+ \xdef\csvlinetotablerow{\expandonce{\csname csvcol\romannumeral\c@csvcol\endcsname}}%
+ \ifnum\c@csvcol<\csv@columncount\relax%
+ \loop%
+ \global\advance\c@csvcol 1\relax%
+ \xappto\csvlinetotablerow{\noexpand&\expandonce{\csname csvcol\romannumeral\c@csvcol\endcsname}}%
+ \ifnum\c@csvcol<\csv@columncount\relax\repeat%
+ \fi%
+ \csvlinetotablerow%
}
@@ -91,48 +88,48 @@
\def\csv@breakline@kernel#1{%
\ifx\csv@termination#1\let\nextcol=\relax\else%
\let\nextcol=\csv@breakline%
- \stepcounter{csvcol}%
+ \global\advance\c@csvcol 1\relax%
\def\csv@col@body{#1}%
\csv@TrimSpaces\csv@col@body%
\csv@TrimBraces\csv@col@body%
\toks@\expandafter{\csv@col@body}%
- \expandafter\xdef\csname csvcol\roman{csvcol}\endcsname{\the\toks@}%
+ \expandafter\xdef\csname csvcol\romannumeral\c@csvcol\endcsname{\the\toks@}%
\fi%
\nextcol%
- }
+}
% comma
\def\csv@breakline@A#1,{\csv@breakline@kernel{#1}}
\def\csv@scanline@A#1{%
- \setcounter{csvcol}{0}%
+ \global\c@csvcol 0\relax%
\csv@breakline#1,\csv@termination,%
- }
+}
% semi colon
\def\csv@breakline@B#1;{\csv@breakline@kernel{#1}}
\def\csv@scanline@B#1{%
- \setcounter{csvcol}{0}%
+ \global\c@csvcol 0\relax%
\csv@breakline#1;\csv@termination;%
- }
+}
% pipe
\def\csv@breakline@C#1|{\csv@breakline@kernel{#1}}
\def\csv@scanline@C#1{%
- \setcounter{csvcol}{0}%
+ \global\c@csvcol 0\relax%
\csv@breakline#1|\csv@termination|%
- }
+}
% tab
\catcode`\^^I=12
\def\csv@breakline@D#1^^I{\csv@breakline@kernel{#1}}
\def\csv@scanline@D#1{%
- \setcounter{csvcol}{0}%
+ \global\c@csvcol 0\relax%
\csv@breakline#1^^I\csv@termination^^I%
- }
+}
\catcode`\^^I=10
% expands a CSV line and scans content
@@ -140,7 +137,7 @@
\toks@\expandafter{#1}%
\edef\@csv@scanline{\noexpand\csv@scanline{\the\toks@}}%
\@csv@scanline%
- }
+}
{
\catcode`\"=12%
@@ -155,7 +152,7 @@
\immediate\openout\csv@out=\csv@csvsorter@token%
\immediate\write\csv@out{\string\makeatletter\string\csv@error{Call of CSV-Sorter failed! Use '-shell-escape' option or check log file '\csv@csvsorter@log'.}{}}%
\immediate\closeout\csv@out%
- \immediate\write18{\csv@csvsorter@command\space
+ \ShellEscape{\csv@csvsorter@command\space
-c \csv@passivquotes#1\csv@passivquotes\space
-l \csv@passivquotes\csv@csvsorter@log\csv@passivquotes\space
-t \csv@passivquotes\csv@csvsorter@token\csv@passivquotes\space
@@ -178,24 +175,23 @@
%---- the loop
-\def\csv@AtEndLoop{\csv@addto@macro\@endloophook}
+\def\csv@AtEndLoop{\gappto\@endloophook}
\let\@endloophook\csv@empty
-\def\csv@current@col{\csname csvcol\roman{csvcol}\endcsname}
+\def\csv@current@col{\csname csvcol\romannumeral\c@csvcol\endcsname}
% auto head names
\def\set@csv@autohead{%
\toks0=\expandafter{\csname\csv@current@col\endcsname}%
- \toks1=\expandafter{\csname csvcol\roman{csvcol}\endcsname}%
+ \toks1=\expandafter{\csname csvcol\romannumeral\c@csvcol\endcsname}%
\edef\csv@temp{\noexpand\gdef\the\toks0{\the\toks1}\noexpand\csv@AtEndLoop{\noexpand\gdef\the\toks0{}}}%
\csv@temp%
}
-
% head names and numbers
\def\set@csv@head{%
\toks0={\gdef##1}%
- \toks1=\expandafter{\csname csvcol\roman{csvcol}\endcsname}%
+ \toks1=\expandafter{\csname csvcol\romannumeral\c@csvcol\endcsname}%
\edef\csv@temp{\noexpand\pgfkeysdef{/csv head/\csv@current@col}{\the\toks0{\the\toks1}\noexpand\csv@AtEndLoop{\the\toks0{}}}}%
\csv@temp%
\edef\csv@temp{\noexpand\pgfkeysdef{/csv head/\thecsvcol}{\the\toks0{\the\toks1}\noexpand\csv@AtEndLoop{\the\toks0{}}}}%
@@ -210,12 +206,12 @@
\else\csv@escanline{\csvline}%
\fi%
\xdef\csv@columncount{\thecsvcol}%
- \setcounter{csvcol}{0}%
+ \global\c@csvcol 0\relax%
\loop%
- \stepcounter{csvcol}%
+ \global\advance\c@csvcol 1\relax%
\csv@opt@headtocolumnames%
\set@csv@head%
- \ifnum\thecsvcol<\csv@columncount\repeat%
+ \ifnum\c@csvcol<\csv@columncount\repeat%
\toks@=\expandafter{\csv@columnnames}%
\edef\csv@processkeys{\noexpand\pgfkeys{/csv head/.cd,\the\toks@}}%
\csv@processkeys%
@@ -225,18 +221,18 @@
% head numbers for no head
\def\set@csv@nohead{%
\toks0={\gdef##1}%
- \toks1=\expandafter{\csname csvcol\roman{csvcol}\endcsname}%
+ \toks1=\expandafter{\csname csvcol\romannumeral\c@csvcol\endcsname}%
\edef\csv@temp{\noexpand\pgfkeysdef{/csv head/\thecsvcol}{\the\toks0{\the\toks1}\noexpand\csv@AtEndLoop{\the\toks0{}}}}%
\csv@temp%
}
% no head line
\def\csv@noheadline{%
- \setcounter{csvcol}{0}%
+ \global\c@csvcol 0\relax%
\loop%
- \stepcounter{csvcol}%
+ \global\advance\c@csvcol 1\relax%
\set@csv@nohead%
- \ifnum\thecsvcol<\csv@columncount\repeat%
+ \ifnum\c@csvcol<\csv@columncount\repeat%
\toks@=\expandafter{\csv@columnnames}%
\edef\csv@processkeys{\noexpand\pgfkeys{/csv head/.cd,\the\toks@}}%
\csv@processkeys%
@@ -261,9 +257,9 @@
% check columns
\def\csv@checkcolumncount{%
- \ifnum\thecsvcol=\csv@columncount%
+ \ifnum\c@csvcol=\csv@columncount\relax%
\csv@checkfilter%
- \else
+ \else%
\csv@columncounterror%
\fi%
}
@@ -288,9 +284,10 @@
\let\csv@par=\par
% reads and processes a CSV file
-\def\csvloop#1{%
+\long\def\csvloop#1{%
% reset
\global\let\@endloophook\csv@empty%
+ \global\let\csvlinetotablerow\csv@assemble@csvlinetotablerow%
% options
\csvset{default,every csv,#1}%
\csv@preprocss%
@@ -403,13 +400,15 @@
head to column names/true/.code={\global\let\csv@opt@headtocolumnames=\set@csv@autohead},%
head to column names/false/.code={\global\let\csv@opt@headtocolumnames=\csv@empty},%
column count/.gstore in=\csv@columncount,%
- filter/.code={%
- \def\temp{#1}\toks@=\expandafter{\temp}%
- \xdef\csv@iffilter{\noexpand\ifthenelse{\the\toks@}}},
+ filter/.code={\gdef\csv@iffilter{\ifthenelse{#1}}},
+ filter ifthen/.code={\gdef\csv@iffilter{\ifthenelse{#1}}},
+ filter test/.code={\gdef\csv@iffilter{#1}},
+ filter expr/.code={\gdef\csv@iffilter{\ifboolexpr{#1}}},
no filter/.code={\csvfilteraccept},
filter reject all/.code={\csvfilterreject},
filter accept all/.code={\csvfilteraccept},
before filter/.gstore in=\csv@prefiltercommand,
+ full filter/.gstore in=\csv@prefiltercommand,
before first line/.gstore in=\csv@prefirstline,
before line/.code={\gdef\csv@preline{#1}\pgfkeysalso{before first line=#1}},
after first line/.gstore in=\csv@postfirstline,
@@ -483,8 +482,10 @@
no head/.style={head=false},
no check column count/.style={check column count=false},
warn on column count error/.style={on column count error={\csv@warning{>\thecsvcol< instead of >\csv@columncount< columns for input line >\thecsvinputline< of file >\csv@ppfilename<}}},
- filter equal/.style 2 args={filter=\equal{#1}{#2}},
- filter not equal/.style 2 args={filter=\not\equal{#1}{#2}},
+ filter equal/.style 2 args={filter ifthen=\equal{#1}{#2}},
+ filter not equal/.style 2 args={filter ifthen=\not\equal{#1}{#2}},
+ filter strcmp/.style 2 args={filter test=\ifcsvstrcmp{#1}{#2}},
+ filter not strcmp/.style 2 args={filter test=\ifcsvnotstrcmp{#1}{#2}},
tabular/.style={
@table={\csv@pretable\begin{tabular}{#1}\csv@tablehead}{\csv@tablefoot\end{tabular}\csv@posttable},
late after line=\\},
@@ -727,3 +728,51 @@
\def\csvnames#1#2{\csvset{#1/.style={column names={#2}}}}
+% string comparison
+
+\newrobustcmd{\ifcsvstrequal}[2]{%
+ \begingroup%
+ \protected@edef\csv@tempa{#1}%
+ \protected@edef\csv@tempb{#2}%
+ \edef\csv@tempa{#1}%
+ \edef\csv@tempb{#2}%
+ \ifx\csv@tempa\csv@tempb%
+ \aftergroup\@firstoftwo%
+ \else%
+ \aftergroup\@secondoftwo%
+ \fi%
+ \endgroup%
+}%
+
+\newrobustcmd{\ifcsvprostrequal}[2]{%
+ \begingroup%
+ \protected@edef\csv@tempa{#1}%
+ \protected@edef\csv@tempb{#2}%
+ \ifx\csv@tempa\csv@tempb%
+ \aftergroup\@firstoftwo%
+ \else%
+ \aftergroup\@secondoftwo%
+ \fi%
+ \endgroup%
+}%
+
+\AtBeginDocument{%
+ \ifdefined\pdfstrcmp%
+ \let\csv@strcmp\pdfstrcmp%
+ \else\ifdefined\pdf@strcmp%
+ \let\csv@strcmp\pdf@strcmp%
+ \fi\fi%
+ \ifdefined\csv@strcmp%
+ \newrobustcmd{\ifcsvstrcmp}[2]{%
+ \ifnum\csv@strcmp{#1}{#2}=\z@\relax%
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi%
+ }%
+ \else%
+ \let\ifcsvstrcmp\ifcsvstrequal%
+ \fi%
+}
+
+\newrobustcmd{\ifcsvnotstrcmp}[4]{\ifcsvstrcmp{#1}{#2}{#4}{#3}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/csvsimple.tlpobj new/tlpkg/tlpobj/csvsimple.tlpobj
--- old/tlpkg/tlpobj/csvsimple.tlpobj 2016-04-14 18:54:43.000000000 +0200
+++ new/tlpkg/tlpobj/csvsimple.tlpobj 2017-04-14 17:37:21.000000000 +0200
@@ -1,6 +1,6 @@
name csvsimple
category Package
-revision 34610
+revision 41597
shortdesc Simple CSV file processing
relocated 1
longdesc The package provides a simple LaTeX interface for the
@@ -9,11 +9,11 @@
longdesc usage. Filtering and table generation is especially supported;
longdesc however, this lightweight tool offers no support for data
longdesc sorting or data base storage.
-runfiles size=6
+runfiles size=7
RELOC/tex/latex/csvsimple/csvsimple.sty
catalogue-also csvtools datatool
catalogue-ctan /macros/latex/contrib/csvsimple
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-07-01 18:34:08 +0200
catalogue-license lppl1.3
catalogue-topics data-import data-disp csv-support
-catalogue-version 1.12
+catalogue-version 1.20
++++++ ctable.doc.tar.xz ++++++
++++++ ctable.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/ctable.tlpobj new/tlpkg/tlpobj/ctable.tlpobj
--- old/tlpkg/tlpobj/ctable.tlpobj 2016-04-14 18:54:44.000000000 +0200
+++ new/tlpkg/tlpobj/ctable.tlpobj 2017-04-14 17:37:21.000000000 +0200
@@ -12,7 +12,7 @@
runfiles size=3
RELOC/tex/latex/ctable/ctable.sty
catalogue-ctan /macros/latex/contrib/ctable
-catalogue-date 2015-10-18 21:52:16 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl
catalogue-topics table float
catalogue-version 1.31
++++++ ctablestack.doc.tar.xz ++++++
++++++ ctablestack.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/ctablestack.tlpobj new/tlpkg/tlpobj/ctablestack.tlpobj
--- old/tlpkg/tlpobj/ctablestack.tlpobj 2016-04-14 18:54:44.000000000 +0200
+++ new/tlpkg/tlpobj/ctablestack.tlpobj 2017-04-14 17:37:22.000000000 +0200
@@ -12,7 +12,7 @@
runfiles size=1
RELOC/tex/luatex/ctablestack/ctablestack.sty
catalogue-ctan /macros/luatex/generic/ctablestack
-catalogue-date 2015-10-07 06:44:51 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl1.3
catalogue-topics luatex
catalogue-version 1.0
++++++ ctan_chk.doc.tar.xz ++++++
++++++ ctanify.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/latex/ctanify/README new/texmf-dist/doc/latex/ctanify/README
--- old/texmf-dist/doc/latex/ctanify/README 2016-01-30 01:35:42.000000000 +0100
+++ new/texmf-dist/doc/latex/ctanify/README 2017-01-17 01:01:06.000000000 +0100
@@ -37,7 +37,7 @@
Copyright and License
=====================
-Copyright (C) 2016 Scott Pakin
+Copyright (C) 2017 Scott Pakin
This work may be distributed and/or modified under the conditions of
the LaTeX Project Public License, either version 1.3c of this license
Binary files old/texmf-dist/doc/latex/ctanify/ctanify.pdf and new/texmf-dist/doc/latex/ctanify/ctanify.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/man/man1/ctanify.1 new/texmf-dist/doc/man/man1/ctanify.1
--- old/texmf-dist/doc/man/man1/ctanify.1 2016-02-04 00:03:28.000000000 +0100
+++ new/texmf-dist/doc/man/man1/ctanify.1 2017-04-30 22:33:48.000000000 +0200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28)
+.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -133,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "CTANIFY 1"
-.TH CTANIFY 1 "2016-02-01" "v1.8.2" ""
+.TH CTANIFY 1 "2017-04-22" "v1.9.1" ""
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -151,6 +151,7 @@
[\fB\-\-tdsdir\fR=\fIdirname\fR ...]
[\fB\-\-tex\fR=\fImacro_pkg\fR]
[\fB\-\-\fR[\fBno\fR]\fBmiscify\fR]
+[\fB\-\-\fR[\fBno\fR]\fBtds\fR]
\&\fIfilespec\fR[=\fIdirname\fR] ...
.PP
ctanify
@@ -229,6 +230,9 @@
rename \f(CW\*(C`tex/latex/mypackage/mypackage.sty\*(C'\fR to
\&\f(CW\*(C`tex/latex/misc/mypackage.sty\*(C'\fR.) This was common practice in the
past but is now strongly discouraged.
+.IP "\fB\-nos\fR, \fB\-\-no\-tds\fR" 5
+.IX Item "-nos, --no-tds"
+Do not embed a .tds.zip file in the generated tarball.
.SH "DIAGNOSTICS"
.IX Header "DIAGNOSTICS"
.ie n .IP """Failed to copy \f(CIfilename\f(CW (No such file or directory)""" 5
@@ -379,7 +383,7 @@
Scott Pakin, \fIscott+ctify@pakin.org\fR
.SH "COPYRIGHT AND LICENSE"
.IX Header "COPYRIGHT AND LICENSE"
-Copyright 2016 Scott Pakin
+Copyright 2017 Scott Pakin
.PP
This work may be distributed and/or modified under the conditions of
the LaTeX Project Public License, either version\ 1.3c of this
Binary files old/texmf-dist/doc/man/man1/ctanify.man1.pdf and new/texmf-dist/doc/man/man1/ctanify.man1.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/ctanify.doc.tlpobj new/tlpkg/tlpobj/ctanify.doc.tlpobj
--- old/tlpkg/tlpobj/ctanify.doc.tlpobj 2016-04-14 18:54:44.000000000 +0200
+++ new/tlpkg/tlpobj/ctanify.doc.tlpobj 2017-05-01 02:06:51.000000000 +0200
@@ -1,8 +1,8 @@
name ctanify.doc
category Package
-revision 39569
+revision 44129
shortdesc doc files of ctanify
-docfiles size=20
+docfiles size=23
texmf-dist/doc/latex/ctanify/README
texmf-dist/doc/latex/ctanify/ctanify.pdf
texmf-dist/doc/man/man1/ctanify.1
++++++ ctanify.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/scripts/ctanify/ctanify new/texmf-dist/scripts/ctanify/ctanify
--- old/texmf-dist/scripts/ctanify/ctanify 2016-02-04 00:03:28.000000000 +0100
+++ new/texmf-dist/scripts/ctanify/ctanify 2017-04-30 22:33:48.000000000 +0200
@@ -19,13 +19,14 @@
use strict;
# Define some global variables.
-our $VERSION = "1.8.2"; # ctanify version number
+our $VERSION = "1.9.1"; # ctanify version number
my $progname = basename $0; # Name of this program
my $pkgname; # Base name of the package to create
my $miscify = 0; # 1=replace singletons with misc; 0=don't
my $autoinclude = 1; # 1=automatically include files named in .ins
my $skipdroppings = 1; # 1=skip "dropping" files (e.g., "README~")
my $unixify = 1; # 1=make text files use Unix line endings
+my $maketds = 1; # 1=embed a .tds.zip file; 0=don't
my @manifest; # List of files to include
my %file2tds; # Map from specific filenames to TDS directories
my @tdsdirlist; # Contents of the TDS tree
@@ -79,7 +80,7 @@
# This script will convert their line endings to Unix style (a single
# linefeed character).
my %text_ext =
- map {($_ => 1)} qw(afm bib bst cls dtx fd ins ltx mf mp sty tex txt);
+ map {($_ => 1)} qw(afm bib bst cls dtx fd ins ltx md mf mp sty tex txt);
# Define a subroutine that returns the size in bytes of a file,
# aborting on error.
@@ -147,6 +148,7 @@
"a|auto!" => \$autoinclude,
"d|tdsdir=s" => \$tdsoutdir,
"T|tex=s" => \$texmacros,
+ "s|tds!" => \$maketds,
"V|version" => \$wantversion,
"h|help" => \$wanthelp)
|| pod2usage(-verbose => 0,
@@ -338,6 +340,7 @@
else {
$zipname = "";
}
+$zipname = "" if !$maketds;
chdir $prevdir || die "${progname}: Failed to switch to $prevdir ($!)\n";
rmdir $tdsdir || die "${progname}: Failed to remove $tdsdir ($!)\n";
@@ -408,6 +411,7 @@
[B<--tdsdir>=I<dirname> ...]
[B<--tex>=I]
[B<-->[B<no>]B<miscify>]
+[B<-->[B<no>]B<tds>]
I<filespec>[=I<dirname>] ...
ctanify
@@ -509,6 +513,10 @@
C.) This was common practice in the
past but is now strongly discouraged.
+=item B<-nos>, B<--no-tds>
+
+Do not embed a .tds.zip file in the generated tarball.
+
=back
@@ -691,7 +699,7 @@
=head1 COPYRIGHT AND LICENSE
-Copyright 2016 Scott Pakin
+Copyright 2017 Scott Pakin
This work may be distributed and/or modified under the conditions of
the LaTeX Project Public License, either S of this
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/ctanify.tlpobj new/tlpkg/tlpobj/ctanify.tlpobj
--- old/tlpkg/tlpobj/ctanify.tlpobj 2016-04-14 18:54:44.000000000 +0200
+++ new/tlpkg/tlpobj/ctanify.tlpobj 2017-05-01 02:06:51.000000000 +0200
@@ -1,21 +1,24 @@
name ctanify
category Package
-revision 39569
+revision 44129
shortdesc Prepare a package for upload to CTAN
longdesc Given a list of filenames, ctanify creates a tarball (a .tar.gz
-longdesc file) with the files laid out in CTAN's preferred structure.
-longdesc The tarball additionally contains a ZIP (.zip) file with copies
-longdesc of all files laid out in the standard TeX Directory Structure
-longdesc (TDS), which may be used by those intending to install the
-longdesc package, or by those who need to incorporate it in a
-longdesc distribution. (The TDS ZIP file will be installed in the CTAN
-longdesc install/ tree.)
+longdesc file) with the files laid out in CTAN's preferred structure. By
+longdesc default this tarball additionally contains a ZIP (.zip) file
+longdesc with copies of all files laid out in the standard TeX Directory
+longdesc Structure (TDS), which may be used by those intending to
+longdesc install the package, or by those who need to incorporate it in
+longdesc a distribution. (The TDS ZIP file will be installed in the CTAN
+longdesc install/ tree.) Given that CTAN and TeX Live are not fond of
+longdesc .tds.zip files for small and/or otherwise straightforward
+longdesc packages, ctanify has now been provided with an option that
+longdesc prevents the creation and inclusion of such a .tds.zip file.
depend ctanify.ARCH
runfiles size=6
texmf-dist/scripts/ctanify/ctanify
catalogue-also ctanupload
catalogue-ctan /support/ctanify
-catalogue-date 2016-02-02 06:07:40 +0100
-catalogue-license lppl1.3
+catalogue-date 2017-04-23 06:09:52 +0200
+catalogue-license lppl1.3c
catalogue-topics ctan
-catalogue-version 1.8.2
+catalogue-version 1.9.1
++++++ ctanupload.doc.tar.xz ++++++
++++++ ctanupload.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/ctanupload.tlpobj new/tlpkg/tlpobj/ctanupload.tlpobj
--- old/tlpkg/tlpobj/ctanupload.tlpobj 2016-04-14 18:54:45.000000000 +0200
+++ new/tlpkg/tlpobj/ctanupload.tlpobj 2017-04-14 17:37:22.000000000 +0200
@@ -12,7 +12,7 @@
texmf-dist/scripts/ctanupload/ctanupload.pl
catalogue-also ctanify
catalogue-ctan /support/ctanupload
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license gpl3
catalogue-topics ctan
catalogue-version 1.2c
++++++ ctex-faq.doc.tar.xz ++++++
++++++ ctex.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/ctex/README.md new/doc/latex/ctex/README.md
--- old/doc/latex/ctex/README.md 2016-05-15 00:03:09.000000000 +0200
+++ new/doc/latex/ctex/README.md 2017-02-23 01:01:03.000000000 +0100
@@ -26,7 +26,7 @@
Copyright and Licence
---------------------
- Copyright (C) 2003--2016
+ Copyright (C) 2003--2017
CTEX.ORG and any individual authors listed elsewhere in this file.
----------------------------------------------------------------------
Binary files old/doc/latex/ctex/ctex.pdf and new/doc/latex/ctex/ctex.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/ctex.doc.tlpobj new/tlpkg/tlpobj/ctex.doc.tlpobj
--- old/tlpkg/tlpobj/ctex.doc.tlpobj 2016-05-16 00:51:40.000000000 +0200
+++ new/tlpkg/tlpobj/ctex.doc.tlpobj 2017-04-14 17:37:22.000000000 +0200
@@ -1,8 +1,8 @@
name ctex.doc
category Package
-revision 41156
+revision 43669
shortdesc doc files of ctex
relocated 1
-docfiles size=260
+docfiles size=264
RELOC/doc/latex/ctex/README.md
RELOC/doc/latex/ctex/ctex.pdf
++++++ ctex.tar.xz ++++++
++++ 6324 lines of diff (skipped)
++++++ ctib.doc.tar.xz ++++++
++++++ ctib.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/ctib.tlpobj new/tlpkg/tlpobj/ctib.tlpobj
--- old/tlpkg/tlpobj/ctib.tlpobj 2016-04-14 18:54:47.000000000 +0200
+++ new/tlpkg/tlpobj/ctib.tlpobj 2017-04-14 17:37:23.000000000 +0200
@@ -24,6 +24,6 @@
RELOC/tex/latex/ctib/lctctib.fd
RELOC/tex/latex/ctib/lctenc.def
catalogue-ctan /language/tibetan/ctib
-catalogue-date 2015-08-03 08:55:55 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license gpl
catalogue-topics tibetan
++++++ ctie.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/man/man1/ctie.1 new/texmf-dist/doc/man/man1/ctie.1
--- old/texmf-dist/doc/man/man1/ctie.1 2016-04-26 19:41:35.000000000 +0200
+++ new/texmf-dist/doc/man/man1/ctie.1 2017-05-03 19:35:31.000000000 +0200
@@ -1,4 +1,4 @@
-.TH CTIE 1 "7 April 2010" "Web2C 2016"
+.TH CTIE 1 "7 April 2010" "Web2C 2017"
.\"=====================================================================
.SH NAME
ctie \- merge or apply CWEB change files
Binary files old/texmf-dist/doc/man/man1/ctie.man1.pdf and new/texmf-dist/doc/man/man1/ctie.man1.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/ctie.doc.tlpobj new/tlpkg/tlpobj/ctie.doc.tlpobj
--- old/tlpkg/tlpobj/ctie.doc.tlpobj 2016-04-27 03:16:39.000000000 +0200
+++ new/tlpkg/tlpobj/ctie.doc.tlpobj 2017-05-04 02:06:59.000000000 +0200
@@ -1,7 +1,7 @@
name ctie.doc
category TLCore
-revision 40768
+revision 44166
shortdesc doc files of ctie
-docfiles size=6
+docfiles size=3
texmf-dist/doc/man/man1/ctie.1
texmf-dist/doc/man/man1/ctie.man1.pdf
++++++ cuisine.doc.tar.xz ++++++
++++++ cuisine.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cuisine.tlpobj new/tlpkg/tlpobj/cuisine.tlpobj
--- old/tlpkg/tlpobj/cuisine.tlpobj 2016-04-14 18:54:51.000000000 +0200
+++ new/tlpkg/tlpobj/cuisine.tlpobj 2017-04-14 17:37:25.000000000 +0200
@@ -9,7 +9,7 @@
RELOC/tex/latex/cuisine/cuisine.sty
catalogue-also recipe
catalogue-ctan /macros/latex/contrib/cuisine
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl
catalogue-topics cooking
catalogue-version 0.7
++++++ currfile.doc.tar.xz ++++++
++++++ currfile.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/currfile.tlpobj new/tlpkg/tlpobj/currfile.tlpobj
--- old/tlpkg/tlpobj/currfile.tlpobj 2016-04-25 03:14:22.000000000 +0200
+++ new/tlpkg/tlpobj/currfile.tlpobj 2017-04-14 17:37:25.000000000 +0200
@@ -18,7 +18,7 @@
RELOC/tex/latex/currfile/currfile-abspath.sty
RELOC/tex/latex/currfile/currfile.sty
catalogue-ctan /macros/latex/contrib/currfile
-catalogue-date 2016-04-23 21:11:00 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl1.3
catalogue-topics doc-tool
catalogue-version 0.7c
++++++ currvita.doc.tar.xz ++++++
++++++ currvita.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/currvita.tlpobj new/tlpkg/tlpobj/currvita.tlpobj
--- old/tlpkg/tlpobj/currvita.tlpobj 2016-04-14 18:54:51.000000000 +0200
+++ new/tlpkg/tlpobj/currvita.tlpobj 2017-04-14 17:37:25.000000000 +0200
@@ -11,6 +11,6 @@
RELOC/tex/latex/currvita/currvita.sty
catalogue-also curve cv esieecv europecv vita
catalogue-ctan /macros/latex/contrib/currvita
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license gpl
catalogue-topics cv
++++++ cursolatex.doc.tar.xz ++++++
++++++ curve.doc.tar.xz ++++++
++++++ curve.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/curve.tlpobj new/tlpkg/tlpobj/curve.tlpobj
--- old/tlpkg/tlpobj/curve.tlpobj 2016-04-14 18:54:57.000000000 +0200
+++ new/tlpkg/tlpobj/curve.tlpobj 2017-04-14 17:37:27.000000000 +0200
@@ -18,7 +18,7 @@
RELOC/tex/latex/curve/curve.cls
catalogue-also currvita cv esieecv europecv vita
catalogue-ctan /macros/latex/contrib/curve
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl
catalogue-topics cv class
catalogue-version 1.16
++++++ curve2e.doc.tar.xz ++++++
++++++ curve2e.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/curve2e.tlpobj new/tlpkg/tlpobj/curve2e.tlpobj
--- old/tlpkg/tlpobj/curve2e.tlpobj 2016-04-14 18:54:57.000000000 +0200
+++ new/tlpkg/tlpobj/curve2e.tlpobj 2017-04-14 17:37:28.000000000 +0200
@@ -13,7 +13,7 @@
runfiles size=8
RELOC/tex/latex/curve2e/curve2e.sty
catalogue-ctan /macros/latex/contrib/curve2e
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl1.3
catalogue-topics graphics-in-tex graphics-curve
catalogue-version 1.60
++++++ curves.doc.tar.xz ++++++
++++++ curves.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/curves.tlpobj new/tlpkg/tlpobj/curves.tlpobj
--- old/tlpkg/tlpobj/curves.tlpobj 2016-04-14 18:54:58.000000000 +0200
+++ new/tlpkg/tlpobj/curves.tlpobj 2017-04-14 17:37:28.000000000 +0200
@@ -15,7 +15,7 @@
RELOC/tex/latex/curves/curves.sty
RELOC/tex/latex/curves/curvesls.sty
catalogue-ctan /macros/latex/contrib/curves
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl
catalogue-topics graphics-in-tex graphics-curve
catalogue-version 1.53
++++++ custom-bib.doc.tar.xz ++++++
++++++ custom-bib.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/custom-bib.tlpobj new/tlpkg/tlpobj/custom-bib.tlpobj
--- old/tlpkg/tlpobj/custom-bib.tlpobj 2016-04-14 18:54:58.000000000 +0200
+++ new/tlpkg/tlpobj/custom-bib.tlpobj 2017-04-14 17:37:28.000000000 +0200
@@ -32,7 +32,7 @@
RELOC/tex/latex/custom-bib/suppjour.mbs
RELOC/tex/latex/custom-bib/svenska.mbs
catalogue-ctan /macros/latex/contrib/custom-bib
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl
catalogue-topics bibtex-sty
catalogue-version 4.33
++++++ cutwin.doc.tar.xz ++++++
++++++ cutwin.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cutwin.tlpobj new/tlpkg/tlpobj/cutwin.tlpobj
--- old/tlpkg/tlpobj/cutwin.tlpobj 2016-04-14 18:54:59.000000000 +0200
+++ new/tlpkg/tlpobj/cutwin.tlpobj 2017-04-14 17:37:29.000000000 +0200
@@ -10,7 +10,7 @@
runfiles size=3
RELOC/tex/latex/cutwin/cutwin.sty
catalogue-ctan /macros/latex/contrib/cutwin
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl1.3
catalogue-topics text-flow
catalogue-version 0.1
++++++ cv.doc.tar.xz ++++++
++++++ cv.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cv.tlpobj new/tlpkg/tlpobj/cv.tlpobj
--- old/tlpkg/tlpobj/cv.tlpobj 2016-04-14 18:54:59.000000000 +0200
+++ new/tlpkg/tlpobj/cv.tlpobj 2017-04-14 17:37:29.000000000 +0200
@@ -12,6 +12,6 @@
RELOC/tex/latex/cv/CV.sty
catalogue-also moderncv curve
catalogue-ctan /macros/latex/contrib/cv
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license gpl
catalogue-topics cv class
++++++ cv4tw.doc.tar.xz ++++++
++++++ cv4tw.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cv4tw.tlpobj new/tlpkg/tlpobj/cv4tw.tlpobj
--- old/tlpkg/tlpobj/cv4tw.tlpobj 2016-04-14 18:54:59.000000000 +0200
+++ new/tlpkg/tlpobj/cv4tw.tlpobj 2017-04-14 17:37:29.000000000 +0200
@@ -15,7 +15,7 @@
RELOC/tex/latex/cv4tw/cv4tw.cls
catalogue-also moderncv curve
catalogue-ctan /macros/latex/contrib/cv4tw
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license other-free
catalogue-topics cv class
catalogue-version 0.2
++++++ cweb-latex.doc.tar.xz ++++++
++++++ cweb-latex.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cweb-latex.tlpobj new/tlpkg/tlpobj/cweb-latex.tlpobj
--- old/tlpkg/tlpobj/cweb-latex.tlpobj 2016-04-14 18:55:00.000000000 +0200
+++ new/tlpkg/tlpobj/cweb-latex.tlpobj 2017-04-14 17:37:29.000000000 +0200
@@ -13,6 +13,6 @@
RELOC/tex/latex/cweb-latex/cwebbase.tex
RELOC/tex/latex/cweb-latex/keyvald.sty
catalogue-ctan /macros/latex/contrib/cweb
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license gpl
catalogue-topics litprog
++++++ cweb.doc.tar.xz ++++++
Binary files old/texmf-dist/doc/man/man1/ctangle.man1.pdf and new/texmf-dist/doc/man/man1/ctangle.man1.pdf differ
Binary files old/texmf-dist/doc/man/man1/cweave.man1.pdf and new/texmf-dist/doc/man/man1/cweave.man1.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/man/man1/cweb.1 new/texmf-dist/doc/man/man1/cweb.1
--- old/texmf-dist/doc/man/man1/cweb.1 2016-04-26 19:41:35.000000000 +0200
+++ new/texmf-dist/doc/man/man1/cweb.1 2017-05-03 19:35:31.000000000 +0200
@@ -1,4 +1,4 @@
-.TH CWEB 1 "7 April 2010" "Web2C 2016"
+.TH CWEB 1 "7 April 2010" "Web2C 2017"
.\"=====================================================================
.SH NAME
ctangle, cweave \- translate CWEB to C and/or TeX
Binary files old/texmf-dist/doc/man/man1/cweb.man1.pdf and new/texmf-dist/doc/man/man1/cweb.man1.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cweb.doc.tlpobj new/tlpkg/tlpobj/cweb.doc.tlpobj
--- old/tlpkg/tlpobj/cweb.doc.tlpobj 2016-04-27 03:16:39.000000000 +0200
+++ new/tlpkg/tlpobj/cweb.doc.tlpobj 2017-05-04 02:06:59.000000000 +0200
@@ -1,8 +1,8 @@
name cweb.doc
category Package
-revision 40768
+revision 44166
shortdesc doc files of cweb
-docfiles size=59
+docfiles size=47
texmf-dist/doc/man/man1/ctangle.1
texmf-dist/doc/man/man1/ctangle.man1.pdf
texmf-dist/doc/man/man1/cweave.1
++++++ cweb.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/tex/plain/cweb/cwebmac.tex new/texmf-dist/tex/plain/cweb/cwebmac.tex
--- old/texmf-dist/tex/plain/cweb/cwebmac.tex 2016-01-21 00:07:28.000000000 +0100
+++ new/texmf-dist/tex/plain/cweb/cwebmac.tex 2017-01-29 01:01:12.000000000 +0100
@@ -1,8 +1,8 @@
% standard macros for CWEB listings (in addition to plain.tex)
-% Version 3.68 --- January 2016
+% Version 3.69 --- February 2016
\ifx\renewenvironment\undefined\else\endinput\fi % LaTeX will use other macros
-\xdef\fmtversion{\fmtversion+CWEB3.68}
-\chardef\cwebversion=3 \chardef\cwebrevision=68
+\xdef\fmtversion{\fmtversion+CWEB3.69}
+\chardef\cwebversion=3 \chardef\cwebrevision=69
\newif\ifpdf
\ifx\pdf+\pdftrue\fi
% Uncomment the following line if you want PDF goodies to be the default
@@ -10,7 +10,11 @@
\def\pdflinkcolor{0 0 1} % the RGB values for hyperlink color
\newif\ifpdftex
\ifx\pdfoutput\undefined \pdftexfalse \else\ifnum\pdfoutput=0 \pdftexfalse
-\else \pdftextrue \pdfoutput=1 \input pdfcolor \let\setcolor\pdfsetcolor \fi\fi
+%\else \pdftextrue \pdfoutput=1 \input pdfcolor \let\setcolor\pdfsetcolor \fi\fi
+\else \pdftextrue \pdfoutput=1 % changed in 3.69
+ \def\Black{\pdfliteral{0 g 0 G}} % use rgb colors for direct PDF output too
+ \def\Blue{\pdfliteral{0 0 1 rg 0 0 1 RG}}
+\fi\fi
\newif\ifacro \ifpdf\acrotrue\fi \ifpdftex\acrotrue\fi
\let\:=\. % preserve a way to get the dot accent
@@ -136,7 +140,7 @@
\ifpdftex
\ifx\pdfannotlink\undefined\let\pdfannotlink\pdfstartlink\fi% for pdfTeX 0.14
\def\pdflink#1#2{\hbox{\pdfannotlink height\ht\strutbox depth\dp\strutbox
- attr{/Border [0 0 0]} goto num #1 \BlueGreen #1\Black\pdfendlink}}
+ attr{/Border [0 0 0]} goto num #1 \Blue #1\Black\pdfendlink}} % changed 3.69
\else\def\pdflink#1#2{\setbox0=\hbox{\special{pdf: bc [ \pdflinkcolor ]}{#1}%
\special{pdf: ec}}\special{pdf: ann width \thewidth height \theheight
depth \thedepth << /Type /Annot /Subtype /Link
@@ -166,7 +170,7 @@
\def\maketoksdone{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
\def\pdfURL#1#2{\ifpdftex\pdfannotlink height\ht\strutbox depth\dp\strutbox
attr {/Border [0 0 0]} user { /Type /Action /Subtype /Link /A
- << /S /URI /URI (#2) >>}\BlueGreen #1\Black \pdfendlink
+ << /S /URI /URI (#2) >>}\Blue #1\Black \pdfendlink % changed in 3.69
\else \ifpdf{\setbox0=\hbox{\special{pdf: bc [ \pdflinkcolor ]}{#1}%
\special{pdf: ec}}\special{pdf: ann width \thewidth\space height \theheight
\space depth \thedepth\space << /Border [0 0 0]
@@ -473,7 +477,7 @@
\def\I{\par\hangindent 2em}\let\*=*
\ifacro \def\outsecname{Names of the sections} \let\Xpdf\X
% \ifpdftex \makebookmarks \pdfdest name {NOS} fitb % in versions < 3.68
- \ifpdftex \pdfdest name {NOS} fitb % changed in version 3.68
+ \ifpdftex \pdfdest name {NOS} fith % changed in version 3.69
\pdfoutline goto name {NOS} count -\secno {\outsecname}
\def\X##1:##2\X{\Xpdf##1:##2\X \firstsecno##1.%
{\toksF={}\makeoutlinetoks##2\outlinedone\outlinedone}%
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cweb.tlpobj new/tlpkg/tlpobj/cweb.tlpobj
--- old/tlpkg/tlpobj/cweb.tlpobj 2016-04-27 03:16:40.000000000 +0200
+++ new/tlpkg/tlpobj/cweb.tlpobj 2017-05-04 02:06:59.000000000 +0200
@@ -1,6 +1,6 @@
name cweb
category Package
-revision 40768
+revision 44166
shortdesc A Web system in C
longdesc The Cweb system is a system for Structured Software
longdesc Documentation (also known as Literate Programming) in the
@@ -19,7 +19,7 @@
texmf-dist/tex/plain/cweb/pdficwebmac.tex
texmf-dist/tex/plain/cweb/pdfwebmac.tex
catalogue-ctan /web/c_cpp/cweb
-catalogue-date 2016-02-25 04:09:01 +0100
+catalogue-date 2017-02-21 20:21:05 +0100
catalogue-license knuth
catalogue-topics litprog
-catalogue-version 3.64af
+catalogue-version 3.64b
++++++ cyber.doc.tar.xz ++++++
++++++ cyber.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cyber.tlpobj new/tlpkg/tlpobj/cyber.tlpobj
--- old/tlpkg/tlpobj/cyber.tlpobj 2016-04-14 18:55:05.000000000 +0200
+++ new/tlpkg/tlpobj/cyber.tlpobj 2017-04-14 17:37:31.000000000 +0200
@@ -12,7 +12,7 @@
runfiles size=3
RELOC/tex/latex/cyber/cyber.sty
catalogue-ctan /macros/latex/contrib/cyber
-catalogue-date 2015-08-03 05:43:12 +0200
-catalogue-license other-free
+catalogue-date 2016-12-18 08:45:22 +0100
+catalogue-license mit
catalogue-topics doc-supp
catalogue-version 2.1
++++++ cybercic.doc.tar.xz ++++++
++++++ cybercic.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cybercic.tlpobj new/tlpkg/tlpobj/cybercic.tlpobj
--- old/tlpkg/tlpobj/cybercic.tlpobj 2016-04-14 18:55:06.000000000 +0200
+++ new/tlpkg/tlpobj/cybercic.tlpobj 2017-04-14 17:37:31.000000000 +0200
@@ -15,7 +15,7 @@
runfiles size=2
RELOC/tex/latex/cybercic/cybercic.sty
catalogue-ctan /macros/latex/contrib/cybercic
-catalogue-date 2015-08-03 05:43:12 +0200
-catalogue-license other-free
+catalogue-date 2016-12-18 08:45:22 +0100
+catalogue-license mit
catalogue-topics doc-supp toc-etc
catalogue-version 2.1
++++++ cyklop.doc.tar.xz ++++++
++++++ cyklop.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cyklop.tlpobj new/tlpkg/tlpobj/cyklop.tlpobj
--- old/tlpkg/tlpobj/cyklop.tlpobj 2016-04-14 18:55:06.000000000 +0200
+++ new/tlpkg/tlpobj/cyklop.tlpobj 2017-04-14 17:37:31.000000000 +0200
@@ -91,7 +91,7 @@
RELOC/tex/latex/cyklop/t1cyklop.fd
RELOC/tex/latex/cyklop/t5cyklop.fd
catalogue-ctan /fonts/cyklop
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license gfl
catalogue-topics font font-sans font-otf font-type1
catalogue-version 0.915
++++++ cyrillic-bin.doc.tar.xz ++++++
Binary files old/texmf-dist/doc/man/man1/rubibtex.man1.pdf and new/texmf-dist/doc/man/man1/rubibtex.man1.pdf differ
Binary files old/texmf-dist/doc/man/man1/rumakeindex.man1.pdf and new/texmf-dist/doc/man/man1/rumakeindex.man1.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cyrillic-bin.doc.tlpobj new/tlpkg/tlpobj/cyrillic-bin.doc.tlpobj
--- old/tlpkg/tlpobj/cyrillic-bin.doc.tlpobj 2016-04-27 03:16:41.000000000 +0200
+++ new/tlpkg/tlpobj/cyrillic-bin.doc.tlpobj 2017-05-04 02:06:59.000000000 +0200
@@ -1,8 +1,8 @@
name cyrillic-bin.doc
category TLCore
-revision 40768
+revision 44166
shortdesc doc files of cyrillic-bin
-docfiles size=12
+docfiles size=6
texmf-dist/doc/man/man1/rubibtex.1
texmf-dist/doc/man/man1/rubibtex.man1.pdf
texmf-dist/doc/man/man1/rumakeindex.1
++++++ cyrillic-bin.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cyrillic-bin.tlpobj new/tlpkg/tlpobj/cyrillic-bin.tlpobj
--- old/tlpkg/tlpobj/cyrillic-bin.tlpobj 2016-04-27 03:16:41.000000000 +0200
+++ new/tlpkg/tlpobj/cyrillic-bin.tlpobj 2017-05-04 02:06:59.000000000 +0200
@@ -1,6 +1,6 @@
name cyrillic-bin
category TLCore
-revision 40768
+revision 44166
shortdesc Cyrillic bibtex and makeindex.
depend cyrillic-bin.ARCH
runfiles size=2
++++++ cyrillic.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cyrillic.doc.tlpobj new/tlpkg/tlpobj/cyrillic.doc.tlpobj
--- old/tlpkg/tlpobj/cyrillic.doc.tlpobj 2016-04-14 18:55:07.000000000 +0200
+++ new/tlpkg/tlpobj/cyrillic.doc.tlpobj 2017-04-14 17:37:32.000000000 +0200
@@ -1,6 +1,6 @@
name cyrillic.doc
category Package
-revision 40218
+revision 42428
shortdesc doc files of cyrillic
relocated 1
docfiles size=291
++++++ cyrillic.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cyrillic.tlpobj new/tlpkg/tlpobj/cyrillic.tlpobj
--- old/tlpkg/tlpobj/cyrillic.tlpobj 2016-04-14 18:55:08.000000000 +0200
+++ new/tlpkg/tlpobj/cyrillic.tlpobj 2017-04-14 17:37:32.000000000 +0200
@@ -1,6 +1,6 @@
name cyrillic
category Package
-revision 40218
+revision 42428
catalogue latex-cyrillic
shortdesc Support for Cyrillic fonts in LaTeX
relocated 1
@@ -120,6 +120,6 @@
RELOC/tex/latex/cyrillic/x2lcmss.fd
RELOC/tex/latex/cyrillic/x2lcmtt.fd
catalogue-ctan /macros/latex/required/cyrillic
-catalogue-date 2016-02-05 09:28:32 +0100
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl1.3
catalogue-topics cyrillic
++++++ cyrplain.tar.xz ++++++
++++++ dad.doc.tar.xz ++++++
++++++ dad.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/dad.tlpobj new/tlpkg/tlpobj/dad.tlpobj
--- old/tlpkg/tlpobj/dad.tlpobj 2016-04-14 18:55:09.000000000 +0200
+++ new/tlpkg/tlpobj/dad.tlpobj 2017-04-14 17:37:32.000000000 +0200
@@ -31,7 +31,7 @@
RELOC/tex/lualatex/dad/T1dad.fd
RELOC/tex/lualatex/dad/dad.sty
catalogue-ctan /language/arabic/dad
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl
catalogue-topics arabic luatex font-type1
catalogue-version 1.1
++++++ dancers.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/dancers.tlpobj new/tlpkg/tlpobj/dancers.tlpobj
--- old/tlpkg/tlpobj/dancers.tlpobj 2016-04-14 18:55:15.000000000 +0200
+++ new/tlpkg/tlpobj/dancers.tlpobj 2017-04-14 17:37:35.000000000 +0200
@@ -1,7 +1,7 @@
name dancers
category Package
revision 13293
-shortdesc Font for Conan Doyle'ss "The Dancing Men"
+shortdesc Font for Conan Doyle's "The Dancing Men"
relocated 1
longdesc The (Sherlock Holmes) book contains a code which uses dancing
longdesc men as glyphs. The alphabet as given is not complete, lacking
@@ -20,6 +20,6 @@
RELOC/fonts/source/public/dancers/dancers.mf
RELOC/fonts/tfm/public/dancers/dancers.tfm
catalogue-ctan /fonts/dancers
-catalogue-date 2015-12-27 20:31:23 +0100
+catalogue-date 2016-06-30 21:37:14 +0200
catalogue-license other-free
catalogue-topics font font-mf font-novelty
++++++ dantelogo.doc.tar.xz ++++++
++++++ dantelogo.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/dantelogo.tlpobj new/tlpkg/tlpobj/dantelogo.tlpobj
--- old/tlpkg/tlpobj/dantelogo.tlpobj 2016-04-14 18:55:15.000000000 +0200
+++ new/tlpkg/tlpobj/dantelogo.tlpobj 2017-04-14 17:37:35.000000000 +0200
@@ -34,7 +34,7 @@
RELOC/tex/latex/dantelogo/T1DANTE.fd
RELOC/tex/latex/dantelogo/dantelogo.sty
catalogue-ctan /fonts/dantelogo
-catalogue-date 2015-10-09 15:31:36 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl
catalogue-topics font font-otf font-type1
catalogue-version 0.03
++++++ dashbox.doc.tar.xz ++++++
++++++ dashbox.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/dashbox.tlpobj new/tlpkg/tlpobj/dashbox.tlpobj
--- old/tlpkg/tlpobj/dashbox.tlpobj 2016-04-14 18:55:16.000000000 +0200
+++ new/tlpkg/tlpobj/dashbox.tlpobj 2017-04-14 17:37:35.000000000 +0200
@@ -9,7 +9,7 @@
runfiles size=2
RELOC/tex/latex/dashbox/dashbox.sty
catalogue-ctan /macros/latex/contrib/dashbox
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl
catalogue-topics boxing
catalogue-version 1.14
++++++ dashrule.doc.tar.xz ++++++
++++++ dashrule.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/dashrule.tlpobj new/tlpkg/tlpobj/dashrule.tlpobj
--- old/tlpkg/tlpobj/dashrule.tlpobj 2016-04-14 18:55:16.000000000 +0200
+++ new/tlpkg/tlpobj/dashrule.tlpobj 2017-04-14 17:37:35.000000000 +0200
@@ -16,7 +16,7 @@
runfiles size=1
RELOC/tex/latex/dashrule/dashrule.sty
catalogue-ctan /macros/latex/contrib/dashrule
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl
catalogue-topics line-patt
catalogue-version 1.3
++++++ dashundergaps.doc.tar.xz ++++++
++++++ dashundergaps.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/dashundergaps.tlpobj new/tlpkg/tlpobj/dashundergaps.tlpobj
--- old/tlpkg/tlpobj/dashundergaps.tlpobj 2016-04-14 18:55:16.000000000 +0200
+++ new/tlpkg/tlpobj/dashundergaps.tlpobj 2017-04-14 17:37:36.000000000 +0200
@@ -11,7 +11,7 @@
runfiles size=1
RELOC/tex/latex/dashundergaps/dashundergaps.sty
catalogue-ctan /macros/latex/contrib/dashundergaps
-catalogue-date 2015-08-03 05:43:12 +0200
+catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl
catalogue-topics underline line-patt
catalogue-version 1.2
++++++ dataref.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/dataref/README new/doc/latex/dataref/README
--- old/doc/latex/dataref/README 2013-12-18 23:01:05.000000000 +0100
+++ new/doc/latex/dataref/README 1970-01-01 01:00:00.000000000 +0100
@@ -1,51 +0,0 @@
-dataref
-=======
-
-Writing scientific texts is a craft. It is the craft of communicating your results to
-your colleagues and to the curious world public. Often your conclusions are based
-upon facts and numbers that you gathered during your research for the specific
-topic. You might have done many experiments and produced lot of data. The
-craft of writing is to guide your reader through a narrative that is based upon
-that data. But there may be many versions of that data. Perhaps you found a
-problem in your experiment, while already writing, that forces you back into the
-laboratory. After a while, the moon has done its circle many times, you return
-from that dark place and your methodology has improved as significantly as your
-data has. But now you have to rewrite that parts of the data, that reference the
-old data points.
-The dataref is here to help you with managing your data points. It provides
-you with macro style keys, that represent symbolic names for your datapints.
-You can reference those symbolic names with \dref, use them in calculations
-to have always up-to-date percentage values, define projections between sets of
-data points and document them. dataref also introduces the notion of assertions
-(\drefassert) for your results to ensure that your prosa text references fit the
-underlying data.
-
-Building the documentation
-==========================
-With latexmk installed:
-
- make
-
-or
-
- make dataref.sty; pdflatex dataref.dtx; pdflatex dataref.dtx; pdflatex dataref.dtx
-
-
-Examples
-========
-
-Setting symbolic data points
-
- \drefset{/count}{42}
- \drefset{/abc}{23}
-
-Referencing them with \dref, \drefcalc, \drefassert
-
- \dref{/count} => 42
- \drefcalc{data("/abc") / data("/count")} => 0.55
- \drefassert{data("/abc") < data("/count")}
-
-Getting the latest version
-==========================
-
-dataref is hosted at github: https://github.com/stettberger/dataref
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/dataref/README.md new/doc/latex/dataref/README.md
--- old/doc/latex/dataref/README.md 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/latex/dataref/README.md 2017-01-07 00:01:04.000000000 +0100
@@ -0,0 +1,51 @@
+dataref
+=======
+
+Writing scientific texts is a craft. It is the craft of communicating your results to
+your colleagues and to the curious world public. Often your conclusions are based
+upon facts and numbers that you gathered during your research for the specific
+topic. You might have done many experiments and produced lot of data. The
+craft of writing is to guide your reader through a narrative that is based upon
+that data. But there may be many versions of that data. Perhaps you found a
+problem in your experiment, while already writing, that forces you back into the
+laboratory. After a while, the moon has done its circle many times, you return
+from that dark place and your methodology has improved as significantly as your
+data has. But now you have to rewrite that parts of the data, that reference the
+old data points.
+The dataref is here to help you with managing your data points. It provides
+you with macro style keys, that represent symbolic names for your datapints.
+You can reference those symbolic names with \dref, use them in calculations
+to have always up-to-date percentage values, define projections between sets of
+data points and document them. dataref also introduces the notion of assertions
+(\drefassert) for your results to ensure that your prosa text references fit the
+underlying data.
+
+Building the documentation
+==========================
+With latexmk installed:
+
+ make
+
+or
+
+ pdflatex dataref.tex; pdflatex dataref.tex; pdflatex dataref.tex
+
+
+Examples
+========
+
+Setting symbolic data points
+
+ \drefset{/count}{42}
+ \drefset{/abc}{23}
+
+Referencing them with \dref, \drefcalc, \drefassert
+
+ \dref{/count} => 42
+ \drefcalc{data("/abc") / data("/count")} => 0.55
+ \drefassert{data("/abc") < data("/count")}
+
+Getting the latest version
+==========================
+
+dataref is hosted at github: https://github.com/stettberger/dataref
Binary files old/doc/latex/dataref/dataref-doc.pdf and new/doc/latex/dataref/dataref-doc.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/dataref/dataref-doc.tex new/doc/latex/dataref/dataref-doc.tex
--- old/doc/latex/dataref/dataref-doc.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/latex/dataref/dataref-doc.tex 2017-01-07 00:01:04.000000000 +0100
@@ -0,0 +1,735 @@
+% Copyright (c) 2013-2017 Christian Dietrich
+%
+% 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.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Christian Dietrich
+%
+% This work consists of the files dataref.tex and dataref.sty
+
+\documentclass{ltxdoc}
+\usepackage[usagereport]{dataref}[2017/01/06]
+
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+
+\usepackage{verbatim}
+\usepackage{listings}
+\usepackage{pdfcomment}
+\usepackage{siunitx}
+\usepackage{xspace}
+\usepackage{pgffor}
+\usepackage{filecontents}
+\usepackage{tikz}
+\usetikzlibrary{positioning, arrows}
+
+\begin{filecontents}{datapoints.tex}
+\drefset{/control group/mice race}{Black Six}
+\drefset{/control group/mice count}{32}
+\drefset{/control group/dead after 24h}{4}
+\drefset{/control group/dead after 48h}{7}
+\drefset{/control group/recovered}{21}
+
+\drefset{/med A/mice race}{Black Six}
+\drefset{/med A/mice count}{32}
+\drefset{/med A/dead after 24h}{6}
+\drefset{/med A/dead after 48h}{12}
+\drefset{/med A/recovered}{20}
+
+\drefsethelp{.*/mice race}{The mice race used for experiments heavily
+ influences the outcome of the results}
+
+\drefsethelp{.*/(dead after|recovered)}{Of all infected mice, a
+ certain number died within a specified period of time. A certain
+ recovered from the infection. The dead categories are cumulative and
+include all dead mice before.}
+\end{filecontents}
+\input{datapoints}
+% \OnlyDescription
+\drefkeys{prefix=/foo,value=123,save=/foo}
+\drefset{/override test}{2}
+\begin{document}
+\drefsave{/override test}{4}
+\drefkeys{prefix=}
+
+\parskip=1ex
+\parindent=0pt
+
+\CheckSum{0}
+
+
+ \CharacterTable
+ {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+ Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+ Digits \0\1\2\3\4\5\6\7\8\9
+ Exclamation \! Double quote \" Hash (number) \#
+ Dollar \$ Percent \% Ampersand \&
+ Acute accent \' Left paren \( Right paren \)
+ Asterisk \* Plus \+ Comma \,
+ Minus \- Point \. Solidus \/
+ Colon \: Semicolon \; Less than \<
+ Equals \= Greater than \> Question mark \?
+ Commercial at \@ Left bracket \[ Backslash \\
+ Right bracket \] Circumflex \^ Underscore \_
+ Grave accent \` Left brace \{ Vertical bar \|
+ Right brace \} Tilde \~}
+
+
+ \changes{v0.6}{2016/11/15}{Units, Unit Scaling, general overhaul}
+ \changes{v0.4}{2015/04/21}{Remove Spurious Whitespaces}
+ \changes{v0.1}{2013/12/06}{Initial version}
+
+ \DoNotIndex{\newcommand,\newenvironment}
+
+ \makeatletter
+ \def\colorfirsttoken#1#2{\bgroup\expandafter\color{#1}\cmd{#2}\egroup}
+ \def\Macro@Name#1#2\@nnil{\string#1}
+
+\renewcommand{\meta}[1]{\bgroup\color{green!40!black}$\langle$\textit{#1}$\rangle$\egroup}
+\newcommand{\Macro}[2][]{%
+ \noindent\hspace{-\marginparwidth}%
+ \hypertarget{\Macro@Name#2\@nnil}{%
+ \mbox{\colorfirsttoken{blue!50!black}#2}} \hfill\mbox{#1}\par}
+ \newcommand{\Option}[2][]{%
+ \noindent\hspace{-\marginparwidth}%
+ \mbox{\color{red!50!black}#2} \hfill\mbox{#1}\par}
+
+ \newcommand{\option}[1]{%
+ \bgroup\color{red!50!black}#1\egroup\xspace
+ }
+
+ \renewcommand{\macro}[1]{%
+ \hyperlink{\Macro@Name#1\@nnil}{\bgroup\color{blue!50!black}\cmd#1\egroup}\xspace
+ }
+ \makeatother
+
+ \colorlet{examplefill}{yellow!80!black}
+ \definecolor{codebackground}{rgb}{0.9,0.9,1}
+ \newdimen\examplewidth
+ \newsavebox{\codebox}
+ \newenvironment{example}[1][\marginparwidth-12pt]
+ {\begin{lrbox}{\codebox}\begin{minipage}{#1-2\fboxsep}}
+ {\end{minipage}\end{lrbox}%
+ \examplewidth=\wd\codebox%
+ \addtolength{\examplewidth}{-\marginparwidth+15pt}%
+ \global\examplewidth=\examplewidth%
+ \noindent\hspace{-\marginparwidth}\colorbox{examplefill}{\usebox{\codebox}}\hspace{12pt}}
+
+ \newenvironment{codeexample}
+ {\begin{lrbox}{\codebox}\begin{minipage}{\textwidth-\examplewidth-2\fboxsep}}
+{\end{minipage}\end{lrbox}\noindent\colorbox{codebackground}{\usebox{\codebox}}\global\examplewidth=0pt%
+\par\vspace{1em}}%
+
+
+ \newcommand{\dataref}{\textsc{dataref}\xspace}
+ \providecommand*{\url}{\texttt}
+ \GetFileInfo{dataref.sty}
+ \title{The \textsf{dataref} package}
+ \author{Christian Dietrich 2013-2016\\ \url{stettberger@dokucode.de}\\
+ \url{https://github.com/stettberger/dataref}}
+ \date{\filedate~\fileversion}
+
+ \maketitle
+
+ \section{Introduction}
+
+ Writing scientific texts is a craft. It is the craft of communicating your results to your
+ colleagues and to the curious world public. Often your conclusions are based upon facts and
+ numbers that you gathered during your research for the specific topic. You might have done many
+ experiments and produced lot of data. The craft of writing is to guide your reader through a
+ narrative that is based upon that data. But there may be many versions of that data. Perhaps you
+ found a problem in your experiment, while already writing, that forces you back into the
+ laboratory. After a while, the moon has done its circle many times, you return from that dark
+ place and your methodology has improved as significantly as your data has. But now you have to
+ rewrite that parts of the data that reference the old data points.
+
+ The \textsf{dataref} is here to help you with managing your data points. It provides you with
+ macro style keys that represent symbolic names for your data points. You can reference those
+ symbolic names with \macro{\dref}, use them in calculations to have always up-to-date percentage
+ values, define projections between sets of data points and document them. \textsf{dataref} also
+ introduces the notion of assertions (\macro{\drefassert}) for your results to ensure that your prosa
+ text references fit the underlying data.
+
+ \section{Usage (or \dref*{/control group/mice count} mice)}
+
+ \begin{example}
+ From the \dref{/med A/mice count} mice in the experiment, \drefcalc[prefix=/med A]{d(/mice
+ count)-d(/recovered)} died.
+ \end{example}
+ \begin{codeexample}
+ \verb|\drefset{/med A/mice count}{32}|\\
+ \verb|\drefset{/med A/recovered}{20}|\\
+ \verb|From the \dref{/med A/mice count} mice in the experiment, |\\
+ \verb|\drefcalc[prefix=/med A]{d(/mice count)-d(/recovered)} died.|
+ \end{codeexample}
+
+ \subsection{Design Principles}
+
+ Before we jump into the description of \dataref, let us look a little bit into the design principles of \dataref. By
+ understanding the principles, you will be more productive and embedding data into your document will become easier.
+
+ First of all, \dataref is built on top of \textsf{pgfkeys} and \textsf{pgfmath} from the PGF/TiKZ macro packages. While
+ the former provides a usable user interface to provide options to \dataref, the later is used to perform computation on
+ your datapoints. If you are interested into these two excellent \TeX{} packages, please look at \texttt{texdoc
+ pgfmanual} for further information.
+
+ There are two aspects of \dataref: setting datapoints and referencing datapoints. While setting datapoints is kind of
+ boring, we have a wide variety of options when it comes to referencing. The expansion of datapoints is done in
+ multiples phases (see Figure~\ref{fig:pipeline}).
+
+
+ \begin{figure}[t]
+ \begin{tikzpicture}[node distance=0.5cm]
+ \tikzstyle{phase}=[draw,minimum width=1.5cm, fill=green!20!white];
+ \tikzstyle{desc}=[align=left, text width=3cm,anchor=#1,draw];
+
+
+ \node[phase](@init){@init};
+ \node[phase,right=of @init](@options){@options};
+ \node[phase,right=of @options](@get){@get};
+ \node[phase,right=of @get](@calc){@calc};
+ \node[phase,right=of @calc](@print){@print};
+ \node[phase,right=of @print](@set){@set};
+
+ \draw[>=latex']
+ (@init) edge[->] (@options)
+ (@options) edge[->] (@get)
+ (@get) edge[->] (@calc)
+ (@calc) edge[->] (@print)
+ (@print) edge[->] (@set);
+
+ \draw[ultra thin,shorten <=2pt] (@init) -- ++(75:1cm)
+ node[desc=south] {Set up a clean working environment.};
+
+ \draw[ultra thin,shorten <=2pt] (@options) -- ++(-140:1.5cm)
+ node[desc=north] {Parse the user-defined options and fill up all subsequent phases.};
+
+ \draw[ultra thin,shorten <=2pt] (@get) -- ++(95:1cm)
+ node[desc=south] {Load the main datapoint into \macro{\drefresult} and reference it.};
+
+ \draw[ultra thin,shorten <=2pt] (@calc) -- ++(-140:1.5cm)
+ node[desc=north] {Perform calculations on the main datapoint, including unit scaling.};
+
+ \draw[ultra thin,shorten <=2pt] (@print) -- ++(95:1.5cm)
+ node[desc=south] {Format and insert the result into the document body.};
+
+ \draw[ultra thin,shorten <=2pt] (@set) -- ++(-140:1.5cm)
+ node[desc=north] {Save the result as a datapoint or macro.};
+
+ \end{tikzpicture}
+ \caption{The \dataref Pipeline}\label{fig:pipeline}
+ \end{figure}
+
+ The \dataref macros are different regarding the phases they include or omit and in their default settings. In the
+ following, we will discuss all options and macros you can use to reference your datapoints. By default, the
+ \macro{\drefresult} is always set to the result of the pipeline.
+
+ \subsection{Setting Datapoints}
+
+
+
+ \Macro[(@set)]{\drefset\oarg{options}\{\meta{name}\}\{\meta{value}\}}
+
+
+\begin{codeexample}
+\begin{verbatim}
+\drefset{/med A/mice race}{Black Six}
+\drefset{/med A/mice count}{32}
+\drefset{/med A/dead after 24h}{6}
+\drefset{/med A/dead after 48h}{1}
+\end{verbatim}
+\end{codeexample}
+
+
+ The \macro{\drefset} command is used to define the symbolic datapoints. The name of a datapoint may contain virtually all
+ characters, including spaces and slashes. It is good practice to use a hierarchy to structure your data point names.
+ The value might be any string, while the focus of \dataref is on numerical datapoints. The \macro{\drefset} command works
+ outside the pipeline model (Figure \ref{fig:pipeline}) for performance reasons. It virtually consists only of the
+ @options and @set stage.
+
+ \Macro[(@set)]{\drefsave[\meta{options}]\{\meta{name}\}\{\meta{value}\}}
+
+ Besides setting the datapoint, \macro{\drefsave} writes it to the \textsc{aux} file and, therefore, makes it available in
+ the next \LaTeX{} run from the very beginning. The \option{ignoremissing} option is useful to reference the saved keys
+ at an earlier place in the document.
+
+\Option[(no default)]{/dref/set=\meta{key}}
+
+Inserts a \macro{\drefset} to the @set that captures the current result and saves it to the given datapoint.
+
+\Option[(no default)]{/dref/save=\meta{key}}
+
+Inserts a \macro{\drefsave} to the @set that captures the current result and saves it to the given datapoint. Since
+\macro{\drefsave} is used the result is available from the beginning of the document.
+
+\Option[(no default)]{/dref/to macro=\meta{macro}}
+
+The current result is saved to the given macro.
+
+\begin{example}[2cm]
+ \dref[set=/foo]{/med A/mice count} \dref{/foo}\\
+ \dref[ignoremissing]{/bar} \dref[save=/bar]{/med A/mice count}\\
+ \drefcalc*[to macro=\myresult]{3+2} \myresult
+\end{example}
+\begin{codeexample}
+\begin{verbatim}
+\dref[set=/foo]{/med A/mice count} \dref{/foo}\\
+\dref[ignoremissing]{/bar} \dref[save=/bar]{/med A/mice count}\\
+\drefcalc*[to macro=\myresult]{3+2} \myresult
+\end{verbatim}
+\end{codeexample}
+
+
+\Option[(no default, initially "")]{/dref/prefix=\meta{key prefix}}
+
+On every key retrieval or setting of a datapoint this prefix is added.
+It is a value-typed PGF key, so operations like
+\texttt{prefix/.append} are possible.
+
+\Macro{\drefinput[\meta{prefix}]\{\meta{filename}\}}
+
+Uses \cmd{\input} to read the file. During the processing of this file
+\option{prefix} is set to the given value. This is useful to include
+several files that resulted from different experiments but include
+equal datapoint keys.
+
+
+\subsection{Referencing Datapoints}
+
+
+ \Macro[(@options=\{print=default\}, @get, @calc, @print, @set)]{\dref*[\meta{options}]\{\meta{name}\}}
+ \Macro[(@options=\{print=raw\}, @get, @calc, @print, @set)]{\dref[\meta{options}]\{\meta{name}\}}
+
+ This macro is used to reference a single symbolic data point. The value stored in that datapoint is inserted into the
+ text. \macro{\dref} additionally marks the data point as used; it will appear in the datagraphy (see
+ Section~\ref{sec:datagraphy}). The starred variant does not attempt to parse the datapoint as a numerical value, but
+ outputs the saved string.
+
+\begin{example}
+\dref*{/control group/mice race}\\
+\dref*{/control group/mice count}\\
+\dref[sci,precision=2,zerofill=true]{/med A/recovered}
+\end{example}
+\begin{codeexample}
+\begin{verbatim}
+\dref*{/control group/mice race}\\
+\dref*{/control group/mice count}\\
+\dref[sci,precision=2,zerofill=true]{/med A/recovered}
+\end{verbatim}
+\end{codeexample}
+
+\Macro[(@get, @print)]{\drefvalueof\{\meta{name}\}}
+\Macro[(@get)]{\drefref\{\meta{name}\}}
+\vspace{1em}
+
+\begin{example}
+\drefvalueof{/med A/mice race}
+\end{example}\begin{codeexample}
+\begin{verbatim}
+\drefvalueof{/med A/mice race}
+\end{verbatim}
+\end{codeexample}
+
+ Since \macro{\dref} is not expandable, it cannot be used in all circumstances. Therefore, \macro{\drefvalueof} bypasses
+ all internal bookkeeping and provides access to the raw datapoint value. \macro{\drefref} can be used to mark the
+ datapoint as used to let it appear in the datagraphy.
+
+\Option[(default \textbf{true}, initially \textbf{false})]{/dref/ignoremissing=\meta{true-or-false}}
+\Option[(no default, initially \textbf{1.0})]{/dref/defaultvalue=\meta{value}}
+
+By default, \dataref produces an error if the referenced datapoint is undefined. If ignoremissing is given, the
+defaultvalue is used. This key is useful in combination with \macro{\drefsave}. Furthermore, it is possible to extract the
+missing keys from the \textsc{aux} file and to retrieve it from a secondary source (e.g. database, wikidata, etc).
+
+\begin{example}
+\dref*[ignoremissing,defaultvalue=undefined]{blah}
+\end{example}\begin{codeexample}
+\begin{verbatim}
+\dref*[ignoremissing,defaultvalue=undefined]{blah}
+\end{verbatim}
+\end{codeexample}
+
+\Macro{\drefsethelp\{\meta{pattern}\}\{\meta{text}\}}
+\Macro{\drefhelp\{\meta{name}\}}
+
+ \textsf{dataref} comes with a simple method for defining documentation for data points. This help can for example be used to communicate what is the concrete semantics of the data point. This is of special interest when writter and data gatherer are not the same person. \macro{\drefsethelp} takes two arguments: first a regular expression that matches the symbolic data point, second the help text.
+
+\begin{codeexample}
+\begin{verbatim}
+\drefsethelp{.*/mice race}{The mice race used for experiments
+ heavily influences the outcome of the results}
+\end{verbatim}
+\end{codeexample}
+
+The documentation for a datapoint is obtained by using the \macro{\drefhelp} macro. It checks all defined documentation
+strings (in linear order, first defined, first matched), and prints the first matching help text. With \textbf{LuaTeX}:
+only Lua (string.find) regular expressions are supported as patterns.
+
+ \begin{example}
+ \drefhelp{/med A/mice race}
+ \end{example}\begin{codeexample}
+\begin{verbatim}
+\drefhelp{/med A/mice race}
+\end{verbatim}
+ \end{codeexample}
+
+
+\Macro{\drefresult}
+
+Is set in the @set phase to the result of the currently executed pipeline.
+
+
+\subsection{Calculations and Math Tools}
+
+\Macro[(@calc, @print, @set)]{\drefcalc[\meta{options}]\{\meta{expression}\}}
+\Macro[(@calc, @set)]{\drefcalc*[\meta{options}]\{\meta{expression}\}}
+\Macro[(@print)]{\drefformat*[\meta{options}]\{\meta{number}\}}
+
+The \macro{\drefcalc} is the core function of calculating with data points. It is based on the pgfmath engine, but allows
+also the usage of symbolic datapoints within mathematical expressions. Datapoints can either are inserted into the
+calculations with the \cmd{d(\meta{path})} or the \cmd{data("\meta{path}")} notation. The starred variant of
+\macro{\drefcalc} does not print the result, but only sets the result macros.
+
+It is important to note, that \macro{\drefcalc} always uses the \textbf{/pgf/fpu} environment. The FPU feature of pgfmath
+is used to handle large numbers, which may occur often when handling experiment data points.
+
+\begin{example}
+ \drefcalc{(4+7)/12 * 100}\\
+ \drefcalc{d(/med A/mice count) * 100}\\
+ \drefcalc{data("/med A/mice count") * 100}\\
+ \drefcalc*{1+3}\\
+ \drefresult
+\end{example}\begin{codeexample}
+\begin{verbatim}
+\drefcalc{(4+7)/12 * 100}\\
+\drefcalc{d(/med A/mice count) * 100}\\
+\drefcalc{data("/med A/mice count") * 100}\\
+\drefcalc*{1+3}\\
+\drefresult
+\end{verbatim}
+\end{codeexample}
+
+Since the default printing mechanism of \dataref utilizes PGF, all options from \texttt{/pgf/number format} can be
+directly used in the options. \macro{\drefformat} does only the printing. For documentation on the available options,
+please consult the PGF manual.
+
+\begin{example}
+ \drefcalc[precision=4]{1/3}\\
+ \drefcalc[sci]{123456789}\\
+ \drefcalc[prefix=/med A/,frac]{d(recovered)/d(mice count)}\\
+ \drefformat[fixed zerofill, precision=2]{\drefresult}
+\end{example}\begin{codeexample}
+\begin{verbatim}
+\drefcalc[precision=4]{1/3}\\
+\drefcalc[sci]{123456789}\\
+\drefcalc[prefix=/med A/,frac]{d(recovered)/d(mice count)}\\
+\drefformat[fixed zerofill, precision=2]{\drefresult}
+\end{verbatim}
+\end{codeexample}
+
+\subsection{Units and Unit Scaling}
+
+\dataref allows to give the unit of a datapoint and enforces the correct combination of units when using them in
+calculations. \dataref units can be arbitrary combinations of macros and strings, which allows the combination with the
+\textsc{SIUnitX} package.
+
+\Option[(no default)]{/dref/unit=\meta{unit}}
+
+The unit of a datapoint is loaded in the @get phase, and stored in the @set phase of the \dataref pipeline.
+
+\drefset[unit=\joule]{/power}{1234}
+\drefset[unit=ms]{/duration}{5555}
+\begin{codeexample}
+\begin{verbatim}
+\drefset[unit=ms]{/duration}{5555}
+\drefset[unit=\joule]{/power}{1234}
+\end{verbatim}
+\end{codeexample}
+
+\Option[(no default, choice)]{/dref/unit/format=\meta{formatting style}}
+\Option[(initially \textbf{plain})]{/dref/unit/format default=\meta{formatting style}}
+
+
+If a datapoint with unit is referenced, the unit is printed after the value. The formatting mechanism can be exchanged,
+in order to omit the unit, or to use \textsc{SIUnitX} for properly print it. By default, the \texttt{unit/format
+ default} is set in the @init phase. If you are using \textsc{SIUnitX} in your document, it is safe to set the default
+value accordingly. Currently, the values \texttt{false}, \texttt{plain}, and \texttt{siunitx} are valid formatting
+styles.
+
+\drefkeys{unit/format default=siunitx}
+\begin{example}
+ \dref[unit/format=false]{/duration}; \dref{/duration};
+ \typeout{\pgfkeysvalueof{/dref/unit/format default}}
+ \dref{/power}
+\end{example}\begin{codeexample}
+\begin{verbatim}
+\drefkeys{unit/format default=siunitx}
+\dref[unit/format=false]{/duration}; \dref{/duration};
+\dref{/power}
+\end{verbatim}
+\end{codeexample}
+
+\Option[(no default)]{/dref/unit/new scala=\meta{scala}}
+
+\dataref allows to define scaled units and conversion between the members of the scala. A scala definition is a list of
+units with scaling factors between them.
+
+
+\drefkeys{
+ unit/new scala={
+ 1/y, 365/d, 24/h, 60/m, 60/s, 1000/ms, 1000/us, 1000/ns
+ },
+ unit/new scala={
+ 1/\kilo\joule, 1000/\joule, 1000/\milli\joule,
+ 1000/\micro\joule, 1000/\nano\joule
+ }
+}
+
+\begin{codeexample}
+\begin{verbatim}
+\drefkeys{
+ unit/new scala={
+ 1/y, 365/d, 24/h, 60/m, 60/s, 1000/ms, 1000/us, 1000/ns
+ },
+ unit/new scala={
+ 1/\kilo\joule, 1000/\joule, 1000/\milli\joule,
+ 1000/\micro\joule, 1000/\nano\joule
+ }
+}
+\end{verbatim}
+\end{codeexample}
+
+\Option[(no default)]{/dref/unit/scale to=\meta{unit}}
+
+With a defined scala, you can scale to any unit on that scala automatically. In the example, we use unit to set the unit
+of plain value to nano joule, and scale everything to milli joule.
+
+\begin{example}
+\foreach \a in {1234, 4135413, 213516513245, 24} {%
+ \drefformat[unit=\nano\joule, unit/scale to=\milli\joule]{\a}\\
+}
+\end{example}\begin{codeexample}
+\begin{verbatim}
+\foreach \x in {1234, 4135413, 213516513245, 24} {%
+ \drefformat[
+ unit=\nano\joule,
+ unit/scale to=\milli\joule]{\x}\\
+}
+\end{verbatim}
+\end{codeexample}
+
+\Option[(default \textbf 50)]{/dref/unit/scale to auto=\meta{optimum number}}
+
+With \texttt{scale to auto}, the appropriate unit is chosen automatically. The algorithm tries every unit on the scala
+and chooses the unit, where the numerical value after scaling is nearest to the \meta{optimum number}. So with a optimum
+number of 50, 5000 seconds are scaled to \drefformat[unit=s, unit/scale to auto]{5000} instead of \drefformat[unit=s,
+unit/scale to=h]{5000}.
+
+
+\begin{example}
+\foreach \a in {1234, 4135413, 213516513245, 24} {%
+ \drefformat[unit=ms, unit/scale to auto]{\a}\\
+}
+\end{example}\begin{codeexample}
+\begin{verbatim}
+\foreach \x in {1234, 4135413, 213516513245, 24} {%
+ \drefformat[unit=ms, unit/scale to auto]{\x}\\
+}
+\end{verbatim}
+\end{codeexample}
+
+
+\subsection{Relating Datapoints}
+
+\Macro[(@calc, @set)]{\drefrel*[\meta{options}]\{\meta{key or value}\}}
+\Macro[(@calc, @print, @set)]{\drefrel[\meta{options}]\{\meta{key or value}\}}
+
+Often, datapoints are set in relation to each other. This can either be done with \macro{\drefcalc} or, more explictily,
+with \macro{\drefrel}. The different options that come along \macro{\drefrel}, add steps to the @calc phase and can,
+therefore, be combinated with any other dref macro that includes the @calc phase.
+
+All operations operate on the current result, which is initially the given key or value from the mandatory argument.
+
+\begin{example}
+ \drefrel[percent of=123]{40}
+\end{example}\begin{codeexample}
+\begin{verbatim}
+ \drefrel[percent of=123]{40}
+\end{verbatim}
+\end{codeexample}
+
+The different relation operations try to have a speaking name, such that the \TeX{} code is easily understandable by the
+writer. This explicit notation aims to prevent common mistakes, like confusing denominator and numerator.
+
+The starred version of \macro\drefrel does not print any number, but only saves the result in \macro\drefresult. Instead of
+only taking datapoint keys, \macro\drefrel, as well as the relating operations, take either a key or a bare number as you can
+see from the example.
+
+\Option[(no default)]{/dref/scale by=\meta{key or value}}
+
+Scales the current value by the given factor, which must be unit less. The resulting unit is untouched.
+
+\Option[(no default)]{/dref/percent}
+
+Scales the current value by 100. The unit is not changed.
+
+\Option[(no default)]{/dref/negate}
+
+Scales the current value by -1. The resulting unit is untouched.
+
+\Option[(no default)]{/dref/divide by=\meta{key or value}}
+
+Divides the current value by the given factor, which must be unit less. The resulting unit is untouched.
+
+
+\Option[(no default)]{/dref/abs}
+
+Calculate the absolute value.
+
+\Option[(no default)]{/dref/factor of=\meta{key or value}}
+\Option[(no default)]{/dref/percent of=\meta{key or value}}
+
+The \textbf{factor of} operation gives the portion the current value in relation to the given base value. In easy words:
+a division. This macro ensures, that base and current vale have the same unit or are unit less. The result of this
+operation is unit less. The \textbf{percent of} operation, furthermore, scales the result with 100 to get a percentage.
+
+\Option[(no default)]{/dref/increase from=\meta{key or value}}
+\Option[(no default)]{/dref/decrease from=\meta{key or value}}
+\Option[(no default)]{/dref/increase factor from=\meta{key or value}}
+\Option[(no default)]{/dref/decrease factor from=\meta{key or value}}
+\Option[(no default)]{/dref/increase percent from=\meta{key or value}}
+\Option[(no default)]{/dref/decrease percent from=\meta{key or value}}
+
+In a situation, where a datapoint is the result of a changed experiment setup, the value normally shows an increased or decrease
+numerical value. This family of operations calculates this delta, assuming it is an increase or decrease. The factor
+operations scale the result to the base value, and the percent operations give this scaled value as a percentage.
+
+\begin{example}
+ \drefrel[increase from=500]{525}\\
+ \drefrel[increase factor from=500,fixed]{525}\\
+ \drefrel[increase percent from=500]{525}\,\%
+\end{example}
+\begin{codeexample}
+\begin{verbatim}
+ \drefrel[increase from=500]{525}\\
+ \drefrel[increase factor from=500,fixed]{525}\\
+ \drefrel[increase percent from=500]{525}\,\%
+\end{verbatim}
+\end{codeexample}
+
+\subsection{Helper Utilities}
+
+\Macro{\drefrow[\meta{options}]\{\meta{comma-separated list}\}\{\meta{key template}\}}
+\Macro{\drefrow*\{\meta{comma-separated list}\}\{\meta{template}\}}
+
+ Often different columns in a table have to be obtained from your data
+ points. Often those rows and columns are similar. Generating parts of
+ tables within \LaTeX is very tricky, so \dataref provides you
+ with \macro{\drefrow}. This macro iterates over a comma-separated list
+ of values and fills out a macro which is interpreted as a symbolic
+ data point. The entries are seperated with \& and printed. In the
+ starred variant the resulting text is not interpreted as symbolic
+ name, but as a macro.
+
+ Both, unstarred and starred variant take a template (a macro body) that is expanded once for every item in the given
+ list. The first replacement \verb|#1| is list item and the second \verb|#2| is the current index starting from 0. The
+ unstarred variant interprets the expanded result as a datapoint key and uses \macro\dref to expand it; the optional
+ parameter is passed through to every invocation of \macro\dref.
+ The starred variant does not wrap the result into \macro\dref, and, therefore, is more flexible.
+
+ \begin{example}
+ \begin{tabular}{|c|c|c|}\hline
+ \drefrow{dead after 24h,dead after 48h,recovered}%
+ {/control group/#1}\\\hline
+ \drefrow{dead after 24h,dead after 48h,recovered}%
+ {/med A/#1}\\\hline
+ \end{tabular}
+ \end{example}
+ \begin{codeexample}
+\begin{verbatim}
+\begin{tabular}{|c|c|c|}\hline
+ \drefrow{dead after 24h,dead after 48h,recovered}
+ {/control group/#1}\\\hline
+ \drefrow{dead after 24h,dead after 48h,recovered}%
+ {/med A/#1}\\\hline
+\end{tabular}
+\end{verbatim}
+ \end{codeexample}
+
+
+ \Macro[(@calc)]{\drefassert\{\meta{expr}\}}
+
+ Sometimes the underlying data changes while you are writing. But what
+ if your prose text relies on certain characteristics of the data. \macro{\drefassert} uses a pgfmath
+ expression that evaluates to \verb|true| or \verb|false|. When the
+ assertion holds (\verb|true|) nothing happens, only a terminal message
+ is printed. When it does not hold (\verb|false|) the compilation is aborted.
+
+\begin{example}
+\drefassert{data("/control group/mice count") > 30}
+Of the more than thirty infected mice...
+\end{example}\begin{codeexample}
+\begin{verbatim}
+\drefassert{data("/control group/mice count") > 30}
+Of the more than thirty infected mice...
+\end{verbatim}
+\end{codeexample}
+
+ \Option[(default \textbf{true})]{/dref/noassert=\meta{true or false}}
+
+ The \textbf{noassert} deescalates all assertion errors to mere warnings. This option can also be given at the
+ \cmd{\usepackage} invication.
+
+\Option[(no default, initially \textbf{none}, choice)]{/dref/annotate=\meta{annotation type}}
+\Option[(choice item)]{/dref/annotate=none}
+\Option[(choice item)]{/dref/annotate=footnote}
+\Option[(choice item)]{/dref/annotate=pdfcomment}
+\Option[(choice item)]{/dref/annotate=typeout}
+
+While writing a document it is desirable to know, what key is used, while writing the text and generating the document.
+Therefore \dataref provides the possibility to annotate values. The default option \textbf{none} disables this kind of
+annotation. The \textbf{pdfcomment} option uses pdf annotations. Be aware that those annotations work properlyy only on
+a few selected PDF readers\footnote{In doubt use Acrobat}.
+
+\begin{example}[6cm]
+ \drefkeys{annotate=footnote}
+ \dref*{/control group/mice race}
+ \dref{/control group/mice count}
+ \drefcalc[annotate=pdfcomment]{100/3}
+\end{example}\begin{codeexample}
+\begin{verbatim}
+\drefkeys{annotate=footnote}
+\dref*{/control group/mice race}
+\dref{/control group/mice count}
+\drefcalc[annotate=pdfcomment]{100/3}
+\end{verbatim}
+\end{codeexample}
+
+
+ \subsection{Datagraphy}\label{sec:datagraphy}
+
+ \Macro{\drefusagereport}
+ \Option{[usagereport]}
+ \Option{[refall]}
+
+ With the \textbf{usagereport} package option enabled, \macro{\drefusagereport} generates a usagereport of all referenced
+ keys. The usage report groups the keys by the help texts. If the refall package option is given, all keys are marked as
+ referenced.
+
+\section*{Datagraphy}
+\drefusagereport
+
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
Binary files old/doc/latex/dataref/dataref.pdf and new/doc/latex/dataref/dataref.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/dataref.doc.tlpobj new/tlpkg/tlpobj/dataref.doc.tlpobj
--- old/tlpkg/tlpobj/dataref.doc.tlpobj 2016-04-14 18:55:16.000000000 +0200
+++ new/tlpkg/tlpobj/dataref.doc.tlpobj 2017-04-14 17:37:36.000000000 +0200
@@ -1,8 +1,9 @@
name dataref.doc
category Package
-revision 38394
+revision 42883
shortdesc doc files of dataref
relocated 1
-docfiles size=63
- RELOC/doc/latex/dataref/README
- RELOC/doc/latex/dataref/dataref.pdf
+docfiles size=68
+ RELOC/doc/latex/dataref/README.md
+ RELOC/doc/latex/dataref/dataref-doc.pdf
+ RELOC/doc/latex/dataref/dataref-doc.tex
++++++ dataref.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/dataref/dataref.sty new/tex/latex/dataref/dataref.sty
--- old/tex/latex/dataref/dataref.sty 2015-09-18 01:49:24.000000000 +0200
+++ new/tex/latex/dataref/dataref.sty 2017-01-07 00:01:05.000000000 +0100
@@ -1,13 +1,5 @@
+%% Copyright 2013-2017 Christian Dietrich
%%
-%% This is file `dataref.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% dataref.dtx (with options: `package')
-%% dataref.dtx
-%% Copyright 2013 Christian Dietrich
-%%
%% 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.
@@ -15,33 +7,32 @@
%% 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.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
+%%
%% The Current Maintainer of this work is Christian Dietrich
-%%
+%%
%% This work consists of the files dataref.dtx and dataref.ins
%% and the derived file dataref.sty.
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{dataref}
- [2015/09/17 v0.5 dataref]
+\ProvidesPackage{dataref}[2017/01/06 v0.6 dataref]
\ifx\drefloaded\undefined
\let\drefloaded=\relax
\else
\expandafter\endinput
\fi
-\ifx\PackageError\undefined
- \def\dref@error#1{\immediate\write-1{Package dref: Error! #1.}}%
-\else
- \def\dref@error#1{\PackageError{dref}{#1}{}}%
-\fi
+
+\def\drefutil@packageerror#1#2#3{\errhelp{#3}\errmessage{Package #1 Error: #2}}
+\def\drefutil@packagewarning#1#2{\immediate\write17{Package #1: Warning! #2.}}
+\def\dref@error#1{\drefutil@packageerror{dref}{#1}{}}
+\def\dref@warning#1{\drefutil@packagewarning{dref}{#1}}
+
\RequirePackage{pgf}
+\usepgflibrary{fpu}
\RequirePackage{iftex}
\RequirePackage{kvoptions}
-\usepgflibrary{fpu}
-\usepackage{etoolbox}
-\RequirePackage{xcolor}
+\RequirePackage{etoolbox}
\SetupKeyvalOptions{
family=dref,
@@ -55,72 +46,297 @@
\DeclareBoolOption{ignoremissing}
\DeclareBoolOption{noassert}
\ProcessKeyvalOptions*
-\def\dref@set#1#2{%
- \edef\dref@set@tmp{#2}%
- \expandafter\pgfkeys@temptoks\expandafter{\dref@set@tmp}%
- \expandafter\xdef\csname
- pgfk@\dref@datapath#1\endcsname{\the\pgfkeys@temptoks}%
+
+% Load & Store Layer
+
+\def\dref@set#1#2#3{%
+ \edef\dref@set@path{#3}%
+ \edef\dref@set@value{#2}%
+ \expandafter\pgfkeys@temptoks\expandafter{\dref@set@value}%
+ \expandafter\xdef%
+ \csname pgfk@\dref@datapath\dref@set@path\endcsname%
+ {\the\pgfkeys@temptoks}%
+ % Setting the Unit is a little bit more tricky
+ %% Unit Path Assembly
+ \expandafter\def%
+ \expandafter\dref@set@unitpath%
+ \expandafter{%
+ \csname pgfk@\dref@datapath\dref@set@path @unit\endcsname}%
+ \expandafter\gdef\dref@set@unitpath{#1}%
\ifdref@refall%
- \expandafter\dref@found\expandafter{\dref@datapath#1}{0}
- \expandafter\dref@referenced\expandafter{\dref@datapath#1}{0}%
+ \expandafter\dref@found\expandafter{\dref@set@path}{0}
+ \expandafter\dref@referenced\expandafter{\dref@set@path}{0}%
\fi%
+ \dref@debug{\dref@set@path = \dref@set@value (\detokenize{#1})}%
}
-\def\drefset#1#2{\dref@set{#1}{#2}}
-\def\dref@expandable#1{%
- \pgfkeysifdefined{\dref@datapath\csuse{dref@prefix}#1}{%
- \pgfkeysvalueof{\dref@datapath\csuse{dref@prefix}#1}%
+\def\dref@load#1#2#3{%
+ \edef\dref@load@path{#1}%
+ \pgfkeysifdefined{\dref@datapath\dref@load@path}{%
+ \pgfkeysgetvalue{\dref@datapath\dref@load@path}{#2}%
+ \pgfkeysifdefined{\dref@datapath\dref@load@path @unit}{%
+ \pgfkeysgetvalue{\dref@datapath\dref@load@path @unit}{#3}%
+ }{%
+ \def#3{}%
+ }%
}{%
- \ifdref@ignoremissing%
- \dref@defaultvalue%
- \else%
- \typeout{Dref error: undefined key `#1'}\QUIT%
- \fi%
+ \edef#2{\dref@defaultvalue}%
+ \def#3{}%
}%
}
-\def\dref@unexpandable#1{%
- \def\drefcurrentkey{\dref@datapath\csuse{dref@prefix}#1}%
- \pgfkeysifdefined{\drefcurrentkey}{%
- \edef\dref@thepage{\arabic{page}}%
- \immediate\write\@auxout{\noexpand\dref@found{\drefcurrentkey}{\dref@thepage}}%
+
+\def\drefifdefined#1{%
+ \pgfkeysifdefined{\dref@datapath\drefprefix #1}%{then}{else}
+}
+
+\def\dref@set@fromaux#1#2#3{%
+ \drefifdefined{#2}{%
+ \dref@warning{"\drefprefix #2" set before beginning of document, \string\drefsave{} is ignore}%
}{%
- \immediate\write\@auxout{\noexpand\dref@notfound{\drefcurrentkey}{\dref@thepage}}%
+ \dref@set{#1}{#2}{#3}%
+ }%
+}
+
+\def\drefkeys#1{\pgfkeys{/dref/.cd,#1}}
+\def\drefprefix{\pgfkeysvalueof{/dref/prefix}}
+\newif\ifdref@debug
+\def\dref@debug#1{\ifdref@debug \immediate\write17{Package dref: Debug: #1.}\fi}
+
+\drefkeys{
+ .is family,
+ .search also={/pgf/number format},
+ % The @init action is used to initialize all other actions
+ @[/.code={\begingroup%
+ \pgfkeys{/pgf/fpu,/pgf/fpu/output format=fixed}% No more dimensions too large
+ \def\drefunit{}% At first we are unitless
+ \aftergroup\edef%
+ \aftergroup\drefresult%
+ \aftergroup{%
+ \aftergroup\drefresult@smuggle%
+ \aftergroup}%
+ \aftergroup\expandafter%
+ \aftergroup\def%
+ \aftergroup\expandafter%
+ \aftergroup\drefunit%
+ \aftergroup\expandafter%
+ \aftergroup{%
+ \aftergroup\drefunit@smuggle%
+ \aftergroup}
+ },
+ @]/.code={% We smuggle \drefresult after the current group
+ \xdef\drefresult@smuggle{\drefresult}%
+ \xdef\drefunit@smuggle{\expandonce\drefunit}%
+ \endgroup%
+ },
+ @init/.style={},
+ % The \drefresult macro holds the current value,
+ % it can be set by value=
+ prefix/.initial={},
+ value/.code={\edef\drefresult{#1}\def\drefunit{}},
+ value=0,
+ path/.estore in={\drefcurrentpath},
+ @init/.append style={},
+ % \drefresult can be set by the @load action
+ @load key to/.code n args={3}{%
+ \dref@load{\drefprefix #1}{#2}{#3}%
+ },
+ @get key to/.style n args={3}{
+ @check key={#1},
+ @reference key={#1},
+ @load key to={#1}{#2}{#3},
+ },
+ @get/.style={%
+ @get key to={\drefcurrentpath}{\drefresult}{\drefunit},
+ unit/@format enable,
+ },
+ % For most commands, we want to check whether a key exists.
+ @check key/.code={%
+ \drefifdefined{#1}{}{%
+ \ifdref@ignoremissing%
+ \dref@warning{undefined key `\drefprefix #1'}%
+ \else%
+ \dref@error{undefined key `\drefprefix #1'}%
+ \fi%
+ }%
+ },
+ % The @set action is used to pipe out \drefresult, before we can
+ % print it. For example, we can use it to save the result to a new
+ % key.
+ @init/.append style={
+ @set/.code={},
+ },
+ set/.style={
+ @set/.append code={%
+ \expandafter\dref@set\expandafter{\drefunit}{\drefresult}{\drefprefix #1}%
+ }
+ },
+ save/.style={
+ set={#1},
+ @set/.append code={%
+ \immediate\write\@auxout{%
+ \noexpand\dref@set@fromaux{\expandonce\drefunit}{\drefresult}{\drefprefix #1}%
+ }%
+ }
+ },
+ to macro/.style={
+ @set/.append code={%
+ \aftergroup\edef%
+ \aftergroup#1%
+ \aftergroup{%
+ \aftergroup\drefresult%
+ \aftergroup}}
+ },
+ %
+ debug/.is if=dref@debug,
+ ignoremissing/.is if=dref@ignoremissing,
+ defaultvalue/.store in=\dref@defaultvalue,
+}
+
+\csdef{dref@ifnum@0}{}
+\csdef{dref@ifnum@1}{}
+\csdef{dref@ifnum@2}{}
+\csdef{dref@ifnum@3}{}
+\csdef{dref@ifnum@4}{}
+\csdef{dref@ifnum@5}{}
+\csdef{dref@ifnum@6}{}
+\csdef{dref@ifnum@7}{}
+\csdef{dref@ifnum@8}{}
+\csdef{dref@ifnum@9}{}
+\csdef{dref@ifnum@-}{}
+\csdef{dref@ifnum@.}{}
+\def\dref@load@ifkey@firstchar#1#2\@nnil{#1}
+\drefkeys{%
+ @get key or value to/.code n args={3}{%
+ \edef\dref@load@path{#1}%
+ \edef\dref@firstchar{\expandafter\dref@load@ifkey@firstchar \dref@load@path\@nnil}%
+ \ifcsdef{dref@ifnum@\dref@firstchar}{%
+ \edef#2{\dref@load@path}%
+ }{%
+ \drefkeys{@get key to={#1}{#2}{#3}}%
+ }%
+ },
+ @get key or value/.style={
+ @get key or value to={\drefcurrentpath}{\drefresult}{\drefunit},
+ unit/@format enable,
+ },
+}
+
+
+% Print layer
+\drefkeys{
+ @init/.append style={
+ @print result/.code={},
+ @print unit/.code={}
+ },
+ @print/.style={@print result, @print unit},
+ print default/.initial={pgf},
+ print/.is choice,
+ print/no/.style={
+ @print result/.code={},
+ @print unit/.code={}
+ },
+ print/default/.style={%
+ print default/.get=\dref@print@format,%
+ print/.expand once=\dref@print@format,
+ },
+ print/raw/.style={
+ @print result/.code={\drefresult}
+ },
+ print/typeout/.style={
+ @print result/.code={\typeout{#1\drefresult}},
+ @print unit/.code={\typeout{\expandonce\drefunit}},
+ },
+ print/show/.style={
+ @print result/.append code={\show\drefresult},
+ },
+ print/pgf/.style={
+ @print result/.code={%
+ \pgfmathprintnumber{\drefresult}%
+ }
+ },
+ print/siunitx/.style={
+ @print result/.code={%
+ \num{\drefresult}%
+ }
+ },
+}
+
+% Compatibility with underscore package
+\def\dref@normalunderscore{_}
+\edef\dref@catcode@underscore{\the\catcode`_}
+\catcode`_=13
+\def\dref@catcode@setup{%
+ \edef _{\dref@normalunderscore}%
+}
+\catcode`_=\dref@catcode@underscore
+
+
+\AtBeginDocument{%
+ \ifdim 13pt = \the\catcode`_pt%
+ % _ is an active character
+ \drefkeys{@[/.append code={%
+ \dref@catcode@setup%
+ }%
+ }%
+ \fi%
+}
+
+\newcommand{\drefset}[3][]{%
+ % I put this version here, since it
+ % provides a sped up mass setting of keys
+ \begingroup%
+ \ifdim 13pt = \the\catcode`_pt%
+ \dref@catcode@setup%
+ \fi%
+ \edef\drefresult{#3}%
+ \def\drefunit{}%
+ \drefkeys{#1}%
+ \expandafter\dref@set\expandafter{\drefunit}%
+ {\drefresult}{\drefprefix #2}%
+ \endgroup%
+}
+
+\newcommand{\drefsave}[3][]{%
+ \drefkeys{@[, @init, value={#3}, #1, save={#2}, @set, @]}%
+}
+
+\newcommand{\drefinput}[2][]{%
+ \begingroup
+ \drefkeys{prefix/.append={#1}}
+ \input{data/#2}
+ \endgroup
+}
+
+
+\def\drefref#1{\drefkeys{@reference key={#1}}}
+
+% From here on, everything should be implemented using pgfkeys
+\protected\def\dref{\@ifstar\dref@starred\dref@unstarred}
+\newcommand{\dref@unstarred}[2][]{%
+ \drefkeys{@[, @init, print=default, path={#2}, #1, @get, @calc, @print, @set,%
+ @annotate={\textbackslash dref[#1]\{#2\}}, @]%
}%
- \immediate\write\@auxout{\noexpand\dref@referenced{\drefcurrentkey}{\dref@thepage}}%
}
-\newcommand{\drefifdefined}[3]{
- \def\drefcurrentkey{\dref@datapath\csuse{dref@prefix}#1}%
- \pgfkeysifdefined{\drefcurrentkey}{#2}{#3}%
-}
-\def\dref{\@ifstar\@@dref\@dref}
-\newcommand{\@dref}[2][]{% Unstarred
- \edef\dref@argument{#2}%
- \expandafter\dref@unexpandable\expandafter{\dref@argument}%
- \pgfmathparse{\dref@expandable{#2}}%
- \dref@format[#1]{\pgfmathresult}%
- \dref@mkannotate{\textbackslash dref\{#2\}}%
-}
-\newcommand{\@@dref}[2][]{% Starred
- \edef\dref@argument{#2}%
- \expandafter\dref@unexpandable\expandafter{\dref@argument}%
- \expandafter\gdef\expandafter\dref@dref@output\expandafter{\expandafter\dref@expandable\expandafter{\dref@argument}}%
- \dref@dref@output%
- \dref@mkannotate{\textbackslash dref*\{#2\}}%
+\newcommand{\dref@starred}[2][]{%
+ \drefkeys{@[, @init, print=raw, path={#2}, #1, @get, @calc, @print, @set,%
+ @annotate={\textbackslash dref*[#1]\{#2\}}, @]%
+ }%
}
-\def\drefvalueof#1{%
- \dref@expandable{#1}%
+\def\drefgetvalue#1#2{%
+ \drefkeys{@[,@init, path={#1}, to macro={#2}, @get, @set, @]}%
}
-\def\drefref#1{%
- \dref@unexpandable{#1}%
+\def\drefvalueof#1{%
+ \pgfkeysvalueof{\dref@datapath \drefprefix #1}%
}
+
%% dref@ifstrmatch is copied from etextools, but etextools is
%% incompatible with etoolbox
%% \ifstrmatch{ pattern }{ string }{ true }{ false }
\ifPDFTeX%
-\let\dref@strmatch\pdfmatch
+ \let\dref@strmatch\pdfmatch
\fi
\ifLuaTeX%
-\newcommand{\dref@strmatch}[2]{%
+ \newcommand{\dref@strmatch}[2]{%
\directlua{%
local match = string.find("\luaescapestring{#2}", "\luaescapestring{#1}");%
if match then
@@ -160,6 +376,20 @@
\dolistcsloop{dref@helps}%
}%
}
+\drefkeys{
+ @reference key/.code={%
+ \edef\dref@thepage{\arabic{page}}%
+ \drefifdefined{#1}{%
+ \immediate\write\@auxout{%
+ \noexpand\dref@found{\drefprefix #1}{\dref@thepage}}%
+ }{%
+ \immediate\write\@auxout{%
+ \noexpand\dref@notfound{\drefprefix #1}{\dref@thepage}}%
+ }%
+ \immediate\write\@auxout{%
+ \noexpand\dref@referenced{\drefprefix #1}{\dref@thepage}}%
+ }
+}
\def\dref@notfound#1#2{
\ifdref@usagereport%
\dref@usagereport@notfound{#1}{#2}%
@@ -175,18 +405,9 @@
\dref@usagereport@referenced{#1}{#2}%
\else\relax\fi%
}
-\def\dref@let#1{%
- \def\@tmp##1=##2;{\pgfmathdeclarefunction*{##1}{0}{\pgfmathparse{##2}}}%
- \renewcommand*{\do}[1]{\@tmp##1;}%
- \ifstrempty{#1}{}{%
- \docsvlist{#1}%
- }%
-}
-\def\dreflet#1{%
- \dref@let{#1}%
-}
+% The data("") || d() Parser
\def\dref@parser#1#2{%
\edef\@tempa{#1}%
\csdef{dref@parser@result}{}%
@@ -221,77 +442,67 @@
\csdef{dref@parser@d@(}{\dref@parser@tillparen}
\def\dref@parser@tillquote#1")#2\@nnil{%
- \drefref{\dref@data@math@prefix #1}%
- \csxdef{dref@parser@result}{\csuse{dref@parser@result}(\drefvalueof{\dref@data@math@prefix #1})}%
+ \drefkeys{
+ @get key to={#1}{\dref@math@value}{\dref@math@unit},
+ unit/@combine=\dref@math@unit,
+ }%
+ \csxdef{dref@parser@result}{\csuse{dref@parser@result}(\dref@math@value)}%
\csdef{dref@parser@state}{}%
\ifblank{#2}{}{\dref@parser@parse#2\@nnil}}
\def\dref@parser@tillparen#1)#2\@nnil{%
- \drefref{\dref@data@math@prefix #1}%
- \csxdef{dref@parser@result}{\csuse{dref@parser@result}(\drefvalueof{\dref@data@math@prefix #1})}%
+ \drefkeys{@get key to={#1}{\dref@math@value}{\dref@math@unit},
+ unit/@combine=\dref@math@unit}%
+ \csxdef{dref@parser@result}{\csuse{dref@parser@result}(\dref@math@value)}%
\csdef{dref@parser@state}{}%
\ifblank{#2}{}{\dref@parser@parse#2\@nnil}}%
\def\dref@parser@end#1#2\@nnil{}
-\csdef{dref@parser@@}{\typeout{end}\dref@parser@end}
+\csdef{dref@parser@@}{\dref@parser@end}
-\newcommand{\dref@calc}[1]{%
- %\typeout{Before: '#1'}%
- \dref@parser{#1}{\dref@calc@@argA}%
- %\typeout{After: \dref@calc@@argA}%
- \pgfmathparse{\dref@calc@@argA}%
+\drefkeys{
+ @init/.append style={%
+ @calc/.code={},%
+ },
+ @calc pgf/.style={
+ @calc/.append code={%
+ \dref@parser{#1}{\dref@calc@@ready}%
+ \pgfmathparse{\dref@calc@@ready}%
+ \dref@debug{#1 -> \dref@calc@@ready = \pgfmathresult}%
+ \edef\drefresult{\pgfmathresult}%
+ }
+ }
}
-\pgfset{/dref/let/.code={\dref@let{#1}}}
-\pgfset{/dref/prefix/.code={\csdef{dref@prefix}{#1}}}
-\def\drefprefix#1{\csdef{dref@prefix}{#1}}
-\def\drefresult{0}
-\def\drefcalc{\@ifstar\@@drefcalc\@drefcalc}
-\newcommand{\@drefcalc}[2][]{% Unstarred
- \begingroup%
- \pgfset{/pgf/number format/.cd, #1}%
- \dref@calc{#2}%
- \pgfmathprintnumberto[fixed,assume math mode=true,precision=10,1000 sep={}]{\pgfmathresult}{\drefresult}%
- \xdef\drefresult{\drefresult}%
- \dref@format{\pgfmathresult}%
- \dref@mkannotate{\textbackslash drefcalc\{#2\}}%
- \endgroup%
+\protected\def\drefcalc{\@ifstar\drefcalc@starred\drefcalc@unstarred}
+\newcommand{\drefcalc@unstarred}[2][]{% Unstarred
+ \drefkeys{@[,@init, print=default, @calc pgf={#2}, #1, @calc, @print, @set,%
+ @annotate={\textbackslash drefcalc[#1]\{#2\}},@]}%
}
-\newcommand{\@@drefcalc}[2][]{ % Starred
- \begingroup%
- \pgfset{/pgf/number format/.cd, #1}%
- \dref@calc{#2}%
- \pgfmathprintnumberto[fixed,assume math mode=true,precision=10,1000 sep={}]{\pgfmathresult}{\drefresult}%
- \xdef\drefresult{\drefresult}%
- \endgroup%
-}
-\newcommand{\dref@format}[2][]{%
- \pgfmathprintnumber[#1]{#2}%
+\newcommand{\drefcalc@starred}[2][]{ % Starred
+ \drefkeys{@[,@init, @calc pgf={#2}, #1, @calc, @set,%
+ @annotate={\textbackslash \drefcalc*[#1]\{#2\}},@]%
+ }%
}
-\newcommand{\drefformat}[2][]{\dref@format[#1]{#2}}
-\gdef\dref@data@math@prefix{}
-\pgfmathdeclarefunction{data}{1}{%
- \begingroup%
- \dref@unexpandable{\dref@data@math@prefix#1}%
- \pgfmathparse{\dref@expandable{\dref@data@math@prefix#1}}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
+\newcommand{\drefformat}[2][]{%
+ \drefkeys{@[,@init, print=default, value={#2}, #1, @calc, @print, @]}%
}
+
\long\def\drefprojection#1#2#3{%
\begingroup%
- \def\dref@data@math@prefix{#1}%
- \def\rename##1##2{\dref@unexpandable{#1/##1}\drefset{#2/##2}{\dref@expandable{#1/##1}}}%
- \def\id##1{\rename{##1}{##1}}%
- \def\calc##1##2{%
- \begingroup%
- \drefcalc{##1}%
- \xdef\dref@project@result{\drefresult}
- \endgroup%
- \drefset{#2/##2}{\dref@project@result}%
- }%
- #3%
- \endgroup%
+ \def\rename##1##2{%
+ \drefkeys{@init, path={#1/##1}, set={#2/##2}, @get, @set}%
+ }%
+ \def\id##1{\rename{##1}{##1}}%
+ \def\calc##1##2{%
+ \edef\drefprojection@prefix{\drefprefix}%
+ \drefcalc[prefix={#1}]{##1}%
+ \edef\drefprefix{\drefprojection@prefix}%
+ \drefset{#2/##2}{\drefresult}%
+ }%
+ #3%
+ \endgroup%
}
@@ -313,8 +524,8 @@
}%
\expandafter\def\expandafter\arglist\expandafter{#1}%
\expandafter\docsvlist\expandafter{\arglist}%
- \@tempcntb=0\relax
- {\loop\ifnum\@tempcntb<\drefcellcount
+ \@tempcntb=0\relax%
+ {\loop\ifnum\@tempcntb<\drefcellcount%
\advance\@tempcntb by 1\relax%
\ifnum \@tempcntb = 1%
\edef\@@next{\csuse{@cell\the\@tempcntb}}%
@@ -330,31 +541,25 @@
\@@next}%
\repeat}%
}%
- \typeout{LINE: \the\dref@toks}%
- \expandafter\scantokens\expandafter{\the\dref@toks}}
+ \expandafter\scantokens\expandafter{\the\dref@toks}%
+}
-\long\def\drefrow{\@ifstar\@@drefrow\@drefrow}
-\def\@drefrow#1#2{\dref@makerow{#1}{\dref{#2}}} % Unstarred
-\def\@@drefrow#1#2{\dref@makerow{#1}{#2}} % Starred
+\long\def\drefrow{\@ifstar{\drefrow@starred}{\drefrow@unstarred}}
+\newcommand{\drefrow@unstarred}[3][]{\dref@makerow{#2}{\dref[#1]{#3}}\ignorespaces}
+\def\drefrow@starred#1#2{\dref@makerow{#1}{#2}\ignorespaces}
\expandafter\ifstrequal\expandafter{\dref@annotate}{pdfcomment}{
\RequirePackage{pdfcomment}
}
-\def\dref@mkannotate@none#1{\relax}
-\def\dref@mkannotate@footnote#1{\footnote{\texttt{#1}}}
-\def\dref@mkannotate@pdfcomment#1{\pdfcomment[opacity=0.4,voffset=2ex]{#1}}
-
-\newcommand{\dref@mkannotate}[1]{%
- \ifcsdef{dref@mkannotate@\dref@annotate}{%
- \csuse{dref@mkannotate@\dref@annotate}{#1}%
- }{%
- \dref@error{Value for annotate not supported: '\dref@annotate'}%
- }%
-}
-\newcommand{\drefannotate}[1]{%
- \renewcommand{\dref@annotate}{#1}%
+\drefkeys{
+ annotate/.is choice,
+ annotate/none/.style={@annotate/.code={\relax}},
+ annotate/footnote/.style={@annotate/.code={\footnote{\texttt{##1}}}},
+ annotate/pdfcomment/.style={@annotate/.code={\pdfcomment[opacity=0.4,voffset=2ex]{##1}}},
+ annotate/typeout/.style={@annotate/.code={\typeout{##1}}},
+ annotate=\dref@annotate,
}
%% Usagereport
@@ -379,7 +584,7 @@
\expandafter\def\expandafter\dref@usagereport@strippath@\dref@datapath#1\blanktest{#1}
\newcommand{\dref@usagereport@strippath}[1]{%
- \expandafter\dref@ifstrmatch\expandafter{\expandafter^\dref@datapath.*$}{#1}%
+ \expandafter\dref@ifstrmatch\expandafter{\expandafter^\dref@datapath.*$}{#1}%$
{\dref@usagereport@strippath@#1\blanktest}%
{#1}%
}
@@ -402,7 +607,7 @@
{\hypertarget{#1}{\dref@usagereport@strippath{#1}}}%
{\dref@usagereport@strippath{#1}}}%
& \dref@usagereport@formatreferencelist{#1}%
- & \pgfkeysifdefined{#1}{\pgfkeysvalueof{#1}}{\textbf{\color{red}undefined}}%
+ & \drefifdefined{#1}{\dref*[@reference key/.code={}]{#1}}{\textbf{undefined}}%
}
\def\drefusagereportaftergroup{}
@@ -492,7 +697,7 @@
}
\newcommand{\drefusagereport}{%
\ifdref@usagereport%
- \ifcsvoid{dref@usagereport@keys}{\typeout{EMPTY}}{%
+ \ifcsvoid{dref@usagereport@keys}{}{%
\begingroup%
\renewcommand{\do}[1]{%
\ifinlistcs{##1}{dref@usagereport@matchedkeys}{}{%
@@ -505,142 +710,243 @@
}% csempty @keys
\fi%
}
+\drefkeys{
+ noassert/.is if=dref@noassert
+}
\newcommand{\drefassert}[1]{%
\begingroup%
\drefcalc*{#1}%
- \expandafter\ifstrequal\expandafter{\drefresult}{1}{%
- \typeout{Assertion holds: #1}%
- }{%
+ \ifdim\drefresult pt = 0pt%
\ifdref@noassert%
- \typeout{Assertion failed: #1}%
+ \dref@warning{Assertion failed: #1}%
\else%
\dref@error{Assertion failed: #1}%
- \fi%
- }%
+ \fi%
+ \else
+ \dref@warning{Assertion holds: #1}%
+ \fi%
\endgroup%
}
-\newif\if@dref@valuemustderef%
-\newif\if@dref@basemustderef%
-\newif\if@dref@increase%
-\newif\if@dref@product%
-\newif\if@dref@factor%
-\newif\if@dref@delta%
-\newif\if@dref@percent%
-\newif\if@dref@abs%
-\newif\if@dref@neg%
-\pgfkeys{%
- \dref@datapath/.DUMMY/.initial=1
-}
-\pgfkeys{%
- /dref/.cd,%
- value/.initial = /.DUMMY,%
- base/.initial = /.DUMMY,%
- divide/.initial = 1,%
- value plain/.is if=@dref@valuemustderef,%
- value plain/.default=false,%
- value plain=true,%
- base plain/.is if=@dref@basemustderef,%
- base plain/.default=false,%
- base plain=true,%
- factor/.is if=@dref@factor,%
- factor/.default=true,%
- factor=false,%
- delta/.is if=@dref@delta,%
- delta/.default=true,%
- delta=false,%
- scale/.is if=@dref@product,%
- scale/.default=true,%
- scale=false,%
- product/.is if=@dref@product,%
- product/.default=true,%
- product=false,%
- increase/.is if=@dref@increase,%
- increase/.default=true,%
- increase=false,%
- overhead/.is if=@dref@increase,%
- overhead/.default=true,%
- overhead=false,%
- percent/.is if=@dref@percent,%
- percent/.default=true,%
- percent=false,%
- abs/.is if=@dref@abs,%
- abs/.default=true,%
- abs=false,%
- negate/.is if=@dref@neg,%
- negate/.default=true,%
- negate=false,%
-}
-
-\def\drefrel{\@ifstar\@@drefrel\@drefrel}
-
-\newcommand{\@drefrel}[2][]{%
- \@@drefrel[#1]{#2}%
- \@@drefrel@result%
- \dref@mkannotate{\textbackslash{}drefrel[#1]\{#2\}}%
+\drefkeys{%
+ factor of/.style={%
+ @get key or value to={#1}{\drefrel@tmp}{\drefrel@tmpunit},
+ unit/@assert compatible=\drefrel@tmpunit,
+ @calc pgf/.expanded={(\noexpand\drefresult)/(\drefrel@tmp)},
+ @calc/.append code={\def\drefunit{}},
+ },
+ percent/.style={
+ @calc pgf={100 * (\drefresult)},
+ },
+ percent of/.style={
+ factor of=#1, percent,
+ @calc/.append code={\def\drefunit{}},
+ },
+ scale by/.style={
+ @get key or value to={#1}{\drefrel@tmp}{\drefrel@tmpunit},%
+ unit/@assert unitless=\drefrel@tmpunit,
+ @calc pgf/.expanded={(\drefrel@tmp) * (\noexpand\drefresult)},
+ },
+ product/.style={scale by={#1}},
+ divide by/.style={
+ @get key or value to={#1}{\drefrel@tmp}{\drefrel@tmpunit},%
+ unit/@assert unitless=\drefrel@tmpunit,
+ @calc pgf/.expanded={(\noexpand\drefresult) / (\drefrel@tmp)},
+ },
+ divide/.style={divide by},
+ product/.style={scale by={#1}},
+ increase factor from/.style={
+ @get key or value to={#1}{\drefrel@tmp}{\drefrel@tmpunit},
+ unit/@assert compatible=\drefrel@tmpunit,
+ @calc pgf/.expanded={((\noexpand\drefresult)-(\drefrel@tmp))/(\drefrel@tmp)},
+ @calc/.append code={\def\drefunit{}},
+ },
+ increase percent from/.style={increase factor from={#1}, percent},
+ decrease factor from/.style={increase factor from={#1}, negate},
+ decrease percent from/.style={increase factor from={#1}, negate, percent},
+ increase from/.style={
+ @get key or value to={#1}{\drefrel@tmp}{\drefrel@tmpunit},%
+ unit/@assert compatible=\drefrel@tmpunit,
+ @calc pgf/.expanded={((\noexpand\drefresult)-(\drefrel@tmp))},
+ },
+ decrease from/.style={increase from={#1}, negate},
+ abs/.style={
+ @calc pgf={abs(\drefresult)}
+ },
+ negate/.style={
+ @calc pgf={-1 * (\drefresult)}
+ },
+}
+
+\def\drefrel{\@ifstar\drefrel@starred\drefrel@unstarred}
+
+\newcommand{\drefrel@unstarred}[2][]{%
+ \drefkeys{@[,
+ @init,
+ path={#2}, print=default, #1,
+ @get key or value, @calc, @print, @set,
+ @],
+ @annotate={\textbackslash drefrel[#1]\{#2\}}}%
+}
+
+\newcommand{\drefrel@starred}[2][]{%
+ \drefkeys{
+ @[, @init,
+ path={#2}, #1,
+ @get key or value, @calc, @set,
+ @],
+ @annotate={\textbackslash drefrel[#1]\{#2\}},
+ }%
+}
+
+% Unit scaling
+
+\def\dref@unit@key#1#2{%
+ dref@unit@\expandafter\detokenize\expandafter{#1}@\expandafter\detokenize\expandafter{#2}}
+
+\def\dref@unit@new#1{%
+ \def\dref@unit@scala{}%
+ \def\dref@unit@new@outer##1/##2,##3\@nnil{%
+ \def\dref@outer{\dref@unit@new@outer##3\@nnil}%
+ \listadd{\dref@unit@scala}{##2}%
+ \ifx##3&&%
+ \def\dref@outer{}%
+ \fi%
+ \dref@outer%
+ }%
+ \dref@unit@new@outer#1,\@nnil%
+ \def\dref@unit@new@outer##1/##2,##3\@nnil{%
+ \def\dref@outer{\dref@unit@new@outer##3\@nnil}%
+ \pgfkeys{/dref/units/\detokenize{##2} to \detokenize{##2}/.initial={* 1},%
+ /dref/units/scala \detokenize{##2}/.initial/.expand once={\dref@unit@scala}}%
+ \ifx##3&&%
+ \def\dref@outer{}%
+ \else%
+ \def\dref@unit@factor{}%
+ \dref@unit@new@inner{##2}##3\@stop%
+ \fi%
+ \dref@outer%
+ }
+ \def\dref@unit@new@inner##1##2/##3,##4\@stop{%
+ \def\dref@inner{\dref@unit@new@inner{##1}##4\@stop}%
+ \ifx##4&&\def\dref@inner{}\else\fi%
+ \edef\dref@unit@factor{\dref@unit@factor * ##2}%
+ \pgfkeys{/dref/units/\detokenize{##1} to \detokenize{##3}/.initial/.expanded={* (1 \dref@unit@factor)},%
+ /dref/units/\detokenize{##3} to \detokenize{##1}/.initial/.expanded={/ (1 \dref@unit@factor)},%
+ }%
+ \dref@inner%
+ }%
+ \dref@unit@new@outer#1,\@nnil%
}
-\newcommand{\@@drefrel}[2][]{%
- \begingroup%
- \pgfkeys{/pgf/fpu}%
- \pgfkeys{/dref/.cd,#1}%
- \pgfkeys{/dref/value=#2}%
- \if@dref@valuemustderef%
- \drefref{\pgfkeysvalueof{/dref/value}}%
- \edef\drefvalue{\drefvalueof{\pgfkeysvalueof{/dref/value}}}%
- \else%
- \def\drefvalue{\pgfkeysvalueof{/dref/value}}%
- \fi%
- \if@dref@basemustderef%
- \drefref{\pgfkeysvalueof{/dref/base}}%
- \def\drefbase{\drefvalueof{\pgfkeysvalueof{/dref/base}}}%
- \else%
- \def\drefbase{\pgfkeysvalueof{/dref/base}}%
- \fi%
- \xdef\drefresult{\drefvalue}%
- \if@dref@increase%
- \pgfmathparse{((\drefvalue) - (\drefbase)) / (\drefbase)}%
- \def\drefresult{\pgfmathresult}%
- \else%
- \if@dref@factor%
- \pgfmathparse{(\drefvalue) / (\drefbase)}%
- \def\drefresult{\pgfmathresult}%
- \else%
- \if@dref@delta%
- \pgfmathparse{(\drefvalue) - (\drefbase)}%
- \def\drefresult{\pgfmathresult}%
- \else%
- \if@dref@product%
- \pgfmathparse{(\drefvalue) * (\drefbase)}%
- \def\drefresult{\pgfmathresult}%
- \else
- \def\drefresult{\drefvalue}%
- \fi
+\drefkeys{
+ unit/new scala/.code={%
+ \dref@unit@new{#1}%
+ },
+ unit/.style={
+ unit/@load={#1},
+ unit/@format enable,
+ @get/.append style={unit/@load={#1}}, % Override Unit from loads
+ },
+ unit/@load/.code={% #1 Is plain unit
+ \def\drefunit{#1}%
+ },
+ unit/@try override/.code={% #1 must be unit holding macro
+ \ifx#1\empty#1\else%
+ \expandafter\def\expandafter\drefunit\expandafter{#1}%
+ \fi%
+ },
+ unit/@format enable/.code={%
+ \ifx\drefunit\empty\drefunit\else%
+ \drefkeys{unit/format=default}%
+ \fi%
+ },
+ unit/@assert unitless/.code={%
+ \ifx\drefunit\empty\drefunit\else% We are unit less: good
+ \ifx#1\empty#1\else% Other has no unit, also good
+ \dref@error{At least one should be unitless:
+ \expandafter\detokenize\expandafter{\drefunit},
+ \expandafter\detokenize\expandafter{#1}}
+ % There is some unit here. That is BAD
+ \fi\fi%
+ },
+ unit/@assert compatible/.code={%
+ \ifx\drefunit\empty\drefunit\else% We are unit less: good
+ \ifx#1\empty#1\else% Other has no unit, also good
+ \ifx\drefunit#1\else% Bot equal: also good
+ \dref@error{Incompatible Units:
+ \expandafter\detokenize\expandafter{\drefunit}
+ != \expandafter\detokenize\expandafter{#1}}
\fi%
- \fi%
- \fi%
- % Percent
- \if@dref@percent%
- \pgfmathparse{(\drefresult)*100.0}%
- \def\drefresult{\pgfmathresult}%
- \fi%
- % Absolute Value
- \if@dref@abs%
- \pgfmathparse{abs(\drefresult)}%
- \def\drefresult{\pgfmathresult}%
- \fi%
- % Negative Value
- \if@dref@neg%
- \pgfmathparse{-1.0*(\drefresult)}%
- \def\drefresult{\pgfmathresult}%
- \fi%
- \pgfmathparse{\drefresult/\pgfkeysvalueof{/dref/divide}}%
- \pgfmathprintnumberto[fixed,assume math mode=true,precision=10,1000 sep={}]{\pgfmathresult}{\drefresult}%
- \pgfmathprintnumberto{\pgfmathresult}{\@@drefrel@result}%
- \xdef\drefresult{\drefresult}%
- \xdef\@@drefrel@result{\@@drefrel@result}%
- \endgroup%
+ \fi%
+ \fi%
+ },
+ unit/@combine/.style={
+ unit/@assert compatible={#1}, unit/@try override={#1}, unit/@format enable
+ },
+ unit/scale to/.code={%
+ \edef\dref@unit@key{/dref/units/\expandafter\detokenize\expandafter{\drefunit} to \detokenize{#1}}%
+ \drefkeys{%
+ \dref@unit@key/.get=\dref@unit@factor,%
+ @calc pgf/.expanded={((\noexpand\drefresult) \dref@unit@factor)},%
+ unit=#1%
+ }%
+ },
+ unit/scale to auto/.default=50,
+ unit/scale to auto/.style={% #1 is the optimal value
+ @calc/.append code={
+ \dref@ifunit{%Only do the scaling, if there is a unit
+ \edef\dref@unit@key{/dref/units/scala \expandafter\detokenize\expandafter{\drefunit}}%
+ % Get all other units in the same scala
+ \drefkeys{\dref@unit@key/.get=\dref@unit@scala}%
+ \expandafter\def\expandafter\drefunit@best\expandafter{\drefunit}%
+ \def\drefunit@bestvalue{\drefresult}%
+ \def\@@score####1{1 / ( abs(#1) - abs(####1))}%
+ \def\do####1{%
+ \edef\dref@unit@key{/dref/units/\expandafter\detokenize\expandafter{\drefunit} to \detokenize{####1}}%
+ \pgfkeys{\dref@unit@key/.get=\dref@unit@factor}%
+ \pgfmathparse{\@@score{\drefunit@bestvalue} < \@@score{\drefresult \dref@unit@factor}}%
+ %\typeout{\drefunit \pgfmathresult \detokenize{####1}}%
+ \ifdim\pgfmathresult pt=1.0 pt%
+ \pgfmathparse{(\drefresult) \dref@unit@factor}%
+ \edef\drefunit@bestvalue{\pgfmathresult}%
+ \def\drefunit@best{####1}%
+ %\typeout{\expandafter\detokenize\expandafter{\drefunit} to
+ % \detokenize{####1} : \drefunit@bestvalue}%
+ \fi%
+ }%
+ \dolistloop\dref@unit@scala%
+ \edef\drefresult{\drefunit@bestvalue}%
+ \edef\drefunit{\expandonce{\drefunit@best}}%
+ }{}% ! \drefunit=\empty
+ }
+ },
+ unit/format default/.initial={plain},
+ unit/format/.is choice,
+ unit/format/no/.style={unit/format default=no, @print unit/.code={}},
+ unit/format/false/.style={unit/format default=no, @print unit/.code={}},
+ unit/format/plain/.style={
+ unit/format default=plain,
+ @print unit/.code={\dref@ifunit{\,\drefunit}{}}
+ },
+ unit/format/typeout/.style={
+ unit/format default=typeout,
+ @print unit/.code={\dref@ifunit{\expandafter\typeout\expandafter{\drefunit}}{}}
+ },
+ unit/format/siunitx/.style={
+ unit/format default=siunitx,
+ @print unit/.code={\dref@ifunit{\,\expandafter\si\expandafter{\drefunit}}{}}
+ },
+ unit/format/default/.style={%
+ unit/format default/.get=\dref@unit@format,
+ unit/format/.expand once=\dref@unit@format
+ },
}
+\def\dref@ifunit#1#2{%
+ \expandafter\ifblank\expandafter{\drefunit}{#2}{#1}%
+}
+
+
\endinput
%%
%% End of file `dataref.sty'.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/dataref.tlpobj new/tlpkg/tlpobj/dataref.tlpobj
--- old/tlpkg/tlpobj/dataref.tlpobj 2016-04-14 18:55:16.000000000 +0200
+++ new/tlpkg/tlpobj/dataref.tlpobj 2017-04-14 17:37:36.000000000 +0200
@@ -1,16 +1,16 @@
name dataref
category Package
-revision 38394
+revision 42883
shortdesc Manage references to experimental data
relocated 1
longdesc The package provides a mechanism that maintains a fixed
longdesc symbolic reference to numerical results; such results may vary
longdesc as the project proceeds (and hence the project report
longdesc develops).
-runfiles size=5
+runfiles size=7
RELOC/tex/latex/dataref/dataref.sty
catalogue-ctan /macros/latex/contrib/dataref
-catalogue-date 2015-09-17 13:55:01 +0200
+catalogue-date 2017-01-06 13:05:21 +0100
catalogue-license lppl1.3
catalogue-topics label-ref data-manip
-catalogue-version 0.5
+catalogue-version 0.6