From 394e8e9b46f6dd8c0ccb04910b0e21ff218cb95c Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 12 Jan 2006 23:51:23 +0000 Subject: answers git-svn-id: svn://tug.org/texlive/trunk@663 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/answers/answers.sty | 195 ++++++++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/answers/answers.sty 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..d4a379a6d0a --- /dev/null +++ b/Master/texmf-dist/tex/latex/answers/answers.sty @@ -0,0 +1,195 @@ +%% +%% This is file `answers.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% answers.dtx (with options: `answers') +%% +%% Copyright (C) 1990,1994 Mike Piff, University of Sheffield, England +%% +%% You are not allowed to change this file. +%% +%% You are NOT ALLOWED to distribute this file alone. You are NOT +%% ALLOWED to take money for the distribution or use of this +%% file except for a nominal charge for copying etc. +%% +%% Please address any problems to: +%% +%% M.Piff@shef.ac.uk +%% +%% For updates, contact your nearest CTAN site. +%% +\def\fileversion{2.10} +\def\filedate{16 Dec 1997 17:05:29 BST} +\def\filename{answers.dtx} +\def\Copyright{Copyright (C) 1990,1994 Mike Piff, + University of Sheffield, England} +\NeedsTeXFormat{LaTeX2e}[1996/06/01] +\ProvidesPackage{answers}[1996/07/10] +\typeout{Package `answers' <\filedate>.} +\typeout{\Copyright} +\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'. -- cgit v1.2.3