diff options
author | Karl Berry <karl@freefriends.org> | 2006-07-20 18:47:23 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-07-20 18:47:23 +0000 |
commit | 7a01b2f895cca6398088b5ec490c896dee03d2fd (patch) | |
tree | 51938b8ee0bdb7c1f29d8d114ac15adbe53a6dc1 /Master/texmf-dist/doc/latex/probsoln | |
parent | c1bc79c2f31e5ca9ba713e8cd5582a4b0a7f3fbc (diff) |
probsoln update (3mar06)
git-svn-id: svn://tug.org/texlive/trunk@1885 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/probsoln')
17 files changed, 1305 insertions, 425 deletions
diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/1stprncp.tex b/Master/texmf-dist/doc/latex/probsoln/1stprncp.tex index f857392a6ef..d7ccacdcda3 100644 --- a/Master/texmf-dist/doc/latex/probsoln/samples/1stprncp.tex +++ b/Master/texmf-dist/doc/latex/probsoln/1stprncp.tex @@ -1,4 +1,31 @@ -% These all involve differentiating from 1st principles +%% +%% This is file `1stprncp.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% probsoln.dtx (with options: `1stprncp.tex,package') +%% Copyright (C) 2006 Nicola Talbot, all rights reserved. +%% If you modify this file, you must change its name first. +%% You are NOT ALLOWED to distribute this file alone. You are NOT +%% ALLOWED to take money for the distribution or use of either this +%% file or a changed version, except for a nominal charge for copying +%% etc. +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} \newproblem{dfp:xcube}{% Differentiate $f(x) = x^3$ with respect to $x$ by first principles.}{% @@ -44,7 +71,7 @@ Differentiate from first principles $f(x) = c$ where $c$ is a constant.}{% \end{eqnarray*}} \newproblem{dfp:cosx}{% -Given +Given \begin{eqnarray*} \lim_{x \rightarrow 0} \frac{\cos x - 1}{x} & = & 0\\ \lim_{x \rightarrow 0} \frac{\sin x}{x} & = & 1 @@ -55,7 +82,10 @@ differentiate from first principles $f(x) = \cos x$.}{% & = & \lim_{\Delta x \rightarrow 0} \frac{\cos(x + \Delta x) - \cos(x)}{\Delta x}\\ & = & \lim_{\Delta x \rightarrow 0} \frac{\cos x\cos\Delta x - \sin x\sin\Delta x - \cos x}{\Delta x}\\ & = & \lim_{\Delta x \rightarrow 0} \frac{\cos x(\cos\Delta x - 1) - \sin x\sin\Delta x}{\Delta x}\\ - & = & \cos x\lim_{\Delta x \rightarrow 0}\frac{\cos\Delta x - 1}{\Delta x} + & = & \cos x\lim_{\Delta x \rightarrow 0}\frac{\cos\Delta x - 1}{\Delta x} - \sin x\lim_{\Delta x \rightarrow 0}\frac{\sin\Delta x}{\Delta x}\\ & = & -1 \qquad\mbox{(using given results)} \end{eqnarray*}} +\endinput +%% +%% End of file `1stprncp.tex'. diff --git a/Master/texmf-dist/doc/latex/probsoln/CHANGES b/Master/texmf-dist/doc/latex/probsoln/CHANGES new file mode 100644 index 00000000000..288adf8bb83 --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/CHANGES @@ -0,0 +1,10 @@ +probsoln package versions: + +Version 2.02: Added \selectallproblems which selects all the problems +in a given database, in the order in which they were defined. + +Version 2.01: Provided means to customise the way in which randomly +selected problems are displayed. Added \doforrandN command (like \@for +but for a random subset of the specified list.) Added \random command +which stores a random number in the given range in the specified +counter. diff --git a/Master/texmf-dist/doc/latex/probsoln/README b/Master/texmf-dist/doc/latex/probsoln/README index fccd89989bd..77653261977 100644 --- a/Master/texmf-dist/doc/latex/probsoln/README +++ b/Master/texmf-dist/doc/latex/probsoln/README @@ -1,36 +1,49 @@ -LaTeX Package : probsoln v 2.0 +LaTeX Package : probsoln v 2.02 -Last Modified : 21 Mar 2001 +Last Modified : 2 Mar 2006 -Author : N.L.C. Talbot +Author : Nicola L.C. Talbot Files : probsoln.dtx - documented source file probsoln.ins - installation script - sample.tex - example file - samples - directory containing files used in sample.tex - -The package probsoln.sty is designed for lecturers who have to generate -new problem sheets for their students on a regular basis (e.g. yearly) -by randomly selecting a specified number of problems defined in another file. -This means that you can easily generate a new problem sheet that is different -from the previous year, thus alieviating the temptation of students to seek -out the previous year's students and checking out their answers. -The solutions to the problems can be defined along with the problem, making -it easy to generate the solution sheet from the same source code. +The package probsoln.sty is designed for lecturers who have +to generate new problem sheets for their students on a +regular basis (e.g. yearly) by randomly selecting a +specified number of problems defined in another file. +This means that you can easily generate a new problem sheet +that is different from the previous year, thus alieviating +the temptation of students to seek out the previous year's +students and checking out their answers. The solutions to +the problems can be defined along with the problem, making +it easy to generate the solution sheet from the same source +code. To extract the code do: latex probsoln.ins +This will create the file probsoln.sty which should be placed +somewhere on your TeX path. It will also create several +sample documents, sample*.tex, and sample databases used +by the sample documents. If you can't bring yourself to +read the manual, please try out these sample +documents to give yourself an idea of what to do. + To extract the documentation do: latex probsoln.dtx latex probsoln.dtx -A sample file, sample.tex which loads in problems from samples/*.tex, is provided to illustrate -the use of this package. +Comment out \OnlyDescription if you want the documented code. + +If you experience difficulties, try reading the +troubleshooting section of the manual. If that doesn't +help try +http://theoval.cmp.uea.ac.uk/~nlct/latex/packages/faq/ -This material is subject to the LaTeX Project Public License. See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html for the details of that license. +This material is subject to the LaTeX Project Public License. +See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html for +the details of that license. http://theoval.cmp.uea.ac.uk/~nlct/ diff --git a/Master/texmf-dist/doc/latex/probsoln/args.tex b/Master/texmf-dist/doc/latex/probsoln/args.tex new file mode 100644 index 00000000000..af1ee73778b --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/args.tex @@ -0,0 +1,72 @@ +%% +%% This is file `args.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% probsoln.dtx (with options: `args.tex,package') +%% Copyright (C) 2006 Nicola Talbot, all rights reserved. +%% If you modify this file, you must change its name first. +%% You are NOT ALLOWED to distribute this file alone. You are NOT +%% ALLOWED to take money for the distribution or use of either this +%% file or a changed version, except for a nominal charge for copying +%% etc. +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} + +\newcount\ctr +\newproblem[3]{diff:quad}{% +\(f(x) = +\ifnum#1=0 +\else +\ifnum#1=1\else#1\fi x^2 +\fi +\ifnum#2=0 +\else +\ifnum#2>0 \ifnum#1=0 \else + \fi \fi +\ifnum#2=1\else#2\fi x +\fi +\ifnum#3=0 +\else +\ifnum#3>0 \ifnum#2=0 \ifnum#1=0 \else + \fi \else + \fi\fi +#3 +\fi\) +}{% +\(f'(x) = +\ifnum#1=0 +\else +\ctr=2 +\multiply\ctr by #1 +\the\ctr x +\fi +\ifnum#2=0 +\else +\ifnum#2>0 \ifnum#1=0 \else + \fi \fi +#2 +\fi +\ifnum#1=0 \ifnum#2=0 0 \fi\fi +\) +} + +\newproblem[1]{diff:sin}{% +\(f(x) = \sin(#1x)\) +}{% +\(f'(x) = #1\cos(#1x)\) +} + +\endinput +%% +%% End of file `args.tex'. diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/easy.tex b/Master/texmf-dist/doc/latex/probsoln/easy.tex index 5aa99ed04ca..dd2d1ba160b 100644 --- a/Master/texmf-dist/doc/latex/probsoln/samples/easy.tex +++ b/Master/texmf-dist/doc/latex/probsoln/easy.tex @@ -1,4 +1,31 @@ -% These are all easy differentiation problems +%% +%% This is file `easy.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% probsoln.dtx (with options: `easy.tex,package') +%% Copyright (C) 2006 Nicola Talbot, all rights reserved. +%% If you modify this file, you must change its name first. +%% You are NOT ALLOWED to distribute this file alone. You are NOT +%% ALLOWED to take money for the distribution or use of either this +%% file or a changed version, except for a nominal charge for copying +%% etc. +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} \newproblem{diffeasy:gpowh}{% \(f(x) = g(x)^{h(x)}.\)}{% @@ -82,3 +109,7 @@ f'(x) & = & g'(x)\ln(g(x)) + \frac{g(x)}{g(x)}g'(x)\\ \newproblem{diffeasy:sinx/x}{% $y = \frac{\sin x}{x}$.}{% \[\frac{dy}{dx} = \frac{\cos x}{x} - \frac{\sin x}{x^2}\]} + +\endinput +%% +%% End of file `easy.tex'. diff --git a/Master/texmf-dist/doc/latex/probsoln/implicit.tex b/Master/texmf-dist/doc/latex/probsoln/implicit.tex new file mode 100644 index 00000000000..f6b706871cd --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/implicit.tex @@ -0,0 +1,71 @@ +%% +%% This is file `implicit.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% probsoln.dtx (with options: `implicit.tex,package') +%% Copyright (C) 2006 Nicola Talbot, all rights reserved. +%% If you modify this file, you must change its name first. +%% You are NOT ALLOWED to distribute this file alone. You are NOT +%% ALLOWED to take money for the distribution or use of either this +%% file or a changed version, except for a nominal charge for copying +%% etc. +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} + +\newproblem{imd:circ}{% +Find the gradient of the unit circle ($x^2 + y^2 = 1$).}{% +Differentiating with respect to $x$ gives: +\begin{eqnarray*} +2x + 2y\frac{dy}{dx} & = & 0\\ +\frac{dy}{dx} & = & \frac{-2x}{2y}\\ + & = & \frac{-x}{\sqrt{1-x^2}}. +\end{eqnarray*}} + +\newproblem{imd:ysq:xcuov2mx}{% +Find $\frac{dy}{dx}$, given +\begin{displaymath} +y^2 = \frac{x^3}{2-x} +\end{displaymath}}{% +Differentiating both sides w.r.t.\ $x$: +\begin{eqnarray*} +2y\frac{dy}{dx} & = & \frac{(2-x)3x^2 - x^3(-1)}{(2-x)^2}\\ + & = & \frac{3x^2(2-x) + x^3}{(2-x)^2}\\ + & = & \frac{6x^2 - 3x^3 + x^3}{(2-x)^2}\\ + & = & \frac{6x^2-2x^3}{(2-x)^2}\\ + & = & 2x^2\frac{3-x}{(2-x)^2} +\end{eqnarray*} +Therefore +\begin{displaymath} +y\frac{dy}{dx} = x^2\frac{3-x}{(2-x)^2} +\end{displaymath}} + +\newproblem{imd:exy:IIxay}{% +Differentiate w.r.t.\ $x$: +\begin{displaymath} +e^{xy} = 2x + y +\end{displaymath}}{% +Differentiating both sides w.r.t.\ $x$: +\begin{eqnarray*} +e^{xy}(1y + x\frac{dy}{dx}) & = & 2 + \frac{dy}{dx}\\ +xe^{xy}\frac{dy}{dx} - \frac{dy}{dx} & = & 2 - ye^{xy} \\ +\frac{dy}{dx}(xe^{xy}-1) & = & 2 - ye^{xy}\\ +\frac{dy}{dx} & = & \frac{2-ye^{xy}}{xe^{xy}-1} +\end{eqnarray*}} +\endinput +%% +%% End of file `implicit.tex'. diff --git a/Master/texmf-dist/doc/latex/probsoln/manual.html b/Master/texmf-dist/doc/latex/probsoln/manual.html new file mode 100644 index 00000000000..8ba716bf93d --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/manual.html @@ -0,0 +1,742 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> + +<!--Converted with LaTeX2HTML 2002-2-1 (1.70) +original version by: Nikos Drakos, CBLU, University of Leeds +* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan +* with significant contributions from: + Jens Lippmann, Marek Rouchal, Martin Wilck and others --> +<HTML> +<HEAD> +<TITLE>probsoln.sty v2.02: LATEX2e Package to help create problem sheets</TITLE> +<META NAME="description" CONTENT="probsoln.sty v2.02: LATEX2e Package to help create problem sheets"> +<META NAME="keywords" CONTENT="manual"> +<META NAME="resource-type" CONTENT="document"> +<META NAME="distribution" CONTENT="global"> + +<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1"> +<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css"> + + +</HEAD> + +<BODY > +<A NAME="tex2html1" + HREF="http://theoval.cmp.uea.ac.uk/~nlct/">Dr Nicola Talbot</A> +| +<A NAME="tex2html2" + HREF="http://www.cmp.uea.ac.uk/">School of Computing Sciences</A> +| +<A NAME="tex2html3" + HREF="http://www.uea.ac.uk/">University of East Anglia</A> + +<P> + + <H1 ALIGN="CENTER">probsoln.sty v2.02: L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X2<SUB>e</SUB> Package to help create problem sheets</H1> +<DIV> + +<P ALIGN="CENTER"><STRONG>Nicola L.C. Talbot</STRONG></P> +<P ALIGN="CENTER"><STRONG>2nd March 2006</STRONG></P> +</DIV> + <BR> + +<H2><A NAME="SECTION00010000000000000000"> +Contents</A> +</H2> +<!--Table of Contents--> + +<UL> +<LI><A NAME="tex2html21" + HREF="manual.html#SECTION00020000000000000000">Introduction</A> +<LI><A NAME="tex2html22" + HREF="manual.html#SECTION00030000000000000000">Package Options</A> +<LI><A NAME="tex2html23" + HREF="manual.html#SECTION00040000000000000000">Creating a New Problem</A> +<LI><A NAME="tex2html24" + HREF="manual.html#SECTION00050000000000000000">Creating a Database</A> +<LI><A NAME="tex2html25" + HREF="manual.html#SECTION00060000000000000000">Displaying a Problem</A> +<LI><A NAME="tex2html26" + HREF="manual.html#SECTION00070000000000000000">Selecting All Problems</A> +<LI><A NAME="tex2html27" + HREF="manual.html#SECTION00080000000000000000">Selecting Problems at Random</A> +<LI><A NAME="tex2html28" + HREF="manual.html#SECTION00090000000000000000">Other Commands</A> +<LI><A NAME="tex2html29" + HREF="manual.html#SECTION000100000000000000000">Troubleshooting</A> +<UL> +<LI><A NAME="tex2html30" + HREF="manual.html#SECTION000101000000000000000">Unexpected Output</A> +<LI><A NAME="tex2html31" + HREF="manual.html#SECTION000102000000000000000">Error Messages</A> +</UL> +<BR> +<LI><A NAME="tex2html32" + HREF="manual.html#SECTION000110000000000000000">Contact Details</A> +<LI><A NAME="tex2html33" + HREF="manual.html#SECTION000120000000000000000">Index</A> +</UL> +<!--End of Table of Contents--> +<P> + +<H1><A NAME="SECTION00020000000000000000"> +Introduction</A> +</H1> +The <TT>probsoln</TT> package is designed for teachers or +lecturers who want to create problem sheets for their +students. This package was designed with specifically +mathematics problems in mind, but can be used for other +subjects as well. The idea is to create a file containing a +large number of problems with their solutions which can be +read in by L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X, and then select a number of problems to +typeset. This means that once the database has been set up, +each year you can easily create a new problem sheet that is +sufficiently different from the previous year, thus +preventing the temptation of current students seeking out +the previous year's students, and checking out their +answers. There is also an option that can be passed to the +package to determine whether or not the solutions should be +printed. In this way, one file can either produce the +student's version or the teacher's version. + +<P> + +<H1><A NAME="SECTION00030000000000000000"> +Package Options</A> +</H1> +The following options may be passed to this package: +<DIV ALIGN="CENTER"> +<TABLE CELLPADDING=3> +<TR><TD ALIGN="LEFT"><TT></TD><TD ALIGN="LEFT">answers </TT></TD> +<TD ALIGN="LEFT">Show the answers</TD> +</TR> +<TR><TD ALIGN="LEFT"><TT></TD><TD ALIGN="LEFT">noanswers </TT></TD> +<TD ALIGN="LEFT">Don't show the answers (default)</TD> +</TR> +</TABLE> +</DIV> + +<P> + +<H1><A NAME="SECTION00040000000000000000"> +Creating a New Problem</A> +</H1> + +<A NAME="newproblem"></A><TT>\newproblem</TT><A NAME="393"></A><code>[</code><I>nargs</I><code>]{</code><I>label</I><code>}{</code><I>problem</I><code>}{</code><I>solution</I><code>}</code> +<BR> +<BR> +A new problem is defined using the command +<TT>\newproblem</TT><A NAME="397"></A>. This does not print anything, +but merely stores the problem. The argument <I>label</I> is +a unique string that is assigned to this problem so that it +can be used later. The argument <I>problem</I> is normal +L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X code that should be used to typeset the problem. +The argument <I>solution</I> is normal L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X code that +should be used to typeset the solution, if required. For +example, the following defines a problem with the label +<A NAME="quaddiff"></A><TT>quaddiff</TT>: +<PRE> + \newproblem{quaddiff}{% + %This is the problem + \begin{displaymath} + f(x) = x^2 + 3x + 4 + \end{displaymath} + }{% + %This is the solution + \begin{displaymath} + f'(x) = 2x + 3 + \end{displaymath} + } +</PRE> + +<P> +The optional argument <I>nargs</I> specifies the number of +parameters this problem will take. By default this value is +0, but any value from 1 to 9 may be used. Each parameter is +referred to by <code>#1</code>, <code>#2</code>, ..., <code>#9</code>. +For example, the following problem, labelled <A NAME="sindiff"></A><TT>sindiff</TT>, +takes one parameter: +<PRE> +\newproblem[1]{sindiff}{% +\(f(x) = \sin(#1x)\) +}{% +\(f'(x) = #1\cos(#1x)\) +} +</PRE> + +<P> +The <A HREF="#quaddiff"><TT>quaddiff</TT></A> problem shown above can be made more +generic by using parameters<A NAME="diff:quad"></A>: +<PRE> +\newcount\ctr +\newproblem[3]{diff:quad}{% +\(f(x) = +\ifnum#1=0 +\else +\ifnum#1=1\else#1\fi x^2 +\fi +\ifnum#2=0 +\else +\ifnum#2>0 \ifnum#1=0 \else + \fi \fi +\ifnum#2=1\else#2\fi x +\fi +\ifnum#3=0 +\else +\ifnum#3>0 \ifnum#2=0 \ifnum#1=0 \else + \fi \else + \fi\fi +#3 +\fi\) +}{% +\(f'(x) = +\ifnum#1=0 +\else +\ctr=2 +\multiply\ctr by #1 +\the\ctr x +\fi +\ifnum#2=0 +\else +\ifnum#2>0 \ifnum#1=0 \else + \fi \fi +#2 +\fi + % print 0 if both #1 and #2 are 0 +\ifnum#1=0 \ifnum#2=0 0 \fi\fi +\) +} +</PRE> +The three parameters correspond to the coefficients. Note +that they must all be integers since T<SMALL>E</SMALL>X only performs +integer arithmetic. + +<P> + +<H1><A NAME="SECTION00050000000000000000"> +Creating a Database</A> +</H1> + +<P> +To generate a database, simply create a <TT>.tex</TT> file +where all the problems are defined using <A HREF="#newproblem"><TT>\newproblem</TT><A NAME="412"></A></A>, +and either <TT>\input</TT><A NAME="416"></A> it at the start of your document if +you want to use <A HREF="#sec:useprob">specific problems</A>, or pass it to +<A HREF="#sec:selran"><TT>\selectrandomly</TT><A NAME="424"></A></A>. This package +comes with some sample databases, along with some sample documents +that use these databases. + +<P> + +<H1><A NAME="SECTION00060000000000000000"></A> +<A NAME="sec:useprob"></A> +<BR> +Displaying a Problem +</H1> + +<A NAME="useproblem"></A><TT>\useproblem</TT><A NAME="429"></A><code>{</code><I>label</I><code>}</code> +<BR> +<BR> +Once a problem has been defined using <A HREF="#newproblem"><TT>\newproblem</TT><A NAME="435"></A></A>, it +can be typeset using the command <TT>\useproblem</TT><A NAME="439"></A>. If the +problem was defined to take arguments, the arguments to the +problem should come after the label. In the case of the +<A HREF="#sindiff"><TT>sindiff</TT></A> example above, the command +<code>\useproblem{sindiff}{2}</code> would produce the following: +<BR> +<BR> <I>f</I>(<I>x</I>) = sin(2<I>x</I>) + +<H4><A NAME="SECTION00060010000000000000"> +Solution:</A> +</H4> <I>f'</I>(<I>x</I>) = 2cos(2<I>x</I>) +<BR> +<BR> +whereas the command <code>\useproblem{diff:quad}{3}{0}{-2}</code> would produce: +<BR> +<BR> <I>f</I>(<I>x</I>) = 3<I>x</I><SUP>2</SUP> - 2 + +<H4><A NAME="SECTION00060020000000000000"> +Solution:</A> +</H4> <I>f'</I>(<I>x</I>) = 6<I>x</I> +<BR> +<BR> + +<P> +Suppose all the above problems are defined in the file +<TT>probs.tex</TT>, then the following code will create a +problem sheet with four questions in it: +<PRE> +\documentclass{article} + +\usepackage{probsoln} +\input{probs} + +\begin{document} +Differentiate the following functions with respect to $x$: +\begin{enumerate} +\item \useproblem{quaddiff} +\item \useproblem{sindiff}{4} +\item \useproblem{diff:quad}{2}{3}{1} +\item \useproblem{diff:quad}{0}{1}{2} +\end{enumerate} +\end{document} +</PRE> +The answer sheet can then be generated by passing the option +<TT>answers</TT> to the <TT>probsoln</TT> package. + +<P> + +<H1><A NAME="SECTION00070000000000000000"> +Selecting All Problems</A> +</H1> + +<P> +To select all problems defined in a database, in the order in +which they were defined, use the command: + +<A NAME="selectallproblems"></A><TT>\selectallproblems</TT><A NAME="447"></A><code>{</code><I>filename</I><code>}</code> +For example, suppose the problems are defined in the file +<TT>easy.tex</TT>, then the following will create a problem sheet +which uses all these problems: +<PRE> +\documentclass[a4paper]{article} + +\usepackage{probsoln} + +\begin{document} +Differentiate the following functions: +\begin{enumerate} +\selectallproblems{easy} +\end{enumerate} +\end{document} +</PRE> + +<P> + +<H1><A NAME="SECTION00080000000000000000"></A> +<A NAME="sec:selran"></A> +<BR> +Selecting Problems at Random +</H1> + +<A NAME="selectrandomly"></A><TT>\selectrandomly</TT><A NAME="452"></A><code>{</code><I>filename</I><code>}{</code><I>n</I><code>}</code> +<BR> +<BR> +The command <TT>\selectrandomly</TT><A NAME="456"></A> will select <I>n</I> +problems that are defined in the file <I>filename</I>. Each +problem is proceeded by +<A NAME="PSitem"></A><TT>\PSitem</TT><A NAME="461"></A> which is +defined to be <TT>\item</TT><A NAME="465"></A>, so the command +<TT>\selectrandomly</TT><A NAME="469"></A> should occur within one of the +list-like environments, such as <TT>enumerate</TT>. +For example: +<PRE> +\begin{enumerate} +\selectrandomly{easy.tex}{4} +\end{enumerate} +</PRE> +will result in four numbered problems, selected at random +from the file <TT>easy.tex</TT>. (The <TT>.tex</TT> extension +may be omitted.) Each problem is followed by the command +<A NAME="endPSNitem"></A><TT>\endPSNitem</TT><A NAME="474"></A> which by default does nothing. + +<P> +Multiple <TT>\selectrandomly</TT><A NAME="478"></A> commands may be used, however a +different file must be used each time. For +example: +<PRE> +\begin{enumerate} +\item Differentiate the following functions with respect to $x$: + +\begin{enumerate} +\selectrandomly{samples/easy.tex}{3} +\selectrandomly{samples/args.tex}{1} +\end{enumerate} + +\selectrandomly{samples/implicit.tex}{1} +\selectrandomly{samples/1stprncpl.tex}{1} + +\end{enumerate} +</PRE> +This will result in a total of 6 problems, numbered 1(a), +1(b), 1(c), 1(d), 2 and 3. + +<P> +If a randomly selected problem requires arguments, a message +similar to the following will be displayed: +<PRE> +Problem diff:quad requires 3 argument(s), please specify (e.g. {5}{3}): +</PRE> +Enter the required arguments, where each argument is +enclosed in braces ({ }). + +<P> + +<H1><A NAME="SECTION00090000000000000000"> +Other Commands</A> +</H1> + +The command <A NAME="PSNrandseed"></A><TT>\PSNrandseed</TT><A NAME="483"></A><code>{</code><I>n</I><code>}</code> specifies +the seed for the random number generator. For example, +if you are using <A HREF="#selectrandomly"><TT>\selectrandomly</TT><A NAME="489"></A></A>, +<code>\PSNrandseed{\year}</code> will produce a different set of +problems each year, whereas <code>\PSNrandseed{\time}</code> +will produce a different set of problems each time you +L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X the problem sheet (as long as you leave at least a +minute between runs.) + +<P> +The command <A NAME="random"></A><TT>\random</TT><A NAME="494"></A><code>{</code><I>counter</I><code>}{</code><I>a</I><code>}{</code><I>b</I><code>}</code> +generates a random number from <I>a</I> to <I>b</I> and +stores it in the L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X counter <I>counter</I>. For example, +to select 2, 3 or 4 problems from the file +<TT>implicit.tex</TT>: +<PRE> +\newcounter{numproblems} +\begin{enumerate} +\random{numproblems}{2}{4} +\selectrandomly{implicit.tex}{\value{numproblems}} +\end{enumerate} +</PRE> +(Note the use of <TT>\value</TT><A NAME="498"></A>.) + +<P> +This command can also be used to generate random values for +problems that take arguments. Consider the problem <A HREF="#diff:quad"><TT>diff:quad</TT></A> +defined earlier. Three counters can be defined to represent the +three coefficients: +<PRE> +\newcounter{A} +\newcounter{B} +\newcounter{C} +</PRE> +Random values can now be assigned to these counters: +<PRE> +\random{A}{-5}{5} +\random{B}{-5}{5} +\random{C}{-5}{5} +</PRE> +Finally, the problem can be used (note the use of <TT>\arabic</TT><A NAME="505"></A>): +<PRE> +\useproblem{diff:quad}{\arabic{A}}{\arabic{B}}{\arabic{C}} +</PRE> + +<P> +The command +<A NAME="doforrandN"></A><TT>\doforrandN</TT><A NAME="510"></A><code>{</code><I>n</I><code>}{</code><I>cmd</I><code>}{</code><I>list</I><code>}{</code><I>text</I><code>}</code> will apply +<I>text</I> for a random selection of <I>n</I> items in the +comma separated <I>list</I>. In each iteration the list +item is denoted by <I>cmd</I>. For example, suppose you +have three files called <TT>file1.tex</TT>, +<TT>file2.tex</TT> and <TT>file3.tex</TT>, and you want to +select 1 problem from two of the three files, then you can +do: +<PRE> +\doforrandN{2}{\file}{file1,file2,file3}{\selectrandomly{\file}{1}} +</PRE> +Note that it is also possible to do +<PRE> +\newcounter{numproblems} +\random{numproblems}{1}{3} +\selectrandomly{file\arabic{numproblems}}{1} +\random{numproblems}{1}{3} +\selectrandomly{file\arabic{numproblems}}{1} +</PRE> +however there is a possibility that the same file may be +selected twice which will cause an error. + +<P> +The command <A NAME="showanswers"></A><TT>\showanswers</TT><A NAME="515"></A> will show the solutions from +that point on. May be localised by placing within a group. + +<P> +The command <A NAME="hideanswers"></A><TT>\hideanswers</TT><A NAME="520"></A> will hide the solutions from +that point on. May be localised by placing within a group. + +<P> +The solution is placed inside the solution<TT>solution</TT> +environment. By default this environment simply does +<code>\paragraph{\solutionname:}</code> at the start, where +<A NAME="solutionname"></A><TT>\solutionname</TT><A NAME="526"></A> +has the value: Solution. See the file <TT>sample3.tex</TT>, which +comes with this package, for an illustration of how to +customise the way in which the randomly selected problems are +displayed. This sample file randomly selects multiple choice +problems stored in the file <TT>tabmchoice.tex</TT>, and displays them +in a longtable <TT>environment</TT>. + +<P> +The boolean variable <TT>showanswers</TT> is defined to be +true if the answers are shown and false otherwise. You can +therefore do something like: +<PRE> +\ifthenelse{\boolean{showanswers}}{\textbf{Solution Sheet}}{} +</PRE> +and <B>Solution Sheet</B> will be printed only if the +answers are displayed. (For more information on +<TT>\ifthenelse</TT><A NAME="531"></A> and <TT>\boolean</TT><A NAME="535"></A> see the +documentation for the <TT>ifthen</TT> package by +David Carlisle.) + +<P> +The <TT>showanswers</TT> switch can also be used within the definition +of a problem, if you want the question to appear differently if the +solution is displayed. For example: +<PRE> +\newproblem{mc:prod}{% +Which of the following is the derivative of $x\sin(x)$? +(Circle the correct answer.) +\ifthenelse{\boolean{showanswers}}{}% +{\begin{description} +\item[A] $\sin(x)$ +\item[B] $x\cos(x)$ +\item[C] $\sin(x) + x\cos(x)$ +\end{description} +}}{% +\begin{description} +\item[A] $\sin(x)$ +\item[B] $x\cos(x)$ +\item[\textcircled{C}] $\sin(x) + x\cos(x)$ (product rule). +\end{description} +} +</PRE> +If the solutions are not displayed, the question will appear +as +<DL> +<DT></DT> +<DD>Which of the following is the derivative of +<I>x</I>sin(<I>x</I>)? +(Circle the correct answer.) +<DL> +<DT><STRONG>A</STRONG></DT> +<DD>sin(<I>x</I>) +</DD> +<DT><STRONG>B</STRONG></DT> +<DD><I>x</I>cos(<I>x</I>) +</DD> +<DT><STRONG>C</STRONG></DT> +<DD>sin(<I>x</I>)+<I>x</I>cos(<I>x</I>) +</DD> +</DL> +</DD> +</DL> +otherwise it will appear as: +<DL> +<DT></DT> +<DD>Which of the following is the derivative of +<I>x</I>sin(<I>x</I>)? +(Circle the correct answer.) +<DL> +<DT><STRONG>A</STRONG></DT> +<DD>sin(<I>x</I>) +</DD> +<DT><STRONG>B</STRONG></DT> +<DD><I>x</I>cos(<I>x</I>) +</DD> +<DT><STRONG><FONT SIZE="+2">©</FONT></STRONG></DT> +<DD>sin(<I>x</I>) + <I>x</I>cos(<I>x</I>) (product rule) +</DD> +</DL> +</DD> +</DL> + +<P> + +<H1><A NAME="SECTION000100000000000000000"> +Troubleshooting</A> +</H1> + +<H2><A NAME="SECTION000101000000000000000"> +Unexpected Output</A> +</H2> + +<UL> +<LI>I have lots of blank space before the first problem when +using <A HREF="#selectrandomly"><TT>\selectrandomly</TT><A NAME="541"></A></A>. + +<P> +This is probably because you have lots of extraneous white space +in your database. <A HREF="#selectrandomly"><TT>\selectrandomly</TT><A NAME="547"></A></A> will input the entire +file, so any extra space will be included. Try commenting out the +extra space using %. +</LI> +</UL> + +<P> + +<H2><A NAME="SECTION000102000000000000000"> +Error Messages</A> +</H2> + +<UL> +<LI><TT>! Package probsoln Error: Label ... already used. +</TT> + +<P> +Each label identifier used in <A HREF="#newproblem"><TT>\newproblem</TT><A NAME="553"></A></A> must be +unique. Check to make sure you haven't used the same label +more than once. Also check to make sure you haven't +<TT>\input</TT><A NAME="557"></A>ed or randomly selected from the same file more +than once. (Or <TT>\input</TT><A NAME="561"></A>ed and randomly selected from +the same file.) + +<P> +</LI> +<LI><TT>! Package probsoln Error: Label ... undefined. +</TT> + +<P> +You need to define a problem before you can use it. Check to +make sure you haven't mis-spelt it, and check to make sure you +have <TT>\input</TT><A NAME="565"></A>ed the file in which it is defined. + +<P> +</LI> +<LI><TT>! Package probsoln Error: Requested number too large. +</TT> + +<P> +You have asked for more problems than are defined within the +specified file. All problems in that file will be selected. + +<P> +</LI> +<LI><TT>! Package probsoln Error: Can't randomly select <I>n</I> +item(s) +</TT> + +<P> +You have asked to randomly select <I>n</I> items from a list +that has less than <I>n</I> elements. For example, the +following will generate this error: +<PRE> +\doforrandN{10}{\file}{file1,file2,file3}{% +\selectrandomly{\file}{1}} +</PRE> +In this case the list, <TT>file1,file2,file3</TT> has only 3 +elements, but the user has asked for 10 elements. If you type +`h' at the L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X prompt it will tell you how many items it thinks +there are in the list. Remember that each item must be separated by a +comma. + +<P> +</LI> +<LI><TT>! LaTeX Error: Lonely <TT>\item</TT><A NAME="569"></A>-perhaps missing list +environment. +</TT> + +<P> +Each problem selected using <A HREF="#selectrandomly"><TT>\selectrandomly</TT><A NAME="575"></A></A> is +proceeded by <A HREF="#PSNitem"><TT>\PSNitem</TT><A NAME="581"></A></A> which by default is defined +as <TT>\item</TT><A NAME="585"></A>, and should therefore be +placed in one of the list environments, such as +<TT>enumerate</TT>. Alternatively, redefine <A HREF="#PSNitem"><TT>\PSNitem</TT><A NAME="591"></A></A>. + +<P> +</LI> +<LI>I get an error when I put a command definition in my database +when using <TT>\selectrandomly</TT><A NAME="595"></A>. + +<P> +<A HREF="#selectrandomly"><TT>\selectrandomly</TT><A NAME="601"></A></A> inputs the database twice, so any +command definition will be read twice, causing an error. You +can use the switch <TT>\iffirstpass</TT><A NAME="605"></A> to prevent the error. For +example: +<PRE> +\iffirstpass +\newcommand{\mycmd}{} +\fi +</PRE> +It is generally not a good idea to put anything other than +<A HREF="#newproblem"><TT>\newproblem</TT><A NAME="611"></A></A> commands within the database. + +<P> +</LI> +</UL> + +<P> + +<H1><A NAME="SECTION000110000000000000000"> +Contact Details</A> +</H1> +Dr Nicola Talbot +<BR> +School of Computing Sciences +<BR> +University of East Anglia +<BR> +Norwich. NR4 7TJ +<BR><TT><A NAME="tex2html4" + HREF="http://theoval.cmp.uea.ac.uk/~nlct/">http://theoval.cmp.uea.ac.uk/~nlct/</A></TT> +<P> +<BR> + +<H2><A NAME="SECTION000120000000000000000"> +Index</A> +</H2><DL COMPACT> +<DT><STRONG><TT>\arabic</TT></STRONG> +<DD><A HREF="manual.html#505">Other Commands</A> +<DT><STRONG><TT>\boolean</TT></STRONG> +<DD><A HREF="manual.html#535">Other Commands</A> +<DT><STRONG><TT>\doforrandN</TT></STRONG> +<DD><A HREF="manual.html#510">Other Commands</A> +<DT><STRONG><TT>\endPSNitem</TT></STRONG> +<DD><A HREF="manual.html#474">Selecting Problems at Random</A> +<DT><STRONG><TT>\hideanswers</TT></STRONG> +<DD><A HREF="manual.html#520">Other Commands</A> +<DT><STRONG><TT>\iffirstpass</TT></STRONG> +<DD><A HREF="manual.html#605">Error Messages</A> +<DT><STRONG><TT>\ifthenelse</TT></STRONG> +<DD><A HREF="manual.html#531">Other Commands</A> +<DT><STRONG><TT>\input</TT></STRONG> +<DD><A HREF="manual.html#416">Creating a Database</A> + | <A HREF="manual.html#557">Error Messages</A> + | <A HREF="manual.html#561">Error Messages</A> + | <A HREF="manual.html#565">Error Messages</A> +<DT><STRONG><TT>\item</TT></STRONG> +<DD><A HREF="manual.html#465">Selecting Problems at Random</A> + | <A HREF="manual.html#569">Error Messages</A> + | <A HREF="manual.html#585">Error Messages</A> +<DT><STRONG><TT>\newproblem</TT></STRONG> +<DD><A HREF="manual.html#393">Creating a New Problem</A> + | <A HREF="manual.html#397">Creating a New Problem</A> + | <A HREF="manual.html#412">Creating a Database</A> + | <A HREF="manual.html#435">Displaying a Problem</A> + | <A HREF="manual.html#553">Error Messages</A> + | <A HREF="manual.html#611">Error Messages</A> +<DT><STRONG><TT>\PSitem</TT></STRONG> +<DD><A HREF="manual.html#461">Selecting Problems at Random</A> +<DT><STRONG><TT>\PSNitem</TT></STRONG> +<DD><A HREF="manual.html#581">Error Messages</A> + | <A HREF="manual.html#591">Error Messages</A> +<DT><STRONG><TT>\PSNrandseed</TT></STRONG> +<DD><A HREF="manual.html#483">Other Commands</A> +<DT><STRONG><TT>\random</TT></STRONG> +<DD><A HREF="manual.html#494">Other Commands</A> +<DT><STRONG><TT>\selectallproblems</TT></STRONG> +<DD><A HREF="manual.html#447">Selecting All Problems</A> +<DT><STRONG><TT>\selectrandomly</TT></STRONG> +<DD><A HREF="manual.html#420">Creating a Database</A> + | <A HREF="manual.html#424">Creating a Database</A> + | <A HREF="manual.html#452">Selecting Problems at Random</A> + | <A HREF="manual.html#456">Selecting Problems at Random</A> + | <A HREF="manual.html#469">Selecting Problems at Random</A> + | <A HREF="manual.html#478">Selecting Problems at Random</A> + | <A HREF="manual.html#489">Other Commands</A> + | <A HREF="manual.html#541">Unexpected Output</A> + | <A HREF="manual.html#547">Unexpected Output</A> + | <A HREF="manual.html#575">Error Messages</A> + | <A HREF="manual.html#601">Error Messages</A> + | <A HREF="manual.html#595">Error Messages</A> +<DT><STRONG><TT>\showanswers</TT></STRONG> +<DD><A HREF="manual.html#515">Other Commands</A> +<DT><STRONG><TT>\solutionname</TT></STRONG> +<DD><A HREF="manual.html#526">Other Commands</A> +<DT><STRONG><TT>\useproblem</TT></STRONG> +<DD><A HREF="manual.html#429">Displaying a Problem</A> + | <A HREF="manual.html#439">Displaying a Problem</A> +<DT><STRONG><TT>\value</TT></STRONG> +<DD><A HREF="manual.html#498">Other Commands</A> + +</DL> +<BR><HR> +<ADDRESS> +<a href=http://theoval.cmp.uea.ac.uk/~nlct/>Nicola L. C. Talbot</a>. <a href=http://www.cmp.uea.ac.uk/>School of Computing Sciences</a>. <a href=http://www.uea.ac.uk/>University of East Anglia.</a> Last Modified: 2006-03-02 +</ADDRESS> +</BODY> +</HTML> diff --git a/Master/texmf-dist/doc/latex/probsoln/mchoice.tex b/Master/texmf-dist/doc/latex/probsoln/mchoice.tex new file mode 100644 index 00000000000..5f266bb3cd3 --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/mchoice.tex @@ -0,0 +1,65 @@ +%% +%% This is file `mchoice.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% probsoln.dtx (with options: `mchoice.tex,package') +%% Copyright (C) 2006 Nicola Talbot, all rights reserved. +%% If you modify this file, you must change its name first. +%% You are NOT ALLOWED to distribute this file alone. You are NOT +%% ALLOWED to take money for the distribution or use of either this +%% file or a changed version, except for a nominal charge for copying +%% etc. +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\newproblem{mc:prod}{% +Which of the following is the derivative of $x\sin(x)$? +(Circle the correct answer.) +\ifthenelse{\boolean{showanswers}}{}% +{\begin{description} +\item[A] $\sin(x)$ +\item[B] $x\cos(x)$ +\item[C] $\sin(x) + x\cos(x)$ +\end{description} +}}{% +\begin{description} +\item[A] $\sin(x)$ +\item[B] $x\cos(x)$ +\item[\textcircled{C}] $\sin(x) + x\cos(x)$ (product rule). +\end{description} +} + +\newproblem{mc:quot}{% +Which of the following is the derivative of $\frac{\sin(x)}{x}$? +(Circle the correct answer.) +\ifthenelse{\boolean{showanswers}}{}% +{\begin{description} +\item[A] $\sin(x)$ +\item[B] $\cos(x)$ +\item[C] $\frac{\cos(x)x-\sin(x)}{x^2}$ +\end{description} +}}{% +\begin{description} +\item[A] $\sin(x)$ +\item[B] $\cos(x)$ +\item[\textcircled{C}] $\frac{\cos(x)x-\sin(x)}{x^2}$ +(quotient rule) +\end{description} +} +\endinput +%% +%% End of file `mchoice.tex'. diff --git a/Master/texmf-dist/doc/latex/probsoln/probsoln.html b/Master/texmf-dist/doc/latex/probsoln/probsoln.html deleted file mode 100644 index 81a36df337e..00000000000 --- a/Master/texmf-dist/doc/latex/probsoln/probsoln.html +++ /dev/null @@ -1,293 +0,0 @@ -<html> -<head> -<title>probsoln.sty v 2.0</title> -</head> -<body> -<a href=http://theoval.cmp.uea.ac.uk/~nlct>Dr Nicola Talbot</a> | -<a href=http://www.cmp.uea.ac.uk/>School of Computing Sciences</a> | -<a href=http://www.uea.ac.uk/>University of East Anglia</a> - -<h1>probsoln.sty v 2.0 : LaTeX Package to help create problem sheets</h1> -<ul> -<li><a href=#intro>Introduction</a> -<li><a href=#options>Package Options</a> -<li><a href=#commands>Commands Provided</a> -<ul> -<li><a href=#newproblem>Creating a New Problem</a> -<li><a href=#sec:useprob>Displaying a Problem</a> -<li><a href=#sec:selran>Selecting Problems at Random</a> -<li><a href=#other>Other Commands</a> -</ul> -<li><a href=#errors>Error Messages</a> -</ul> - -<h2><a name=intro>Introduction</a></h2> - - The package <tt>probsoln.sty</tt> is designed for teachers or lecturers who - want to create problem sheets for their students. This package was - designed with specifically mathematics problems in mind, but can - be used for other subjects as well. The idea is to create a file - containing a large number of problems with their solutions which - can be read in by LaTeX, and then select a number of problems to - typeset. This means that once the database has been set up, each - year you can easily create a new problem sheet that is sufficiently - different from the previous year, thus preventing the temptation - of current students seeking out the previous year's students, - and checking out their answers. There is also an option that can be - passed to the package to determine whether or not the solutions - should be printed. In this way, one file can either produce - the student's version or the teacher's version. - - <h2><a name=options>Package Options</a></h2> - The following options may be passed to this package: -<p> -<table> -<tr><td><tt> answers</tt></td><td>Show the answers</td></tr> -<tr><td><tt> noanswers</tt></td><td>Don't show the answers (default)</td></tr> -</table> - -<h2><a name=commands>Commands Provided</a></h2> -<h3><a name=newproblem>Creating a New Problem</a></h3> - -<tt>\newproblem[</tt><em>nargs</em><tt>]{</tt><em>label</em><tt>}{</tt><em>problem</em><tt>}{</tt><em>solution</em><tt>}</tt> -<p> - A new problem is defined using the command <tt>\newproblem</tt>. This does not print anything, - but merely stores the problem. The argument <em>label</em> is a unique string that is - assigned to this problem so that it can be used later. The argument <em>problem</em> - is normal LaTeX code that should be used to typeset the problem. The argument - <em>solution</em> is normal LaTeX code that should be used to typeset the solution, - if required. For example: -<a name=quaddiff> -<pre> -\newproblem{quaddiff}{% -% This is the problem -\begin{displaymath} -f(x) = x^2 + 3x + 4 -\end{displaymath} -}{% -% This is the solution -\begin{displaymath} -f'(x) = 2x + 3 -\end{displaymath} -} -</pre></a> -<p> - The optional argument <em>nargs</em> specifies the number of parameters this - problem will take. By default this value is 0, but any value from 1 to 9 - may be used. Each parameter is refered to by <tt>#1</tt>, <tt>#2</tt>, ..., <tt>#9</tt>. - For example, the following problem takes one parameter: -<a name=sindiff> -<pre> -\newproblem[1]{sindiff}{% -\(f(x) = \sin(#1x)\) -}{% -\(f'(x) = #1\cos(#1x)\) -} -</pre></a> - - The <a href=#quaddiff><tt>quaddiff</tt></a> problem shown above can be made more generic by using parameters: -<pre> -\newcount\ctr -\newproblem[3]{diff:quad}{% -\(f(x) = -\ifnum#1=0 -\else -\ifnum#1=1\else#1\fi x^2 -\fi -\ifnum#2=0 -\else -\ifnum#2>0 \ifnum#1=0 \else + \fi \fi -\ifnum#2=1\else#2\fi x -\fi -\ifnum#3=0 -\else -\ifnum#3>0 \ifnum#2=0 \ifnum#1=0 \else + \fi \else + \fi\fi -#3 -\fi\) -}{% -\(f'(x) = -\ifnum#1=0 -\else -\ctr=2 -\multiply\ctr by #1 -\the\ctr x -\fi -\ifnum#2=0 -\else -\ifnum#2>0 \ifnum#1=0 \else + \fi \fi -#2 -\fi - % print 0 if both #1 and #2 are 0 -\ifnum#1=0 \ifnum#2=0 0 \fi\fi -\) -} -</pre> - The three parameters correspond to the coefficients. Note that they - must all be integers since TeX only performs integer arithmetic. -<p> - To generate a database, simply create a <tt>.tex</tt> file where all the problems - are defined using <tt>\newproblem</tt>, and either <tt>\input</tt> it at the - start of your document if you want to <a href=#sec:useprob>use specific problems</a>, or - pass it to <a href=#sec:selran><tt>\selectrandomly</tt></a>. - -<h3><a name=sec:useprob>Displaying a Problem</a></h3> - -<tt>\useproblem{</tt><em>label</em><tt>}</tt> -<p> - Once a problem has be defined using <tt>\newproblem</tt>, it can be typeset - using the command <tt>\useproblem</tt>. If the problem was defined to take - arguments, the arguments to the problem should come after the - label. In the case of the <a href=#sindiff><tt>sindiff</tt></a> example above, the command - <tt>\useproblem{sindiff}{2}</tt> would produce the following: -<p> - <em>f</em>(<em>x</em>) = sin(2<em>x</em>)<br> - <b>Solution:</b> <em>f</em>'(<em>x</em>) = 2cos(2<em>x</em>)<br> -<p> - whereas the command <tt>\useproblem{diff:quad}{3}{0}{-2}</tt> would produce:<br> - <em>f</em>(<em>x</em>) = 3<em>x</em><sup>2</sup> - 2<br> - <b>Solution:</b> <em>f</em>'(<em>x</em>) = 6<em>x</em> -<p> - Suppose all the above problems are defined in the - file <tt>probs.tex</tt>, then the following code will create a problem sheet - with four questions in it: -<pre> -\documentclass{article} - -\usepackage{probsoln} -\input{probs} - -\begin{document} -Differentiate the following functions with respect to $x$: -\begin{enumerate} -\item \useproblem{quaddiff} -\item \useproblem{sindiff}{4} -\item \useproblem{diff:quad}{2}{3}{1} -\item \useproblem{diff:quad}{0}{1}{2} -\end{enumerate} -\end{document} -</pre> -The answer sheet can then be generated by passing the option <tt>answers</tt> -to the <tt>probsoln</tt> package. - -<h3><a name=sec:selran>Selecting Problems at Random</a></h3> -<tt>\selectrandomly{</tt><em>filename</em><tt>}{</tt><em>n</em><tt>}</tt> -<p> - The command <tt>\selectrandomly</tt> will select <em>n</em> problems that are defined - in the file <em>filename</em>. Each problem is preceeded by a <tt>\item</tt>, so the - command <tt>\selectrandomly</tt> should occur within one of the list-like environments, - such as <tt>enumerate</tt>. For example: -<pre> -\begin{enumerate} -\selectrandomly{easy.tex}{4} -\end{enumerate} -</pre> - will result in four numbered problems, selected at random from the - file <tt>easy.tex</tt>. (The <tt>.tex</tt> extension may be omitted.) -<p> - - Multiple <tt>\selectrandomly</tt> commands (with different filenames) may be used. For example: -<pre> -\begin{enumerate} -\item Differentiate the following functions with respect to $x$: - -\begin{enumerate} -\selectrandomly{samples/easy.tex}{3} -\selectrandomly{samples/args.tex}{1} -\end{enumerate} - -\selectrandomly{samples/implicit.tex}{1} -\selectrandomly{samples/1stprncpl.tex}{1} - -\end{enumerate} -</pre> - This will result in a total of 6 problems, numbered 1(a), 1(b), 1(c), 1(d), 2 and 3. -<p> - - If a randomly selected problem requires arguments, a message similar to the following - will be displayed: -<pre> -Problem diff:quad requires 3 argument(s), please specify (e.g. {5}{3}): -</pre> - Enter the required arguments, where each argument is enclosed in braces ({ }). - - <h3><a name=other>Other Commands</a></h3> -<dl> -<dt><tt>\PSNrandseed</tt></dt> -<dd> The command <tt>\PSNrandseed{</tt><em>n</em><tt>}</tt> specifies the seed for the random - number generator. For example, <tt>\PSNrandseed{\year}</tt> will produce a - different set of random problems each year, whereas <tt>\PSNrandseed{\time}</tt> - will produce a different set of problems each time you LaTeX the - problem (as long as you leave at least a minute between runs.) -<p> - -<dt><tt>\showanswers</tt></dt> -<dd> The command <tt>\showanswers</tt> will show the solutions from that point - on. May be localised by placing within a group. -<p> - -<dt><tt>\hideanswers</tt></dt> -<dd> The command <tt>\hideanswers</tt> will hide the solutions from that point - on. May be localised by placing within a group. -<p> - -<dt><tt>\solutionname</tt></dt> -<dd> By default, the solution is preceeded by the text: <b>Solution:</b>. This can - be changed by redefining the macro <tt>\solutionname</tt>. -<p> - -<dt><tt>showanswers</tt></dt> -<dd> The boolean variable <tt>showanswers</tt> is defined to be true if the answers - are shown and false otherwise. You can therefore do something like: -<pre> -\ifthenelse{\boolean{showanswers}}{\textbf{Solution Sheet}}{} -</pre> -and <b>Solution Sheet</b> will be printed only if the answers are displayed. -(For more information on <tt>\ifthenelse</tt> and <tt>\boolean</tt> see the -documentation for the <tt>ifthen</tt> package by David Carlisle.) -</dl> - -<h2><a name=errors>Error Messages</a></h2> -<pre> -! Package probsoln Error: Label ... already used. -</pre> - Each label identifier used in <tt>\newproblem</tt> must be unique. - Check to make sure you haven't used the same label more than once. - Also check to make sure you haven't <tt>\input</tt>ed or randomly selected - from the same file more than once. (Or <tt>\input</tt>ed and randomly - selected from the same file.) - -<pre> -! Package probsoln Error: Label ... undefined. -</pre> - You need to define a problem before you can use it. Check to - make sure you haven't mis-spelt it. - -<pre> -! Package probsoln Error: Requested number too large. -</pre> - You have asked for more problems than are defined within - the specified file. All problems in that file will be selected. - - -<ul> -<li><a href=#intro>Introduction</a> -<li><a href=#options>Package Options</a> -<li><a href=#commands>Commands Provided</a> -<ul> -<li><a href=#newproblem>Creating a New Problem</a> -<li><a href=#sec:useprob>Displaying a Problem</a> -<li><a href=#sec:selran>Selecting Problems at Random</a> -<li><a href=#other>Other Commands</a> -</ul> -<li><a href=#errors>Error Messages</a> -</ul> - -<a href=http://theoval.cmp.uea.ac.uk/~nlct>Dr Nicola Talbot</a> | -<a href=http://www.cmp.uea.ac.uk/>School of Computing Sciences</a> | -<a href=http://www.uea.ac.uk/>University of East Anglia</a> - -<hr> -<h5>N.L.C. Talbot. School of Computing Sciences. University of East Anglia. -Last Modified: 21 Mar 2004.</h5> -</body> -</html> diff --git a/Master/texmf-dist/doc/latex/probsoln/probsoln.pdf b/Master/texmf-dist/doc/latex/probsoln/probsoln.pdf Binary files differindex 08ef5ff3728..cab2b84791a 100644 --- a/Master/texmf-dist/doc/latex/probsoln/probsoln.pdf +++ b/Master/texmf-dist/doc/latex/probsoln/probsoln.pdf diff --git a/Master/texmf-dist/doc/latex/probsoln/sample.tex b/Master/texmf-dist/doc/latex/probsoln/sample.tex index d797127c944..a21dd8e7042 100644 --- a/Master/texmf-dist/doc/latex/probsoln/sample.tex +++ b/Master/texmf-dist/doc/latex/probsoln/sample.tex @@ -1,40 +1,56 @@ +%% +%% This is file `sample.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% probsoln.dtx (with options: `sample.tex,package') +%% Copyright (C) 2006 Nicola Talbot, all rights reserved. +%% If you modify this file, you must change its name first. +%% You are NOT ALLOWED to distribute this file alone. You are NOT +%% ALLOWED to take money for the distribution or use of either this +%% file or a changed version, except for a nominal charge for copying +%% etc. +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} \documentclass[a4paper]{article} \usepackage{probsoln} -% use the current year as a random seed so that -% it produces a different set of problems each -% year. -%\PSNrandseed{\year} -% or specify a fixed random seed. -\PSNrandseed{2004} - -% Uncomment the following line to generate solution sheet. \showanswers +\PSNrandseed{\year} + \begin{document} -\ifthenelse{\boolean{showanswers}}{\textbf{Solution Sheet}}{} +\title{Sample Problem Sheet} +\author{Nicola Talbot} +\maketitle \begin{enumerate} -\item Differentiate the following functions with respect to $x$: +\selectrandomly{1stprncp}{1} +\item Differentiate the following functions: \begin{enumerate} -\selectrandomly{samples/easy.tex}{6} +\selectrandomly{easy}{5} \end{enumerate} -\selectrandomly{samples/implicit.tex}{1} -\selectrandomly{samples/1stprncp.tex}{1} +\selectrandomly{implicit}{2} -% The problems defined in samples/arg.tex all take -% arguments. -\input{samples/args.tex} - -\item Differentiate the following polynomials -\begin{enumerate} -\item \useproblem{diff:quad}{3}{0}{-2} -\item \useproblem{diff:quad}{1}{2}{3} -\item \useproblem{diff:quad}{5}{3}{0} +\selectrandomly{mchoice}{1} \end{enumerate} - -\end{enumerate} - \end{document} +\endinput +%% +%% End of file `sample.tex'. diff --git a/Master/texmf-dist/doc/latex/probsoln/sample2.tex b/Master/texmf-dist/doc/latex/probsoln/sample2.tex new file mode 100644 index 00000000000..2e1ea5b467a --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/sample2.tex @@ -0,0 +1,68 @@ +%% +%% This is file `sample2.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% probsoln.dtx (with options: `sample2.tex,package') +%% Copyright (C) 2006 Nicola Talbot, all rights reserved. +%% If you modify this file, you must change its name first. +%% You are NOT ALLOWED to distribute this file alone. You are NOT +%% ALLOWED to take money for the distribution or use of either this +%% file or a changed version, except for a nominal charge for copying +%% etc. +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\documentclass[a4paper]{article} + +\usepackage{probsoln} +\showanswers + + +\PSNrandseed{\time} + +\begin{document} +\title{Sample Problem Sheet} +\author{Nicola Talbot} +\maketitle + +\begin{enumerate} + +\newcounter{numproblems} +\random{numproblems}{1}{3} + +\doforrandN{1}{\file}{1stprncp,implicit}{\selectrandomly{\file}{\value{numproblems}}} + +\item Differentiate the following functions: +\input{args}% load database +\begin{enumerate} +\newcounter{A} +\newcounter{B} +\newcounter{C} +\random{A}{-4}{5} +\random{B}{-3}{3} +\random{C}{-1}{10} +\item \useproblem{diff:quad}{\arabic{A}}{\arabic{B}}{\arabic{C}} + +\random{A}{-5}{5} +\whiledo{\value{A}=0}{\random{A}{-5}{5}} +\item \useproblem{diff:sin}{\arabic{A}} +\end{enumerate} +\end{enumerate} +\end{document} +\endinput +%% +%% End of file `sample2.tex'. diff --git a/Master/texmf-dist/doc/latex/probsoln/sample3.tex b/Master/texmf-dist/doc/latex/probsoln/sample3.tex new file mode 100644 index 00000000000..ced57a52c51 --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/sample3.tex @@ -0,0 +1,54 @@ +%% +%% This is file `sample3.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% probsoln.dtx (with options: `sample3.tex,package') +%% Copyright (C) 2006 Nicola Talbot, all rights reserved. +%% If you modify this file, you must change its name first. +%% You are NOT ALLOWED to distribute this file alone. You are NOT +%% ALLOWED to take money for the distribution or use of either this +%% file or a changed version, except for a nominal charge for copying +%% etc. +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\documentclass[a4paper]{article} + +\usepackage{longtable} +\usepackage{probsoln} + + +\newcounter{problem} +\renewcommand{\PSNitem}{\refstepcounter{problem}% +\theproblem. } +\renewcommand{\endPSNitem}{\\} + +\renewenvironment{solution}{}{} + +\newcommand{\selected}{\fbox{$\times$}} +\newcommand{\notselected}{\fbox{\phantom{$\times$}}} + +\begin{document} +\begin{longtable}{lrrrl} +\bfseries Question & \bfseries A & \bfseries B & +\bfseries C & \ifshowanswers \bfseries Reason\fi\\ +\selectrandomly{tabmchoice}{2} +\end{longtable} +\end{document} +\endinput +%% +%% End of file `sample3.tex'. diff --git a/Master/texmf-dist/doc/latex/probsoln/sample4.tex b/Master/texmf-dist/doc/latex/probsoln/sample4.tex new file mode 100644 index 00000000000..27019aa0a09 --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/sample4.tex @@ -0,0 +1,44 @@ +%% +%% This is file `sample4.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% probsoln.dtx (with options: `sample4.tex,package') +%% Copyright (C) 2006 Nicola Talbot, all rights reserved. +%% If you modify this file, you must change its name first. +%% You are NOT ALLOWED to distribute this file alone. You are NOT +%% ALLOWED to take money for the distribution or use of either this +%% file or a changed version, except for a nominal charge for copying +%% etc. +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\documentclass[a4paper]{article} + +\usepackage{probsoln} + + +\showanswers + +\begin{document} +Differentiate the following functions: +\begin{enumerate} +\selectallproblems{easy} +\end{enumerate} +\end{document} +\endinput +%% +%% End of file `sample4.tex'. diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/args.tex b/Master/texmf-dist/doc/latex/probsoln/samples/args.tex deleted file mode 100644 index e3bd7de75ec..00000000000 --- a/Master/texmf-dist/doc/latex/probsoln/samples/args.tex +++ /dev/null @@ -1,45 +0,0 @@ -% These problems require arguments - -% Arguments: #1->a_2, #2->a_1 and #3->a_0 -% (Arguments must be integers) -\newcount\ctr -\newproblem[3]{diff:quad}{% -\(f(x) = -\ifnum#1=0 -\else -\ifnum#1=1\else#1\fi x^2 -\fi -\ifnum#2=0 -\else -\ifnum#2>0 \ifnum#1=0 \else + \fi \fi -\ifnum#2=1\else#2\fi x -\fi -\ifnum#3=0 -\else -\ifnum#3>0 \ifnum#2=0 \ifnum#1=0 \else + \fi \else + \fi\fi -#3 -\fi\) -}{% -\(f'(x) = -\ifnum#1=0 -\else -\ctr=2 -\multiply\ctr by #1 -\the\ctr x -\fi -\ifnum#2=0 -\else -\ifnum#2>0 \ifnum#1=0 \else + \fi \fi -#2 -\fi -% print 0 if both #1 and #2 are 0 -\ifnum#1=0 \ifnum#2=0 0 \fi\fi -\) -} - -\newproblem[1]{diff:sin}{% -\(f(x) = \sin(#1x)\) -}{% -\(f'(x) = #1\cos(#1x)\) -} - diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/implicit.tex b/Master/texmf-dist/doc/latex/probsoln/samples/implicit.tex deleted file mode 100644 index 00453df3045..00000000000 --- a/Master/texmf-dist/doc/latex/probsoln/samples/implicit.tex +++ /dev/null @@ -1,41 +0,0 @@ -% These are all implicit differentiation problems - -\newproblem{imd:circ}{% -Find the gradient of the unit circle ($x^2 + y^2 = 1$).}{% -Differentiating with respect to $x$ gives: -\begin{eqnarray*} -2x + 2y\frac{dy}{dx} & = & 0\\ -\frac{dy}{dx} & = & \frac{-2x}{2y}\\ - & = & \frac{-x}{\sqrt{1-x^2}}. -\end{eqnarray*}} - -\newproblem{imd:ysq:xcuov2mx}{% -Find $\frac{dy}{dx}$, given -\begin{displaymath} -y^2 = \frac{x^3}{2-x} -\end{displaymath}}{% -Differentiating both sides w.r.t.\ $x$: -\begin{eqnarray*} -2y\frac{dy}{dx} & = & \frac{(2-x)3x^2 - x^3(-1)}{(2-x)^2}\\ - & = & \frac{3x^2(2-x) + x^3}{(2-x)^2}\\ - & = & \frac{6x^2 - 3x^3 + x^3}{(2-x)^2}\\ - & = & \frac{6x^2-2x^3}{(2-x)^2}\\ - & = & 2x^2\frac{3-x}{(2-x)^2} -\end{eqnarray*} -Therefore -\begin{displaymath} -y\frac{dy}{dx} = x^2\frac{3-x}{(2-x)^2} -\end{displaymath}} - -\newproblem{imd:exy:IIxay}{% -Differentiate w.r.t.\ $x$: -\begin{displaymath} -e^{xy} = 2x + y -\end{displaymath}}{% -Differentiating both sides w.r.t.\ $x$: -\begin{eqnarray*} -e^{xy}(1y + x\frac{dy}{dx}) & = & 2 + \frac{dy}{dx}\\ -xe^{xy}\frac{dy}{dx} - \frac{dy}{dx} & = & 2 - ye^{xy} \\ -\frac{dy}{dx}(xe^{xy}-1) & = & 2 - ye^{xy}\\ -\frac{dy}{dx} & = & \frac{2-ye^{xy}}{xe^{xy}-1} -\end{eqnarray*}} diff --git a/Master/texmf-dist/doc/latex/probsoln/tabmchoice.tex b/Master/texmf-dist/doc/latex/probsoln/tabmchoice.tex new file mode 100644 index 00000000000..80600c17632 --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/tabmchoice.tex @@ -0,0 +1,43 @@ +%% +%% This is file `tabmchoice.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% probsoln.dtx (with options: `tabmchoice.tex,package') +%% Copyright (C) 2006 Nicola Talbot, all rights reserved. +%% If you modify this file, you must change its name first. +%% You are NOT ALLOWED to distribute this file alone. You are NOT +%% ALLOWED to take money for the distribution or use of either this +%% file or a changed version, except for a nominal charge for copying +%% etc. +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\newproblem{tab:1}{% +What is $(3+2)\times5$? & +25 \ifshowanswers\selected\else\notselected\fi & +13 \notselected & +10 \notselected & +}{Brackets come first}% +\newproblem{tab:2}{% +What is $-1+2\times3$? & +3 \notselected & +-7 \notselected & +5 \ifshowanswers\selected\else\notselected\fi & +}{Multiplication comes first}% +\endinput +%% +%% End of file `tabmchoice.tex'. |