commit texlive-specs-h for openSUSE:Factory
![](https://seccdn.libravatar.org/avatar/e2145bc5cf53dda95c308a3c75e8fef3.jpg?s=120&d=mm&r=g)
Hello community, here is the log from the commit of package texlive-specs-h for openSUSE:Factory checked in at 2015-04-25 09:50:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/texlive-specs-h (Old) and /work/SRC/openSUSE:Factory/.texlive-specs-h.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "texlive-specs-h" Changes: -------- --- /work/SRC/openSUSE:Factory/texlive-specs-h/texlive-specs-h.changes 2015-02-24 13:01:52.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.texlive-specs-h.new/texlive-specs-h.changes 2015-04-25 09:52:13.000000000 +0200 @@ -1,0 +2,72 @@ +Wed Apr 15 13:43:57 UTC 2015 - werner@suse.de + +- Handle unkown scripts + +------------------------------------------------------------------- +Tue Apr 14 13:53:08 UTC 2015 - werner@suse.de + +- Make sure that tabs are used within <<-EOF...EOF pair + +------------------------------------------------------------------- +Thu Apr 2 12:25:21 UTC 2015 - werner@suse.de + +- Package pas-cours: move runfiles from doc to working directory + +------------------------------------------------------------------- +Thu Apr 2 10:33:38 UTC 2015 - werner@suse.de + +- Handle rpmlintrc for each meta spec file its self + +------------------------------------------------------------------- +Wed Apr 1 16:47:12 UTC 2015 - werner@suse.de + +- The new TeXLive package layout had suppressed the detection of many + Provides which is fixed now. +- The null.tex is now in texlive-knuth-lib, therefore require + tex(null.tex) in luatex.requires and tex.requires instead of the + gone texlive-misc. + +------------------------------------------------------------------- +Wed Apr 1 07:47:29 UTC 2015 - werner@suse.de + +- Add exceltex.requires which now Requires perl(Spreadsheet::ParseExcel) + (boo#891617) +- Patch kpathsea_cnf.dif moved from texlive-specs-m to texlive-specs-l + +------------------------------------------------------------------- +Mon Mar 30 08:39:12 UTC 2015 - werner@suse.de + +- Add patch dvips_config.dif (boo#897284) +- Remove patch pgf_plain.dif as now upstream +- Remove patch latexdiff_env.dif as the affected file is gone +- Modified patches + luaotfload_varfonts.dif + tetex_scripts.dif + tex4ht_env.dif +- Removed files pst-node.moves and pst-plot.moves as now the files + are at the correct location + +------------------------------------------------------------------- +Thu Mar 26 14:05:48 UTC 2015 - werner@suse.de + +- Update to TeXLive 2014 (timestamp 20140525 revision 34252) + * Support DVIPDFMx + * [fix] avoid luatex crash under math_mode 'decimal' + * luaotfload: Fix incorrect handling of font file formats luaotfload) + * Sync with Context beta as of 2014-04-05 + * pdfTeX: sync with Knuth TeX 3.14159265, e-TeX 2.6 + * Many more ... + +------------------------------------------------------------------- +Fri Feb 27 12:33:49 UTC 2015 - coolo@suse.com + +- patch -p1 from within texmf-dist to avoid patching through symlinks + to please new patch + +------------------------------------------------------------------- +Thu Feb 26 13:30:39 UTC 2015 - coolo@suse.com + +- avoid bootstrap problems by ignoring built packages for packages + required by texlive + +------------------------------------------------------------------- Old: ---- enctex.doc.tar.xz enctex.tar.xz New: ---- exam-n.doc.tar.xz exam-n.tar.xz example.tar.xz expex.doc.tar.xz expex.tar.xz fandol.doc.tar.xz fandol.tar.xz fbb.doc.tar.xz fbb.tar.xz fbs.tar.xz texlive-specs-h-rpmlintrc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ texlive-specs-h.spec ++++++ ++++ 6406 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/texlive-specs-h/texlive-specs-h.spec ++++ and /work/SRC/openSUSE:Factory/.texlive-specs-h.new/texlive-specs-h.spec ++++++ encxvlna.doc.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/generic/encxvlna/README new/doc/generic/encxvlna/README --- old/doc/generic/encxvlna/README 2008-07-03 22:44:06.000000000 +0200 +++ new/doc/generic/encxvlna/README 2014-05-18 01:50:22.000000000 +0200 @@ -1,5 +1,5 @@ ============================================================================= -Package: encxvlna Version 1.0 22 June 2008 +Package: encxvlna Version 1.1 17 May 2014 ============================================================================= The package contains tools for inserting nonbreakable spaces after Files old/doc/generic/encxvlna/encxvlna.pdf and new/doc/generic/encxvlna/encxvlna.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/generic/encxvlna/encxvlna.tex new/doc/generic/encxvlna/encxvlna.tex --- old/doc/generic/encxvlna/encxvlna.tex 2008-07-03 22:44:06.000000000 +0200 +++ new/doc/generic/encxvlna/encxvlna.tex 2014-05-18 01:50:22.000000000 +0200 @@ -1,4 +1,4 @@ -%% $Id: encxvlna.tex 202 2008-06-14 18:55:05Z zw $ +%% $Id: encxvlna.tex 514 2014-05-17 00:07:36Z zw $ \input utf8-t1 % encTeX required for handling UTF-8 transparently \documentclass[12pt,a4paper]{article} \usepackage[czech,english]{babel} @@ -31,7 +31,7 @@ \title{\textsc{encxvlna}\\Vlna implemented in enc\TeX} \author{Petr Olšák \& Zdeněk Wagner\\\url{http://math.feld.cvut.cz/olsak} \& \url{http://icebearsoft.euweb.cz}} -\date{14\sup{th} June 2008} +\date{17\sup{th} May 2014} \maketitle \def\contentsname{Contents\,/\,Obsah} \tableofcontents @@ -44,21 +44,20 @@ \engfalse\input{vlna-inc} \end{otherlanguage*} -\section{\texorpdfstring{\ldots}{...} from fmtutil.cnf}\label{fmtutil} +\section{texmf-local/web2c/fmtutil-local.cnf}\label{fmtutil} \begingroup\footnotesize \begin{verbatim} -tex tex - tex.ini -pdftex pdftex - -enc -translate-file=cp227.tcx *pdftex.ini -latex pdftex language.dat -enc -translate-file=cp227.tcx *latex.ini -pdflatex pdftex language.dat -enc -translate-file=cp227.tcx *pdflatex.ini - -# - Czech / Slovak for UTF8 locale (see above for ISO-8859-2). Enable -# "by hand", not by "fmtutil --enablefmt", because definitions for -# ISO-8859-2 / UTF8 share the same name. -csplain pdftex - -etex -enc csplain-utf8.ini -cslatex pdftex - -etex -enc cslatex-utf8.ini -pdfcsplain pdftex - -etex -enc csplain-utf8.ini -pdfcslatex pdftex - -etex -enc cslatex-utf8.ini +# cslatex in UTF-8 +#!cslatex +#!pdfcslatex +cslatex pdftex - -etex -enc cslatex-utf8.ini +pdfcslatex pdftex - -etex -enc cslatex-utf8.ini + +# latex with enctex +#!latex +#!pdflatex +latex pdftex language.dat -enc -translate-file=cp227.tcx *latex.ini +pdflatex pdftex language.dat -enc -translate-file=cp227.tcx *pdflatex.ini \end{verbatim} \endgroup diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/generic/encxvlna/vlna-inc.tex new/doc/generic/encxvlna/vlna-inc.tex --- old/doc/generic/encxvlna/vlna-inc.tex 2008-07-03 22:44:06.000000000 +0200 +++ new/doc/generic/encxvlna/vlna-inc.tex 2014-05-18 01:50:22.000000000 +0200 @@ -1,4 +1,4 @@ -%% $Id: vlna-inc.tex 202 2008-06-14 18:55:05Z zw $ +%% $Id: vlna-inc.tex 518 2014-05-17 15:42:05Z zw $ % Included file, encoding UTF-8, see vlna-enctex.sty \ifeng @@ -44,9 +44,10 @@ \subsection{Requirements} This package requires enc\TeX\ of February 2003. It is often available in the distribution but is not activated as default. In order to activate it you have to regenerate your formats using the -\texttt{-enc} switch. In some distributions, such as \TL, you have to edit -\texttt{fmtutil.cnf}, possibly by running \texttt{texconfig}. The excerpt from my -\texttt{fmtutil.cnf} in \TL~2007 is shown in Section~\ref{fmtutil}. +\texttt{-enc} switch. In some distributions, such as \TL, you have to modify \texttt{fmtutil.cnf}. +It is achieved by writing your own \texttt{texmf-local/web2c/fmtutil-local.cnf} which +is shown in Section~\ref{fmtutil}. In other distributions the instructions of modifying the method of +format generation may differ. In case you do not have enc\TeX\ at all you have to build it yourself from the sources found at \url{http://math.feld.cvut.cz/olsak/enctex.html} @@ -57,8 +58,9 @@ Tento balíček vyžaduje enc\TeX\ z února 2003. Ten je obvykle v distribucích obsažen, avšak není aktivován. Pro jeho aktivaci musíte znovu vygenerovat formáty s použitím parametru \texttt{-enc}. V některých distribucích, např. v \TL, budete muset upravit soubor \texttt{fmtutil.cnf}, -pravděpodovně pomocí programu \texttt{texconfig}. Část mého \texttt{fmtutil.cnf} z \TL~2007 -je ukázána v kapitole~\ref{fmtutil}. +čehoč docílíte vytvořením vlastního souboru \texttt{texmf-local/web2c/fmtutil-local.cnf}, který je +ukázán v kapitole~\ref{fmtutil}. Instrukce pro změnu způsobu generování formátů v jiných +distribucích mohou být odlišné. V případě, že enc\TeX\ nemáte, musíte si jej zkompilovat sami ze zdrojů, které najdete na \url{http://math.feld.cvut.cz/olsak/enctex.html} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/encxvlna.doc.tlpobj new/tlpkg/tlpobj/encxvlna.doc.tlpobj --- old/tlpkg/tlpobj/encxvlna.doc.tlpobj 2010-06-10 18:26:51.000000000 +0200 +++ new/tlpkg/tlpobj/encxvlna.doc.tlpobj 2014-05-18 03:29:02.000000000 +0200 @@ -1,9 +1,9 @@ name encxvlna.doc category Package -revision 15878 +revision 34087 shortdesc doc files of encxvlna relocated 1 -docfiles size=73 +docfiles size=70 RELOC/doc/generic/encxvlna/License.txt RELOC/doc/generic/encxvlna/README RELOC/doc/generic/encxvlna/encxvlna.pdf ++++++ encxvlna.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/plain/encxvlna/encxvlna.tex new/tex/plain/encxvlna/encxvlna.tex --- old/tex/plain/encxvlna/encxvlna.tex 2008-07-03 22:44:06.000000000 +0200 +++ new/tex/plain/encxvlna/encxvlna.tex 2014-05-18 01:50:22.000000000 +0200 @@ -5,7 +5,7 @@ % The following test and error message was % inserted by Z. Wagner \expandafter\ifx\csname mubyte\endcsname\relax - \newhelp\vlnahelp + {\newlinechar=`\^^J\errhelp= {This package is implemented by new primitives of encTeX of Feb 2003^^J but this extension was not detected in your system. You can continue^^J but all commands of `encxvlna' will be ignored. If your TeX distribution^^J @@ -14,10 +14,9 @@ at all, you have to compile it from the source code. You can find^^J the source code including documentation at^^J http://math.feld.cvut.cz/olsak/enctex.html - } - \errhelp\vlnahelp + }% \errmessage - {encTeX of Feb 2003 or later not detected,^^Jthe rest of the package will be ignored} + {encTeX of Feb 2003 or later not detected,^^Jthe rest of the package will be ignored}}% \expandafter\endinput\fi % Toto je ukazka moznosti encTeXu. Na urovni maker muzeme diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/encxvlna.tlpobj new/tlpkg/tlpobj/encxvlna.tlpobj --- old/tlpkg/tlpobj/encxvlna.tlpobj 2010-06-10 18:26:51.000000000 +0200 +++ new/tlpkg/tlpobj/encxvlna.tlpobj 2014-05-18 03:29:03.000000000 +0200 @@ -1,6 +1,6 @@ name encxvlna category Package -revision 15878 +revision 34087 shortdesc Insert nonbreakable spaces, using encTeX. relocated 1 longdesc The package provides tools for inserting nonbreakable spaces @@ -13,5 +13,6 @@ RELOC/tex/latex/encxvlna/encxvlna.sty RELOC/tex/plain/encxvlna/encxvlna.tex catalogue-ctan /macros/generic/encxvlna -catalogue-date 2008-08-19 08:58:40 +0200 +catalogue-date 2014-05-17 20:01:25 +0200 catalogue-license lppl +catalogue-version 1.1 ++++++ endheads.doc.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/endheads/README new/doc/latex/endheads/README --- old/doc/latex/endheads/README 2012-09-04 00:54:44.000000000 +0200 +++ new/doc/latex/endheads/README 1970-01-01 01:00:00.000000000 +0100 @@ -1,5 +0,0 @@ -Readme for endheads - -Endheads makes running headers of the form ``Notes to pp.~xx--yy'' for -users of endnotes.sty. It also enables one to reset the endnotes counter -by chapter. endheads requires fancyhdr, endnotes, and ifthen. Endheads will also work for memoir class, but in that case it won't require fancyhdr. \ No newline at end of file Files old/doc/latex/endheads/endheads.pdf and new/doc/latex/endheads/endheads.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/endheads.doc.tlpobj new/tlpkg/tlpobj/endheads.doc.tlpobj --- old/tlpkg/tlpobj/endheads.doc.tlpobj 2012-09-04 04:37:42.000000000 +0200 +++ new/tlpkg/tlpobj/endheads.doc.tlpobj 2013-10-17 03:20:58.000000000 +0200 @@ -1,8 +1,7 @@ name endheads.doc category Package -revision 27581 +revision 31921 shortdesc doc files of endheads relocated 1 docfiles size=61 - RELOC/doc/latex/endheads/README RELOC/doc/latex/endheads/endheads.pdf ++++++ endheads.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/endheads/endheads.sty new/tex/latex/endheads/endheads.sty --- old/tex/latex/endheads/endheads.sty 2012-09-04 00:54:44.000000000 +0200 +++ new/tex/latex/endheads/endheads.sty 2013-10-17 00:59:06.000000000 +0200 @@ -22,7 +22,7 @@ %% in the same archive or directory.) \NeedsTeXFormat{LaTeX2e}[1997/12/01] \ProvidesPackage{endheads} - [2011/09/03 v1.5 endheads file] + [2013/10/14 v1.55 endheads file] \providecommand*{\ifrefundefined}[1]{% \expandafter\ifx\csname r@#1\endcsname\relax \expandafter\@firstoftwo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/endheads.tlpobj new/tlpkg/tlpobj/endheads.tlpobj --- old/tlpkg/tlpobj/endheads.tlpobj 2012-09-04 04:37:42.000000000 +0200 +++ new/tlpkg/tlpobj/endheads.tlpobj 2013-10-17 03:20:58.000000000 +0200 @@ -1,6 +1,6 @@ name endheads category Package -revision 27581 +revision 31921 shortdesc Running headers of the form "Notes to pp.xx-yy" relocated 1 longdesc Endheads provides running headers of the form "Notes to pp. xx- ++++++ enotez.doc.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/enotez/README new/doc/latex/enotez/README --- old/doc/latex/enotez/README 2013-05-02 01:35:46.000000000 +0200 +++ new/doc/latex/enotez/README 2014-02-06 00:33:31.000000000 +0100 @@ -1,15 +1,15 @@ -------------------------------------------------------------------------- -the ENOTEZ package v0.7 +the ENOTEZ package v0.7c Endnotes for LaTeX2e -2013/05/01 +2014/02/04 -------------------------------------------------------------------------- Clemens Niederberger Web: https://bitbucket.org/cgnieder/enotez/ E-Mail: contact@mychemistry.eu -------------------------------------------------------------------------- -Copyright 2012-2013 Clemens Niederberger +Copyright 2012-2014 Clemens Niederberger This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 @@ -28,4 +28,4 @@ -------------------------------------------------------------------------- If you have any ideas, questions, suggestions or bugs to report, please feel free to contact me. --------------------------------------------------------------------------- \ No newline at end of file +-------------------------------------------------------------------------- Files old/doc/latex/enotez/enotez_en.pdf and new/doc/latex/enotez/enotez_en.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/enotez/enotez_en.tex new/doc/latex/enotez/enotez_en.tex --- old/doc/latex/enotez/enotez_en.tex 2013-05-02 01:35:46.000000000 +0200 +++ new/doc/latex/enotez/enotez_en.tex 2014-02-06 00:33:31.000000000 +0100 @@ -12,7 +12,7 @@ % Web: https://bitbucket.org/cgnieder/enotez/ % E-Mail: contact@mychemistry.eu % -------------------------------------------------------------------------- -% Copyright 2011-2013 Clemens Niederberger +% Copyright 2012-2014 Clemens Niederberger % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 @@ -32,611 +32,461 @@ % If you have any ideas, questions, suggestions or bugs to report, please % feel free to contact me. % -------------------------------------------------------------------------- -\PassOptionsToPackage{supstfm=libertinesups}{superiors} -\documentclass[toc=bib,toc=index]{cnpkgdoc} -\docsetup{ - pkg = enotez , - code-box = { - backgroundcolor = gray!3!white , - skipbelow = .6\baselineskip plus .5ex minus .5ex , - skipabove = .6\baselineskip plus .5ex minus .5ex , - roundcorner = 3pt , +\documentclass[load-preamble+]{cnltx-doc} +\usepackage[utf8]{inputenc} +\usepackage{enotez} + +\setcnltx{ + package = enotez , + info = {Endnotes for \LaTeXe} , + authors = Clemens Niederberger , + email = contact@mychemistry.eu , + url = https://bitbucket.org/cgnieder/enotez/ , + pre-output = \setfnpct{dont-mess-around} , + add-cmds = { + @endnotemark, + endnote , + endnotemark , + endnotetext , + enmark , + enmarkstyle , + enotezwritemark , + printendnotes , + setenotez , + splitendnotes , + theendnote } , - gobble = 1 , - subtitle = {Endnotes for \LaTeXe} -} - -\addcmds{ - @endnotemark, - @ifnextchar, - appendix, - chapter, - cmd, - DeclareInstance, - DeclareTemplateInterface, - DeclareTranslation, - endnote, - endnotemark, - endnotetext, - enmark, - enmarkstyle, - enotezwritemark, - kant, - phantomsection, - printendnotes, - setenotez, - splitendnotes, - textsuperscript, - theendnote + add-silent-cmds = { + @currentlabel , + appendix , + cs , + DeclareInstance , + DeclareTemplateInterface , + DeclareTranslation , + kant + } , + index-setup = { + othercode = \footnotesize , + level = \addsec , + noclearpage + } , + makeindex-setup = { + columns = 3 , + columnsep = 1em + } } \setenotez{mark-cs=\textsu,backref} \DeclareInstance{enotez-list}{addsec}{paragraph}{heading=\addsec{#1}} -% Layout: -\usepackage{libertinehologopatch} - -\cnpkgusecolorscheme{friendly} -\renewcommand*\othersectionlevelsformat[3]{% - \textcolor{main}{#3\autodot}\enskip} -\renewcommand*\partformat{% - \textcolor{main}{\partname~\thepart\autodot}} -\usepackage{fnpct} -\AdaptNote\endnote\multendnote -\usepackage{embrac}[2012/06/29] -\ChangeEmph{[}[,.02em]{]}[.055em,-.08em] -\ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em] - -\newcommand*\Default[1]{% - \hfill\llap - {% - \ifblank{#1}% - {(initially~empty)}% - {Default:~\code{#1}}% - }% - \newline -} - -\usepackage[backend=biber,style=alphabetic]{biblatex} -\addbibresource{\jobname.bib} - -% rudimentary solution for a `maintainer' field: -\DeclareFieldFormat{authortype}{\mkbibparens{#1}} -% \DeclareFieldAlias{maintainer}{author} -\DeclareBibliographyAlias{package}{misc} -\renewbibmacro*{author}{% - \ifboolexpr{ - test \ifuseauthor - and - not test {\ifnameundef{author}} - } - {\printnames{author}% - \iffieldundef{authortype} - {} - {\setunit{\space}% - \usebibmacro{authorstrg}}} - {}} - -\usepackage{filecontents} -\begin{filecontents*}{\jobname.bib} -@package{pkg:babel, - title = {babel}, - author = {Johannes Braams}, - date = {2008-07-08}, - version = {3.8m}, - url = {http://mirror.ctan.org/macros/latex/required/babel/base} -} -@package{pkg:endnotes, - title = {endnotes}, - author = {Robin Fairbairns}, - authortype = {current maintainer}, - date = {2003-01-15}, - version = {NA}, - url = {http://mirror.ctan.org/macros/latex/contrib/endnotes} -} -@package{pkg:exsheets, - title = {exsheets}, - author = {Clemens Niederberger}, - date = {2013-04-04}, - version = {0.8a}, - url = {http://mirror.ctan.org/macros/latex/contrib/exsheets} -} -@package{pkg:fnpct, - title = {fnpct}, - author = {Clemens Niederberger}, - date = {2013-02-28}, - version = {0.2j}, - url = {http://mirror.ctan.org/macros/latex/contrib/fnpct} -} -@package{pkg:hyperref, - title = {hyperref}, - author = {Heiko Oberdiek and Sebastian Rahtz}, - date = {2012-11-06}, - version = {6.83m}, - url = {http://mirror.ctan.org/macros/latex/contrib/hyperref} -} -@package{pkg:l3kernel, - title = {l3kernel}, - author = {The \LaTeX3 Team}, - date = {2013-03-14}, - version = {4469}, - url = {http://mirror.ctan.org/macros/latex/contrib/l3kernel} -} -@package{pkg:l3packages, - title = {l3packages}, - author = {The \LaTeX3 Team}, - date = {2013-03-12}, - version = {4467}, - url = {http://mirror.ctan.org/macros/latex/contrib/l3packages} -} -@package{cls:memoir, - title = {memoir}, - author = {Peter Wilson and Lars Madsen}, - date = {2011-03-06}, - version = {3.6j}, - url = {http://mirror.ctan.org/macros/latex/contrib/memoir} -} -@package{pkg:polyglossia, - title = {polyglossia}, - author = {Arthur Reutenauer and Fran\c cois Charette}, - date = {2012-04-29}, - version = {1.2.1}, - url = {http://mirror.ctan.org/macros/xetex/latex/polyglossia} -} -@package{pkg:scrlfile, - title = {scrlfile}, - author = {Markus Kohm}, - date = {2012-06-15}, - version = {3.12}, - url = {http://mirror.ctan.org/macros/latex/contrib/koma-script} -} -@package{pkg:sepfootnotes, - title = {sepfootnotes}, - author = {Eduardo C. Louren\c{c}o de Lima}, - date = {2013-01-17}, - version = {0.2}, - url = {http://mirror.ctan.org/macros/latex/contrib/sepfootnotes} -} -@package{pkg:xpatch, - title = {xpatch}, - author = {Enrico Gregorio}, - date = {2012-10-02}, - version = {0.3}, - url = {http://mirror.ctan.org/macros/latex/contrib/xpatch} -} -\end{filecontents*} - -\usepackage{imakeidx} -\begin{filecontents*}{\jobname.ist} - heading_prefix "{\\bfseries " - heading_suffix "\\hfil}\\nopagebreak\n" - headings_flag 1 - delim_0 "\\dotfill\\hyperpage{" - delim_1 "\\dotfill\\hyperpage{" - delim_2 "\\dotfill\\hyperpage{" - delim_r "}\\textendash\\hyperpage{" - delim_t "}" - suffix_2p "\\nohyperpage{\\,f.}" - suffix_3p "\\nohyperpage{\\,ff.}" -\end{filecontents*} -\indexsetup{othercode=\footnotesize} -\makeindex[options={-s \jobname.ist},intoc,columns=3,columnsep=1em] +\defbibheading{bibliography}{\addsec{References}} \usepackage{kantlipsum} -\usepackage{etoolbox} -\AtBeginEnvironment{beispiel}{\setfnpct{dont-mess-around}} \usepackage{enumitem} -\usepackage{marginnote,ragged2e} -\makeatletter -\providecommand*\sinceversion[1]{% - \@bsphack - \marginnote{% - \footnotesize\sffamily\RaggedRight - \textcolor{black!75}{Introduced in version~#1}}% - \@esphack} -\providecommand*\changedversion[1]{% - \@bsphack - \marginnote{% - \footnotesize\sffamily\RaggedRight - \textcolor{black!75}{Changed in version~#1}}% - \@esphack} -\makeatother +\begin{document} -\robustify\code +\section{Licence and Requirements} +\license -\begin{document} +\enotez\ needs and loads the following packages: +\bnd{l3kernel}~\cite{bnd:l3kernel}, \pkg{xparse}, \pkg{xtemplate} and +\pkg{l3keys2e} from the \bnd{l3packages} bundle~\cite{bnd:l3packages}, +\pkg{xpatch}~\cite{pkg:xpatch}, \pkg{scrlfile} from the \KOMAScript\ +bundle~\cite{bnd:koma-script} and \pkg{translations}~\cite{pkg:translations}. + +\section{Motivation} +\enotez\ is a new implementation of endnotes for \LaTeXe\ since the +\pkg{endnotes} package~\cite{pkg:endnotes} has some deficiencies. Nested +endnotes, for example, are not supported, neither is +\pkg{hyperref}~\cite{pkg:hyperref}. The \pkg{sepfootnotes} +package~\cite{pkg:sepfootnotes} also provides means for endnotes but actually +has a different purpose: to separate input and usage both of footnotes and +endnotes. So it might not be the best solution in every case\footnote{You + have to write the actual notes in the preamble or a separate file and + reference them in the text.}. It also does not allow nested endnotes. + +While \enotez\ worked in tests nicely with the +\cls{memoir}~\cite{cls:memoir} class please keep in mind that +\cls{memoir} provides its own endnote mechanism. + +\enotez\ enables nested endnotes properly and has another mechanism of +customizing the list of endnotes which is easily extendable. One of the main +features of \enotez\ is a split list of endnotes in which the notes are +automatically separated by the sections or chapters they were set in, see +section~\ref{sec:split} for more information. + +As an aside: \enotez\ is nicely compatible with the \pkg{fnpct} +package~\cite{pkg:fnpct}. Version~0.2j or newer of \pkg{fnpct} automatically +detects \enotez\ and adapts the \cs{endnote} command. -\section{Licence and Requirements}\secidx{Licence} -Permission is granted to copy, distribute and/or modify this software under the -terms of the \LaTeX\ Project Public License, version 1.3 or later -(\url{http://www.latex-project.org/lppl.txt}). The package has the status -``maintained.'' - -\enotez needs and loads the following packages: \paket{expl3}~\cite{pkg:l3kernel}, -\paket{xparse}, \paket{xtemplate} and \paket{l3keys2e}~\cite{pkg:l3packages}, -\paket{xpatch}~\cite{pkg:xpatch} and \paket{scrlfile}~\cite{pkg:scrlfile}. -\secidx*{Licence} - -\section{Motivation}\secidx{Motivation} -\enotez is a new implementation of endnotes for \LaTeXe\ since the \paket{endnotes} -package~\cite{pkg:endnotes} has some deficiencies. Nested endnotes, for example, are -not supported, neither is \paket{hyperref}~\cite{pkg:hyperref}. The -\paket{sepfootnotes} package~\cite{pkg:sepfootnotes} also provides means for endnotes -but actually has a different purpose: to separate input and usage both of -footnotes and endnotes. So it might not be the best solution in every -case\footnote{You have to write the actual notes in the preamble or a separate -file and reference them in the text.}. It also does not allow nested endnotes. - -While \enotez worked in tests nicely with the \klasse{memoir}~\cite{cls:memoir} -class please keep in mind that \klasse{memoir} provides its own endnote mechanism. - -\enotez enables nested endnotes properly and has another mechanism of customizing -the list of endnotes which is easily extendable. One of the main features of -\enotez is a split list of endnotes in which the notes are automatically -separated by the sections or chapters they were set in, see section~\ref{sec:split} -for more information. - -As an aside: \enotez is nicely compatible with the \paket{fnpct} package~\cite{pkg:fnpct}. -Version~0.2j or newer of \paket{fnpct} automatically detects \enotez and adapts -the \cmd{endnote} command. -\secidx*{Motivation} -\section{Usage}\secidx{Usage} +\section{Usage} \subsection{Placing the Notes} -The usage is simple: use \cmd{endnote} in the text where you want to place the +The usage is simple: use \cs{endnote} in the text where you want to place the note mark. -\begin{beschreibung} - \Befehl{endnote}[<mark>]{<text>}\newline - Add an endnote in the text. -\end{beschreibung} -\begin{beispiel} - This is some text.\endnote{With an endnote.} -\end{beispiel} -There's not really much more to it. It is possible to add a custom mark by -using the optional argument but that shouldn't be needed too often. \cmd{endnote} -works fine inside tables, minipages, floats and captions\footnote{This has been -tested with the standard classes, \klasse{memoir}, and the \klasse{KOMA-Script} -classes, with and without the \paket*{caption} package. If you're using another -package that redefines \cmd*{caption} or are using another class it might not -work. Before you place a note in a caption you should re-think the idea anyway.}. -Endnotes can also be nested. - -Since this functionality seemed making a pair \cmd{endnotemark}/\cmd{endnotetext} -superfluous they are \emph{not} defined by \enotez. -\begin{beispiel} - This is some text.\endnote{With another endnote.\endnote{This is a - nested\endnote{And another level deeper\ldots} endnote!}} - % uses package `kantlipsum' to produce dummy text: - Of course you can have several paragraphs\endnote{\kant[1-3]} in an endnote. -\end{beispiel} +\begin{commands} + \command{endnote}[\oarg{mark}\marg{text}] + Add an endnote in the text. +\end{commands} +\begin{example} + This is some text.\endnote{With an endnote.} +\end{example} +There's not really much more to it. It is possible to add a custom mark by +using the optional argument but that shouldn't be needed too often. +\cs{endnote} works fine inside tables, minipages, floats and +captions\footnote{This has been tested with the standard classes, + \cls{memoir}, and the \cls{KOMA-Script} classes, with and without the + \pkg*{caption} package. If you're using another package that redefines + \cs*{caption} or are using another class it might not work. Before you + place a note in a caption you should re-think the idea anyway.}. Endnotes +can also be nested. + +Since this functionality seemed making a pair +\cs{endnotemark}/\cs{endnotetext} superfluous they are \emph{not} defined by +\enotez. +\begin{example} + This is some text.\endnote{With another endnote.\endnote{This is a + nested\endnote{And another level deeper\ldots} endnote!}} + % uses package `kantlipsum' to produce dummy text: + Of course you can have several paragraphs\endnote{\kant[1-3]} in an endnote. +\end{example} The marks of the endnotes in the running text are printed through the command -\cmd{enotezwritemark} which defaults to \cmd{textsuperscript}. Its argument -contains the current mark which is preceded by \cmd{enmarkstyle}. Both of these -commands can be redefined of course to adapt to custom settings. This can also -be done using options, see section~\ref{sec:options}. The mark of the endnote -that has been set last is stored in \cmd{theendnote} and in \cmd{@currentlabel}.% -\sinceversion{0.6} +\cs{enotezwritemark} which defaults to \cs*{textsuperscript}. Its argument +contains the current mark which is preceded by \cs{enmarkstyle}. Both of +these commands can be redefined of course to adapt to custom settings. This +can also be done using options, see section~\ref{sec:options}. The mark of +the endnote that has been set last is stored in \cs{theendnote} and in +\verbcode+\@currentlabel+.\sinceversion{0.6} This could be used to define a command which writes a mark: -\begin{beispiel} - \makeatletter - \def\endnotemark{\@ifnextchar[{\@endnotemark}{\@endnotemark[\theendnote]}} - \def\@endnotemark[#1]{\enotezwritemark{\enmarkstyle#1}} - \makeatother - Text\endnotemark -\end{beispiel} -Please not that this definition \emph{does not} step the endnote counter but -either refers to the last number (no optional argument) or uses the one provided -in the optional argument. +\begin{example} + % we cannot use \newcommand -- the command starts with \end... + \makeatletter + \def\endnotemark{\@ifnextchar[{\@endnotemark}{\@endnotemark[\theendnote]}} + \def\@endnotemark[#1]{\enotezwritemark{\enmarkstyle#1}} + \makeatother + Text\endnotemark +\end{example} +Please note that this definition \emph{does not} step the endnote counter but +either refers to the last number (no optional argument) or uses the one +provided in the optional argument. \makeatletter -\def\endnotemark{\@ifnextchar[{\@endnotemark}{\@endnotemark[\theendnote]}}% -\def\@endnotemark[#1]{\enotezwritemark{\enmarkstyle#1}}% +\def\endnotemark{\@ifnextchar[{\@endnotemark}{\@endnotemark[\theendnote]}} +\def\@endnotemark[#1]{\enotezwritemark{\enmarkstyle#1}} \makeatother Endnotes can also be labelled and later be referred to: -\begin{beispiel} - The next endnote\endnote{This endnote gets a label.}\label{en:test} - has the number~\ref{en:test}. We can use this with the previous definition - of \string\endnotemark\endnotemark[\ref{en:test}]. -\end{beispiel} +\begin{example} + The next endnote\endnote{This endnote gets a label.}\label{en:test} has + the number~\ref{en:test}. We can use this with the previous definition + of \cs{endnotemark}\endnotemark[\ref{en:test}]. +\end{example} \subsection{Printing the Notes} -The notes are printed by using the command \cmd{printendnotes}. -\begin{beschreibung} - \Befehl{printendnotes}*[<style>]\newline - Print the list of endnotes. \code{<style>} is one of the instances explained - in section~\ref{ssec:customizing_the_list}. -\end{beschreibung} -If used without argument it prints all notes set so far with \cmd{endnote}. The -current list will then be cleared. All endnotes set after it are stored again -for the next usage of \cmd{printendnotes}. The starred version will print -\emph{all} endnotes but shouldn't be used more than once if you have nested -endnotes. - -It may take several compilation runs until all notes are printed correctly. In -a first run they are written to the \code{aux} file. In the second run they are -available to \cmd{printendnotes}. If you have nested endnotes they will be written -to the \code{aux} file the first time they're printed with \cmd{printendnotes} -which means you might have to compile your file once more. If you change any of -the endnotes or add another one you again will need at least two runs, maybe more. -\enotez tries to warn you in these cases by invoking the warning -\achtung{\code{Endnotes may have changed. Rerun to get them right.}} +The notes are printed by using the command \cs{printendnotes}. +\begin{commands} + \command{printendnotes}[\sarg\oarg{style}] + Print the list of endnotes. \meta{style} is one of the instances + explained in section~\ref{sec:customizing_the_list}. +\end{commands} +If used without argument it prints all notes set so far with +\cs{endnote}. The current list will then be cleared. All endnotes set after +it are stored again for the next usage of \cs{printendnotes}. The starred +version will print \emph{all} endnotes but shouldn't be used more than once if +you have nested endnotes. + +It may take several compilation runs until all notes are printed correctly. +In a first run they are written to the \code{aux} file. In the second run +they are available to \cs{printendnotes}. If you have nested endnotes they +will be written to the \code{aux} file the first time they're printed with +\cs{printendnotes} which means you might have to compile your file once more. +If you change any of the endnotes or add another one you again will need at +least two runs, maybe more. \enotez\ tries to warn you in these cases by +invoking the warning +\begin{flushleft} + \ttfamily + Endnotes may have changed. Rerun to get them right. +\end{flushleft} but may not catch all cases. -\enotez provides two commands that allow to set some kinds of preamble and +\enotez\ provides two commands that allow to set some kinds of preamble and postamble to a list, either to every list or only to the next one: -\begin{beschreibung} - \Befehl{AtEveryEndnotesList}{<text>}\newline\sinceversion{0.5}% - inserts \code{<text>} between heading and the actual notes every time - \cmd{printendnotes} is used. - \Befehl{AtNextEndnotesList}{<text>}\newline\sinceversion{0.5}% - inserts \code{<text>} between heading and the actual notes the next time - \cmd{printendnotes} is used. This overwrites a possible preamble set with - \cmd{AtEveryEndnotesList} for this instance of \cmd{printendnotes}. - \Befehl{AfterEveryEndnotesList}{<text>}\newline\sinceversion{0.5}% - inserts \code{<text>} after the notes list every time \cmd{printendnotes} is - used. - \Befehl{AfterNextEndnotesList}{<text>}\newline\sinceversion{0.5}% - inserts \code{<text>} after the notes list the next time \cmd{printendnotes} - is used. This overwrites a possible postamble set with - \cmd{AfterEveryEndnotesList} for this instance of \cmd{printendnotes}. -\end{beschreibung} -If something is inserted with one of these commands the inserted \code{<text>} -will be followed by a \cmd{par} and a vertical skip for the preamble. The postambles -follow a \cmd{par} and a vertical skip. The skips can be set using an option, -see section~\ref{sec:options}. -\secidx*{Usage} +\begin{commands} + \command{AtEveryEndnotesList}[\marg{text}] + \sinceversion{0.5}inserts \meta{text} between heading and the actual notes + every time \cs{printendnotes} is used. + \command{AtNextEndnotesList}[\marg{text}] + \sinceversion{0.5} inserts \meta{text} between heading and the actual + notes the next time \cs{printendnotes} is used. This overwrites a + possible preamble set with \cs{AtEveryEndnotesList} for this instance of + \cs{printendnotes}. + \command{AfterEveryEndnotesList}[\marg{text}] + \sinceversion{0.5} inserts \meta{text} after the notes list every time + \cs{printendnotes} is used. + \command{AfterNextEndnotesList}[\marg{text}] + \sinceversion{0.5} inserts \meta{text} after the notes list the next time + \cs{printendnotes} is used. This overwrites a possible postamble set with + \cs{AfterEveryEndnotesList} for this instance of \cs{printendnotes}. +\end{commands} +If something is inserted with one of these commands the inserted \meta{text} +will be followed by a \cs*{par} and a vertical skip for the preamble. The +postambles follow a \cs*{par} and a vertical skip. The skips can be set using +an option, see section~\ref{sec:options}. -\section{Options}\label{sec:options}\secidx{Options} +\section{Options}\label{sec:options} \subsection{Package Options} -\enotez has a few package options which should be pretty self-explanatory. They -can be set either as package options with \verb=\usepackage[<options>]{enotez}= -or with the setup command. -\begin{beschreibung} - \Befehl{setenotez}{<options>}\newline - Setup command for setting \enotez' options. - \Option{list-name}{<list name>}\Default{Notes} - The name of the notes list. This name is used for the heading of the list. - \Option{reset}{\default{true}|false}\Default{false} - If set to \code{true} the notes numbers will start from 1 again after - \cmd{printendnotes} has been invoked. - \Option{counter-format}{arabic|alph|Alph|roman|Roman}\Default{arabic} - Change the format of the endnote counter. - \Option{mark-format}{<code>}\Default{} - Redefine \cmd{enmarkstyle} to execute \code{<code>}. This command is placed - directly before the endnote mark in the text. - \Option{mark-cs}{<command>}\Default{\cmd{textsuperscript}} - Lets \cmd{enotezwritemark} to be equal to \code{<command>}. This command is - used to typeset the endnote marks in the text and should take one argument. - \Option{backref}{\default{true}|false}\Default{false} - \sinceversion{0.7}If set to \code{true} and \paket{hyperref} has been loaded - backlinks from the notes in the list to the marks in the text are added. - \Option{totoc}{section|chapter|false}\Default{false} - Add an entry to the table of contents. - \Option{list-heading}{<sectioning command including argument>}\newline - You can use this option to manually set the list heading command, \textit{e.g.}, - \key{list-heading}{\cmd{chapter}{\#1}} for a numbered heading. The default - depends upon if the class you're using provides \cmd{chapter} or not. It - either uses \cmd{chapter}* or \cmd{section}*. You can see that you have to - refer to the actual heading with \code{\#1}. - \Option{list-style}{<style>}\Default{plain} - Sets the default list style, see section \ref{ssec:customizing_the_list} for - details. - \Option{list-preamble-skip}{<skip>}\Default{\cmd{medskipamount}}\sinceversion{0.5}% - Sets the vertical skip (a rubber length) that is inserted if a list preamble - is inserted by using either \cmd{AtNextEndnotesList} or \cmd{AtEveryEndnotesList}. - It's default is set equal to \cmd{medskipamount}. - \Option{list-postamble-skip}{<skip>}\Default{\cmd{medskipamount}}\sinceversion{0.5}% - Sets the vertical skip (a rubber length) that is inserted if a list postamble - is inserted by using either \cmd{AfterNextEndnotesList} or \cmd{AfterEveryEndnotesList}. - It's default is set equal to \cmd{medskipamount}. -\end{beschreibung} - -\subsection{Customizing the List}\label{ssec:customizing_the_list} -The list is typeset with \paket{xtemplate}'s possibilities. \enotez declares -the object \code{enotez-list} and two templates for it, the template \code{paragraph} -and the template \code{list}. +\enotez\ has a few package options which should be pretty self-explanatory. +They can be set either as package options with +\cs*{usepackage}\oarg{options}\Marg{enotez} or with the setup command. +\begin{commands} + \command{setenotez}[\marg{options}] + Setup command for setting \enotez' options. +\end{commands} +\begin{options} + \keyval{list-name}{list name}\Default{Notes} + The name of the notes list. This name is used for the heading of the + list. + \keybool{reset}\Default{false} + If set to \code{true} the notes numbers will start from 1 again after + \cs{printendnotes} has been invoked. + \keychoice{counter-format}{arabic,alph,Alph,roman,Roman,symbols}\Default{arabic} + Change the format of the endnote counter. Please be aware that there are + only 26 alphabetic counter symbols (options \code{alph} and \code{Alph} + and \emph{only 9} symbols (option \code{symbols}). + \keyval{mark-format}{code}\Default + Redefine \cs{enmarkstyle} to execute \meta{code}. This command is placed + directly before the endnote mark in the text. + \keyval{mark-cs}{command}\Default{\cs*{textsuperscript}} + Lets \cs{enotezwritemark} to be equal to \meta{command}. This command + is used to typeset the endnote marks in the text and should take one + argument. + \keybool{backref}\Default{false}\label{key:backref} + \sinceversion{0.7}If set to \code{true} and \pkg{hyperref} has been + loaded backlinks from the notes in the list to the marks in the text are + added. + \keychoice{totoc}{section,chapter,false}\Default{false}\label{key:totoc} + Add an entry to the table of contents. + \keyval{list-heading}{sectioning command including argument} + You can use this option to manually set the list heading command, \eg, + \keyis{list-heading}{\cs{chapter}\Marg{\#1}} for a numbered heading. The + default depends upon if the class you're using provides \cs*{chapter} or + not. It either uses \cs*{chapter}\sarg\ or \cs*{section}\sarg. You can + see that you have to refer to the actual heading with \code{\#1}. + \keyval{list-style}{style}\Default{plain} + Sets the default list style, see section~\ref{sec:customizing_the_list} + for details. + \keyval{list-preamble-skip}{skip}\Default{\cs*{medskipamount}} + \sinceversion{0.5}Sets the vertical skip (a rubber length) that is + inserted if a list preamble is inserted by using either + \cs{AtNextEndnotesList} or \cs{AtEveryEndnotesList}. It's default is set + equal to \cs*{medskipamount}. + \keyval{list-postamble-skip}{skip}\Default{\cs*{medskipamount}} + \sinceversion{0.5}Sets the vertical skip (a rubber length) that is + inserted if a list postamble is inserted by using either + \cs{AfterNextEndnotesList} or \cs{AfterEveryEndnotesList}. It's default + is set equal to \cs*{medskipamount}. +\end{options} + +\subsection{Customizing the List}\label{sec:customizing_the_list} +The list is typeset with \pkg{xtemplate}'s possibilities. \enotez\ declares +the object \code{enotez-list} and two templates for it, the template +\code{paragraph} and the template \code{list}. \subsubsection{The \code{paragraph} Template} The \code{paragraph} template's interface is defined as follows: -\begin{beispiel}[code only] - \DeclareTemplateInterface{enotez-list}{paragraph}{1} - { - % parameter : type = default - heading : function 1 = \section*{#1} , - format : tokenlist = \footnotesize , - number : function 1 = \enmark{#1} , - number-format : tokenlist = \normalfont , - notes-sep : length = .5\baselineskip , - } -\end{beispiel} +\begin{sourcecode} + \DeclareTemplateInterface{enotez-list}{paragraph}{1} + { + % parameter : type = default + heading : function 1 = \section*{#1} , + format : tokenlist = \footnotesize , + number : function 1 = \enmark{#1} , + number-format : tokenlist = \normalfont , + notes-sep : length = .5\baselineskip , + } +\end{sourcecode} The parameters functions are these: \begin{description}[style=nextline] - \item[\code{heading}] The command with which the heading is typeset. - \item[\code{format}] The format of the whole list. - \item[\code{number}] The command that is used to typeset the numbers of the - notes. The command \cmd{enmark} is explained soon. - \item[\code{numbers-format}] The format of the numbers. - \item[\code{notes-sep}] Additional space between the notes. + \item[\code{heading}] The command with which the heading is typeset. + \item[\code{format}] The format of the whole list. + \item[\code{number}] The command that is used to typeset the numbers of the + notes. The command \cs{enmark} is explained soon. + \item[\code{numbers-format}] The format of the numbers. + \item[\code{notes-sep}] Additional space between the notes. \end{description} -\enotez uses this template to define the instance \code{plain}: -\begin{beispiel}[code only] - \DeclareInstance{enotez-list}{plain}{paragraph}{} -\end{beispiel} +\enotez\ uses this template to define the instance \code{plain}: +\begin{sourcecode} + \DeclareInstance{enotez-list}{plain}{paragraph}{} +\end{sourcecode} This is the default style of the list. You can easily define your own instances, though: -\begin{beispiel}[code only] - \DeclareInstance{enotez-list}{custom}{paragraph} - { - heading = \chapter*{#1} , - notes-sep = \baselineskip , - format = \normalfont , - number = \textsuperscript{#1} - } -\end{beispiel} +\begin{sourcecode} + \DeclareInstance{enotez-list}{custom}{paragraph} + { + heading = \chapter*{#1} , + notes-sep = \baselineskip , + format = \normalfont , + number = \textsuperscript{#1} + } +\end{sourcecode} This would use a chapter heading for the title, separate the notes with -\verb=\baselineskip= and typeset them with \verb=\normalfont=. The numbers would -be typeset with \verb=\textsuperscript=. You could now use it like this: -\begin{beispiel}[code only] - \printendnotes[custom] -\end{beispiel} - -If you wanted superscripted numbers, you could also redefine \cmd{enmark}. -\begin{beschreibung} - \Befehl{enmark}\newline - is defined like this: \verb=\newcommand*\enmark[1]{#1.}= -\end{beschreibung} +\cs*{baselineskip} and typeset them with \cs*{normalfont}. The numbers would +be typeset with \cs*{textsuperscript}. You could now use it like this: +\begin{sourcecode} + \printendnotes[custom] +\end{sourcecode} + +If you wanted superscripted numbers, you could also redefine \cs{enmark}. +\begin{commands} + \command{enmark} + this command is initially defined like this: + \verbcode=\newcommand*\enmark[1]{#1.}= +\end{commands} \subsubsection{The \code{list} Template} The \code{list} template's interface is defined as follows: -\begin{beispiel}[code only] - \DeclareTemplateInterface{enotez-list}{list}{1} - { - % parameter : type = default - heading : function 1 = \section*{#1} , - format : tokenlist = \footnotesize , - number : function 1 = \enmark{#1} , - number-format : tokenlist = \normalfont , - list-type : tokenlist = description , - } -\end{beispiel} -This template uses a list to typeset the notes. As you can see the default list -is a \code{description} list. - -\enotez defines two instances of this template: -\begin{beispiel}[code only] - \DeclareInstance{enotez-list}{description}{list}{} - \DeclareInstance{enotez-list}{itemize}{list}{list-type = itemize} -\end{beispiel} -They're available through \cmd{printendnotes}[description] and -\cmd{printendnotes}[itemize], respectively. +\begin{sourcecode} + \DeclareTemplateInterface{enotez-list}{list}{1} + { + % parameter : type = default + heading : function 1 = \section*{#1} , + format : tokenlist = \footnotesize , + number : function 1 = \enmark{#1} , + number-format : tokenlist = \normalfont , + list-type : tokenlist = description , + } +\end{sourcecode} +This template uses a list to typeset the notes. As you can see the default +list is a \code{description} list. + +\enotez\ defines two instances of this template: +\begin{sourcecode} + \DeclareInstance{enotez-list}{description}{list}{} + \DeclareInstance{enotez-list}{itemize}{list}{list-type = itemize} +\end{sourcecode} +They're available through \cs{printendnotes}\Oarg{description} and +\cs{printendnotes}\Oarg{itemize}, respectively. Again you can define your own instances using whatever list you want, possibly -one defined with the power of \paket{enumitem}. +one defined with the power of \pkg{enumitem}. \section{Collect Notes Section-wise and Print List Stepwise}\label{sec:split} -\emph{This feature is experimental and surely has some limitations. Please let -me know if something doesn't work as expected}. +\emph{This feature is experimental and surely has some limitations. Please + let me know if something doesn't work as expected}. -Not to be misunderstood: you can use \cmd{printendnotes} as often as you like, -possibly after each section. That is \emph{not} what is meant here. Let's -suppose you are writing a book and have many endnotes in many chapters. It +Not to be misunderstood: you can use \cs{printendnotes} as often as you like, +possibly after each section. That is \emph{not} what is meant here. Let's +suppose you are writing a book and have many endnotes in many chapters. It would be nice if the list of endnotes at the end of the book could be split -into parts for each chapter. This section describes how you can achieve that with -\enotez. +into parts for each chapter. This section describes how you can achieve that +with \enotez. -First of all \enotez will rely on the fact that you use \cmd{printendnotes} -only \emph{once}! If you call it more times nobody knows what will happen\ldots - -You'll need to tell \enotez that you want to split the notes into groups. -\begin{beschreibung} - \Option{split}{section|chapter|false}\Default{false} - Enable the automatic splitting. - \Option{split-sectioning}{<csname>}\Default{} - \emph{This option is deprecated and may be dropped in future versions!} - The command that is used to display the titles between the splits. It needs - to be a command that takes one argument and should be entered without the - leading backslash. If the option is not used \enotez will choose - \code{subsection*} for \key*{split}{section} and \code{section*} for - \key*{split}{chapter}. - \Option{split-heading}{<sectioning command including argument>}\newline - \sinceversion{0.3}The command that is used to display the titles between the - splits. It is entered with argument and the actual title is referred to with - \code{\#1}, \textit{e.g.}, \key{split-heading}{\cmd{subsection}*{\#1}}. If - the option is not used \enotez will choose \cmd{subsection}*{\#1} for - \key*{split}{section} and \cmd{section}*{\#1} for \key*{split}{chapter}. - \Option{split-title}{<tokenlist>}\Default{Notes for <name> <ref>} - The title that will be inserted between the splits. \code{<name>} is replaced - by \code{section} for \key*{split}{section} and \code{chapter} for - \key*{split}{chapter}. \code{<ref>} is replaced by the corresponding - \cmd*{thesection} or \cmd*{thechapter}. -\end{beschreibung} -Set the \key{split} option: -\begin{beispiel}[code only] - \setenotez{split=section} -\end{beispiel} -Well -- that's it, basically. You'll have to be careful, though: -If you're having nested endnotes the nested ones appear first in the ``Notes'' -section (or chapter, respectively). In this case you should have a numbered -section title for the notes, presumably in the appendix. You'll need to create -a new list style: -\begin{beispiel}[code only] - % preamble: - \usepackage{enotez} - \DeclareInstance{enotez-list}{section}{paragraph}{heading=\section{#1}} - \setenotez{list-style=section,split=section} - % document: - \appendix - \printendnotes -\end{beispiel} - -Please beware that the option \key{reset} also impacts here: the numbing will -be reset for each section or chapter, depending on the choice you made for -\key{split}. - -\sinceversion{0.7}There are two -- or three, actually -- additional commands: -\begin{beschreibung} - \Befehl{AtEveryListSplit}{<code>}\newline - Inserts \code{<code>} before each sub-heading in a splitted list. - \Befehl{AfterEveryListSplit}{<code>}\newline - Inserts \code{<code>} after each sub-heading in a splitted list. - \Befehl{EnotezCurrentSplitTitle}\newline - Holds the current sub-heading in a splitted list and may be used in - \cmd{AtEveryListSplit} and \cmd{AfterEveryListSplit}. -\end{beschreibung} - - -\enotez comes with an example document for a split list which you should -find in the same folder as this documentation. -\secidx*{Options} - -\section{Language Support}\secidx{Language Support} -\enotez uses the \paket*{translations} package (part of the -\paket{exsheets}~\cite{pkg:exsheets} bundle) to translate language dependent -strings. The advantage of this is that language settings with -\paket{babel}~\cite{pkg:babel} or \paket{polyglossia}~\cite{pkg:polyglossia} -are detected automatically. However, the available translations are somewhat -limited due to my limited language knowledge. If you find missing or wrong -translations you can try to add or correct them by adding the corresponding -versions of the following lines to your preamble: -\begin{beispiel}[code only] - \DeclareTranslation{English}{enotez-title}{Notes} - % ``<name> <ref>'' is a placeholder for e.g. ``section 1'': - \DeclareTranslation{English}{enotez-splitted-title}{Notes for <name> <ref>} - \DeclareTranslation{English}{enotez-section}{section} - \DeclareTranslation{English}{enotez-chapter}{chapter} -\end{beispiel} +First of all \enotez\ will rely on the fact that you use \cs{printendnotes} +only \emph{once}! If you call it more times nobody knows what will +happen\ldots + +You'll need to tell \enotez\ that you want to split the notes into groups. +\begin{options} + \keychoice{split}{section,chapter,false}\Default{false} + Enable the automatic splitting. + \keyval{split-sectioning}{csname}\Default + \emph{This option is deprecated and may be dropped in future versions!} + The command that is used to display the titles between the splits. It + needs to be a command that takes one argument and should be entered + without the leading backslash. If the option is not used \enotez\ will + choose \code{subsection*} for \keyis{split}{section} and \code{section*} + for \keyis{split}{chapter}. + \keyval{split-heading}{sectioning command including argument} + \sinceversion{0.3}The command that is used to display the titles between + the splits. It is entered with argument and the actual title is referred + to with \code{\#1}, \eg, + \keyis{split-heading}{\cs*{subsection}\sarg\Marg{\#1}}. If the option is + not used \enotez\ will choose \cs*{subsection}\sarg\Marg{\#1} for + \keyis{split}{section} and \cs*{section}\sarg\Marg{\#1} for + \keyis{split}{chapter}. + \keyval{split-title}{tokenlist}\Default{Notes for <name> <ref>} + The title that will be inserted between the splits. \code{<name>} is + replaced by \code{section} for \keyis{split}{section} and \code{chapter} + for \keyis{split}{chapter}. \code{<ref>} is replaced by the corresponding + \cs*{thesection} or \cs*{thechapter}. +\end{options} +Set the \option{split} option: +\begin{sourcecode} + \setenotez{split=section} +\end{sourcecode} +Well -- that's it, basically. You'll have to be careful, though: if you're +having nested endnotes the nested ones appear first in the ``Notes'' section +(or chapter, respectively). In this case you should have a numbered section +title for the notes, presumably in the appendix. You'll need to create a new +list style: +\begin{sourcecode} + % preamble: + \usepackage{enotez} + \DeclareInstance{enotez-list}{section}{paragraph}{heading=\section{#1}} + \setenotez{list-style=section,split=section} + % document: + \appendix + \printendnotes +\end{sourcecode} + +Please beware that the option \option{reset} also impacts here: the numbing +will be reset for each section or chapter, depending on the choice you made +for \option{split}. + +There are two\sinceversion{0.7} -- or three, actually -- additional commands: +\begin{commands} + \command{AtEveryListSplit}[\marg{code}] + Inserts \meta{code} before each sub-heading in a splitted list. + \command{AfterEveryListSplit}[\marg{code}] + Inserts \meta{code} after each sub-heading in a splitted list. + \command{EnotezCurrentSplitTitle} + Holds the current sub-heading in a splitted list and may be used in + \cs{AtEveryListSplit} and \cs{AfterEveryListSplit}. +\end{commands} + +\enotez\ comes with an example document for a split list which you should find +in the same folder as this documentation. + +\section{Language Support} +\enotez\ uses the \pkg{translations} package~\cite{pkg:translations} to +translate language dependent strings. The advantage of this is that language +settings with \pkg{babel}~\cite{pkg:babel} or +\pkg{polyglossia}~\cite{pkg:polyglossia} are detected automatically. However, +the available translations are somewhat limited due to my limited language +knowledge. If you find missing or wrong translations you can try to add or +correct them by adding the corresponding versions of the following lines to +your preamble: +\begin{sourcecode} + \DeclareTranslation{English}{enotez-title}{Notes} + % ``<name> <ref>'' is a placeholder for e.g. ``section 1'': + \DeclareTranslation{English}{enotez-splitted-title}{Notes for <name> <ref>} + \DeclareTranslation{English}{enotez-section}{section} + \DeclareTranslation{English}{enotez-chapter}{chapter} +\end{sourcecode} If you like you can also drop me an email at \href{mailto:contact@mychemistry.eu}{contact@mychemistry.eu} and I'll add the correct translations to \enotez. -\secidx*{Language Support} -\section{hyperref Support}\secidx{\paket*{hyperref} Support}[hyperref Support] -If \paket{hyperref} is loaded and you are using the option \key{totoc} (see -p~\pageref{key:totoc}) the list title is linked via a \verb=\phantomsection=. - -If \paket{hyperref} is used with \code{hyperfootnotes} set to \code{true} the -endnote marks are linked to the respective entries in the list\changedversion{0.7}. -If you also set \enotez' option \key{backref} (see p~\pageref{key:backref}) the -notes in the list are themselves linked to the marks in the text. -\secidx*{\paket*{hyperref} Support}[hyperref Support] +\section{hyperref Support} +If \pkg{hyperref} is loaded and you are using the option \key{totoc} (see +p~\pageref{key:totoc}) the list title is linked via a \cs*{phantomsection}. + +If \pkg{hyperref} is used with \code{hyperfootnotes} set to \code{true} the +endnote marks are linked to the respective entries in the +list\changedversion{0.7}. If you also set \enotez' option \option{backref} +(see p~\pageref{key:backref}) the notes in the list are themselves linked to +the marks in the text. \AtNextEndnotesList{This is an example of a preamble to the list set with -\cmd{AtNextEndnotesList}.} -\AfterEveryEndnotesList{\noindent This is an example of a postamble to the list -set with \cmd{AfterEveryEndnotesList}. Note that it would have started with a -paragraph indent which was prevented here by using \cmd{noindent}.} +\cs{AtNextEndnotesList}.} +\AfterEveryEndnotesList{\noindent This is an example of a postamble to the + list set with \cs{AfterEveryEndnotesList}. Note that it would have started + with a paragraph indent which was prevented here by using \cs*{noindent}.} \printendnotes[addsec] -\printbibliography - -\indexprologue{\noindent Section titles are indicated \textbf{bold}, packages -\textsf{sans serif}, commands \code{\textbackslash\textcolor{code}{brown}} - and options \textcolor{key}{\code{yellow}}.\par\bigskip} +\end{document} -\printindex -\end{document} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/enotez.doc.tlpobj new/tlpkg/tlpobj/enotez.doc.tlpobj --- old/tlpkg/tlpobj/enotez.doc.tlpobj 2013-05-02 03:36:41.000000000 +0200 +++ new/tlpkg/tlpobj/enotez.doc.tlpobj 2014-02-06 03:22:40.000000000 +0100 @@ -1,9 +1,9 @@ name enotez.doc category Package -revision 30200 +revision 32873 shortdesc doc files of enotez relocated 1 -docfiles size=118 +docfiles size=119 RELOC/doc/latex/enotez/README RELOC/doc/latex/enotez/enotez_en.pdf RELOC/doc/latex/enotez/enotez_en.tex ++++++ enotez.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/enotez/enotez.sty new/tex/latex/enotez/enotez.sty --- old/tex/latex/enotez/enotez.sty 2013-05-02 01:35:46.000000000 +0200 +++ new/tex/latex/enotez/enotez.sty 2014-02-06 00:33:31.000000000 +0100 @@ -8,7 +8,7 @@ % Web: https://bitbucket.org/cgnieder/enotez/ % E-Mail: contact@mychemistry.eu % -------------------------------------------------------------------------- -% Copyright 2011-2013 Clemens Niederberger +% Copyright 2012-2014 Clemens Niederberger % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 @@ -31,8 +31,8 @@ \RequirePackage{ expl3 , xparse , l3keys2e , xtemplate , etoolbox , xpatch , scrlfile } \ProvidesExplPackage {enotez} - {2013/05/01} - {0.7} + {2014/02/04} + {0.7c} {Endnotes for LaTeX2e} % -------------------------------------------------------------------------- @@ -71,12 +71,18 @@ \cs_new:Npn \enotez_option_deprecated:nn #1#2 { \msg_warning:nnnnn { enotez } { deprecated } { option } { #1 } { #2 } } -\cs_new:Npn \acro_command_deprecated:NN #1#2 +\cs_new:Npn \enotez_command_deprecated:NN #1#2 { \msg_warning:nnnnn { enotez } { deprecated } { command } { \token_to_str:N #1 } { \token_to_str:N #2 } } + +% -------------------------------------------------------------------------- +% variants of kernel functions +\cs_generate_variant:Nn \tl_if_eq:nnTF { Vn , nx } +\cs_generate_variant:Nn \tl_if_eq:nnT { xx } + % -------------------------------------------------------------------------- % variables: \bool_new:N \l__enotez_print_note_bool @@ -142,6 +148,27 @@ \cs_new_eq:NN \enotez_counter_format:n \int_to_arabic:n \cs_generate_variant:Nn \enotez_counter_format:n { V } +\cs_new_eq:NN \__enotez_int_to_arabic:n \int_to_arabic:n +\cs_new_eq:NN \__enotez_int_to_roman:n \int_to_roman:n +\cs_new_eq:NN \__enotez_int_to_Roman:n \int_to_Roman:n +\cs_new_eq:NN \__enotez_int_to_alph:n \int_to_alph:n +\cs_new_eq:NN \__enotez_int_to_Alph:n \int_to_Alph:n +\cs_new:Npn \__enotez_int_to_symbols:n #1 + { + \int_to_symbols:nnn { #1 } { 9 } + { + { 1 } { \mode_if_math:TF { * } { \textasteriskcentered } } + { 2 } { \mode_if_math:TF { \dagger } { \textdagger } } + { 3 } { \mode_if_math:TF { \ddagger } { \textdaggerdbl } } + { 4 } { \mode_if_math:TF { \mathsection } { \textsection } } + { 5 } { \mode_if_math:TF { \mathparagraph } { \textparagraph } } + { 6 } { \mode_if_math:TF { \| } { \textbardbl } } + { 7 } { \mode_if_math:TF { ** } { \textasteriskcentered\textasteriskcentered } } + { 8 } { \mode_if_math:TF { \dagger\dagger } { \textdagger\textdagger } } + { 9 } { \mode_if_math:TF { \ddagger\ddagger } { \textdaggerdbl\textdaggerdbl } } + } + } + \keys_define:nn { enotez } { backref .bool_set:N = \l__enotez_hyperbackref_bool , @@ -150,9 +177,10 @@ reset .bool_set:N = \l__enotez_reset_bool , % TODO: add symbols and other possible formats, use cntformats? counter-format .choice_code:n = - \cs_set_eq:Nc \enotez_counter_format:n { int_to_ \l_keys_choice_tl :n } , + \cs_set_eq:Nc \enotez_counter_format:n + { __enotez_int_to_ \l_keys_choice_tl :n } , counter-format .generate_choices:n = - { arabic , alph , Alph , roman , Roman } , + { arabic , alph , Alph , roman , Roman , symbols } , mark-format .code:n = \cs_set:Npn \enmarkstyle { #1 } , mark-cs .code:n = \cs_set:Npn \enotezwritemark { #1 } , totoc .choice_code:n = @@ -173,7 +201,7 @@ split .generate_choices:n = { section , chapter , false } , split-sectioning .code:n = \enotez_option_deprecated:nn { split-sectioning } { split-heading } - \l__enotez_splitted_list_sectioning_tl , + \cs_set:Npn \enotezsplitlistheading ##1 { #1 } , split-heading .code:n = \cs_set:Npn \enotezsplitlistheading ##1 { #1 } , split-title .tl_set:N = \l__enotez_splitted_title_tl , @@ -181,8 +209,6 @@ list-preamble-skip .skip_set:N = \l__enotez_list_preamble_skip , list-postamble-skip .skip_set:N = \l__enotez_list_postamble_skip } -\cs_generate_variant:Nn \tl_if_eq:nnTF { Vn , nx } -\cs_generate_variant:Nn \tl_if_eq:nnT { xx } % -------------------------------------------------------------------------- % typeset the actual mark: @@ -203,7 +229,13 @@ } % the internal endnote: -\cs_new:Npn \enotez_endnote:nn #1#2 +\cs_new_protected:Npn \enotez_endnote:nn #1#2 + { + \enotez_endnote_mark:n { #1 } + \enotez_endnote_text:nn { #1 } { #2 } + } + +\cs_new_protected:Npn \enotez_endnote_mark:n #1 { \int_gincr:N \g__enotez_endnote_id_int \quark_if_no_value:nTF { #1 } @@ -215,9 +247,25 @@ \enotez_write_mark:nn { \int_use:N \g__enotez_endnote_id_int } { \enotez_counter_format:V \g__enotez_endnote_mark_int } - \tl_set:Nn \l__enotez_tmpa_tl { chapter } + } + { + \cs_gset:cpx { @currentlabel } { #1 } + \cs_gset_eq:NN \theendnote \@currentlabel + \enotez_write_mark:nn { \int_use:N \g__enotez_endnote_id_int } { #1 } + } + } + +\cs_new_protected:Npn \enotez_endnote_text:nn #1#2 + { + \tl_set:Nn \l__enotez_tmpa_tl { chapter } + \quark_if_no_value:nTF { #1 } + { \bool_if:nTF - { \l__enotez_split_bool && \tl_if_eq_p:NN \l__enotez_split_tl \l__enotez_tmpa_tl } + { + \l__enotez_split_bool + && + \tl_if_eq_p:NN \l__enotez_split_tl \l__enotez_tmpa_tl + } { \enotez_save_note:xxxxnn { \int_use:N \g__enotez_endnote_id_int } @@ -238,12 +286,12 @@ } } { - \cs_gset:cpx { @currentlabel } { #1 } - \cs_gset_eq:NN \theendnote \@currentlabel - \enotez_write_mark:nn { \int_use:N \g__enotez_endnote_id_int } { #1 } - \tl_set:Nn \l__enotez_tmpa_tl { chapter } \bool_if:nTF - { \l__enotez_split_bool && \tl_if_eq_p:NN \l__enotez_split_tl \l__enotez_tmpa_tl } + { + \l__enotez_split_bool + && + \tl_if_eq_p:NN \l__enotez_split_tl \l__enotez_tmpa_tl + } { \enotez_save_note:xnxxnn { \int_use:N \g__enotez_endnote_id_int } @@ -405,6 +453,26 @@ \cs_new:Npn \enotez_endnote_aux:w [#1]#2 { \enotez_endnote:nn { #1 } { #2 } } +% \cs_new_protected:Npn \endnotemark +% { +% \peek_meaning_ignore_spaces:NTF [ +% { \enotez_endnote_mark_aux:w } +% { \enotez_endnote_mark:n { \q_no_value } } +% } + +% \cs_new:Npn \enotez_endnote_mark_aux:w [#1] +% { \enotez_endnote_mark:n { #1 } } + +% \cs_new_protected:Npn \endnotetext +% { +% \peek_meaning_ignore_spaces:NTF [ +% { \enotez_endnote_text_aux:w } +% { \enotez_endnote_text:nn { \q_no_value } } +% } + +% \cs_new:Npn \enotez_endnote_text_aux:w [#1]#2 +% { \enotez_endnote_text:nn { #1 } { #2 } } + % -------------------------------------------------------------------------- % the list of notes \cs_if_exist:cTF { chapter } @@ -465,6 +533,7 @@ \tl_use:N \c_space_tl } \tl_use:N \l__enotez_endnote_text_tl + \par \group_end: } } @@ -583,7 +652,7 @@ % determine which note's next: \cs_new_protected:Npn \enotez_get_note:nn #1#2 { - \IfBooleanTF { #1 } + \bool_if:nTF { #1 } { \prop_get:NnN \g__enotez_endnote_mark_prop { #2 } \l__enotez_endnote_mark_tl \prop_get:NnN \g__enotez_endnote_text_prop { #2 } \l__enotez_endnote_text_tl @@ -594,15 +663,23 @@ \bool_if:NTF \l__enotez_split_bool { \bool_set_true:N \l__enotez_print_note_bool - \prop_gpop:NnN \g__enotez_endnote_mark_prop { #2 } \l__enotez_endnote_mark_tl - \prop_gpop:NnN \g__enotez_endnote_text_prop { #2 } \l__enotez_endnote_text_tl + \prop_gpop:NnN \g__enotez_endnote_mark_prop + { #2 } + \l__enotez_endnote_mark_tl + \prop_gpop:NnN \g__enotez_endnote_text_prop + { #2 } + \l__enotez_endnote_text_tl } { \int_compare:nTF { \l__enotez_tmpa_tl = \g__enotez_list_printed_int } { \bool_set_true:N \l__enotez_print_note_bool - \prop_gpop:NnN \g__enotez_endnote_mark_prop { #2 } \l__enotez_endnote_mark_tl - \prop_gpop:NnN \g__enotez_endnote_text_prop { #2 } \l__enotez_endnote_text_tl + \prop_gpop:NnN \g__enotez_endnote_mark_prop + { #2 } + \l__enotez_endnote_mark_tl + \prop_gpop:NnN \g__enotez_endnote_text_prop + { #2 } + \l__enotez_endnote_text_tl \prop_gremove:Nn \g__enotez_endnote_split_prop { #2 } } { \bool_set_false:N \l__enotez_print_note_bool } @@ -671,13 +748,13 @@ % internal printendnotes: \cs_new_protected:Npn \enotez_print_endnotes:nn #1#2 { - \IfNoValueTF { #2 } + \tl_if_blank:nTF { #2 } { \UseInstance { enotez-list } { \l__enotez_list_instance_tl } } { \UseInstance { enotez-list } { #2 } } { #1 } \bool_if:NF \l__enotez_split_bool { - \bool_if:NTF \l__enotez_reset_bool + \bool_if:NT \l__enotez_reset_bool { \int_gzero:N \g__enotez_endnote_mark_int } \int_gincr:N \g__enotez_list_printed_int } @@ -686,9 +763,17 @@ % the user command: \NewDocumentCommand \printendnotes { so } { - \bool_if:NTF \l__enotez_split_bool - { \enotez_print_endnotes:nn { \BooleanFalse } { #2 } } - { \enotez_print_endnotes:nn { #1 } { #2 } } + \IfNoValueTF { #2 } + { + \bool_if:NTF \l__enotez_split_bool + { \enotez_print_endnotes:nn { \BooleanFalse } { } } + { \enotez_print_endnotes:nn { #1 } { } } + } + { + \bool_if:NTF \l__enotez_split_bool + { \enotez_print_endnotes:nn { \BooleanFalse } { #2 } } + { \enotez_print_endnotes:nn { #1 } { #2 } } + } } % -------------------------------------------------------------------------- @@ -916,8 +1001,15 @@ - new: \AtEveryListSplit, \AfterEveryListSplit, \EnotezCurrentSplitTitle - new option: `list-heading' +2013/08/03 v0.7a - corrected bug: `reset=true' now works as it should + - added counter-format `symbols' +2013/10/31 v0.7b - corrected bug: \acro_command_deprecated:NN should of course + be \enotez_command_deprecated:NN +2014/02/04 v0.7c - added a missing \par to the `paragraph' template for the + list + % -------------------------------------------------------------------------- % TODO: - add \endnotemark and \endnotetext -- make the headings obey the `totoc' option? \ No newline at end of file +- make the headings obey the `totoc' option? diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/enotez.tlpobj new/tlpkg/tlpobj/enotez.tlpobj --- old/tlpkg/tlpobj/enotez.tlpobj 2013-05-02 03:36:41.000000000 +0200 +++ new/tlpkg/tlpobj/enotez.tlpobj 2014-02-06 03:22:40.000000000 +0100 @@ -1,13 +1,15 @@ name enotez category Package -revision 30200 +revision 32873 shortdesc Support for end-notes. relocated 1 longdesc The package allows nested endnotes, supports hyperref and -longdesc provides means for easy customization of the list of notes. -runfiles size=9 +longdesc provides means for easy customization of the list of notes. The +longdesc package requires the expl3 bundle and packages from the LaTeX 3 +longdesc 'package set'. +runfiles size=10 RELOC/tex/latex/enotez/enotez.sty catalogue-ctan /macros/latex/contrib/enotez -catalogue-date 2013-05-01 21:18:44 +0200 +catalogue-date 2014-02-04 11:06:08 +0100 catalogue-license lppl1.3 -catalogue-version 0.7 +catalogue-version 0.7c ++++++ environ.doc.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/environ/README new/doc/latex/environ/README --- old/doc/latex/environ/README 2013-04-02 00:50:52.000000000 +0200 +++ new/doc/latex/environ/README 2014-05-04 23:43:33.000000000 +0200 @@ -1,6 +1,6 @@ ___________________ The ENVIRON package -v0.3 +v0.2 Provides two things: a new way of defining environments that read their contents before @@ -22,5 +22,6 @@ Will Robertson wspr 81 [at] gmail [dot] com -Copyright 2007-2008, 2013 +Copyright 2007-2014 Distributed under the LaTeX Project Public License +%% ^^A Test that \RenewEnvironment works correctly: Files old/doc/latex/environ/environ.pdf and new/doc/latex/environ/environ.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/environ.doc.tlpobj new/tlpkg/tlpobj/environ.doc.tlpobj --- old/tlpkg/tlpobj/environ.doc.tlpobj 2013-04-02 04:38:34.000000000 +0200 +++ new/tlpkg/tlpobj/environ.doc.tlpobj 2014-05-05 00:20:46.000000000 +0200 @@ -1,8 +1,8 @@ name environ.doc category Package -revision 29600 +revision 33821 shortdesc doc files of environ relocated 1 -docfiles size=37 +docfiles size=40 RELOC/doc/latex/environ/README RELOC/doc/latex/environ/environ.pdf ++++++ environ.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/environ/environ.sty new/tex/latex/environ/environ.sty --- old/tex/latex/environ/environ.sty 2013-04-02 00:50:52.000000000 +0200 +++ new/tex/latex/environ/environ.sty 2014-05-04 23:43:33.000000000 +0200 @@ -11,7 +11,8 @@ %% %% License information appended. %% -\ProvidesPackage{environ}[2013/04/01 v0.3 A new environment syntax] +%% ^^A Test that \RenewEnvironment works correctly: +\ProvidesPackage{environ}[2014/05/04 v0.3 A new way to define environments] \RequirePackage{trimspaces} \def\environbodyname#1{\def\env@BODY{#1}} \environbodyname\BODY @@ -80,11 +81,9 @@ \fi \process@envbody} \def\NewEnviron{% - \let\env@newcommand\newcommand \let\env@newenvironment\newenvironment \env@NewEnviron} \def\RenewEnviron{% - \let\env@newcommand\renewcommand \let\env@newenvironment\renewenvironment \env@NewEnviron} \def\env@NewEnviron#1{% @@ -106,23 +105,29 @@ \@temptokena\expandafter[\env@finalcode]% }} \long\def\env@new#1#2#3[#4]{% + \longdef@c{env@#1@BODY\expandafter}\expandafter{\env@BODY}% \env@newenvironment{#1}{% \expandafter\Collect@Body\csname env@#1@parse\endcsname }{#4}% \longdef@c{env@#1@parse}##1{% \csname env@#1@save@env\endcsname##1\env@nil \csname env@#1@process\endcsname##1\env@nil}% - \expandafter\env@newcommand - \csname env@#1@save@env\endcsname#2{\env@save}% - \expandafter\env@newcommand - \csname env@#1@process\endcsname#2{#3\env@ignore}} -\long\def\env@save#1\env@nil{% - \expandafter\edef\env@BODY{% + \expandafter\let\csname env@#1@save@env\endcsname\relax + \expandafter\let\csname env@#1@process\endcsname\relax + \expandafter\newcommand + \csname env@#1@save@env\endcsname#2{% + \expandafter\expandafter\expandafter + \env@save\csname env@#1@BODY\endcsname}% + \expandafter\newcommand + \csname env@#1@process\endcsname#2{#3\env@ignore}% +} +\long\def\env@save#1#2\env@nil{% + \edef#1{% \unexpanded\expandafter - \expandafter\expandafter{\trim@spaces{#1}}}} + \expandafter\expandafter{\trim@spaces{#2}}}} \long\def\env@ignore#1\env@nil{} %% -%% Copyright (C) 2007-2008, 2013 by Will Robertson <wspr81@gmail.com> +%% Copyright (C) 2007-2014 by Will Robertson <wspr81@gmail.com> %% %% Distributable under the LaTeX Project Public License, %% version 1.3c or higher (your choice). The latest version of diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/environ.tlpobj new/tlpkg/tlpobj/environ.tlpobj --- old/tlpkg/tlpobj/environ.tlpobj 2013-04-02 04:38:35.000000000 +0200 +++ new/tlpkg/tlpobj/environ.tlpobj 2014-05-05 00:20:46.000000000 +0200 @@ -1,6 +1,6 @@ name environ category Package -revision 29600 +revision 33821 shortdesc A new interface for environments in LaTeX. relocated 1 longdesc The package provides the \collect@body command (as in amsmath), @@ -13,6 +13,6 @@ runfiles size=2 RELOC/tex/latex/environ/environ.sty catalogue-ctan /macros/latex/contrib/environ -catalogue-date 2013-04-01 18:04:30 +0200 +catalogue-date 2014-02-26 23:03:13 +0100 catalogue-license lppl catalogue-version 0.3 ++++++ eplain.doc.tar.xz ++++++ ++++ 22189 lines of diff (skipped) ++++++ eplain.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/tex/eplain/btxmac.tex new/texmf-dist/tex/eplain/btxmac.tex --- old/texmf-dist/tex/eplain/btxmac.tex 2013-02-15 01:19:38.000000000 +0100 +++ new/texmf-dist/tex/eplain/btxmac.tex 2013-10-03 19:13:21.000000000 +0200 @@ -1,7 +1,7 @@ %% @texfile{ %% author = "Karl Berry and Oren Patashnik", -%% version = "0.99m", -%% date = "7 February 2013", +%% version = "0.99n", +%% date = "30 September 2013", %% filename = "btxmac.tex", %% address = "tex-eplain@tug.org", %% supported = "yes", @@ -299,7 +299,7 @@ % essentially like \futurelet except that it discards any implicit or % explicit space tokens that intervene before a nonspace is scanned: % -\def\@futurenonspacelet#1{\def\cs{#1}% +\long\def\@futurenonspacelet#1{\def\cs{#1}% \afterassignment\@stepone\let\@nexttoken= }% \begingroup % The grouping here avoids stepping on an outside use of `\\'. @@ -319,7 +319,7 @@ % the brackets don't have a funny category code. % \def\@getoptionalarg#1{% - \let\@optionaltemp = #1% + \let\@optionalusercs = #1% \let\@optionalnext = \relax \@futurenonspacelet\@optionalnext\@bracketcheck }% @@ -329,19 +329,21 @@ % \def\@bracketcheck{% \ifx [\@optionalnext - \expandafter\@@getoptionalarg + \expandafter\@@getoptionalarg % we have an optional arg \else - \let\@optionalarg = \empty - % We can't do the \temp after the \fi, because then the \temp gets - % in the way of reading the optional argument from the input, if - % we do have one. - \expandafter\@optionaltemp + \let\@optionalarg = \empty % no optional arg + \expandafter\@optionalusercs \fi }% % +% Get the next bracketed text. \def\@@getoptionalarg[#1]{% \def\@optionalarg{#1}% - \@optionaltemp + % Ignore spaces after the optional arg, too. + % (We don't actually need to peek ahead, but this is the easiest way + % to ignore the spaces.) + \let\@optdummy=\relax % just in case it has become \outer somehow + \@futurenonspacelet\@optdummy\@optionalusercs }% % % diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/tex/eplain/eplain.aux new/texmf-dist/tex/eplain/eplain.aux --- old/texmf-dist/tex/eplain/eplain.aux 2007-11-27 16:27:45.000000000 +0100 +++ new/texmf-dist/tex/eplain/eplain.aux 2013-10-03 19:13:21.000000000 +0200 @@ -1,4 +1 @@ -% This eplain.aux file is installed for the sake of initex. Running -% initex without this file will produce eplain.fmt which will never -% issue warning messages about undefined labels. - +% This eplain.aux file is installed for the sake of initex. Running\n% initex without this file would produce an eplain.fmt which never\n% issues warning messages about undefined labels.\n \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/tex/eplain/eplain.tex new/texmf-dist/tex/eplain/eplain.tex --- old/texmf-dist/tex/eplain/eplain.tex 2013-02-15 01:19:38.000000000 +0100 +++ new/texmf-dist/tex/eplain/eplain.tex 2013-10-03 19:13:21.000000000 +0200 @@ -1,10 +1,10 @@ %% @texfile{ %% author = "Karl Berry, Steven Smith, Oleg Katsitadze, and others", -%% version = "3.5", -%% date = "Fri Feb 8 09:51:56 PST 2013", +%% version = "3.6", +%% date = "Mon Sep 30 11:39:28 PDT 2013", %% filename = "eplain.tex", %% email = "bug-eplain@tug.org", -%% checksum = "4345 9735 139553", +%% checksum = "4346 9755 139706", %% codetable = "ASCII", %% supported = "yes", %% docstring = "This file defines macros that extend and expand on @@ -400,8 +400,8 @@ \fi %% @texfile{ %% author = "Karl Berry and Oren Patashnik", -%% version = "0.99m", -%% date = "7 February 2013", +%% version = "0.99n", +%% date = "30 September 2013", %% filename = "btxmac.tex", %% address = "tex-eplain@tug.org", %% supported = "yes", @@ -423,7 +423,7 @@ \else \def\@linenumber{\the\inputlineno:\space}% \fi -\def\@futurenonspacelet#1{\def\cs{#1}% +\long\def\@futurenonspacelet#1{\def\cs{#1}% \afterassignment\@stepone\let\@nexttoken= }% \begingroup % The grouping here avoids stepping on an outside use of `\\'. @@ -435,21 +435,22 @@ \else\let\@@next=\@nexttoken\fi \@@next}% \def\@stepthree{\afterassignment\@stepone\let\@@next= }% \def\@getoptionalarg#1{% - \let\@optionaltemp = #1% + \let\@optionalusercs = #1% \let\@optionalnext = \relax \@futurenonspacelet\@optionalnext\@bracketcheck }% \def\@bracketcheck{% \ifx [\@optionalnext - \expandafter\@@getoptionalarg + \expandafter\@@getoptionalarg % we have an optional arg \else - \let\@optionalarg = \empty - \expandafter\@optionaltemp + \let\@optionalarg = \empty % no optional arg + \expandafter\@optionalusercs \fi }% \def\@@getoptionalarg[#1]{% \def\@optionalarg{#1}% - \@optionaltemp + \let\@optdummy=\relax % just in case it has become \outer somehow + \@futurenonspacelet\@optdummy\@optionalusercs }% \def\@nnil{\@nil}% \def\@fornoop#1\@@#2#3{}% @@ -2350,7 +2351,7 @@ \def\eqprint#1{(#1)}% \def\eqsubreftext#1#2{#1.#2}% \let\extraidxcmdsuffixes = \empty -\outer\def\defineindex#1{% +\def\defineindex#1{% \def\@idxprefix{#1}% \expandafter\innernewif\csname if\@idxprefix dx\endcsname \csname \@idxprefix dxtrue\endcsname @@ -4341,5 +4342,5 @@ \def\fmtname{eplain}% \def\eplain{t}% {\edef\plainversion{\fmtversion}% - \xdef\fmtversion{3.5: 8 February 2013 (and plain \plainversion)}% + \xdef\fmtversion{3.6: 30 September 2013 (and plain \plainversion)}% }% diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/eplain.tlpobj new/tlpkg/tlpobj/eplain.tlpobj --- old/tlpkg/tlpobj/eplain.tlpobj 2013-04-16 20:02:36.000000000 +0200 +++ new/tlpkg/tlpobj/eplain.tlpobj 2014-05-05 00:20:49.000000000 +0200 @@ -1,6 +1,6 @@ name eplain category Package -revision 29951 +revision 33826 shortdesc Extended plain tex macros. longdesc A powerfully extended version of the plain format, adding longdesc support for bibliographies, tables of contents, enumerated @@ -20,6 +20,6 @@ texmf-dist/tex/eplain/eplain.ini texmf-dist/tex/eplain/eplain.tex catalogue-ctan /macros/eplain -catalogue-date 2013-02-15 22:51:43 +0100 +catalogue-date 2013-11-21 21:20:37 +0100 catalogue-license gpl2 -catalogue-version 3.5 +catalogue-version 3.6 ++++++ epstopdf.doc.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/man/man1/epstopdf.1 new/texmf-dist/doc/man/man1/epstopdf.1 --- old/texmf-dist/doc/man/man1/epstopdf.1 2013-05-14 01:47:38.000000000 +0200 +++ new/texmf-dist/doc/man/man1/epstopdf.1 2014-01-17 23:34:12.000000000 +0100 @@ -1,73 +1,125 @@ -.TH EPSTOPDF 1 "12 May 2013" -.\" $Id: epstopdf.1 30418 2013-05-12 17:54:12Z karl $ +.TH EPSTOPDF 1 "17 January 2014" +.\" $Id: epstopdf.1 32701 2014-01-17 18:09:54Z karl $ .SH NAME epstopdf, repstopdf \- convert an EPS file to PDF .SH SYNOPSIS \fBepstopdf\fP [\fIoptions\fP] [\fIepsfile\fP] .SH DESCRIPTION -\fBepstopdf\fP transforms the Encapsulated PostScript file \fIepsfile\fP +By default, \fBepstopdf\fP converts the input PostScript file to PDF, +using Ghostscript. +.PP +\fBEpstopdf\fP transforms the Encapsulated PostScript file \fIepsfile\fP (or standard input) so that it is guaranteed to start at the 0,0 coordinate, and it sets a page size exactly corresponding to the -BoundingBox. This means that when Ghostscript renders it, the result -needs no cropping, and the PDF MediaBox is correct. By default, the -result is piped to Ghostscript and a PDF version written. -.P -If the bounding box is not right, of course, there are problems. +BoundingBox. Thus, the result needs no cropping, and the PDF MediaBox +is correct. +.PP +PJL commands at the start of a file are removed. DOS EPS binary files +(TN 5002) are supported. +.PP +If the bounding box in the input is incorrect, of course there will +be resulting problems. .SH OPTIONS Options may start with either "\fB-\fP" or "\fB--\fP", and may be -unambiguously abbreviated. (It is best to use the full option name in +unambiguously abbreviated. It is best to use the full option name in scripts, though, to avoid possible collisions with new options in the -future.) +future. .PP +General script options: +.IP "\fB--help\fP +display help message and exit +.IP "\fB--version\fP +display version information and exit .IP "\fB--outfile\fP=\fIfile\fP" write result to \fIfile\fP. If this option is not given, and \fB--nogs\fP or \fB--filter\fP is specified, write to standard output; otherwise, the default is to construct the output file name by replacing -any extension in the input file with \fI.pdf\fP. -.IP "\fB--\fP[\fBno\fP]\fBcompress\fP" -use compression (default: on). +any extension in the input file with `.pdf'. .IP "\fB--\fP[\fBno\fP]\fBdebug\fP" write debugging info (default: off). -.IP "\fB--\fP[\fBno\fP]\fBembed\fP" -embed fonts (default: on). .IP "\fB--\fP[\fBno\fP]\fBexact\fP" scan ExactBoundingBox (default: off). .IP "\fB--\fP[\fBno\fP]\fBfilter\fP" read standard input and (unless \fB--outfile\fP is given) write standard -output(default: off). +output (default: off). .IP "\fB--\fP[\fBno\fP]\fBgs\fP" run Ghostscript (default: on). With \fB--nogs\fP, output (to standard output by default) the PostScript that would normally be converted; that is, the input PostScript as modified by \fBepstopdf\fP. .IP "\fB--\fP[\fBno\fP]\fBhires\fP" scan HiresBoundingBox (default: off). +.IP "\fB--restricted\fP=\fIval\fP" +turn on restricted mode (default: [on for repstopdf, else off]); +this forbids the use of \fB--gscmd\fP and \fB--gsopt\fP and imposes +restrictions on the input and output file names according to the values +of openin_any and openout_any (see the Web2c manual, http://tug.org/web2c). +.PP +Options for Ghostscript (more info below): .IP "\fB--gscmd\fP=\fIval\fP" pipe output to \fIval\fP (default: [\fBgswin32c\fP on Windows, else \fBgs\fP]) -.IP "\fB--res\fP=\fIdpi\fP" -set image resolution (default: [use gs default]) +.IP "\fB--gsopt\fP=\fIval\fP" +include \fIval\fP as one argument in the gs command (can be repeated), +.IP "\fB--gsopts\fP=\fIval\fP" +split \fIval\fP at whitespace, include each resulting word as an +argument in the gs command (can be repeated) .IP "\fB--autorotate\fP=\fIval\fP" set AutoRotatePages (default: None); recognized \fIval\fP choices: None, All, PageByPage. For EPS files, PageByPage is equivalent to All. -.IP "\fB--restricted\fP=\fIval\fP" -turn on restricted mode (default: [on for repstopdf, else off]); -this forbids the use of \fB--gscmd\fP and imposes restrictions on the input and -output file names according to the values of openin_any and openout_any (see -the Web2c manual, http://tug.org/web2c). -.IP "\fB--help\fP -display help message and exit -.IP "\fB--version\fP -display version information and exit +.IP "\fB--\fP[\fBno\fP]\fBcompress\fP" +use compression in the output (default: on). +.IP "\fB--device\fP=\fIdev\fP" +use -sDEVICE=\fIdev\fP (default: pdfwrite); not all devices are allowed +in restricted mode. +.IP "\fB--\fP[\fBno\fP]\fBembed\fP" +embed fonts (default: on). +.IP "\fB--pdfsettings\fP=\fIval\fP" +use -dPDFSETTINGS=/\fIval\fP (default is `prepress' if \fB--embed\fP, +else empty); recognized \fIval\fP choices: screen, ebook, printer, +prepress, default. +.IP "\fB--\fP[\fBno\fP]\fBquiet\fP" +use -q, a.k.a. -dQUIET (default: off). +.IP "\fB--res\fP=\fIdpi, dpi\fPx\fIdpi\fP" +set image resolution (default: [use gs default]); ignored if +\fB--debug\fP is set. +.IP "\fB--\fP[\fBno\fP]\fBsafer\fP" +use -d(NO)QUIET (default: true). +.PP +In addition to the specific options above, additional options to be used +with gs can be specified with either or both of the two cumulative +options \fB--gsopts\fP and \fB--gsopt.\fP +.PP +\fB--gsopts\fP takes a single string of options, which is split at +whitespace, each resulting word then added to the gs command line +individually. +.PP +\fB--gsopt\fP adds its argument as a single option to the gs command +line. It can be used multiple times to specify options separately, +and is necessary if an option or its value contains whitespace. +.PP +In restricted mode, options are limited to those with names and values +known to be safe; some options taking booleans, integers or fixed +names are allowed, those taking general strings are not. + .SH EXAMPLES -Examples all equivalently producing "test.pdf": +Examples all equivalently converting `test.eps' to `test.pdf': .nf epstopdf test.eps cat test.eps | epstopdf --filter >test.pdf -cat test.eps | epstopdf -f -d -o=test.pdf +cat test.eps | epstopdf -f -o=test.pdf .fi -Example to look for HiResBoundingBox and produce corrected PostScript: +.PP +Example for using HiResBoundingBox instead of BoundingBox: .nf -epstopdf -d --nogs --hires test.ps >testcorr.ps +epstopdf --hires test.eps .fi +.PP +Example for producing \fBepstopdf\fP's attempt at corrected PostScript: +.nf +$program --nogs test.ps >testcorr.ps +.fi +.PP +In all cases, you can add \fB--debug\fP (\fB-d\fP) to see more about +what \fBepstopdf\fP is doing. .SH BUGS The case of "%%BoundingBox: (atend)" when input is not seekable (e.g., from a pipe) is not supported. @@ -82,9 +134,9 @@ The epstopdf LaTeX package, part of the oberdiek bundle, which automates running this script on the fly under TeX: http://ctan.org/pkg/epstopdf-pkg. .SH AUTHOR -The script was originally written by Sebastian Rahtz, for Elsevier -Science, with subsequent contributions from Thomas Esser, Gerben Wierda -and many others. Currently maintained by Karl Berry. +Originally written by Sebastian Rahtz, for Elsevier Science, with +subsequent contributions from Thomas Esser, Gerben Wierda, Heiko +Oberdiek, and many others. Currently maintained by Karl Berry. .PP Man page originally written by Jim Van Zandt. .PP Files old/texmf-dist/doc/man/man1/epstopdf.man1.pdf and new/texmf-dist/doc/man/man1/epstopdf.man1.pdf differ Files old/texmf-dist/doc/man/man1/repstopdf.man1.pdf and new/texmf-dist/doc/man/man1/repstopdf.man1.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/support/epstopdf/README new/texmf-dist/doc/support/epstopdf/README --- old/texmf-dist/doc/support/epstopdf/README 2012-05-23 01:07:56.000000000 +0200 +++ new/texmf-dist/doc/support/epstopdf/README 2014-01-17 23:34:12.000000000 +0100 @@ -1,4 +1,4 @@ -$Id: README 17507 2010-03-19 22:52:56Z karl $ +$Id: README 32701 2014-01-17 18:09:54Z karl $ This file is public domain. (Originally written by Karl Berry, 2009.) This is the README for the epstopdf script distribution. @@ -8,6 +8,8 @@ Home page: http://tug.org/epstopdf/ +Run epstopdf --help for the usual list of options, examples, etc. + Mailing list for bugs and discussion: http://lists.tug.org/tex-k When reporting bugs, please include an input file and command line options, so the problem can be reproduced. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/epstopdf.doc.tlpobj new/tlpkg/tlpobj/epstopdf.doc.tlpobj --- old/tlpkg/tlpobj/epstopdf.doc.tlpobj 2013-05-17 03:39:36.000000000 +0200 +++ new/tlpkg/tlpobj/epstopdf.doc.tlpobj 2014-01-18 03:24:21.000000000 +0100 @@ -1,8 +1,8 @@ name epstopdf.doc category Package -revision 30511 +revision 32706 shortdesc doc files of epstopdf -docfiles size=7 +docfiles size=10 texmf-dist/doc/man/man1/epstopdf.1 texmf-dist/doc/man/man1/epstopdf.man1.pdf texmf-dist/doc/man/man1/repstopdf.1 ++++++ epstopdf.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/scripts/epstopdf/epstopdf.pl new/texmf-dist/scripts/epstopdf/epstopdf.pl --- old/texmf-dist/scripts/epstopdf/epstopdf.pl 2013-05-14 01:47:38.000000000 +0200 +++ new/texmf-dist/scripts/epstopdf/epstopdf.pl 2014-01-17 23:34:12.000000000 +0100 @@ -1,5 +1,5 @@ #!/usr/bin/env perl -# $Id: epstopdf.pl 30419 2013-05-12 17:55:50Z karl $ +# $Id: epstopdf.pl 32701 2014-01-17 18:09:54Z karl $ # (Copyright lines below.) # # Redistribution and use in source and binary forms, with or without @@ -25,24 +25,33 @@ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -# # ---------------------------------------------------------------- -# -# This is a script to transform an EPS file such that: -# a) it is guaranteed to start at the 0,0 coordinate. -# b) it sets a page size exactly corresponding to the BoundingBox -# This means that when Ghostscript renders it, the result needs no -# cropping, and the PDF MediaBox is correct. -# c) the result is piped to Ghostscript and a PDF version written. -# -# It needs a Level 2 PS interpreter. -# If the input bounding box is not right, of course there will be problems. -# +# This is a script to transform an EPS file to PDF. Theoretically, any +# Level 2 PS interpreter should work, although in practice using +# Ghostscript is near-universal. Many more details below. +# # One thing not allowed for: the case of # "%%BoundingBox: (atend)" when input is not seekable (e.g., from a pipe), # # emacs-page +my $ver = "2.21"; + # History +# 2014/01/17 v2.21 (Karl Berry) +# * tweaks to help message, per reports from Knuth. +# 2013/09/28 v2.20 (Heiko Oberdiek, and (a little) Karl Berry) +# * New command line argument --(no)safer which allows setting +# -dNOSAFER instead of -dSAFER (only for non-restricted). +# * New command line argument --pdfsettings for +# Ghostscript's -dPDFSETTINGS. +# * New command line argument --(no)quiet. +# * New command line argument --device for specifying a differnt +# Ghostscript device (limited set of devices for restricted mode). +# * New command line arguments --gsopts and --gsopt for adding +# Ghostscript options. +# * Full support of ghostscript's option -r, DPIxDPI added. +# * Support for DOS EPS binary files (TN 5002) added. +# * Removes PJL commands at start of file. # 2013/05/12 v2.19 (Karl Berry) # * explain option naming conventions (= defaults for Getopt::Long). # 2012/05/22 v2.18 (Karl Berry) @@ -89,10 +98,10 @@ # * Create source repository in TeX Live # 2009/07/17 v2.9.11gw # * Added -dSAFER to default gs options -# TL2009 wants to use a restricted variant of -shell-escape, -# allowing epstopdf to run. However without -dSAFER Ghostscript -# allows writing to files (other than given in -sOutputFile) -# and running commands (through Ghostscript pipe's language feature). +# TL2009 wants to use a restricted variant of -shell-escape, +# allowing epstopdf to run. However without -dSAFER Ghostscript +# allows writing to files (other than given in -sOutputFile) +# and running commands (through Ghostscript pipe's language feature). # 2009/05/09 v2.9.10gw # * Changed cygwin name for ghostscript to gs # 2008/08/26 v2.9.9gw @@ -152,13 +161,13 @@ # # Originally by Sebastian Rahtz, for Elsevier Science # with extra tricks from Hans Hagen's texutil and many more. -# emacs-page +### emacs-page ### program identification my $program = "epstopdf"; -my $ident = '($Id: epstopdf.pl 30419 2013-05-12 17:55:50Z karl $) 2.19'; +my $ident = '($Id: epstopdf.pl 32701 2014-01-17 18:09:54Z karl $)' . " $ver"; my $copyright = <<END_COPYRIGHT ; -Copyright 2009-2013 Karl Berry et al. +Copyright 2009-2014 Karl Berry et al. Copyright 2002-2009 Gerben Wierda et al. Copyright 1998-2001 Sebastian Rahtz et al. License RBSD: Revised BSD <http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5> @@ -177,61 +186,228 @@ my $restricted = 0; $restricted = 1 if $0 =~ /repstopdf/; +### default values +my $default_device = 'pdfwrite'; + ### options $::opt_autorotate = "None"; $::opt_compress = 1; $::opt_debug = 0; +$::opt_device= $default_device; $::opt_embed = 1; $::opt_exact = 0; $::opt_filter = 0; $::opt_gs = 1; $::opt_gscmd = ""; +@::opt_gsopt = (); $::opt_help = 0; $::opt_hires = 0; $::opt_outfile = ""; -$::opt_res = 0; +$::opt_pdfsettings = ""; +$::opt_res = ''; $::opt_restricted = 0; +$::opt_safer = 1; +$::opt_quiet = 1; $::opt_version = 0; +sub gsopts { push (@::opt_gsopt, split (' ', $_[1])); } + +# known-safe Ghostscript options and values. +my %optcheck = qw< + AlignToPixels 0|1 + AntiAliasColorImages true|false + AntiAliasGrayImages true|false + AntiAliasMonoImages true|false + ASCII85EncodePages true|false + AutoFilterColorImages true|false + AutoFilterGrayImages true|false + AutoPositionEPSFiles true|false + AutoRotatePages /(None|All|PageByPage) + BATCH true + Binding /(Left|Right) + CannotEmbedFontPolicy /(OK|Warning|Error) + ColorConversionStrategy /(LeaveColorUnchanged|UseDeviceIndependentColor|UseDeviceIndependendColorForImages|sRGB|CMYK) + ColorImageDepth -1|1|2|4|8 + ColorImageDownsampleThreshold 10(.0*)?|\d(.\d*)|\.\d+ + ColorImageDownsampleType /(Average|Bicubic|Subsample|None) + ColorImageFilter /(DCTEncode|FlateEncode|JPXEncode) + ColorImageResolution \d+ + COLORSCREEN true|0|false + CompatibilityLevel 1\.[0-7] + CompressFonts true|false + CompressPages true|false + ConvertCMYKImagesToRGB true|false + ConvertImagesToIndexed true|false + DefaultRenderingIntent /(Default|Perceptual|Saturation|AbsoluteColorimetric|RelativeColorimetric) + DetectBlends true|false + DetectDuplicateImages true|false + DITHERPPI \d+ + DOINTERPOLATE true + DoThumbnails true|false + DownsampleColorImages true|false + DownsampleGrayImages true|false + DownsampleMonoImages true|false + EmbedAllFonts true|false + EmitDSCWarnings true|false + EncodeColorImages true|false + EncodeGrayImages true|false + EncodeMonoImages true|false + EndPage -?\d+ + FIXEDRESOLUTION true + GraphicsAlphaBits 1|2|4 + GrayImageDepth -1|1|2|4|8 + GrayImageDownsampleThreshold \d+\.?\d*|\.\d+ + GrayImageDownsampleType /(Average|Bicubic) + GrayImageFilter /(DCTEncode|FlateEncode|JPXEncode) + GrayImageResolution \d+ + GridFitTT 0|1|2|3 + HaveTransparency true|false + HaveTrueTypes true|false + ImageMemory \d+ + LockDistillerParams true|false + LZWEncodePages true|false + MaxSubsetPct 100|[1-9][0-9]? + MaxClipPathSize \d+ + MaxInlineImageSize \d+ + MaxShadingBitmapSize \d+ + MonoImageDepth -1|1|2|4|8 + MonoImageDownsampleThreshold \d+\.?\d*|\.\d+ + MonoImageDownsampleType /(Average|Bicubic|Subsample|None) + MonoImageFilter /(CCITTFaxEncode|FlateEncode|RunLengthEncode) + MonoImageResolution \d+ + NOCIE true + NOEPS true + NOINTERPOLATE true + NOPSICC true + NOSUBSTDEVICECOLORS true|false + NOTRANSPARENCY true + OPM 0|1 + Optimize true|false + ParseDSCComments true|false + ParseDSCCommentsForDocInfo true|false + PreserveCopyPage true|false + PreserveEPSInfo true|false + PreserveHalftoneInfo true|false + PreserveOPIComments true|false + PreserveOverprintSettings true|false + StartPage -?\d+ + PatternImagemask true|false + PDFSETTINGS /(screen|ebook|printer|prepress|default) + PDFX true|false + PreserveDeviceN true|false + PreserveSeparation true|false + QUIET true + SHORTERRORS true + SubsetFonts true|false + TextAlphaBits 1|2|4 + TransferFunctionInfo /(Preserve|Remove|Apply) + UCRandBGInfo /(Preserve|Remove) + UseCIEColor true|false + UseFlateCompression true|false + UsePrologue true|false +>; +# In any case not suitable for restricted: +# -dDOPS + +### restricted devices +# More or less copied from ghostscript's configure: +# BMP_DEVS, JPEG_DEVS, PNG_DEVS, TIFF_DEVS, PCX_DEVS, PBM_DEVS +# PS_DEVS (without text devices) +my @restricted_devlist = ($default_device); +my @restricted_devlist_ext = qw[ + bmpmono bmpgray bmpsep1 bmpsep8 bmp16 bmp256 bmp16m bmp32b + jpeg jpeggray jpegcmyk + pbm pbmraw pgm pgmraw pgnm pgnmraw pnm pnmraw ppm ppmraw + pkm pkmraw pksm pksmraw pam pamcmyk4 pamcmyk32 plan plang + planm planc plank + pcxmono pcxgray pcx16 pcx256 pcx24b pcxcmyk pcx2up + png16 png16m png256 png48 pngalpha pnggray pngmono + psdf psdcmyk psdrgb pdfwrite pswrite ps2write epswrite psgray psmono psrgb + tiffs tiff12nc tiff24nc tiff48nc tiff32nc tiff64nc tiffcrle tifflzw + tiffpack tiffgray tiffsep tiffsep1 tiffscaled tiffscaled8 tiffscaled24 + svg svgwrite +]; +push (@restricted_devlist, @restricted_devlist_ext); +my %restricted_devlist = ( map {$_, 1} @restricted_devlist ); + ### usage my @bool = ("false", "true"); my $resmsg = $::opt_res ? $::opt_res : "[use gs default]"; my $rotmsg = $::opt_autorotate ? $::opt_autorotate : "[use gs default]"; +my $defgsopts = "-q -dNOPAUSE -sDEVICE=pdfwrite"; my $usage = <<"END_OF_USAGE"; ${title}Usage: $program [OPTION]... [EPSFILE] -Convert EPS to PDF, by default using Ghostscript. +Convert EPS to PDF (or other formats), by default using Ghostscript. + +The resulting output is guaranteed to start at the 0,0 coordinate, and +sets a page size exactly corresponding to the BoundingBox. Thus, the +result does not need any cropping, and the PDF MediaBox is correct. + +If the bounding box in the input is incorrect, of course there will +be resulting problems. Options: --help display this help and exit --version display version information and exit - - --outfile=FILE write result to FILE - --(no)compress use compression (default: $bool[$::opt_compress]) - --(no)debug write debugging info (default: $bool[$::opt_debug]) - --(no)embed embed fonts (default: $bool[$::opt_embed]) - --(no)exact scan ExactBoundingBox (default: $bool[$::opt_exact]) - --(no)filter read standard input (default: $bool[$::opt_filter]) - --(no)gs run ghostscript (default: $bool[$::opt_gs]) - --(no)hires scan HiResBoundingBox (default: $bool[$::opt_hires]) - --gscmd=VAL pipe output to VAL (default: $GS) - --res=DPI set image resolution (default: $resmsg) - --autorotate=VAL set AutoRotatePages (default: $rotmsg) - Recognized VAL choices: None, All, PageByPage; - for EPS files, PageByPage is equivalent to All. - --restricted use restricted mode (default: $bool[$restricted]) - -Examples all equivalently producing test.pdf: - * $program test.eps - * cat test.eps | $program --filter >test.pdf - * cat test.eps | $program -f -o=test.pdf - -Example to look for HiResBoundingBox and produce corrected PostScript: - * $program -d --nogs --hires test.ps >testcorr.ps - -Options may start with either - or --, and may be unambiguously -abbreviated. It is best to use the full option name in scripts, though, -to avoid possible collisions with new options in the future. + + --outfile=FILE write result to FILE (default based on input name) + --restricted use restricted mode (default: $bool[$restricted]) + + --(no)debug output debugging info (default: $bool[$::opt_debug]) + --(no)exact scan ExactBoundingBox (default: $bool[$::opt_exact]) + --(no)filter read standard input (default: $bool[$::opt_filter]) + --(no)gs run ghostscript (default: $bool[$::opt_gs]) + --(no)hires scan HiResBoundingBox (default: $bool[$::opt_hires]) + +Options for Ghostscript: + --gscmd=VAL pipe output to VAL (default: $GS) + --gsopt=VAL single option for gs (see below) + --gsopts=VAL options for gs (see below) + --autorotate=VAL set AutoRotatePages (default: $rotmsg) + recognized VAL choices: None, All, PageByPage; + for EPS files, PageByPage is equivalent to All. + --(no)compress use compression (default: $bool[$::opt_compress]) + --device=DEV use -sDEVICE=DEV (default: $::opt_device) + --(no)embed embed fonts (default: $bool[$::opt_embed]) + --pdfsettings=VAL use -dPDFSETTINGS=/VAL (default is prepress if --embed, + else empty); recognized VAL choices: + screen, ebook, printer, prepress, default. + --(no)quiet use -q (-dQUIET) (default: $bool[$::opt_quiet]) + --res=DPI|DPIxDPI set image resolution (default: $resmsg) + ignored if option --debug is set. + --(no)safer use -d(NO)SAFER (default: $bool[$::opt_safer]) + +Examples all equivalently converting test.eps to test.pdf: + \$ $program test.eps + \$ cat test.eps | $program --filter >test.pdf + \$ cat test.eps | $program -f -o=test.pdf + +Example for using HiResBoundingBox instead of BoundingBox: + \$ $program --hires test.eps + +Example for producing epstopdf's attempt at corrected PostScript: + \$ $program --nogs test.ps >testcorr.ps + +In all cases, you can add --debug (-d) to see more about what epstopdf +is doing. + +More about the options for Ghostscript: + Additional options to be used with gs can be specified + with either or both of the two cumulative options --gsopts and --gsopt. + --gsopts takes a single string of options, which is split at whitespace, + each resulting word then added to the gs command line individually. + --gsopt adds its argument as a single option to the gs command line. + It can be used multiple times to specify options separately, + and is necessary if an option or its value contains whitespace. + In restricted mode, options are limited to those with names and values + known to be safe; some options taking booleans, integers or fixed + names are allowed, those taking general strings are not. + +All options to epstopdf may start with either - or --, and may be +unambiguously abbreviated. It is best to use the full option name in +scripts, though, to avoid possible collisions with new options in the +future. When reporting bugs, please include an input file and command line options so the problem can be reproduced. @@ -243,30 +419,42 @@ ### process options use Getopt::Long; GetOptions ( - "autorotate=s", # \ref{val_autorotate} + "autorotate=s", # \ref{val_autorotate} "compress!", "debug!", + "device=s", "embed!", "exact!", "filter!", "gs!", - "gscmd=s", # \ref{val_gscmd} - "help", + "gscmd=s", # \ref{val_gscmd} + "gsopt=s@", # \ref{val_gsopt} + "gsopts=s" => \&gsopts, # \ref{val_gsopts} + "help|h", "hires!", - "outfile=s", # \ref{openout_any} - "res=i", # validated by getopt ('i' specifier) + "outfile=s", # \ref{openout_any} + "pdfsettings=s", + "quiet", + "res=s", "restricted", + "safer!", "version", -) or die $usage; +) or die "Try $0 --help for more information\n"; + +### disable --quiet if option --debug is given +$::opt_quiet = 0 if $::opt_debug; + +### restricted option +$restricted = 1 if $::opt_restricted; ### help functions sub debug { print STDERR "* @_\n" if $::opt_debug; } sub warning { print STDERR "==> Warning: @_\n"; } sub error { die "$title!!! Error: @_\n"; } sub errorUsage { die "Error: @_ (try --help for more information)\n"; } +sub warnerr { $restricted ? error(@_) : warning(@_); } -### restricted option -$restricted = 1 if $::opt_restricted; +### debug messages debug "Restricted mode activated" if $restricted; ### safer external commands for Windows in restricted mode @@ -282,8 +470,7 @@ ### check if a name is "safe" according to kpse's open(in|out)_any # return true if name is ok, false otherwise -sub safe_name -{ +sub safe_name { my ($mode, $name) = @_; my $option = ""; $option = '-safe-in-name' if $mode eq 'in'; @@ -321,6 +508,9 @@ } ### emacs-page +### start building GS command line for the pipe +### take --safer and --gsopts into account + ### option gscmd if ($::opt_gscmd) { if ($restricted) { # \label{val_gscmd} @@ -333,7 +523,18 @@ ### start building GS command line for the pipe my @GS = ($GS); -push @GS, qw(-q -dNOPAUSE -dSAFER -sDEVICE=pdfwrite); +push @GS, '-q' if $::opt_quiet; +push @GS, $::opt_safer ? '-dSAFER' : '-dNOSAFER'; +push @GS, '-dNOPAUSE'; +push @GS, '-dBATCH'; + +if ($::opt_device and $restricted and + not $restricted_devlist{$::opt_device}) { + error "Option forbidden in restricted mode: --device=$::opt_device"; + $::opt_device = ''; +} +$::opt_device = $default_device unless $::opt_device; +push @GS, "-sDEVICE=$::opt_device"; ### option outfile my $OutputFilename = $::opt_outfile; @@ -358,18 +559,64 @@ push @GS, "-sOutputFile=$OutputFilename"; ### options compress, embed, res, autorotate -push @GS, ('-dPDFSETTINGS=/prepress', '-dMaxSubsetPct=100', - '-dSubsetFonts=true', '-dEmbedAllFonts=true') if $::opt_embed; +$::opt_pdfsettings = 'prepress' if $::opt_embed and not $::opt_pdfsettings; +if ($::opt_pdfsettings + && $::opt_pdfsettings + !~ s/^\/?(screen|ebook|printer|prepress|default)$/$1/) { + warnerr "Invalid value for --pdfsettings: $::opt_pdfsettings"; + $::opt_pdfsettings = ''; +} +push @GS, "-dPDFSETTINGS=/$::opt_pdfsettings" if $::opt_pdfsettings; + +push @GS, qw[ + -dMaxSubsetPct=100 + -dSubsetFonts=true + -dEmbedAllFonts=true +] if $::opt_embed; + + push @GS, '-dUseFlateCompression=false' unless $::opt_compress; + +if ($::opt_res and + not $::opt_res =~ /^(\d+(x\d+)?)$/) { + warnerr "Invalid resolution: $opt_res"; + $::opt_res = ''; +} push @GS, "-r$::opt_res" if $::opt_res; $resmsg= $::opt_res ? $::opt_res : "[use gs default]"; + +# \label{val_autorotate} +if ($::opt_autorotate and + not $::opt_autorotate =~ /^(None|All|PageByPage)$/) { + warnerr "Invalid value for --autorotate: $::opt_autorotate' " + . "(use 'All', 'None' or 'PageByPage'"; + $::opt_autorotate = ''; +} push @GS, "-dAutoRotatePages=/$::opt_autorotate" if $::opt_autorotate; $rotmsg = $::opt_autorotate ? $::opt_autorotate : "[use gs default]"; -# \label{val_autorotate} -error "Invalid value for autorotate: '$::opt_autorotate' " - . "(use 'All', 'None' or 'PageByPage')." - if ($::opt_autorotate and - not $::opt_autorotate =~ /^(None|All|PageByPage)$/); + +foreach my $gsopt (@::opt_gsopt) { + if ($restricted) { + my $ok = 0; + if ($gsopt =~ /^-[dD]([A-Za-z0-9]+)(=(.*))?$/) { + my $name = $1; + my $value = $2; + $value = 'true' if not defined $value; + if ($optcheck{$name} and $value =~ /^$optcheck{$name}$/) { + $ok = 1; + } + else { + warnerr "Option forbidden in restricted mode: --gsopt $gsopt"; + $gsopt = ''; + } + } + if (not $ok) { + warnerr "Option forbidden in restricted mode: --gsopt $gsopt"; + $gsopt = ''; + } + } + push @GS, $gsopt if $gsopt; +} ### option BoundingBox types my $BBName = "%%BoundingBox:"; @@ -416,8 +663,9 @@ if ($::opt_gs) { if (! $on_windows_or_cygwin) { # list piped open works push @GS, qw(- -c quit); - debug "Ghostscript pipe:", join(' ', @GS); - open($OUT, '|-', @GS) or error "Cannot open Ghostscript for piped input"; + debug "Ghostscript pipe: @GS"; + open($OUT, '|-', @GS) + or error "Cannot open Ghostscript for piped input: @GS"; } else { # use a temporary file on Windows/Cygwin. ($OUT, $tmp_filename) = tempfile(UNLINK => 1); debug "Using temporary file '$tmp_filename'"; @@ -447,10 +695,15 @@ my $buflen; my @bufarray; my $inputpos; +my $maxpos = -1; # We assume 2048 is big enough. my $EOLSCANBUFSIZE = 2048; +# PJL +my $UEL = "\x1B%-12345X"; +my $PJL = '@PJL[^\r\n]*\r?\n'; + $buflen = read(IN, $buf, $EOLSCANBUFSIZE); if ($buflen > 0) { my $crlfpos; @@ -459,15 +712,83 @@ $inputpos = 0; - # remove binary junk before header - # if there is no header, we assume the file starts with ascii style and - # we look for a eol style anyway, to prevent possible loading of the - # entire file - if ($buf =~ /%!/) { - # throw away binary junk before %! - $buf =~ s/(.*?)%!/%!/o; - $inputpos = length($1); + # TN 5002 "Encapsulated PostScript File Format Specification" + # specifies a DOS EPS binary file format for including a + # device-specific screen preview. + # + # DOS EPS Binary File Header (30 Bytes): + # * Bytes 0-3: 0xC5D0D3C6 + # * Bytes 4-7: Offset of PostScript section + # * Bytes 8-11: Length of PostScript section + # * ... + # * Bytes 28-29: XOR checksum of bytes 0-27 or 0xFFFF + if ($buflen > 30 and $buf =~ /^\xC5\xD0\xD3\xC6/) { + debug "DOS EPS binary file header found"; + my $header = substr($buf, 0, 30); + my ($offset_ps, $length_ps, $checksum) = unpack("x[V]VVx[V4]n", $header); + debug " PS offset: $offset_ps"; + debug " PS length: $length_ps"; + $maxpos = $offset_ps + $length_ps; + # validate checksum + if ($checksum == 0xFFFF) { + debug " No checksum"; + } + else { + debug " checksum: $checksum"; + my $cs = 0; + map { $cs ^= $_ } unpack('n14', $header); + if ($cs != $checksum) { + warning "Wrong checksum of DOS EPS binary header"; + } + } + # go to the start of the PostScript section and refill buffer + if ($::opt_filter) { + if ($offset_ps <= $buflen) { + $buf = substr($buf, $offset_ps); + $buflen = $buflen - $offset_ps; + $inputpos = $offset_ps; + my $len = read(IN, $buf, $offset_ps, $buflen); + $buflen += $len; + } + else { + $inputpos = $buflen; + $buflen = 0; + my $skip = $offset_ps - $inputpos; + while ($skip > 0) { + $buflen = read(IN, $buf, + $skip > $EOLSCANBUFSIZE ? $EOLSCANBUFSIZE : $skip); + $buflen > 0 or error "Unexpected end of input stream"; + $inputpos += $buflen; + $skip = $offset_ps - $inputpos; + } + $buflen = read(IN, $buf, $EOLSCANBUFSIZE); + $buflen > 0 or error "Unexpected end of input stream"; + } + } + else { + seek(IN, $offset_ps, 0) || error "Cannot seek to PostScript section"; + $inputpos = $offset_ps; + $buflen = read(IN, $buf, $EOLSCANBUFSIZE); + $buflen > 0 or error "Reading PostScript section failed"; + } + } + elsif ($buf =~ s/^($UEL($PJL)+)//) { + $inputpos = length($1); + debug "PJL commands removed at start of file: $inputpos bytes"; + } + else { + # remove binary junk before header + # if there is no header, we assume the file starts with ascii style and + # we look for a eol style anyway, to prevent possible loading of the + # entire file + if ($buf =~ /%!/) { + # throw away binary junk before %! + $buf =~ s/(.*?)%!/%!/o; + $inputpos = length($1); + debug "Binary junk at start of file: $inputpos byte(s)"; + } } + $lfpos = index($buf, "\n"); $crpos = index($buf, "\r"); $crlfpos = index($buf, "\r\n"); @@ -485,6 +806,13 @@ $buf .= <IN> unless eof(IN); $buflen = length($buf); + # In case of DOS EPS binary files respect end of PostScript section. + if ($maxpos> 0 and $inputpos + $buflen > $maxpos) { + $buflen = $maxpos - $inputpos; + $buflen > 0 or error "Internal error"; + $buf = substr($buf, 0, $buflen); + } + # Some extra magic is needed here: if we set $/ to \r, Perl's re engine # still thinks eol is \n in regular expressions (not very nice) so we # cannot split on ^, but have to split on a look-behind for \r. @@ -502,8 +830,17 @@ if ($#bufarray >= 0) { $_ = shift(@bufarray); } + elsif ($maxpos > 0 and $inputpos >= $maxpos) { + $_ = undef; + } else { $_ = <IN>; + if ($maxpos > 0) { + my $skip = $maxpos - $inputpos - length($_); + if ($skip < 0) { + $_ = substr($_, 0, $skip); + } + } } $inputpos += length($_) if defined $_; return defined($_); @@ -586,6 +923,8 @@ # go back seek(IN, $pos, 0) or error "Cannot go back to line \"$BBName (atend)\""; + $inputpos = $pos; + @bufarray = (); last; } @@ -609,7 +948,7 @@ if (defined $tmp_filename) { push @GS, $tmp_filename; push @GS, qw(-c quit); - debug "Ghostscript command:", join(' ', @GS); + debug "Ghostscript command: @GS"; system @GS; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/epstopdf.tlpobj new/tlpkg/tlpobj/epstopdf.tlpobj --- old/tlpkg/tlpobj/epstopdf.tlpobj 2013-05-17 03:39:38.000000000 +0200 +++ new/tlpkg/tlpobj/epstopdf.tlpobj 2014-01-18 03:24:21.000000000 +0100 @@ -1,6 +1,6 @@ name epstopdf category Package -revision 30511 +revision 32706 shortdesc Convert EPS to 'encapsulated' PDF using GhostScript. longdesc Epstopdf is a Perl script that converts an EPS file to an longdesc 'encapsulated' PDF file (a single page file whose media box is @@ -15,9 +15,9 @@ longdesc fly", thus giving the illusion that PDFLaTeX is accepting EPS longdesc graphic files. depend epstopdf.ARCH -runfiles size=6 +runfiles size=9 texmf-dist/scripts/epstopdf/epstopdf.pl catalogue-ctan /support/epstopdf -catalogue-date 2013-05-13 11:34:28 +0200 +catalogue-date 2014-01-17 20:40:07 +0100 catalogue-license other-free -catalogue-version 2.19 +catalogue-version 2.21 ++++++ eqlist.doc.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/eqlist/README new/doc/latex/eqlist/README --- old/doc/latex/eqlist/README 2008-03-01 01:39:29.000000000 +0100 +++ new/doc/latex/eqlist/README 2013-11-27 23:23:39.000000000 +0100 @@ -1,18 +1,8 @@ -README for the packages - eqlist: consisting of eqlist.dtx and eqlist.ins - varindex: consisting of varindex.dtx and varindex.ins - toolbox: consisting of toolbox.dtx and toolbox.ins - ushort: consisting of ushort.dtx and ushort.ins - guitar: consisting of guitar.dtx and guitar.ins - ziffer: consisting of ziffer.sty +he eqlist package provides a list environment which sets a description-like +list in which the indentation corresponds to the longest item of the list. +This package requires the eqparbox package. -The above mentioned packages are - Copyright 2001--2002 Martin Vaeth -except for toolbox, which is - Copyright 2001--2004 Martin Vaeth +Author: M. V\"ath martin@mvath.de -and may be distributed and/or modified under the conditions of the -LaTeX Project Public License, either version 1.3c 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.3c or later is part of -all distributions of LaTeX version 2005/12/01 or later. +The package may be distributed and/or modified under the conditions of +the LaTeX Project Public License (version 1.3c or later). Files old/doc/latex/eqlist/eqlist.pdf and new/doc/latex/eqlist/eqlist.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/eqlist.doc.tlpobj new/tlpkg/tlpobj/eqlist.doc.tlpobj --- old/tlpkg/tlpobj/eqlist.doc.tlpobj 2010-06-10 18:27:03.000000000 +0200 +++ new/tlpkg/tlpobj/eqlist.doc.tlpobj 2013-11-28 03:24:02.000000000 +0100 @@ -1,9 +1,9 @@ name eqlist.doc category Package -revision 15878 +revision 32257 shortdesc doc files of eqlist relocated 1 -docfiles size=26 +docfiles size=22 RELOC/doc/latex/eqlist/README RELOC/doc/latex/eqlist/eqlist.pdf RELOC/doc/latex/eqlist/eqlist.tex ++++++ eqlist.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/eqlist.tlpobj new/tlpkg/tlpobj/eqlist.tlpobj --- old/tlpkg/tlpobj/eqlist.tlpobj 2010-06-10 18:27:03.000000000 +0200 +++ new/tlpkg/tlpobj/eqlist.tlpobj 2013-11-28 03:24:02.000000000 +0100 @@ -1,14 +1,14 @@ name eqlist category Package -revision 15878 +revision 32257 shortdesc Description lists with equal indentation. relocated 1 longdesc This package provides a list environment which sets a -longdesc description-like list but with the difference that the -longdesc indentation corresponds to the longest item of the list. +longdesc description-like list in which the indentation corresponds to +longdesc the longest item of the list. runfiles size=1 RELOC/tex/latex/eqlist/eqlist.sty catalogue-ctan /macros/latex/contrib/eqlist -catalogue-date 2008-02-29 19:54:55 +0100 +catalogue-date 2012-01-23 15:27:59 +0100 catalogue-license lppl catalogue-version 2.1 ++++++ esami.doc.tar.xz ++++++ Files old/doc/latex/esami/doc/esami-doc-en.pdf and new/doc/latex/esami/doc/esami-doc-en.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/esami/doc/esami-doc-en.tex new/doc/latex/esami/doc/esami-doc-en.tex --- old/doc/latex/esami/doc/esami-doc-en.tex 2013-04-26 00:35:45.000000000 +0200 +++ new/doc/latex/esami/doc/esami-doc-en.tex 2014-01-08 23:44:48.000000000 +0100 @@ -69,7 +69,8 @@ % Right brace \} Tilde \~} % -\changes{Versione 1.0}{2012/03/08}{First version released to CTAN} +\changes{Version 1.0}{2013/03/08}{First version released to CTAN} +\changes{Version 1.1}{2013/12/09}{Inserted the dependance on the package \texttt{environ} to remove some errors in the \LaTeX\ compilation. Removed the dependance on the package \texttt{icomma} in the italian localization file es-italian.lng because of the introduction of new features in the package \texttt{babel} for the Italian langaguage (macro \texttt{IntelligentComma}).} \IndexPrologue{\section*{Index} Numbers written in italic refer to the page where the item is described; underlined numebers refer to the line of code in which the item is described; other references are to the line of code where the item is used.} \GlossaryPrologue{\section*{Changelog}} @@ -79,8 +80,8 @@ \fontshape\updefault \footnotesize} \GetFileInfo{esami.sty} -\def\fileversion{version 1.0} -\def\filedate{2013/03/08} +\def\fileversion{versione 1.1} +\def\filedate{2013/12/09} \title{Package esami\thanks{This document @@ -117,9 +118,10 @@ \item \pkgname{lmodern} and \pkgname{amsfonts}: useful for a good pdf output; \item \pkgname{numprint}: to have a better output and different formats for numbers, depending on language; \item \pkgname{icomma}: from \pkgname{ws} package, for a correct format of commas; -\item \pkgname{eurosym}: (optional) to use the euro symbol in Financial Mathematics exercises. +\item \pkgname{eurosym}: (optional) to use the euro symbol in Financial Mathematics exercises; +\item \pkgname{icomma}: from the package \pkgname{ws} for a correct formatting of commas. This package can be substituted, for the Italian language, by the macro \cmd{\IntelligentComma} of the package \pkgname{babel}: this is the default option in the italian localization file \texttt{es-italian.lng} and can be modified by commenting the macro \cmd{\IntelligentComma} (or by using the macro \cmd{\NoIntelligentComma}). \end{enumerate} -All these packages are available both in \TeX Live and in Mik\TeX. %%%FLAVIO +All these packages are available both in \TeX Live and in Mik\TeX. \section{Installation} @@ -686,7 +688,7 @@ With the command \cmd{\estraialfa[2]\{a,b,c,d\}\{alpha\}} you choose 2 elements from the set, preserving the alphabetical order, and these elements will be named \cmd{\alphai} and \cmd{\alphaii}. \end{esempio} -\DescribeMacro{\estraies} \label{estraies} The command \cmd{\estraies}\oarg{m}\marg{list}\marg{name} works as the command \cmd{\estrai}, but only on a list of exercises. Once the elements nave been chosen, it prints them as the command \cmd{\esercizi}. +\DescribeMacro{\estraies} \label{estraies} The command \cmd{\estraies}\oarg{m}\marg{list}\marg{name} works as the command \cmd{\estrai}, but only on a list of exercises. Once the elements have been chosen, it prints them as the command \cmd{\esercizi}. \section{The auxiliary files} \subsection{The localisation file}\label{sec:lng} @@ -705,6 +707,11 @@ The file \texttt{totale-versioni} is used to generate all the variants of an exercise. With this file the package has always the option \optname{prova} and you can use the option \optname{param} to generate the parametric version of exercises. Inside this file you should use only one command, \cmd{\def \textbackslash esercizio \{name\}}, that should contain the name of the exercise to compile. If you compile the parametric version, the parameters and their intervals are shown at the end of the exercise. +\section{Changelog} +\begin{description} + \item[Version 1.0 (2013/03/08)]First version released to CTAN. + \item[Version 1.1 (2013/12/09)] Inserted the dependance on the package \texttt{environ} to remove some errors in the \LaTeX\ compilation. Removed the dependance on the package \texttt{icomma} in the italian localization file es-italian.lng because of the introduction of new features in the package \texttt{babel} for the Italian langaguage (macro \texttt{IntelligentComma}). +\end{description} \bibliographystyle{plain} \bibliography{esami} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/esami/doc/esami-doc-it.dtx new/doc/latex/esami/doc/esami-doc-it.dtx --- old/doc/latex/esami/doc/esami-doc-it.dtx 1970-01-01 01:00:00.000000000 +0100 +++ new/doc/latex/esami/doc/esami-doc-it.dtx 2014-01-08 23:44:48.000000000 +0100 @@ -0,0 +1,827 @@ +%\documentclass[10pt]{article} + +%\iffalse This is a METACOMMENT +% +%<*driver> +%\ProvidesFile{esami.dtx} +\documentclass{ltxdoc} +%\usepackage[colorlinks,hyperindex]{hyperref} +%\usepackage{esami} +\usepackage[braces]{colordoc} +\usepackage[T1]{fontenc} +\usepackage{calc} +%\usepackage{textcomp} +\usepackage{lmodern} +\usepackage{comandi} +\usepackage[utf8]{inputenc} +\usepackage[italian]{babel} +\usepackage{graphicx} +\usepackage[dvipsnames,svgnames]{xcolor} +\usepackage{fancyvrb} +\usepackage[lmargin=3.5cm,rmargin=3.5cm]{geometry} +\usepackage[colorlinks=true,pdftex,hyperindex=true]{hyperref} +\newcounter{esempio} +\newsavebox{\fcolbox} %\newlength{\fcolwidth} +\newenvironment{esempio} +{\par \medskip +\begin{example} + } + {\end{example}\medskip} + +\newenvironment{example} +{\noindent\stepcounter{esempio}%\setlength{\fcolwidth}{\textwidth-2\fboxsep-2\fboxrule}% +\begin{lrbox}{\fcolbox}% +\begin{minipage}[c]{\textwidth-2\fboxsep-2\fboxrule} +\textbf{\textsf{Esempio \theesempio.}} +} +{\end{minipage}\end{lrbox}\fbox{\usebox{\fcolbox}}} + + +\EnableCrossrefs +\CodelineIndex +\PageIndex +\RecordChanges +\OnlyDescription +\CheckSum{345} +\begin{document} +%\GetFileInfo{esami.sty} +% \DocInput{esami.dtx} + %\PrintChanges + %\PrintIndex + +%</driver> +%\fi +% +% \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{Versione 1.0}{2013/03/08}{Prima versione rilasciata al CTAN} +\changes{Versione 1.1}{2013/12/09}{Reinserita la dipendenza dal pacchetto \texttt{environ} per eliminare alcuni errori nella compilazione con \LaTeX. Eliminata +la dipendenza dal pacchetto \texttt{icomma} nel file di localizzazione es-italian.lng a seguito dell'introduzione di nuove funzionalità nel pacchetto +\texttt{babel} per la lingua italiana (comando \texttt{IntelligentComma}).} + +%\IndexPrologue{\section*{Indice} I numeri scritti in italico rimandano alla pagina dove è descritto l'item; i numeri sottolineati rimandano alla riga di +codice in cui l'item è descritto; le altre referenze sono alla riga di codice dove l'item è usato. +\GlossaryPrologue{\section*{Changelog}} +\def\MacroFont{\fontencoding\encodingdefault +\fontfamily\ttdefault +\fontseries\mddefault +\fontshape\updefault +\footnotesize} +\GetFileInfo{esami.sty} +\def\fileversion{versione 1.1} +\def\filedate{2013/12/09} + + + \title{Il pacchetto esami\thanks{Questo documento + corrisponde al pacchetto \textsf{esami}~\fileversion, con data \filedate.}} + \author{Grazia Messineo <grazia.messineo@unicatt.it> \\ Salvatore Vassallo <salvatore.vassallo@unicatt.it>} +\newcommand{\nuovo}[1]{\marginpar{\raggedleft{ \footnotesize{\textsf{Nuovo #1}}}}} + + \maketitle + + \tableofcontents + \newpage +\newcommand*\pkgname[1]{\texttt{#1}} +\newcommand*\clsname[1]{\texttt{#1}} +\newcommand*\optname[1]{\emph{#1}} +\newcommand*\envname[1]{\textsf{#1}} + +%\section{Il pacchetto esami} +\section{Introduzione e motivazioni} +Il pacchetto \texttt{esami} è stato creato per produrre i testi e le soluzioni per gli esami di Matematica nella Facoltà di Economia dell'Università Cattolica +di Milano e nasce dall'esigenza di poter generare molte versioni (da 12 a 50 solitamente) di una stessa prova d'esame contenenti esercizi simili, ma diversi e +di stampare le soluzioni e, se fossero presenti domande a risposta chiusa, la stringa delle soluzioni. + +Il pacchetto consente di scrivere esercizi di vario tipo (a risposta multipla con risposte che variano in ordine casuale, a risposta chiusa o aperta, +\emph{matching}, problemi, ecc.). Le domande di ogni gruppo ruotano in modo casuale all'interno del compito e le varianti di ciascun esercizio vengono scelte +in modo casuale da un file che le contiene tutte e, a nostra conoscenza, è l'unico che permetta di ottenere tali risultati senza utilizzare programmi esterni a +\LaTeX. + +Lo sviluppo del pacchetto è iniziato nel 2008 con l'intento di estendere e unificare alcune proprietà dei pacchetti \pkgname{exerquiz} e \pkgname{eqexam} di +D.P. Story \cite{acrotex} e \pkgname{probsoln} di N.Talbot \cite{probsoln}. +\section{Pacchetti richiesti} +Il pacchetto \pkgname{esami} dipende da alcuni altri pacchetti non standard: +\begin{enumerate} +\item \pkgname{fp}: per le operazioni matematiche; +\item \pkgname{currfile}: per ottenere il nome del file e della cartella di lavoro; +\item \pkgname{xargs}: per avere più di un parametro opzionale; +\item \pkgname{pstricks}, \pkgname{pstricks-add} e \pkgname{auto-pst-pdf}: per i grafici; +\item \pkgname{environ}: per trasformare comandi in ambienti. +\end{enumerate} +Inoltre i seguenti pacchetti sono opzionali, ma raccomandati: +\begin{enumerate} + \item \pkgname{lmodern} and \pkgname{amsfonts}: necessari per un buon output in pdf; +\item \pkgname{numprint}: per un output migliore dei numeri e per avere formati numerici diversi a seconda del linguaggio; + \item \pkgname{eurosym}: per usare la valuta + \item \pkgname{icomma}: dal pacchetto \pkgname{ws} per una corretta formattazione delle virgole. Tale pacchetto può essere sostituito per la lingua + italiana dal comando \cmd{IntelligentComma} di \pkgname{babel}: questa opzione è di default nel file di localizzazione \texttt{es-italian.lng} e può + essere modificata commentando il comando \cmd{IntelligentComma} (o usando il comando \cmd{NoIntelligentComma}). +\end{enumerate} +Tutti i pacchetti sono disponibili sia in \TeX Live che in Mik\TeX. + +\section{Installazione} Il pacchetto è composto dal file {\tt esami.sty}, da alcuni file di configurazione {\tt *.cfg}, da 3 template per la compilazione e +dalla documentazione. Il file {\tt sty} e i file {\tt cfg} e {\tt lng} devono essere copiati in una cartella dove possano essere trovati da \LaTeX\ (ad esempio +{\tt texmf-local/tex/latex/esami} e in seguito deve essere aggiornato il database. + +\section{Come scrivere un esame} +In questa sezione si vedrà come costruire una prova d'esame usando il pacchetto \pkgname{esami}. + +\subsection{Il preambolo} +\begin{verbatim} +\documentclass[italian]{article} +\usepackage[<opzioni>]{esami} +\end{verbatim} +Le opzioni sono discusse nella sezione \ref{sec:opzioni} +\begin{verbatim} +\def\numcompiti{10} +\date{2013/04/21}%%% THE DATE IN THE FORMAT YYYY/MM/DD +\def\Data{\longdate}%%% or \shortdate: the date in the heading +\end{verbatim} +Il comando \cmd{\date} è quello solito di \LaTeX, ma la data deve essere scritta nel formato YYYY/MM/DD, mentre il comando \cmd{\numcompiti} serve a definire +il numero di versioni che devono essere generate. +Il comando \cmd{\Data} stamperà la data in formato lungo (D MMMM YYYY \cmd{\longdate}) o corto (D/M/YYYY \cmd{\shortdate}). +\subsection{Il documento} +\begin{verbatim} +\begin{document} +\pagestyle{esame} +%% \immediate\openout\sols=\thenomefile.sol.tex +\end{verbatim} + Il comando \cmd{\pagestyle} è definito in un file di configurazione (si veda la sezione \ref{sec:cfg}) e definisce gli header e i footer, il comando + commentato si usa nel file delle soluzioni per generare il file che contiene la stringa delle soluzioni. +\begin{verbatim} + \whiledo{\thevers<\numcompiti}{\stepvers +\end{verbatim} +inizia la routine di compilazione delle varianti che terminerà alla fine del documento. +\begin{verbatim} +\FPeval\seme{round((\thenomefile+\thevers):0)} +\randomi=\seme +\end{verbatim} +genera il seme per i processi di randomizzazione e lo assegna anche a \cmd{\randomi} +\begin{verbatim} +%%\immediate\write\sols{\string\begin{minipage}{.33\string\textwidth} + \string\large\string\textbf{Soluzione Versione n. \thevers}} +\testa +\istruzionii +\end{verbatim} + \cmd{\testa}, \cmd{\istruzionii} vengono definiti nel file di configurazione e contengono le istruzioni per la testata e delle eventuali istruzioni per lo + svolgimento dell'esame, mentre l'istruzione commentata serve nel file soluzioni per la stringa delle soluzioni. +\begin{verbatim} +\begin{test}[punti] +\begin{questions} +\esercizi{test1,test2,test3,test4} +\end{questions} +\end{test} +%%\immediate\write\sols{\string\par\string\end\string{enumerate\string}\string\end{minipage} +%% \string\vspace{1.5cm}} +\end{verbatim} +In questo modo si definisce un ambiente per un test tipicamente con domande a risposta multipla, il comando \cmd{\esercizi} serve per scegliere casualmente gli +esercizi dai file indicati e per rimescolarli. Come sopra i comandi commentati servono per il file soluzioni per generare la stringa delle soluzioni. +\begin{verbatim} +\esercizi{problema1, problema2} +\end{verbatim} + sceglie tra due esercizi a risposta aperta. +\begin{verbatim} +\closevers +} +%%\immediate\closeout\sols +%%\stringasol +\end{document} +\end{verbatim} +Termina la routine di compilazione, e, nel file delle soluzioni, chiude il file della stringa delle risposte. + + +\section{Le opzioni del pacchetto}\label{sec:opzioni} +Per usare il pacchetto bisogna usare il solito comando +\cmd{\usepackage}[\meta{options}]\{esami\}. Le opzioni possibili sono: + \begin{itemize} + \item {\color{blue}{\optname{allowrandomize}}} e {\color{blue}{\optname{norandomize}}}: la prima permette di permutare in modo casuale l'ordine delle + risposte nelle domande a risposta chiusa, la seconda di non permutarlo (di default le risposte vengono permutate in modo casuale). + \item {\color{blue}{\optname{shuffle}}}, {\color{blue}{\optname{shufflerandom}}} e {\color{blue}{\optname{noshuffle}}}: la prime due permettono di + permutare gli esercizi, la prima in modo deterministico se il numero degli esercizi è minore di 9 e casuale se è maggiore, la seconda del tutto + casualmente, la terza di non permutarli (l'opzione di default è \optname{shuffle}). + \item {\color{blue}{\optname{xyz}}}: Fa caricare un file di configurazione (\texttt{esami-xyz.cfg}) con nome dell'esame, istruzioni, ecc. relative a questo + esame. Nel file {\tt esami.sty} sono predefiniti alcune opzioni; è possibile caricare altre configurazioni definendole in {\tt esami.sty} o creare un + proprio file di configurazione e farlo leggere senza modificare il file {\tt esami.sty}: è sufficiente scrivere un'opzione sconosciuta (ad esempio + \verb|math|) e scrivere il file {\tt esami-math.cfg}. + \item {\color{blue}{\optname{pointsonright}}}: fa apparire la casella con il punteggio sulla destra dell'esercizio. Se l'opzione non è specificata, la + casella non appare. + \item {\color{blue}{\optname{nosolutions}}}: questa opzione genera il compito senza soluzioni (default). + \item {\color{blue}{\optname{solutions}}}: genera il file delle soluzioni. + \item {\color{blue}{\optname{prova}}}: si usa solo con il file {\tt totale-versioni} (si veda \ref{sec:totale}) e serve per visualizzare tutte le + varianti di un esercizio. Fa visualizzare automaticamente le risposte esatte negli esercizi a risposta multipla e la soluzione nei problemi da + svolgere. + \item {\color{blue}{\optname{param}}}: serve per visualizzare le lettere che rappresentano i parametri casuali anziché il valore numerico attribuito. + Stampa anche una frase iniziale, nella quale sono contenuti il valore iniziale e finale attribuiti ai parametri usati nell'esercizio. Può essere + usata solo insieme all'opzione \texttt{prova}. + \item {\color{blue}{\optname{correzione}}}: stampa solo i testi di tutti gli esercizi, senza soluzioni (funziona solo nel file {\tt totale-versioni}). + \item {\color{blue}{\optname{fillb}}}: da usare se nel compito ci sono esercizi di tipo \texttt{fillin}, per poter inserire le risposte corrette nella + stringa delle soluzioni. + \item {\color{blue}{\optname{twocolumns}}}: per scrivere il testo delle domande a risposta chiusa su due colonne (ma si veda anche \ref{duecolonne}). + \item {\color{blue}{\optname{sansserif}}}: usa caratteri sans serif: utile soprattutto se si usano le due colonne. + \item {\color{blue}{\optname{autopston}}} e {\color{blue}{\optname{autopstoff}}}: caricano il pacchetto \pkgname{auto-pst-pdf} e permettono di compilare + il file direttamente con pdflatex (anche se contiene codice di \pkgname{pstricks}). La prima opzione crea e include direttamente nel documento i file + delle immagini, la seconda non crea i file delle immagini (e rende più veloce la compilazione)\VerbatimFootnotes +\footnote{Per usare \pkgname{auto-pst-pdf} è necessario +abilitare \texttt{shell-escape} (\TeX Live) o \texttt{write18} (MiK\TeX) nell'esecuzione di pdflatex.}. +\item {\color{blue}{\optname{language}}}: legge il file di localizzazione es-language.lng (si veda \ref{sec:lngsec:lng}). Nel file sono contenute le + traduzioni delle etichette (esercizio, soluzione, \dots), dei messaggi d'errore, delle intestazioni contenute nel file (\texttt{esami-xyz.cfg}). Di + default viene caricato il file della lingua italiana. Poiché le opzioni linguistiche hanno lo stesso nome di quelle usate in \pkgname{babel} è possibile + passare l'opzione in \cmd{\documentclass}. + \end{itemize} + + \section{Gli esercizi} + \subsection{Le varianti} + Ogni esercizio (con tutte le sue varianti) va scritto in un file separato. +\DescribeMacro{\newproblem} +Ogni variante è racchiusa nel comando +\cmd{\newproblem\{ .... \}} (che non ha alcun argomento opzionale). +\begin{esempio} +\begin{verbatim} +%%%% Questo è il file file1.tex con 2 varianti di un esercizio +\newproblem{ Testo della prima variante} +\newproblem{Testo della seconda variante} +\end{verbatim} +\end{esempio} +Il comando \cmd{\newproblem} è una versione molto modificata dell'analogo comando del pacchetto \pkgname{probsoln}. +\subsection{L'ambiente test} +\DescribeEnv{test} +L'ambiente \envname{test} consente di scrivere esercizi a risposta multipla o a risposta aperta breve, in cui ciascuno dei quesiti è tratto casualmente da uno +dei file nel quale sono contenuti tutti gli esercizi con le rispettive varianti. + +L'ambiente viene creato dal comando +\begin{verbatim} + \begin{test}[punti] + ... + \end{test} +\end{verbatim} +\DescribeMacro{punti} +Il parametro opzionale \oarg{punti} può essere solo un numero intero maggiore o uguale a 1, che indica il punteggio \textbf{totale} attribuito all'intero +gruppo di domande. + +\DescribeEnv{questions} +I quesiti del gruppo, nel documento principale, sono racchiusi nell'ambiente \emph{questions} che è una versione modificata dell'ambiente omonimo del pacchetto +\pkgname{exerquiz}: +\begin{verbatim} + \begin{questions} + .... + \end{questions} +\end{verbatim} +È possibile inserire all'intero di un unico ambiente \envname{test} più ambienti \envname{questions}. Gli esercizi di ogni gruppo saranno mescolati +indipendentemente. +\begin{esempio} +\begin{verbatim} +\begin{test} + \begin{questions} + .... + \end{questions} +.... + \begin{questions} + .... + \end{questions} +\end{test} +\end{verbatim} +\end{esempio} +\DescribeMacro{\esercizi} +All'interno di tale ambiente, i quesiti vengono ``caricati'' dal comando +\begin{verbatim} + \esercizi{nome file sorgente 1, nome file sorgente 2,...} +\end{verbatim} +Il parametro obbligatorio è il nome di ciascuno degli esercizi +che si vogliono inserire nel test, separati da una virgola\footnote{In seguito +verranno introdotti altri comandi per il caricamento di esercizi}. + +È possibile sia inserire tutti gli esercizi con un unico comando, sia usare +più comandi \cmd{\esercizi} o \cmd{\estraies} (si veda \ref{estraies}).\label{duecolonne} +Questa possibilità è utile ad esempio se si vuole che ci siano esercizi da due +sottoinsiemi diversi (5 esercizi sui limiti scelti tra 7 e 3 esercizi sulle derivate scelti tra 5) o se si vuole per esigenze di impaginazione avere alcuni +esercizi su due colonne ed altri su una colonna: in tale caso +si deve introdurre la parte che deve essere su due colonne con +\cmd{\begin\{multicols\}\{2\}} e concluderla con \cmd{\end\{multicols\}}. \textbf{Non} si usa l'opzione \optname{twocolumns}. +\begin{esempio} +\begin{verbatim} + \begin{test}[punti] + \begin{multicols}{2} + \esercizi{es1,es2,es3} + \end{multicols} + \esercizi{es4,es5,es6} + \end{test} +\end{verbatim} +\end{esempio} +In questo modo gli esercizi \texttt{es1,es2,es3} sono formattati su due colonne mentre gli esercizi \texttt{es4,es5,es6} sono formattati su una colonna. + +Nel file degli esercizi, la sintassi da usare all'interno di +\cmd{\newproblem} è la seguente: +\begin{verbatim} \item \PTs{punteggio} +...testo... \begin{answers}{numero colonne} + \bChoices[random] +\Ans0 risposta errata \eAns +\Ans0 risposta errata \eAns +\Ans1 risposta esatta \eAns + \eFreeze +\Ans0 nessuna delle precedenti \eAns + \eChoices +\end{answers} + \end{verbatim} +nella quale: +\begin{itemize} + \item {\color{blue}{\begin{verbatim} +\item \PTs{punteggio} +\end{verbatim}}} +\DescribeMacro{\PTs} +introduce una domanda con punteggio indicato in \cmd{\PTs} (può essere anche un numero decimale e il separatore può essere la virgola). + +\item {\color{blue}{\begin{verbatim} +\begin{answers}{numero colonne} + \bChoices[random] + ... + \eChoices +\end{answers} +\end{verbatim}}} +\DescribeEnv{answers} +\DescribeMacro{\Ans0} +\DescribeMacro{\Ans1} +\DescribeMacro{\bChoices} +\DescribeMacro{\eChoices} +\DescribeMacro{\eFreeze} +introduce le risposte disposte sul numero di colonne specificate. Le risposte vengono permutate in modo casuale solo se è specificata l'opzione +(\optname{random}). + +\item {\color{blue}{\cmd{\Ans0} }} introduce una risposta errata +\item {\color{blue}{\cmd{\Ans1}}} introduce la risposta esatta +\item {\color{blue}{\cmd{\eFreeze}}} introduce (se si vuole) una o più risposte che non saranno in ordine casuale. +\end{itemize} +\begin{esempio} + \begin{verbatim} +\newproblem{ +\item \PTs{1} Le soluzioni dell'equazione +\[x^2-5x+6=0\] +sono: +\begin{answers}{2} + \bChoices[random] +\Ans0 $x=3$ e $x=-2$ \eAns +\Ans0 $x=-3$ e $x=-2$ \eAns +\Ans1 $x=3$ e $x=2$ \eAns + \eFreeze +\Ans0 nessuna delle precedenti \eAns + \eChoices +\end{answers} +} + +\newproblem{ +\item \PTs{1} Le soluzioni dell'equazione +\[x^2+5x+6=0\] +sono: +\begin{answers}{2} + \bChoices[random] +\Ans0 $x=3$ e $x=-2$ \eAns +\Ans1 $x=-3$ e $x=-2$ \eAns +\Ans0 $x=3$ e $x=2$ \eAns + \eFreeze +\Ans0 nessuna delle precedenti \eAns + \eChoices +\end{answers} +} + \end{verbatim} +\end{esempio} + +Oltre alle domande a risposta multipla è possibile inserire nell'ambiente \envname{test} altri tipi di domande che verranno descritti nella sezione +\ref{sec:altri_esercizi}, ma se si usano esercizi di tipo \texttt{fill-in} se ci sono più spazi bianchi da riempire la stringa delle soluzioni avrà un utilità +minore poiché non seguirà la numerazione delle risposte. + +\subsection{Gli ambienti problem e problem*} +\DescribeEnv{problem} +\DescribeEnv{problem*} +Servono per scrivere problemi con risposte aperte. Si usano all'interno del file che contiene le varianti dell'esercizio, annidati nel comando +\cmd{\newproblem}, con la seguente sintassi: +\begin{verbatim} +\begin{problem} + ... +\end{problem} +\end{verbatim} +se si sceglie di scrivere un esercizio a risposta aperta in una sola parte; con la sintassi +\begin{verbatim} +\begin{problem*} + ... +\end{problem*} +\end{verbatim} +se invece si sceglie di scrivere un esercizio a risposta aperta in più parti. Il codice di questi ambienti è derivato, con molte modificazioni, dal codice +dell'ambiente \envname{exercise} del pacchetto \pkgname{exerquiz} \footnote{L'ambiente \envname{exercise} è rimasto e può essere usato come template per la +costruzione di altri ambienti come nuovi esercizi, esempi o altro.}. + \paragraph{Esercizio senza parti} + È introdotto, come si è detto, dall'ambiente \envname{problem}. +\begin{verbatim} +\begin{problem} [punteggio] +........Testo.......... +\begin{solution}[spazio_soluzione] +.... testo soluzione ...... +\end{solution} +\end{problem} + \end{verbatim} + \DescribeEnv{solution} +In \oarg{punteggio} va il punteggio dell'esercizio, in \oarg{spazio\_soluzione} va l'\emph{eventuale} spazio bianco che deve essere lasciato per la soluzione. +\paragraph{Esercizio in più parti} +\DescribeEnv{parts} +È introdotto dall'ambiente \envname{problem*}. + \begin{verbatim} +\begin{problem*} [punteggio] +....testo.... +\begin{parts} +\item \PTs{punteggio della parte} +....testo.... + \begin{solution}[spazio_soluzione] + .... testo soluzione ...... + \end{solution} +\item \PTs{punteggio della parte} +..... +\end{parts} \end{problem*} + \end{verbatim} +Con \cmd{\PTs\{punteggio della parte\}} si indica il punteggio della singola parte. +\subsection{Altre tipologie di esercizi}\label{sec:altri_esercizi} +Sono state definite alcune nuove tipologie di esercizio: +\paragraph{fillin:} \DescribeMacro{\fillin} +serve per creare esercizi ``a riempimento''. Parte del testo viene lasciata vuota e deve essere riempita dallo studente. Può essere usato anche per creare +esercizi a risposta aperta breve. Anche questo tipo di esercizio è simile ad un tipo di esercizio introdotto da D.P. Story nel pacchetto \pkgname{eqexam}. + +La sintassi è +\begin{verbatim} + \fillin[u|e|b]{larghezza dello spazio}{risposta} +\end{verbatim} +I due parametri obbligatori sono la \marg{larghezza dello spazio} da lasciare, che deve essere espressa con una lunghezza (cm, pt, ecc.) e la \marg{risposta} +esatta (parola o numero) che lo studente dovrebbe inserire (che verrà stampata solo nel file delle soluzioni). + +Il parametro opzionale definisce come deve essere segnalato lo spazio in cui inserire la risposta: \emph{u} (\emph{underlined}), che è l'opzione di default, fa +sì che lo spazio sia evidenziato mediante una riga su cui va inserita la risposta, \emph{e} (\emph{empty}) crea uno spazio vuoto (non evidenziato in alcun +modo), \emph{b} (\emph{boxed}) crea uno spazio circondato da un riquadro. + +All'interno del comando \cmd{\fillin} (nello spazio per la risposta) non è possibile usare i comandi \cmd{\sempli} o \cmd{\semplix} (si veda la sezione +\ref{sec:comandi}). +\paragraph{domanda:}\DescribeEnv{problema} questo ambiente deve contenere il testo dell'esercizio (non le soluzioni). Viene usato negli ambienti +\envname{problema} e \envname{problema*}, con l'opzione \optname{solutionsonly} non viene stampato il testo degli esercizi, ma solo la soluzione. Nelle +versioni precedenti del pacchetto per lo stesso scopo veniva usato un altro ambiente. +\paragraph{risposta:}\DescribeEnv{risposta} serve per creare, in esercizi a risposta aperta lunga, lo spazio per inserire la risposta in un box o su righe. + +La sintassi del comando è +\begin{verbatim} + \begin{risposta}{b|l}{spazio verticale} + \end{risposta} +\end{verbatim} +Il primo parametro definisce se lo spazio per la risposta deve essere riquadrato (opzione \emph{b}, di default) oppure diviso in righe su cui andrà scritta la +risposta (opzione \emph{l}). Il secondo parametro definisce invece l'altezza dello spazio per la risposta (in cm se con opzione \emph{b}, in numero di righe se +con opzione \emph{l}) \paragraph{matching:}\DescribeMacro{\matching} è basato su un'idea del pacchetto \pkgname{examdesign} \cite{examdesign}. Serve per creare +esercizi in cui le parole o formule contenute su due colonne vanno abbinate dallo studente in modo corretto. + +\DescribeMacro{\pair}Le coppie vengono definite dal comando \cmd{\pair}: +\begin{verbatim} + \pair{nome 1}{nome 2} +\end{verbatim} +che va inserito tante volte quanti sono i nomi o le formule da abbinare. + +L'elenco dei nomi (mischiati in ordine casuale su ciascuna colonna) viene visualizzato con il comando \cmd{\matching}. + +\begin{esempio} + +\begin{minipage}{.4\textwidth} +\begin{verbatim} + \pair{Regno Unito}{Londra} + \pair{Francia}{Parigi} + \pair{Italia}{Roma} + \pair{Germania}{Berlino} + \pair{Grecia}{Atene} + \matching +\end{verbatim} +\end{minipage} +\begin{minipage}{.4\textwidth} +\begin{center} +\begin{tabular}{l l l } +\rule{1cm}{1pt}& Grecia & (A) Parigi\\ +\rule{1cm}{1pt}& Regno Unito & (B) Berlino\\ +\rule{1cm}{1pt}& Francia & (C) Roma\\ +\rule{1cm}{1pt}& Italia & (D) Londra\\ +\rule{1cm}{1pt}& Germania & (E) Atene +\end{tabular} +\end{center} +\end{minipage} +\end{esempio} +Nelle soluzioni viene invece visualizzato l'abbinamento corretto. +\paragraph{tabella:}\DescribeEnv{tabella} serve per creare esercizi con più risposte aperte incolonnate. + +La sintassi è +\begin{verbatim} + \begin{tabella}[numero colonne sempre visibili] + {allineamento colonne visibili}{allineamento colonna nascosta} + \dots & \dots \cr + \end{tabella} +\end{verbatim} +Il primo parametro (il cui valore di default è 2) indica il numero di colonne della tabella il cui contenuto deve essere visibile anche nel testo +dell'esercizio (e non solo nella soluzione), mentre è possibile avere solo una colonna il cui contenuto è invisibile nel testo, ma appare nella soluzione. Il +secondo parametro consente di scegliere l'allineamento delle colonne il cui contenuto è sempre visibile e il terzo l'allineamento della colonna invisibile. + +\begin{esempio} +Con il codice +\begin{verbatim} +\begin{center} +\renewcommand\arraystretch{3} +\begin{tabella}[1]{r}{c} +\hline + Il dominio della funzione è & $D_f=(-\infty;2]$\cr + \hline + L'insieme immagine della funzione è & $Im(f)=(-\infty,0]$ \cr + \hline + \end{tabella} +\end{center} + \end{verbatim} + + si ottiene il seguente risultato + \renewcommand\arraystretch{3} + \begin{center} +\DeleteShortVerb{\|} + \MakeShortVerb{\!} +\begin{tabular}{r|c} + \hline + Il dominio della funzione è & \color{red}{$D_f=(-\infty;2]$}\\ + \hline + L'insieme immagine della funzione è & \color{red}{$Im(f)=(-\infty,0]$} \\ + \hline + \end{tabular} +\end{center} + +\end{esempio} +\paragraph{workarea:}\DescribeEnv{workarea} non è una tipologia di esercizi, ma serve a creare un'area di lavoro, cioè uno spazio bianco sul foglio in cui lo +studente possa scrivere. La sintassi è +\begin{verbatim} +\begin{solution}{lunghezza} + \begin{workarea}[larghezza]{lunghezza} + \end{workarea} + \end{solution} +\end{verbatim} +La lunghezza dello spazio soluzione e della workarea dovrebbero essere uguali caso contrario il testo presente nella workarea +viene posizionato male nello spazio della soluzione, sovrapponendosi al testo dell’esercizio +se la sua lunghezza è maggiore di quella della soluzione. La larghezza della workarea è opzionale e di default è uguale alla larghezza del testo. A differenza +dell’ambiente \envname{solution}, nella workarea è possibile inserire testo, grafici, ecc.; ad esempio, è possibile inserire degli assi +coordinati per disegnare un grafico. + +\subsection{Altri comandi} +Il pacchetto definisce altri due comandi utilizzati nel file {\tt totale-versioni} (si veda \ref{sec:totale}) +\begin{itemize} + \item {\color{blue}{\cmd{\selectallproblems\{\textbackslash esercizio\}}}}:\DescribeMacro{\selectallproblems}\ si usa all'interno del file che serve per + visualizzare tutte le varianti di un esercizio, con i parametri calcolati oppure no. + \item {\color{blue}{\cmd{\esercizio}}}:\DescribeMacro{\esercizio}\ si usa all'interno del file che serve per visualizzare tutte le varianti di un esercizio + e serve per definire il nome dell'esercizio sul quale si sta lavorando, che verrà usato nel comando \cmd{\selectallproblems} visto in precedenza e + verrà stampato come titolo del file pdf prodotto. La sintassi per definire il nome di un esercizio è \cmd{\def\textbackslash esercizio\{nome\}}. + \end{itemize} +%\section{Il pacchetto comandi} +%\subsection{Introduzione} +% Il pacchetto \texttt{comandi} contiene alcune macro per la formattazione del testo matematico e per l'esecuzione dei calcoli (sia all'interno degli esami +che in altri file). Alcuni di questi comandi sono disponibili nel pacchetto \verb|esami| senza bisogno di caricare il pacchetto +% +% Per utilizzarlo all'interno di un documento occorre scrivere: +% +%\begin{verbatim} +% \usepackage{comandi} +%\end{verbatim} +% Il pacchetto non prevede opzioni. +\section{I comandi per lavorare con i parametri e con le liste} +\subsection{Comandi per lavorare con i parametri (casuali)} \label{sec:comandi} +Sono stati definiti alcuni comandi per lavorare con i parametri (casuali). + +Questi comandi si basano sul pacchetto \pkgname{fp} \cite{fp}, che permette di eseguire calcoli anche molto complessi all'interno di un documento \LaTeX. +Il comando fondamentale che serve per definire un parametro è {\color{blue}{\cmd{\FPsetpar}\oarg{seme}\marg{nome-parametro}\marg{primo valore}\marg{ultimo +valore}\oarg{{valori esclusi}}}} che serve per dichiarare i parametri casuali all'interno di un esercizio (a risposta chiusa o aperta). Il parametro avrà nome +\cmd{\nome-parametro} e varierà tra il primo valore e l'ultimo valore (inclusi).\DescribeMacro{\FPsetpar} \ Il parametro sarà un numero +intero\footnote{Anche se è possibile definire parametri razionali o (pseudo)reali, come nel pacchetto \pkgname{rangen} \cite{rangen} abbiamo preferito +restringere la scelta al caso intero e ottenere gli altri casi operando sui parametri}. +Il parametro opzionale \oarg{seme}, serve a imporre un seme diverso per la generazione del numero casuale. Il valore di default del parametro è \cmd{\seme} ed +è definito a partire dalla data dell'esame e dal numero della versione. + È possibile escludere dalla scelta uno o più valori (ultimo parametro tra parentesi quadre). Se i valori sono più di uno devono essere posti tra parentesi + graffe e separati tra virgole; tra i valori esclusi ci possono essere anche altri parametri purché già definiti in precedenza (anche il primo e l'ultimo + valore possono essere parametri: in questo caso bisogna prestare attenzione al fatto che il primo valore deve essere minore dell'ultimo). + \DescribeMacro{\maxLoopLimit}Il meccanismo usato per soddisfare tali condizioni consiste nel ripetere la generazione più volte: il numero massimo di + ripetizioni è determinato dal parametro \cmd{\maxLoopLimit}, il cui valore di default è 10, ma che è definibile anche in fase di compilazione. +\begin{esempio} +\begin{verbatim} + \FPsetpar{a}{2}{10} +\end{verbatim} +crea una variabile \cmd{\a} che può assumere un valore casuale tra $2$ e $10$, in questo caso, il seme è quello stabilito nel preambolo del documento. +I comandi +\begin{verbatim} +\FPsetpar{a}{2}{10}[3] +\FPsetpar{b}{4}{12}[{\a,6}] +\end{verbatim} +creano due variabili \cmd{\a} (che può assumere un valore casuale tra 2 e 10, escluso 3) e \cmd{\b} (che può assumere un valore tra 4 e 12, + escluso 6 e il valore già assegnato ad \cmd{\a}). +\end{esempio} + +Sui parametri definiti è possibile operare come su numeri e sono stati definiti comandi che permettono di operare su tali parametri mostrando il risultato +numerico o le operazioni in forma parametrica. + +\begin{itemize} + \item {\color{blue}{\cmd{\FPsv}\oarg{numero di cifre decimali}\marg{parametro/operazione su parametri}}}:\DescribeMacro{\FPsv}\ serve ad eseguire + operazioni su parametri e restituirne il valore numerico (con il numero prescelto di cifre decimali) o stampare l'operazione eseguita (se si sceglie + l'opzione \optname{param} nel pacchetto esami). + +\begin{esempio} + \begin{center} + \begin{tabular}{l|l|l} + \color{blue}{Istruzione} & \color{blue}{Risultato numerico} & \color{blue}{Opzione \texttt{param}}\\ + \hline + \hline + \verb|\FPsv{2*k+1}| & $5$& $2*k+1$ \\ + \verb|\FPsv[2]{(2*k+1)/2}| & $2.50$& $(2*k+1)/2$ \\ + \end{tabular} + \end{center} +\end{esempio} +Le principali caratteristiche del comando \cmd{\FPsv} sono (negli esempi, $k=2$): +\begin{itemize} +\item le operazioni devono essere sempre indicate in modo esplicito +\begin{esempio} +\begin{center} +\begin{tabular}{lr} +\verb!$\FPsv{2*k}$! & $4$\\ +\end{tabular} +\end{center} +\end{esempio} +\item in via automatica, ogni operazione viene racchiusa tra parentesi tonde. La parentesi non viene visualizzata quando si vuole il risultato numerico, + mentre lo è con l'opzione \optname{param} + \begin{esempio} + \begin{center} + \begin{tabular}{l|l|l} + \color{blue}{Istruzione} & \color{blue}{Risultato numerico} & \color{blue}{Opzione \texttt{param}}\\ + \verb|$\FPsv{2*k+1}x$| & $5x$ & $(2*k+1)x$ + \end{tabular} + \end{center} + \end{esempio} +\item Si possono usare i seguenti simboli per le operazioni: \verb|+,-,*,/,^| +\item Occorre prestare attenzione al fatto che il pacchetto \pkgname{fp} non può gestire potenze con base negativa +\end{itemize} + + \item {\color{blue}{\cmd{\FPval}\marg{nome}\marg{parametro/operazione su parametri}}}:\DescribeMacro{\FPval}\ + assegna a \marg{nome} il valore dell'operazione arrotondato (è il comando \cmd{\FPeval} di \pkgname{fp} modificato) o stampare l'operazione eseguita se si + sceglie l'opzione \optname{param} nel pacchetto esami, come + con \cmd{\FPsv}. +\begin{esempio} +Sia $k=2$. Il codice + \begin{verbatim} + \FPsetpar{k}{1}{3} + \FPval{a}{2*k+1} + \FPsetpar{b}{2}{20}[\a] + \end{verbatim} + genera una variabile \cmd{\b} che assume un valore casuale tra $2$ e $20$, escluso (in questo caso) il valore $5$. Nella versione parametrica appare invece + una stringa di questo tipo (per quanto riguarda la variabile \cmd{\b}) + \begin{center} + Il parametro $b$ varia da $2$ a $20$. $b\neq (2*k+1)$. Il seme vale 209. + \end{center} + \end{esempio} + \item {\color{blue}{\cmd{\sempli}\marg{num}\marg{den}}}:\DescribeMacro{\sempli}\ serve per scrivere delle frazioni in cui il numeratore o il denominatore + contengono parametri e che potrebbero dover essere ridotte ai minimi termini. + All'interno del comando \cmd{\sempli} non si deve usare \cmd{\FPsv}. +\begin{esempio} + +Se $k=1$: +\begin{center} + \begin{tabular}{lr} +\verb!$\sempli{2*k}{3*k+1}$! & $ \frac12$\\[2mm] +\hline\\ + \verb!$\frac{\FPsv{2*k}}{\FPsv{3*k+1}}$! & $\frac24$\\ +\end{tabular} +\end{center} +\end{esempio} + \item {\color{blue}{\cmd{\semplix}\marg{num}\marg{den}}}:\DescribeMacro{\semplix}\ serve per scrivere delle frazioni in cui il numeratore o il denominatore + contengono parametri e che potrebbero dover essere ridotte ai minimi termini, ma nelle quali il risultato pari ad $1$ non deve apparire (ad esempio + perché davanti ad una incognita). + + Il funzionamento è identico a quello del comando \cmd{\sempli}. + + Il comando può essere utilizzato ponendo il denominatore uguale ad 1 anche per la formattazione di coefficienti affinché non appaia il valore $1$ e il + valore $-1$ appaia come $-$. +\begin{esempio} + +Se il parametro $k$ assume valore $2$: +\begin{center} + \begin{tabular}{lr} +\verb|$\FPsv{k-1}x$| & $1x$\\[2mm] +\hline\\ +\verb!$\semplix{k-1}{1}x$! & $x$\\[2mm] +\hline\\ +\verb|$\semplix{1-k}{1}x$| & $-x$\\[2mm] +\hline\\ +\verb|$\semplix{2*k}{k+2}x$| & $x$\\ +\end{tabular} +\end{center} + \end{esempio} + \item {\color{blue}{\cmd{\esempli}\marg{num}\marg{den}}}:\DescribeMacro{\esempli}\ serve per scrivere delle frazioni in cui il numeratore o il denominatore + contengono parametri e che potrebbero dover essere ridotte ai minimi termini, ma nelle quali il risultato pari ad $1$ non deve apparire, ma deve + apparire esplicitamente il valore $-1$ (ad esempio per gli esponenti). + + Il funzionamento è identico a quello del comando \cmd{\sempli}. + + Il comando può essere utilizzato ponendo il denominatore uguale ad 1 anche per la formattazione di esponenti affinché non appaia il valore $1$ e il + valore $-1$ appaia come $-1$. +\begin{esempio} + +Se il parametro $k$ assume valore $2$: +\begin{center} +\begin{tabular}{lr} +\verb|$x^{\FPsv{k-1}}$| & $x^1$\\[2mm] +\hline\\ +\verb|$x^{\esempli{k-1}{1}}$| & $x$\\[2mm] +\hline\\ +\verb|$x^{\esempli{1-k}{1}}$| & $x^{-1}$ + \end{tabular} + \end{center} + \end{esempio} + \item {\color{blue}{\cmd\sempliz\marg{num}\marg{den}}}:\DescribeMacro{\sempliz}\ serve per scrivere delle frazioni in cui il numeratore o il denominatore + contengono parametri e che potrebbero dover essere ridotte ai minimi termini e che possono assumere il valore $0$ (ad esempio nelle risposte). Mentre + con gli altri comandi il risultato $0$ dà luogo a un errore e al blocco della compilazione, con il comando \cmd{\sempliz} viene scritto il risultato + $0$. + + Il funzionamento è identico a quello del comando \cmd{\sempli}. + \item {\color{blue}{\cmd{\simpsqrt}\marg{ind}\marg{rad}}}:\DescribeMacro{\simpsqrt}\ serve per portar fuori da una radice tutti i fattori possibili. I + fattori portati fuori dalla radice non possono essere semplificati con altri (ad esempio, se la radice è al numeratore di una frazione, non è possibile + eseguire eventuali semplificazioni tra numeratore e denominatore). Il primo parametro obbligatorio, \marg{ind}, è l'indice della radice; il secondo, + \marg{rad}, il radicando. Il primo può contenere un numero o un parametro; il secondo un numero, un parametro o un'operazione su parametri (anche in + questo caso non si deve usare all'interno \cmd{\FPsv}). +\begin{esempio} + +Se $a$ vale $2$ e $b$ vale $1$ + + \begin{tabular}{lr} +\verb|$\simpsqrt{2}{a^2+4*b}$| & $2\sqrt{2}$ +\end{tabular} + \end{esempio} + \item {\color{blue}{\cmd{\RandS}}}:\DescribeMacro{\RandS}\ serve per attribuire un segno casuale ($+$ o $-$) ad un numero. Il comando è simile a quello + del pacchetto \pkgname{rangen}. + \end{itemize} +\subsection{Comandi per la scelta da una lista } +Oltre al comando \cmd{\esercizi} già visto esistono altri comandi per la scelta di esercizi da una lista o, più in generale, di oggetti da una lista. + +Il primo comando permette di scegliere casualmente $n-m$ elementi di una lista +\DescribeMacro{\estrai}.\ Il comando \cmd{\estrai}\oarg{m}\marg{lista}\marg{nome} è il comando utente per estrarre gli elementi +dalla lista \marg{lista} escludendone \oarg{m}. Gli elementi estratti avranno nome \cmd{\nomei}, \cmd{\nomeii}, \dots. +Gli elementi della lista devono essere separati da virgole. +\begin{esempio} + +Con il comando \cmd{\estrai[1]\{insiemi,logica,potenze\}\{alpha\}} si scelgono 2 elementi dell'insieme e questi due elementi si chiameranno \cmd{\alphai} e +\cmd{\alphaii}. Se questi nomi corrispondono a nomi di file di esercizi è possibile inserire nella lista di file argomento del comando \cmd{\esercizi} anche +\cmd{\alphai} e \cmd{\alphaii}. +\end{esempio} +\DescribeMacro{\estraialfa} Il comando \cmd{\estraialfa}\marg{m}\marg{lista}\marg{nome} estrae \marg{m} oggetti casuali dalla lista +\marg{lista} mantenendo l'ordine fissato. Gli elementi estratti avranno nome \cmd{\nomei}, \cmd{\nomeii}, \dots. +Gli elementi della lista devono essere separati da virgole. +\begin{esempio} + +Con il comando \cmd{\estraialfa[2]\{a,b,c,d\}\{alpha\}} si scelgono 2 elementi dell'insieme, mantenendo l'ordine +alfabetico e questi due elementi si chiameranno \cmd{\alphai} e \cmd{\alphaii}. +\end{esempio} +\DescribeMacro{\estraies} \label{estraies} Il comando \cmd{\estraies}\oarg{m}\marg{lista}\marg{nome} funziona come il comando \cmd{\estrai}, ma esclusivamente +su una lista di esercizi. Una volta effettuata l'estrazione, li stampa come il comando \cmd{\esercizi}. + +\section{I file ausiliari} +\subsection{Il file di localizzazione}\label{sec:lng} + Al momento sono presenti le localizzazioni in italiano (default), inglese (UK), inglese (US), francese, spagnolo (contributo di Maria Hernandez Cifre), + tedesco (contributo di Kerstin von Kirschhausen), greco (contributo di Sotiris Hasapis). Usando la lingua greca (e forse altre localizzazioni in caratteri non + latini) è necessario caricare i pacchetti \pkgname{fontenc}, \pkgname{inputenc} e \pkgname{babel} prima del caricamento del pacchetto + \pkgname{esami}\footnote{L'opzione \optname{greek} prevede al momento l'utilizzo dell'opzione \optname{iso-8859-7} per il pacchetto \pkgname{inputenc}}. In + questo file possono venire caricati anche alcuni pacchetti dipendenti dalla localizzazione, quali \pkgname{numprint}, \pkgname{geometry}, ecc. e vengono + definiti i comandi \cmd{\shortdate} e \cmd{\longdate} per esprimere la data. +\subsection{Il file di configurazione}\label{sec:cfg} +Il file di configurazione \texttt{esami-xyz.cfg} contiene varie definizioni tra cui la testata (comando \cmd{\testa}), il piè di pagina, la formattazione della +stringa delle soluzioni, lo stile di pagina, le istruzioni per l'esame. +\subsection{I file \texttt{master} e \texttt{master-sol}} +Questi due file differiscono solo perché il secondo mostra le soluzioni e contengono le istruzioni per generare effettivamente la prova d'esame. \textbf{I +file vanno rinominati prima della compilazione}: in caso contrario la compilazione si arresta con un messaggio di errore. In entrambi è necessario indicare la +data (comando \cmd{\date}) in formato YYYY/MM/DD, %il modulo dell'esame (comando \verb!\modulo!), +il numero di compiti da generare (comando \cmd{\numcompiti}), +%se si tratta di prova completa o parziale (comando \verb|\compito|) +e, ovviamente, gli esercizi. Il tema d'esame può essere diviso in più parti e in ognuna si può usare uno o più degli ambienti introdotti e uno o più comandi +per la stampa degli esercizi. + +Nel file possono essere definiti anche il numero massimo di ripetizioni che il comando \cmd{\FPsetpar} deve eseguire per cercare di soddisfare le condizioni +poste (comando \cmd{\maxLoopLimit}) e il meccanismo di calcolo del seme iniziale per la generazione dei numeri casuali (comando \cmd{\seme}). + +È anche possibile definire il nome delle parti in cui è diviso il tema d'esame. +\subsection{Il file \texttt{totale-versioni}}\label{sec:totale} +Il file \texttt{totale-versioni} serve per generare tutte le varianti di un esercizio. Con questo file il pacchetto ha sempre l'opzione \optname{prova} e può +essere definita l'opzione \optname{param} per generare la versione parametrica degli esercizi. + +Al suo interno si deve usare un solo comando, \cmd{\def \textbackslash esercizio\{nome\}\textbackslash}, che deve contenere il nome dell'esercizio da +compilare. Se si compila la versione parametrica, i parametri e i loro intervalli di variazione vengono indicati alla fine dell'esercizio. + + +\bibliographystyle{plain} +\bibliography{esami} + \end{document} Files old/doc/latex/esami/doc/esami-doc-it.pdf and new/doc/latex/esami/doc/esami-doc-it.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/esami/doc/esami-doc-it.tex new/doc/latex/esami/doc/esami-doc-it.tex --- old/doc/latex/esami/doc/esami-doc-it.tex 2013-04-26 00:35:45.000000000 +0200 +++ new/doc/latex/esami/doc/esami-doc-it.tex 2014-01-08 23:44:48.000000000 +0100 @@ -69,7 +69,8 @@ % Right brace \} Tilde \~} % -\changes{Versione 1.0}{2012/03/08}{Prima versione rilasciata al CTAN} +\changes{Versione 1.0}{2013/03/08}{Prima versione rilasciata al CTAN} +\changes{Versione 1.1}{2013/12/09}{Reinserita la dipendenza dal pacchetto \texttt{environ} per eliminare alcuni errori nella compilazione con \LaTeX. Eliminata la dipendenza dal pacchetto \texttt{icomma} nel file di localizzazione es-italian.lng a seguito dell'introduzione di nuove funzionalità nel pacchetto \texttt{babel} per la lingua italiana (comando \texttt{IntelligentComma}).} %\IndexPrologue{\section*{Indice} I numeri scritti in italico rimandano alla pagina dove è descritto l'item; i numeri sottolineati rimandano alla riga di codice in cui l'item è descritto; le altre referenze sono alla riga di codice dove l'item è usato.} \GlossaryPrologue{\section*{Changelog}} @@ -79,8 +80,8 @@ \fontshape\updefault \footnotesize} \GetFileInfo{esami.sty} -\def\fileversion{versione 1.0} -\def\filedate{2013/03/08} +\def\fileversion{versione 1.1} +\def\filedate{2013/12/09} \title{Il pacchetto esami\thanks{Questo documento @@ -110,14 +111,15 @@ \item \pkgname{fp}: per le operazioni matematiche; \item \pkgname{currfile}: per ottenere il nome del file e della cartella di lavoro; \item \pkgname{xargs}: per avere più di un parametro opzionale; -\item \pkgname{pstricks}, \pkgname{pstricks-add} e \pkgname{auto-pst-pdf}: per i grafici. +\item \pkgname{pstricks}, \pkgname{pstricks-add} e \pkgname{auto-pst-pdf}: per i grafici; +\item \pkgname{environ}: per trasformare comandi in ambienti. \end{enumerate} Inoltre i seguenti pacchetti sono opzionali, ma raccomandati: \begin{enumerate} \item \pkgname{lmodern} and \pkgname{amsfonts}: necessari per un buon output in pdf; \item \pkgname{numprint}: per un output migliore dei numeri e per avere formati numerici diversi a seconda del linguaggio; \item \pkgname{eurosym}: per usare la valuta - \item \pkgname{icomma}: dal pacchetto \pkgname{ws} per una corretta formattazione delle virgole. + \item \pkgname{icomma}: dal pacchetto \pkgname{ws} per una corretta formattazione delle virgole. Tale pacchetto può essere sostituito per la lingua italiana dal comando \cmd{\IntelligentComma} di \pkgname{babel}: questa opzione è di default nel file di localizzazione \texttt{es-italian.lng} e può essere modificata commentando il comando \cmd{\IntelligentComma} (o usando il comando \cmd{\NoIntelligentComma}). \end{enumerate} Tutti i pacchetti sono disponibili sia in \TeX Live che in Mik\TeX. @@ -709,7 +711,13 @@ \subsection{Il file \texttt{totale-versioni}}\label{sec:totale} Il file \texttt{totale-versioni} serve per generare tutte le varianti di un esercizio. Con questo file il pacchetto ha sempre l'opzione \optname{prova} e può essere definita l'opzione \optname{param} per generare la versione parametrica degli esercizi. -Al suo interno si deve usare un solo comando, \cmd{\def \textbackslash esercizio\{nome\}\textbackslash}, che deve contenere il nome dell'esercizio da compilare. Se si compila la versione parametrica, i parametri e i loro intervalli di variazione vengono indicati alla fine dell'esercizio. +Al suo interno si deve usare un solo comando, \cmd{\def \textbackslash esercizio\{nome\}}, che deve contenere il nome dell'esercizio da compilare. Se si compila la versione parametrica, i parametri e i loro intervalli di variazione vengono indicati alla fine dell'esercizio. + +\section{Changelog} +\begin{description} + \item[Versione 1.0 (2013/03/08)]Prima versione rilasciata al CTAN + \item[Versione 1.1 (2013/12/09)] Reinserita la dipendenza dal pacchetto \texttt{environ} per eliminare alcuni errori nella compilazione con \LaTeX. Eliminata la dipendenza dal pacchetto \texttt{icomma} nel file di localizzazione es-italian.lng a seguito dell'introduzione di nuove funzionalità nel pacchetto \texttt{babel} per la lingua italiana (comando \texttt{IntelligentComma}). +\end{description} \bibliographystyle{plain} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/esami/doc/examples/esami-xyz.cfg new/doc/latex/esami/doc/examples/esami-xyz.cfg --- old/doc/latex/esami/doc/examples/esami-xyz.cfg 1970-01-01 01:00:00.000000000 +0100 +++ new/doc/latex/esami/doc/examples/esami-xyz.cfg 2014-01-08 23:44:48.000000000 +0100 @@ -0,0 +1,88 @@ +%% Package `esami' to use with LaTeX 2e +%% Copyright (C) 2008-2013 G. Messineo e S. Vassallo +%% +%% This is file `esami-xyz.cfg', +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% esami-xyz.cfg, 2013-03-20 %% +%% Copyright (C) 2008-2013 G. Messineo e S. Vassallo %% +%% %% +%% This program can be redistributed and/or modified %% +%% under the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +% +=============================+ +% | THE HEADING | +% +=============================+ + + \@ifpackagewith{esami}{prova}{% + \def\testa{\relax}} +{% +\def\testa{ +{\bfseries\sffamily\small +\begin{center} +\begin{tabular}{|lp{.33\textwidth}|lp{.3\textwidth}|lp{.3\textwidth}|} +\hline +\multicolumn{1}{|p{.33\textwidth}|}{\examname \newline \Data}&\multicolumn{1}{|p{.3\textwidth}|}{\profname } &\multicolumn{1}{|p{.3\textwidth}|}{\studsignname}\\[4ex] +\hline +\multicolumn{1}{|p{.33\textwidth}|}{\studlastname:}&\multicolumn{1}{|p{.3\textwidth}|}{\studfirstname:}&\multicolumn{1}{|p{.3\textwidth}|}{\studid:}\\[4ex] +\hline +\end{tabular}\\[3ex] +\end{center}} + } + } + +% +=============================+ +% | THE FOOTER | +% +=============================+ + +\ifes@solutions%%%solutions +\def\ps@esame{\let\@oddhead\@empty\def\@oddfoot{\hfil \textbf{\versionname\ +n. \thevers} -- %% +\textbf{\solutionsname} -- %% + \pagename\ \thepage +\hfil}\let\@evenhead\@empty\let\@evenfoot\@empty} +\else%%% no solutions + \def\ps@esame{ + \let\@oddhead\@empty\def\@oddfoot%% + {\hfil \textbf{\versionname\ n. \thevers\ + -- \pagename\ \thepage}\hfil}\let\@evenhead\@empty\let\@evenfoot\@empty} +\fi + +% +=============================+ +% | THE SOLUTION STRING | +% +=============================+ + +\def\ps@soltest{\let\@oddhead\@empty\def\@oddfoot{\hfil %\textbf{\versionname\ n. \thevers} -- %% +\textbf{\solutionsname} -- \pagename\ \thepage +\hfil}\let\@evenhead\@empty\let\@evenfoot\@empty} + +\ifes@solutions +\newcommand{\stringasol}{\newpage% +\vspace{.8cm} +\pagestyle{soltest} + \input{\jobname.sol.tex} % +} +\else +\newcommand{\stringasol}{\relax} +\fi + + +% +=============================+ +% | SOME INTRUCTIONS | +% +=============================+ + +\def\istruzionii{{ +\sffamily \textbf{INSTRUCTIONS} +\begin{itemize} + \item Write here your instructions + \item two + \item three +\end{itemize}}} + +\def\istruzioniii{\setlength{\fboxsep}{1.5ex}\setlength{\fboxrule}{1.2pt}{\sffamily +\framebox{\parbox{\textwidth}{\textbf{Some other instructions.}}}}\\[3ex]} Files old/doc/latex/esami/doc/examples/testA-sol.pdf and new/doc/latex/esami/doc/examples/testA-sol.pdf differ Files old/doc/latex/esami/doc/examples/testA.pdf and new/doc/latex/esami/doc/examples/testA.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/esami/doc/examples/testA.tex new/doc/latex/esami/doc/examples/testA.tex --- old/doc/latex/esami/doc/examples/testA.tex 2013-04-26 00:35:45.000000000 +0200 +++ new/doc/latex/esami/doc/examples/testA.tex 2014-01-08 23:44:48.000000000 +0100 @@ -1,5 +1,5 @@ \documentclass[a4paper,UKenglish]{article} -\usepackage[shufflerandom,xyz,pointsonright,autopstoff,twocolumns,fillb,solutionsonly]{esami}%%%%% TEMA +\usepackage[shufflerandom,xyz,pointsonright,autopstoff,twocolumns,nosolutions]{esami}%%%%% TEMA \usepackage{lmodern,textcomp} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} @@ -9,7 +9,7 @@ \def\examname{The name of the exam} \def\numcompiti{4}%%% The number of the versions -\date{2013/3/22}%%% THE DATE IN THE FORMAT AAAA/M/D +\date{2014/1/3}%%% THE DATE IN THE FORMAT AAAA/M/D \def\Data{\longdate}%%% or \shortdate: the date in the heading %\def\cartella{d:/folder}%%% The folder where are the exercises: by default the current folder% @@ -39,7 +39,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section*{Part One} -\today + \begin{test}[8] @@ -49,8 +49,8 @@ test1, test2, test3, -test4,%} -test5-fillin} +test4} +%test5-fillin} \end{questions} \begin{questions} \esercizi{test11, @@ -62,7 +62,7 @@ \end{test} \newpage -\part{One} + \section*{Part two} \istruzioniii%%% Some other instructons diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/esami/es-UKenglish.lng new/doc/latex/esami/es-UKenglish.lng --- old/doc/latex/esami/es-UKenglish.lng 2013-04-26 00:35:45.000000000 +0200 +++ new/doc/latex/esami/es-UKenglish.lng 1970-01-01 01:00:00.000000000 +0100 @@ -1,60 +0,0 @@ -%%% Labels (esami.sty) - -\def\es@parametermessage#1#2#3{The parameter $#1$ is between $#2$ and $#3$.} -\def\es@seedmessage#1{The seed is equal to $#1$.} -\def\es@pointname{point} -\def\es@pointsname{points} -\def\es@exercisename{Exercise} -\def\es@solutionname{Solution} - -%%% Labels (xyz.cfg) - -\def\profname{Prof.\ } -\def\studsignname{Student's signature} -\def\studlastname{Last Name} -\def\studfirstname{First Name} -\def\studid{Student's ID} -\def\versionname{Version} -\def\pagename{Page} -\def\solutionsname{Solutions} - -%%% Error Messages - -\def\es@cfgerrormessageshort{The option \CurrentOption\space does not exists} -\def\es@cfgerrormessagelong{Package esami needs an option for the configuration file} -\def\es@numcompitierror{It's necessary to specify the number of versions!} -\def\es@mastererror{WARNING: YOU CANNOT COMPILE THE MASTER FILE:\MessageBreak - PRESS 'x' TO EXIT AND RENAME THE FILE} -\def\es@zerodenerror#1#2{The fraction #1/#2 in exercise \nome \space has the denominator equal to 0} -\def\es@zeronumerrorshort#1#2{The fraction #1/#2 in exercise \nome \space is equal to 0} -\def\es@zeronumerrorlong#1#2{If the fraction can be 0, you must use the "sempliz" command} -\def\es@fraconewarn#1#2{The fraction #1/#2 in exercise \nome \space is equal to 1} -\def\es@radicalerror{The radicand in exercise \nome \space is negative} -\def\es@fpsetparerrorshort{Not all conditions are satisfied after \maxLoopLimit\space tries} -\def\es@EstraiMessage#1#2{\string\textbf\string{\string\noindent\space Expressions $#2i$, $#2ii$ \string\dots\space - assume the values #1 \string}\string\newline} - -%%% The date - -\def\es@longdate#1/#2/#3\@empty{\ifcase#3\or - 1st\or 2nd\or 3rd\or 4th\or 5th\or - 6th\or 7th\or 8th\or 9th\or 10th\or - 11th\or 12th\or 13th\or 14th\or 15th\or - 16th\or 17th\or 18th\or 19th\or 20th\or - 21st\or 22nd\or 23rd\or 24th\or 25th\or - 26th\or 27th\or 28th\or 29th\or 30th\or - 31st\fi~\ifcase#2\or - January\or February\or March\or April\or May\or June\or - July\or August\or September\or October\or November\or - December\fi \space #1} -\def\es@shortdate#1/#2/#3\@empty{#1/#2/#3} - -%%% Useful Language dependent packages - -\AtEndOfPackage{ -\usepackage{babel} -\usepackage{geometry} -\geometry{a4paper,lmargin=6mm,rmargin=18mm,tmargin=6mm,bmargin=18mm,marginparsep=2mm,footskip=1cm} -%\usepackage{eurosym} -\usepackage[np,autolanguage]{numprint} -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/esami/es-USenglish.lng new/doc/latex/esami/es-USenglish.lng --- old/doc/latex/esami/es-USenglish.lng 2013-04-26 00:35:45.000000000 +0200 +++ new/doc/latex/esami/es-USenglish.lng 1970-01-01 01:00:00.000000000 +0100 @@ -1,54 +0,0 @@ -%%% Labels (esami.sty) - -\def\es@parametermessage#1#2#3{The parameter $#1$ is between $#2$ and $#3$.} -\def\es@seedmessage#1{The seed is equal to $#1$.} -\def\es@pointname{point} -\def\es@pointsname{points} -\def\es@exercisename{Exercise} -\def\es@solutionname{Solution} - -%%% Labels (xyz.cfg) - -\def\profname{Prof.\ } -\def\studsignname{Student's signature} -\def\studlastname{Last Name} -\def\studfirstname{First Name} -\def\studid{Student's ID} -\def\versionname{Version} -\def\pagename{Page} -\def\solutionsname{Solutions} - -%%% Error Messages - -\def\es@cfgerrormessageshort{The option \CurrentOption\space does not exists} -\def\es@cfgerrormessagelong{Package esami needs an option for the configuration file} -\def\es@numcompitierror{It's necessary to specify the number of versions!} -\def\es@mastererror{WARNING: YOU CANNOT COMPILE THE MASTER FILE:\MessageBreak - PRESS 'x' TO EXIT AND RENAME THE FILE} -\def\es@zerodenerror#1#2{The fraction #1/#2 in exercise \nome \space has the denominator equal to 0} -\def\es@zeronumerrorshort#1#2{The fraction #1/#2 in exercise \nome \space is equal to 0} -\def\es@zeronumerrorlong#1#2{If the fraction can be 0, you must use the "sempliz" command} -\def\es@fraconewarn#1#2{The fraction #1/#2 in exercise \nome \space is equal to 1} -\def\es@radicalerror{The radicand in exercise \nome \space is negative} -\def\es@fpsetparerrorshort{Not all conditions are satisfied after \maxLoopLimit\space tries} -\def\es@EstraiMessage#1#2{\string\textbf\string{\string\noindent\space Expressions $#2i$, $#2ii$ \string\dots\space - assume the values #1 \string}\string\newline} - - -%%% The date - -\def\es@longdate#1/#2/#3\@empty{\ifcase#2\or - January\or February\or March\or April\or May\or June\or - July\or August\or September\or October\or November\or - December\fi \space #3,\space #1} -\def\es@shortdate#1/#2/#3\@empty{#1/#2/#3} - -%%% Useful Language dependent packages - -\AtEndOfPackage{ -\usepackage{babel} -\usepackage{geometry} -\geometry{a4paper,lmargin=6mm,rmargin=18mm,tmargin=6mm,bmargin=18mm,marginparsep=2mm,footskip=1cm} -%\usepackage{eurosym} -\usepackage[np,autolanguage]{numprint} -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/esami/es-french.lng new/doc/latex/esami/es-french.lng --- old/doc/latex/esami/es-french.lng 2013-04-26 00:35:45.000000000 +0200 +++ new/doc/latex/esami/es-french.lng 1970-01-01 01:00:00.000000000 +0100 @@ -1,55 +0,0 @@ -%%% Labels (esami.sty) - -\def\es@parametermessage#1#2#3{Le param\`{e}tre $#1$ varie entre $#2$ et $#3$.} -\def\es@seedmessage#1{La graine est $#1$.} -\def\es@pointname{point} -\def\es@pointsname{points} -\def\es@exercisename{Exercice} -\def\es@solutionname{Solution} - -%%% Labels (xyz.cfg) - -\def\profname{Prof.\ } -\def\studsignname{Signature de l'\'{e}tudiant} -\def\studlastname{Nom} -\def\studfirstname{Pr\'{e}nom} -\def\studid{Num\'{e}ro de matricule} -\def\versionname{Version} -\def\pagename{Page} -\def\solutionsname{Solutions} - -%%% Error Messages - -\def\es@cfgerrormessageshort{L'option \CurrentOption\space n'existe pas} -\def\es@cfgerrormessagelong{Vous devez sp\'{e}cifier une option pour le file de configuration du paquet esami} -\def\es@numcompitierror{Vous devez sp\'{e}cifier le nombre de versions!} -\def\es@mastererror{ATTENTION: VOUS NE POUVEZ PAS TRAVAILLER SUR LE FILE MASTER:\MessageBreak - PRESSEZ "X" POUR SORTIR ET CHANGER LE NOM DU FILE} -\def\es@zerodenerror#1#2{La fraction #1/#2 dans l'exercice \nome \space a le d\'{e}nominateur \'{e}gal à 0} -\def\es@zeronumerrorshort#1#2{La fraction #1/#2 dans l'exercice \nome \space est \'{e}gal à 0} -\def\es@zeronumerrorlong#1#2{Si vous voulez qu'une fraction peut être 0, utilisez la commande "sempliz"} -\def\es@fraconewarn#1#2{La fraction #1/#2 dans l'exercice \nome \space est \'{e}gal à 1} -\def\es@radicalerror{Le radicande dans l'exercice \nome \space est n\'{e}gatif} -\def\es@fpsetparerrorshort{Les conditions ne sont pas satisfaites apr\`{e}s \maxLoopLimit\space tentatives} -\def\es@EstraiMessage#1#2{\string\textbf\string{\string\noindent\space Les expressions $#2i$, $#2ii$ \string\dots\space - prennent les valeurs #1 \string}\string\newline} - -%% The date - -\def\es@longdate#1/#2/#3\@empty{#3\space \ifcase#2\or - janvier\or fevrier\or mars\or avril\or mai\or juin\or - juillet\or ao\^{u}t\or septembre\or octobre\or novembre\or - d\'{e}cembre\fi \space #1} -\def\es@shortdate#1/#2/#3\@empty{#3/#2/#1} - -%%% Useful Language dependent packages - -\AtEndOfPackage{ -\catcode`\:=12 %%% for compatibility babel/fp -\usepackage{geometry} -\geometry{a4paper,lmargin=6mm,rmargin=18mm,tmargin=6mm,bmargin=18mm,marginparsep=2mm,footskip=1cm} -\usepackage{icomma} -\usepackage{eurosym} -\usepackage[np,autolanguage]{numprint} -} - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/esami/es-german.lng new/doc/latex/esami/es-german.lng --- old/doc/latex/esami/es-german.lng 2013-04-26 00:35:45.000000000 +0200 +++ new/doc/latex/esami/es-german.lng 1970-01-01 01:00:00.000000000 +0100 @@ -1,54 +0,0 @@ -%%% German translation by Kerstin von Kirschhausen - - -%%% Labels (esami.sty) - -\def\es@parametermessage#1#2#3{Der Parameter $#1$ liegt zwischen $#2$ und $#3$.} -\def\es@seedmessage#1{Die Saat gleicht $#1$.} -\def\es@pointname{Punkt} -\def\es@pointsname{Punkte} -\def\es@exercisename{Aufgabe} -\def\es@solutionname{L\"{o}sung} - -%%% Labels (xyz.cfg) - -\def\profname{Professor} -\def\studsignname{Unterschrift des Studenten} -\def\studlastname{Nachname} -\def\studfirstname{Vorname} -\def\studid{Matrikelnummer} -\def\versionname{Version} -\def\pagename{Seite} -\def\solutionsname{L\"{o}sungen} - -%%% Error Messages - -\def\es@cfgerrormessageshort{Die Möglichkeit \CurrentOption\space existiert nicht} -\def\es@cfgerrormessagelong{Das Paket "esami" braucht eine Möglichkeit für die Konfigurationsdatei} -\def\es@numcompitierror{Die Anzahl der Versionen muss ausdrücklich angegeben werden} -\def\es@mastererror{Achtung! Sie können die Stammdatei nicht erstellen: \MessageBreak -Drücken Sie "x" um zu beenden und bennen Sie die Datei um. } -\def\es@zerodenerror#1#2{In der Aufgabe \nome \space hat der Bruch #1/#2 den Nenner gleich 0} -\def\es@zeronumerrorshort#1#2{In der Aufgabe \nome \space ist der Bruch #1/#2 gleich 0} -\def\es@zeronumerrorlong#1#2{Wenn das Ergebnis des Bruchs 0 ergibt, dann sollst Du den "sempliz" Befehl anwenden} -\def\es@fraconewarn#1#2{In der Aufgabe \nome \space ist der Bruch #1/#2 gleich 1} -\def\es@radicalerror{Der Radikand in der Aufgabe \nome \space ist negativ} -\def\es@fpsetparerrorshort{Nicht alle Bedingungen sind nach \maxLoopLimit\space versuchen befriedigt} -\def\es@EstraiMessage#1#2{\string\textbf\string{\string\noindent\space Die Ausdrücke $#2i$, $#2ii$ \string\dots\space - setzten den Wert #1 voraus\string}\string\newline} - -%%% The date - -\def\es@longdate#1/#2/#3\@empty{#3\space\ifcase#2\or - Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or - Juli\or August\or September\or Oktober\or November\or Dezember\fi \space #1} -\def\es@shortdate#1/#2/#3\@empty{#3/#2/#1} - -%%% Useful Language dependent packages - -\AtEndOfPackage{ -\usepackage{geometry} -\geometry{a4paper,lmargin=6mm,rmargin=18mm,tmargin=6mm,bmargin=18mm,marginparsep=2mm,footskip=1cm} -\usepackage{eurosym} -\usepackage[np,autolanguage]{numprint} -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/esami/es-greek.lng new/doc/latex/esami/es-greek.lng --- old/doc/latex/esami/es-greek.lng 2013-04-26 00:35:45.000000000 +0200 +++ new/doc/latex/esami/es-greek.lng 1970-01-01 01:00:00.000000000 +0100 @@ -1,63 +0,0 @@ -%%% Greek translation by Sotiris Hasapis - - -%%% Labels (esami.sty) - -\def\es@parametermessage#1#2#3{� ���������� $#1$ ����� ������ $#2$ ��� $#3$.} -\def\es@seedmessage#1{The seed is equal to $#1$.} -\def\es@pointname{������} -\def\es@pointsname{������} -\def\es@exercisename{������} -\def\es@solutionname{����} - -%%% Labels (xyz.cfg) - -\def\profname{��������� \ } -\def\studsignname{�������� ������} -\def\studlastname{�������} -\def\studfirstname{�����} -\def\studid{��.����������} -\def\versionname{������} -\def\pagename{������} -\def\solutionsname{������} - -%%% Error Messages - -\def\es@cfgerrormessageshort{� ������� \CurrentOption\space ��� �������} -\def\es@cfgerrormessagelong{�� ������ esami ������� ��� ��������� ��� �� ������ �����������} -\def\es@numcompitierror{���������� � ������������� ��� ������� ��� ��������!} -\def\es@mastererror{WARNING: YOU CANNOT COMPILE THE MASTER FILE:\MessageBreak - PRESS 'x' TO EXIT AND RENAME THE FILE} -\def\es@zerodenerror#1#2{The fraction #1/#2 in exercise \nome \space has the denominator equal to 0} -\def\es@zeronumerrorshort#1#2{The fraction #1/#2 in exercise \nome \space is equal to 0} -\def\es@zeronumerrorlong#1#2{If the fraction can be 0, you must use the "sempliz" command} -\def\es@fraconewarn#1#2{The fraction #1/#2 in exercise \nome \space is equal to 1} -\def\es@radicalerror{The radicand in exercise \nome \space is negative} -\def\es@fpsetparerrorshort{Not all conditions are satisfied after \maxLoopLimit\space tries} -\def\es@EstraiMessage#1#2{\string\textbf\string{\string\noindent\space Expressions $#2i$, $#2ii$ \string\dots\space - assume the values #1 \string}\string\newline} - -%%% The date - -\def\es@longdate#1/#2/#3\@empty{\ifcase#3\or - 1�\or 2�\or 3�\or 4�\or 5�\or - 6�\or 7�\or 8�\or 9�\or 10�\or - 11�\or 12�\or 13�\or 14�\or 15�\or - 16�\or 17�\or 18�\or 19�\or 20�\or - 21�\or 22�\or 23�\or 24�\or 25�\or - 26�\or 27�\or 28�\or 29�\or 30�\or - 31�\fi~\ifcase#2\or - ����������\or �����������\or �������\or ��������\or �����\or �������\or - �������\or ���������\or �����������\or ���������r\or ���������\or - ����������\fi \space #1} -\def\es@shortdate#1/#2/#3\@empty{#1/#2/#3} - -%%% Useful Language dependent packages - -\AtEndOfPackage{ -\usepackage{babel} -\usepackage{geometry} -\geometry{a4paper,lmargin=6mm,rmargin=18mm,tmargin=6mm,bmargin=18mm,marginparsep=2mm,footskip=1cm} -%\usepackage{eurosym} -\usepackage[np,autolanguage]{numprint} -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/esami/es-italian.lng new/doc/latex/esami/es-italian.lng --- old/doc/latex/esami/es-italian.lng 2013-04-26 00:35:45.000000000 +0200 +++ new/doc/latex/esami/es-italian.lng 1970-01-01 01:00:00.000000000 +0100 @@ -1,65 +0,0 @@ -%%% Labels (esami.sty) - -\def\es@pointname{punto} -\def\es@pointsname{punti} -\def\es@exercisename{Esercizio} -\def\es@solutionname{Soluzione} - -%%% Labels (xyz.cfg) - -\def\profname{Prof.\ } -\def\studsignname{Firma leggibile dello studente} -\def\studlastname{Cognome} -\def\studfirstname{Nome} -\def\studid{Matricola} -\def\versionname{Versione} -\def\pagename{Pagina} -\def\solutionsname{Soluzioni} -\def\es@EstraiMessage#1#2{\string\textbf\string{\string\noindent\space Le espressioni $#2i$, $#2ii$ \string\dots\space - assumono i valori #1 \string}\string\newline} - -%%% Error Messages - -\def\es@cfgerrormessageshort{L'opzione \CurrentOption\space non esiste} -\def\es@cfgerrormessagelong{Si deve specificare un'opzione per la configurazione nel pacchetto esami} -\def\es@parametermessage#1#2#3{Il parametro $#1$ varia da $#2$ a $#3$.} -\def\es@seedmessage#1{Il seme vale $#1$.} - -\def\es@numcompitierror{Si deve specificare il numero delle versioni!} -\def\es@mastererror{ATTENZIONE: NON SI PUO' LAVORARE SUL FILE MASTER: \MessageBreak - PREMERE 'x' PER USCIRE E CAMBIARE NOME AL FILE} -\def\es@zerodenerror#1#2{La frazione #1/#2 nell'esercizio \nome \space ha il denominatore 0} -\def\es@zeronumerrorshort#1#2{La frazione #1/#2 nell'esercizio \nome \space vale 0} -\def\es@zeronumerrorlong#1#2{Se si vuole che una frazione possa valere 0 usare il comando "sempliz"} -\def\es@fraconewarn#1#2{La frazione #1/#2 nell'esercizio \nome \space vale 1} -\def\es@radicalerror{Il radicando nell'esercizio \nome \space è negativo} -\def\es@fpsetparerrorshort{Non sono state soddisfatte tutte le condizioni dopo \maxLoopLimit\space tentativi} - -%%% The date - -\def\es@longdate#1/#2/#3\@empty{#3\space%%% the date - \ifcase#2\or - gennaio\or febbraio\or marzo\or aprile\or maggio\or giugno\or - luglio\or agosto\or settembre\or ottobre\or novembre\or - dicembre\fi\space #1 - } - -\def\es@shortdate#1/#2/#3\@empty{#3/#2/#1} - - -%%% Useful Language dependent packages - -\AtEndOfPackage{ -\usepackage{geometry} -\geometry{a4paper,lmargin=6mm,rmargin=18mm,tmargin=6mm,bmargin=18mm,marginparsep=2mm,footskip=1cm} -\usepackage{icomma} -\usepackage{eurosym} -\usepackage[np,autolanguage]{numprint} -\newcommand*\npstyleitalian{% -\npthousandsep{\,}% -\npdecimalsign{,}% -\npproductsign{\ensuremath{\cdot}}% -\npunitseparator{~}% - \npthousandthpartsep{} -} -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/esami/es-spanish.lng new/doc/latex/esami/es-spanish.lng --- old/doc/latex/esami/es-spanish.lng 2013-04-26 00:35:45.000000000 +0200 +++ new/doc/latex/esami/es-spanish.lng 1970-01-01 01:00:00.000000000 +0100 @@ -1,66 +0,0 @@ -%%% Spanish translation by Mar�a Hern�ndez Cifre - - -%%% Labels (esami.sty) - -\def\es@parametermessage#1#2#3{El par\'ametro $#1$ se encuentra entre $#2$ y $#3$.} -\def\es@seedmessage#1{La semilla es igual a $#1$.} -\def\es@pointname{punto} -\def\es@pointsname{puntos} -\def\es@exercisename{Ejercicio} -\def\es@solutionname{Soluci\'on} - -%%% Labels (xyz.cfg) - -\def\profname{Prof.\ } -\def\studsignname{Firma del alumno} -\def\studlastname{Apellido} -\def\studfirstname{Nombre} -\def\studid{Identificaci\'on del alumno} -\def\versionname{Versi\'on} -\def\pagename{P\'agina} -\def\solutionsname{Soluciones} - -%%% Error Messages - -\def\es@cfgerrormessageshort{La opci�n \CurrentOption\space no existe} -\def\es@cfgerrormessagelong{El paquete esami necesita una opci�n para la configuraci�n del fichero} -\def\es@numcompitierror{Es necesario especificar el n�mero de versiones!} -\def\es@mastererror{AVISO: NO SE PUEDE COMPILAR EL FICHERO PRINCIPAL:\MessageBreak - PRESIONE 'x' PARA SALIR Y RENOMBRE EL FICHERO} -\def\es@zerodenerror#1#2{El denominador de la fracci�n #1/#2 en el ejercicio \nome \space es 0} -\def\es@zeronumerrorshort#1#2{La fracci�n #1/#2 en el ejercicio \nome \space vale 0} -\def\es@zeronumerrorlong#1#2{Si la fracci�n puede ser 0, debe utilizar el comando "sempliz"} -\def\es@fraconewarn#1#2{La fracci�n #1/#2 en el ejercicio \nome \space vale 1} -\def\es@radicalerror{El radicando en el ejercicio \nome \space es negativo} -\def\es@fpsetparerrorshort{No se verifican todas las condiciones despu�s de \maxLoopLimit\space intentos} -\def\es@EstraiMessage#1#2{\string\textbf\string{\string\noindent\space Las expresiones $#2i$, $#2ii$ \string\dots\space - toman los valores #1 \string}\string\newline} - -%%% The date - -\def\es@longdate#1/#2/#3\@empty{#3\space \ifcase#2\or - Enero \or Febrero \or Marzo \or Abril - \or Mayo \or Junio \or Julio \or Agosto - \or Septiembre \or Octubre \or Noviembre - \or Diciembre\fi \space #1} - -\def\es@shortdate#1/#2/#3\@empty{#3/#2/#1} - - -%%% Useful Language dependent packages - -\AtEndOfPackage{ -\usepackage{geometry} -\geometry{a4paper,lmargin=6mm,rmargin=18mm,tmargin=6mm,bmargin=18mm,marginparsep=2mm,footskip=1cm} -\usepackage{icomma} -\usepackage{eurosym} -\usepackage[np,autolanguage]{numprint} -\newcommand*\npstylespanish{% -\npthousandsep{\,}% -\npdecimalsign{,}% -\npproductsign{\ensuremath{\cdot}}% -\npunitseparator{~}% - \npthousandthpartsep{} -} -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/esami.doc.tlpobj new/tlpkg/tlpobj/esami.doc.tlpobj --- old/tlpkg/tlpobj/esami.doc.tlpobj 2013-04-26 03:53:32.000000000 +0200 +++ new/tlpkg/tlpobj/esami.doc.tlpobj 2014-01-09 03:22:12.000000000 +0100 @@ -1,15 +1,17 @@ name esami.doc category Package -revision 30109 +revision 32608 shortdesc doc files of esami relocated 1 -docfiles size=318 +docfiles size=379 RELOC/doc/latex/esami/README RELOC/doc/latex/esami/doc/esami-doc-en.pdf RELOC/doc/latex/esami/doc/esami-doc-en.tex + RELOC/doc/latex/esami/doc/esami-doc-it.dtx RELOC/doc/latex/esami/doc/esami-doc-it.pdf RELOC/doc/latex/esami/doc/esami-doc-it.tex RELOC/doc/latex/esami/doc/esami.bib + RELOC/doc/latex/esami/doc/examples/esami-xyz.cfg RELOC/doc/latex/esami/doc/examples/master-sol.tex RELOC/doc/latex/esami/doc/examples/master.tex RELOC/doc/latex/esami/doc/examples/problem1.tex @@ -25,14 +27,8 @@ RELOC/doc/latex/esami/doc/examples/test3.tex RELOC/doc/latex/esami/doc/examples/test4.tex RELOC/doc/latex/esami/doc/examples/test5-fillin.tex + RELOC/doc/latex/esami/doc/examples/testA-sol.pdf RELOC/doc/latex/esami/doc/examples/testA.pdf RELOC/doc/latex/esami/doc/examples/testA.tex RELOC/doc/latex/esami/doc/examples/totale-versioni.tex - RELOC/doc/latex/esami/es-UKenglish.lng - RELOC/doc/latex/esami/es-USenglish.lng - RELOC/doc/latex/esami/es-french.lng - RELOC/doc/latex/esami/es-german.lng - RELOC/doc/latex/esami/es-greek.lng - RELOC/doc/latex/esami/es-italian.lng - RELOC/doc/latex/esami/es-spanish.lng RELOC/doc/latex/esami/esami-xyz.cfg ++++++ esami.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/esami/es-UKenglish.lng new/tex/latex/esami/es-UKenglish.lng --- old/tex/latex/esami/es-UKenglish.lng 1970-01-01 01:00:00.000000000 +0100 +++ new/tex/latex/esami/es-UKenglish.lng 2014-01-08 23:44:48.000000000 +0100 @@ -0,0 +1,60 @@ +%%% Labels (esami.sty) + +\def\es@parametermessage#1#2#3{The parameter $#1$ is between $#2$ and $#3$.} +\def\es@seedmessage#1{The seed is equal to $#1$.} +\def\es@pointname{point} +\def\es@pointsname{points} +\def\es@exercisename{Exercise} +\def\es@solutionname{Solution} + +%%% Labels (xyz.cfg) + +\def\profname{Prof.\ } +\def\studsignname{Student's signature} +\def\studlastname{Last Name} +\def\studfirstname{First Name} +\def\studid{Student's ID} +\def\versionname{Version} +\def\pagename{Page} +\def\solutionsname{Solutions} + +%%% Error Messages + +\def\es@cfgerrormessageshort{The option \CurrentOption\space does not exists} +\def\es@cfgerrormessagelong{Package esami needs an option for the configuration file} +\def\es@numcompitierror{It's necessary to specify the number of versions!} +\def\es@mastererror{WARNING: YOU CANNOT COMPILE THE MASTER FILE:\MessageBreak + PRESS 'x' TO EXIT AND RENAME THE FILE} +\def\es@zerodenerror#1#2{The fraction #1/#2 in exercise \nome \space has the denominator equal to 0} +\def\es@zeronumerrorshort#1#2{The fraction #1/#2 in exercise \nome \space is equal to 0} +\def\es@zeronumerrorlong#1#2{If the fraction can be 0, you must use the "sempliz" command} +\def\es@fraconewarn#1#2{The fraction #1/#2 in exercise \nome \space is equal to 1} +\def\es@radicalerror{The radicand in exercise \nome \space is negative} +\def\es@fpsetparerrorshort{Not all conditions are satisfied after \maxLoopLimit\space tries} +\def\es@EstraiMessage#1#2{\string\textbf\string{\string\noindent\space Expressions $#2i$, $#2ii$ \string\dots\space + assume the values #1 \string}\string\newline} + +%%% The date + +\def\es@longdate#1/#2/#3\@empty{\ifcase#3\or + 1st\or 2nd\or 3rd\or 4th\or 5th\or + 6th\or 7th\or 8th\or 9th\or 10th\or + 11th\or 12th\or 13th\or 14th\or 15th\or + 16th\or 17th\or 18th\or 19th\or 20th\or + 21st\or 22nd\or 23rd\or 24th\or 25th\or + 26th\or 27th\or 28th\or 29th\or 30th\or + 31st\fi~\ifcase#2\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or + December\fi \space #1} +\def\es@shortdate#1/#2/#3\@empty{#1/#2/#3} + +%%% Useful Language dependent packages + +\AtEndOfPackage{ +\usepackage{babel} +\usepackage{geometry} +\geometry{a4paper,lmargin=6mm,rmargin=18mm,tmargin=6mm,bmargin=18mm,marginparsep=2mm,footskip=1cm} +%\usepackage{eurosym} +\usepackage[np,autolanguage]{numprint} +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/esami/es-USenglish.lng new/tex/latex/esami/es-USenglish.lng --- old/tex/latex/esami/es-USenglish.lng 1970-01-01 01:00:00.000000000 +0100 +++ new/tex/latex/esami/es-USenglish.lng 2014-01-08 23:44:48.000000000 +0100 @@ -0,0 +1,54 @@ +%%% Labels (esami.sty) + +\def\es@parametermessage#1#2#3{The parameter $#1$ is between $#2$ and $#3$.} +\def\es@seedmessage#1{The seed is equal to $#1$.} +\def\es@pointname{point} +\def\es@pointsname{points} +\def\es@exercisename{Exercise} +\def\es@solutionname{Solution} + +%%% Labels (xyz.cfg) + +\def\profname{Prof.\ } +\def\studsignname{Student's signature} +\def\studlastname{Last Name} +\def\studfirstname{First Name} +\def\studid{Student's ID} +\def\versionname{Version} +\def\pagename{Page} +\def\solutionsname{Solutions} + +%%% Error Messages + +\def\es@cfgerrormessageshort{The option \CurrentOption\space does not exists} +\def\es@cfgerrormessagelong{Package esami needs an option for the configuration file} +\def\es@numcompitierror{It's necessary to specify the number of versions!} +\def\es@mastererror{WARNING: YOU CANNOT COMPILE THE MASTER FILE:\MessageBreak + PRESS 'x' TO EXIT AND RENAME THE FILE} +\def\es@zerodenerror#1#2{The fraction #1/#2 in exercise \nome \space has the denominator equal to 0} +\def\es@zeronumerrorshort#1#2{The fraction #1/#2 in exercise \nome \space is equal to 0} +\def\es@zeronumerrorlong#1#2{If the fraction can be 0, you must use the "sempliz" command} +\def\es@fraconewarn#1#2{The fraction #1/#2 in exercise \nome \space is equal to 1} +\def\es@radicalerror{The radicand in exercise \nome \space is negative} +\def\es@fpsetparerrorshort{Not all conditions are satisfied after \maxLoopLimit\space tries} +\def\es@EstraiMessage#1#2{\string\textbf\string{\string\noindent\space Expressions $#2i$, $#2ii$ \string\dots\space + assume the values #1 \string}\string\newline} + + +%%% The date + +\def\es@longdate#1/#2/#3\@empty{\ifcase#2\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or + December\fi \space #3,\space #1} +\def\es@shortdate#1/#2/#3\@empty{#1/#2/#3} + +%%% Useful Language dependent packages + +\AtEndOfPackage{ +\usepackage{babel} +\usepackage{geometry} +\geometry{a4paper,lmargin=6mm,rmargin=18mm,tmargin=6mm,bmargin=18mm,marginparsep=2mm,footskip=1cm} +%\usepackage{eurosym} +\usepackage[np,autolanguage]{numprint} +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/esami/es-french.lng new/tex/latex/esami/es-french.lng --- old/tex/latex/esami/es-french.lng 1970-01-01 01:00:00.000000000 +0100 +++ new/tex/latex/esami/es-french.lng 2014-01-08 23:44:48.000000000 +0100 @@ -0,0 +1,55 @@ +%%% Labels (esami.sty) + +\def\es@parametermessage#1#2#3{Le param\`{e}tre $#1$ varie entre $#2$ et $#3$.} +\def\es@seedmessage#1{La graine est $#1$.} +\def\es@pointname{point} +\def\es@pointsname{points} +\def\es@exercisename{Exercice} +\def\es@solutionname{Solution} + +%%% Labels (xyz.cfg) + +\def\profname{Prof.\ } +\def\studsignname{Signature de l'\'{e}tudiant} +\def\studlastname{Nom} +\def\studfirstname{Pr\'{e}nom} +\def\studid{Num\'{e}ro de matricule} +\def\versionname{Version} +\def\pagename{Page} +\def\solutionsname{Solutions} + +%%% Error Messages + +\def\es@cfgerrormessageshort{L'option \CurrentOption\space n'existe pas} +\def\es@cfgerrormessagelong{Vous devez sp\'{e}cifier une option pour le file de configuration du paquet esami} +\def\es@numcompitierror{Vous devez sp\'{e}cifier le nombre de versions!} +\def\es@mastererror{ATTENTION: VOUS NE POUVEZ PAS TRAVAILLER SUR LE FILE MASTER:\MessageBreak + PRESSEZ "X" POUR SORTIR ET CHANGER LE NOM DU FILE} +\def\es@zerodenerror#1#2{La fraction #1/#2 dans l'exercice \nome \space a le d\'{e}nominateur \'{e}gal à 0} +\def\es@zeronumerrorshort#1#2{La fraction #1/#2 dans l'exercice \nome \space est \'{e}gal à 0} +\def\es@zeronumerrorlong#1#2{Si vous voulez qu'une fraction peut être 0, utilisez la commande "sempliz"} +\def\es@fraconewarn#1#2{La fraction #1/#2 dans l'exercice \nome \space est \'{e}gal à 1} +\def\es@radicalerror{Le radicande dans l'exercice \nome \space est n\'{e}gatif} +\def\es@fpsetparerrorshort{Les conditions ne sont pas satisfaites apr\`{e}s \maxLoopLimit\space tentatives} +\def\es@EstraiMessage#1#2{\string\textbf\string{\string\noindent\space Les expressions $#2i$, $#2ii$ \string\dots\space + prennent les valeurs #1 \string}\string\newline} + +%% The date + +\def\es@longdate#1/#2/#3\@empty{#3\space \ifcase#2\or + janvier\or fevrier\or mars\or avril\or mai\or juin\or + juillet\or ao\^{u}t\or septembre\or octobre\or novembre\or + d\'{e}cembre\fi \space #1} +\def\es@shortdate#1/#2/#3\@empty{#3/#2/#1} + +%%% Useful Language dependent packages + +\AtEndOfPackage{ +\catcode`\:=12 %%% for compatibility babel/fp +\usepackage{geometry} +\geometry{a4paper,lmargin=6mm,rmargin=18mm,tmargin=6mm,bmargin=18mm,marginparsep=2mm,footskip=1cm} +\usepackage{icomma} +\usepackage{eurosym} +\usepackage[np,autolanguage]{numprint} +} + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/esami/es-german.lng new/tex/latex/esami/es-german.lng --- old/tex/latex/esami/es-german.lng 1970-01-01 01:00:00.000000000 +0100 +++ new/tex/latex/esami/es-german.lng 2014-01-08 23:44:48.000000000 +0100 @@ -0,0 +1,54 @@ +%%% German translation by Kerstin von Kirschhausen + + +%%% Labels (esami.sty) + +\def\es@parametermessage#1#2#3{Der Parameter $#1$ liegt zwischen $#2$ und $#3$.} +\def\es@seedmessage#1{Die Saat gleicht $#1$.} +\def\es@pointname{Punkt} +\def\es@pointsname{Punkte} +\def\es@exercisename{Aufgabe} +\def\es@solutionname{L\"{o}sung} + +%%% Labels (xyz.cfg) + +\def\profname{Professor} +\def\studsignname{Unterschrift des Studenten} +\def\studlastname{Nachname} +\def\studfirstname{Vorname} +\def\studid{Matrikelnummer} +\def\versionname{Version} +\def\pagename{Seite} +\def\solutionsname{L\"{o}sungen} + +%%% Error Messages + +\def\es@cfgerrormessageshort{Die Möglichkeit \CurrentOption\space existiert nicht} +\def\es@cfgerrormessagelong{Das Paket "esami" braucht eine Möglichkeit für die Konfigurationsdatei} +\def\es@numcompitierror{Die Anzahl der Versionen muss ausdrücklich angegeben werden} +\def\es@mastererror{Achtung! Sie können die Stammdatei nicht erstellen: \MessageBreak +Drücken Sie "x" um zu beenden und bennen Sie die Datei um. } +\def\es@zerodenerror#1#2{In der Aufgabe \nome \space hat der Bruch #1/#2 den Nenner gleich 0} +\def\es@zeronumerrorshort#1#2{In der Aufgabe \nome \space ist der Bruch #1/#2 gleich 0} +\def\es@zeronumerrorlong#1#2{Wenn das Ergebnis des Bruchs 0 ergibt, dann sollst Du den "sempliz" Befehl anwenden} +\def\es@fraconewarn#1#2{In der Aufgabe \nome \space ist der Bruch #1/#2 gleich 1} +\def\es@radicalerror{Der Radikand in der Aufgabe \nome \space ist negativ} +\def\es@fpsetparerrorshort{Nicht alle Bedingungen sind nach \maxLoopLimit\space versuchen befriedigt} +\def\es@EstraiMessage#1#2{\string\textbf\string{\string\noindent\space Die Ausdrücke $#2i$, $#2ii$ \string\dots\space + setzten den Wert #1 voraus\string}\string\newline} + +%%% The date + +\def\es@longdate#1/#2/#3\@empty{#3\space\ifcase#2\or + Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or + Juli\or August\or September\or Oktober\or November\or Dezember\fi \space #1} +\def\es@shortdate#1/#2/#3\@empty{#3/#2/#1} + +%%% Useful Language dependent packages + +\AtEndOfPackage{ +\usepackage{geometry} +\geometry{a4paper,lmargin=6mm,rmargin=18mm,tmargin=6mm,bmargin=18mm,marginparsep=2mm,footskip=1cm} +\usepackage{eurosym} +\usepackage[np,autolanguage]{numprint} +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/esami/es-greek.lng new/tex/latex/esami/es-greek.lng --- old/tex/latex/esami/es-greek.lng 1970-01-01 01:00:00.000000000 +0100 +++ new/tex/latex/esami/es-greek.lng 2014-01-08 23:44:48.000000000 +0100 @@ -0,0 +1,63 @@ +%%% Greek translation by Sotiris Hasapis + + +%%% Labels (esami.sty) + +\def\es@parametermessage#1#2#3{� ���������� $#1$ ����� ������ $#2$ ��� $#3$.} +\def\es@seedmessage#1{The seed is equal to $#1$.} +\def\es@pointname{������} +\def\es@pointsname{������} +\def\es@exercisename{������} +\def\es@solutionname{����} + +%%% Labels (xyz.cfg) + +\def\profname{��������� \ } +\def\studsignname{�������� ������} +\def\studlastname{�������} +\def\studfirstname{�����} +\def\studid{��.����������} +\def\versionname{������} +\def\pagename{������} +\def\solutionsname{������} + +%%% Error Messages + +\def\es@cfgerrormessageshort{� ������� \CurrentOption\space ��� �������} +\def\es@cfgerrormessagelong{�� ������ esami ������� ��� ��������� ��� �� ������ �����������} +\def\es@numcompitierror{���������� � ������������� ��� ������� ��� ��������!} +\def\es@mastererror{WARNING: YOU CANNOT COMPILE THE MASTER FILE:\MessageBreak + PRESS 'x' TO EXIT AND RENAME THE FILE} +\def\es@zerodenerror#1#2{The fraction #1/#2 in exercise \nome \space has the denominator equal to 0} +\def\es@zeronumerrorshort#1#2{The fraction #1/#2 in exercise \nome \space is equal to 0} +\def\es@zeronumerrorlong#1#2{If the fraction can be 0, you must use the "sempliz" command} +\def\es@fraconewarn#1#2{The fraction #1/#2 in exercise \nome \space is equal to 1} +\def\es@radicalerror{The radicand in exercise \nome \space is negative} +\def\es@fpsetparerrorshort{Not all conditions are satisfied after \maxLoopLimit\space tries} +\def\es@EstraiMessage#1#2{\string\textbf\string{\string\noindent\space Expressions $#2i$, $#2ii$ \string\dots\space + assume the values #1 \string}\string\newline} + +%%% The date + +\def\es@longdate#1/#2/#3\@empty{\ifcase#3\or + 1�\or 2�\or 3�\or 4�\or 5�\or + 6�\or 7�\or 8�\or 9�\or 10�\or + 11�\or 12�\or 13�\or 14�\or 15�\or + 16�\or 17�\or 18�\or 19�\or 20�\or + 21�\or 22�\or 23�\or 24�\or 25�\or + 26�\or 27�\or 28�\or 29�\or 30�\or + 31�\fi~\ifcase#2\or + ����������\or �����������\or �������\or ��������\or �����\or �������\or + �������\or ���������\or �����������\or ���������r\or ���������\or + ����������\fi \space #1} +\def\es@shortdate#1/#2/#3\@empty{#1/#2/#3} + +%%% Useful Language dependent packages + +\AtEndOfPackage{ +\usepackage{babel} +\usepackage{geometry} +\geometry{a4paper,lmargin=6mm,rmargin=18mm,tmargin=6mm,bmargin=18mm,marginparsep=2mm,footskip=1cm} +%\usepackage{eurosym} +\usepackage[np,autolanguage]{numprint} +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/esami/es-italian.lng new/tex/latex/esami/es-italian.lng --- old/tex/latex/esami/es-italian.lng 1970-01-01 01:00:00.000000000 +0100 +++ new/tex/latex/esami/es-italian.lng 2014-01-08 23:44:48.000000000 +0100 @@ -0,0 +1,68 @@ +%%% Labels (esami.sty) + +\def\es@pointname{punto} +\def\es@pointsname{punti} +\def\es@exercisename{Esercizio} +\def\es@solutionname{Soluzione} + +%%% Labels (xyz.cfg) + +\def\profname{Prof.\ } +\def\studsignname{Firma leggibile dello studente} +\def\studlastname{Cognome} +\def\studfirstname{Nome} +\def\studid{Matricola} +\def\versionname{Versione} +\def\pagename{Pagina} +\def\solutionsname{Soluzioni} +\def\es@EstraiMessage#1#2{\string\textbf\string{\string\noindent\space Le espressioni $#2i$, $#2ii$ \string\dots\space + assumono i valori #1 \string}\string\newline} + +%%% Error Messages + +\def\es@cfgerrormessageshort{L'opzione \CurrentOption\space non esiste} +\def\es@cfgerrormessagelong{Si deve specificare un'opzione per la configurazione nel pacchetto esami} +\def\es@parametermessage#1#2#3{Il parametro $#1$ varia da $#2$ a $#3$.} +\def\es@seedmessage#1{Il seme vale $#1$.} + +\def\es@numcompitierror{Si deve specificare il numero delle versioni!} +\def\es@mastererror{ATTENZIONE: NON SI PUO' LAVORARE SUL FILE MASTER: \MessageBreak + PREMERE 'x' PER USCIRE E CAMBIARE NOME AL FILE} +\def\es@zerodenerror#1#2{La frazione #1/#2 nell'esercizio \nome \space ha il denominatore 0} +\def\es@zeronumerrorshort#1#2{La frazione #1/#2 nell'esercizio \nome \space vale 0} +\def\es@zeronumerrorlong#1#2{Se si vuole che una frazione possa valere 0 usare il comando "sempliz"} +\def\es@fraconewarn#1#2{La frazione #1/#2 nell'esercizio \nome \space vale 1} +\def\es@radicalerror{Il radicando nell'esercizio \nome \space è negativo} +\def\es@fpsetparerrorshort{Non sono state soddisfatte tutte le condizioni dopo \maxLoopLimit\space tentativi} + +%%% The date + +\def\es@longdate#1/#2/#3\@empty{#3\space%%% the date + \ifcase#2\or + gennaio\or febbraio\or marzo\or aprile\or maggio\or giugno\or + luglio\or agosto\or settembre\or ottobre\or novembre\or + dicembre\fi\space #1 + } + +\def\es@shortdate#1/#2/#3\@empty{#3/#2/#1} + + +%%% Useful Language dependent packages + +\AtEndOfPackage{ +\usepackage{babel} +\IntelligentComma +\usepackage{geometry} +\geometry{a4paper,lmargin=6mm,rmargin=22mm,tmargin=10mm,bmargin=18mm,marginparsep=2mm,footskip=1cm} +%\usepackage{icomma} +\usepackage{eurosym} +\usepackage[np,autolanguage]{numprint} +\newcommand*\npstyleitalian{% +\npthousandsep{\,}% +\npdecimalsign{,}% +\npproductsign{\ensuremath{\cdot}}% +\npunitseparator{~}% + \npthousandthpartsep{} +} + \npfourdigitnosep +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/esami/es-spanish.lng new/tex/latex/esami/es-spanish.lng --- old/tex/latex/esami/es-spanish.lng 1970-01-01 01:00:00.000000000 +0100 +++ new/tex/latex/esami/es-spanish.lng 2014-01-08 23:44:48.000000000 +0100 @@ -0,0 +1,66 @@ +%%% Spanish translation by Mar�a Hern�ndez Cifre + + +%%% Labels (esami.sty) + +\def\es@parametermessage#1#2#3{El par\'ametro $#1$ se encuentra entre $#2$ y $#3$.} +\def\es@seedmessage#1{La semilla es igual a $#1$.} +\def\es@pointname{punto} +\def\es@pointsname{puntos} +\def\es@exercisename{Ejercicio} +\def\es@solutionname{Soluci\'on} + +%%% Labels (xyz.cfg) + +\def\profname{Prof.\ } +\def\studsignname{Firma del alumno} +\def\studlastname{Apellido} +\def\studfirstname{Nombre} +\def\studid{Identificaci\'on del alumno} +\def\versionname{Versi\'on} +\def\pagename{P\'agina} +\def\solutionsname{Soluciones} + +%%% Error Messages + +\def\es@cfgerrormessageshort{La opci�n \CurrentOption\space no existe} +\def\es@cfgerrormessagelong{El paquete esami necesita una opci�n para la configuraci�n del fichero} +\def\es@numcompitierror{Es necesario especificar el n�mero de versiones!} +\def\es@mastererror{AVISO: NO SE PUEDE COMPILAR EL FICHERO PRINCIPAL:\MessageBreak + PRESIONE 'x' PARA SALIR Y RENOMBRE EL FICHERO} +\def\es@zerodenerror#1#2{El denominador de la fracci�n #1/#2 en el ejercicio \nome \space es 0} +\def\es@zeronumerrorshort#1#2{La fracci�n #1/#2 en el ejercicio \nome \space vale 0} +\def\es@zeronumerrorlong#1#2{Si la fracci�n puede ser 0, debe utilizar el comando "sempliz"} +\def\es@fraconewarn#1#2{La fracci�n #1/#2 en el ejercicio \nome \space vale 1} +\def\es@radicalerror{El radicando en el ejercicio \nome \space es negativo} +\def\es@fpsetparerrorshort{No se verifican todas las condiciones despu�s de \maxLoopLimit\space intentos} +\def\es@EstraiMessage#1#2{\string\textbf\string{\string\noindent\space Las expresiones $#2i$, $#2ii$ \string\dots\space + toman los valores #1 \string}\string\newline} + +%%% The date + +\def\es@longdate#1/#2/#3\@empty{#3\space \ifcase#2\or + Enero \or Febrero \or Marzo \or Abril + \or Mayo \or Junio \or Julio \or Agosto + \or Septiembre \or Octubre \or Noviembre + \or Diciembre\fi \space #1} + +\def\es@shortdate#1/#2/#3\@empty{#3/#2/#1} + + +%%% Useful Language dependent packages + +\AtEndOfPackage{ +\usepackage{geometry} +\geometry{a4paper,lmargin=6mm,rmargin=18mm,tmargin=6mm,bmargin=18mm,marginparsep=2mm,footskip=1cm} +\usepackage{icomma} +\usepackage{eurosym} +\usepackage[np,autolanguage]{numprint} +\newcommand*\npstylespanish{% +\npthousandsep{\,}% +\npdecimalsign{,}% +\npproductsign{\ensuremath{\cdot}}% +\npunitseparator{~}% + \npthousandthpartsep{} +} +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/esami/esami.sty new/tex/latex/esami/esami.sty --- old/tex/latex/esami/esami.sty 2013-04-26 00:35:45.000000000 +0200 +++ new/tex/latex/esami/esami.sty 2014-01-08 23:44:48.000000000 +0100 @@ -15,9 +15,13 @@ %%%%%% CHANGELOG %%%%%%% % Version 1.0 % First release to CTAN +% Version 1.1 +% Update: Inserted the dependance on the package \texttt{environ} to remove some errors in the \LaTeX\ compilation. +%Removed the dependance on the package \texttt{icomma} in the italian localization file es-italian.lng because of the introduction +%of new features in the package \texttt{babel} for the Italian langaguage (macro \texttt{IntelligentComma}). \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{esami} - [2012/03/08 v1.0 An Exam Construction Package] + [2013/12/09 v1.1 An Exam Construction Package] % +=============================+ % | THE OPTIONS | @@ -25,7 +29,7 @@ \newif\ifes@language \es@languagefalse \DeclareOption{italian}{\InputIfFileExists{es-\CurrentOption.lng}% - { \es@languagetrue \typeout{esami: Verr\`{a} usata la lingua italiana}}% + { \es@languagetrue \typeout{esami: Verrà usata la lingua italiana}}% {\typeout{esami: Il file es-\CurrentOption.lng non esiste.}}} \DeclareOption{UKenglish}{\InputIfFileExists{es-\CurrentOption.lng}% {\typeout{esami: English Language will be used} \es@languagetrue}% @@ -37,10 +41,10 @@ { \typeout{esami: English Language will be used}\es@languagetrue}% { \typeout{esami: The file es-\CurrentOption.lng does not exists.}}} \DeclareOption{french}{\InputIfFileExists{es-\CurrentOption.lng}% - { \typeout{esami: La langue fran\c{c}aise sera utilis\'{e}e}\es@languagetrue} + { \typeout{esami: La langue française sera utilisée}\es@languagetrue} { \typeout{esami: The file es-\CurrentOption.lng does not exists.}}} \DeclareOption{spanish}{\InputIfFileExists{es-\CurrentOption.lng}% - { \typeout{esami:Se utilizar\'{a} el idioma espa\~{n}ol}\es@languagetrue} + { \typeout{esami:Se utilizará el idioma español}\es@languagetrue} { \typeout{esami: The file es-\CurrentOption.lng does not exists.}}} \DeclareOption{german}{\InputIfFileExists{es-\CurrentOption.lng}% { \typeout{esami:Deutsch als Sprache soll angewandt werden}\es@languagetrue} @@ -149,6 +153,7 @@ \usepackage{currfile} \usepackage{array} \usepackage{ifthen} +\usepackage{environ} \usepackage{xargs} \usepackage{multicol} \usepackage{pstricks,pstricks-add} @@ -548,16 +553,16 @@ %%%%% Other commands %%%%%% -\long\def\Collect@Body#1{%%%%% This command is taken from the environ package %%%% - \@envbody{\expandafter#1\expandafter{\the\@envbody}}% - \edef\process@envbody{\the\@envbody\noexpand\end{\@currenvir}}% - \@envbody\@emptytoks \def\begin@stack{b}% - \begingroup - \expandafter\let\csname\@currenvir\endcsname\Collect@@Body - \edef\process@envbody{% - \expandafter\noexpand\csname\@currenvir\endcsname}% - \process@envbody -} +%\long\def\Collect@Body#1{%%%%% This command is taken from the environ package %%%% +% \@envbody{\expandafter#1\expandafter{\the\@envbody}}% +% \edef\process@envbody{\the\@envbody\noexpand\end{\@currenvir}}% +% \@envbody\@emptytoks \def\begin@stack{b}% +% \begingroup +% \expandafter\let\csname\@currenvir\endcsname\Collect@@Body +% \edef\process@envbody{% +% \expandafter\noexpand\csname\@currenvir\endcsname}% +% \process@envbody +%} \newcommand\stepvers{\stepcounter{vers}\ifes@solutions \immediate\write\sols{\string\begin{minipage}{.33\string\textwidth}\string\large\string\textbf{\es@solutionname\ \versionname\ n. \thevers}}\fi} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/esami.tlpobj new/tlpkg/tlpobj/esami.tlpobj --- old/tlpkg/tlpobj/esami.tlpobj 2013-04-26 03:53:33.000000000 +0200 +++ new/tlpkg/tlpobj/esami.tlpobj 2014-01-09 03:22:13.000000000 +0100 @@ -1,6 +1,6 @@ name esami category Package -revision 30109 +revision 32608 shortdesc Typeset exams with scrambled questions and answers. relocated 1 longdesc The package enables the user to typeset exams with multiple @@ -11,9 +11,16 @@ longdesc possible to do arithmetical operations on them. The package is longdesc localised in Italian, English, French, German, Greek and longdesc Spanish. -runfiles size=18 +runfiles size=25 + RELOC/tex/latex/esami/es-UKenglish.lng + RELOC/tex/latex/esami/es-USenglish.lng + RELOC/tex/latex/esami/es-french.lng + RELOC/tex/latex/esami/es-german.lng + RELOC/tex/latex/esami/es-greek.lng + RELOC/tex/latex/esami/es-italian.lng + RELOC/tex/latex/esami/es-spanish.lng RELOC/tex/latex/esami/esami.sty catalogue-ctan /macros/latex/contrib/esami -catalogue-date 2013-04-25 12:55:47 +0200 +catalogue-date 2014-01-07 23:48:24 +0100 catalogue-license lppl -catalogue-version 1.0 +catalogue-version 1.1 ++++++ eso-pic.doc.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/eso-pic/eso-ex6.tex new/doc/latex/eso-pic/eso-ex6.tex --- old/doc/latex/eso-pic/eso-ex6.tex 2010-06-10 00:19:07.000000000 +0200 +++ new/doc/latex/eso-pic/eso-ex6.tex 1970-01-01 01:00:00.000000000 +0100 @@ -1,48 +0,0 @@ - -\listfiles -\documentclass{article} -\usepackage{eso-pic,xcolor,pict2e,picture} -\usepackage[latin1]{inputenc} -\usepackage[T1]{fontenc} -\usepackage[english]{babel} -\usepackage{blindtext} - -\newcommand*\Bild{} - -\AddToShipoutPictureBG{ - \AtTextCenter{ - \put(10mm,10mm){% - \textcolor{blue!30}{\circle*{.5\textwidth}}}% - }% -} -% ^^-- The same as \AddToShipoutPicture - -\AddToShipoutPictureFG{ - \AtTextCenter{ - \put(-10mm,-10mm){% - \textcolor{green!30}{\circle*{.5\textwidth}}}% - }% -} - -\begin{document} - -\blindtext\par\blindtext\par -\blindtext\par\blindtext\par -\blindtext \newpage - -\ClearShipoutPictureFG - -\blindtext\par\blindtext\par -\blindtext\par\blindtext\par -\blindtext \newpage - -\ClearShipoutPictureBG -% ^^-- The same as \ClearShipoutPicture - -\blindtext\par\blindtext\par -\blindtext\par\blindtext\par -\blindtext - -\end{document} - - Files old/doc/latex/eso-pic/eso-pic.pdf and new/doc/latex/eso-pic/eso-pic.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/eso-pic.doc.tlpobj new/tlpkg/tlpobj/eso-pic.doc.tlpobj --- old/tlpkg/tlpobj/eso-pic.doc.tlpobj 2011-02-25 04:16:34.000000000 +0100 +++ new/tlpkg/tlpobj/eso-pic.doc.tlpobj 2013-10-11 03:21:25.000000000 +0200 @@ -1,15 +1,14 @@ name eso-pic.doc category Package -revision 21515 +revision 31875 shortdesc doc files of eso-pic relocated 1 -docfiles size=63 +docfiles size=68 RELOC/doc/latex/eso-pic/eso-article-test.tex RELOC/doc/latex/eso-pic/eso-ex1.tex RELOC/doc/latex/eso-pic/eso-ex2.tex RELOC/doc/latex/eso-pic/eso-ex3.tex RELOC/doc/latex/eso-pic/eso-ex4.tex RELOC/doc/latex/eso-pic/eso-ex5.tex - RELOC/doc/latex/eso-pic/eso-ex6.tex RELOC/doc/latex/eso-pic/eso-memoir-test.tex RELOC/doc/latex/eso-pic/eso-pic.pdf ++++++ eso-pic.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/eso-pic/eso-pic.sty new/tex/latex/eso-pic/eso-pic.sty --- old/tex/latex/eso-pic/eso-pic.sty 2010-10-09 00:45:40.000000000 +0200 +++ new/tex/latex/eso-pic/eso-pic.sty 2013-10-11 00:27:56.000000000 +0200 @@ -23,7 +23,7 @@ %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{eso-pic} - [2010/10/06 v2.0c eso-pic (RN)] + [2013/10/06 v2.0d eso-pic (RN)] \RequirePackage{atbegshi} \providecommand*\LenToUnit[1]{#1\@gobble} \newcommand\ESO@isMEMOIR[2]{#2} @@ -199,11 +199,11 @@ \newcommand*\ESO@vline[1]{\ESO@subgridlines\line(0,1){#1}} \newcommand*\ESO@Hline[1]{\ESO@gridlines\line(1,0){#1}} \newcommand*\ESO@Vline[1]{\ESO@gridlines\line(0,1){#1}} -\newcommand\ESO@fcolorbox[4][]{\fbox{#4}} +\newcommand\ESO@fcolorbox[3]{\fbox{#3}} \newcommand\ESO@color[1]{} -\newcommand\ESO@colorbox[3][]{% +\newcommand\ESO@colorbox[2]{% \begingroup - \fboxrule=\z@\fbox{#3}% + \fboxrule=\z@\fbox{#2}% \endgroup } \newcommand\gridSetup[6][]{% @@ -260,8 +260,18 @@ {\RequirePackage{color}}% }{}% \let\ESO@color=\color -\let\ESO@colorbox=\colorbox -\let\ESO@fcolorbox=\fcolorbox +\renewcommand\ESO@colorbox[2]{% + \begingroup + \fboxsep=.4ex % + \colorbox{#1}{#2}% + \endgroup +} +\renewcommand\ESO@fcolorbox[3]{% + \begingroup + \fboxsep=.5ex % + \fcolorbox{#1}{#2}{#3}% + \endgroup +} \AtBeginDocument{% \ESO@dvipsfalse \@ifundefined{Gin@driver}{}% @@ -342,7 +352,7 @@ \normalcolor% \endgroup } -\ifESO@grid\g@addto@macro\ESO@HookIIIBG{\ESO@gridpicture}\fi +\ifESO@grid\g@addto@macro\ESO@HookIFG{\ESO@gridpicture}\fi \endinput %% %% End of file `eso-pic.sty'. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/eso-pic.tlpobj new/tlpkg/tlpobj/eso-pic.tlpobj --- old/tlpkg/tlpobj/eso-pic.tlpobj 2011-02-25 04:16:34.000000000 +0100 +++ new/tlpkg/tlpobj/eso-pic.tlpobj 2013-10-11 03:21:25.000000000 +0200 @@ -1,15 +1,16 @@ name eso-pic category Package -revision 21515 +revision 31875 shortdesc Add picture commands (or backgrounds) to every page. relocated 1 -longdesc Eso-pic is an extension of everyshi. Using everyshi's -longdesc \EveryShipout command, eso-pic adds one or more user commands -longdesc to LaTeX's shipout actions. +longdesc The package adds one or more user commands to LaTeX's shipout +longdesc routine, which may be used to place the output at fixed +longdesc positions. The grid option may be used to find the correct +longdesc places. runfiles size=4 RELOC/tex/latex/eso-pic/eso-pic.sty RELOC/tex/latex/eso-pic/showframe.sty catalogue-ctan /macros/latex/contrib/eso-pic -catalogue-date 2010-10-06 15:20:29 +0200 +catalogue-date 2013-10-10 16:26:27 +0200 catalogue-license lppl1.2 -catalogue-version 2.0c +catalogue-version 2.0d ++++++ esvect.doc.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/esvect/README new/doc/latex/esvect/README --- old/doc/latex/esvect/README 2007-11-17 22:03:22.000000000 +0100 +++ new/doc/latex/esvect/README 2013-11-09 00:43:07.000000000 +0100 @@ -3,6 +3,8 @@ % % +Change: november 2013. Rename \vecteur internal macro into \ESV@vecteur in order to avoid conflit with tdsfrmath.sty package. + Change : december 2001. Add Type1 PostScript font. Conversion from METAFONT files made by Olivier Crouzet. Thank's a lot ! @@ -31,5 +33,5 @@ where dvips can find them, and add the content of the esvect.map file to your psnfss.map file. -eddie.saudrais@wanadoo.fr -http://perso.wanadoo.fr/eddie.saudrais \ No newline at end of file +e.saudrais@wanadoo.fr +http://phylam.org \ No newline at end of file Files old/doc/latex/esvect/esvect.pdf and new/doc/latex/esvect/esvect.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/esvect.doc.tlpobj new/tlpkg/tlpobj/esvect.doc.tlpobj --- old/tlpkg/tlpobj/esvect.doc.tlpobj 2010-06-10 18:27:09.000000000 +0200 +++ new/tlpkg/tlpobj/esvect.doc.tlpobj 2013-11-09 03:20:59.000000000 +0100 @@ -1,8 +1,8 @@ name esvect.doc category Package -revision 15878 +revision 32098 shortdesc doc files of esvect relocated 1 -docfiles size=18 +docfiles size=13 RELOC/doc/latex/esvect/README RELOC/doc/latex/esvect/esvect.pdf ++++++ esvect.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/esvect/esvect.sty new/tex/latex/esvect/esvect.sty --- old/tex/latex/esvect/esvect.sty 2006-01-13 00:55:06.000000000 +0100 +++ new/tex/latex/esvect/esvect.sty 2013-11-09 00:43:07.000000000 +0100 @@ -40,9 +40,9 @@ \DeclareMathSymbol{\montraitd}{\mathrel}{esvector}{'043} \def\relbareda{\mathrel{\mathpalette\mathsm@sh\montraita}} \def\relbaredd{\mathrel{\mathpalette\mathsm@sh\montraitd}} -\def\vv{\@ifstar{\vvstar}{\vecteur}} -\def\vvstar#1#2{\vecteur{#1}_{\mkern-1mu\relax#2}} -\newcommand{\vecteur}{% +\def\vv{\@ifstar{\vvstar}{\ESV@vecteur}} +\def\vvstar#1#2{\ESV@vecteur{#1}_{\mkern-1mu\relax#2}} +\newcommand{\ESV@vecteur}{% \mathpalette{\overvect@\vectfill@}} \def\vectfill@{\traitfill@\relbaredd\relbareda\fldr} \def\traitfill@#1#2#3#4{% diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/esvect.tlpobj new/tlpkg/tlpobj/esvect.tlpobj --- old/tlpkg/tlpobj/esvect.tlpobj 2010-06-10 18:27:09.000000000 +0200 +++ new/tlpkg/tlpobj/esvect.tlpobj 2013-11-09 03:20:59.000000000 +0100 @@ -1,11 +1,11 @@ name esvect category Package -revision 15878 +revision 32098 shortdesc Vector arrows. relocated 1 longdesc Write vectors using an arrow which is different to the Computer longdesc Modern one. You have the choice between several kinds of -longdesc arrows. The package consists of the relevant metafont code and +longdesc arrows. The package consists of the relevant Metafont code and longdesc a package to use it. execute addMap esvect.map runfiles size=58 @@ -34,6 +34,6 @@ RELOC/tex/latex/esvect/esvect.sty RELOC/tex/latex/esvect/uesvect.fd catalogue-ctan /macros/latex/contrib/esvect -catalogue-date 2006-10-27 00:09:51 +0200 +catalogue-date 2013-11-08 16:32:20 +0100 catalogue-license gpl -catalogue-version 1.2 +catalogue-version 1.3 ++++++ etex.doc.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/etex.doc.tlpobj new/tlpkg/tlpobj/etex.doc.tlpobj --- old/tlpkg/tlpobj/etex.doc.tlpobj 2013-04-08 21:25:41.000000000 +0200 +++ new/tlpkg/tlpobj/etex.doc.tlpobj 2013-09-09 03:20:27.000000000 +0200 @@ -1,6 +1,6 @@ name etex.doc category Package -revision 29743 +revision 31600 shortdesc doc files of etex relocated 1 docfiles size=129 ++++++ etex.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fonts/source/public/etex/xbmc10.mf new/fonts/source/public/etex/xbmc10.mf --- old/fonts/source/public/etex/xbmc10.mf 1970-01-01 01:00:00.000000000 +0100 +++ new/fonts/source/public/etex/xbmc10.mf 2006-01-10 00:38:21.000000000 +0100 @@ -0,0 +1,6 @@ +% &cm +if unknown cmbase: input cmbase fi +extra_endchar := extra_endchar & + "currentpicture:=currentpicture " & + "reflectedabout((.5[l,r],0),(.5[l,r],1));"; +input cmbx10 Files old/fonts/tfm/public/etex/xbmc10.tfm and new/fonts/tfm/public/etex/xbmc10.tfm differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/etex.tlpobj new/tlpkg/tlpobj/etex.tlpobj --- old/tlpkg/tlpobj/etex.tlpobj 2013-04-08 21:25:41.000000000 +0200 +++ new/tlpkg/tlpobj/etex.tlpobj 2013-09-09 03:20:28.000000000 +0200 @@ -1,6 +1,6 @@ name etex category Package -revision 29743 +revision 31600 shortdesc An extended version of TeX, from the NTS project. relocated 1 longdesc An extended version of TeX (which is capable of running as if @@ -10,7 +10,9 @@ longdesc current TeX distributions) assume e-TeX functionality. longdesc Development versions of e-TeX are to be found in the TeX live longdesc source repository. -runfiles size=9 +runfiles size=11 + RELOC/fonts/source/public/etex/xbmc10.mf + RELOC/fonts/tfm/public/etex/xbmc10.tfm RELOC/tex/plain/etex/etex.src RELOC/tex/plain/etex/etexdefs.lib catalogue-ctan /systems/e-tex ++++++ etoc.doc.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/etoc/README new/doc/latex/etoc/README --- old/doc/latex/etoc/README 2013-05-15 23:52:26.000000000 +0200 +++ new/doc/latex/etoc/README 2014-04-29 23:48:39.000000000 +0200 @@ -1,156 +1,116 @@ -version 1.07f dated 2013/03/07 -documentation dated 2013/05/14 +% +% Package: etoc +% Version: 1.07l (2014/04/22; doc of 2014/04/29) +% Description: Completely customisable TOCs (jfB) +% +% Copyright (C) 2012-2013-2014 Jean-Francois Burnol <jfbu at free dot fr> +% Copyright (C) 2014 Christine Roemer <Christine_Roemer at t-online dot de> +% and collaborators for the translation into German of the documentation -Package `etoc' -Completely customisable TOCs -Copyright (C) 2012, 2013 by Jean-Francois Burnol +% License: LPPL 1.3c or later -LICENSE -======= - - The copyright and license statement applies to `etoc.dtx' and to - its derived files. - - This work may be distributed and/or modified under the - conditions of the LaTeX Project Public License, either - version 1.3c of this license or (at your option) any later - version. This version of this license is in - http://www.latex-project.org/lppl/lppl-1-3c.txt - and 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. - - The author of this work is Jean-Francois Burnol <jfbu at free dot fr>. - This work has the LPPL maintenance status `author-maintained'. - -INSTALLATION -============ - - `latex etoc.dtx' --> this extracts the style file `etoc.sty' - - `latex etoc.dtx' (twice more) finishes producing the documentation - - Move `etoc.sty' to a suitable location within the TeX installation: - etoc.sty -> <TDS>/tex/latex/etoc/etoc.sty - - The generated auxiliary files may be discarded. +% this README: *Abstract*, *Installation*, *License*. ABSTRACT ======== The etoc package gives to the user complete control on how the entries of the table of contents should be constituted - from the name, number, and page number of each sectioning - unit. This goes via the definition of line styles for each - sectioning level used in the document. The package provides - its own custom line styles. Simpler ones are given as - examples in the documentation. The simplest usage will be to - take advantage of the layout facilities of packages dealing - with list environments. + from the {name}, {number}, and {page number} of each + sectioning unit. This goes via the definition of {line + styles} for each sectioning level used in the document. The + package provides its own custom line styles. Simpler ones + are given as examples in the documentation. The simplest + usage will be to take advantage of the layout facilities of + packages dealing with list environments. + + Regarding the {global toc display}, etoc provides + pre-defined styles based on a multi-column format, with, + optionally, a ruled title or framed contents. The \tableofcontents command may be used arbitrarily many times and it has a variant \localtableofcontents which prints tables of contents `local' to the current surrounding document unit. An extension of the \label/\ref syntax allows - to reproduce (with another layout) a TOC defined somewhere - else in the document. - - The formatting inherited (and possibly customized by other - packages) from the document class may also be used in - compatibility mode. Regarding the global toc display, etoc - provides pre-defined styles based on a multi-column format, - optionally with a frame or a ruled title. - - As the assignment of levels to the sectioning units can be - changed at any time, etoc can be used in a quite general - manner to also create custom "lists of", additionally to the - tables of contents related to the document sectioning units. - No auxiliary file is used apart from the usual .toc file. - - -Change log -========== - - v1.07f [2013/03/07] - - new macros \etocthelinkedname, \etocthelinkednumber, - \etocthelinkedpage, and \etocthelink. - - - v1.07e [2013/03/01] - - improvements in the package own line styles with - regards to penalties and vertical spaces. - - addition to the documentation of an example of - a tree-like table of contents (uses tikz). - - more such examples added 2013/03/03. - - - v1.07d [2013/02/24] - - minor code improvements and new documentation - section "Another compatibility mode". + to reproduce (with another layout) a local table of contents + defined somewhere else in the document. + Via ``depth tags'', one gets an even finer control for each + table of contents of which sectioning units it should, or + not, display. - v1.07b [2013/02/02] - - removal of the \xspace from the macros \etocname, - \etocnumber, \etocpage. - - additional examples in the documentation. - - - v1.07 [2013/01/29] - - new commands: - - \etocthename, \etocthenumber, \etocthepage, \etoclink, - - \etoctoccontentsline, \etoctoccontentsline* - - \etocnopar, \etocaftercontentshook - - modified command: \etocmulticolstyle - - new documentation section "Surprising uses of etoc" which - explains how to do "Lists of arbitrary things", in - addition to the tables of contents. - - - v1.06 [2012/12/07] - - the standard macros \l@section etc... are modified only - during the calls to \tableofcontents; they can thus be - customized as will by the user (with the help of a - package like tocloft) and this will be taken into account - by etoc for the TOCs typeset in compatibility mode. - - - v1.05 [2012/12/01] - - \localtableofcontents replaces \tableofcontents* (for - compatibility with the memoir class). + The formatting inherited (and possibly customized by other + packages) from the document class will be used when in + compatibility mode. - compatibility with KOMA-script and memoir document - classes. + The assignment of levels to the sectioning units can be + changed at any time, and etoc can thus be used in a quite + general manner to create custom ``lists of'', additionally + to the tables of contents related to the document sectioning + units. No auxiliary file is used additionally to the + standard .toc file. - v1.04 [2012/11/24] +INSTALLATION +============ - a (possibly local) table of contents can be labeled: - - \tableofcontents \label{toc:1} + Extraction of the package (.sty) and driver (.tex) files: + - if etoc.ins is present: tex etoc.ins + - without etoc.ins: tex etoc.dtx + + It is also possible to run latex/pdflatex directly on etoc.dtx + + At least three ways to produce etoc.pdf (method (3) is preferred): + + (1) latex etoc.dtx (three times), then dvips, then ps2pdf + (2) pdflatex etoc.dtx (three times) + (3) latex etoc.tex (three times), then dvipdfmx + + Method (3) produces the smallest pdf files. + Options can be set in etoc.tex: + - scrdoc class options (paper size, font size, ...) + - with or without source code, + - with dvipdfmx or with latex+dvips or pdflatex. + + To produce etoc-DE.pdf (German documentation) run tex on etoc.ins + or etoc.dtx to produce etoc-DE.tex, then compile etoc-DE.tex with + latex (thrice) then dvipdmx, or set first to 0 \Withdvipdfmx in + etoc-DE.tex to allow compilation with pdflatex. + + Um etoc-DE.pdf zu erzeugen ist latex dreimal mit etoc-DE.tex laufen + zu lassen, dann dvipdfmx mit etoc-DE.dvi. Im Falle von Problemen + mit dvipdfmx ist \Withdvidpdfmx auf 0 in etoc-DE.tex zu setzen, + dann ist pdflatex dreimal mit etoc-DE.tex laufen zu lassen. + + Installation: + + etoc.sty -> TDS:tex/latex/etoc/etoc.sty + etoc.dtx -> TDS:source/latex/etoc/etoc.dtx + etoc.pdf -> TDS:doc/latex/etoc/etoc.pdf + etoc-DE.pdf -> TDS:doc/latex/etoc/etoc-DE.pdf - and reproduced elsewhere in the document (with a possibly - completely different layout): - - \tableofcontents \ref{toc:1} + The other files may be discarded. - - v1.02 [2012/11/18] +LICENSE +======= - initial version. + This Work may be distributed and/or modified under the + conditions of the LaTeX Project Public License, either + version 1.3c of this license or (at your option) any later + version. This version of this license is in + http://www.latex-project.org/lppl/lppl-1-3c.txt + and 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. + + The Authors of this Work are: + Jean-Francois Burnol <jfbu at free dot fr> for the source code and + English documentation, and + Christine Roemer <Christine_Roemer at t-online dot de> and collaborators + for the translation into German of the documentation. + + This Work consists of the main source file etoc.dtx and the derived + files etoc.sty, etoc.ins, etoc.tex, etoc-DE.tex, etoc.pdf, etoc-DE.pdf, + etoc.dvi, etoc-DE.dvi. Files old/doc/latex/etoc/etoc-DE.pdf and new/doc/latex/etoc/etoc-DE.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/etoc/etoc-DE.tex new/doc/latex/etoc/etoc-DE.tex --- old/doc/latex/etoc/etoc-DE.tex 1970-01-01 01:00:00.000000000 +0100 +++ new/doc/latex/etoc/etoc-DE.tex 2014-04-29 23:48:39.000000000 +0200 @@ -0,0 +1,35 @@ +%% +%% Package: etoc +%% Version: 1.07l (2014/04/22) +%% License: LPPL 1.3c or later (see etoc.dtx for more information) +%% Copyright (C) 2012-2013-2014 Jean-Francois Burnol <jfbu at free dot fr> +%% Copyright (C) 2014 Christine Roemer <Christine_Roemer at t-online dot de> +%% and collaborators for the translation into German of the documentation +%% +%% run latex thrice on this file etoc-DE.tex then dvipdfmx on etoc-DE.dvi +%% to produce the German documentation etoc-DE.pdf (without source code). +%% +%% possible dvipdfmx warnings (due to hyperlinks extending over page +%% breaks) may be ignored, but in case of a too old dvipdfmx, it may +%% be preferable to use pdflatex. For this set \Withdvipdfmx to 0. +%% +%% Um etoc-DE.pdf zu erzeugen ist latex dreimal mit etoc-DE.tex laufen +%% zu lassen, dann dvipdfmx mit etoc-DE.dvi. Im Falle von Problemen +%% mit dvipdfmx ist \Withdvidpdfmx auf 0 zu setzen, dann ist pdflatex +%% dreimal mit etoc-DE.tex laufen zu lassen. +%% +\chardef\Withdvipdfmx 1 % replace 1 by 0 for using latex+dvips or pdflatex +\chardef\NoSourceCode 1 % replace 1 by 0 for the doc *with* the source code +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile {etoc-DE.tex}[Driver for etoc German documentation]% +\PassOptionsToClass {a4paper,fontsize=11pt,twoside,ngerman}{scrdoc} +\PassOptionsToPackage {english,german}{babel} +\chardef\ForEnglish 0 % (can NOT be both 1..) +\chardef\ForDeutsch 1 % +\input etoc.dtx +%%% Local Variables: +%%% mode: latex +%%% End: +\endinput +%% +%% End of file `etoc-DE.tex'. Files old/doc/latex/etoc/etoc.pdf and new/doc/latex/etoc/etoc.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/etoc/etoc.tex new/doc/latex/etoc/etoc.tex --- old/doc/latex/etoc/etoc.tex 1970-01-01 01:00:00.000000000 +0100 +++ new/doc/latex/etoc/etoc.tex 2014-04-29 23:48:39.000000000 +0200 @@ -0,0 +1,30 @@ +%% +%% Package: etoc +%% Version: 1.07l (2014/04/22) +%% License: LPPL 1.3c or later (see etoc.dtx for more information) +%% Copyright (C) 2012-2013-2014 Jean-Francois Burnol <jfbu at free dot fr> +%% Copyright (C) 2014 Christine Roemer <Christine_Roemer at t-online dot de> +%% and collaborators for the translation into German of the documentation +%% +%% run latex thrice on this file etoc.tex then dvipdfmx on etoc.dvi +%% to produce the documentation etoc.pdf, with source code included. +%% +%% possible dvipdfmx warnings (due to hyperlinks extending over page +%% breaks) may be ignored, but in case of a too old dvipdfmx, it may +%% be preferable to use pdflatex. Set \Withdvipdfmx to 0 first. +%% +\chardef\Withdvipdfmx 1 % replace 1 by 0 for using latex+dvips or pdflatex +\chardef\NoSourceCode 0 % replace 0 by 1 for the doc *without* the source code +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile {etoc.tex}[Driver for etoc documentation]% +\PassOptionsToClass {a4paper,fontsize=11pt,twoside}{scrdoc} +\PassOptionsToPackage {german,english}{babel} +\chardef\ForEnglish 1 % (can NOT be both 1..) +\chardef\ForDeutsch 0 % +\input etoc.dtx +%%% Local Variables: +%%% mode: latex +%%% End: +\endinput +%% +%% End of file `etoc.tex'. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/etoc.doc.tlpobj new/tlpkg/tlpobj/etoc.doc.tlpobj --- old/tlpkg/tlpobj/etoc.doc.tlpobj 2013-05-16 03:51:35.000000000 +0200 +++ new/tlpkg/tlpobj/etoc.doc.tlpobj 2014-05-19 03:26:52.000000000 +0200 @@ -1,8 +1,11 @@ name etoc.doc category Package -revision 30488 +revision 34106 shortdesc doc files of etoc relocated 1 -docfiles size=65 +docfiles size=165 RELOC/doc/latex/etoc/README + RELOC/doc/latex/etoc/etoc-DE.pdf + RELOC/doc/latex/etoc/etoc-DE.tex RELOC/doc/latex/etoc/etoc.pdf + RELOC/doc/latex/etoc/etoc.tex ++++++ etoc.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/etoc/etoc.sty new/tex/latex/etoc/etoc.sty --- old/tex/latex/etoc/etoc.sty 2013-04-07 01:08:33.000000000 +0200 +++ new/tex/latex/etoc/etoc.sty 2014-05-18 23:48:59.000000000 +0200 @@ -21,20 +21,23 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% +\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{etoc} - [2013/03/07 v1.07f Completely customisable TOCs (jfB)] + [2014/04/22 v1.07l Completely customisable TOCs (jfB)] %% -%% Package `etoc' by Jean-Francois Burnol -%% Copyright (C) 2012, 2013 by Jean-Francois Burnol +%% Package: etoc +%% Version: 1.07l (2014/04/22) +%% License: LPPL 1.3c or later (see etoc.dtx for more information) +%% Copyright (C) 2012-2013-2014 Jean-Francois Burnol <jfbu at free dot fr> +%% Copyright (C) 2014 Christine Roemer <Christine_Roemer at t-online dot de> +%% and collaborators for the translation into German of the documentation %% -\NeedsTeXFormat{LaTeX2e} \RequirePackage{multicol} -%% \RequirePackage{xspace} %% REMOVED (1.07b) \DeclareOption*{\PackageWarning{etoc}{Option `\CurrentOption' is unknown.}} \ProcessOptions\relax \newtoks\Etoc@toctoks \def\Etoc@par{\par} -\newcommand*{\etocinline}{\def\Etoc@par{}} +\def\etocinline{\def\Etoc@par{}} \let\etocnopar\etocinline \newif\ifEtoc@jj % book \newif\ifEtoc@j % part @@ -56,27 +59,40 @@ \newif\ifEtoc@notactive \newcounter{etoc@tocid} \newif\ifEtoc@mustclosegroup -\def\etoc@{\etoc@} % Delimiter in \Etoc@getnb etc.. macros. This def added 1.07f +\def\etoc@{\etoc@} +\newcounter{etoc@tocdepth}% 1.07g \@ifclassloaded{memoir}{\def\Etoc@minf{-\thr@@}}{\def\Etoc@minf{-\tw@}} \def\Etoc@@minustwo@@{-\tw@} \let\Etoc@@minusone@@\m@ne -\chardef\Etoc@@zero@@ 0 -\let\Etoc@@one@@ \@ne -\let\Etoc@@two@@ \tw@ -\let\Etoc@@three@@ \thr@@ +\let\Etoc@@zero@@ \z@ +\let\Etoc@@one@@ \@ne +\let\Etoc@@two@@ \tw@ +\let\Etoc@@three@@ \thr@@ \chardef\Etoc@@four@@ 4 \chardef\Etoc@@five@@ 5 -\chardef\Etoc@@six@@ 6 +\chardef\Etoc@@six@@ 6 \let\Etoc@localtop\Etoc@@minustwo@@ \def\Etoc@@minustwo@{minustwo} \def\Etoc@@minusone@{minusone} -\def\Etoc@@zero@{zero} -\def\Etoc@@one@{one} -\def\Etoc@@two@{two} -\def\Etoc@@three@{three} -\def\Etoc@@four@{four} -\def\Etoc@@five@{five} -\def\Etoc@levellist{} +\def\Etoc@@zero@ {zero} +\def\Etoc@@one@ {one} +\def\Etoc@@two@ {two} +\def\Etoc@@three@ {three} +\def\Etoc@@four@ {four} +\def\Etoc@@five@ {five} +\expandafter\def\csname Etoc@-3@@\endcsname {-\thr@@} +\expandafter\let\csname Etoc@-2@@\endcsname \Etoc@@minustwo@@ +\expandafter\let\csname Etoc@-1@@\endcsname \Etoc@@minusone@@ +\expandafter\let\csname Etoc@0@@\endcsname \Etoc@@zero@@ +\expandafter\let\csname Etoc@1@@\endcsname \Etoc@@one@@ +\expandafter\let\csname Etoc@2@@\endcsname \Etoc@@two@@ +\expandafter\let\csname Etoc@3@@\endcsname \Etoc@@three@@ +\expandafter\let\csname Etoc@4@@\endcsname \Etoc@@four@@ +\expandafter\let\csname Etoc@5@@\endcsname \Etoc@@five@@ +\expandafter\let\csname Etoc@6@@\endcsname \Etoc@@six@@ +\let\Etoc@all@@ \Etoc@@five@@ +\let\Etoc@none@@ \Etoc@minf +\let\Etoc@levellist\@empty \def\Etoc@newlevel#1{% \def\Etoc@levellist@elt{\noexpand\Etoc@levellist@elt\noexpand}% \edef\Etoc@levellist{\Etoc@levellist\Etoc@levellist@elt#1}} @@ -285,7 +301,7 @@ \@firstoftwo{\Etoc@swa{#1}}{\Etoc@swb{#1}}} \def\Etoc@lxyz #1#2{% \@namedef {etoclink }{\leavevmode}% fall-back - \def\etocthelink {}% fall-back + \let\etocthelink \@empty % fall-back \@namedef {etocname }{\leavevmode #1}% fall-back (perhaps linked) \def\etocthename {#1}% (if link, will be removed later) \def\etocthelinkedname {#1}% will probably get redefined @@ -309,7 +325,7 @@ \def\etocthelinkedpage {#1}% } \def\Etoc@getthepage@hyp #1#2#3#4#5\etoc@ {% - \@namedef{etoclink } ##1{\leavevmode #1{#2}{#3}{##1}#5}% + \@namedef{etoclink }##1{\leavevmode #1{#2}{#3}{##1}#5}% \edef\etocthelink ##1{\noexpand\hyperlink {#3}{##1}}% \def\etocthepage {#4}% \toks@ {#4}% @@ -343,8 +359,8 @@ \Etoc@getname #3\etoc@ \else % then \etocthename and \etocthelinkedname already defined \@namedef {etocnumber }{\leavevmode}% - \def\etocthenumber {}% - \def\etocthelinkednumber {}% + \let\etocthenumber \@empty + \let\etocthelinkednumber \@empty \Etoc@numberfalse \fi } @@ -365,8 +381,8 @@ \Etoc@getname ##3\etoc@ \else \@namedef {etocnumber }{\leavevmode}% - \def\etocthenumber {}% - \def\etocthelinkednumber {}% + \let\etocthenumber \@empty + \let\etocthelinkednumber \@empty \Etoc@numberfalse \def\etocthename {#4}% \toks@ {#4}% @@ -410,41 +426,39 @@ }% \Etoc@getnbr #4\hspace\relax\etoc@ } -\newcommand*\etocthename {} -\newcommand*\etocthenumber {} -\newcommand*\etocthepage {} -\newcommand*\etocthelinkedname {} -\newcommand*\etocthelinkednumber {} -\newcommand*\etocthelinkedpage {} -\newcommand*\etocthelink {} +\let\etocthename \@empty +\let\etocthenumber \@empty +\let\etocthepage \@empty +\let\etocthelinkedname \@empty +\let\etocthelinkednumber \@empty +\let\etocthelinkedpage \@empty +\let\etocthelink \@empty \DeclareRobustCommand*{\etocname} {} \DeclareRobustCommand*{\etocnumber}{} \DeclareRobustCommand*{\etocpage} {} \DeclareRobustCommand*{\etoclink} {} \DeclareRobustCommand*{\etocifnumbered} {\ifEtoc@number\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} -\def\Etoc@readtoc#1{% - \ifeof #1 - \let\Etoc@nextread\@gobble - \global\Etoc@toctoks=\expandafter{\the\Etoc@toctoks}% +\def\Etoc@readtoc {% + \ifeof \Etoc@tf \else - \let\Etoc@nextread\Etoc@readtoc - \read #1 to \Etoc@buffer + \read \Etoc@tf to \Etoc@buffer \Etoc@toctoks=\expandafter\expandafter\expandafter {\expandafter\the\expandafter\Etoc@toctoks\Etoc@buffer}% + \expandafter\Etoc@readtoc \fi - \Etoc@nextread{#1}% } +\Etoc@toctoks {}% (superfluous, but for clarity) \IfFileExists{\jobname .toc} {{\endlinechar=-1 \makeatletter \newread\Etoc@tf \openin\Etoc@tf\@filef@und - \Etoc@readtoc\Etoc@tf + \Etoc@readtoc + \global\Etoc@toctoks=\expandafter{\the\Etoc@toctoks}% \closein\Etoc@tf}} {\typeout{No file \jobname .toc.}} -\def\Etoc@openouttoc{% formerly \Etoc@starttoc -%% 1.07d: parskip and \@nobreakfalse stuff moved to \Etoc@tableofcontents +\def\Etoc@openouttoc{% \ifEtoc@hyperref \ifx\hyper@last\@undefined \IfFileExists{\jobname .toc} @@ -459,7 +473,7 @@ \newwrite \tf@toc \immediate \openout \tf@toc \jobname .toc\relax \fi - \gdef\Etoc@openouttoc{}% 1.07d, rather than using a boolean + \global\let\Etoc@openouttoc\empty } \def\Etoc@toctoc{% \global\Etoc@vfalse @@ -528,7 +542,6 @@ \ifnum\Etoc@tmp<\@ne \PackageWarning{etoc} {Unknown toc id: run LaTeX to get references right}% - \leavevmode --unknown etoc ref: run latex again--\par \let\Etoc@next\@gobble\else\let\Etoc@next\@firstofone\fi \Etoc@next {\edef\etoc@startlocaltoc##1{% @@ -538,7 +551,10 @@ \global\Etoc@stoptocfalse \global\Etoc@notactivetrue \Etoc@tableofcontents}% - \endgroup\ifEtoc@mustclosegroup\endgroup\fi} + \endgroup\ifEtoc@mustclosegroup\endgroup\fi + \Etoc@aftertochook % 1.07h + \etocaftertochook % 1.07g +} \def\Etoc@getrefno #1#2\etoc@ {#1} \def\Etoc@getref #1{\@ifundefined{r@#1}{0}{\expandafter\expandafter\expandafter \Etoc@getrefno\csname r@#1\endcsname\relax\etoc@}} @@ -560,59 +576,66 @@ \global\Etoc@notactivefalse \Etoc@tableofcontents \endgroup - \ifEtoc@mustclosegroup\endgroup\fi}% + \ifEtoc@mustclosegroup\endgroup\fi + \Etoc@aftertochook % 1.07h + \etocaftertochook % 1.07g + }% \fi \fi\fi\fi\Etoc@next} -\def\table@fcontents{% +\def\Etoc@table@fcontents{% \refstepcounter{etoc@tocid}% \Etoc@tocwithidfalse \futurelet\Etoc@nexttoken\Etoc@t@bleofcontents} -\def\localtable@fcontents{% +\def\Etoc@localtable@fcontents{% \refstepcounter{etoc@tocid}% \addtocontents{toc} {\string\etoc@startlocaltoc{\arabic{etoc@tocid}}}% \Etoc@tocwithidtrue \futurelet\Etoc@nexttoken\Etoc@t@bleofcontents} -\newcommand*\etocaftertitlehook{} -\newcommand*\etocaftercontentshook{} -\renewcommand*\tableofcontents{% +\let\etocaftertitlehook \@empty +\let\etocaftercontentshook \@empty +\def\etoctableofcontents{% \Etoc@openouttoc \Etoc@par \begingroup % closed in \Etoc@t@bleofcontents or \Etoc@localtableofcontents \def\etoc@startlocaltoc##1{\etoc@@startlocaltoc{##1}{\c@etoc@tocid}}% \@ifstar - {\def\Etoc@aftertitlehook{}\table@fcontents} - {\let\Etoc@aftertitlehook\etocaftertitlehook\table@fcontents}} + {\def\Etoc@aftertitlehook{}\Etoc@table@fcontents} + {\let\Etoc@aftertitlehook\etocaftertitlehook\Etoc@table@fcontents}} +\let\tableofcontents\etoctableofcontents \newcommand*\localtableofcontents{% \Etoc@openouttoc \Etoc@par \begingroup % closed in \Etoc@t@bleofcontents or \Etoc@localtableofcontents \@ifstar - {\def\Etoc@aftertitlehook{}\localtable@fcontents} - {\let\Etoc@aftertitlehook\etocaftertitlehook\localtable@fcontents}} + {\def\Etoc@aftertitlehook{}\Etoc@localtable@fcontents} + {\let\Etoc@aftertitlehook\etocaftertitlehook\Etoc@localtable@fcontents}} \newcommand\etocsettocstyle[2]{% \def\Etoc@tableofcontents {\ifnum\c@tocdepth>\Etoc@minf \let\Etoc@@next\@firstofone\else \let\Etoc@@next\@gobble \fi -\Etoc@@next{#1\ifEtoc@parskip\parskip\z@skip\fi %1.07d +\Etoc@@next{\Etoc@storetocdepth % 1.07g + #1\ifEtoc@parskip\parskip\z@skip\fi %1.07d \Etoc@aftertitlehook \let\Etoc@savedcontentsline\contentsline \let\contentsline\Etoc@etoccontentsline \Etoc@toctoc \let\Etoc@@next\relax - \ifEtoc@tocwithid\else + \ifEtoc@tocwithid\else \ifEtoc@localtoc \ifEtoc@notactive \def\Etoc@@next{\Etoc@localtocfalse \global\Etoc@notactivefalse \Etoc@toctoc}% - \fi\fi\fi - \Etoc@@next - \etocaftercontentshook - #2\@nobreakfalse}}} % 1.07d: \@nobreakfalse moved here -\newcommand*\etocsetstyle{\Etoc@standardfalse\etoc@setstyle} + \fi\fi + \fi + \Etoc@@next + \Etoc@resettocdepth % 1.07g + \etocaftercontentshook + #2\@nobreakfalse}}} % 1.07d: \@nobreakfalse moved here +\def\etocsetstyle{\Etoc@standardfalse\etoc@setstyle} \long\def\etoc@setstyle#1#2#3#4#5{% \long\expandafter\def \csname Etoc@begin@\csname Etoc@#1@\endcsname\endcsname {#2}% @@ -622,36 +645,35 @@ \csname Etoc@contents@\csname Etoc@#1@\endcsname\endcsname {#4}% \long\expandafter\def \csname Etoc@end@\csname Etoc@#1@\endcsname\endcsname {#5}} -\newcommand*\etocfontminustwo {\normalfont \LARGE \bfseries} -\newcommand*\etocfontminusone {\normalfont \large \bfseries} -\newcommand*\etocfontzero {\normalfont \large \bfseries} -\newcommand*\etocfontone {\normalfont \normalsize \bfseries} -\newcommand*\etocfonttwo {\normalfont \normalsize} -\newcommand*\etocfontthree {\normalfont \footnotesize} -\newcommand*\etocsepminustwo {4ex \@plus .5ex \@minus .5ex} -\newcommand*\etocsepminusone {4ex \@plus .5ex \@minus .5ex} -\newcommand*\etocsepzero {2.5ex \@plus .4ex \@minus .4ex} -\newcommand*\etocsepone {1.5ex \@plus .3ex \@minus .3ex} -%%\newcommand*\etocseptwo{1ex \@plus .15ex \@minus .15ex} % modified in 1.07e -\newcommand*\etocseptwo {.5ex \@plus .1ex \@minus .1ex} -\newcommand*\etocsepthree {.25ex \@plus .05ex \@minus .05ex} -\newcommand*\etocbaselinespreadminustwo {1} -\newcommand*\etocbaselinespreadminusone {1} -\newcommand*\etocbaselinespreadzero {1} -\newcommand*\etocbaselinespreadone {1} -\newcommand*\etocbaselinespreadtwo {1} -\newcommand*\etocbaselinespreadthree {.9} -\newcommand*\etocminustwoleftmargin {1.5em plus 0.5fil} -\newcommand*\etocminustworightmargin {1.5em plus -0.5fil} -\newcommand*\etocminusoneleftmargin {1em} -\newcommand*\etocminusonerightmargin {1em} -\newcommand*\etoctoclineleaders +\def\etocfontminustwo {\normalfont \LARGE \bfseries} +\def\etocfontminusone {\normalfont \large \bfseries} +\def\etocfontzero {\normalfont \large \bfseries} +\def\etocfontone {\normalfont \normalsize \bfseries} +\def\etocfonttwo {\normalfont \normalsize} +\def\etocfontthree {\normalfont \footnotesize} +\def\etocsepminustwo {4ex \@plus .5ex \@minus .5ex} +\def\etocsepminusone {4ex \@plus .5ex \@minus .5ex} +\def\etocsepzero {2.5ex \@plus .4ex \@minus .4ex} +\def\etocsepone {1.5ex \@plus .3ex \@minus .3ex} +\def\etocseptwo {.5ex \@plus .1ex \@minus .1ex} +\def\etocsepthree {.25ex \@plus .05ex \@minus .05ex} +\def\etocbaselinespreadminustwo {1} +\def\etocbaselinespreadminusone {1} +\def\etocbaselinespreadzero {1} +\def\etocbaselinespreadone {1} +\def\etocbaselinespreadtwo {1} +\def\etocbaselinespreadthree {.9} +\def\etocminustwoleftmargin {1.5em plus 0.5fil} +\def\etocminustworightmargin {1.5em plus -0.5fil} +\def\etocminusoneleftmargin {1em} +\def\etocminusonerightmargin {1em} +\def\etoctoclineleaders {\hbox{\normalfont\normalsize\hb@xt@2ex {\hss.\hss}}} -\newcommand*\etocabbrevpagename {p.~} -\newcommand*\etocpartname {\partname} -\newcommand*\etocbookname {Book} -\def\etocdefaultlines{\Etoc@standardfalse -%% `book' in memoir class: +\def\etocabbrevpagename {p.~} +\def\etocpartname {\partname} +\def\etocbookname {Book} +\def\etocdefaultlines{\Etoc@standardfalse % +%% `book': \etoc@setstyle{@minustwo} {\addpenalty\@M\etocskipfirstprefix} {\addpenalty\@secpenalty} @@ -780,15 +802,15 @@ \addpenalty{-\@highpenalty}}% \etoc@setstyle{@four}{}{}{}{}% \etoc@setstyle{@five}{}{}{}{}% -} -\newcommand*\etocabovetocskip{3.5ex \@plus 1ex \@minus .2ex} -\newcommand*\etocbelowtocskip{3.5ex \@plus 1ex \@minus .2ex} -\newcommand*\etoccolumnsep{2em} -\newcommand*\etocmulticolsep{0ex} -\newcommand*\etocmulticolpretolerance{-1} -\newcommand*\etocmulticoltolerance{200} -\newcommand*\etocdefaultnbcol{2} -\newcommand*\etocinnertopsep{2ex} +} % end of \etocdefaultlines! +\def\etocabovetocskip{3.5ex \@plus 1ex \@minus .2ex} +\def\etocbelowtocskip{3.5ex \@plus 1ex \@minus .2ex} +\def\etoccolumnsep{2em} +\def\etocmulticolsep{0ex} +\def\etocmulticolpretolerance{-1} +\def\etocmulticoltolerance{200} +\def\etocdefaultnbcol{2} +\def\etocinnertopsep{2ex} \newcommand\etocmulticolstyle[2][\etocdefaultnbcol]{% \etocsettocstyle {\let\etocoldpar\par @@ -801,31 +823,34 @@ \setlength{\columnsep}{\etoccolumnsep}% \setlength{\multicolsep}{\etocmulticolsep}% \begin{multicols}{#1}[#2\etocoldpar\addvspace{\etocinnertopsep}]} - {#2\par\addvspace{\etocinnertopsep}% + {#2\ifvmode\else\begingroup\interlinepenalty\@M\parskip\z@skip + \@@par\endgroup + \fi + \nobreak\addvspace{\etocinnertopsep}% \pretolerance\etocmulticolpretolerance \tolerance\etocmulticoltolerance}} {\ifnum #1>\@ne\let\Etoc@next\@firstofone \else \let\Etoc@next\@gobble\fi \Etoc@next{\end{multicols}}% \addvspace{\etocbelowtocskip}}} -\newcommand*\etocinnerbottomsep{3.5ex} -\newcommand*\etocinnerleftsep{2em} -\newcommand*\etocinnerrightsep{2em} -\newcommand*\etoctoprule{\hrule} -\newcommand*\etocleftrule{\vrule} -\newcommand*\etocrightrule{\vrule} -\newcommand*\etocbottomrule{\hrule} -\newcommand*\etoctoprulecolorcmd{\relax} -\newcommand*\etocbottomrulecolorcmd{\relax} -\newcommand*\etocleftrulecolorcmd{\relax} -\newcommand*\etocrightrulecolorcmd{\relax} +\def\etocinnerbottomsep{3.5ex} +\def\etocinnerleftsep{2em} +\def\etocinnerrightsep{2em} +\def\etoctoprule{\hrule} +\def\etocleftrule{\vrule} +\def\etocrightrule{\vrule} +\def\etocbottomrule{\hrule} +\def\etoctoprulecolorcmd{\relax} +\def\etocbottomrulecolorcmd{\relax} +\def\etocleftrulecolorcmd{\relax} +\def\etocrightrulecolorcmd{\relax} \def\etoc@ruledheading #1{% \hb@xt@\linewidth{\color@begingroup \hss #1\hss\hskip-\linewidth \etoctoprulecolorcmd\leaders\etoctoprule\hss \phantom{#1}% \leaders\etoctoprule\hss\color@endgroup}% - \nointerlineskip\vskip\etocinnertopsep} + \nointerlineskip\nobreak\vskip\etocinnertopsep} \newcommand*\etocruledstyle[2][\etocdefaultnbcol]{% \etocsettocstyle {\addvspace{\etocabovetocskip}% @@ -837,16 +862,16 @@ \setlength{\columnsep}{\etoccolumnsep}% \setlength{\multicolsep}{\etocmulticolsep}% \begin{multicols}{#1}[\etoc@ruledheading{#2}]} - {\etoc@ruledheading{#2}\nobreak + {\etoc@ruledheading{#2}% \pretolerance\etocmulticolpretolerance \tolerance\etocmulticoltolerance}} {\ifnum #1>\@ne\let\Etoc@next\@firstofone \else \let\Etoc@next\@gobble\fi \Etoc@next{\end{multicols}}% \addvspace{\etocbelowtocskip}}} -\newcommand\etocframedmphook{\relax} -\newcommand*\etocbkgcolorcmd{\relax} -\def\Etoc@relax{\relax} +\def\etocframedmphook{\relax} +\long\def\etocbkgcolorcmd{\relax} +\long\def\Etoc@relax{\relax} \newbox\etoc@framed@titlebox \newbox\etoc@framed@contentsbox \newcommand*\etocframedstyle[2][\etocdefaultnbcol]{% @@ -1036,6 +1061,7 @@ {} {\if@twocolumn \aftergroup \twocolumn \onecolumn \fi }} {}% + \iftocfeature {toc}{numberline}{\def \nonumberline {\numberline {}}}{}% \tocbasic@listhead {\listoftocname}% \begingroup \expandafter \expandafter \expandafter \endgroup \expandafter @@ -1056,7 +1082,7 @@ \csname tocbasic@@after@hook\endcsname}} \let\etocscrbookstyle\etocscrartclstyle \let\etocscrreprtstyle\etocscrartclstyle -\newcommand*\etocstandarddisplaystyle{\etocarticlestyle} +\def\etocstandarddisplaystyle{\etocarticlestyle} \newcommand*\etocmarkboth[1]{% \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}} \newcommand*\etocmarkbothnouc[1]{\@mkboth{#1}{#1}} @@ -1094,10 +1120,39 @@ \renewcommand*\etocstandarddisplaystyle{\etocscrreprtstyle} \Etoc@redefetocstyle{chapter}}{} \@ifclassloaded{memoir} - {\renewcommand*\etocfontone{\normalfont\normalsize} + {\etocsetlevel{appendix}{0}% + \renewcommand*\etocfontone{\normalfont\normalsize} \etocmemoirtoctotocfmt{chapter}{\contentsname}% \renewcommand*\etocstandarddisplaystyle{\etocmemoirstyle} \Etoc@redefetocstyle{chapter}}{} +\def\etoctocloftstyle {% + \etocsettocstyle + {\@cfttocstart\par\begingroup + \parindent\z@ \parskip\cftparskip \@cftmaketoctitle + \if@cfttocbibind\@cftdobibtoc\fi }% + {\endgroup\@cfttocfinish }% +} +\@ifclassloaded{memoir}{} +{\@ifpackageloaded{tocloft} + {\if@cftnctoc\else + \renewcommand*\etocstandarddisplaystyle{\etoctocloftstyle} + \AtBeginDocument{\let\tableofcontents\etoctableofcontents} + \fi } + {\AtBeginDocument + {\@ifpackageloaded{tocloft} + {\if@cftnctoc\else + \PackageWarning {etoc} + {Package `tocloft' was loaded after `etoc'!^^J% +**** to prevent it from overwriting \protect\tableofcontents, it will be tricked^^J% +**** into believing to have been loaded with option `titles'. For better^^J% +**** compatibility, please load `tocloft' before `etoc'}% + \AtEndDocument{\PackageWarning{etoc} + {Please load `tocloft' /before/ `etoc'!}}\fi + \@cftnctoctrue }% + {}% + }% + }% +} \def\Etoc@addtocontents #1#2% {\ifEtoc@hyperref \addtocontents {toc}{\protect\contentsline @@ -1112,11 +1167,100 @@ \addcontentsline {toc}{#1}{#2}} \DeclareRobustCommand*{\etoctoccontentsline} {\@ifstar{\Etoc@addcontentsline@}{\Etoc@addtocontents}} -\newcommand*\etocstandardlines{\Etoc@standardtrue} -\newcommand*\etoctoclines{\Etoc@standardfalse} % 1.07b -\etocdefaultlines % for initialization +\def\Etoc@storetocdepth {\global\c@etoc@tocdepth\c@tocdepth } +\def\Etoc@resettocdepth {\global\c@tocdepth\c@etoc@tocdepth } +\def\etocobeytoctocdepth {\def\etoc@settocdepth + {\afterassignment\Etoc@@nottoodeep \global\c@tocdepth}} +\def\Etoc@@nottoodeep {\ifnum\c@tocdepth>\c@etoc@tocdepth + \global\c@tocdepth\c@etoc@tocdepth\fi } +\def\etocignoretoctocdepth {\let\etoc@settocdepth\@gobble } +\def\etocsettocdepth {\futurelet\Etoc@nexttoken\Etoc@set@tocdepth } +\def\Etoc@set@tocdepth {\ifx\Etoc@nexttoken\bgroup + \expandafter\Etoc@set@tocdepth@ + \else\expandafter\Etoc@set@toctocdepth + \fi } +\def\Etoc@set@tocdepth@ #1{\@ifundefined {Etoc@#1@@} + {\PackageWarning{etoc} + {Unknown sectioning unit #1, \protect\etocsettocdepth\space ignored}} + {\global\c@tocdepth\csname Etoc@#1@@\endcsname}% +} +\def\Etoc@set@toctocdepth #1#{\Etoc@set@toctocdepth@ } +\def\Etoc@set@toctocdepth@ #1{% + \@ifundefined{Etoc@#1@@}% + {\PackageWarning{etoc} + {Unknown sectioning depth #1, \protect\etocsettocdepth.toc ignored}}% + {\addtocontents {toc} + {\protect\etoc@settocdepth\expandafter\protect\csname Etoc@#1@@\endcsname}}% +} +\def\etocdepthtag #1#{\Etoc@depthtag } % \etocdepthtag.toc {name} +\def\Etoc@depthtag #1{\addtocontents {toc}{\protect\etoc@depthtag {#1}}} +\def\etocignoredepthtags {\let\etoc@depthtag \@gobble } +\def\etocobeydepthtags {\let\etoc@depthtag \Etoc@depthtag@ } +\def\Etoc@depthtag@ #1{\@ifundefined{Etoc@depthof@#1}% + {}% ignore in silence if tag has no associated depth + {\afterassignment\Etoc@@nottoodeep + \global\c@tocdepth\csname Etoc@depthof@#1\endcsname}% +} +\def\etocsettagdepth #1#2{\@ifundefined{Etoc@#2@@}% + {\PackageWarning{etoc} + {Unknown sectioning depth #2, \protect\etocsettagdepth\space ignored}}% + {\@namedef{Etoc@depthof@#1}{\@nameuse{Etoc@#2@@}}}% +} +\def\Etoc@tocvsec@err #1{\PackageError {etoc} + {the command \protect#1\space is incompatible with etoc} + {use \protect\etocsettocdepth.toc as replacement (check the manual)}% +}% +\AtBeginDocument {% + \@ifclassloaded{memoir} + {\PackageWarning{etoc}{You may consider using \protect\etocsettocdepth.toc + as a drop-in^^J + replacement to the memoir own \protect\settocdepth\space + if you wish to exploit etoc to its^^J + fullest. Similarly consider using + \protect\etocsettocdepth\space and + \protect\etocsetnexttocdepth^^J rather + than memoir's \protect\maxtocdepth.}} + {\@ifpackageloaded {tocvsec2} + {\def\maxtocdepth #1{\Etoc@tocvsec@err \maxtocdepth }% + \def\settocdepth #1{\Etoc@tocvsec@err \settocdepth }% + \def\resettocdepth {\@ifstar {\Etoc@tocvsec@err \resettocdepth }% + {\Etoc@tocvsec@err \resettocdepth }% + }% + \def\save@tocdepth #1#2#3{}% % if etoc is added to file previously + \let\reset@tocdepth\relax % using tocvsec2 + \let\remax@tocdepth\relax + \let\tableofcontents\etoctableofcontents + \PackageWarning {etoc} + {package tocvsec2 detected and its modification of^^J + \protect\tableofcontents\space reverted. Use + \protect\etocsettocdepth.toc as a replacement^^J + for the tocvsec2 toc-related commands}}{}% + }% +}% +\def\invisibletableofcontents {\etocsetnexttocdepth {-3}\tableofcontents }% +\def\invisiblelocaltableofcontents + {\etocsetnexttocdepth {-3}\localtableofcontents }% +\def\etocsetnexttocdepth #1{% + \@ifundefined{Etoc@#1@@} + {\PackageWarning{etoc} + {Unknown sectioning unit #1, \protect\etocsetnextocdepth\space ignored}} + {\edef\Etoc@aftertochook {\global\c@tocdepth\the\c@tocdepth\space + \let\noexpand\Etoc@aftertochook\noexpand\@empty }% + \global\c@tocdepth\csname Etoc@#1@@\endcsname}% +}% +\addtocontents {toc}{\protect\@ifundefined{etoctocstyle}% + {\let\protect\etoc@startlocaltoc\protect\@gobble + \let\protect\etoc@settocdepth\protect\@gobble + \let\protect\etoc@depthtag\protect\@gobble }{}}% +\def\etocstandardlines {\Etoc@standardtrue} +\def\etoctoclines {\Etoc@standardfalse} +\etocdefaultlines \etocstandardlines \etocstandarddisplaystyle +\etocobeytoctocdepth +\etocobeydepthtags +\let\Etoc@aftertochook\@empty % private for \etocsetnexttocdepth +\let\etocaftertochook \@empty % public for end user. \endinput %% %% End of file `etoc.sty'. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/etoc.tlpobj new/tlpkg/tlpobj/etoc.tlpobj --- old/tlpkg/tlpobj/etoc.tlpobj 2013-05-16 03:51:36.000000000 +0200 +++ new/tlpkg/tlpobj/etoc.tlpobj 2014-05-19 03:26:53.000000000 +0200 @@ -1,6 +1,6 @@ name etoc category Package -revision 30488 +revision 34106 shortdesc Completely customisable TOCs. relocated 1 longdesc The package gives the user complete control of how the entries @@ -18,9 +18,9 @@ longdesc with a frame around the table). The \tableofcontents command longdesc may be used arbitrarily many times in the same document, while longdesc \localtableofcontents provides a 'local' table of contents. -runfiles size=10 +runfiles size=12 RELOC/tex/latex/etoc/etoc.sty catalogue-ctan /macros/latex/contrib/etoc -catalogue-date 2013-04-06 14:04:53 +0200 -catalogue-license lppl1.2 -catalogue-version 1.07f +catalogue-date 2014-05-18 13:08:20 +0200 +catalogue-license lppl1.3 +catalogue-version 1.07l ++++++ euro-ce.doc.tar.xz ++++++ ++++++ euro-ce.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/euro-ce.tlpobj new/tlpkg/tlpobj/euro-ce.tlpobj --- old/tlpkg/tlpobj/euro-ce.tlpobj 2012-03-21 04:27:09.000000000 +0100 +++ new/tlpkg/tlpobj/euro-ce.tlpobj 2014-04-18 02:52:35.000000000 +0200 @@ -31,6 +31,6 @@ RELOC/fonts/tfm/public/euro-ce/eurosl.tfm RELOC/fonts/tfm/public/euro-ce/eurosp.tfm catalogue-ctan /fonts/euro-ce -catalogue-date 2012-03-20 10:39:30 +0100 +catalogue-date 2014-02-26 23:03:13 +0100 catalogue-license bsd catalogue-version 3.0b ++++++ exsheets.doc.tar.xz ++++++ ++++ 6565 lines of diff (skipped) ++++++ exsheets.tar.xz ++++++ ++++ 3458 lines of diff (skipped) ++++++ enctex.doc.tar.xz -> fbb.doc.tar.xz ++++++ ++++ 5056 lines of diff (skipped) ++++++ enctex.doc.tar.xz -> fbb.tar.xz ++++++ ++++ 12157 lines of diff (skipped) ++++++ texlive-specs-h-rpmlintrc ++++++ addFilter(".*dangling-symlink.*/fonts/.*") addFilter(".*dangling-symlink.*/zypper\.py.*") addFilter(".*description-shorter-than-summary.*") addFilter(".*devel-file-in-non-devel-package.*/doc/.*") addFilter(".*files-duplicate.*") addFilter(".*E:.*files-duplicated-waste.*") addFilter(".*spelling-error.*") addFilter(".*zero-length.*") addFilter(".*E:.*summary-too-long.*") addFilter(".*incorrect-fsf-address.*") addFilter(".*hidden-file-or-dir.*/\.tex.*") addFilter(".*wrong-script-end-of-line-encoding.*") addFilter(".*script-without-shebang.*/doc/.*") addFilter(".*wrong-script-interpreter.*/doc/.*") addFilter(".*non-executable-script.*/doc/.*")
participants (1)
-
root@hilbert.suse.de