diff options
Diffstat (limited to 'macros/latex/contrib')
31 files changed, 325 insertions, 138 deletions
diff --git a/macros/latex/contrib/hyperref/ChangeLog.txt b/macros/latex/contrib/hyperref/ChangeLog.txt index c93958e5eb..b0c661dd10 100644 --- a/macros/latex/contrib/hyperref/ChangeLog.txt +++ b/macros/latex/contrib/hyperref/ChangeLog.txt @@ -1,3 +1,6 @@ +2019-11-10 David Carlisle + * adjust vtex guards for issue #108 + 2019-11-06 David Carlisle * don't load hobsub-hyperref,ifpdf,ifluatex,ifxetex,ifvtex do load new iftex diff --git a/macros/latex/contrib/hyperref/backref.pdf b/macros/latex/contrib/hyperref/backref.pdf Binary files differindex 37bf795e69..2e4a60a3f5 100644 --- a/macros/latex/contrib/hyperref/backref.pdf +++ b/macros/latex/contrib/hyperref/backref.pdf diff --git a/macros/latex/contrib/hyperref/doc/manual.pdf b/macros/latex/contrib/hyperref/doc/manual.pdf Binary files differindex ceee2cc8d6..d5c51b278d 100644 --- a/macros/latex/contrib/hyperref/doc/manual.pdf +++ b/macros/latex/contrib/hyperref/doc/manual.pdf diff --git a/macros/latex/contrib/hyperref/doc/options.pdf b/macros/latex/contrib/hyperref/doc/options.pdf Binary files differindex d5d92d0e31..3fd0851757 100644 --- a/macros/latex/contrib/hyperref/doc/options.pdf +++ b/macros/latex/contrib/hyperref/doc/options.pdf diff --git a/macros/latex/contrib/hyperref/hyperref.dtx b/macros/latex/contrib/hyperref/hyperref.dtx index 5fa0f2e608..0a1965bfd7 100644 --- a/macros/latex/contrib/hyperref/hyperref.dtx +++ b/macros/latex/contrib/hyperref/hyperref.dtx @@ -49,7 +49,7 @@ %<puvnenc>\ProvidesFile{puvnenc.def} %<puarenc>\ProvidesFile{puarenc.def} %<psdextra>\ProvidesFile{psdextra.def} -%<!none> [2019/11/06 v7.00b % +%<!none> [2019/11/10 v7.00c % %<package> Hypertext links for LaTeX] %<nohyperref> Dummy hyperref (SR)] %<driver> Hyperref documentation driver file] @@ -7415,26 +7415,24 @@ \ifx\Hy@driver\@empty \else \def\Hy@temp{hvtexhtm}% - \ifvtex - \ifnum\OpMode=10 % - \ifx\Hy@driver\Hy@temp - \else - \Hy@WarningNoLine{% - Wrong driver `\Hy@driver.def';\MessageBreak - VTeX is running in HTML mode.\MessageBreak - Forcing driver `\Hy@temp.def'% - }% - \let\Hy@driver\Hy@temp - \fi + \ifnum\ifvtex\OpMode\else\m@ne\fi=10 % + \ifx\Hy@driver\Hy@temp \else - \ifx\Hy@driver\Hy@temp - \Hy@WarningNoLine{% - Wrong driver `\Hy@driver.def';\MessageBreak - VTeX is not running in HTML mode.\MessageBreak - Using default driver% - }% - \let\Hy@driver\@empty - \fi + \Hy@WarningNoLine{% + Wrong driver `\Hy@driver.def';\MessageBreak + VTeX is running in HTML mode.\MessageBreak + Forcing driver `\Hy@temp.def'% + }% + \let\Hy@driver\Hy@temp + \fi + \else + \ifx\Hy@driver\Hy@temp + \Hy@WarningNoLine{% + Wrong driver `\Hy@driver.def';\MessageBreak + VTeX is not running in HTML mode.\MessageBreak + Using default driver% + }% + \let\Hy@driver\@empty \fi \fi \fi @@ -7457,7 +7455,7 @@ \ifxetex \def\Hy@driver{hxetex}% \else - \ifnum\OpMode=10 % + \ifnum\ifvtex\OpMode\else\m@ne\fi=10 % \def\Hy@driver{hvtexhtm}% \def\MaybeStopEarly{% \Hy@Message{Stopped early}% @@ -7468,10 +7466,10 @@ \endinput }% \else - \ifnum\OpMode=\@ne + \ifnum\ifvtex\OpMode\else\m@ne\fi=\@ne \def\Hy@driver{hvtex}% \else - \ifnum\OpMode=\tw@ + \ifnum\ifvtex\OpMode\else\m@ne\fi=\tw@ \def\Hy@driver{hvtex}% \else \ifx\HyOpt@DriverFallback\ltx@empty diff --git a/macros/latex/contrib/hyperref/hyperref.pdf b/macros/latex/contrib/hyperref/hyperref.pdf Binary files differindex 5718fa167b..ad74de3f04 100644 --- a/macros/latex/contrib/hyperref/hyperref.pdf +++ b/macros/latex/contrib/hyperref/hyperref.pdf diff --git a/macros/latex/contrib/hyperref/nameref.pdf b/macros/latex/contrib/hyperref/nameref.pdf Binary files differindex e3ba587456..8a845a6801 100644 --- a/macros/latex/contrib/hyperref/nameref.pdf +++ b/macros/latex/contrib/hyperref/nameref.pdf diff --git a/macros/latex/contrib/tugboat/README b/macros/latex/contrib/tugboat/README index 11e6e50e24..bed52cdfdb 100644 --- a/macros/latex/contrib/tugboat/README +++ b/macros/latex/contrib/tugboat/README @@ -1,5 +1,5 @@ -$Id: README 205 2018-09-06 17:28:53Z karl $ -Copyright 2006, 2009-2018 TeX Users Group. +$Id: README 261 2019-11-09 22:00:31Z karl $ +Copyright 2006, 2009-2019 TeX Users Group. You may freely use, modify and/or distribute this file. LaTeX macros for use in TUGboat diff --git a/macros/latex/contrib/tugboat/ltubguid.ltx b/macros/latex/contrib/tugboat/ltubguid.ltx index dcb817f014..906789bf28 100644 --- a/macros/latex/contrib/tugboat/ltubguid.ltx +++ b/macros/latex/contrib/tugboat/ltubguid.ltx @@ -1,8 +1,7 @@ -% $Id: ltubguid.ltx 216 2018-12-13 21:40:11Z karl $ +% $Id: ltubguid.ltx 261 2019-11-09 22:00:31Z karl $ % ltubguid.ltx - documentation for ltugboat classes. % -% Copyright 1994,1995,1996,2001,2005,2006,2010,2013,2014,2017,2018 -% TeX Users Group. +% Copyright 1994-2019 TeX Users Group. % % This file is part of the tugboat package. % @@ -313,7 +312,8 @@ the same treatment). Authors may note that the style of ordinary issues of \TUB{} makes no distinction between the titles of the divisions; the visual style relies on the section numbers to indicate where the divisions lie in -the hierarchy. +the hierarchy. If you use \cs{paragraph}, consider ending the paragraph +label with a period; sometimes it is helpful, sometimes not. Reference may, however, be made to the `title' of divisions of the paper, whether they are numbered or not. The \cs{nameref} command @@ -525,19 +525,35 @@ as \pkgname{verbatim}~\cite{Schoepf:verbatim:1996}, \TUB\ optional-argument feature is not available. If you use the \pkgname{listings} package, please specify: -\begin{verbatim} -\lstset{columns=flexible} -\end{verbatim} -The other values for the \verb|columns| option don't work well in -\TUB. Also, if you use \cs{small} for displayed verbatim, please reset -inline verbatim to the normal text size: \begin{verbatim}[\small] -\lstset{columns=flexible, +\lstset{columns=flexible, keepspaces=true, + commentstyle=\slshape, basicstyle=\ttfamily\small} \lstdefinestyle{inline} - {basicstyle=\ttfamily\normalsize} + {basicstyle=\ttfamily\normalsize} \end{verbatim} +Explanations: +\begin{itemize} +\item \texttt{columns=flexible}: +The other values for the \verb|columns| option don't work well in \TUB. + +\item \texttt{keepspaces=true}: +However, having flexible columns makes spaces in the input not +necessarily correspond to spaces in the output. That's usually desired, +for alignment of the sources, hence \texttt{keepspaces}. + +\item \texttt{commentstyle=\cs{slshape}}: +We prefer slanted to Computer Modern typewriter italic. +Using regular upright typewriter for comments is fine too. + +\item \texttt{basicstyle=...}: +We usually prefer \cs{small} for displayed verbatim; when using +\texttt{listings}, it is necessary to reset inline verbatim to the +normal text size. + +\end{itemize} + \section{Floating inserts} The classes do not make any change to \LaTeX{}'s built-in provision @@ -592,7 +608,6 @@ and of course the class sources are the ultimate reference. \verb|\MacOSX| & \MacOSX \\ \verb|\MathML| & \MathML \\ \verb|\MF| & \MF \\ - \verb|\MP| & \MP \\ \verb|\OMEGA| & \OMEGA \\ \verb|\PDF| & \PDF \\ \verb|\SGML| & \SGML \\ @@ -641,14 +656,16 @@ the `everyday' ones. \section{Use of packages} -In general, authors can use non-standard packages in their papers. -However, the paper does need to be processable on the \TUB{} production -computers (running current \TeX\ Live). A sensible mechanism for -submitting out-of-the-ordinary packages (as for paper-specific -bibliographies) is by use of the \envname{filecontents} environment. +Being a \TeX\ journal, authors may use both standard and non-standard +external packages for their articles. The overriding criterion is that +articles need to be processable on the \TUB{} production computers +(running current \TeX\ Live). A sensible mechanism for submitting +personal packages is by use of the \envname{filecontents} environment. +It's also fine to submit manuscript source with additional packages in a +zip or other archive. In general, packages currently on \CTAN, and known to work with -\emph{current} \LaTeX{} are unlikely to give problems. In particular, +\emph{current} \LaTeX{} are likely to be fine. In particular, the team is happy to accept papers using packages that are supported by members of the \LaTeX3 team,\footnote{% Those in the \LaTeX{} base distribution, or one of those in the @@ -658,33 +675,29 @@ mentioned (section~\ref{sec:verbatim}): that use of the standard facilities provided by the \TUB\ classes. \tug{} has a policy that macro packages described in \TUB{} should be -available for readers to use. Since typing macros from printed -sources is such an error-prone undertaking, authors of publicly -available packages are urged to submit their macros to the \CTAN{} -archives. If a package is only available under restricted terms, -authors are urged to make this fact clear when first submitting an -article to the editor. - -At present, the list of canonically recommended packages consists of -only two, \path|mflogo.sty| \cite{Vieth:mflogo:1995} and \path|url.sty| -\cite{Arseneau:url:1996}. - -Both classes will load the \pkgname{mflogo} package if it is present on the -author's system; if the package is not present, the classes will -emulate its more important features; the package defines \MF{} and -\MP{} logos using recent versions of Knuth's \verb|logo10| font family. - -The \pkgname{url} package is useful when one is typesetting significant -numbers of file names, network addresses or \acro{URL}s; it is being -used in the present paper (not least in the bibliography). Speaking of -urls, nowadays we generally omit a leading \texttt{http://} or -\texttt{https://}. +available for readers to use. Since typing macros from printed sources +is a tedious undertaking, authors of publicly available packages are +urged to submit their macros to \CTAN{}. If a package is only available +under restricted terms, authors are requested to make this fact clear +when first submitting an article to the editor. + +The \texttt{ltugboat} class loads the package \path|mflogo.sty| +\cite{Vieth:mflogo:1995} for typesetting the \MF\ logo. (If this package +is not present by some mischance, \texttt{ltugboat} will emulate its +important feature.) + +An additional canonically-recommended package is \path|url.sty| +\cite{Arseneau:url:1996}, for typesetting filenames, email addresses, +urls, etc.; it is being used throughout the present paper (not least in +the bibliography). Speaking of urls, nowadays we generally omit a +leading \texttt{http://} or \texttt{https://}. Although not necessarily recommended in all cases, many additional packages are commonly used. To mention a few: \texttt{microtype} can help reduce overfull boxes; sometimes it may be preferable to use the -Latin Modern fonts via \texttt{lmodern}; and \texttt{hyperref} allows -for many internal links and other features. +Latin Modern fonts via \texttt{lmodern}; \texttt{iftex} provides tests +for the \TeX\ engine being run; and \texttt{hyperref} supports live and +internal hyperlinks, outlines, and many other features. \section{Bibliography} \label{sec:biblio} @@ -712,7 +725,7 @@ though, you may enjoy the following small but useful features: \item The \textsf{url} field is ignored if either the \textsf{doi} or \textsf{howpublished} field is present, since in practice we observe that people put the same information in all those fields, and we don't -want to use up space typesetting redundant information. +typeset redundant information. \item Has even more abbreviations than \textsf{abbrv}, including printing only two author names (plus ``et~al\@.'') if there are more @@ -723,8 +736,9 @@ than four authors (thanks to Mico Loretan). \item For completeness only: \verb|tugboat.bst| provides ``secret'' fields \textsf{newpage} to force a page break after the current item, and \textsf{urlnewline} to force a line break before the \textsf{url} -value. We've found that these presentation tweaks are often necessary -for the final typeset output. Authors need not worry about them. +value. As editors, we've found that these presentation tweaks are often +necessary for the final typeset output. Authors need not worry about +them. \end{itemize} @@ -744,9 +758,8 @@ set \cs{sloppy}, by default (just like \LaTeX{}), but the author may \end{verbatim} as the present article does, to achieve somewhat better results. -A last note for bibliographies: for references to other issues of \TUB, -please use the format \textsl{volno:issno}, e.g., ``\TUB\ 32:1'' for -volume~32, number~1. +A last note for references: for \TUB\ issues, please use the format +\textsl{volno\,:\,issno}, e.g., ``\TUB\ 32:1'' for volume~32, number~1. \section{Non-recommended bibliography facilities} diff --git a/macros/latex/contrib/tugboat/ltubguid.pdf b/macros/latex/contrib/tugboat/ltubguid.pdf Binary files differindex 48f978eb90..96524d71f7 100644 --- a/macros/latex/contrib/tugboat/ltubguid.pdf +++ b/macros/latex/contrib/tugboat/ltubguid.pdf diff --git a/macros/latex/contrib/tugboat/tugboat.bst b/macros/latex/contrib/tugboat/tugboat.bst index ad73920cb9..3be31fa97e 100644 --- a/macros/latex/contrib/tugboat/tugboat.bst +++ b/macros/latex/contrib/tugboat/tugboat.bst @@ -1,14 +1,15 @@ -%%% $Id: tugboat.bst 210 2018-10-29 18:04:16Z karl $ +%%% $Id: tugboat.bst 261 2019-11-09 22:00:31Z karl $ %%% TUGboat changes are public domain. %%% %%% Modified for TUGboat from abbrvurl.bst: -%%% abbreviate "page(s)" to "p(p).", +%%% Abbreviate "page(s)" to "p(p).", %%% "volume" to "vol.", %%% "editor(s)" to "ed(s)". -%%% urlintro="" -%%% reduce long author lists in format.names per Mico. -%%% new fields for editors: -%%% "newpage" - force page break after entry +%%% Set urlintro="". +%%% Output "Ph.D." rather than "PhD". +%%% Reduce long author lists in format.names per Mico Loretan. +%%% New fields for editors: +%%% "newpage" - force page break after entry; %%% "urlnewline" - force line break before url value. %%% --karl, originally created 24jul18. %%% @@ -22,7 +23,7 @@ %%% Added hyperref support. %%% Original headers follow... -% BibTeX standard bibliography style `abbrv' +% [was] BibTeX standard bibliography style `abbrv' % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. % Copyright (C) 1985, all rights reserved. % Copying of this file is authorized only if either @@ -580,8 +581,8 @@ FUNCTION {format.pages} { pages empty$ { "" } { pages multi.page.check - { "pp." pages n.dashify tie.or.space.connect } - { "p." pages tie.or.space.connect } + { "pp.~" pages n.dashify * } + { "p.~" pages * } if$ } if$ @@ -1183,7 +1184,7 @@ FUNCTION {phdthesis} title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check new.block - "PhD thesis" format.thesis.type output.nonnull + "Ph.D. thesis" format.thesis.type output.nonnull school "school" output.check address output format.date "year" output.check diff --git a/macros/latex/contrib/tugboat/tugboat.dtx b/macros/latex/contrib/tugboat/tugboat.dtx index 176107a4d9..973d05a646 100644 --- a/macros/latex/contrib/tugboat/tugboat.dtx +++ b/macros/latex/contrib/tugboat/tugboat.dtx @@ -1,8 +1,8 @@ % \iffalse (this is a meta-comment (so they say)) -% $Id: tugboat.dtx 217 2018-12-14 18:48:06Z karl $ +% $Id: tugboat.dtx 261 2019-11-09 22:00:31Z karl $ % tugboat.dtx - main source for LaTeX TUGboat classes. % -% Copyright 1994-2018 TeX Users Group. +% Copyright 1994-2019 TeX Users Group. % % This file is part of the tugboat package. % @@ -28,7 +28,7 @@ %<ltugboatsty>\ProvidesPackage{ltugboat} %<ltugprocsty>\ProvidesPackage{ltugproc} %<ltugcomn> \ProvidesPackage{ltugcomn} - [2018-12-14 v2.21 + [2019-11-09 v2.22 %<ltugboatcls> TUGboat journal class% %<ltugproccls> TUG conference proceedings class% %<ltugboatsty|ltugprocsty> TUG compatibility package% @@ -65,8 +65,8 @@ % \usepackage{array,longtable} % -% if longtable.sty is the most recent, then it doesn't need -% \cs{setlongtables}, so we avoid the setlong.tab game +% If longtable.sty is not ancient, then it doesn't need +% \cs{setlongtables}, so we avoid the setlong.tab game. \GetFileInfo{longtable.sty} \def\extractdate#1/#2/#3\relax{\def\fileyear{#1}% \def\filemonth{#2}% @@ -671,6 +671,9 @@ } \def\BibLaTeX{\Bib\kern.02em \LaTeX} \def\BibTeX{\Bib\kern-.08em \TeX} +% no good way to determine bold font, and we want to lose the kern, too: +% (we \let BibTeX to this in maketitle) +\def\bfBibTeX{B{\SMC\SMC IB}\TeX} % \def\BSD{\acro{BSD}} \def\CandT{\textsl{Computers \& Typesetting}} @@ -697,7 +700,8 @@ \def\DVItoVDU{DVIto\kern-.12em VDU} \def\ECMA{\acro{ECMA}} \def\EPS{\acro{EPS}} -\DeclareRobustCommand{\eTeX}{\ensuremath{\varepsilon}-\kern-.125em\TeX} +% no line break at this hyphen please +\DeclareRobustCommand{\eTeX}{\ensuremath{\varepsilon}\mbox{-}\kern-.125em\TeX} \DeclareRobustCommand{\ExTeX}{% \ensuremath{\textstyle\varepsilon_{\kern-0.15em\cal{X}}}\kern-.2em\TeX} \def\FAQ{\acro{FAQ}} @@ -708,6 +712,7 @@ \def\Hawaii{Hawai`i} \def\HTML{\acro{HTML}} \def\HTTP{\acro{HTTP}} +\def\iOS{i\acro{OS}} \def\IDE{\acro{IDE}} \def\IEEE{\acro{IEEE}} \def\ISBN{\acro{ISBN}} @@ -748,17 +753,22 @@ % % \begin{macrocode} %<!latex>\def\LaTeX{\La\kern-.15em\TeX} +\def\LuaHBTeX{Lua\acro{HB}\-\TeX}% +\def\LuaHBLaTeX{Lua\acro{HB}\-\LaTeX}% +\def\LuaLaTeX{Lua\-\LaTeX}% dtk-logos defines it and people like to use it +\def\LuaTeX{Lua\-\TeX}% ditto \def\LyX{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX} +\def\macOS{mac\acro{OS}} \def\MacOSX{Mac\,\acro{OS\,X}} \def\MathML{Math\acro{ML}} \def\Mc{\setbox\TestBox=\hbox{M}M\vbox to\ht\TestBox{\hbox{c}\vfil}} % for Robert McGaffey % \end{macrocode} % -% If we're running under \LaTeXe, we're using (at least pro tem) Ulrik -% Vieth's |mflogo.sty| if it's present. Otherwise, we're using a -% short extract of Vieth's stuff. Either way, we don't need to -% specify \cs{MF} or \cs{MP} +% If we're running under \LaTeXe, we use Ulrik Vieth's |mflogo.sty| if +% it's present. Otherwise, we're using a short extract of Vieth's +% stuff. Either way, we don't need to specify \cs{MF} or \cs{MP}. +% % \begin{macrocode} \def\mf{\textsc{Metafont}} \def\MFB{\textsl{The \MF\kern1pt book}} @@ -791,6 +801,8 @@ \def\pcMF{\leavevmode\raise.5ex\hbox{p\kern-.3\p@ c}MF\@} \def\PCTeX{PC\thinspace\TeX} \def\pcTeX{\leavevmode\raise.5ex\hbox{p\kern-.3\p@ c}\TeX} +\def\pdflatex{pdf\-\LaTeX}% dtk-logos +\def\pdftex{pdf\-\TeX}% dtk-logos \def\PDF{\acro{PDF}} \def\PGF{\acro{PGF}} \def\PHP{\acro{PHP}} @@ -824,7 +836,7 @@ \def\TeXworks{\TeX\kern-.07em works} \def\TeXXeT{\TeX-{}-\XeT} \def\TFM{\acro{TFM}} -\expandafter\ifx\csname XeTeXrevision\endcsname\relax +\ifx\Umathchardef\@thisisundefined % xetex|luatex \def\Thanh{H\`an~Th\^e\llap{\raise 0.5ex\hbox{\'{}}}~Th\`anh}% non-XeTeX \else \def\Thanh{H\`an~Th\textcircumacute{e}~Th\`anh}% else xunicode drops the acute @@ -874,6 +886,12 @@ \DeclareRobustCommand{\Xe}{\leavevmode \tubhideheight{\hbox{X% \setbox0=\hbox{\TeX}\setbox1=\hbox{E}% + \ifdim \fontdimen1\font>0pt + % XeTeX logo needs tinkering when slanted/italic font. + \def\XekernbeforeE{-.11em}% + \def\XekernafterE{-.11em}% + \dp1=-.17ex + \fi \lower\dp0\hbox{\raise\dp1\hbox{\kern\XekernbeforeE\tubreflect{E}}}% \kern\XekernafterE}}} \def\XeTeX{\Xe\TeX} @@ -1154,6 +1172,15 @@ % but fine, just keeping it. \DeclareRobustCommand{\thinskip}{\hskip 0.16667em\relax} % +% Make \! work in text mode. +\DeclareRobustCommand{\!}{\ifmmode\mskip-\thinmuskip \else\kern-0.16667em \fi} +% +% Half a thinspace. +\DeclareRobustCommand{\tubthinnerspace} + {\ifmmode\mskip.5\thinmuskip \else\kern0.08333em \fi} +\DeclareRobustCommand{\tubthinnerspaceneg} + {\ifmmode\mskip-.5\thinmuskip \else\kern-0.08333em \fi} +% % \end{macrocode} % % We play a merry game with dashes, providing all conceivable options @@ -2277,7 +2304,10 @@ \let\and=\quad \ignorespaces\@author}% {% - \noindent\bf\raggedright\ignorespaces\frenchspacing\@title\endgraf + \noindent\bf\raggedright\ignorespaces\frenchspacing + \let\BibTeX=\bfBibTeX % else LaTeX Font Warning: + % Font shape `OT1/cmr/bx/sc' undefined + \@title\endgraf }% \ifdim \wd0 < 5\p@ % omit if author is null \else @@ -2484,7 +2514,7 @@ % % \begin{macrocode} \def\TBtocsectionfont{\normalfont} -\newskip\TBtocsectionspace \TBtocsectionspace=1.0em\@plus\p@ +\newskip\TBtocsectionspace \TBtocsectionspace=1.0ex\@plus\p@ % \end{macrocode} % % \begin{macrocode} @@ -3212,9 +3242,11 @@ } % put issue identification and page number in header. \def\@oddhead{\MakeRegistrationMarks + \frenchspacing \normalsize\csname normalshape\endcsname\rm \tubheadhook \rtitlex\qquad \midrtitle\hfil \rtitlenexttopage\quad \thepage} \def\@evenhead{\MakeRegistrationMarks + \frenchspacing \normalsize\csname normalshape\endcsname\rm \tubheadhook \thepage \quad\rtitlenexttopage \hfil\midrtitle \qquad\rtitlex} @@ -3222,6 +3254,7 @@ \def\tubheadhook{} % in case the official \author is too verbose for the footline. +% (the \shortauthor / \rhAuthor stuff is only enabled for proceedings, fix!) \def\tubrunningauthor{\@author} % put title and author in footer. @@ -3231,7 +3264,7 @@ \let\newline=\\% \frenchspacing \hfil\rhTitle} - \def\@evenfoot{\tubrunningauthor\hfil} + \def\@evenfoot{\frenchspacing \let\thanks\@gobble \tubrunningauthor\hfil} } % empty footer. diff --git a/macros/latex/contrib/tugboat/tugboat.ins b/macros/latex/contrib/tugboat/tugboat.ins index 72b4f4f184..4aabebdd9b 100644 --- a/macros/latex/contrib/tugboat/tugboat.ins +++ b/macros/latex/contrib/tugboat/tugboat.ins @@ -1,10 +1,10 @@ -% $Id: tugboat.ins 210 2018-10-29 18:04:16Z karl $ +% $Id: tugboat.ins 261 2019-11-09 22:00:31Z karl $ % tugboat.ins %% This file will generate fast loadable files and documentation %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1994-2018 TeX Users Group. +%% Copyright 1994-2019 TeX Users Group. %% %% This file is part of the tugboat package. %% @@ -38,7 +38,7 @@ This is a generated file. -Copyright 1994-2018 TeX Users Group. +Copyright 1994-2019 TeX Users Group. It may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 @@ -79,7 +79,6 @@ extension .ins) which are part of the distribution. \Msg{* files into a directory searched by TeX:} \Msg{* \space\space All *.sty and all *.cls} \Msg{*} -\Msg{* And move ltugbib.bst to a directory searched by BibTeX.} \Msg{***********************************************************} \endinput diff --git a/macros/latex/contrib/tugboat/tugboat.pdf b/macros/latex/contrib/tugboat/tugboat.pdf Binary files differindex f5e9d3068d..afdef4195d 100644 --- a/macros/latex/contrib/tugboat/tugboat.pdf +++ b/macros/latex/contrib/tugboat/tugboat.pdf diff --git a/macros/latex/contrib/xsim/README b/macros/latex/contrib/xsim/README index 68012b839a..0aa35c006f 100644 --- a/macros/latex/contrib/xsim/README +++ b/macros/latex/contrib/xsim/README @@ -1,5 +1,5 @@ -------------------------------------------------------------------------- -XSIM 2019/11/02 v0.15 +XSIM 2019/11/10 v0.16 eXercise Sheets IMproved @@ -83,6 +83,7 @@ The xsim package consists of the example files: xsim.texsx-370642.tex, xsim.texsx-370642.pdf xsim.texsx-391530.tex, xsim.texsx-391530.pdf xsim.texsx-395273.tex, xsim.texsx-395273.pdf + xsim.texsx-498299.tex, xsim.texsx-498299.pdf, xsim.texwelt-6698.tex, xsim.texwelt-6698.pdf xsim.texwelt-15093.tex, xsim.texwelt-15093.pdf xsim.texwelt-23968.tex, xsim.texwelt-23968.pdf diff --git a/macros/latex/contrib/xsim/code/xsim.auxfile.code.tex b/macros/latex/contrib/xsim/code/xsim.auxfile.code.tex index 8018694616..d308a9ccc3 100644 --- a/macros/latex/contrib/xsim/code/xsim.auxfile.code.tex +++ b/macros/latex/contrib/xsim/code/xsim.auxfile.code.tex @@ -58,7 +58,7 @@ \xsim_write_to_aux:x { \token_to_str:N \XSIM {#1} #2 } } -\AtBeginDocument +\xsim_at_begin_document:n { \iow_now:Nx \@auxout { \token_to_str:N \providecommand \token_to_str:N \XSIM [1] {} } @@ -69,7 +69,7 @@ \xsim_if_use_aux:F { \iow_new:N \l__xsim_aux_file_iow - \AtBeginDocument + \xsim_at_begin_document:n { \iow_open:Nn \l__xsim_aux_file_iow { \c_sys_jobname_str .xsim } } } @@ -117,7 +117,7 @@ { \prop_gput:cnn {g__xsim_list_#1_prop} {####1} {} } } } - \AtBeginDocument + \xsim_at_begin_document:n { \seq_gclear:c {g__xsim_list_recorded_#1_seq} \seq_set_eq:Nc \l__xsim_tmpa_seq {g__xsim_list_#1_seq} @@ -178,7 +178,7 @@ \cs_new_protected:Npn \xsim_empty_lists: { \bool_set_true:N \l__xsim_empty_lists_bool } -% update list -- should be used inside \AtEndDocument: +% update list (should be used inside \xsim_at_end_document:n): % #1: name \cs_new_protected:Npn \xsim_update_list:n #1 { diff --git a/macros/latex/contrib/xsim/code/xsim.base.code.tex b/macros/latex/contrib/xsim/code/xsim.base.code.tex index df767976b6..b1fa20bff7 100644 --- a/macros/latex/contrib/xsim/code/xsim.base.code.tex +++ b/macros/latex/contrib/xsim/code/xsim.base.code.tex @@ -27,6 +27,20 @@ % ---------------------------------------------------------------------------- \XSIMmodule{base}{basic functionality of the package} +\tl_new:N \g_xsim_end_document_hook_tl +\tl_new:N \g_xsim_begin_document_hook_tl + +\AtBeginDocument { \tl_use:N \g_xsim_begin_document_hook_tl } +\AtEndDocument { \tl_use:N \g_xsim_end_document_hook_tl } + +\cs_new_protected:Npn \xsim_at_begin_document:n #1 + { \tl_gput_right:Nn \g_xsim_begin_document_hook_tl {#1} } + +\cs_new_protected:Npn \xsim_at_end_document:n #1 + { \tl_gput_right:Nn \g_xsim_end_document_hook_tl {#1} } + +% ---------------------------------------------------------------------------- + \xsim_load_modules:n {auxfile} % ---------------------------------------------------------------------------- diff --git a/macros/latex/contrib/xsim/code/xsim.collections.code.tex b/macros/latex/contrib/xsim/code/xsim.collections.code.tex index 3f5d2a1b86..3097981b74 100644 --- a/macros/latex/contrib/xsim/code/xsim.collections.code.tex +++ b/macros/latex/contrib/xsim/code/xsim.collections.code.tex @@ -380,13 +380,13 @@ % ---------------------------------------------------------------------------- -\AtBeginDocument +\xsim_at_begin_document:n { \xsim_get_collections: \xsim_activate_collection:n {all~ exercises} } -\AtEndDocument +\xsim_at_end_document:n { \xsim_deactivate_collection:n {all~ exercises} \xsim_foreach_collection:n { \xsim_update_list:n {collection:#1} } diff --git a/macros/latex/contrib/xsim/code/xsim.environments.code.tex b/macros/latex/contrib/xsim/code/xsim.environments.code.tex index daaae03211..2f9c870b71 100644 --- a/macros/latex/contrib/xsim/code/xsim.environments.code.tex +++ b/macros/latex/contrib/xsim/code/xsim.environments.code.tex @@ -404,7 +404,7 @@ } } } -\cs_generate_variant:Nn \xsim_insert:nnnn {nV,VV,nnnV} +\cs_generate_variant:Nn \xsim_insert:nnnn {nV,VV,nnnV,xx} % #1: type % #2: id diff --git a/macros/latex/contrib/xsim/code/xsim.exercises.code.tex b/macros/latex/contrib/xsim/code/xsim.exercises.code.tex index 9eb469fee4..f9cb706410 100644 --- a/macros/latex/contrib/xsim/code/xsim.exercises.code.tex +++ b/macros/latex/contrib/xsim/code/xsim.exercises.code.tex @@ -540,7 +540,7 @@ } } -\AtBeginDocument +\xsim_at_begin_document:n { \xsim_foreach_exercise_type:n { @@ -549,7 +549,7 @@ } } -\AtEndDocument +\xsim_at_end_document:n { \xsim_if_clear_aux:T { diff --git a/macros/latex/contrib/xsim/code/xsim.goals.code.tex b/macros/latex/contrib/xsim/code/xsim.goals.code.tex index c03fe14483..6e482737b5 100644 --- a/macros/latex/contrib/xsim/code/xsim.goals.code.tex +++ b/macros/latex/contrib/xsim/code/xsim.goals.code.tex @@ -54,7 +54,7 @@ { \fp_new:c {g__xsim_total_goal_#1_fp} } \fp_if_exist:cF {g__xsim_total_goal_recorded_#1_fp} { \fp_new:c {g__xsim_total_goal_recorded_#1_fp} } - \AtBeginDocument + \xsim_at_begin_document:n { \xsim_foreach_exercise_type:n { @@ -262,7 +262,7 @@ \xsim_new_aux_cs:cpn {totalgoal} #1#2 { \fp_gset:cn {g__xsim_total_goal_#1_fp} {#2} } -\AtBeginDocument +\xsim_at_begin_document:n { \seq_map_inline:Nn \l__xsim_goals_seq { @@ -272,7 +272,7 @@ } } -\AtEndDocument +\xsim_at_end_document:n { \seq_map_inline:Nn \l__xsim_goals_seq { diff --git a/macros/latex/contrib/xsim/code/xsim.interface.code.tex b/macros/latex/contrib/xsim/code/xsim.interface.code.tex index 0c1251d113..ba409d9758 100644 --- a/macros/latex/contrib/xsim/code/xsim.interface.code.tex +++ b/macros/latex/contrib/xsim/code/xsim.interface.code.tex @@ -498,6 +498,14 @@ % ---------------------------------------------------------------------------- +\NewDocumentCommand \XSIMatbegindocument {+m} + { \xsim_at_begin_document:n {#1} } + +\NewDocumentCommand \XSIMatenddocument {+m} + { \xsim_at_end_document:n {#1} } + +% ---------------------------------------------------------------------------- + \NewDocumentCommand \ForEachPrintedExerciseByType {+m} { \xsim_foreach_exercise_type_id:nn {print} {#1} } @@ -601,11 +609,23 @@ % ---------------------------------------------------------------------------- -\NewDocumentCommand \printsolution {O{}mm} - { \xsim_insert:nnnn {#2} {#3} {#1} {solution} } +\NewDocumentCommand \XSIMprint {mO{}mm} + { \xsim_insert:nnnn {#3} {#4} {#2} {#1} } + +\NewDocumentCommand \XSIMxprint {mO{}mm} + { \xsim_insert:xxnn {#3} {#4} {#2} {#1} } \NewDocumentCommand \printexercise {O{}mm} { \xsim_insert:nnnn {#2} {#3} {#1} {exercise} } + +\NewDocumentCommand \xprintexercise {O{}mm} + { \xsim_insert:xxnn {#2} {#3} {#1} {exercise} } + +\NewDocumentCommand \printsolution {O{}mm} + { \xsim_insert:nnnn {#2} {#3} {#1} {solution} } + +\NewDocumentCommand \xprintsolution {O{}mm} + { \xsim_insert:xxnn {#2} {#3} {#1} {solution} } % ---------------------------------------------------------------------------- diff --git a/macros/latex/contrib/xsim/code/xsim.properties.code.tex b/macros/latex/contrib/xsim/code/xsim.properties.code.tex index 1222a61b2e..5dd0d1baee 100644 --- a/macros/latex/contrib/xsim/code/xsim.properties.code.tex +++ b/macros/latex/contrib/xsim/code/xsim.properties.code.tex @@ -94,8 +94,8 @@ } \bool_if:nF {#3} { - \AtEndDocument { \xsim_update_list:n {#4} } - \AtBeginDocument { \__xsim_set_property_from_list:n {#4} } + \xsim_at_end_document:n { \xsim_update_list:n {#4} } + \xsim_at_begin_document:n { \__xsim_set_property_from_list:n {#4} } } } } diff --git a/macros/latex/contrib/xsim/code/xsim.sty b/macros/latex/contrib/xsim/code/xsim.sty index a56fa8ecf5..f5efe12408 100644 --- a/macros/latex/contrib/xsim/code/xsim.sty +++ b/macros/latex/contrib/xsim/code/xsim.sty @@ -29,9 +29,9 @@ \ExplSyntaxOn -\tl_const:Nn \c_xsim_date_tl {2019/11/02} +\tl_const:Nn \c_xsim_date_tl {2019/11/10} \tl_const:Nn \c_xsim_version_major_number_tl {0} -\tl_const:Nn \c_xsim_version_minor_number_tl {15} +\tl_const:Nn \c_xsim_version_minor_number_tl {16} \tl_const:Nn \c_xsim_version_subrelease_tl {} \tl_const:Nx \c_xsim_version_number_tl { diff --git a/macros/latex/contrib/xsim/code/xsim.translations.code.tex b/macros/latex/contrib/xsim/code/xsim.translations.code.tex index 978413f6e6..f818c8d5ff 100644 --- a/macros/latex/contrib/xsim/code/xsim.translations.code.tex +++ b/macros/latex/contrib/xsim/code/xsim.translations.code.tex @@ -65,18 +65,19 @@ } } -\AtBeginDocument{ - \bool_if:NTF \l__xsim_language_auto_bool - { - \tl_set:Nx \l_xsim_language_tl - { \@trnslt@language{\@trnslt@current@language} } - } - { - \tl_set_eq:NN - \l_xsim_language_tl - \l__xsim_current_language_tl - } -} +\xsim_at_begin_document:n + { + \bool_if:NTF \l__xsim_language_auto_bool + { + \tl_set:Nx \l_xsim_language_tl + { \@trnslt@language{\@trnslt@current@language} } + } + { + \tl_set_eq:NN + \l_xsim_language_tl + \l__xsim_current_language_tl + } + } % ---------------------------------------------------------------------------- % #1: keyword diff --git a/macros/latex/contrib/xsim/doc/examples/xsim.texsx-498299.pdf b/macros/latex/contrib/xsim/doc/examples/xsim.texsx-498299.pdf Binary files differnew file mode 100644 index 0000000000..99e8314406 --- /dev/null +++ b/macros/latex/contrib/xsim/doc/examples/xsim.texsx-498299.pdf diff --git a/macros/latex/contrib/xsim/doc/examples/xsim.texsx-498299.tex b/macros/latex/contrib/xsim/doc/examples/xsim.texsx-498299.tex new file mode 100644 index 0000000000..6716d52e7e --- /dev/null +++ b/macros/latex/contrib/xsim/doc/examples/xsim.texsx-498299.tex @@ -0,0 +1,75 @@ +\documentclass{article} +\usepackage[no-files]{xsim} +\usepackage{tasks} + +\DeclareExerciseEnvironmentTemplate{item} + {\item[\GetExerciseProperty{counter}]} + {} + +\DeclareExerciseProperty{answer} + +\newcommand*\answer[1]{% + \XSIMexpandcode{% + \SetExerciseProperty{answer} + { (\noexpand\textit{\alph{task}}) \unexpanded{#1}}}% + #1% +} + +\newcommand*\getanswers{% + \def\betweenanswers{\def\betweenanswers{\hspace{2em}}}% + \ForEachUsedExerciseByID{% + \betweenanswers##3\ExercisePropertyGet{##1}{##2}{answer}% + }% +} + +\xsimsetup{ + exercise/template = item, + exercise/the-counter = \arabic{exercise}. +} + +\NewTasksEnvironment[ + label = (\textit{\alph*}) , + label-width = 14pt +]{choice}[\choice] + +\newenvironment{questions} + {\itemize} + {\enditemize} + +\begin{document} + +\section{Problems} +\begin{questions} + \begin{exercise} + What is the product of $-2$ and $3$? + \begin{choice}(4) + \choice \answer{$-6$} + \choice $6$ + \choice $5$ + \choice $-5$ + \end{choice} + \end{exercise} + \begin{exercise} + What is the sum of the sides of a polygon called? + \begin{choice}(2) + \choice Leg + \choice \answer{Perimeter} + \choice Area + \choice Volume + \end{choice} + \end{exercise} + \begin{exercise} + What is the sum of $-2$ and $-3$? + \begin{choice}(4) + \choice $-6$ + \choice $6$ + \choice $5$ + \choice \answer{$-5$} + \end{choice} + \end{exercise} +\end{questions} + +\section{Answers} +\getanswers + +\end{document} diff --git a/macros/latex/contrib/xsim/doc/xsim-manual.cls b/macros/latex/contrib/xsim/doc/xsim-manual.cls index 7e8fec1b67..3667dd11c6 100644 --- a/macros/latex/contrib/xsim/doc/xsim-manual.cls +++ b/macros/latex/contrib/xsim/doc/xsim-manual.cls @@ -29,7 +29,7 @@ % please ignore the contents of this file -- it is not a good example for % coding... % -\ProvidesClass{xsim-manual}[2019/09/27] +\ProvidesClass{xsim-manual}[2019/11/10] \LoadClass[load-preamble,add-index]{cnltx-doc} \RequirePackage{imakeidx} @@ -169,6 +169,10 @@ UseExerciseTags , UseExerciseTagsX , UseExerciseTemplate , + xprintexercise , + xprintsolution , + XSIMatbegindocument , + XSIMatenddocument , XSIMexpandcode , XSIMsetfilebegin , XSIMfilewritestart , @@ -185,10 +189,12 @@ XSIMifeqT , XSIMifeqTF , XSIMmixedcase , + xsimprint , XSIMputright , xsimsetup , xsimstyle , - XSIMtranslate + XSIMtranslate , + xsimxprint } , add-envs = { exercise , solution } , add-silent-cmds = { @@ -829,7 +835,8 @@ \xsim@add@example{texsx-369803}{Layout adjustments} \xsim@add@example{texsx-370642}{Minimalistic layout} \xsim@add@example{texsx-391530}{Exercises and sub-exercises} -\xsim@add@example{texsx-395273}{Different aspects of exercises. Highlighted solutions} +\xsim@add@example{texsx-395273}{Different aspects of exercises, highlighted solutions} +\xsim@add@example{texsx-498299}{Multiple choice questions with automated solutions} \xsim@add@example{texwelt-6698}{Custom list of exercises} \xsim@add@example{texwelt-15093}{Indicate difficulty level} \xsim@add@example{texwelt-23968}{Long and short solutions} @@ -858,6 +865,7 @@ \xsim@add@version{0.13} {2019-10-06} \xsim@add@version{0.14} {2019-10-13} \xsim@add@version{0.15} {2019-11-02} +\xsim@add@version{0.16} {2019-11-10} % ---------------------------------------------------------------------------- \newrobustcmd*\xsimauxfileinfo{% diff --git a/macros/latex/contrib/xsim/doc/xsim.history b/macros/latex/contrib/xsim/doc/xsim.history index c9e9623220..c3214cf573 100644 --- a/macros/latex/contrib/xsim/doc/xsim.history +++ b/macros/latex/contrib/xsim/doc/xsim.history @@ -131,3 +131,6 @@ HISTORY: option v0.15 2019/11/02 - use own auxiliary file per default and add option `use-aux' + v0.16 2019/11/10 - fix issue due to usage of own auxiliary file + - \XSIMatbegindocument and \XSIMatenddocument + - \xprintexercise, \xprintsolution, \xsimprint, \xsimxprint diff --git a/macros/latex/contrib/xsim/doc/xsim_manual.pdf b/macros/latex/contrib/xsim/doc/xsim_manual.pdf Binary files differindex fc6659b04f..72711292c5 100644 --- a/macros/latex/contrib/xsim/doc/xsim_manual.pdf +++ b/macros/latex/contrib/xsim/doc/xsim_manual.pdf diff --git a/macros/latex/contrib/xsim/doc/xsim_manual.tex b/macros/latex/contrib/xsim/doc/xsim_manual.tex index 7296f6124d..5156221b0e 100644 --- a/macros/latex/contrib/xsim/doc/xsim_manual.tex +++ b/macros/latex/contrib/xsim/doc/xsim_manual.tex @@ -911,6 +911,9 @@ existing exercise, \ie, every exercise whose external file exists. \command{printexercise}[\marg{type}\marg{id}] Inserts the exercise of type \meta{type} with the \property{id} \meta{id}. + \command{xprintexercise}[\marg{type}\marg{id}] + \sinceversion{0.16}The same as \cs{printexercise} but expands \meta{type} + and \meta{id} before it uses them. \end{commands} \begin{example} \printexercise{exercise}{5} @@ -1135,6 +1138,9 @@ There are different commands for printing the solutions to exercises: \command{printsolution}[\oarg{options}\marg{type}\marg{id}] Prints the solution of the exercise of type \meta{type} with the \property{id} \meta{id}. + \command{xprintsolution}[\marg{type}\marg{id}] + \sinceversion{0.16}The same as \cs{printsolution} but expands \meta{type} + and \meta{id} before it uses them. \end{commands} \begin{example} @@ -1509,7 +1515,7 @@ yourself in order to achieve certain layouts\footnote{I plan to incorporate \item \code{\#5}: the \property{points} property of the exercise \item \code{\#6}: the \property{bonus-points} property of the exercise \end{itemize} - \command{ForEachPrintedExerciseByID} + \command{ForEachPrintedExerciseByID}[\marg{code}] Loops over each \emph{printed} exercise order by the exercise id. Inside \meta{code} you can refer to several properties of the corresponding exercise: @@ -1521,7 +1527,7 @@ yourself in order to achieve certain layouts\footnote{I plan to incorporate \item \code{\#5}: the \property{points} property of the exercise \item \code{\#6}: the \property{bonus-points} property of the exercise \end{itemize} - \command{ForEachUsedExerciseByID} + \command{ForEachUsedExerciseByID}[\marg{code}] Loops over each \emph{used} exercise order by the exercise id. Inside \meta{code} you can refer to several properties of the corresponding exercise: @@ -1533,6 +1539,12 @@ yourself in order to achieve certain layouts\footnote{I plan to incorporate \item \code{\#5}: the \property{points} property of the exercise \item \code{\#6}: the \property{bonus-points} property of the exercise \end{itemize} + \command{XSIMprint}[\Marg{exercise|solution}\marg{type}\marg{id}] + \sinceversion{0.16}Inserts the either the exercise or the solution of type + \meta{type} with the \property{id} \meta{id}. + \command{XSIMxprint}[\Marg{exercise|solution}\marg{type}\marg{id}] + \sinceversion{0.16}The same as \cs{XSIMprint} but expands \meta{type} and + \meta{id} before it uses them. \expandable\command{XSIMtranslate}[\marg{keyword}] Delivers the translation of \meta{keyword} according to the current document language (in the meaning of a \pkg{babel}~\cite{pkg:babel} or @@ -1562,7 +1574,13 @@ yourself in order to achieve certain layouts\footnote{I plan to incorporate \meta{code 2} is the same tokenlist. \expandable\command{XSIMifblank\TF}[\marg{code}\marg{true}\marg{false}] Checks if the full expansion\footref{fn:romannumeral} of \meta{code} is - blank (\ie, if it is empty or only consists of spaces). + blank (\ie, if it is empty or only consists of spaces). + \command{XSIMatbegindocument}[\marg{code}] + \sinceversion{0.15a}Adds \meta{code} to \xsim's begin document hook. + Should be used inside style files instead of \cs*{AtBeginDocument}. + \command{XSIMatenddocument}[\marg{code}] + \sinceversion{0.15a}Adds \meta{code} to \xsim's end document hook. + Should be used inside style files instead of \cs*{AtEndDocument}. \end{commands} \subsection{Declaring Templates} |