diff options
Diffstat (limited to 'macros/latex/contrib')
39 files changed, 992 insertions, 328 deletions
diff --git a/macros/latex/contrib/acrotex/README.md b/macros/latex/contrib/acrotex/README.md index 08fe58aad6..edfe9a3ce4 100644 --- a/macros/latex/contrib/acrotex/README.md +++ b/macros/latex/contrib/acrotex/README.md @@ -1,6 +1,6 @@ The AcroTeX eDucation Bundle (AeB) Author: D. P. Story -Dated: 2021-06-19 +Dated: 2021-10-03 AeB contains the following: @@ -19,6 +19,19 @@ AeB contains the following: 6) Documentation for AeB (AcroTeX eDucatation Bundle) and eforms (including insdljs and dljslib). +What's New (2021-10-03) + exerquiz: In recent versions of AA/AR DC, the rollover display + for choice fields (radio fields and checkboxes) has changed. Previously + when the mouse rolls over a choice field, the tool tip is displayed. For + quizzes, the choice fields have no tool tip, so nothing was displayed. + Now, AA/AR DC displays `<tool-tip>: export-value>', which reveals + information not intended for the student taking that quiz. The exerquiz + package is modified to reflect this change. The rollover of radio buttons + and check boxes now displays as `Choice: a', `Choice: b', etc. The word + `Choice' is the tool tip and lower case letter is the export value. The + tool tip for all choice fields of a quizzes can be changed with + \TUChoice{<text>}, the default is \TUChoice{Choice}. + What's New (2021-06-19) Move files out of this distribution to the acrotex-js package, dated 2021/06/19 or later. The folder JavaScript file aeb.js (and aeb_pro.js) are now distributed with acrotex-js. Installation diff --git a/macros/latex/contrib/acrotex/doc/aeb_man.pdf b/macros/latex/contrib/acrotex/doc/aeb_man.pdf Binary files differindex 86e9159d5e..d27012cf3c 100644 --- a/macros/latex/contrib/acrotex/doc/aeb_man.pdf +++ b/macros/latex/contrib/acrotex/doc/aeb_man.pdf diff --git a/macros/latex/contrib/acrotex/doc/aeb_man.tex b/macros/latex/contrib/acrotex/doc/aeb_man.tex index 29337b17a0..93c348abb9 100644 --- a/macros/latex/contrib/acrotex/doc/aeb_man.tex +++ b/macros/latex/contrib/acrotex/doc/aeb_man.tex @@ -17,7 +17,7 @@ %%\usepackage{times} %\usepackage{timesNRMT} -% \previewOn\pmpvOn +%\previewOn\pmpvOn \usepackage{aeb_mlink} \usepackage{longtable,colortbl} @@ -243,10 +243,10 @@ \university{{\AcroT} Software Development Team} \email{dpstory@acrotex.net} \versionLabel{Dated:} -\version{2021/06/19} +\version{2021/10/03} \copyrightyears{1999-\the\year} \nocopyright -\prepared{2021/06/19} +\prepared{2021/10/03} \revisionLabel{Distribution Dated:} \copyrightStatus{True} @@ -4153,7 +4153,7 @@ this topic. \subsection{The \texttt{userbmintrvl} Option}\label{eq:userbmintrvl} -The \opt{userbmintrvl} option defines \cs{rbmIntrvl} command, the syntax of which is, +The \opt{userbmintrvl} option defines the \cs{rbmIntrvl} command, the syntax of which is, \bVerb\takeMeasure{\cs{rbmIntrvl\darg{[a,b]}\ameta{\textsf{arguments of \cs{RespBoxMath}}}}}% \begin{dCmd}[commandchars=!()]{\bxSize} \rbmIntrvl{[a,b]}!ameta(!textsf(arguments of !cs(RespBoxMath))) @@ -5284,7 +5284,7 @@ Which of the following are prime numbers? \Ans0 1 & \Ans1 2 & \Ans1 3 & - \Ans0 4 \\ + \Ans0 4 \\[3bp] \Ans1 5 & \Ans0 6 & \Ans1 7 & @@ -5305,6 +5305,40 @@ You'll note that the \env{shortquiz} environment is used, yet form fields (check boxes) are used; this is by design. Links are not available for MS questions, only for MC questions. +\subsubsection{The rollover display of choice fields}\label{ss:ChoiceTT} + +In recent versions of \textsf{AA/AR DC}, the rollover display for choice +fields (radio fields and checkboxes) has changed. Previously when the mouse +rolls over a choice field, the tool tip is displayed. For quizzes, the choice +fields have no tool tip, so nothing was displayed. Now, \textsf{AA/AR DC} +displays \texttt{\ameta{tool-tip}:\,\ameta{export-value}}, which reveals +information not intended for the student taking that quiz. The \pkg{exerquiz} +package is modified to reflect this change. The rollover of radio buttons and +check boxes now displays as \texttt{Choice:\,a}, \texttt{Choice:\,b}, \dots. The word +`Choice' is the tool tip and lower case letter is the export value. The tool tip for +all choice fields of a quizzes can be changed with \cs{TUChoice}: +\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] +\TUChoice{!ameta(text)} +\end{Verbatim} +The default is \verb~\TUChoice{Choice}~. + +The tool tip may be localized to other languages as follows: +\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] +\TUChoice{Ellecci\'{o}n} +\end{Verbatim} +to obtain the Spanish word Ellecci\'{o}n for choice. More obscure localization +can be done using unicode, for example, +\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] +\defUniStr{Choice}{Ellecci\u00F3n} +\TUChoice{\unicodeStr(Choice)} +\end{Verbatim} +However, for this form to be valid, the preamble must use the package \pkg{forms16be}: +\begin{Verbatim} +\usepackage{exerquiz} +\usepackage{forms16be} +\end{Verbatim} + + \subsubsection{Other supported question types} In addition to MC and MS questions, any other supported types can be used @@ -5356,9 +5390,9 @@ Was it in Xanadu did Kubla Kahn a stately pleasure dome decree? short-quiz to change response feedback; \cs{sqTurnOffAlerts} turns off the (annoying) alerts. -\redpoint The \cs{sqTurnOffAlerts} command only apply to a short-quiz that -uses radio buttons. You can reverse the effect of this command by expanding -\cs{sqTurnOnAlerts}. The default is \cs{sqTurnOnAlerts}. +\redpoint The \cs{sqTurnOffAlerts} command only apply to a short-quiz. +Reverse the effect of this command by expanding \cs{sqTurnOnAlerts}. The +default is \cs{sqTurnOnAlerts}. \subsubsection{\texttt{shortquiz} with solutions}\label{ss:QuizS} @@ -6037,7 +6071,7 @@ levels are set through the optional argument of \cs{sqTallyTotal}. \begin{aebQuote} \begin{description} -\item[Weak passing level] Syntax: \cs{sqTallyTotal[\cs{weakpassing\darg{\ameta{n}}}]}\\[3pt] +\item[Weak passing level] Syntax: \cs{sqTallyTotal[\cs{weakpass\darg{\ameta{n}}}]}\\[3pt] \textbf{User Experience.} As soon as the student makes more than \ameta{n} errors, the following message appears in an alert dialog box: \begin{Verbatim} @@ -6048,7 +6082,7 @@ with fewer errors and greater understanding.} The student is allowed to continue the quiz, but with the knowledge the performance is below the expected standard, as set by the instructor. -\item[Strong passing level] Syntax: \cs{sqTallyTotal[\cs{strongpassing\darg{\ameta{n}}}]}\\[3pt] +\item[Strong passing level] Syntax: \cs{sqTallyTotal[\cs{strongpass\darg{\ameta{n}}}]}\\[3pt] \textbf{User Experience.} As soon as the student makes more than \ameta{n} errors, the following message appears in an alert dialog box: \begin{Verbatim} @@ -6580,6 +6614,12 @@ argument to pass partial points rewarded for a wrong answer. \texttt{manswers} environment, \Nameref{manswersQuiz}, for posting questions with multiple correct answers. +\subsubsection{The rollover display choice fields} + +Refer to the comments in the subsection titled \Nameref{ss:ChoiceTT}. + + + \subsection{Basic Usage} In this section we discuss the two \texttt{quiz} styles: @@ -6799,8 +6839,8 @@ Prior to your quiz, use the following code, if desired. \useBeginQuizButton \useEndQuizButton \end{Verbatim} -Clicking the \uif{Begin Quiz} button clears all fields in the quiz and initializes it for the user -to respond to each question. Shift-clicking the \uif{Begin Quiz} button clears all fields, but does not +Clicking the \FmtMP{Click \uif{Begin Quiz} action}\uif{Begin Quiz} button clears all fields in the quiz and initializes it for the user +to respond to each question. Shift-clicking the \FmtMP{Shift-click \uif{Begin Quiz} action}\uif{Begin Quiz} button clears all fields, but does not initialize the quiz. \useBeginQuizButton\useEndQuizButton @@ -7241,6 +7281,9 @@ parameter is a unique name for the solution to the quiz. Notice as well that the \texttt{solution} environment follows, and is not nested within the \texttt{answers} environment. +\subsubsection{The rollover display choice fields} + +Refer to the comments in the subsection titled \Nameref{ss:ChoiceTT}. \subsection{How to Modify the \texttt{quiz} Environment} @@ -12020,7 +12063,7 @@ features of the \pkg{web} and \textsf{exerquiz} packages. \item Documented the use of form check boxes with the \texttt{shortquiz} environment and introduced the commands \begin{Verbatim}[xleftmargin=\amtIndent] - \sqTurnOffAlerts,\sqTurnOnAlerts,\sqNoCorrections,\sqNoCorrections + \sqTurnOffAlerts,\sqTurnOnAlerts,\sqCorrections,\sqNoCorrections \end{Verbatim} to control response feedback. \item Added language \texttt{finnish} Options. Translation due diff --git a/macros/latex/contrib/acrotex/doc/eformman.pdf b/macros/latex/contrib/acrotex/doc/eformman.pdf Binary files differindex e34de8e677..35ab252e80 100644 --- a/macros/latex/contrib/acrotex/doc/eformman.pdf +++ b/macros/latex/contrib/acrotex/doc/eformman.pdf diff --git a/macros/latex/contrib/acrotex/doc/eformman.tex b/macros/latex/contrib/acrotex/doc/eformman.tex index 7ad44ef209..d9b2eb2de2 100644 --- a/macros/latex/contrib/acrotex/doc/eformman.tex +++ b/macros/latex/contrib/acrotex/doc/eformman.tex @@ -82,7 +82,7 @@ subject={Documentation for the eforms and insdljs packages}, talksite={\url{www.acrotex.net}}, version={2.0}, - prepared={2021/05/29}, + prepared={2021/10/03}, preparedLabel={Distribution Dated:}, keywords={LaTeX, hyperref, PDF, exercises, quizzes}, copyrightStatus=True, diff --git a/macros/latex/contrib/acrotex/examples/jquiztst.pdf b/macros/latex/contrib/acrotex/examples/jquiztst.pdf Binary files differindex 3e8294ea9f..39f0d58d02 100644 --- a/macros/latex/contrib/acrotex/examples/jquiztst.pdf +++ b/macros/latex/contrib/acrotex/examples/jquiztst.pdf diff --git a/macros/latex/contrib/acrotex/examples/jtxttst.pdf b/macros/latex/contrib/acrotex/examples/jtxttst.pdf Binary files differindex 626f437c86..9af5055e92 100644 --- a/macros/latex/contrib/acrotex/examples/jtxttst.pdf +++ b/macros/latex/contrib/acrotex/examples/jtxttst.pdf diff --git a/macros/latex/contrib/acrotex/examples/webeqtst.pdf b/macros/latex/contrib/acrotex/examples/webeqtst.pdf Binary files differindex 5c70119e6c..bfa5794fd5 100644 --- a/macros/latex/contrib/acrotex/examples/webeqtst.pdf +++ b/macros/latex/contrib/acrotex/examples/webeqtst.pdf diff --git a/macros/latex/contrib/acrotex/examples/webeqtst.tex b/macros/latex/contrib/acrotex/examples/webeqtst.tex index 8080e497e7..0e349ab0ef 100644 --- a/macros/latex/contrib/acrotex/examples/webeqtst.tex +++ b/macros/latex/contrib/acrotex/examples/webeqtst.tex @@ -1,6 +1,6 @@ \documentclass{article} \usepackage{amsmath} -\usepackage[tight,designvi]{web} +\usepackage[tight,designvi,navibar]{web} \usepackage{exerquiz} % \previewOn \pmpvOn @@ -387,7 +387,7 @@ This is the link-style format: is 100\%. \begin{questions} \item Who created \TeX? -\begin{answers}4 +\begin{answers}{4} \Ans1 Knuth &\Ans0 Lamport &\Ans0 Carlisle &\Ans0 Rahtz \end{answers} \item Who originally wrote \LaTeX? diff --git a/macros/latex/contrib/acrotex/exerquiz.dtx b/macros/latex/contrib/acrotex/exerquiz.dtx index 51a44283e2..d850fe27e9 100644 --- a/macros/latex/contrib/acrotex/exerquiz.dtx +++ b/macros/latex/contrib/acrotex/exerquiz.dtx @@ -22,7 +22,7 @@ %<randomize>\ProvidesFile{aebrandom.def} %<sumrytbls>\ProvidesFile{aebsumrytbls.def} %<template>\ProvidesFile{template.def} -%<package|driver|aebjs|eqexam|randomize|sumrytbls|template> [2021/05/29 v8.8.2 % +%<package|driver|aebjs|eqexam|randomize|sumrytbls|template> [2021/10/03 v8.8.5 % %<package> Exerquiz: Exercises and Quizzes for LaTeX/PDF package (dps)] %<driver> Exerquiz documentation driver file (dps)] %<aebjs> Exerquiz document level JavaScript (dps)] @@ -101,6 +101,9 @@ % {\PackageInfo{exerquiz}{aebdonotindex.def cannot be found}} % \begin{macrocode} % \end{macrocode} +%\changes{v8.8.5}{2021/10/03}{This version attempts to fix a problem induced to acrotex by displaying +%the export values of choice field. The export values secretly contain a zero (0) or one (1) to signal +%that the current choice is wrong or right.} %\changes{v8.6.3}{2021/01/31}{Updated documentation, informing users of \string\app{Acrobat DC} that % it is necessary to change their \string\uif{Security (Enhanced)} preferences.} %\changes{v8.2.8}{2018/12/13}{The SOL file is now written entirely when there is no solution option specified} @@ -3888,6 +3891,13 @@ % wherein we pass the key-value pairs defined above. % \begin{macrocode} \newenvironment{questions}[1][]{% +% \end{macrocode} +% Insert \cs{nopartquestion} to fix problem +% with \cs{multipartquestion} +% \changes{v8.8.4}{2021/10/02}{Insert \string\cs{nopartquestion} to fix problem +% with \string\cs{multipartquestion}} +% \begin{macrocode} + \nopartquestion \ifnum\@eqquestiondepth>\tw@\@toodeep\else \advance\@eqquestiondepth\@ne\fi \def\@quesctr{eqquestionno\romannumeral\the\@eqquestiondepth}% @@ -5208,6 +5218,14 @@ else { \BG{.7529 .7529 .7529}\W{1}\S{B}\H{P}} \def\eq@@EndQuizButtonActions{% \A{\JS{\eQzBtnActns}}} +% \end{macrocode} +% Save end quiz button action. The \DescribeMacro\restoreNormalEndQuiz\cs{restoreNormalEndQuiz} +% restores the action to its original definition. +% \changes{v8.8.3}{2021/06/24}{Added \string\cs{restoreNormalEndQuiz}} +% \begin{macrocode} +\let\eq@@EndQuizButtonActionsDefSave\eq@@EndQuizButtonActions % dps0624 +\def\restoreNormalEndQuiz % dps0624 + {\let\eq@@EndQuizButtonActions\eq@@EndQuizButtonActionsDefSave} \newcommand{\eq@hiddenScoreData}{\makebox[0pt][r]{% \textField[\BC{}\F{\FHidden}]{ScoreData.\curr@quiz}{2bp}{2bp}}} % \end{macrocode} @@ -5764,7 +5782,6 @@ if (isEndQuizPushed("@eqBaseName")){ % \begin{macro}{\aeb@creditmarkupfmt} % \begin{macro}{\ptsLabel} % \begin{macro}{\ptLabel} -% \begin{macro}{\multipartquestion} % \begin{macro}{\hideCreditMarkup} % \begin{macro}{\showCreditMarkup} % \cs{showCreditMarkup} will show points assigned to individual questions in a quiz. @@ -5784,7 +5801,23 @@ if (isEndQuizPushed("@eqBaseName")){ %} % \begin{macrocode} \newcounter{qMarkCnt} -\def\multipartquestion{\global\let\aeb@multipart\eq@One} +% \end{macrocode} +% When a question has multi-parts, use \DescribeMacro{\multipartquestion}\cs{multipartquestion} to suppress +% the partial credit markup. +% \begin{macrocode} +\def\multipartquestion{\global + \let\aeb@multipart\eq@One +} +% \end{macrocode} +% The default is that a question does not have multiple parts, use \DescribeMacro{\nopartquestion}\cs{nopartquestion} +% to return to this detault after a \cs{multipartquestion} has been expanded. +% \changes{v8.8.4}{2021/10/02}{Define \string\cs{nopartquestion} to recover from +% \string\cs{multipartquestion}} +% \begin{macrocode} +\def\nopartquestion{\global + \let\aeb@multipart\eq@Zero +} +\let\aeb@multipart\eq@Zero % \end{macrocode} % The labeling for the partial credit markup. These two commands are % are defined (identically) in the \textsf{eqexam} package, hence the @@ -5792,7 +5825,6 @@ if (isEndQuizPushed("@eqBaseName")){ % \begin{macrocode} \providecommand{\ptsLabel}[1]{\def\eqptsLabel{#1}}\ptsLabel{pts} \providecommand{\ptLabel}[1]{\def\eqptLabel{#1}}\ptLabel{pt} -\let\aeb@multipart\eq@Zero % \end{macrocode} % \DescribeMacro{\pcMarkupColor} is the named color in RGB color space to % use for the color of the partial credit markup. (2013/09/14). @@ -5828,7 +5860,7 @@ if (isEndQuizPushed("@eqBaseName")){ % it is zero. If zero we do place the markup, otherwise, no. % \begin{macrocode} \def\qMark{\if\aeb@multipart\eq@Zero\aeb@creditmarkup - \stepcounter{qMarkCnt}\else\global\let\aeb@multipart\eq@Zero\fi}% + \stepcounter{qMarkCnt}\else\nopartquestion\fi}% % \end{macrocode} % \cs{qMark@Hook} is a hook that is normally \cs{@empty}. The hook is strategically % placed at the beginning of each question \cs{item}. Here we define it to be @@ -5851,7 +5883,6 @@ if (isEndQuizPushed("@eqBaseName")){ % \end{macro} % \end{macro} % \end{macro} -% \end{macro} %\subsection{Filtering solutions to quizzes} % The \cs{eqQt} and \cs{eqSQt} commands have one argument designed to be used to filter % solutions to quizzes. The demo document is \texttt{filter\_quizzes.tex}, @@ -6262,24 +6293,32 @@ if (isEndQuizPushed("@eqBaseName")){ % For the link multiple choice type question. The driver independent stuff starts % here, then goes to |\Ans@sq@l@driver| the rest of the code that depends on the % driver. -% \begin{macrocode} -\def\sqWrongRespJS{OnBlurRespBox(false,"\oField");} -\def\sqRightRespJS{OnBlurRespBox(true,"\oField");} -\def\Ans@sq@l@Actions -{% - \A{\if\Ans@choice\eq@One\JS{\sqRightRespJS} - \ifx\@qzsolndest\@empty\else - \ifeq@solutionsafter\else - /Next <</S/GoTo/D(\@qzsolndest)>> - \fi +% \changes{v8.8.5}{2021/10/03}{Allow MC in short-quizzes to have check box to dismiss +% alert box.} +% \begin{macrocode} +\def\sqWrongRespJS{% dpsx + \ifx\@sqTurnOffAlerts\eq@One% + OnBlurRespBox(false,"\oField");\r\fi + this.getField("mc.\curr@quiz.\thequestionno").value="\alph{quizno}"; +} +\def\sqRightRespJS{% dpsx + \ifx\@sqTurnOffAlerts\eq@One% + OnBlurRespBox(true,"\oField");\r\fi + this.getField("mc.\curr@quiz.\thequestionno").value="\alph{quizno}"; +} +\def\Ans@sq@l@Actions{\A{% + \if\Ans@choice\eq@One\JS{\sqRightRespJS} + \ifx\@qzsolndest\@empty\else + \ifeq@solutionsafter\else + /Next <</S/GoTo/D(\@qzsolndest)>> \fi - \else - \JS{\sqWrongRespJS\jsR - \ifx\oField\@empty\else - updateTally("\oField.\thequestionno");\fi}% \fi - }% -} + \else + \JS{\sqWrongRespJS\jsR + \ifx\oField\@empty\else + updateTally("\oField.\thequestionno");\fi}% + \fi +}} % \end{macrocode} % \end{macro} % \begin{macrocode} @@ -6295,25 +6334,50 @@ if (isEndQuizPushed("@eqBaseName")){ %</eqexam> %<*package|eqexam> \def\linkContentWrapper{(\hfil\linkContentFormat\hfil)}% -\def\Ans@sq@l{% - \leavevmode\if\eq@listType\eq@One\stepcounter{quizno}\else - \@ifundefined{ifwithinsoldoc}{\refstepcounter{quizno}} - {\ifwithinsoldoc\stepcounter{quizno}\else - \refstepcounter{quizno}\fi}\fi\PBS\raggedright - \settowidth{\eq@tmplength}{\eq@lw@l}\sbox{\eq@tmpbox}{\eq@l@l}% - \eq@tmpdima=\wd\eq@tmpbox - \def\link@@Content{\linkContentWrapper}% - \hangindent=\eq@tmplength\hangafter=1\relax +\def\Ans@sq@l{\leavevmode + \if\eq@listType\eq@One\stepcounter{quizno}\else + \@ifundefined{ifwithinsoldoc}{\refstepcounter{quizno}} + {\ifwithinsoldoc\stepcounter{quizno}\else + \refstepcounter{quizno}\fi}\fi\PBS\raggedright + \settowidth{\eq@tmplength}{\eq@lw@l}\sbox{\eq@tmpbox}{\eq@l@l}% + \eq@tmpdima=\wd\eq@tmpbox + \def\link@@Content{\linkContentWrapper}% + \hangindent=\eq@tmplength\hangafter=1\relax %</package|eqexam> %<*eqexam> - \Ans@sq@l@driver + \Ans@sq@l@driver %</eqexam> %<*package> +% \end{macrocode} +% (2021/10/03) Move 0 and 1 to tooltip of underlying radio button that flags +% choice as incorrect and incorrect. +% \begin{macrocode} + \if\Ans@choice\eq@One % dpsx + \def\Ans@c@l@Choice{\TU{1}% + \BC{}\Ff{\FfReadOnly}}% + \def\rbf@Opts{\symbolchoice{\sq@corrsymch}% + \textColor{\sq@corrsymcol}}% + \else + \def\Ans@c@l@Choice{\TU{0}\DV{Yes}% + \Ff{\FfReadOnly}\BC{}}% + \def\rbf@Opts{\symbolchoice{\sq@wrgsymch}% + \textColor{\sq@wrgsymcol}}% + \fi + \makebox[0pt][l]{\expandafter\radio@@Button\expandafter{\rbf@Opts}% + {mc.\curr@quiz.\thequestionno}% +% \end{macrocode} +% (2021/10/03) Remove 0 and 1 from export value radio button +% \begin{macrocode} + {\eq@tmpdima}{\RadioFieldSize}{\alph{quizno}}% dpsx +% {\eq@tmpdima}{\RadioFieldSize}{\Ans@choice\alph{quizno}}% + {\eq@protect\A}{\eq@setWidgetProps\eq@l@check@driver}% + {\Ans@r@l@Defaults\every@RadioButton + \every@qRadioButton}}% \set@@Link{}{}{}% - {\makebox[\eq@tmpdima]{\color{\@linkcolor}\link@@Content}} - {\eq@protect\A}{\eq@setWidgetProps\setLink@driver}% - {\set@LinkTextDefaults\Ans@sq@l@Actions\every@Link}% - \Ans@proofing{\eq@tmpdima}% + {\makebox[\eq@tmpdima]{\color{\@linkcolor}\link@@Content}} + {\eq@protect\A}{\eq@setWidgetProps\setLink@driver}% + {\set@LinkTextDefaults\Ans@sq@l@Actions\every@Link}% + \Ans@proofing{\eq@tmpdima}% %</package> %<*package|eqexam> \eq@hspanner\ignorespaces} @@ -6341,14 +6405,22 @@ if (isEndQuizPushed("@eqBaseName")){ % driver. % \changes{v7.7d}{2015/11/15}{Changed mc.\string\cs{oFields} so it is printable} % \begin{macrocode} -\def\@@Ans@sq@f@Defaults -{% - \BC{0 0 0}\Ff{\FfNoToggleToOff}\W{1} -% \F{\FPrint} - \textSize{12}\textColor{0 g} +% \end{macrocode} +%\DescribeMacro{\TUChoice}\hskip-\marginparsep\texttt{\darg{\ameta{text}}} A generic +%tooltip for radio buttons and check boxes for MS and MS questions. The default +%is |\TUChoice{Choice}|. +%\changes{v8.8.5}{2021/10/03}{Added \string\cs{TUChoice}} +% \begin{macrocode} +\def\TUChoice#1{\def\TU@Choice{#1}} +\TUChoice{Choice} +% \end{macrocode} +% \begin{macrocode} +\def\@@Ans@sq@f@Defaults{% + \BC{0 0 0}\Ff{\FfNoToggleToOff}\W{1}%\F{\FPrint} + \textSize{12}\textColor{0 g}\TU{\TU@Choice} % dpsx } % \end{macrocode} -% For short quizzes, refine the type of responses: turn off the alert +% For short-quizzes, refine the type of responses: turn off the alert % message (the default is on); or have a (red) `\texttt{x}' make an % incorrect answer, and a (green) check mark a correct answer. % \begin{macrocode} @@ -6493,7 +6565,8 @@ updateTally("*oField.*thequestionno");% \mbox{\expandafter\radio@@Button\expandafter{\rbf@Opts}% {mc.\oField.\thequestionno}% {\RadioFieldSize}{\RadioFieldSize}% - {\Ans@choice\alph{quizno}}{\eq@protect\A}% + {\alph{quizno}}{\eq@protect\A}% +% {\Ans@choice\alph{quizno}}{\eq@protect\A}% {\eq@setWidgetProps\eq@Radio@driver}% {\@@Ans@sq@f@Defaults\Ans@sq@f@Actions\every@RadioButton \every@sqRadioButton}}% @@ -6509,14 +6582,13 @@ updateTally("*oField.*thequestionno");% % Created in support of \textsf{eqExam} to give multiple selection for the % online and email options. Otherwise, it defaults to a radio button field. % \begin{macrocode} -% %</package> %<*eqexam> \let\Ans@ck@sq@f\Ans@sq@f %</eqexam> %<*package> \def\@@Ans@ck@sq@f@Defaults{% - \BC{0 0 0}\Ff{\FfNoToggleToOff} + \BC{0 0 0}\Ff{\FfNoToggleToOff}\TU{\TU@Choice} % dpsx \F{\FPrint}\textSize{12}\textColor{0 g}\W{1} } \begingroup @@ -6529,11 +6601,18 @@ updateTally("*oField.*thequestionno");% % \begin{macrocode} \begin{defineJS}[\makeesc\*\makecmt\%]{\Ans@ck@sq@f@ActionsTrue} var fName=event.target.name; -var g=this.getField("mc.*oField.*thequestionno"); +var g=this.getField("mck.*oField.*thequestionno"); var a=g.getArray(); +% dpsx +var h=this.getField("mcq.*oField.*thequestionno"); +var b=h.getArray(); +% \end{macrocode} +% (2021/10/03) Work with the tooltop of \texttt{mcq} rather than the export value +% of \texttt{mck}. +% \begin{macrocode} for (var i=0; i<a.length; i++) - if ( (a[i].isBoxChecked(0)) && % -(a[i].value.charAt(0)==0) ) + if ( (a[i].isBoxChecked(0)) && (b[i].userName=="0" ) ) +%(a[i].value.charAt(0)==0) ) a[i].checkThisBox(0,false);% *ifx*@sqTurnOffAlerts*eq@One OnBlurRespBox(true,"*oField");*else @@ -6551,8 +6630,12 @@ var f=this.getField("corr.*oField.*thequestionno"); if (f==null) { if ( (qzSolnDest != "") && !solnAfter ) { for (var i=0; i<a.length; i++){ - if ((a[i].exportValues[0].charAt(0)==1) && % -(!a[i].isBoxChecked(0))) break; +% if ((a[i].exportValues[0].charAt(0)==1) && % dpsx % +% \end{macrocode} +% (2021/10/03) Work with the tooltop of \texttt{mcq} rather than the export value +% of \texttt{mck}. +% \begin{macrocode} + if ((b[i].userName=="1") && (!a[i].isBoxChecked(0))) break; } } if (i>=a.length) jmpToNamedDest("*oField","*@qzsolndest",% @@ -6567,10 +6650,18 @@ if (f==null) { % \begin{macrocode} \begin{defineJS}[\makeesc\*\makecmt\%]{\Ans@ck@sq@f@ActionsFalse} var fName=event.target.name; -var g=this.getField("mc.*oField.*thequestionno"); +var g=this.getField("mck.*oField.*thequestionno"); var a=g.getArray(); +% dpsx +var h=this.getField("mcq.*oField.*thequestionno"); +var b=h.getArray(); for (var i=0; i<a.length; i++) { - if (a[i].value.charAt(0)==0) { +% if (a[i].value.charAt(0)==0) { +% \end{macrocode} +% (2021/10/03) Work with the tooltop of \texttt{mcq} rather than the export value +% of \texttt{mck}. +% \begin{macrocode} + if (b[i].userName=="0") { if ( fName != a[i].name ) a[i].checkThisBox(0,false); } @@ -6609,14 +6700,25 @@ updateTally("*oField.*thequestionno");*fi% \hangindent\eq@tmplength\hangafter\@ne % dps \insertGrayLetters % 6.3d \mbox{\expandafter\check@@Box\expandafter{\rbf@Opts}% - {mc.\oField.\thequestionno.\arabic{quizno}}% + {mck.\oField.\thequestionno.\arabic{quizno}}% {\RadioFieldSize}{\RadioFieldSize} - {\Ans@choice\alph{quizno}}{\eq@protect\A}% + {\alph{quizno}}{\eq@protect\A}% +% {\Ans@choice\alph{quizno}}{\eq@protect\A}% dpsx {\eq@setWidgetProps\eq@Check@driver}% {\@@Ans@ck@sq@f@Defaults\Ans@ck@sq@f@Actions\every@CheckBox \every@sqCheckBox}}% - \Ans@proofing{\RadioFieldSize}% - \eq@hspanner\ignorespaces + \def\late@options{\BC{}}% + \if\Ans@choice\eq@One % dpsx + \eq@addExpandTo\late@options{\TU{1}}\else + \eq@addExpandTo\late@options{\TU{0}}\fi + \makebox[0pt][r]{\check@@Box{}% dpsx + {mcq.\oField.\thequestionno.\arabic{quizno}}% + {0pt}{0pt}{Yes}{}% \@tempdimb + {\eq@setWidgetProps\eq@Check@driver}% + {\Ans@c@f@Defaults\every@RadioButton + \every@qRadioButton\late@options}}% dpsx + \Ans@proofing{\RadioFieldSize}\eq@hspanner + \ignorespaces } % \end{macrocode} % \end{macro} @@ -6842,6 +6944,7 @@ updateTally("*oField.*thequestionno");*fi% % \end{macrocode} % \end{macro} % \subsubsection{Link Style} +% % \begin{macro}{\Ans@l} % For the forms version of the \texttt{quiz} environment. % dps 12/19/03 removed the notify because we are not embedding a radio button field @@ -6849,7 +6952,8 @@ updateTally("*oField.*thequestionno");*fi% \let\qRadionActionsHook\@empty \def\Ans@@l@Actions{\A{\JS{% this.getField("mc.\curr@quiz.\thequestionno").value\eqSP - =\eqSP"\Ans@choice\alph{quizno}";\jsR + =\eqSP"\alph{quizno}";\jsR +% =\eqSP"\Ans@choice\alph{quizno}";\jsR // dpsx RecordPointValue([0,\eqPTs,\eq@pPTs],\thequestionno);\jsR RecordProblemType("\eqQT",\thequestionno);\jsR ProcessQuestion(\Ans@choice,"\alph{quizno}",\thequestionno,% @@ -6858,9 +6962,26 @@ updateTally("*oField.*thequestionno");*fi% \ifeq@noquizsolutions\else,1\fi\fi\fi);\qRadionActionsHook}}% } \def\Ans@r@l@Defaults{% - \BC{}\S{S}\W{1}\Ff{\FfNoToggleToOff}\F{\FPrint} + \BC{}\S{S}\W{1}\Ff{\FfNoToggleToOff}\F{\FPrint}\TU{\TU@Choice} % dpsx \textSize{12}\textColor{0 g}\Ff{\FfReadOnly} } +% \end{macrocode} +% (2021/10/03) Changes are needed to radio buttons and checkboxes (Commands: \cs{Ans@l},\cs{Ans@ck@l}, \cs{Ans@@f}, and \cs{Ans@@ck@f}) +% of the \env{answers} and \env{manswers} environments. AA/AR has changed the way they display the tooltip: changed +% from `\ameta{tooltip}' to `\ameta{tooltip}\texttt:\,\ameta{export-value}'. Unfortunately, the \ameta{export-value} +% contains code that signals whether this field is a correct choice or not: an export value that begins with a +% one (1) indicates a correct choice, which one that begins with a zero (0) marks an incorrect choice. When the student passes +% his mouse cursor over a choice, he sees `1a' or `0b'; seeing enough of these patterns, their meaning will become known. +% +% The workaround is to move the binary flag to the tooltip of the underlying checkbox, which is readonly, hence, +% there is not over display of this field. In the fields listed above, we insert \cs{TU{1}} or \cs{TU{0}} +% into each of the checkboxes whose names begin with \texttt{mcq}. +% +% The final step is to change the JavaScript to look at the \texttt{mcq} fields rather than +% the \texttt{mc} or \texttt{mck} fields. +% \changes{v8.8.5}{2021/10/03}{Changes required by changes in the display of +% tooltip for choice fields} +% \begin{macrocode} \def\Ans@l{\leavevmode\if\eq@listType1\stepcounter{quizno}% \else\refstepcounter{quizno}\fi\PBS\raggedright \settowidth{\eq@tmplength}{\eq@lw@l}\sbox{\eq@tmpbox}{\eq@l@l}% @@ -6873,7 +6994,8 @@ updateTally("*oField.*thequestionno");*fi% \def\late@options{\BC{}}% \if\Ans@choice\eq@One\relax\eq@recordAnsChoice\fi \makebox[0pt][l]{\radio@@Button{}{mc.\curr@quiz.\thequestionno}% - {\eq@tmpdima}{\RadioFieldSize}{\Ans@choice\alph{quizno}}% + {\eq@tmpdima}{\RadioFieldSize}{\alph{quizno}}% dpsx +% {\eq@tmpdima}{\RadioFieldSize}{\Ans@choice\alph{quizno}}% {\eq@protect\A}{\eq@setWidgetProps\eq@l@check@driver}% {\Ans@r@l@Defaults\every@RadioButton \every@qRadioButton\late@options}}% @@ -6899,11 +7021,15 @@ updateTally("*oField.*thequestionno");*fi% \fi \def\late@options{\BC{}}% \if\Ans@choice\eq@One + \eq@addExpandTo\late@options{\TU{1}}% \ifx\@qzsolndest\@empty\else \ifeq@noquizsolutions\else - \edef\late@options{\noexpand\BC{\solution@Color}}% + \eq@addExpandTo\late@options{% + \BC{\solution@Color}}% \fi \fi + \else + \eq@addExpandTo\late@options{\TU{0}}% \fi \makebox[0pt][r]{\check@@Box{}% {mcq.\curr@quiz.\thequestionno.\arabic{quizno}}% @@ -6942,10 +7068,14 @@ updateTally("*oField.*thequestionno");*fi% \ifeq@noquizsolutions\else,1\fi\fi\fi);\jsR }}}% } +% \end{macrocode} +% \begin{macrocode} \def\Ans@ck@l@Defaults{% - \BC{}\S{S}\W{1}\H{N}\Ff{\FfNoToggleToOff} + \BC{}\S{S}\W{1}\H{N}\Ff{\FfNoToggleToOff}\TU{\TU@Choice} % dpsx \textSize{12}\textColor{0 g}\Ff{\FfReadOnly} } +% \end{macrocode} +% \begin{macrocode} \def\Ans@ck@l{\leavevmode \if\eq@listType1\stepcounter{quizno}% \else\refstepcounter{quizno}\fi @@ -6957,7 +7087,8 @@ updateTally("*oField.*thequestionno");*fi% \def\link@@Content{(\hfil\linkContentFormat\hfil)}% \makebox[0pt][l]{% \check@@Box{}{mck.\curr@quiz.\thequestionno.\arabic{quizno}}% - {\eq@tmpdima}{\RadioFieldSize}{\Ans@choice\alph{quizno}}% + {\eq@tmpdima}{\RadioFieldSize}{\alph{quizno}}% dpsx +% {\eq@tmpdima}{\RadioFieldSize}{\Ans@choice\alph{quizno}}% {\eq@protect\A}{\eq@setWidgetProps\eq@l@check@driver}% {\Ans@ck@l@Defaults\every@RadioButton \every@qckCheckbox}}% @@ -6967,7 +7098,7 @@ updateTally("*oField.*thequestionno");*fi% {\set@LinkTextDefaults\Ans@ck@@l@Actions\every@Link}% \ifnocorrections\else \if\Ans@choice\eq@One - \edef\Ans@c@l@Choice{\noexpand\DV{Yes}% + \edef\Ans@c@l@Choice{\noexpand\TU{1}\noexpand\DV{Yes}% \ifx\@qzsolndest\@empty\noexpand\BC{}% \noexpand\Ff{\FfReadOnly}% \else % there is a solution @@ -6980,7 +7111,7 @@ updateTally("*oField.*thequestionno");*fi% \fi }% \else - \def\Ans@c@l@Choice{\Ff{\FfReadOnly}\BC{}}% + \def\Ans@c@l@Choice{\TU{0}\Ff{\FfReadOnly}\BC{}}% \fi \makebox[0pt][r]{\check@@Box{}% {mcq.\curr@quiz.\thequestionno.\arabic{quizno}}% @@ -7005,7 +7136,7 @@ updateTally("*oField.*thequestionno");*fi% \refstepcounter{quizno}\fi \PBS\raggedright\Ans@@f} \def\Ans@r@f@Defaults{% - \BC{0 0 0}\S{S}\W{1}\Ff{\FfNoToggleToOff} + \BC{0 0 0}\S{S}\W{1}\Ff{\FfNoToggleToOff}\TU{\TU@Choice} % dpsx \F{\FPrint}\textSize{12}\textColor{0 g} } % \end{macrocode} @@ -7065,7 +7196,8 @@ updateTally("*oField.*thequestionno");*fi% \if\Ans@choice\eq@One\eq@recordAnsChoice\fi \mbox{\expandafter\radio@@Button\expandafter{\rbf@Opts}% {mc.\curr@quiz.\thequestionno}% - {\RadioFieldSize}{\RadioFieldSize}{\Ans@choice\alph{quizno}}% + {\RadioFieldSize}{\RadioFieldSize}{\alph{quizno}}% dpsx +% {\RadioFieldSize}{\RadioFieldSize}{\Ans@choice\alph{quizno}}% {\eq@protect\A}{\eq@setWidgetProps\eq@Radio@driver}% {\Ans@r@f@Defaults\Ans@r@f@Actions\every@RadioButton \every@qRadioButton\insert@circlesymbol}}% @@ -7089,11 +7221,15 @@ updateTally("*oField.*thequestionno");*fi% % \begin{macrocode} \ifaeb@usecircles\def\late@options{\BC{}}\fi \if\Ans@choice\eq@One + \eq@addExpandTo\late@options{\TU{1}}% \ifx\@qzsolndest\@empty\else \ifeq@noquizsolutions\else - \edef\late@options{\noexpand\BC{\solution@Color}}% + \eq@addExpandTo\late@options{% + \BC{\solution@Color}}% \fi \fi + \else + \eq@addExpandTo\late@options{\TU{0}}% \fi \makebox[0pt][r]{\check@@Box{}% {mcq.\curr@quiz.\thequestionno.\arabic{quizno}}% @@ -7120,8 +7256,11 @@ updateTally("*oField.*thequestionno");*fi% \else\refstepcounter{quizno}\fi \if\Ans@choice\eq@One\eq@recordAnsChoice\fi \PBS\raggedright\Ans@@ck@f} +% \end{macrocode} +% \begin{macrocode} \def\Ans@ck@f@Defaults{% \BC{0 0 0}\S{S}\W{1}\Ff{\FfNoToggleToOff} + \TU{\TU@Choice} % dpsx \textSize{12}\textColor{0 g} } % \end{macrocode} @@ -7178,7 +7317,8 @@ updateTally("*oField.*thequestionno");*fi% \textColor{\qz@chksymbcol}}% \mbox{\expandafter\check@@Box\expandafter{\cbf@Opts}% {mck.\curr@quiz.\thequestionno.\arabic{quizno}}% - {\RadioFieldSize}{\RadioFieldSize}{\Ans@choice\alph{quizno}}% + {\RadioFieldSize}{\RadioFieldSize}{\alph{quizno}}% dpsx +% {\RadioFieldSize}{\RadioFieldSize}{\Ans@choice\alph{quizno}}% {\eq@protect\A}{\eq@setWidgetProps\eq@Check@driver}% {\Ans@ck@f@Defaults\Ans@ck@f@Actions\every@RadioButton \every@qckCheckbox}}% @@ -7196,10 +7336,14 @@ updateTally("*oField.*thequestionno");*fi% \fi \let\late@options\@empty \if\Ans@choice\eq@One + \eq@addExpandTo\late@options{\TU{1}}% \ifx\@qzsolndest\@empty\else \ifeq@noquizsolutions\else - \edef\late@options{\noexpand\BC{\solution@Color}}\fi + \eq@addExpandTo\late@options{% + \BC{\solution@Color}}\fi \fi + \else + \eq@addExpandTo\late@options{\TU{0}}% \fi % \end{macrocode} % The top most checkbox @@ -8007,7 +8151,7 @@ updateTally("*oField.*thequestionno");*fi% % \end{macrocode} % \begin{macrocode} \let\insert@circlesymbol\@empty -\def\useMCCircles{\useForms +\def\useMCCircles{%\useForms \ifaeb@usecircles\else \global\aeb@usecirclestrue \gdef\insert@circlesymbol{\symbolchoice{circle}}% @@ -8144,14 +8288,25 @@ updateTally("*oField.*thequestionno");*fi% %{ % Added \string\cs{requireAlertBox} to turn off the ``Do not show this message again'' checkbox for objective questions. %} -%The alert box displays the message \cs{doNotShowAgainMsg} which by default is -%``Do not show this message again'' +%The alert box displays the message \DescribeMacro{\doNotShowAgainMsg}\cs{doNotShowAgainMsg}, which by default is +%``Do not show this message again''. This message appear when \DescribeMacro{\allowNoAlertBox}\cs{allowNoAlertBox} (the default) +% is in effect. % \begin{macrocode} \def\requireAlertBox{\def\bcheckboxused{false}} \def\allowNoAlertBox{\def\bcheckboxused{true}} \allowNoAlertBox % \end{macrocode} % \end{macro} +% When \DescribeMacro{\useCkBxAlertsOn}\cs{useCkBxAlertsOn} is expanded in the preamble, alerts +% generated by links (usually a short-quiz) uses a check box that allows its dismissal +% subsequently. \DescribeMacro{\useCkBxAlertsOff}\cs{useCkBxAlertsOff} reverts the behavior +% to alert boxes with no check box, the old default. +% \changes{v8.8.5}{2021/10/03}{Added \string\cs{useCkBxAlertsOn}} +% \begin{macrocode} +\def\useCkBxAlertsOn{\def\buseckbx{true}} % dpsx +\def\useCkBxAlertsOff{\def\buseckbx{false}} +\useCkBxAlertsOn +% \end{macrocode} % \subsection{Math Fill-In Questions} % \begin{macro}{\RespBox} % \begin{macro}{\RespBoxMath} @@ -9474,7 +9629,8 @@ if ( typeof *oField == "undefined" ) *oField = new Object; if (typeof appAlerts["*oField"] == "undefined") appAlerts["*oField"] = new Object; -this.resetForm(new Array("mc.*oField","obj.*oField",% +% dpsx +this.resetForm(new Array("mc.*oField","mck.*oField","obj.*oField",% "tally.*oField","grpobj.*oField")); var f = this.getField("obj.*oField"); if ( f != null ) f.strokeColor=*ifx*defaultColorJSLoc*@empty% @@ -10700,6 +10856,23 @@ aCorrectAns[!currQuiz.Grp["!thequestionno"].offset],!oField);!fi \def\every@eqIcon{} % \end{macrocode} % +% \subsection{Utility macro to dynamically modify appearances} +% +% This internal command is used to dynamically modify the appearance of form fields. +% \begin{macro}{\eq@addExpandTo}\hskip-\marginparsep\texttt{\darg{\ameta{\cs{CMD}}}\darg{\ameta{KVPs}}} +% The \cs{eq@addExpandTo} is a utility command that adds eforms key-value pairs to the +% end of the macro \texttt{\ameta{\cs{CMD}}}. The second argument of the KVP is expanded first. +% Used to dynamically modify appearances of a form field. +% \changes{v8.8.5}{2021/10/03}{Added \string\cs{eq@addExpandTo}} +% \begin{macrocode} +\def\eq@addExpandTo#1#2{\bgroup\let\protect\noexpand + \toks@=\expandafter{#1}\protectedKeys*{p@Keys}{#2}% + \edef\x{\@nameuse{p@Keys}}\toks2=\expandafter{\x}% + \xdef#1{\the\toks@\the\toks2}\egroup +} +% \end{macrocode} +% \end{macro} + % \subsection{Additional Format and Action keys} % % \begin{macro}{\AddAAFormat} @@ -13061,7 +13234,8 @@ function clearAllSubQuizzes() { \begin{newsegment}{Eq: Support for Multi-Selection} function ProcessMultiSelection(key,letterresp,probno,% quizno,qtfield,pts,ppts) { - var f = this.getField("mck."+qtfield+"."+probno); +% var f = this.getField("mck."+qtfield+"."+probno); // dpsx + var f = this.getField("mcq."+qtfield+"."+probno); % \end{macrocode} % For the multiple selection problem, the formats for the \texttt{RightWrong} and \texttt{ProbValue} % arrays are as follows: @@ -13092,7 +13266,12 @@ quizno,qtfield,pts,ppts) { % \begin{macrocode} var nTotalCorrect = 0; for ( var i=0; i<g.length; i++ ) - nTotalCorrect += (1*g[i].exportValues[0].charAt(0)); +% \end{macrocode} +% (2021/10/03) Work with the tool tip of \texttt{mcq} rather than the export value +% of \texttt{mck}. +% \begin{macrocode} + nTotalCorrect += (1*g[i].userName); +% nTotalCorrect += (1*g[i].exportValues[0].charAt(0)); // dpsx ProbValue[probno] = new Array(); RightWrong[probno] = new Array(); ProbValue[probno] = [nTotalCorrect,pts,[]]; @@ -13295,11 +13474,15 @@ app.clearTimeOut(oNoPeekTimer);",5); } else this.pageNum = rtnPage-1; } % \end{macrocode} -% When the user exits a fill-in shortquiz field, this function is called. +% When the user exits a fill-in short-quiz field, this function is called. % It immediately notifies user of whether their answer is right % or wrong, and changes the color of the boundary field. % \begin{macrocode} -var oCB=\bcheckboxused +var bCB=\bcheckboxused +% \end{macrocode} +% (2021/10/03) Boolean to use extended alert boxes for MC and MS, short-quiz. +% \begin{macrocode} +var bUseCkBx=\buseckbx; // dpsx function OnBlurRespBox (retn) { var qname = arguments[1]; @@ -13311,7 +13494,11 @@ function OnBlurRespBox (retn) appAlerts[qname] = {bAfterValue: false, % cMsg: "\doNotShowAgainMsg"}; var respMsg = (retn) ? \eqsqrtmsg\space : \eqsqwgmsg; - if ( (event.target == this) || !oCB) +% \end{macrocode} +% If \texttt{event.target} is the Doc object, the function has been called from +% a link; if called from a field action \texttt{event.target} is a Field object. +% \begin{macrocode} + if ( !bUseCkBx && ( (event.target == this) || !bCB ) ) // dpsx eqAppAlert({ cMsg: respMsg, nIcon: 3, cTitle: cTitle }); else { if ( ! appAlerts[arguments[1]].bAfterValue ) @@ -13335,11 +13522,12 @@ oCheckbox: appAlerts[qname]}); } } function jmpToNamedDest(fName,cDest,bAlert) { - if ( (typeof appAlerts[fName]!="undefined" % + if (cDest == "") return; + if ( (typeof appAlerts[fName]!="undefined" % && appAlerts[fName].bAfterValue) || bAlert==0) - app.setTimeOut("this.gotoNamedDest(\""+cDest+"\")",500); - else - this.gotoNamedDest(cDest); + app.setTimeOut("this.gotoNamedDest(\""+cDest+"\")",500); + else + this.gotoNamedDest(cDest); } % \end{macrocode} % Description: This is the default function for determining whether diff --git a/macros/latex/contrib/acrotex/insdljs.dtx b/macros/latex/contrib/acrotex/insdljs.dtx index b32a727083..dc756a1ed2 100644 --- a/macros/latex/contrib/acrotex/insdljs.dtx +++ b/macros/latex/contrib/acrotex/insdljs.dtx @@ -608,7 +608,10 @@ % \changes{v2.3a}{2016/07/31}{Added luatex85 definition of \string\cs{pdfpageref}} % \begin{macrocode} \ifpdf\ifx\pdfextension\@undefined\else + \protected\def\pdfcatalog{\pdfextension catalog } % l3 \protected\def\pdfnames{\pdfextension names } + \protected\def\pdfobj{\pdfextension obj } % l3 + \protected\def\pdflastobj{\numexpr\pdffeedback lastobj\relax} % l3 \def\pdfpageref{\pdffeedback pageref}\fi\fi % \end{macrocode} % The critical JavaScript files are no longer distributed with this package, @@ -700,10 +703,10 @@ \def\AEB@psMrk{[%] \space} \ifx\dl@reqJS\dl@YES - \def\dl@@reqJS{/Type/Requirement/S/EnableJavaScripts} + \def\dl@@reqJS{/Requirements[<</Type/Requirement/S/EnableJavaScripts>>]} \ifpdf\pdfcatalog{\dl@@reqJS}\else - \ifxetex\immediate\@pdfm@mark{put @catalog <<\dl@@reqJS>>}\else - \literalps@out{\AEB@psMrk{Catalog} <<\dl@@reqJS>> /PUT pdfmark}\fi\fi + \ifxetex\immediate\special{pdf:put @catalog <<\dl@@reqJS>>}\else + \literalps@out{\AEB@psMrk{Catalog} <<\dl@@reqJS>> /PUT\space pdfmark}\fi\fi \fi % \end{macrocode} % Added switch to mark whether djs is inserted @@ -1324,7 +1327,7 @@ \edef\addActionObj{\the\pdflastobj\space 0 R}}% \else\ifxetex \def\aeb@addActionCode{\immediate - \@pdfm@mark{obj @objAddActionObj + \special{pdf:obj @objAddActionObj << \aebpopentoks\aebp@rightDelimiters >> }}% \def\addActionObj{@objAddActionObj}% \else % postscript @@ -1348,7 +1351,7 @@ \aeb@addActionCode \ifpdf\pdfcatalog{\dljs@OpenActions}\else \ifxetex\immediate - \@pdfm@mark{put @catalog <<\dljs@OpenActions>>}\else + \special{pdf:put @catalog <<\dljs@OpenActions>>}\else \literalps@out{\AEB@psMrk {Catalog} <<\dljs@OpenActions>> /PUT pdfmark}\fi\fi\egroup} % \end{macrocode} @@ -1398,11 +1401,11 @@ % For \textsf{dvipdfm} % \begin{macrocode} \def\@OAction@dvipdfm{\ifx\isOpenAction\dl@YES - \@pdfm@mark{put @thispage << /AA << /O << \theFirstAction\space + \special{pdf:put @thispage << /AA << /O << \theFirstAction\space \opentoks\@rightDelimiters >> \@CloseAction >> >>}\fi } \def\@POAction@dvipdfm{% - \@pdfm@mark{put @thispage << /AA << \@thisOpenAction + \special{pdf:put @thispage << /AA << \@thisOpenAction \@thisCloseAction >> >>}% } % \end{macrocode} @@ -2227,7 +2230,7 @@ % \begin{macrocode} \ifpdf\pdfcatalog{\dljs@willDidActions}\else \ifxetex\immediate - \@pdfm@mark{put @catalog <<\dljs@willDidActions>>}\else + \special{pdf:put @catalog <<\dljs@willDidActions>>}\else \literalps@out{\AEB@psMrk {Catalog} <<\dljs@willDidActions>> /PUT pdfmark}\fi\fi } @@ -2539,9 +2542,9 @@ if(typeof \detectdljs\space == "undefined")\jsR\jsT % \begin{macrocode} \def\setDLJSRef@dvipdfm {% - \immediate\@pdfm@mark{obj @objnames % + \immediate\special{pdf:obj @objnames % << /Names [\the\importfdftoks] >> }% - \@pdfm@mark{put @names % + \special{pdf:put @names % << /JavaScript @objnames >> }% } % \end{macrocode} diff --git a/macros/latex/contrib/denisbdoc/README.md b/macros/latex/contrib/denisbdoc/README.md index 4c41602027..6bce9c15cb 100644 --- a/macros/latex/contrib/denisbdoc/README.md +++ b/macros/latex/contrib/denisbdoc/README.md @@ -1,4 +1,4 @@ -denisbdoc - A personal package for documenting classes and packages, v. 0.9.1 +denisbdoc - A personal package for documenting classes and packages, v. 0.9.2 ============================================================================= **The sole purpose of this (quick 'n dirty) `denisbdoc` package is for diff --git a/macros/latex/contrib/denisbdoc/denisbdoc.dtx b/macros/latex/contrib/denisbdoc/denisbdoc.dtx index af502881fe..9216617e6b 100644 --- a/macros/latex/contrib/denisbdoc/denisbdoc.dtx +++ b/macros/latex/contrib/denisbdoc/denisbdoc.dtx @@ -3,7 +3,7 @@ \iffalse %</internal> %<*readme> -denisbdoc - A personal package for documenting classes and packages, v. 0.9.1 +denisbdoc - A personal package for documenting classes and packages, v. 0.9.2 ============================================================================= **The sole purpose of this (quick 'n dirty) `denisbdoc` package is for @@ -31,7 +31,7 @@ This package is currently not documented. \preamble ----------------------------------------------------------------------------- denisbdoc --- A personal dirty package for documenting personal classes, - version 0.9.1 + version 0.9.2 Maintained by Denis Bitouzé E-mail: denis.bitouze@univ-littoral.fr @@ -41,7 +41,7 @@ See http://www.latex-project.org/lppl.txt \endpreamble \postamble -Copyright (C) 2015-2020 by +Copyright (C) 2015-2021 by Denis Bitouzé <denis.bitouze@univ-littoral.fr> It may be distributed and/or modified under the conditions of @@ -126,6 +126,7 @@ This work consists of the file denisbdoc.dtx %\changes{v0.8}{2020/03/27}{Eighth CTAN version} %\changes{v0.9}{2020/05/31}{Nineth CTAN version} %\changes{v0.9.1}{2020/10/14}{Further CTAN version} +%\changes{v0.9.2}{2021-10-13}{Further CTAN version} % %\begin{abstract} % ... @@ -196,7 +197,7 @@ This work consists of the file denisbdoc.dtx % % The usual preliminaries. % \begin{macrocode} -\ProvidesExplPackage {denisbdoc} {2020/10/14} {0.9.1} +\ProvidesExplPackage {denisbdoc} {2021-10-13} {0.9.2} {A personal package for documenting packages} % \end{macrocode} % @@ -243,7 +244,9 @@ This work consists of the file denisbdoc.dtx % \begin{macrocode} \sys_if_engine_pdftex:TF { - % \RequirePackage{cmap} + \RequirePackage{cmap} % Necessary for the angle brackets generated by ×\meta× + % to be copied and pasted as they are, and not replaced + % by "h" and "i" \RequirePackage[T1]{fontenc} \RequirePackage[utf8]{inputenc} % \end{macrocode} @@ -279,7 +282,7 @@ This work consists of the file denisbdoc.dtx \@ifclassloaded{beamer}{\@DBD@beamer@not@loaded@false}{\@DBD@beamer@not@loaded@true} % \if@DBD@beamer@not@loaded@ -\RequirePackage{parskip}% + \RequirePackage{parskip}% \RequirePackage{marginnote} \RequirePackage{mparhack} \RequirePackage[inline]{enumitem} @@ -288,6 +291,7 @@ This work consists of the file denisbdoc.dtx \RequirePackage{calc}% % \RequirePackage[lining]{libertine}% \RequirePackage{siunitx}% +\RequirePackage{pifont} % \RequirePackage[a4paper]{geometry}% \RequirePackage{booktabs}% \RequirePackage{multirow}% @@ -310,7 +314,10 @@ This work consists of the file denisbdoc.dtx \RequirePackage{etoolbox}% \RequirePackage{iflang}% \RequirePackage{ifpdf}% -\RequirePackage{amssymb}% +\sys_if_engine_pdftex:T +{ + \RequirePackage{amssymb}% +} \if@DBD@beamer@not@loaded@ \RequirePackage{tocvsec2}% \fi @@ -882,7 +889,7 @@ This work consists of the file denisbdoc.dtx norm*,lnorm*,llnorm*,lpnorm*,supnorm*,abs*,prt*,brk*,brc*,lrangle*,leqgeq*,% pdfobjcompresslevel,chaptermark,PassOptionsToClass% },% - morekeywords={[1]% Environments' names + morekeywords=[1]{% Environments' names tabular,tabulary,math,document,minipage,eqnarray,eqnarray*,align,align*,% equation,gather,multline,flalign,equation*,gather*,multline*,flalign*,% itemize,itemize*,enumerate,enumerate*,description,description*,% @@ -1375,7 +1382,10 @@ This work consists of the file denisbdoc.dtx % The \pkg{kpfonts} and \pkg{libertine}'s ttfamilies are not as nice as % \pkg{lmodern}'s one to my taste. So let's use the latter. % \begin{macrocode} -\renewcommand{\ttdefault}{lmtt} +\sys_if_engine_pdftex:T +{ + \renewcommand{\ttdefault}{lmtt} +} % \end{macrocode} % % \pkg{lmodern} doesn't provide extended bold italic typewritter, hence @@ -1383,6 +1393,7 @@ This work consists of the file denisbdoc.dtx % a italic context. To get rid of this warning, we silently substitute bold % slanted to extended bold italic. % \begin{macrocode} +\sys_if_engine_pdftex:T {% \ttfamily% \DeclareFontShape{T1}{lmtt}{bx}{it}{<-> ssub * lmtt/b/sl}{}% @@ -1755,31 +1766,31 @@ This work consists of the file denisbdoc.dtx } \NewDocumentCommand{\texstudio}{ } { - \program{TeXstudio}\xspace + \program{TeXstudio} } \NewDocumentCommand{\emacs}{ } { - \program{Emacs}\xspace + \program{Emacs} } \NewDocumentCommand{\texlive}{ } { - \href{http://www.tug.org/texlive/}{\TeX{}\c_space_tl{}Live}\xspace + \href{http://www.tug.org/texlive/}{\TeX{}\c_space_tl{}Live} } \NewDocumentCommand{\miktex}{ } { - \href{http://www.tug.org/texlive/}{MiK\TeX}\xspace + \href{http://www.tug.org/texlive/}{MiK\TeX} } \NewDocumentCommand{\linux}{ } { - Linux\index{Linux}\xspace + Linux\index{Linux} } \NewDocumentCommand{\macos}{ } { - Mac OS\index{Mac OS}\xspace + Mac OS\index{Mac OS} } \NewDocumentCommand{\windows}{ } { - Windows\index{Windows}\xspace + Windows\index{Windows} } % \cs_new_protected:Nn \_@@_links:nnn @@ -2056,8 +2067,8 @@ This work consists of the file denisbdoc.dtx % pasted as they are, and not replaced by "h" and "i" % (cf. \url{https://tex.stackexchange.com/q/18146/18401}). % \begin{macrocode} -\newunicodechar{〈}{$\langle$} -\newunicodechar{〉}{$\rangle$} +\newunicodechar{⟨}{$\langle$} +\newunicodechar{⟩}{$\rangle$} % \end{macrocode} % % \begin{macrocode} @@ -2687,11 +2698,10 @@ Nouv.~:}~#1} % \PrintIndex \endinput -% Local Variables: -% mode: doctex -% eval: (doctex-mode) -% TeX-engine: xetex -% TeX-command-default: "TeX" -% TeX-master: t -% ispell-local-dictionary: "francais" -% End: +%%% Local Variables: +%%% mode: doctex +%%% TeX-engine: luatex +%%% TeX-command-default: "TeX" +%%% TeX-master: t +%%% ispell-local-dictionary: "francais" +%%% End: diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx index fa75daded4..de0745cb46 100644 --- a/macros/latex/contrib/easybook/easybook.dtx +++ b/macros/latex/contrib/easybook/easybook.dtx @@ -1,5 +1,5 @@ % -% Copyright (C) 2021 by Yi Qu <q1jx@foxmail.com> +% Copyright (C) 2021 by Qu Yi <q1jx@foxmail.com> % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either @@ -15,7 +15,7 @@ %<*class> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e} -\ProvidesExplClass{easybook}{2021/10/10}{1.3H} +\ProvidesExplClass{easybook}{2021/10/12}{1.3I} {Typeset Chinese theses or books} \bool_set_false:N \l__eb_compile_draft_bool @@ -319,7 +319,7 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e,etoolbox} -\ProvidesExplPackage{easybase}{2021/10/10}{1.3H} +\ProvidesExplPackage{easybase}{2021/10/12}{1.3I} {Typeset Chinese theses or books} \cs_generate_variant:Nn \dim_set:Nn { NV } @@ -1967,7 +1967,7 @@ postheadspace = 1em, notebraces = {(}{)}, within = \bool_if:NT \l__eb_class_book_bool { chapter }, - headformat = \NAME\space\NUMBER\NOTE + headformat = \NAME\NUMBER\NOTE } \eb_at_end_preamble:n { @@ -2385,7 +2385,7 @@ } %</package> %<*tcolorbox> -\ProvidesExplFile{eb-tcolorbox.cfg}{2021/10/10}{1.3H} +\ProvidesExplFile{eb-tcolorbox.cfg}{2021/10/12}{1.3I} {Customization of tcolorbox for easybook} \tl_gset:Nn \eb@tc@line@skip { 0.5\baselineskip } diff --git a/macros/latex/contrib/easybook/easybook.ins b/macros/latex/contrib/easybook/easybook.ins index 7088d8688f..f664159f9f 100644 --- a/macros/latex/contrib/easybook/easybook.ins +++ b/macros/latex/contrib/easybook/easybook.ins @@ -1,5 +1,5 @@ % -% Copyright (C) 2021 by Yi Qu <q1jx@foxmail.com> +% Copyright (C) 2021 by Qu Yi <q1jx@foxmail.com> % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either @@ -19,7 +19,7 @@ \usedir{tex/latex/easybook} \preamble -Copyright (C) 2021 by Yi Qu <q1jx@foxmail.com> +Copyright (C) 2021 by Qu Yi <q1jx@foxmail.com> This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf Binary files differindex 65946962f3..70e56cf528 100644 --- a/macros/latex/contrib/easybook/easybook.pdf +++ b/macros/latex/contrib/easybook/easybook.pdf diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex index 52c0a6f0c3..6989848387 100644 --- a/macros/latex/contrib/easybook/easybook.tex +++ b/macros/latex/contrib/easybook/easybook.tex @@ -6,14 +6,22 @@ enumitem,newtxmath,indentfirst,tabularray, fancyvrb,geometry,hologo,pifont } -\colorlet{cnltxred}{violet} +\definecolorscheme{blue} + { + cs => purple, + option => cnltxgreen, + cnltx => cnltxblue, + link => cnltxblue, + module => violet, + meta => black + } \setcnltx { name = easybook, color-scheme = blue, title = EASYBOOK 使用手册, - version = v1.3H, - date = 2021/10/10, + version = v1.3I, + date = 2021/10/12, authors = 瞿毅, info = 排版简体中文学位论文和书籍, email = q1jx@foxmail.com, @@ -24,6 +32,7 @@ }, arg-format = \normalfont\small\itshape, abstract-format = \small, + module-sep = \,$\Rightarrow$\,, title-format = \huge\sffamily } \KOMAoptions{headsepline = 0.6pt,numbers = noenddot} @@ -62,6 +71,7 @@ \IfBooleanTF{#2}{#4}{\IfBooleanTF{#1}{\Marg{#4}}{\splitmarg{#4}}} } } +\newarg[\color{violet}\code]\Carg{\{}{\}} \newsplitarg{\splitoarg}{[}{]} \newsplitarg{\splitdarg}{(}{)} \newsplitarg{\splitmarg}{\{}{\}} @@ -297,7 +307,7 @@ \begin{options} \kvsplit{biname}{英文目录前名字,英文目录后名字}\Module{chapter}\Default{Chapter\cs*{space}} 更改英文目录 \code{chapter} 级别的标题编号前后名字,类似于 C\TeX 的 \option*{name} 选项。 - \keyval-{binmuber}{英文目录数字输出命令}\Module{chapter}\Default{\cs*{arabic}\Marg{chapter}} + \keyval-{binmuber}{英文目录数字输出命令}\Default{\cs*{arabic}\Carg{chapter}} 更改英文目录 \code{chapter} 级别的标题编号输出格式,类似于 C\TeX 的 \option*{number} 选项。 \end{options} @@ -376,7 +386,7 @@ 统一调整页眉、定理盒子以及代码框等线条的粗细。 \keybool{uppercase}\Default{true} 使用 \cs*{rightmark} 及 \cs*{leftmark} 标题标记命令获取标题内容时英文是否大写。 - \kvsplit{brackets}{左括号,右括号}\Default{\Marg{(,)}} + \kvsplit{brackets}{左括号,右括号}\Default{\Carg{(,)}} 设置行间公式编号标签的括号,以英文逗号分隔,分别代表左右括号。 \kvsplit*{figurepath}{\meta{路径名1}\code{\}\{}\meta{路径名2}}\Default 设置插入图片的文件夹路径名,可以有多个路径名,每个路径包含在括号分隔,只有一个路径时需要包含在两层括号内。 @@ -384,15 +394,15 @@ \subsubsection{连接符} \begin{options} - \keyval-{figure-con}{图片连接符}\Module{style}\Default{\Marg{.}} + \keyval-{figure-con}{图片连接符}\Module{style}\Default{\Carg{.}} 设置图片题注编号的连接符。 - \keyval-{table-con}{表格连接符}\Default{\Marg{.}} + \keyval-{table-con}{表格连接符}\Default{\Carg{.}} 设置表格题注编号的连接符。 - \keyval-{listing-con}{代码连接符}\Default{\Marg{.}} + \keyval-{listing-con}{代码连接符}\Default{\Carg{.}} 设置代码题注编号的连接符。 - \keyval-{equation-con}{公式连接符}\Default{\Marg{.}} + \keyval-{equation-con}{公式连接符}\Default{\Carg{.}} 设置公式题注编号的连接符。 - \keyval-{number-con}{连接符}\Default{\Marg{.}} + \keyval-{number-con}{连接符}\Default{\Carg{.}} 统一设置上述所有编号的连接符。 \end{options} @@ -485,7 +495,7 @@ \begin{options} \keychoice{backend}{bibtex,biblatex}\Module{bibset}\Default{bibtex} 参考文献处理后端,默认用传统的 \hologo{BibTeX} 处理参考文献\footnote{使用 \hologo{BibTeX} 引擎时加载 \pkg*{natbib} 宏包,使用 \hologo{biber} 时将加载 \pkg*{biblatex} 宏包。}。 - \keychoice{bib-style}{numerical,authoryear,其它格式}\Default{numerical} + \keychoice{bib-style}{numerical,authoryear,other sty}\Default{numerical} 参考文献格式为中国的参考文献推荐标准 GB/T 7714-2015,有顺序编码制和著者-出版年制两种风格,理工科类一般使用顺序编码制,文科类一般使用著者-出版年制。若使用其它格式,使用 \hologo{BibTeX} 处理时需确保正确的 \code{bst} 文件,使用 \hologo{biber} 处理可使用 \pkg*{biblatex} 宏包支持的参考文献风格名称。 \keyval-{cite-style}{标注风格}\Default 标注参考文献的风格,选项 \keyis-{backend}{bibtex} 下可使用 \option{super}(数字上标标注,默认)或 \option{numbers}(数字标注)等 \pkg*{natbib} 宏包带有的标注风格,选项 \keyis-{backend}{biblatex} 下可使用 \pkg*{biblatex} 宏包支持的标注风格名称。 @@ -527,7 +537,7 @@ \begin{options} \keybool{thmbox}\Module{thmset}\Default{false} 给定理环境使用彩色盒子。这个特殊选项在 \module*{thmset} 模块中使用 \pkg*{tcolorbox} 宏包来支持,\meta{盒子风格} 默认为 \code{tc-theorem}。新建定理命令的同名选项则包括 \code{L}、\code{M} 和 \code{S} 三个参数。 - \keychoice{within}{chapter,section,其它环境,空置}\Default{chapter} + \keychoice{within}{chapter,section,env,empty}\Default{chapter} 定理编号跟随的计数器,默认跟随章的编号,也可以跟随其它定理环境的编号,当计数器增加时定理编号会从零开始,空置时不跟随其它计数器编号。 \keyval-{headpunct}{代码}\Default 紧随定理标题末尾的标记代码,位于定理第一段内容的间距 \option{postheadspace} 之前,可以是字符或插入换行符 \cs*{newline} 等命令。 @@ -535,7 +545,7 @@ 定理内容部分的字体,包括字体族、字体系列、字体尺寸和字体形状命令。 \keyval-{notefont}{字体命令}\Default 定理题注部分的字体,包括字体族、字体系列、字体尺寸和字体形状命令。 - \keyval-{headfont}{字体命令}\Default{\cs*{color}\Marg{ctex@emph}\cs*{sffamily}} + \keyval-{headfont}{字体命令}\Default{\cs*{color}\Carg{ctex@emph}\cs*{sffamily}} 定理标题部分的字体,包括字体族、字体系列、字体尺寸和字体形状命令。 \keyval-{headindent}{刚性长度}\Default{0em} 定理标题的缩进,默认无缩进,可用 \cs*{parindent} 命令设置为段落缩进。 @@ -545,9 +555,9 @@ 定理环境后的间距,使用 \pkg*{tcolorbox} 的盒子环境包装后被覆盖。 \keyval-{postheadspace}{刚性长度}\Default{1em} 定理标题后与定理第一段内容的间距。 - \kvsplit*{notebraces}{\meta{左括号}\code{\}\{}\meta{右括号}}\Default{\Marg{(}\Marg{)}} + \kvsplit*{notebraces}{\meta{左括号}\code{\}\{}\meta{右括号}}\Default{\Carg{(}\Carg{)}} 设置定理题注两边的括号,两个必选参数分别代表左括号和右括号。 - \keyval-{headformat}{标题排列}\Default{\cs*{NAME}\cs*{space}\cs*{NUMBER}\cs*{NOTE}} + \keyval-{headformat}{标题排列}\Default{\cs*{NAME}\cs*{NUMBER}\cs*{NOTE}} 定理标题各组成元素的位置排列和格式。定理标题由定理名、编号和题注组成,\meta{标题排列} 中参数 \cs*{NAME}、\cs*{NUMBER} 和 \cs*{NOTE} 分别代表定理名、编号和题注。 \end{options} @@ -634,7 +644,7 @@ 标题标记命令 \cs*{sectionmark} 的内容,包括了标签选项 \option{sec-label} 的内容。 \keyval-{subsec-mark}{标题标记} 标题标记命令 \cs*{subsectionmark} 的内容,包括了标签选项 \option{subsec-label} 的内容。 - \kvsplit-{chap-label}{\oarg{数字输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Marg{1em}} + \kvsplit-{chap-label}{\oarg{数字输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Carg{1em}} 标题标记命令 \cs*{chaptermark} 内容的标签(标题有编号时),比标题标记选项更常用,可选参数是对应于章节编号计数器的输出命令,必选参数是编号与标题之间的距离命令: \begin{ctexexam} \hdrset @@ -643,9 +653,9 @@ sec-mark = \CTEXifname{\CTEXthesection——}{}#1 } \end{ctexexam} - \kvsplit-{sec-label}{\oarg{数字输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Marg{0.5em}} + \kvsplit-{sec-label}{\oarg{数字输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Carg{0.5em}} 标题标记命令 \cs*{sectionmark} 内容的标签,用法与 \option{chap-label} 类似。 - \kvsplit-{subsec-label}{\oarg{数字输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Marg{0.5em}} + \kvsplit-{subsec-label}{\oarg{数字输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Carg{0.5em}} 标题标记命令内容 \cs*{subsectionmark} 的标签,用法与 \option{chap-label} 类似。 \keyval-{headrule}{横线命令} 绘制页眉横线的选项,可以使用 \cs*{hrule}、\cs*{rule} 或下述 \cs{markrule} 等画线命令来绘制横线。手动绘制横线时线条粗细选项 \module*{style/}\option{rulewidth} 会失效。 @@ -700,7 +710,7 @@ \end{ctexexam} \keychoice{fnmark-pos}{normal,super}\Default{super} 设置脚注内容标记的位置,正常文本或是上标形式。 - \keychoice{fnmark-num}{plain,pifont,pifont*,pifont-sans,pifont-sans*,短编号}\Default{plain} + \keychoice{fnmark-num}{plain,pifont,pifont*,pifont-sans,pifont-sans*,short num}\Default{plain} 脚注正文标记编号的格式,默认为原生样式 \code{plain},还可以改为 \code{pifont} 的各个版本,从左往右依次为普通版、阴文衬线版、阳文无衬线版和阴文无衬线版,缺点是它们的编号仅包括 1-10。 短编号的形式与列表环境类似,不过增加了一个中文数字格式参数 \code{c}。原生样式 \code{plain} 等同于单独使用数字 \code{1} 参数。这个选项可以用在正文中改变其后脚注编号格式。 @@ -708,9 +718,9 @@ \hdrset{fnmark-num = 1} % 等于编号格式plain \hdrset{fnmark-num = (a)} \end{ctexexam} - \keychoice{fntext-num}{plain,pifont,pifont*,pifont-sans,pifont-sans*,短编号}\Default{plain} + \keychoice{fntext-num}{plain,pifont,pifont*,pifont-sans,pifont-sans*,short num}\Default{plain} 脚注内容标记编号的格式,用法与 \option{fnmark-num} 一样,所以脚注内容与正文标记编号格式\textbf{可以不同}。 - \keychoice{fnboth-num}{plain,pifont,pifont*,pifont-sans,pifont-sans*,短编号}\Default{plain} + \keychoice{fnboth-num}{plain,pifont,pifont*,pifont-sans,pifont-sans*,short num}\Default{plain} 同时设定脚注正文标记编号 \option{fnmark-num} 与脚注内容标记编号 \option{fntext-num} 的格式。目前脚注编号格式选项对于迷你页环境 \env*{minipage} 无效,其中的脚注保持默认英文字母的编号形式。 \keyval-{fnmark-form}{格式代码}\Default 脚注标记的格式,一般配合选项 \keyis-{fnmark-num}{plain} 使用,例如配合 \pkg*{circledsteps} 宏包的带圈符号命令 \cs*{Circled} 给脚注标记添加圆圈: @@ -953,7 +963,7 @@ 习题标题盒子背景颜色,可以使用 \pkg*{xcolor} 自定义颜色或使用色库。 \keyval-{title}{环境标题}\Default{习题} 习题的标题,可以匹配中英文模式,习题环境使用 \parg{} 参数时无效。 - \keyval-{number}{习题编号格式}\Default{\Marg{1.}} + \keyval-{number}{习题编号格式}\Default{\Carg{1.}} 标题编号输出选项 \option{number} 为短编号形式,应当包含 \code{A}、\code{a}、\code{I}、\code{i}、或 \code{1} 其中一个符号。 \keyval-{numsep}{编号与标题的间距}\Default{0.5em} 习题标题编号与后方标题文本的间距,习题环境使用星号参数时无效。 @@ -1111,7 +1121,7 @@ \begin{options} \keyval-{width}{符号宽度}\Default{2em} 设置适当的符号宽度可以防止文字重叠和边界溢出等问题。 - \keyval-{delim}{引导符}\Default{\Marg{——}} + \keyval-{delim}{引导符}\Default{\Carg{——}} 全局的符号对照引导符,\cs{symb} 局部的 \meta{引导符} 和对齐方式是基于这个符号的宽度。 \keyval-{space}{符号间隙}\Default{0.25em} 符号间隙为引导符两侧与符号和说明文字间的距离。 diff --git a/macros/latex/contrib/nwejm/README.md b/macros/latex/contrib/nwejm/README.md index a4a1e3ee1d..ac9ca0586c 100644 --- a/macros/latex/contrib/nwejm/README.md +++ b/macros/latex/contrib/nwejm/README.md @@ -8,7 +8,7 @@ new journal "North-Western European Journal of Mathematics". Release ------- -2020-03-18 v1.0.1 +2021-10-12 v1.0.2 Development ----------- diff --git a/macros/latex/contrib/nwejm/doc/examples/article-in-dutch.pdf b/macros/latex/contrib/nwejm/doc/examples/article-in-dutch.pdf Binary files differindex 7feb9e7aec..58642fe609 100644 --- a/macros/latex/contrib/nwejm/doc/examples/article-in-dutch.pdf +++ b/macros/latex/contrib/nwejm/doc/examples/article-in-dutch.pdf diff --git a/macros/latex/contrib/nwejm/doc/examples/article-in-english.pdf b/macros/latex/contrib/nwejm/doc/examples/article-in-english.pdf Binary files differindex d2903f5369..be7d4dbd55 100644 --- a/macros/latex/contrib/nwejm/doc/examples/article-in-english.pdf +++ b/macros/latex/contrib/nwejm/doc/examples/article-in-english.pdf diff --git a/macros/latex/contrib/nwejm/doc/examples/article-in-french.pdf b/macros/latex/contrib/nwejm/doc/examples/article-in-french.pdf Binary files differindex 41d01bc30f..15decf8727 100644 --- a/macros/latex/contrib/nwejm/doc/examples/article-in-french.pdf +++ b/macros/latex/contrib/nwejm/doc/examples/article-in-french.pdf diff --git a/macros/latex/contrib/nwejm/doc/examples/article-in-german.pdf b/macros/latex/contrib/nwejm/doc/examples/article-in-german.pdf Binary files differindex 6efa40cd70..f7f8fb9e3f 100644 --- a/macros/latex/contrib/nwejm/doc/examples/article-in-german.pdf +++ b/macros/latex/contrib/nwejm/doc/examples/article-in-german.pdf diff --git a/macros/latex/contrib/nwejm/doc/examples/issue.pdf b/macros/latex/contrib/nwejm/doc/examples/issue.pdf Binary files differindex accb174241..e16f6d58f1 100644 --- a/macros/latex/contrib/nwejm/doc/examples/issue.pdf +++ b/macros/latex/contrib/nwejm/doc/examples/issue.pdf diff --git a/macros/latex/contrib/nwejm/doc/examples/sample.pdf b/macros/latex/contrib/nwejm/doc/examples/sample.pdf Binary files differindex f88087ab2c..af2d60cdaf 100644 --- a/macros/latex/contrib/nwejm/doc/examples/sample.pdf +++ b/macros/latex/contrib/nwejm/doc/examples/sample.pdf diff --git a/macros/latex/contrib/nwejm/doc/nwejm-fr.pdf b/macros/latex/contrib/nwejm/doc/nwejm-fr.pdf Binary files differindex 904ea3ea75..7bcce82706 100644 --- a/macros/latex/contrib/nwejm/doc/nwejm-fr.pdf +++ b/macros/latex/contrib/nwejm/doc/nwejm-fr.pdf diff --git a/macros/latex/contrib/nwejm/source/nwejm.dtx b/macros/latex/contrib/nwejm/source/nwejm.dtx index 01bab653f0..86bfb0627b 100644 --- a/macros/latex/contrib/nwejm/source/nwejm.dtx +++ b/macros/latex/contrib/nwejm/source/nwejm.dtx @@ -13,7 +13,7 @@ new journal "North-Western European Journal of Mathematics". Release ------- -2020-03-18 v1.0.1 +2021-10-12 v1.0.2 Development ----------- @@ -44,7 +44,7 @@ https://github.com/dbitouze/nwejm. \input l3docstrip.tex \Msg{********************************************************} \Msg{* Installation} -\Msg{* Class: nwejm 2020-03-18 v1.0.1} +\Msg{* Class: nwejm 2021-10-12 v1.0.2} \Msg{* for the journal} \Msg{* "North-Western European Journal of Mathematics" (DB)} \Msg{********************************************************} @@ -61,7 +61,7 @@ License:| Released under the LaTeX Project Public License v1.3c or later \endpreamble \postamble -Copyright (C) 2015-2020 by Denis Bitouze <denis.bitouze@univ-littoral.fr> +Copyright (C) 2015-2021 by Denis Bitouze <denis.bitouze@univ-littoral.fr> This work may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either @@ -174,6 +174,12 @@ Running "make install" installs the files in the local TeX tree. % %\maketitle % +% \changes{v1.0.2}{2021-10-12}{% +% \begin{itemize} +% \item Fix gh \#4 (\url{https://git.io/JKLYW}). +% \item Fix bug in case of other engine than \hologo{pdfTeX}. +% \end{itemize} +% }% % \changes{v1.0.1}{2020-03-18}{% % \begin{itemize} % \item Fix bugs due to \Package{expl3} changes. @@ -317,8 +323,8 @@ Running "make install" installs the files in the local TeX tree. \ProvidesExplClass %<class> {nwejm} %<class-article> {nwejmart} - {2020-03-18} - {1.0.1} + {2021-10-12} + {1.0.2} { Class for the journal "North-Western European Journal of Mathematics". } @@ -373,8 +379,8 @@ Running "make install" installs the files in the local TeX tree. can~be~used~only~in~document~body~and~not~in~preamble!}% \msg_new:nnn{nwejmart}{Article~setup~not~consistent}{The~ article~ setup~ concerning~ the~ option~ `#1'~ has~ changed~ after~ its~ 1st~ use.~ Please~ - use~ \articlesetup~ command~ just~ once,~ just~ after~ the~ beginning~ of~ - the~ document.}% + use~ `\string\articlesetup'~ command~ just~ once,~ just~ after~ the~ + beginning~ of~ the~ document.}% \msg_new:nnn{ %<class-article> nwejmart %<class> nwejm @@ -442,13 +448,11 @@ Running "make install" installs the files in the local TeX tree. \bool_gset_true:N \g_@@_language_specified_bool% \PassOptionsToPackage{main=#1}{babel} \PassOptionsToPackage{#1}{varioref} - \AtBeginDocument{ + \AddToHook{begindocument/before}{% \LoadDictionaryFor{#1}{nwejm} - } - \AtEndPreamble{% \FCloadlang{#1} } - \AfterEndPreamble{% + \AddToHook{begindocument/end}{% \selectlanguage{#1} } } @@ -574,7 +578,7 @@ Running "make install" installs the files in the local TeX tree. % We load the dictionaries containing the translations needed for theorems and % the like. % \begin{macrocode} -\AtBeginDocument{ +\AddToHook{begindocument/before}{ \LoadDictionaryFor{french}{nwejm} \LoadDictionaryFor{english}{nwejm} \LoadDictionaryFor{dutch}{nwejm} @@ -608,23 +612,37 @@ Running "make install" installs the files in the local TeX tree. \RequirePackage[l2tabu,orthodox]{nag} % \end{macrocode} % -% \item In case of \hologo{pdfTeX} engine, we enforce \pkg{inputenc} to be -% loaded with its \docAuxKey*{utf8} option. Otherwise \pkg{fontspec}, -% convenient for both \hologo{XeLaTeX} and \hologo{LuaLaTeX}, is loaded with -% ligatures à la \TeX{} by default enabled. +% \item In case of \hologo{pdfTeX} engine, we enforce \pkg{fontenc} to be +% loaded with its \docAuxKey*{T1} option. Otherwise \pkg{fontspec}, +% convenient for both \hologo{XeLaTeX} and \hologo{LuaLaTeX}, is loaded by the +% \pkg{unicode-math} package. % \begin{macrocode} \sys_if_engine_pdftex:TF - { - \RequirePackage[utf8]{inputenc} - }{ - \RequirePackage{fontspec} - \DeclareTextCommandDefault{\nobreakspace}{\leavevmode\nobreak\ } - } +{ % \end{macrocode} % % \item Standard package for selecting font encodings: % \begin{macrocode} -\RequirePackage[T1]{fontenc} + \RequirePackage[T1]{fontenc} +% \end{macrocode} +% +% \item Load of main font to be used: +% \begin{macrocode} + \RequirePackage[easyscsl,noDcommand]{kpfonts} +}{ +% \end{macrocode} +% +% \item Unicode mathematics support for \hologo{XeTeX} and \hologo{LuaTeX}: +% \begin{macrocode} + \RequirePackage{unicode-math} +% \end{macrocode} +% +% \item OTF version of the Kp-fonts for both roman and sans-serif font, but +% LatinModern for the monospaced one. +% \begin{macrocode} + \RequirePackage[noDcommand]{kpfonts-otf} + \setmonofont[Scale = MatchLowercase]{Latin Modern Mono} +} % \end{macrocode} % % \item Formatting both header and footers (pagestyle), and sections headers: @@ -704,9 +722,7 @@ Running "make install" installs the files in the local TeX tree. % \end{macrocode} % % \item Extension to \Pkg{amsmath}: correct various bugs/defeciencies in amsmath -% and useful tools for mathematical typesetting\footnote{The \Pkg{mathtools} -% loads \pkg{amsmath}, hence it's not necessary to load the -% latter. It has to be loaded before \pkg{datatool} and \pkg{kpfonts}.}: +% and useful tools for mathematical typesetting: % \begin{macrocode} \RequirePackage{mathtools} % \end{macrocode} @@ -716,22 +732,11 @@ Running "make install" installs the files in the local TeX tree. \RequirePackage[amsmath,thmmarks,fleqn]{ntheorem} % \end{macrocode} % -% \item Support for using RSFS fonts in maths: -% \begin{macrocode} -\RequirePackage{rsfso} -% \end{macrocode} -% % \item Vector arrows: % \begin{macrocode} \RequirePackage{esvect} % \end{macrocode} % -% Load of main font to be used: -% \begin{macrocode} -\RequirePackage[easyscsl,noDcommand]{kpfonts} -% %<class-article>\RequirePackage[noDcommand]{kpfonts} -% \end{macrocode} -% % \item Flexible and easy interface to page dimensions: % \begin{macrocode} \RequirePackage{geometry} @@ -909,7 +914,7 @@ Running "make install" installs the files in the local TeX tree. % \item Hypertext marks: % \begin{macrocode} \RequirePackage[pdfencoding=unicode,final]{hyperref}% -\AtEndPreamble{% +\AddToHook{begindocument/before}{% \hypersetup{hidelinks,hypertexnames=false,breaklinks}% }% % \end{macrocode} @@ -1872,7 +1877,7 @@ Running "make install" installs the files in the local TeX tree. % \begin{macrocode} \box_new:N \l_@@_journal_logo_box \box_new:N \l_@@_journal_name_box - \AfterEndPreamble{% + \AddToHook{begindocument/end}{% \hbox_set:Nn \l_@@_journal_name_box { \bfseries% @@ -1937,7 +1942,7 @@ Running "make install" installs the files in the local TeX tree. % \end{itemize} % % \begin{macrocode} -\AtBeginDocument{% +\AddToHook{begindocument}{% \graphicspath{{\c_@@_issue_images_path_string_tl//}{../\c_@@_issue_images_path_string_tl//}} % \glsdisablehyper } @@ -1955,7 +1960,7 @@ Running "make install" installs the files in the local TeX tree. % to be different. % \end{itemize} % \begin{macrocode} -%<class-article> \AfterEndPreamble{\g_@@_mainmatter_switch_tl} +%<class-article> \AddToHook{begindocument/end}{\g_@@_mainmatter_switch_tl} % \end{macrocode} % % \section{Options} @@ -2737,10 +2742,10 @@ Running "make install" installs the files in the local TeX tree. rectangle (current~page.south~east); % laboratory logo \node[anchor=south~east] at ([xshift=-10mm]current~page~text~area.south~east) - {\includegraphics[height=.66\c_@@_logos_rectangle_height_dim]{logo-painleve}} ; + {\includegraphics[height=.5\c_@@_logos_rectangle_height_dim]{logo-painleve}} ; % university logo \node[anchor=south~west] at (current~page~text~area.south~west) - {\includegraphics[height=.66\c_@@_logos_rectangle_height_dim]{logo-ul1-ufr-math}} ; + {\includegraphics[height=.5\c_@@_logos_rectangle_height_dim]{ul-fst-math}} ; % crop marks \draw [white] ([xshift=2.5mm]current~page~text~area.north~east) -- @@ -2872,7 +2877,7 @@ Running "make install" installs the files in the local TeX tree. %<class-article> %<class-article>\file_if_exist:nT { \c_@@_main_file_name_tl.aux } %<class-article>{\externaldocument[@@-]{\c_@@_main_file_name_tl} -%<class-article> \AfterEndPreamble{\setcounter{page}{\number\numexpr\getpagerefnumber{@@-\currfilebase}}} +%<class-article> \AddToHook{begindocument/end}{\setcounter{page}{\number\numexpr\getpagerefnumber{@@-\currfilebase}}} %<class-article>} % \end{macrocode} % @@ -3292,6 +3297,14 @@ Running "make install" installs the files in the local TeX tree. } % \end{macrocode} % +% \begin{macrocode} +%</class|class-article> +% \end{macrocode} +% +% \begin{macrocode} +%<*class> +% \end{macrocode} +% % \subsection{Input variant} % % We create a variant of the "\input" macro to be use for the input of each @@ -3301,6 +3314,7 @@ Running "make install" installs the files in the local TeX tree. % \url{https://tex.stackexchange.com/q/475788/18401}). % \begin{macrocode} \NewDocumentCommand \inputarticle { O{english} m } {% + \int_gincr:N \g_@@_articles_int \newrefsection \renewcommand*{\glspluralsuffix}{s} \renewcommand*{\glsacrpluralsuffix}{\glspluralsuffix} @@ -3309,6 +3323,7 @@ Running "make install" installs the files in the local TeX tree. \str_case:nn {#1} { {english} { \selectlanguage{english} + % \shorthandoff{"}% \renewcommand*{\glossaryname}{Glossary}% \renewcommand*{\acronymname}{Acronyms}% \renewcommand*{\entryname}{Notation}% @@ -3320,6 +3335,7 @@ Running "make install" installs the files in the local TeX tree. } {german} { \selectlanguage{ngerman} + % \shorthandon{"}% \renewcommand*{\glossaryname}{Glossar}% \renewcommand*{\acronymname}{Akronyme}% \renewcommand*{\entryname}{Bezeichnung}% @@ -3331,6 +3347,7 @@ Running "make install" installs the files in the local TeX tree. } {ngerman} { \selectlanguage{ngerman} + % \shorthandon{"}% \renewcommand*{\glossaryname}{Glossar}% \renewcommand*{\acronymname}{Akronyme}% \renewcommand*{\entryname}{Bezeichnung}% @@ -3342,6 +3359,7 @@ Running "make install" installs the files in the local TeX tree. } {french} { \selectlanguage{french} + % \shorthandoff{"}% % \end{macrocode} % % Though we switch to \pkg{babel}'s ×french×, footnotes are not displayed as @@ -3363,6 +3381,7 @@ Running "make install" installs the files in the local TeX tree. } {dutch} { \selectlanguage{dutch} + % \shorthandon{"}% \renewcommand*{\glossaryname}{Woordenlijst}% \renewcommand*{\acronymname}{Acroniemen}% \renewcommand*{\entryname}{Benaming}% @@ -3406,6 +3425,11 @@ Running "make install" installs the files in the local TeX tree. } } % \end{macrocode} +% We ensure the sections' counter will be printed as arabic numerals (in case +% ×\appendix× has been used in a previous article): +% \begin{macrocode} + \gdef\thesection{\@arabic\c@section} +% \end{macrocode} % We reset all acronyms entries. % \begin{macrocode} \glsresetall @@ -3413,6 +3437,14 @@ Running "make install" installs the files in the local TeX tree. } % \end{macrocode} % +% \begin{macrocode} +%</class> +% \end{macrocode} +% +% \begin{macrocode} +%<*class|class-article> +% \end{macrocode} +% % \section{(Re)Definition of document commands that identify the article} % % The names of the authors of the different articles will appear at several @@ -3424,7 +3456,7 @@ Running "make install" installs the files in the local TeX tree. % This can be done only at the beginning of the document, in order to know the % characteristics of the current issue. % \begin{macrocode} -\AtBeginDocument{% +\AddToHook{begindocument}{% % \end{macrocode} % % We first create a token list containing the date of the current issue formated @@ -3476,7 +3508,6 @@ Running "make install" installs the files in the local TeX tree. % We increment the "\g_@@_articles_int" integer that counts the number of % articles in order to provide for each of them a unique bibliographic key. % \begin{macrocode} - \int_gincr:N \g_@@_articles_int \tl_gclear:N \g_@@_short_title_tl \tl_gclear:N \g_@@_header_title_tl \tl_gclear:N \g_@@_short_subtitle_tl @@ -3977,7 +4008,7 @@ Running "make install" installs the files in the local TeX tree. % instead of begin of the document in order some settings needed in preamble are % taken in account. % \begin{macrocode} -%<class>\AtEndPreamble{\file_input:n {\c_@@_configuration_file_string_tl}} +%<class>\AddToHook{begindocument/before}{\file_input:n {\c_@@_configuration_file_string_tl}} % \end{macrocode} % % \subsection{Miscellaneous} @@ -4353,7 +4384,7 @@ Running "make install" installs the files in the local TeX tree. % \begin{macrocode} \RenewDocumentCommand \newtheorem { O{} m } { - \AtBeginDocument{ + \AddToHook{begindocument}{ \tl_clear:N \l_@@_newtheorem_style_tl \tl_clear:N \l_@@_newtheorem_title_tl \tl_clear:N \l_@@_newtheorem_french_title_tl @@ -4582,7 +4613,7 @@ Running "make install" installs the files in the local TeX tree. } } } -\AfterEndPreamble{ +\AddToHook{begindocument/end}{ \ifcurrentbaselanguage{french}{\g_@@_french_crefname_tl}{} } % \end{macrocode} @@ -5197,7 +5228,7 @@ Running "make install" installs the files in the local TeX tree. % breaks fall where they may, even in the middle of a multi-line equation. If % needed, the ×\\*× command can be used to prohibit a pagebreak after a given line. % \begin{macrocode} -\AtEndPreamble{\allowdisplaybreaks} +\AddToHook{begindocument/before}{\allowdisplaybreaks} % \end{macrocode} % % The drawback of ×\allowdisplaybreaks× macro is it may happen we haven't @@ -5626,7 +5657,7 @@ Running "make install" installs the files in the local TeX tree. % header and footer on the page (and the following ones until the next article) % where the bibliography appears). % \begin{macrocode} -\AtEndPreamble{% +\AddToHook{begindocument/before}{% \defbibheading{_@@_subbibliography}[\refname]{% \section*{#1} }% @@ -5731,18 +5762,21 @@ Running "make install" installs the files in the local TeX tree. % is not robust in \pkg{kpfonts} code % (cf. \url{https://groups.google.com/d/msg/fr.comp.text.tex/hIi97ipK5qA/WJoPwvH-p1UJ}). % \begin{macrocode} -\ifkp@easyscsl -\DeclareRobustCommand{\itshape}{\not@math@alphabet\itshape\mathit% - \ifthenelse{\equal{\f@shape}{\scdefault}}{\fontshape{scsl}}{% - \fontshape\itdefault}\selectfont} -\fi +\sys_if_engine_pdftex:T +{ + \ifkp@easyscsl + \DeclareRobustCommand{\itshape}{\not@math@alphabet\itshape\mathit% + \ifthenelse{\equal{\f@shape}{\scdefault}}{\fontshape{scsl}}{% + \fontshape\itdefault}\selectfont} + \fi % \end{macrocode} % % We replace the \pkg{kpfonts}' \enquote{mathfrak} by the one from % \enquote{eufrak}, as the former doesn't provide Euler Fraktur digits. % \begin{macrocode} -\DeclareMathAlphabet\mathfrak{U}{euf}{m}{n} -\SetMathAlphabet\mathfrak{bold}{U}{euf}{b}{n} + \DeclareMathAlphabet\mathfrak{U}{euf}{m}{n} + \SetMathAlphabet\mathfrak{bold}{U}{euf}{b}{n} +} % \end{macrocode} % % \subsection{Related to \Pkg{hyperref}} @@ -5825,7 +5859,7 @@ Running "make install" installs the files in the local TeX tree. % \end{macrocode} % % \begin{macrocode} -\AfterEndPreamble{% +\AddToHook{begindocument/end}{% % \end{macrocode} % % If the cover production is asked, we automatically load some libraries, make @@ -5855,18 +5889,18 @@ Running "make install" installs the files in the local TeX tree. % Because articles' title are displayed thanks to the ×\chapter× command, we % have to format its layout. % \begin{macrocode} -\AfterEndPreamble{% +\AddToHook{begindocument/end}{% \titleformat{\chapter}[block] {\normalfont\centering}{}{0pt}{} \titlespacing*{\chapter}{0pt}{0pt}{0pt} } % \end{macrocode} % -% \Pkg{xy} performs category code changes of ×@× ×\AtBeginDocument× and this +% \Pkg{xy} performs category code changes of ×@× ×\AddToHook{begindocument}× and this % cause troubles (see \url{tex.stackexchange.com/q/303238/18401}). Hence, we % prohibit it. % \begin{macrocode} -\AtEndPreamble{% +\AddToHook{begindocument/before}{% \@ifpackageloaded{xy}{% \msg_error:nn{ %<class-article> nwejmart @@ -5877,6 +5911,16 @@ Running "make install" installs the files in the local TeX tree. } % \end{macrocode} % +% % By default, we switch the shorthand character ×"× off used by the Dutch and +% % German languages as they are source of many troubles, especially with the +% % ×tikzcd× environments. +% % \begin{macrocode} +% \AddToHook{begindocument/end}{% +% \shorthandoff{"}% +% \usetikzlibrary{babel}% +% } +% % \end{macrocode} +% % We now leave the \LaTeX3{} programming environment. % \begin{macrocode} \ExplSyntaxOff @@ -6734,7 +6778,6 @@ $clean_ext = "synctex.gz* run.xml tex.bak bbl bcf fdb_latexmk run tdo listing st #include:booktabs #include:mathtools #include:ntheorem -#include:rsfso #include:esvect #include:kpfonts #include:translations @@ -6945,8 +6988,7 @@ dutch % \Finale %%% Local Variables: -%%% mode: tex -%%% eval: (doctex-mode) +%%% mode: doctex %%% ispell-local-dictionary: "english" %%% TeX-command-default: "TeX" %%% TeX-master: t diff --git a/macros/latex/contrib/tugboat/ltubguid.ltx b/macros/latex/contrib/tugboat/ltubguid.ltx index d2947c0389..da93ceac25 100644 --- a/macros/latex/contrib/tugboat/ltubguid.ltx +++ b/macros/latex/contrib/tugboat/ltubguid.ltx @@ -1,4 +1,4 @@ -% $Id: ltubguid.ltx 375 2021-06-25 14:40:52Z karl $ +% $Id: ltubguid.ltx 386 2021-09-28 22:25:51Z karl $ % ltubguid.ltx - documentation for ltugboat classes. % % Copyright 1994-2021 TeX Users Group. @@ -528,11 +528,14 @@ Two caveats about these optional arguments: defines the \verb|verbatim| environment, as discussed next. \end{itemize} -Authors may wish to use a more featureful verbatim package, such as such -as \pkgname{verbatim}~\cite{Schoepf:verbatim:1996}, -\pkgname{listings}~\cite{pkg:listings}, or +Authors may wish to use a more featureful verbatim package, such as +\pkgname{listings}~\cite{pkg:listings} or \pkgname{fancyvrb}~\cite{pkg:fancyvrb}. This is ok; it just means the -\TUB\ optional-argument feature is not available. +\TUB\ optional-argument feature is not available. On the other hand, +please do not use the \pkgname{minted} package if possible; it is much +harder to customize and correct at the \TeX\ level, and the shell escape +requirement is troublesome. In any case, we will almost always wish to +print code listings in simple black, not colored or even grayscaled. If you use the \pkgname{listings} package, please specify: \begin{verbatim}[\small] @@ -721,21 +724,28 @@ As mentioned above, please load either \texttt{url} or (preferably) \texttt{hyperref} so that reasonable line breaking of urls can happen. Furthermore, for the printed (visible) \TUB\ page, nowadays we typically -omit a leading \texttt{http://} or \texttt{https://}. But for the link -to actually work in the output \PDF\ or \HTML, the protocol is required -(or it appears to be a local filesystem path). Therefore the +prefer to omit a leading \texttt{http://} or \texttt{https://}. But for +the link to actually work in the output \PDF\ or \HTML, the protocol is +required (or it appears to be a local filesystem path). Therefore the \texttt{ltugboat} class provides (as of version 2.23, released March~2020) commands \cs{tbsurl} for \texttt{https} and \cs{tbhurl} for -\texttt{http}.\footnote{They are simple two-line wrapper around -\cs{hyper@linkurl}, and are due to Ulrike Fischer. +\texttt{http}.\footnote{They are wrappers around \cs{hyper@linkurl}, and +are due to Ulrike Fischer. \url{https://github.com/latex3/hyperref/issues/125}\raggedright} For example, \verb|\tbsurl{tug.org}| typesets the text `\texttt{tug.org}' (with the usual url line breaks) as a link to \url{https://tug.org}. -Similarly, \verb|\tbhurl{mirror.ctan.org}| typesets the text -`\texttt{mirror.ctan.org}' as a link to \url{http://mirror.ctan.org}. +Similarly, \verb|\tbhurl{example.org}| typesets the text +`\texttt{example.org}' as a link to \url{http://example.org}. + +The correct protocol can be explicitly specified, and will also be +stripped for display. That is, \verb|\tbsurl{https://tug.org}| also +works. This can be particularly useful for bibliographies. However, an +incorrect protocol (\texttt{http} with \cs{tbsurl} or the converse) will +not be stripped, and will generate an invalid url. That's ok because +such an inconsistent specification cannot be handled reliably. \cs{tbsurl} and \cs{tbhurl} only add the protocol and make live links if \texttt{hyperref} is loaded. Without \texttt{hyperref}, they are merely @@ -745,8 +755,8 @@ output, the printed url without the protocol suffices. (When a user copies/pastes url text into a browser, it will normally work.) For \texttt{ftp}, \texttt{rsync}, and other protocols, it is best to -include them explicitly and use \cs{url}:\\ \verb|\url{ftp://tug.org}|,\\ -\verb|\url{rsync://tug.org}|, etc. +always include them explicitly and use \cs{url}:\\ +\verb|\url{ftp://tug.org}|,\\ \verb|\url{rsync://tug.org}|, etc. \subsection{Url shortcuts} \label{sec:urlshortcuts} @@ -801,7 +811,11 @@ four authors (thanks to Mico Loretan and Oren Patashnik). \textsf{@inproceedings} allows for citing a part, written by author~X, of a publication written by author~Y, and not just edited by~Y. -\item Defines an \textsf{@online} entry type as an alias for \textsf{@misc}. +\item For the \textsf{@misc} entry type, \textsf{editor} is accepted as +well as \textsf{author}. + +\item Defines entry types \textsf{@online} and \textsf{@software} as +aliases for \textsf{@misc}. \item Defines an \textsf{@ctan} entry type to reference packages on \CTAN, following the fields output by the \pkgname{ctanbib} script (in @@ -886,7 +900,7 @@ date. \label{fig:citation-macros} \end{figure} -Note that, if Tom, Dick, and Harry are a prolific team, there can +Furthermore, if Tom, Dick, and Harry are a prolific team, there can easily be more than one reference to their work in one year. In such a case, the citations will be (Tom, Dick, and Harry, 1990a), (Tom, Dick, and Harry, 1990b), and so on. These extra `a', `b', etc., tags diff --git a/macros/latex/contrib/tugboat/ltubguid.pdf b/macros/latex/contrib/tugboat/ltubguid.pdf Binary files differindex ea48ea3b36..02091c20d9 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 7fadb59d35..806a63ad57 100644 --- a/macros/latex/contrib/tugboat/tugboat.bst +++ b/macros/latex/contrib/tugboat/tugboat.bst @@ -1,25 +1,29 @@ -%%% $Id: tugboat.bst 375 2021-06-25 14:40:52Z karl $ +%%% $Id: tugboat.bst 379 2021-08-29 17:31:15Z karl $ %%% TUGboat changes are public domain. %%% %%% Modified for TUGboat from abbrvurl.bst: -%%% New entry types @ctan (see ctanbib) and @online (alias for @misc). +%%% New entry types: @ctan (see ctanbib); +%%% @online and @software (aliases for @misc). +%%% For @misc, the editor field is accepted along with author. %%% New field bookauthor for @incollection and @inproceedings. %%% Abbreviate "page(s)" to "p(p).", %%% "volume" to "vol.", -%%% "editor(s)" to "ed(s)". +%%% "editor(s)" to "ed(s).", +%%% "edition" to "ed.". %%% Output "Ph.D." rather than "PhD". %%% Output "No." and "no." for number field. %%% Omit spaces between author initials, like "A.B. Smith". -%%% Set urlintro="". -%%% Always use https://doi.org/ for the doi url, and omit doi: prefix -%%% (todo: doi urls not linked correctly). -%%% Truncate long author lists in format.names (max.names, trunc.num) -%%% and omit "and" from author lists, per Oren P. +%%% Set urlintro="" and onlinestring="". +%%% Always use https://doi.org/ for the doi url; omit "doi:" from output. +%%% Truncate long author lists in format.names (max.names, trunc.num); +%%% omit "and" from author lists, per Oren P. %%% Use \emph instead of \em so we get automatic italic corrections. %%% New fields for editors: %%% "journaltie" - ~ instead of space after journal name. %%% "newpage" - force page break after entry; -%%% "prebibitem" - material output before \bibitem, with newline appended. +%%% "nowarning" - if set, omit empty field warnings from output.check. +%%% "prebibitem" - material output before \bibitem, with newline appended +%%% (for example, section headings). %%% "urlnewline" - force line break before url value; %%% %%% --karl, originally created 24jul18. @@ -76,8 +80,10 @@ ENTRY date % ctan urldate % ctan version % ctan + % journaltie % tub newpage % tub + nowarning % tub prebibitem % tub urlnewline % tub } @@ -107,13 +113,13 @@ FUNCTION {init.urlbst.variables} % String constants, which you _might_ want to tweak. "" 'urlintro := % prefix before URL; typically "Available from:" or "URL": - "online" 'onlinestring := % indication that resource is online; typically "online" + "" 'onlinestring := % indication that resource is online; typically "online" "cited " 'citedstring := % indicator of citation date; typically "cited " "[link]" 'linktextstring := % dummy link text; typically "[link]" "http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref "arXiv:" 'eprintprefix := % text prefix printed before eprint ref; typically "arXiv:" "https://doi.org/" 'doiurl := % prefix to make URL from DOI - "doi:" 'doiprefix := % text prefix printed before DOI ref; typically "doi:" + "" 'doiprefix := % text prefix printed before DOI ref; typically "doi:" "http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl := % prefix to make URL from PUBMED "PMID:" 'pubmedprefix := % text prefix printed before PUBMED ref; typically "PMID:" @@ -318,7 +324,12 @@ FUNCTION {output} FUNCTION {output.check} { 't := duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } + { pop$ + nowarning empty$ + { "empty " t * " in " * cite$ * warning$ } + 'skip$ + if$ + } { t 'last.output.check := output.nonnull } if$ @@ -656,8 +667,8 @@ FUNCTION {format.edition} { edition empty$ { "" } { output.state mid.sentence = - { edition "l" change.case$ " edition" * } - { edition "t" change.case$ " edition" * } + { edition "l" change.case$ " ed." * } + { edition "t" change.case$ " ed." * } if$ } if$ @@ -940,7 +951,7 @@ FUNCTION {format.eprint} FUNCTION {format.doi} { doi empty$ { "" } - { doi doiurl make.href } + { doiprefix doi * doiurl doi * make.href } if$ } @@ -1291,7 +1302,18 @@ FUNCTION {mastersthesis} FUNCTION {misc} { output.bibitem - format.authors output + % originally just: + % format.authors output + author empty$ + { + editor empty$ + 'skip$ + { format.editors output.nonnull } + if$ + } + { format.authors output.nonnull } + if$ + % title howpublished new.block.checkb title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title output @@ -1307,6 +1329,9 @@ FUNCTION {misc} FUNCTION {online} { misc } +FUNCTION {software} +{ misc } + FUNCTION {phdthesis} { output.bibitem format.authors "author" output.check @@ -1615,8 +1640,14 @@ FUNCTION {presort} { type$ "proceedings" = 'editor.organization.sort { type$ "manual" = - 'author.organization.sort - 'author.sort + { author.organization.sort } + { type$ "online" = + type$ "misc" = + or + { author.editor.sort } + { author.sort } + if$ + } if$ } if$ diff --git a/macros/latex/contrib/tugboat/tugboat.dtx b/macros/latex/contrib/tugboat/tugboat.dtx index 6b627b723e..a37201087c 100644 --- a/macros/latex/contrib/tugboat/tugboat.dtx +++ b/macros/latex/contrib/tugboat/tugboat.dtx @@ -1,5 +1,5 @@ % \iffalse (this is a meta-comment (so they say)) -% $Id: tugboat.dtx 376 2021-06-27 16:27:44Z karl $ +% $Id: tugboat.dtx 392 2021-10-12 21:31:32Z karl $ % tugboat.dtx - main source for LaTeX TUGboat classes. % % Copyright 1994-2021 TeX Users Group. @@ -28,7 +28,7 @@ %<ltugboatsty>\ProvidesPackage{ltugboat} %<ltugprocsty>\ProvidesPackage{ltugproc} %<ltugcomn> \ProvidesPackage{ltugcomn} - [2021-06-27 v2.25 + [2021-10-12 v2.26 %<ltugboatcls> TUGboat journal class% %<ltugproccls> TUG conference proceedings class% %<ltugboatsty|ltugprocsty> TUG compatibility package% @@ -346,11 +346,20 @@ % We want to use \texttt{hyperref}'s \cs{texorpdfstring}, e.g., in the % \texttt{draft} option above. If \texttt{hyperref} is not loaded, % define our own trivial fallback to expand to the \TeX\ (first) argument. +% +% Similarly, disable \acro if we have hyperref, commonly used in sections. % \begin{macrocode} \AtBeginDocument{% \ifx\undefined\texorpdfstring \DeclareRobustCommand{\texorpdfstring}[2]{#1}% \fi + % + \ifx\undefined\pdfstringdefDisableCommands\else + \pdfstringdefDisableCommands{% + \let\acro\relax + % lots more could be added. + }% + \fi } % \end{macrocode} % @@ -706,6 +715,7 @@ \def\Ghostscript{Ghost\-script} \def\GNU{\acro{GNU}} \def\GUI{\acro{GUI}} +\DeclareRobustCommand{\HarfBuzz}{Harf\discretionary{-}{}{\kern.077em}Buzz} \def\Hawaii{Hawai`i} \def\HTML{\acro{HTML}} \def\HTTP{\acro{HTTP}} @@ -896,7 +906,7 @@ \ifdim \fontdimen1\font>0pt % XeTeX logo needs tinkering when slanted/italic font. \def\XekernbeforeE{-.11em}% - \def\XekernafterE{-.11em}% + \def\XekernafterE{-.16em}% \dp1=-.17ex \fi \lower\dp0\hbox{\raise\dp1\hbox{\kern\XekernbeforeE\tubreflect{E}}}% @@ -1198,13 +1208,36 @@ \else % This hyperref hook-in is due to Ulrike Fischer. % \url{https://github.com/latex3/hyperref/issues/125}. + % \tb[sh]url@ are defined next. \DeclareRobustCommand*{\tbsurl}{\hyper@normalise\tbsurl@}% - \def\tbsurl@#1{\hyper@linkurl{\Hurl{#1}}{https://#1}}% \DeclareRobustCommand*{\tbhurl}{\hyper@normalise\tbhurl@} - \def\tbhurl@#1{\hyper@linkurl{\Hurl{#1}}{http://#1}}% \fi } % +% Outside \AtBeginDocument, back at the top level of the dtx, +% turn on expl syntax for the main definitions of \tb[sh]url. We want +% to auto-remove an explicit protocol in case it +% was given. Only the correct protocol is removed, the incorrect +% protocol (\tbsurl{http://}) generates an invalid link. That's ok +% because the link wouldn't be correct anyway. +\ExplSyntaxOn +\def\tbsurl@#1 % https + { + \str_set:Nn\l_tmpa_str{#1} + \str_remove_once:Nn\l_tmpa_str{https://} + \expandafter\hyper@linkurl\expandafter{\expandafter\Hurl\expandafter + {\l_tmpa_str}}{https://\l_tmpa_str} + } + +\def\tbhurl@#1 % http + { + \str_set:Nn\l_tmpa_str{#1} + \str_remove_once:Nn\l_tmpa_str{http://} + \expandafter\hyper@linkurl\expandafter{\expandafter\Hurl\expandafter + {\l_tmpa_str}}{http://\l_tmpa_str} + } +\ExplSyntaxOff +% % Make \! work in text mode. \DeclareRobustCommand{\!}{\ifmmode\mskip-\thinmuskip \else\kern-0.16667em \fi} % @@ -1837,7 +1870,7 @@ \def\|{\unskip\hfil\break}% \def\\{\endgraf}% \def\phone{\rm Phone: }% - \def\tubmultipleaffilauthor{\\\hspace*{1em}}% + \def\tubmultipleaffilauthor{\unskip,\\\hspace*{1em}}% \rm\@signature}% }% \ifnum\authornumber<0 \endgroup\fi @@ -1847,14 +1880,16 @@ % % The idea here is that if multiple authors share affiliation % information, we need only typeset the affiliation once. We separate by -% commas for the \cs{maketitle}, and put on separate lines in the -% \cs{makesignature}. Similarly, within \cs{netaddress}, -% |!tubmultipleaffilnet| separates with a space before and after the -% comma, while . (All this per bb.) See |tb122childs-trotter.ltx| for an -% example. +% commas for the \cs{maketitle}, and put on separate lines, also with commas, +% in the \cs{makesignature}. +% +% Similarly, within \cs{netaddress}, |!tubmultipleaffilnet| separates +% with a space before and after the +% comma. (All this per bb.) See |tb122childs-trotter.ltx|, +% |tb131sojka-czech.ltx| for examples. % % \begin{macrocode} -\def\tubmultipleaffilauthor{\unskip, \ignorespaces}% +\def\tubmultipleaffilauthor{\unskip,\ \ignorespaces}% \def\tubmultipleaffilnet{\unskip\textrm{\,,\ \ignorespaces}} % \end{macrocode} % @@ -2772,11 +2807,15 @@ % \end{macrocode} % % Also use \cs{tubcaptionfonts} for the caption -% labels, and put the label itself (e.g., ``Figure 1'') in bold. +% labels, and put the label (e.g., ``Figure 1'') in bold. +% If the \texttt{listings} package is being used, bold for its +% label too; this \cs{def} is too early, but maybe listings will +% play nice later. % % \begin{macrocode} \def\fnum@figure{{\tubcaptionfonts \bf \figurename\nobreakspace\thefigure}} \def\fnum@table{{\tubcaptionfonts \bf \tablename\nobreakspace\thetable}} +\def\lstlistingnamestyle{\bfseries} % \end{macrocode} % % Let's reduce the default space above captions a bit, and give it some @@ -3009,7 +3048,7 @@ % % Finally, if |microtype| is loaded, we want it to be deactivated in % verbatim blocks. It often manipulates a leading |\| rather too much, -% and messes with the visible fixed-width alignment. +% thus messing with the visible fixed-width alignment. % \begin{macrocode} \AtBeginDocument{% \@ifpackageloaded{microtype} @@ -3356,6 +3395,7 @@ % \begin{macrocode} % \def\tubdoiprefix{10.47397/tb} % the number crossref assigned us +\def\tubabovedoi{} % fudge spacing or whatever. % \def\tubtypesetdoi{\iftubomitdoioption\else % if not explicit omission ... \iftubfinaloption % do this if [final], even if pageno>900 @@ -3364,6 +3404,7 @@ doi.org/\tubdoiprefix/\volno-\issno/\jobname}% \scriptsize \vskip\baselineskip + \tubabovedoi \iftubsecondcolstart \moveright \tubcolwidthandgutter \fi \rlap{\expandafter\tbsurl\expandafter{\thedoi}}% \vss @@ -3556,7 +3597,7 @@ % \subsection{Initialization} % % If we're going to use Harvard-style bibliographies, we set up the -% bibliography style: the user doesn't get any choice. +% bibliography style: the user doesn't get any choice. (Not recommended.) % % \begin{macrocode} \if@Harvardcite diff --git a/macros/latex/contrib/tugboat/tugboat.pdf b/macros/latex/contrib/tugboat/tugboat.pdf Binary files differindex 0962006255..97c1f134f8 100644 --- a/macros/latex/contrib/tugboat/tugboat.pdf +++ b/macros/latex/contrib/tugboat/tugboat.pdf diff --git a/macros/latex/contrib/yathesis/CHANGELOG.md b/macros/latex/contrib/yathesis/CHANGELOG.md index a490efc9b8..3884fe6683 100644 --- a/macros/latex/contrib/yathesis/CHANGELOG.md +++ b/macros/latex/contrib/yathesis/CHANGELOG.md @@ -1,5 +1,12 @@ # [Unreleased] +# [1.0.9] - 2021-10-13 + +## Fixed +- Bug gh #90 (https://git.io/JKO3L). +- Bug gh #87 (https://git.io/JKO3Z). +- Bug gh #86 (https://git.io/JKO3W). + # [1.0.8] - 2021-07-13 ## Fixed @@ -96,7 +103,6 @@ ## Fixed - Bug gh #73. - # [1.0.0] - 2020-03-26 ## Added @@ -115,7 +121,6 @@ ## Fixed - Several bug fixes (among others gh #65 and #67). - # [0.99u] - 2019-03-28 ## Added @@ -140,43 +145,36 @@ ## Fixed - Several bug fixes (among others gh #43). - # [0.99t] - 2018-07-09 ## Fixed - Several bug fixes. - # [0.99s] - 2018-06-22 ## Fixed - Several bug fixes (among others gh #58 and #60). - # [0.99s] - 2018-06-21 ## Fixed - Several bug fixes (among others gh #59). - # [0.99r] - 2018-06-02 ## Fixed - Several bug fixes. - # [0.99q] - 2018-05-04 ## Removed - Useless files on CTAN (no functional changes). - # [0.99q] - 2018-04-10 ## Fixed - Several bug fixes (among others gh #57). - # [0.99p] - 2016-12-08 ## Added @@ -188,7 +186,6 @@ ## Changed - Documentation revised and extended. - # [0.99o] - 2016-10-30 ## Added @@ -206,14 +203,12 @@ ## Fixed - Several bug fixes. - # [0.99n] - 2016-06-11 ## Changed - Documentation revised and extended. - Reorganization and change of names of specimens and templates. - # [0.99m] - 2016-05-22 ## Added @@ -221,12 +216,10 @@ - Specimens and templates included in the PDF of the documentation as `.zip` archive. - ## Changed - Documentation revised and extended. - Reorganization and change of names of specimens and templates. - # [0.99l] - 2014-10-23 ## Changed @@ -248,7 +241,6 @@ ## Fixed - Several bug fixes. - # [0.99j] - 2014-07-18 ## Added diff --git a/macros/latex/contrib/yathesis/README.md b/macros/latex/contrib/yathesis/README.md index cf129bfa68..c799aa10d3 100644 --- a/macros/latex/contrib/yathesis/README.md +++ b/macros/latex/contrib/yathesis/README.md @@ -1,6 +1,6 @@ ----------------------------------------------------------------------- -- `yathesis` --- Yet Another Thesis Class, version 1.0.8 +- `yathesis` --- Yet Another Thesis Class, version 1.0.9 - E-mail: `denis.bitouze@univ-littoral.fr` - Released under the LaTeX Project Public License v1.3c or later. See http://www.latex-project.org/lppl.txt diff --git a/macros/latex/contrib/yathesis/doc/yathesis-fr.pdf b/macros/latex/contrib/yathesis/doc/yathesis-fr.pdf Binary files differindex 6533156b70..e7bf632e75 100644 --- a/macros/latex/contrib/yathesis/doc/yathesis-fr.pdf +++ b/macros/latex/contrib/yathesis/doc/yathesis-fr.pdf diff --git a/macros/latex/contrib/yathesis/exemples/specimen/latexmkrc b/macros/latex/contrib/yathesis/exemples/specimen/latexmkrc index 334747a898..6a0624c807 100644 --- a/macros/latex/contrib/yathesis/exemples/specimen/latexmkrc +++ b/macros/latex/contrib/yathesis/exemples/specimen/latexmkrc @@ -20,4 +20,4 @@ $makeindex = 'texindy -L french'; push @generated_exts, 'acn', 'acr', 'alg', 'bbl', 'bcf', 'fls', 'gl*', 'idx', 'ind', 'ist', 'sbl*', 'sl*', 'sym*' ; -$clean_ext .= 'synctex.gz* run.xml tex.bak out bbl bcf fdb_latexmk run tdo listing *~ lo* unq mw' ; +$clean_ext .= 'synctex.gz* run.xml tex.bak out bbl bcf fdb_latexmk run tdo listing *~ lo* unq mw xdy' ; diff --git a/macros/latex/contrib/yathesis/exemples/specimen/these.pdf b/macros/latex/contrib/yathesis/exemples/specimen/these.pdf Binary files differindex 4a7f76b770..e7c4b46576 100644 --- a/macros/latex/contrib/yathesis/exemples/specimen/these.pdf +++ b/macros/latex/contrib/yathesis/exemples/specimen/these.pdf diff --git a/macros/latex/contrib/yathesis/exemples/specimen/these.tex b/macros/latex/contrib/yathesis/exemples/specimen/these.tex index 9226936fc9..5963e4e08e 100644 --- a/macros/latex/contrib/yathesis/exemples/specimen/these.tex +++ b/macros/latex/contrib/yathesis/exemples/specimen/these.tex @@ -184,11 +184,11 @@ % % Date de la soutenance, au format {jour}{mois}{année} donnés sous forme de % nombres -\date{1}{1}{2015} +\date{1}{1}{2022} % % (Facultatif) Date de la soumission, au format {jour}{mois}{année} donnés sous % forme de nombres -\submissiondate{1}{10}{2014} +\submissiondate{1}{10}{2021} % % (Facultatif) Sujet pour les méta-données du PDF \subject[Chaotic Laugh]{Rire chaotique} diff --git a/macros/latex/contrib/yathesis/source/yathesis-samples-templates.dtx b/macros/latex/contrib/yathesis/source/yathesis-samples-templates.dtx index 7bb5006f4d..50d1e95d9c 100644 --- a/macros/latex/contrib/yathesis/source/yathesis-samples-templates.dtx +++ b/macros/latex/contrib/yathesis/source/yathesis-samples-templates.dtx @@ -332,14 +332,14 @@ % nombres %COMMENT %<flat-template|characteristics-master>\date{}{}{} -%<characteristics-sample|flat-sample>\date{1}{1}{2015} +%<characteristics-sample|flat-sample>\date{1}{1}{2022} %<<COMMENT % % (Facultatif) Date de la soumission, au format {jour}{mois}{année} donnés sous % forme de nombres %COMMENT %<flat-template|characteristics-master>%\submissiondate{}{}{} -%<characteristics-sample|flat-sample>\submissiondate{1}{10}{2014} +%<characteristics-sample|flat-sample>\submissiondate{1}{10}{2021} %<<COMMENT % % (Facultatif) Sujet pour les méta-données du PDF diff --git a/macros/latex/contrib/yathesis/source/yathesis.dtx b/macros/latex/contrib/yathesis/source/yathesis.dtx index 7b59e2b682..75a07ebde0 100644 --- a/macros/latex/contrib/yathesis/source/yathesis.dtx +++ b/macros/latex/contrib/yathesis/source/yathesis.dtx @@ -23,7 +23,7 @@ %<*readme> ----------------------------------------------------------------------- -- `yathesis` --- Yet Another Thesis Class, version 1.0.8 +- `yathesis` --- Yet Another Thesis Class, version 1.0.9 - E-mail: `denis.bitouze@univ-littoral.fr` - Released under the LaTeX Project Public License v1.3c or later. See http://www.latex-project.org/lppl.txt @@ -62,6 +62,270 @@ Typesetting the documentation of the class requires: latexmk -norc -r ./latexmkrc yathesis-fr %</readme> +%<*changelog> +# [Unreleased] + +# [1.0.9] - 2021-10-13 + +## Fixed +- Bug gh #90 (https://git.io/JKO3L). +- Bug gh #87 (https://git.io/JKO3Z). +- Bug gh #86 (https://git.io/JKO3W). + +# [1.0.8] - 2021-07-13 + +## Fixed +- Bug gh #85 (https://git.io/JCTjv). +- Bug gh #84 (https://git.io/JCTpu). +- Bug gh #83 (https://git.io/JYfz8). + +## Changed +- The fix of #85 above renders ineffective the `\includeonly` command when the + option `\localbibs` is used. This is an incompatible change but only for + a command that is used only temporarily, so we don't increment the major + version number. +- Again expose `\listoflistings` in the samples. + +# [1.0.7] - 2021-03-24 + +## Removed +- Useless and confusing file in the samples removed (no functional changes). + +## Changed +- Don't expose `\listoflistings` in the samples (bug gh #83, + https://git.io/JYfz8). + +# [1.0.6] - 2021-03-23 + +## Added +- Command allowing, for each chapter, to specify a text inserted between its + head and its possible automatic local table of contents (issue gh #82, + https://git.io/JYeVe). + +## Changed +- Table listing the members of the committee: + - with \textwidth as width, + - with 3 and not 4 columns in case president is not specified. +- Documentation revised. + +## Fixed +- Bug gh #81 (https://git.io/JYeVY). + +# [1.0.5] - 2021-02-05 + +## Changed +- The class now relies on the new LaTeX core hooks. +- Documentation revised. + +## Fixed +- Setting the main language was not taken into account by some packages + (e.g. `csquotes`). + +# [1.0.4] - 2020-10-14 + +## Changed +- Documentation revised. +- The class now relies on `datetime2` and not on `datetime`. + +## Fixed +- Bug gh #76 (https://git.io/JTTpX). +- Bug gh #77 (https://git.io/JTTpu). +- Bug gh #78 (https://git.io/JTTpQ). + +# [1.0.3] - 2020-06-16 + +## Changed +- Documentation revised. +- Specimens improved. +- Package `titlesec` used instead of `titleps`: possible (hopefully slight) layout discrepancies. + +## Fixed +- Bug gh #74 (https://git.io/Jf64U). +- Bug gh #65 (https://git.io/Jf64k), continuation and (hopefully) ending. + +# [1.0.2] - 2020-04-13 + +## Changed + +- Specimens now highlight the automatic local tocs and local bibs features of + the class. +- Verso of the asbtract page now with empty footer. +- Completion file for TeXstudio improved and updated. + +## Fixed +- Switches between pages styles robustified. +- Bug #65 now for bibtex as well. +- French rules were applied to glossaries and acronyms even in case of + `mainlanguage=english`. +- Subtitles were too close to multiline titles. + +# [1.0.1] - 2020-03-28 + +## Changed +- Documentation revised. +- Specimens improved. + +## Fixed +- Bug gh #73. + + +# [1.0.0] - 2020-03-26 + +## Added +- (Partial) CHANGELOG file (following https://keepachangelog.com/en/1.0.0/). +- Semantic versionning (following https://semver.org/). +- Colophon automatically added to the thesis, with possibility to: + - remove it, + - change: + - its location from 2nd cover to 3rd one, + - its content. + +## Changed +- `\disclaimer` replaced by (and alias of) `\disclaimertext`. +- Warnings and error messages now contain (expected) accented characters. + +## Fixed +- Several bug fixes (among others gh #65 and #67). + + +# [0.99u] - 2019-03-28 + +## Added +- `\maketitle` option `noaim` for (slight) customization of the title pages. +- `\institute`, `\coinstitute` and `\company` option `nologo` for (slight) + customization of the title pages (gh #51). + +## Changed +- Documentation revised and extended. +- Key expressions "Titre de la thèse" and "Titre de l’habilitation à diriger les + recherches" (and English equivalents) now empty. +- Key expression "Directeurs" (and English equivalent) introducing the list of + the "HDR" directors now replaced by "Habilitation dirigée par" (and English + equivalent). +- Options `noinstitute`, `nodoctoralschool`, `nolaboratory`, `nodate`, + `noacademicfield`: now turn off on title pages the display of the + corresponding elements (as well as the co-institute for `noinstitute` and + specialty for `noacademicfield`). +- On the title page (s) in French, automatic gender agreement in expressions + keys introducing the groups member of the committee. + +## Fixed +- Several bug fixes (among others gh #43). + + +# [0.99t] - 2018-07-09 + +## Fixed +- Several bug fixes. + + +# [0.99s] - 2018-06-22 + +## Fixed +- Several bug fixes (among others gh #58 and #60). + + +# [0.99s] - 2018-06-21 + +## Fixed +- Several bug fixes (among others gh #59). + + +# [0.99r] - 2018-06-02 + +## Fixed +- Several bug fixes. + + +# [0.99q] - 2018-05-04 + +## Removed +- Useless files on CTAN (no functional changes). + + +# [0.99q] - 2018-04-10 + +## Fixed +- Several bug fixes (among others gh #57). + + +# [0.99p] - 2016-12-08 + +## Added +- `\chapter` and `\section` have an extra optional argument for an alternative + title in header different from the one in the ToC. +- Simplification of the use of all starred structuring commands (their + substructuring commands don't need to be starred). + +## Changed +- Documentation revised and extended. + + +# [0.99o] - 2016-10-30 + +## Added +- Automatic local (by chapter) tables of contents (thanks to Jean-François + Burnol's etoc and help): option `localtocs` (gh #45). +- Automatic local (by chapter) bibliographies: option `localbibs`. + +## Changed +- Documentation revised and revised and extended. (index of concepts). +- English translation of "MCF" ("Associate Professor" instead of "Lecturer"). + +## Removed +- Useless warning from `iflang` package. + +## Fixed +- Several bug fixes. + + +# [0.99n] - 2016-06-11 + +## Changed +- Documentation revised and extended. +- Reorganization and change of names of specimens and templates. + + +# [0.99m] - 2016-05-22 + +## Added +- Documentation can be compiled with `pdflatex`. +- Specimens and templates included in the PDF of the documentation as `.zip` + archive. + + +## Changed +- Documentation revised and extended. +- Reorganization and change of names of specimens and templates. + + +# [0.99l] - 2014-10-23 + +## Changed +- Documentation revised and extended. +- Reorganization and change of names of specimens and templates. + +# [0.99k] - 2014-10-01 + +## Added +- Macro \submissiondate + +## Changed +- Documentation revised and extended. +- Page numbers on first page of each chapters (with numberred pages). + +## Removed +- Class option `bookmark`. + +## Fixed +- Several bug fixes. + + +# [0.99j] - 2014-07-18 + +## Added +- Initial CTAN release of the `yathesis` class (2014-07-27). +%</changelog> %<*internal> \fi \def\nameofplainTeX{plain} @@ -70,8 +334,8 @@ Typesetting the documentation of the class requires: \fi %</internal> %<*class|install> -\def\yathesisversion{1.0.8} -\def\yathesisdate{2021-07-13} +\def\yathesisversion{1.0.9} +\def\yathesisdate{2021-10-13} %</class|install> %<*install> \input docstrip.tex @@ -137,6 +401,10 @@ This work consists of the file yathesis.dtx \nopreamble\nopostamble \file{README.md}{\from{\jobname.dtx}{readme}} }% +\generate{ + \nopreamble\nopostamble + \file{CHANGELOG.md}{\from{\jobname.dtx}{changelog}} +}% \usedir{tex/latex/\YAD@classname} \generate{% \file{\YAD@classname.cls}{\from{\jobname.dtx}{class}} @@ -1852,9 +2120,9 @@ This work consists of the file yathesis.dtx % On fait en sorte que la clé "corporation", obsolète et remplacée par la clé % "corps", soit un alias de ce dernier. % \begin{macrocode} - % \ifthenelse{\equal{\cmdKV@YAD@corporation}{}}{% + % \YAD@ifemptyorundef{\cmdKV@YAD@corporation}{% % }{% - % \ifthenelse{\equal{\cmdKV@YAD@corps}{}}{% + % \YAD@ifemptyorundef{\cmdKV@YAD@corps}{% % \yadsetup{#1,corps=\cmdKV@YAD@corporation}% % }{% % }% @@ -2263,7 +2531,7 @@ This work consists of the file yathesis.dtx \ifthenelse{\DTLiseq{\YAD@committeemember@corps}{}}{% \YAD@committeemember@affiliation% }{% - \ifthenelse{\equal{\YAD@committeemember@sepcorpaffil}{}}{% + \YAD@ifemptyorundef{\YAD@committeemember@sepcorpaffil}{% \YAD@if@starts@with@vowel{\YAD@committeemember@affiliation}{\YAD@al}{\YAD@au}\YAD@committeemember@affiliation% }{% \YAD@committeemember@sepcorpaffil\YAD@committeemember@affiliation% @@ -2530,7 +2798,7 @@ This work consists of the file yathesis.dtx }% % \boolfalse{YAD@nolink}% \yadsetup{##1}% - \ifthenelse{\equal{\cmdKV@YAD@url}{}}{% + \YAD@ifemptyorundef{\cmdKV@YAD@url}{% \ifdraft{% \YAD@reach@file{% \YAD@texte% @@ -2561,7 +2829,7 @@ This work consists of the file yathesis.dtx % \begin{macrocode} \csdef{print#2address}{% \yadsetup{##1}% - \ifthenelse{\equal{\cmdKV@YAD@address}{}}{% + \YAD@ifemptyorundef{\cmdKV@YAD@address}{% \YAD@reach@file{\YAD@generic@argument@translate{address#2}}% }{% \YAD@reach@file{\cmdKV@YAD@address}% @@ -2573,7 +2841,7 @@ This work consists of the file yathesis.dtx % \begin{macrocode} \csdef{print#2telephone}{% \yadsetup{##1}% - \ifthenelse{\equal{\cmdKV@YAD@telephone}{}}{% + \YAD@ifemptyorundef{\cmdKV@YAD@telephone}{% \YAD@reach@file{\YAD@generic@argument@translate{telephone#2}}% }{% \YAD@reach@file{\cmdKV@YAD@telephone}% @@ -2585,7 +2853,7 @@ This work consists of the file yathesis.dtx % \begin{macrocode} \csdef{print#2fax}{% \yadsetup{##1}% - \ifthenelse{\equal{\cmdKV@YAD@fax}{}}{% + \YAD@ifemptyorundef{\cmdKV@YAD@fax}{% \YAD@reach@file{\YAD@generic@argument@translate{fax#2}}% }{% \YAD@reach@file{\cmdKV@YAD@fax}% @@ -2598,7 +2866,7 @@ This work consists of the file yathesis.dtx % \begin{macrocode} \csdef{print#2email}{% \YAD@reach@file{% - \ifthenelse{\equal{\cmdKV@YAD@email}{}}{% + \YAD@ifemptyorundef{\cmdKV@YAD@email}{% % \ifbool{YAD@nolink}{% % \YAD@generic@argument@translate{#2email}% % }{% @@ -2647,11 +2915,12 @@ This work consists of the file yathesis.dtx }{% }% \renewcommand*\YAD@logo{% - \ifthenelse{\equal{\cmdKV@YAD@logo}{}}{% + \YAD@ifemptyorundef{\cmdKV@YAD@logo}{% \YAD@reach@file{\YAD@generic@argument@translate{logo#2}}% }{% \YAD@reach@file{% \includegraphics[height=\cmdKV@YAD@logoheight]{\cmdKV@YAD@logo}% + \renewcommand*\cmdKV@YAD@logo{}% }% }% }% @@ -2660,7 +2929,7 @@ This work consists of the file yathesis.dtx % \ifbool{YAD@nolink}{% % \YAD@logo% % }{% - \ifthenelse{\equal{\cmdKV@YAD@url}{}}{% + \YAD@ifemptyorundef{\cmdKV@YAD@url}{% % \YAD@href{www.#2.fr}{ \YAD@logo% % }% @@ -2670,7 +2939,7 @@ This work consists of the file yathesis.dtx % }% \fi% \setlength\cmdKV@YAD@logoheight{\YAD@default@logoheight}% - \boolfalse{YAD@nologo} + \boolfalse{YAD@nologo}% \booltrue{YAD@logo@before}% }% }% @@ -3139,7 +3408,7 @@ This work consists of the file yathesis.dtx % est exprimée en les même termes que le \Package{tocvsec2} (désormais non % chargé). On lui applique le style de page propre à la partie liminaire du % document, notamment début de la prise en compte des chapitres et sections -% (numérotés ou pas) dans la table des matières. +% (numérotés ou pas) dans la table des matières. % % \begin{macro}{\tableofcontents} % \begin{macrocode} @@ -3320,7 +3589,7 @@ This work consists of the file yathesis.dtx % \end{macrocode} % \end{macro} % Par défaut, au début du document rien n'est numéroté et les chapitres ne -% débutent pas par des tables des matières locales. +% débutent pas par des tables des matières locales. % \begin{macrocode} \AddToHook{begindocument}{% \setcounter{secnumdepth}{-10}% @@ -5001,7 +5270,7 @@ This work consists of the file yathesis.dtx % Les commandes et styles suivants, ainsi que toute la machinerie permettant de % faire débuter les chapitres par leurs tables des matières locales s'appuient % sur le \pkg{etoc} de Jean-François Burnol (qui a aimablement fourni le code -% suivant). +% suivant). % \begin{macrocode} % it will be easy to globally shift the TOC horizontally if needed \def\YAD@leftmargin {0pt} @@ -5083,14 +5352,14 @@ This work consists of the file yathesis.dtx \fi \cleardoublepage% }% - % + % \etocsetstyle{part} {} {\addpenalty {-\@highpenalty}% \addvspace \YAD@bigvskip \leavevmode {\large \bfseries % use a group to limit font change \interlinepenalty\@M \etocifnumbered{\etocnumber\hspace{1em}}{}% \etocname \nobreak\hfil\makebox[-\parfillskip][r]{\etocpage}}\par \nobreak } {} {} - % + % \etocsetstyle{chapter} {\advance\leftskip\YAD@numwidthB\relax} {\addpenalty {-\@highpenalty }% \vskip \YAD@globalmedvskip\relax @@ -5101,7 +5370,7 @@ This work consists of the file yathesis.dtx \bfseries\etocname \nobreak\hfil\makebox[-\parfillskip][r]{\etocpage}\par }% \penalty \@highpenalty } {} {\advance\leftskip-\YAD@numwidthB\relax} - % + % \YAD@setlinestyle {section}{\YAD@numwidthC}% \YAD@setlinestyle {subsection}{\YAD@numwidthD}% \YAD@setlinestyle {subsubsection}{\YAD@numwidthE}% @@ -5170,7 +5439,7 @@ This work consists of the file yathesis.dtx \leavevmode\leaders\hrule\@height\p@\hfill\kern\z@\par \bigskip \if@restonecol \twocolumn \fi } - % % + % % \etocsetstyle{section} {% \advance\leftskip\YAD@numwidthC\relax% } {% @@ -5194,7 +5463,7 @@ This work consists of the file yathesis.dtx {} {% \advance\leftskip-\YAD@numwidthC\relax% } - % % + % % \YAD@setlinestyle {subsection}{\YAD@numwidthD}% \YAD@setlinestyle {subsubsection}{\YAD@numwidthE}% \YAD@setlinestyle {paragraph}{\YAD@numwidthF}% @@ -5211,7 +5480,7 @@ This work consists of the file yathesis.dtx % % \begin{macrocode} \newcommand*\YAD@computenumwidths@ [2] {% #1 pour `etoc' ou `local', #2=pour le - % \kern + % \kern \begingroup \def\YAD@numwidthB {0pt}% \def\YAD@numwidthC {0pt}% @@ -5238,7 +5507,7 @@ This work consists of the file yathesis.dtx \etocsetstyle{subparagraph}{} {\setbox0\hbox{\etocthenumber\kern#2}} {\ifdim\wd0>\YAD@numwidthG\edef\YAD@numwidthG{\the\wd0}\fi}{}% - % + % \etocsettocstyle{} {\global\let\YAD@numwidthB\YAD@numwidthB \global\let\YAD@numwidthC\YAD@numwidthC @@ -5517,7 +5786,11 @@ This work consists of the file yathesis.dtx \let\YAD@ORI@sectionmark\sectionmark% \renewcommand\sectionmark[1]{}% \YAD@ORI@section{#3}% - \YAD@ORI@sectionmark{#2}% + \ifbool{YAD@nonnumbered@section}{% + \YAD@ORI@sectionmark{#2}% + }{% + \YAD@ORI@sectionmark{\thesection. #2}% + }% \let\sectionmark\YAD@ORI@sectionmark% }% }{% @@ -5527,7 +5800,11 @@ This work consists of the file yathesis.dtx \let\YAD@ORI@sectionmark\sectionmark% \renewcommand\sectionmark[1]{}% \YAD@ORI@section[#1]{#3}% - \YAD@ORI@sectionmark{#2}% + \ifbool{YAD@nonnumbered@section}{% + \YAD@ORI@sectionmark{#2}% + }{% + \YAD@ORI@sectionmark{\thesection. #2}% + }% \let\sectionmark\YAD@ORI@sectionmark% }% }% |