From 9b4f65771e507cb07b0b5851eb03577698f04259 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 17 Jun 2018 21:34:43 +0900 Subject: add dps --- texmf-dist/tex/latex/dps/dps.sty | 510 ++++++++++++++++++++++++++++++++ texmf-dist/tex/latex/dps/dps_str_de.def | 44 +++ texmf-dist/tex/latex/dps/dps_str_us.def | 47 +++ 3 files changed, 601 insertions(+) create mode 100644 texmf-dist/tex/latex/dps/dps.sty create mode 100644 texmf-dist/tex/latex/dps/dps_str_de.def create mode 100644 texmf-dist/tex/latex/dps/dps_str_us.def (limited to 'texmf-dist/tex') diff --git a/texmf-dist/tex/latex/dps/dps.sty b/texmf-dist/tex/latex/dps/dps.sty new file mode 100644 index 00000000..a835eab6 --- /dev/null +++ b/texmf-dist/tex/latex/dps/dps.sty @@ -0,0 +1,510 @@ +%% +%% This is file `dps.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% dps.dtx (with options: `copyright,package') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% dps.sty package, 2006-10-06 %% +%% Copyright (C) 2006 D. P. Story %% +%% dpstory@acrotex.net %% +%% storyd@owc.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{dps} + [2006/10/31 v1.0 Das Puzzle Spiel (dps)] +\RequirePackage{xkeyval} +\DeclareOptionX{nonrandomized}{\werandomizefalse} +\DeclareOptionX{viewmode}{\viewModetrue\previewtrue} +\DeclareOptionX{showletters}{\showletterstrue} +\DeclareOptionX{showanswerlabels} +{% + \ifeqforpaper\else\def\dpsAitemOptArg{}\fi +} +\def\dpsAitemOptArg{[]} +\DeclareOptionX{showanswerkey}{\showsolutiontrue} +\DeclareOptionX{savedata}{\savepuzzledatatrue} +\newif\ifwerandomize \werandomizetrue +\newif\ifviewMode \viewModefalse +\newif\ifshowletters\showlettersfalse +\newif\ifshowsolution\showsolutionfalse +\newif\ifsavepuzzledata\savepuzzledatafalse +\ifeqforpaper\showletterstrue\fi +\define@choicekey*+{dps.sty}{lang}[\val\nr]{english,german,custom} +{% + \ifcase\nr\relax + \def\dps@lang@type{\input{dps_str_us.def}} + \or + \def\dps@lang@type{\input{dps_str_de.def}} + \or + \def\dps@lang@type{\input{dps_str_cus.def}} + \else + \def\dps@lang@type{\input{dps_str_us.def}} + \fi +}{\PackageWarning{dps}{Bad choice for lang, permissible values +are english, german and custom. Try again}} +\def\dps@lang@type{\input{dps_str_us.def}} +\AtEndOfPackage{\dps@lang@type} +\ProcessOptionsX +\RequirePackage{verbatim} +\RequirePackage{calc} +\RequirePackage{multicol} +\@ifundefined{nextrandom}{\input{random.tex}}{} +\def\nextrandom{\begingroup + \ifnum\randomi<\@ne % then initialize with time + \global\randomi\time + \global\multiply\randomi388 \global\advance\randomi\year + \global\multiply\randomi31 \global\advance\randomi\day + \global\multiply\randomi97 \global\advance\randomi\month + \message{Randomizer initialized to \the\randomi.}% + \nextrandom \nextrandom \nextrandom + \xdef\ds@saveRandomSeed{\the\randomi}% + \fi + \count@ii\randomi + \divide\count@ii 127773 % modulus = multiplier * 127773 + 2836 + \count@\count@ii + \multiply\count@ii 127773 + \global\advance\randomi-\count@ii % random mod 127773 + \global\multiply\randomi 16807 + \multiply\count@ 2836 + \global\advance\randomi-\count@ + \ifnum\randomi<\z@ \global\advance\randomi 2147483647\relax\fi + \endgroup +} +\newif\ifforquestions \forquestionstrue +\newcount\ds@nCnt +\newcount\ds@nMax +\newcount\ds@qNumber\ds@qNumber=0 +\newcount\ds@aNumber\ds@aNumber=0 +\newcount\ds@probCnt \ds@probCnt=0 +\newcount\ds@nCntCols \ds@nCntCols=0 +\newcount\ds@getRanNum +\newtoks\ds@listIn \ds@listIn={} +\newtoks\ds@newListIn \ds@newListIn={} +\newtoks\ds@listOut \ds@listOut={} +\newtoks\ds@tmpToks \ds@tmpToks={} +\newtoks\ds@qlistOut \ds@qlistOut={} +\newtoks\ds@alistOut \ds@alistOut={} +\newtoks\ds@PuzzleAppearancetoks \ds@PuzzleAppearancetoks={} +\newtoks\ds@QuesAppearancetoks \ds@QuesAppearancetoks={} +\newtoks\ds@AnsAppearancetoks \ds@AnsAppearancetoks={} +\newwrite \ds@question@write +\ifsavepuzzledata +\newwrite \ds@savedata +\immediate\openout \ds@savedata \jobname_data.sav +\fi +\setlength{\multicolsep}{\topsep} +\def\PuzzleAppearance#1{\ds@PuzzleAppearancetoks={#1}} +\ifeqforpaper + \ifviewMode + \def\makeTextField#1#2{\def\argii{#2}\ifx\argii + \ds@myspace\let\ds@ul\relax\else\let\ds@ul\underbar\fi + \ifshowletters\raisebox{-8pt}{% + \makebox[0pt][l]{\makebox[16bp][c]{% + \footnotesize\ds@getProbNumber{#1}{#2}}}}\fi + \ds@ul{\makebox[16bp][c]{\Hy@pdfstringfalse#1}}} + \else + \def\makeTextField#1#2{\def\argii{#2}\ifx\argii\ds@myspace + \let\ds@ul\relax\else\let\ds@ul\underbar\fi + \ifshowletters\raisebox{-8pt}{% + \makebox[0pt][l]{\makebox[16bp][c]{% + \footnotesize\ds@getProbNumber{#1}{#2}}}}\fi + \ds@ul{\makebox[16bp][c]{\hfil}}} + \fi +\else + \ifviewMode + \def\makeTextField#1#2{\ifshowletters\raisebox{-8pt}{% + \makebox[0pt][l]{\makebox[16bp][c]{% + \footnotesize\ds@getProbNumber{#1}{#2}}}}\fi + \underbar{\makebox[16bp][c]{\Hy@pdfstringfalse#1}}} + \else + \def\makeTextField#1#2{\ifshowletters + \raisebox{-8pt}{\makebox[0pt][l]{\makebox[16bp][c]{% + \footnotesize\ds@getProbNumber{#1}{#2}}}}\fi + \edef\textfieldTmp{\noexpand\textField[\noexpand\Q{1}% + \noexpand\S{U}\noexpand\Ff\noexpand\FfReadOnly + \the\ds@PuzzleAppearancetoks\noexpand\DV{#1}]% + {puzzle.#2}{16bp}{11bp}}\Hy@pdfstringtrue\textfieldTmp} + \fi +\fi +\def\DeclarePuzzle#1{\gdef\puzzleParameters{#1}} +\def\insertPuzzle#1{\gdef\nCols{#1}% + \ifviewMode\Hy@pdfstringfalse\else\Hy@pdfstringtrue\fi + \expandafter\aeb@Puzzle\expandafter{\puzzleParameters}}% +\def\rowsep#1{\gdef\@rowsep{[#1]}}\rowsep{\rowsep@default} +\def\rowsep@default{1ex} +\def\eq@tabSep{&}\def\ds@punc{punc} +\def\aeb@Puzzle#1{\edef\eq@tabEnd{\noexpand\\\@rowsep}% + \aeb@@Puzzle#1\relax\relax}% +\def\aeb@@Puzzle{\begin{tabular*}{\linewidth}{*{\nCols}l}\@aebPuzzlei}% +\def\@aebPuzzlei#1#2{\ifx#1\relax\gdef\nextPuzzleChar{\@aebPuzzleDone}% + \else\gdef\nextPuzzleChar{\@aebPuzzleii{#1}{#2}}\fi\nextPuzzleChar}% +\def\@aebPuzzleii#1#2{\makeTextField{#1}{#2}\@takeaPeek} +\def\@takeaPeek#1#2{\def\argii{#2}\ifx\argii\ds@punc + \def\@puzzNext{#1\@setSep@aebPuzzleii}% + \else\def\@puzzNext{\@setSep@aebPuzzleii{#1}{#2}}\fi\@puzzNext} +\def\@setSep@aebPuzzleii{\global\advance\ds@nCntCols1\relax + \ifnum\ds@nCntCols=\nCols\expandafter\eq@tabEnd \global\ds@nCntCols=0 + \else\expandafter\eq@tabSep\fi\@aebPuzzlei}% +\def\@aebPuzzleDone{\end{tabular*}\ds@buildAnswerKey}% +\def\ds@buildAnswerKey +{% + {% local + \count0=0 \toks0={}% + \loop + \advance\count0by1 + \xdef\AnswerKey{\the\toks0 + \the\count0--\noexpand + \csname dps@probLetter\the\count0\noexpand\endcsname; }% + \toks0 = \expandafter{\AnswerKey}% + \ifnum\count0 < \ds@qNumber\repeat + }% + \ifshowsolution + \cfooter{\footnotesize\@ifundefined{rotatebox}{\AnswerKey}% + {\rotatebox{180}{\AnswerKey}}}% + \fi + \ifsavepuzzledata + \AtEndDocument{\ds@writePuzzleData}% + \fi +} +\def\ds@writePuzzleData{% + \let\verbatim@out\ds@savedata + \dps@IWVO{Initial seed: \string\randomi=\ds@saveRandomSeed}% + \dps@IWVO{Solution Key: \AnswerKey}% +} +\newenvironment{Composing} +{\global\ds@qNumber=0 \global\ds@aNumber=0} +{\aftergroup\ds@publishRandomLists} +\newenvironment{cQ}[1] +{% + \global\advance\ds@qNumber1 + \immediate\openout \ds@question@write \jobname_q\the\ds@qNumber.cut + \let\verbatim@out\ds@question@write + \dps@IWVO{\noexpand\dpsQ{#1}}% + \verbatimwrite} +{% + \endverbatimwrite + \immediate\closeout \ds@question@write +} +\newenvironment{cA}[2][] +{% + \def\argi{#1}\global\advance\ds@aNumber1 + \immediate\openout \ds@question@write \jobname_a\the\ds@aNumber.cut + \let\verbatim@out\ds@question@write + \let\protect\noexpand + \dps@IWVO{\noexpand\dpsA\ifshowletters + \ifx\argi\@empty\else[#1]\fi\fi{#2}}% + \verbatimwrite} +{% + \endverbatimwrite + \immediate\closeout \ds@question@write +} +\def\QuesAppearance#1{\ds@QuesAppearancetoks={#1}} +\def\AnsAppearance#1{\ds@AnsAppearancetoks={#1}} +\let\afterQhookA\@gobble +\let\OnFocusQhookAA\@gobble +\newcommand{\dpsQ}[1]{\item\relax\ifeqforpaper\else + \edef\checkboxTmp{\noexpand\checkBox[\the\ds@QuesAppearancetoks + \noexpand\A{\noexpand\JS{activeQuestion = event.target.name; + clearRedCrosses(); \noexpand\afterQhookA{#1}}}% + \noexpand\AA{\noexpand\AAOnFocus{\noexpand\JS{% + this.resetForm(["ckbxQ"]); \noexpand\OnFocusQhookAA{#1}}}}]% + {ckbxQ.#1}{14bp}{11bp}{Yes}}\makebox[0pt][r]{\checkboxTmp\enspace}% + \fi\ignorespaces} +\newcommand{\dpsA}[2][]{\expandafter\item\dpsAitemOptArg\relax + \ifeqforpaper\else + \edef\checkboxTmp{\noexpand\checkBox[\the\ds@AnsAppearancetoks + \noexpand\A{\noexpand\JS{processChoice("#2")}}]% + {ckbxA.#2}{14bp}{11bp}{Yes}}% + \makebox[0pt][r]{\checkboxTmp\enspace}% + \fi + \def\argi{#1}% + \ifshowletters + \ifx\argi\@empty + \let\getLetterNext\relax + \let\ds@foundLetter=0\def\ds@currFN{#2}% + \def\getLetterNext{\ds@typesetPuzzleLetter}% + \expandafter\getLetterNext + \else + \makebox[0pt][r]{\Hy@pdfstringfalse#1\enspace\kern4bp}% + \fi + \fi + \ignorespaces +} +\def\ds@typesetPuzzleLetter{% + \expandafter\typeset@PuzzleLetter\expandafter{\puzzleParameters}} +\def\typeset@PuzzleLetter#1{\typeset@@PuzzleLetter#1\relax\relax}% +\def\typeset@@PuzzleLetter#1#2{% + \ifx#1\relax + \gdef\nextPuzzleLetter{\relax}% + \else + \gdef\nextPuzzleLetter{\typeset@PuzzleLetteri{#1}{#2}}% + \fi + \nextPuzzleLetter +} +\def\typeset@PuzzleLetteri#1#2{\def\argii{#2}\ifx\argii\ds@currFN + \if\ds@foundLetter0\makebox[0pt][r]{% + \Hy@pdfstringfalse#1\enspace\kern4bp}\let\ds@foundLetter=1\fi + \expandafter\typeset@@PuzzleLetter + \else\expandafter\typeset@@PuzzleLetter\fi} +\def\ds@publishRandomLists{% + \ds@randomizeQuestionList{\the\ds@qNumber}% + \ds@randomizeAnswerList{\the\ds@aNumber}% +} +\def\ds@myspace{space} +\def\ds@getProbNumber#1#2{% + \gdef\ds@currentArgi{#1}\gdef\ds@currentArgii{#2}% + \ifx\ds@currentArgii\ds@myspace\def\ds@probNumNext{\relax}\else + \def\ds@probNumNext{% + \@ifundefined{dps@probNum#2}{\global\advance\ds@probCnt1 + \ds@@getProbNumber{\the\ds@probCnt}% + }{\csname dps@probNum#2\endcsname}% + }% + \fi + \ds@probNumNext +} +\def\ds@@getProbNumber#1{% + {\count0=0 \let\\=\ds@getNthOne\the\ds@qlistOut}% + \csname dps@probNum\ds@currentArgii\endcsname +} +\def\ds@getNthOne#1{\advance\count0by1 + \ifnum\ds@probCnt=#1 + \expandafter + \xdef\csname dps@probNum\ds@currentArgii\endcsname + {\the\count0 }% + \expandafter + \xdef\csname dps@probLetter\the\count0\endcsname + {\expandafter\noexpand\ds@currentArgi}% + \fi +} +\def\writeComposingEnv{% + \newwrite \ds@composing@write + \immediate\openout \ds@composing@write \jobname_comp.def + \let\verbatim@out\ds@composing@write + \dps@IWVO{\string\begin{Composing}}% + \dps@IWVO{}% + \expandafter\write@ComposingEnv\expandafter{\puzzleParameters}% +} +\def\write@ComposingEnv#1{\write@@ComposingEnv#1\relax\relax}% +\def\write@@ComposingEnv#1#2{\ifx#1\relax + \gdef\nextPuzzlePair{% + \dps@IWVO{\string\end{Composing}}% + \immediate\closeout \ds@composing@write}% + \else\gdef\nextPuzzlePair{\write@@@ComposingEnv{#1}{#2}}\fi + \nextPuzzlePair}% +\def\write@@@ComposingEnv#1#2{% + \gdef\ds@currentArgi{#1}\gdef\ds@currentArgii{#2}% + \ifx\ds@currentArgii\ds@myspace + \def\ds@probNumNext{\write@@ComposingEnv}% + \else + \ifx\ds@currentArgii\ds@punc + \def\ds@probNumNext{\write@@ComposingEnv}\else + \def\ds@probNumNext{% + \@ifundefined{dps@compQ#2}{% write to file + \expandafter\gdef\csname dps@compQ#2\endcsname{found}% + \dps@IWVO{\string\begin{cQ}{\noexpand#1}}% + \dps@IWVO{\string\end{cQ}}% + \dps@IWVO{\string\begin{cA}{\noexpand#1}}% + \dps@IWVO{\string\end{cA}}% + \dps@IWVO{}% + }{}% + \write@@ComposingEnv + }% + \fi\fi + \ds@probNumNext +} +\def\verbatimwrite{\@bsphack + \let\do\@makeother\dospecials + \catcode`\^^M\active \catcode`\^^I=12 + \def\verbatim@processline{% + \immediate\write\verbatim@out + {\the\verbatim@line}}% + \verbatim@start} +\def\endverbatimwrite{\@esphack} +\def\dps@IWVO{\immediate\write\verbatim@out} +\def\ds@populateList#1{% + \ds@listIn = {}% + \ds@nCnt=0 + \@whilenum \ds@nCnt < #1\do {% + \advance\ds@nCnt1 + \edef\ds@listInHold{\the\ds@listIn\noexpand\\{\the\ds@nCnt}}% + \ds@listIn = \expandafter{\ds@listInHold}% + }% +} +\def\ds@processi#1{\advance\ds@nCnt1 + \ifnum\ds@nCnt=\ds@getRanNum\edef\ds@listOutHold{\the\ds@listOut}% + \global\ds@listOut=\expandafter{\ds@listOutHold\\{#1}}% + \else + \edef\ds@listInHold{\the\ds@newListIn}% + \ds@tmpToks = \expandafter{\ds@listInHold\\{#1}}% + \ds@newListIn = \expandafter{\the\ds@tmpToks}% + \fi +} +\def\ds@processii#1{\input{\jobname_q#1.cut}} +\def\ds@processiii#1{\input{\jobname_a#1.cut}} +\def\ds@processL#1{\advance\count0by1 %\divide\ds@aNumber2 + \ifnum\count0>\ds@aNumber\relax\else\input{\jobname_a#1.cut}\fi} +\def\ds@processR#1{\advance\count0by1 %\divide\ds@aNumber2 + \ifnum\count0>\ds@aNumber\relax\input{\jobname_a#1.cut}\fi} +\def\displayRandomizedQuestions{\let\\=\ds@processii\the\ds@qlistOut} +\def\displayRandomizedAnswers{\let\\=\ds@processiii\the\ds@alistOut} +\def\displayRandomizedAnswersLeftPanel{{\let\\=\ds@processL\count0=0 + \divide\ds@aNumber2 \the\ds@alistOut}} +\def\displayRandomizedAnswersRightPanel{{\let\\=\ds@processR\count0=0 + \divide\ds@aNumber2 \the\ds@alistOut}} +\def\ds@randomizeQuestionList#1{% + \global\ds@listIn={}\global\ds@newListIn={}\global\ds@listOut={}% + \global\ds@tmpToks={}%\global\ds@qlistOut={}\global\ds@alistOut={}% + \ds@nMax=#1\relax\ds@populateList{\the\ds@nMax}% + \global\forquestionstrue + \ifwerandomize + \expandafter\ds@randomizeList + \else + \global\ds@qlistOut=\expandafter{\the\ds@listIn} + \fi +} +\def\ds@randomizeAnswerList#1{% + \global\ds@listIn={}\global\ds@newListIn={}\global\ds@listOut={}% + \global\ds@tmpToks={}%\global\ds@qlistOut={}\global\ds@alistOut={}% + \ds@nMax=#1\relax\ds@populateList{\the\ds@nMax}% + \global\forquestionsfalse + \ifwerandomize + \expandafter\ds@randomizeList + \else + \global\ds@alistOut=\expandafter{\the\ds@listIn}% + \fi +} +\def\ds@randomizeList{% + \let\\=\ds@processi + \setrannum{\ds@getRanNum}{1}{\ds@nMax}% + \ds@nCnt=0\relax + \the\ds@listIn + \ds@loopTest +} +\def\ds@loopTest{\advance\ds@nMax-1\relax + \ifnum\ds@nMax>0\relax + \def\@next{% + \ds@listIn=\expandafter{\the\ds@newListIn}% + \ds@newListIn={}\ds@randomizeList}% + \else + \let\@next\relax + \ifforquestions + \global\ds@qlistOut=\expandafter{\the\ds@listOut}% + \else + \global\ds@alistOut=\expandafter{\the\ds@listOut}% + \fi + \fi + \@next +} +\newcommand{\placeMessageField}[3][]{% + \ifeqforpaper\else\textField[#1\Ff\FfMultiline]{report}{#2}{#3}\fi +} +\newcommand{\threshold}[1]{\def\dsthreshold{#1}} +\threshold{3} +\newcommand{\penaltypoints}[1]{\def\dspenaltypoints{#1}} +\penaltypoints{3} +\newcommand{\passing}[1]{\def\dspassing{#1}} +\passing{4} +\begin{insDLJS}[processChoice]{match}{JS Update of Matching Puzzle} +var missesByQuestion = new Array(); +var nMissed = 0; +var nPenaltyPoints = 0; +var activeQuestion = ""; +function processChoice(fieldname) +{ + // Get the question field that corresponds to this question, + // see if checked. + var f = this.getField("ckbxQ."+fieldname); + if ( (f != null) && (f.isBoxChecked(0)) ) { // right + clearRedCrosses (); + this.resetForm(["puzzle."+fieldname]); + event.target.textColor = ["RGB", 0, 0.6, 0]; + f.strokeColor = ["RGB", 0, 0.6, 0]; + f.readonly = true; + event.target.readonly=true; + try { afterCorrectChoiceHook() } catch(e) {}; + checkForFinished(\dspassing); + } else { // wrong + if ( activeQuestion != "" ) var h = this.getField(activeQuestion); + if ( (activeQuestion=="") || (h.readonly) ) { // active question already answered + event.target.value = "Off"; + var g = this.getField("report"); + str = \chooseQ; + g.value = str; + var to = app.setTimeOut("clearMessages()", 2000); + } else { + event.target.style = style.cr; + event.target.textColor = color.red; + ++nMissed; + if ( typeof missesByQuestion[activeQuestion] !="number" ) + missesByQuestion[activeQuestion] = 1; + else + missesByQuestion[activeQuestion] += 1; + if (missesByQuestion[activeQuestion] > \dsthreshold) { + var f = this.getField("report"); + str = \triedTooMuch; + f.value = str; + nPenaltyPoints += \dspenaltypoints; + missesByQuestion[activeQuestion] = 0; + clearRedCrosses (); + var to = app.setTimeOut("clearMessages()", 2000) + } + } + } +} +function clearMessages() +{ + var f = this.getField("report"); + f.value = ""; +} +function clearRedCrosses () +{ + var g = this.getField("ckbxA"); + h = g.getArray(); + for ( i=0; i < h.length; i++) { + if ( h[i].style == style.cr) h[i].checkThisBox(0,false); + h[i].style = style.ch; + } + } +function checkForFinished(n) +{ + var f = this.getField("puzzle"); + var g = f.getArray(); + var anyEmpty = false; + for ( var i=0; i < g.length; i++) { + if ( (g[i].name != "puzzle.space") && (g[i].value.replace(/\s/g,"") == "") ) { + anyEmpty = true; + break; + } + } + var nTotalPenaltyPoints=nMissed + nPenaltyPoints; + if ( !anyEmpty ) { + try { dpsFinishedHook() } catch (e) {}; + var f = this.getField("report"); + str = \congratFinished + + "\n" + \regretPleased + + "\n" + \reportPenaltyPoints + + "\n" + \finalPenaltyScore + + " " + finalRating(nTotalPenaltyPoints); + f.value = str; + } +} +function finalRating(n) { + var aPenaltyScale = new Array( \aPenaltyScale\space); + var aPenaltyMsgs = new Array( \aPenaltyMsgs\space); + for ( var i=0; i aPenaltyScale[i][0]) && (n <= aPenaltyScale[i][1]) ) + return aPenaltyMsgs[i]; +} +\end{insDLJS} +\endinput +%% +%% End of file `dps.sty'. diff --git a/texmf-dist/tex/latex/dps/dps_str_de.def b/texmf-dist/tex/latex/dps/dps_str_de.def new file mode 100644 index 00000000..ec5aa3d4 --- /dev/null +++ b/texmf-dist/tex/latex/dps/dps_str_de.def @@ -0,0 +1,44 @@ +%% +%% This is file `dps_str_de.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% dps.dtx (with options: `copyright,german') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% dps.sty package, 2006-10-06 %% +%% Copyright (C) 2006 D. P. Story %% +%% dpstory@acrotex.net %% +%% storyd@owc.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\chooseQ{"Du musst erst eine Frage ausw\string\344hlen bevor Du antwortest!"} +\def\triedTooMuch{"Du hast es leider zu oft versucht, ich z\string\344hle " + + \dspenaltypoints + + " Punkte dazu und setze den Z\string\344hler dann zur\string\374ck. Bitte streng Dich an!"} +\def\congratFinished{"Herzlichen Gl\string\374ckwunsch! Du hast das Puzzle beendet" + +((nMissed==0) ? " ohne auch nur einen Fehler zu machen, wunderbar!" + : ", aber leider " + nMissed + " Mal falsch geantwortet!")} +\def\regretPleased{(( nMissed > n ) + ? "Ich bedauere Dir mitteilen zu m\string\374ssen, dass Du den Test leider nicht bestanden hast, weil Du zu viele Fragen falsch beantwortet hast." + : "Ich bin \string\344usserst erfreut Dir mitteilen zu d\string\374rfen, dass Du den Test bestanden hast!")} +\def\reportPenaltyPoints{"Die Anzahl der Strafpunkte ist " + nPenaltyPoints +"."} +\def\finalPenaltyScore{"Die Gesamtanzahl der Strafpunkte ist damit " + nTotalPenaltyPoints + ". "} +\def\aPenaltyScale{[-1,0], [0,4], [4, 10], [10,25], [25,5000]} +\def\aPenaltyMsgs +{% + "Perfekt!", + "Sehr gute Vorstellung!", + "Es sieht nicht sonderlich gut aus. Vielleicht w\string\344re eine Wiederholung gut!", + "R\string\344tst Du eigentlich nur? Niemand kann wirklich so schlecht sein. Das ist Stoff aus der siebten Klasse!", + "Du bist ein hoffnungsloser Fall!" +} +\endinput +%% +%% End of file `dps_str_de.def'. diff --git a/texmf-dist/tex/latex/dps/dps_str_us.def b/texmf-dist/tex/latex/dps/dps_str_us.def new file mode 100644 index 00000000..fad04bb9 --- /dev/null +++ b/texmf-dist/tex/latex/dps/dps_str_us.def @@ -0,0 +1,47 @@ +%% +%% This is file `dps_str_us.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% dps.dtx (with options: `copyright,english') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% dps.sty package, 2006-10-06 %% +%% Copyright (C) 2006 D. P. Story %% +%% dpstory@acrotex.net %% +%% storyd@owc.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\chooseQ{"You must choose a question to answer before you answer!"} +\def\triedTooMuch{"You have tried this problem too many times, + I'm adding " + + \dspenaltypoints + + " points, and resetting the penalty counter. Bad boy/girl!"} +\def\congratFinished{"Congratulations! You finished the puzzle" + +((nMissed==0) ? " without missing a single problem, amazing!" + : ", but you missed " + nMissed + " questions in the process!")} +\def\regretPleased{(( nMissed > n ) + ? "I regret to report that you did not pass the test because + you missed too many questions." + : "I am pleased to report that you passed the test!")} +\def\reportPenaltyPoints{"The number of penalty points is " + + nPenaltyPoints +"."} +\def\finalPenaltyScore{"Final penalty score is " + nTotalPenaltyPoints + ". "} +\def\aPenaltyScale{[-1,0], [0,4], [4, 10], [10,25], [25,5000]} +\def\aPenaltyMsgs +{% + "Perfect!", + "Very nice performance!", + "This is not looking good. Perhaps a review is in order!", + "Are you trying? No one could do so badly, you only need a seventh grade education!", + "You're hopeless!" +} +\endinput +%% +%% End of file `dps_str_us.def'. -- cgit v1.2.3