summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/answers
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-09-17 00:15:46 +0000
committerKarl Berry <karl@freefriends.org>2009-09-17 00:15:46 +0000
commit7c712eff353dad0f5de9c8318d941ad890b9b014 (patch)
treefe2cac02dc20d8a7730ce126d576c49feddb64c2 /Master/texmf-dist/tex/latex/answers
parentea6b77b4ca75244e8aea9fcecaff57fc2fd0677e (diff)
answers 2.12 (15sep09)
git-svn-id: svn://tug.org/texlive/trunk@15323 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/answers')
-rw-r--r--Master/texmf-dist/tex/latex/answers/answers.sty193
1 files changed, 193 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/answers/answers.sty b/Master/texmf-dist/tex/latex/answers/answers.sty
new file mode 100644
index 00000000000..4c0d88c2cc2
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/answers/answers.sty
@@ -0,0 +1,193 @@
+%%
+%% This is file `answers.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% answers.dtx (with options: `answers')
+%%
+%% Originally developed by Mike Piff
+%% Copyright (C) 1990,1994-1996 by Mike Piff
+%% Copyright (C) 2009 by
+%% Joseph Wright <joseph.wright@morningstar2.co.uk>
+%%
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version. The latest
+%% version of this license is in the file:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% This work is "maintained" (as per LPPL maintenance status) by
+%% Joseph Wright.
+%%
+\def\fileversion{2.12}
+\def\filedate{16 Sep 2009 00:00:00 BST}
+\def\filename{answers.dtx}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{answers}
+ [2009/09/16 v2.12 Production of solution sheets in LaTeX2e]
+\newif\ifanswerfiles \answerfilestrue
+\DeclareOption{nosolutionfiles}{\answerfilesfalse
+ \typeout{No answer files being produced}}%
+\ProcessOptions
+
+\RequirePackage{verbatim}
+\newcommand{\solutionpoint}{.}
+\newcommand{\solutionextension}{tex}
+\newenvironment{Filesave}[1]{%
+ \@bsphack
+ \def\verbatim@processline{}%
+ \Iffileundefined{#1}{}{%
+ \Ifopen{#1}{%
+ \def\verbatim@processline{%
+ \Ifanswerfiles{%
+ \immediate\write\@nameuse{#1@file}%
+ {\the\verbatim@line}%
+ }{}%
+ }%
+ }{}%
+ }%
+ \let\do\@makeother\dospecials
+ \catcode`\^^M\active \catcode`\^^I=12\relax
+ \verbatim@start
+}{\@esphack}
+\newcommand{\Writetofile}[2]{%
+ \@bsphack
+ \Iffileundefined{#1}{}{%
+ \Ifopen{#1}{%
+ {%
+ \let\protect\string
+ \Ifanswerfiles{%
+ \immediate\write\@nameuse{#1@file}{#2}%
+ }{}%
+ }%
+ }{}%
+ }%
+ \@esphack
+}
+\newcommand{\Ifopen}[3]{%
+ \csname if#1open\endcsname#2\else#3\fi}%
+\newcommand{\Iffileundefined}[3]{%
+ \csname ifx\expandafter\endcsname
+ \csname #1@file\endcsname\relax
+ #2\else#3\fi}
+\newcommand{\Ifanswerfiles}[2]{%
+ \ifanswerfiles #1\else #2\fi}
+\def\Opensolutionfile#1{%
+ \@ifnextchar[{\define@filename{#1}}%
+ {\define@filename{#1}[#1]}}%
+\def\define@filename#1[#2]{%
+ \global\@namedef{#1@filename}{#2\solutionpoint\solutionextension}%
+ \Ifanswerfiles{%
+ \typeout{Output from handle #1 going
+ to #2.\solutionextension}%
+ }{}%
+ \Iffileundefined{#1}{%
+ \expandafter\newwrite\csname #1@file\endcsname
+ \csname newif\expandafter\endcsname
+ \csname if#1open\endcsname
+ \global\csname #1openfalse\endcsname
+ \expandafter\ifx\csname Open#1hook\endcsname\relax
+ \global\@namedef{Open#1hook}##1{}%
+ \fi
+ \expandafter\ifx\csname Close#1hook\endcsname\relax
+ \global\@namedef{Close#1hook}##1{}%
+ \fi
+ }{}%
+ \let\Tmp\relax
+ \Ifopen{#1}{\typeout{File #1 already open}}{%
+ \Ifanswerfiles{%
+ \immediate\openout\@nameuse{#1@file}=%
+ \@nameuse{#1@filename}%
+ }{}%
+ \global\csname#1opentrue\endcsname
+ \def\Tmp{\@nameuse{Open#1hook}{#1}}%
+ }%
+ \Tmp
+}
+\def\Closesolutionfile#1{%
+ \let\Tmp\relax
+ \Iffileundefined{#1}{}{%
+ \Ifopen{#1}{%
+ \Ifanswerfiles{%
+ \immediate\closeout\@nameuse{#1@file}%
+ }{}%
+ \global\csname #1openfalse\endcsname
+ \def\Tmp{\@nameuse{Close#1hook}{#1}}%
+ }{}%
+ }%
+ \Tmp
+}
+\def\Readsolutionfile#1{%
+ \Ifanswerfiles{%
+ \Iffileundefined{#1}{}{%
+ \Ifopen{#1}{%
+ \typeout{WARNING: attempt to read open file #1}%
+ }{%
+ \edef\Tmp{%
+ \noexpand\InputIfFileExists
+ {\@nameuse{#1@filename}}{}%
+ {\noexpand\message{File
+ \@nameuse{#1@filename}%
+ \space not found}}%
+ }%
+ \Tmp
+ }%
+ }%
+ }{}%
+}
+
+\newcommand{\Newassociation}[3]{%
+ \newsolution{#2}%
+ \expandafter\ifx\csname #3opentrue\endcsname\relax
+ \expandafter\newif\csname if#3open\endcsname
+ \fi
+ \newenvironment{#1}{%
+ \Ifanswerfiles{%
+ \let\Tmp\relax
+ \Iffileundefined{#3}{}{%
+ \Ifopen{#3}{%
+ \immediate\write\@nameuse{#3@file}%
+ {\string\begin{#2}\@nameuse{#2params}}%
+ \def\Tmp{\Filesave{#3}}%
+ }{}%
+ }%
+ }{%
+ \edef\Tmp{\noexpand\begin{#2}\@nameuse{#2params}}%
+ }%
+ \csname pre#1\endcsname
+ \Tmp
+ }%
+ {%
+ \Ifanswerfiles{%
+ \Iffileundefined{#3}{}{%
+ \Ifopen{#3}{%
+ \endFilesave%
+ \immediate\write\@nameuse{#3@file}%
+ {\string\end{#2}}%
+ \csname post#1\endcsname
+ }{}%
+ }%
+ }{%
+ \end{#2}%
+ }%
+ }%
+}
+\newcommand{\newsolution}[1]{%
+ \@ifundefined{#1}{%
+ \global\@namedef{#1params}{{\Currentlabel}}%
+ \newenvironment{#1}[1]%
+ {%
+ \csname pre#1\endcsname
+ \trivlist
+ \item[\hskip\itemsep{\@nameuse{#1label}{##1}}]}%
+ {\csname post#1\endcsname\endtrivlist}%
+ \global\@namedef{#1label}##1{\solutionstyle{##1}}%
+ }{\typeout{WARNING: environment #1 already in use}}%
+}
+\newcommand{\solutionstyle}[1]{\textbf{#1}}
+\newcommand{\Currentlabel}{\@currentlabel}
+\endinput
+%%
+%% End of file `answers.sty'.