summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/luatex/cloze
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-06-30 21:21:36 +0000
committerKarl Berry <karl@freefriends.org>2020-06-30 21:21:36 +0000
commit8bb985021b2f40fd3c9ef24653decafda35a3592 (patch)
treef42b0c46f969ff3a9eada2fc099bd1992e25249b /Master/texmf-dist/tex/luatex/cloze
parent3188a1fa1e0a251e9952c526036a175b39a1cb3d (diff)
cloze (30jun20)
git-svn-id: svn://tug.org/texlive/trunk@55704 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/luatex/cloze')
-rw-r--r--Master/texmf-dist/tex/luatex/cloze/cloze.sty220
1 files changed, 220 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/luatex/cloze/cloze.sty b/Master/texmf-dist/tex/luatex/cloze/cloze.sty
new file mode 100644
index 00000000000..4c67c66a55a
--- /dev/null
+++ b/Master/texmf-dist/tex/luatex/cloze/cloze.sty
@@ -0,0 +1,220 @@
+%%
+%% This is file `cloze.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% cloze.dtx (with options: `latex')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2015-2020 by Josef Friedrich <josef@friedrich.rocks>
+%% ----------------------------------------------------------------------
+%% This work may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.3c of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/05 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{cloze}
+ [2020/06/60 v1.6 Package to typeset cloze worksheets or cloze tests]
+\input{cloze.tex}
+\RequirePackage{fontspec}
+\RequirePackage{luatexbase-mcb}
+\RequirePackage{kvoptions}
+\RequirePackage{setspace}
+\RequirePackage{xcolor}
+\RequirePackage{xparse}
+\RequirePackage{stackengine}
+\RequirePackage{ulem}
+\normalem
+\RequirePackage{transparent}
+\let\clozesetoption=\undefined
+\newcommand{\clozesetoption}[2]{%
+ \directlua{cloze.set_option('#1', '#2')}%
+}
+\def\ClozeSetLocalOptions#1{%
+ \ClozeSetToLocal%
+ \kvsetkeys{CLZ}{#1}%
+}
+\ClozeSetToGlobal
+\SetupKeyvalOptions{
+ family=CLZ,
+ prefix=CLZ@
+}
+\DeclareStringOption{align}
+\define@key{CLZ}{align}[]{\clozesetoption{align}{#1}}
+\DeclareStringOption{boxheight}
+\define@key{CLZ}{boxheight}[]{\clozesetoption{boxheight}{#1}}
+\DeclareStringOption{boxwidth}
+\define@key{CLZ}{boxwidth}[]{\clozesetoption{boxwidth}{#1}}
+\DeclareStringOption{distance}
+\define@key{CLZ}{distance}[]{\clozesetoption{distance}{#1}}
+\DeclareVoidOption{hide}{%
+ \clozeshowfalse%
+ \clozesetoption{hide}{true}%
+ \clozesetoption{show}{false}%
+}
+\DeclareStringOption{linecolor}
+\define@key{CLZ}{linecolor}[]{%
+ \clozesetoption{linecolor}{\ClozeColor{#1}}%
+ \clozesetoption{linecolor_name}{#1}%
+}
+\DeclareStringOption{margin}
+\define@key{CLZ}{margin}[]{\clozesetoption{margin}{#1}}
+\DeclareVoidOption{show}{%
+ \clozeshowtrue%
+ \clozesetoption{show}{true}%
+ \clozesetoption{hide}{false}%
+}
+\DeclareStringOption{spacing}
+\define@key{CLZ}{spacing}[]{\clozesetoption{spacing}{#1}}
+\DeclareStringOption{textcolor}
+\define@key{CLZ}{textcolor}[]{%
+ \clozesetoption{textcolor}{\ClozeColor{#1}}%
+ \clozesetoption{textcolor_name}{#1}%
+}
+\DeclareStringOption{thickness}
+\define@key{CLZ}{thickness}[]{\clozesetoption{thickness}{#1}}
+\DeclareStringOption{width}
+\define@key{CLZ}{width}[]{\clozesetoption{width}{#1}}
+\ProcessKeyvalOptions{CLZ}
+\newcommand{\clozeset}[1]{%
+ \ClozeSetToGlobal%
+ \kvsetkeys{CLZ}{#1}%
+}
+\let\clozeshow=\undefined
+\newcommand{\clozeshow}{%
+ \clozeset{show}
+}
+\let\clozehide=\undefined
+\newcommand{\clozehide}{%
+ \clozeset{hide}
+}
+\let\clozeplain=\cloze
+\let\cloze=\undefined
+\newcommand{\cloze}[2][]{%
+ \ClozeSetLocalOptions{#1}%
+ \clozeplain{#2}%
+}
+\let\clozefixplain=\clozefix
+\let\clozefix=\undefined
+\newcommand{\clozefix}[2][]{%
+ \ClozeSetLocalOptions{#1}%
+ \clozefixplain{#2}%
+}
+\let\clozenolplain=\clozenol
+\let\clozenol=\undefined
+\newcommand{\clozenol}[2][]{%
+ \ClozeSetLocalOptions{#1}%
+ \clozenolplain{#2}%
+}
+\newenvironment{clozepar}[1][]%
+{%
+ \par%
+ \ClozeSetLocalOptions{#1}%
+ \ClozeStartMarker{par}%
+ \clozefont\relax%
+}%
+{%
+ \ClozeStopMarker{par}%
+ \par%
+ \directlua{cloze.unregister('par')}%
+}
+\newsavebox{\ClozeBox}%
+\NewDocumentEnvironment{clozebox}{ s O{} +b}{%
+ \ClozeSetLocalOptions{#2}%
+ \noindent%
+ \begin{lrbox}{\ClozeBox}%
+ \directlua{
+ local boxheight = cloze.get_value('boxheight')
+ local boxwidth = cloze.get_value('boxwidth')
+ if boxheight then
+ tex.print('\\begin{minipage}[t][' .. boxheight .. '][t]{' .. boxwidth .. '}')
+ else
+ tex.print('\\begin{minipage}[t]{' .. boxwidth .. '}')
+ end
+ }%
+ \setlength{\parindent}{0pt}%
+ \clozenol[margin=0pt]{#3}%
+ \end{minipage}%
+ \end{lrbox}%
+ \IfBooleanTF{#1}%
+ {\usebox{\ClozeBox}}%
+ {\fbox{\usebox{\ClozeBox}}}%
+}{}
+\newenvironment{clozespace}[1][]%
+{%
+ \ClozeSetLocalOptions{#1}%
+ \begin{spacing}{\directlua{tex.print(cloze.get_value('spacing'))}}%
+}{\end{spacing}}
+\let\clozelineplain=\clozeline
+\let\clozeline=\undefined
+\newcommand{\clozeline}[1][]{%
+ \ClozeSetLocalOptions{#1}%
+ \clozelineplain%
+}
+\let\clozelinefilplain=\clozelinefil
+\let\clozelinefil=\undefined
+\newcommand{\clozelinefil}[1][]{%
+ \ClozeSetLocalOptions{#1}%
+ \clozelinefilplain%
+}
+\let\clozefil=\undefined
+\newcommand{\clozefil}[2][]{%
+ \cloze[#1]{#2}\clozelinefil[#1]%
+}
+\newcommand{\clozeextend}[1][1]{%
+ \directlua{
+ local loop = #1
+ for variable = 1, loop do
+ tex.print(' \string\\hspace{1em} \string\\strut')
+ end
+ }
+}
+\newcommand{\ClozeTextColor}[1]{%
+ \textcolor%
+ {\directlua{tex.print(cloze.get_value('textcolor_name'))}}%
+ {#1}%
+}
+\newcommand\ClozeStrikeLine{%
+ \bgroup%
+ \markoverwith{%
+ \ClozeTextColor{%
+ \rule[0.5ex]{2pt}{1pt}%
+ }%
+ }%
+ \ULon%
+}
+\newcommand{\clozestrike}[3][]{%
+ \ClozeSetLocalOptions{#1}%
+ \ifclozeshow%
+ \stackengine%
+ {\Sstackgap}% \Sstackgap or \Lstackgap or \stackgap or stacklength
+ {\ClozeStrikeLine{#2}}% anchor
+ {\ClozeTextColor{\clozefont{}#3}}% item
+ {O}% O or U
+ {c}% \stackalignment or l or c or r
+ {\quietstack}% \quietstack or T or F
+ {T}% \useanchorwidth or T or F
+ {\stacktype}% \stacktype or S or L
+ \else%
+ \stackengine%
+ {\Sstackgap}% \Sstackgap or \Lstackgap or \stackgap or stacklength
+ {#2}% anchor
+ {\texttransparent{0}{\clozefont{}#3}}% item
+ {O}% O or U
+ {c}% \stackalignment or l or c or r
+ {\quietstack}% \quietstack or T or F
+ {T}% \useanchorwidth or T or F
+ {\stacktype}% \stacktype or S or L
+ \fi%
+}
+\endinput
+%%
+%% End of file `cloze.sty'.