summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/scrambledenvs/scrambledenvs.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-09-26 21:00:24 +0000
committerKarl Berry <karl@freefriends.org>2021-09-26 21:00:24 +0000
commit7b5a3fd458aadd8e0f254ccdcf8594030b46f1d5 (patch)
tree557677f8cd7fdbadcc8a3c60a6f4d8d48737f91f /Master/texmf-dist/tex/latex/scrambledenvs/scrambledenvs.sty
parentd0915b41ed41e6e22a029598d3b627a134f759e7 (diff)
scrambledenvs (25sep21)
git-svn-id: svn://tug.org/texlive/trunk@60615 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/scrambledenvs/scrambledenvs.sty')
-rw-r--r--Master/texmf-dist/tex/latex/scrambledenvs/scrambledenvs.sty52
1 files changed, 36 insertions, 16 deletions
diff --git a/Master/texmf-dist/tex/latex/scrambledenvs/scrambledenvs.sty b/Master/texmf-dist/tex/latex/scrambledenvs/scrambledenvs.sty
index 3b44bedbeac..615acf1051e 100644
--- a/Master/texmf-dist/tex/latex/scrambledenvs/scrambledenvs.sty
+++ b/Master/texmf-dist/tex/latex/scrambledenvs/scrambledenvs.sty
@@ -27,7 +27,8 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{scrambledenvs}[2021/08/03 v1.0.1 Create and print scrambled environments]
+\ProvidesPackage{scrambledenvs}[2021/09/26 v1.1.0 Create and print scrambled environments]
+\RequirePackage{ifthen}
\RequirePackage{forloop}
\RequirePackage{pgfmath}
\pgfmathsetseed{2407}
@@ -49,11 +50,11 @@
\else
\ifnum\value{scrambledenvs@#1@tempcount}=1\relax
{\csname scrambledenvs@#1@labelfont\endcsname\csname scrambledenvs@#1@label\endcsname :}
- {\csname scrambledenvs@#1@reffont\endcsname\ref{#1:\value{scrambledenvs@#1@count}}}%
+ {\csname scrambledenvs@#1@reffont\endcsname\csname scrambledenvs@#1@refprefix\endcsname\ref{#1:\the\numexpr\value{scrambledenvs@#1@count}}}%
\else
{\csname scrambledenvs@#1@labelfont\endcsname\csname scrambledenvs@#1@label\endcsname s:}
\forloop{scrambledenvs@loopcount}{\the\numexpr\value{scrambledenvs@#1@count}-\value{scrambledenvs@#1@tempcount}+1\relax}{\value{scrambledenvs@loopcount}<\the\numexpr\value{scrambledenvs@#1@count}+1\relax} {%
- {\csname scrambledenvs@#1@reffont\endcsname\ref{#1:\thescrambledenvs@loopcount}}
+ {\csname scrambledenvs@#1@reffont\endcsname\csname scrambledenvs@#1@refprefix\endcsname\ref{#1:\thescrambledenvs@loopcount}}
}
\fi
\fi
@@ -72,31 +73,45 @@
{%
\endfilecontents
}
+\expandafter\def\csname scrambledenvs@#1@start\endcsname{1}
\expandafter\newcommand\csname print#1\endcsname{%
\ifscrambledenvs@scramble %\if
\ifcsname thescrambledenvs@#1@count\endcsname
- \ifnum\value{scrambledenvs@#1@count}>0\relax
- \expandafter\edef\csname pgfmath@randomlist@#1\endcsname{\value{scrambledenvs@#1@count}}%
- \forloop{scrambledenvs@loopcount}{1}{\value{scrambledenvs@loopcount}<\the\numexpr\value{scrambledenvs@#1@count}+1\relax}{\expandafter\edef\csname pgfmath@randomlist@#1@\thescrambledenvs@loopcount\endcsname{\thescrambledenvs@loopcount}}%
- \begin{scrambledenvs@#1@printenv}%
- \forloop{scrambledenvs@loopcount}{0}{\value{scrambledenvs@loopcount}<\value{scrambledenvs@#1@count}}{%
- \pgfmathrandomitem\scrambledenvs@tempindex{#1}%
- \csname scrambledenvs@#1@printitem\endcsname\label{#1:\scrambledenvs@tempindex}%
+ \ifnum\value{scrambledenvs@#1@count}<\csname scrambledenvs@#1@start\endcsname\relax
+ \else
+ \expandafter\edef\csname pgfmath@randomlist@#1\endcsname{\numexpr\value{scrambledenvs@#1@count}-\csname scrambledenvs@#1@start\endcsname+1}
+ \count@=1
+ \loop
+ \expandafter\edef\csname pgfmath@randomlist@#1@\the\count@\endcsname{\the\numexpr\count@+\csname scrambledenvs@#1@start\endcsname-1\relax}
+ \ifnum\count@<\numexpr\value{scrambledenvs@#1@count}-\csname scrambledenvs@#1@start\endcsname+1\relax
+ \advance\count@ 1
+ \repeat
+ \begin{scrambledenvs@#1@printenv}
+ \setcounter{scrambledenvs@loopcount}{\csname scrambledenvs@#1@start\endcsname}
+ \whiledo{\value{scrambledenvs@loopcount}<\the\numexpr\value{scrambledenvs@#1@count}+1\relax}{%
+ \stepcounter{scrambledenvs@loopcount}
+ \pgfmathrandomitem\scrambledenvs@tempindex{#1}
+ \csname scrambledenvs@#1@printitem\endcsname\label{#1:\scrambledenvs@tempindex}%
\input{\jobname-\scrambledenvs@tempindex.#1}%
- \forloop{scrambledenvs@innerloopcount}{\scrambledenvs@tempindex}{\value{scrambledenvs@innerloopcount}<\csname pgfmath@randomlist@#1\endcsname}{%
- \global\expandafter\let\csname pgfmath@randomlist@#1@\thescrambledenvs@innerloopcount\expandafter\endcsname\csname pgfmath@randomlist@#1@\the\numexpr\thescrambledenvs@innerloopcount+1\relax\endcsname%
- }%
- \expandafter\xdef\csname pgfmath@randomlist@#1\endcsname{\the\numexpr\csname pgfmath@randomlist@#1\endcsname-1\relax}%
- }%
+ \count@\pgfmath@randomtemp
+ \loop
+ \global\expandafter\let\csname pgfmath@randomlist@#1@\the\count@\expandafter\endcsname\csname pgfmath@randomlist@#1@\the\numexpr\the\count@+1\relax\endcsname%
+ \advance\count@ 1
+ \ifnum \count@ < \csname pgfmath@randomlist@#1\endcsname\relax
+ \repeat
+ \expandafter\xdef\csname pgfmath@randomlist@#1\endcsname{\the\numexpr\csname pgfmath@randomlist@#1\endcsname-1\relax}%
+ }
\end{scrambledenvs@#1@printenv}
+ \expandafter\edef\csname scrambledenvs@#1@start\endcsname{\the\numexpr\value{scrambledenvs@#1@count}+1\relax}
\fi
\fi
\else
\ifcsname thescrambledenvs@#1@count\endcsname
\ifnum\value{scrambledenvs@#1@count}>0\relax
\begin{scrambledenvs@#1@printenv}%
- \forloop{scrambledenvs@loopcount}{1}{\value{scrambledenvs@loopcount}<\the\numexpr\value{scrambledenvs@#1@count}+1\relax}{\csname scrambledenvs@#1@printitem\endcsname\label{#1:\thescrambledenvs@loopcount}\input{\jobname-\thescrambledenvs@loopcount.#1}}%
+ \forloop{scrambledenvs@loopcount}{\csname scrambledenvs@#1@start\endcsname}{\value{scrambledenvs@loopcount}<\the\numexpr\value{scrambledenvs@#1@count}+1\relax}{\csname scrambledenvs@#1@printitem\endcsname\label{#1:\thescrambledenvs@loopcount}\input{\jobname-\thescrambledenvs@loopcount.#1}}%
\end{scrambledenvs@#1@printenv}
+ \expandafter\edef\csname scrambledenvs@#1@start\endcsname{\the\numexpr\value{scrambledenvs@#1@count}+1\relax}
\fi
\fi
\fi
@@ -107,6 +122,9 @@
\expandafter\def\csname scrambledenvs@#1@labelfont\endcsname{\scrambledenvs@labelfont}
\scrambledenvs@check@macrodefined{#1labelfont}
\expandafter\newcommand\csname #1labelfont\endcsname[1]{\expandafter\def\csname scrambledenvs@#1@labelfont\endcsname{##1}}
+\expandafter\def\csname scrambledenvs@#1@refprefix\endcsname{\scrambledenvs@refprefix}
+\scrambledenvs@check@macrodefined{#1refprefix}
+\expandafter\newcommand\csname #1refprefix\endcsname[1]{\expandafter\def\csname scrambledenvs@#1@refprefix\endcsname{##1}}
\expandafter\def\csname scrambledenvs@#1@reffont\endcsname{\scrambledenvs@reffont}
\scrambledenvs@check@macrodefined{#1reffont}
\expandafter\newcommand\csname #1reffont\endcsname[1]{\expandafter\def\csname scrambledenvs@#1@reffont\endcsname{##1}}
@@ -138,6 +156,8 @@
\newcounter{scrambledenvs@innerloopcount}
\def\scrambledenvs@labelfont{\bfseries}
\def\defaultlabelfont#1{\def\scrambledenvs@lineformat{#1}}
+\def\scrambledenvs@refprefix{}
+\def\defaultrefprefix#1{\def\scrambledenvs@refprefix{#1}}
\def\scrambledenvs@reffont{}
\def\defaultreffont#1{\def\scrambledenvs@reffont{#1}}
\newenvironment{scrambledenvs@printenv}{\begin{enumerate}}{\end{enumerate}}