diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/probsoln/probsoln-manual.html')
-rw-r--r-- | Master/texmf-dist/doc/latex/probsoln/probsoln-manual.html | 2526 |
1 files changed, 0 insertions, 2526 deletions
diff --git a/Master/texmf-dist/doc/latex/probsoln/probsoln-manual.html b/Master/texmf-dist/doc/latex/probsoln/probsoln-manual.html deleted file mode 100644 index 55dfa44a832..00000000000 --- a/Master/texmf-dist/doc/latex/probsoln/probsoln-manual.html +++ /dev/null @@ -1,2526 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> -<html xmlns="http://www.w3.org/1999/xhtml" -> -<head><title>probsoln v3.04: creating problem sheets optionally with solutions</title> -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> -<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> -<!-- xhtml,fn-in,css-in,uni-html4,utf8 --> -<meta name="src" content="probsoln-manual.tex" /> -<meta name="date" content="2013-03-13 15:29:00" /> - -<style type="text/css"> -<!-- - -/* start css.sty */ -.ec-lmr-10x-x-109{} -.ec-lmss-10x-x-109{ font-family: sans-serif;} -.ec-lmss-10x-x-109{ font-family: sans-serif;} -.ec-lmss-10x-x-109{ font-family: sans-serif;} -.ec-lmss-10x-x-109{ font-family: sans-serif;} -.ec-lmss-10x-x-109{ font-family: sans-serif;} -.ec-lmss-10x-x-109{ font-family: sans-serif;} -.ec-lmss-10x-x-109{ font-family: sans-serif;} -.ec-lmss-10x-x-109{ font-family: sans-serif;} -.ec-lmss-10x-x-109{ font-family: sans-serif;} -.ec-lmss-10x-x-109{ font-family: sans-serif;} -.ec-lmss-10x-x-109{ font-family: sans-serif;} -.ec-lmss-10x-x-109{ font-family: sans-serif;} -.ec-lmss-10x-x-109{ font-family: sans-serif;} -.ec-lmssbx-10x-x-109{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-109{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-109{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-109{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-109{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-109{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-109{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-109{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-109{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-109{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-109{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-109{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-109{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-207{font-size:188%; font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-207{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-207{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-207{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-207{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-207{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-207{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-207{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-207{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-207{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-207{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-207{ font-family: sans-serif; font-weight: bold;} -.ec-lmssbx-10x-x-207{ font-family: sans-serif; font-weight: bold;} -.ec-lmr-12x-x-120{font-size:130%;} -.ec-lmtt-12x-x-120{font-size:130%; font-family: monospace;} -.ec-lmtt-12x-x-120{ font-family: monospace;} -.ec-lmtt-12x-x-120{ font-family: monospace;} -.ec-lmtt-12x-x-120{ font-family: monospace;} -.ec-lmtt-12x-x-120{ font-family: monospace;} -.ec-lmtt-12x-x-120{ font-family: monospace;} -.ec-lmtt-12x-x-120{ font-family: monospace;} -.ec-lmtt-12x-x-120{ font-family: monospace;} -.ec-lmtt-12x-x-120{ font-family: monospace;} -.ec-lmtt-12x-x-120{ font-family: monospace;} -.ec-lmtt-12x-x-120{ font-family: monospace;} -.ec-lmtt-12x-x-120{ font-family: monospace;} -.ec-lmtt-12x-x-120{ font-family: monospace;} -.ec-lmtt-10x-x-109{ font-family: monospace;} -.ec-lmtt-10x-x-109{ font-family: monospace;} -.ec-lmtt-10x-x-109{ font-family: monospace;} -.ec-lmtt-10x-x-109{ font-family: monospace;} -.ec-lmtt-10x-x-109{ font-family: monospace;} -.ec-lmtt-10x-x-109{ font-family: monospace;} -.ec-lmtt-10x-x-109{ font-family: monospace;} -.ec-lmtt-10x-x-109{ font-family: monospace;} -.ec-lmtt-10x-x-109{ font-family: monospace;} -.ec-lmtt-10x-x-109{ font-family: monospace;} -.ec-lmtt-10x-x-109{ font-family: monospace;} -.ec-lmtt-10x-x-109{ font-family: monospace;} -.ec-lmtt-10x-x-109{ font-family: monospace;} -.ec-lmbx-10x-x-109{ font-weight: bold;} -.ec-lmbx-10x-x-109{ font-weight: bold;} -.ec-lmbx-10x-x-109{ font-weight: bold;} -.ec-lmbx-10x-x-109{ font-weight: bold;} -.ec-lmbx-10x-x-109{ font-weight: bold;} -.ec-lmbx-10x-x-109{ font-weight: bold;} -.ec-lmbx-10x-x-109{ font-weight: bold;} -.ec-lmbx-10x-x-109{ font-weight: bold;} -.ec-lmbx-10x-x-109{ font-weight: bold;} -.ec-lmbx-10x-x-109{ font-weight: bold;} -.ec-lmbx-10x-x-109{ font-weight: bold;} -.ec-lmbx-10x-x-109{ font-weight: bold;} -.ec-lmbx-10x-x-109{ font-weight: bold;} -.ec-lmtt-10{font-size:90%; font-family: monospace;} -.ec-lmtt-10{ font-family: monospace;} -.ec-lmtt-10{ font-family: monospace;} -.ec-lmtt-10{ font-family: monospace;} -.ec-lmtt-10{ font-family: monospace;} -.ec-lmtt-10{ font-family: monospace;} -.ec-lmtt-10{ font-family: monospace;} -.ec-lmtt-10{ font-family: monospace;} -.ec-lmtt-10{ font-family: monospace;} -.ec-lmtt-10{ font-family: monospace;} -.ec-lmtt-10{ font-family: monospace;} -.ec-lmtt-10{ font-family: monospace;} -.ec-lmtt-10{ font-family: monospace;} -.rm-lmr-8x-x-103{font-size:74%;} -.lmmi-10x-x-109{} -.lmmi-8x-x-103{font-size:74%;} -.lmsy-10x-x-109{} -.ec-lmri-10x-x-109{ font-style:italic;} -.ec-lmri-10x-x-109{ font-style:italic;} -.ec-lmri-10x-x-109{ font-style:italic;} -.ec-lmri-10x-x-109{ font-style:italic;} -.ec-lmri-10x-x-109{ font-style:italic;} -.ec-lmri-10x-x-109{ font-style:italic;} -.ec-lmri-10x-x-109{ font-style:italic;} -.ec-lmri-10x-x-109{ font-style:italic;} -.ec-lmri-10x-x-109{ font-style:italic;} -.ec-lmri-10x-x-109{ font-style:italic;} -.ec-lmri-10x-x-109{ font-style:italic;} -.ec-lmri-10x-x-109{ font-style:italic;} -.ec-lmri-10x-x-109{ font-style:italic;} -.ec-lmr-10{font-size:90%;} -.ec-lmr-9{font-size:81%;} -.ec-lmtt-9{font-size:81%; font-family: monospace;} -.ec-lmtt-9{ font-family: monospace;} -.ec-lmtt-9{ font-family: monospace;} -.ec-lmtt-9{ font-family: monospace;} -.ec-lmtt-9{ font-family: monospace;} -.ec-lmtt-9{ font-family: monospace;} -.ec-lmtt-9{ font-family: monospace;} -.ec-lmtt-9{ font-family: monospace;} -.ec-lmtt-9{ font-family: monospace;} -.ec-lmtt-9{ font-family: monospace;} -.ec-lmtt-9{ font-family: monospace;} -.ec-lmtt-9{ font-family: monospace;} -.ec-lmtt-9{ font-family: monospace;} -p.noindent { text-indent: 0em } -td p.noindent { text-indent: 0em; margin-top:0em; } -p.nopar { text-indent: 0em; } -p.indent{ text-indent: 1.5em } -@media print {div.crosslinks {visibility:hidden;}} -a img { border-top: 0; border-left: 0; border-right: 0; } -center { margin-top:1em; margin-bottom:1em; } -td center { margin-top:0em; margin-bottom:0em; } -.Canvas { position:relative; } -img.math{vertical-align:middle;} -li p.indent { text-indent: 0em } -li p:first-child{ margin-top:0em; } -li p:last-child, li div:last-child { margin-bottom:0.5em; } -li p~ul:last-child, li p~ol:last-child{ margin-bottom:0.5em; } -.enumerate1 {list-style-type:decimal;} -.enumerate2 {list-style-type:lower-alpha;} -.enumerate3 {list-style-type:lower-roman;} -.enumerate4 {list-style-type:upper-alpha;} -div.newtheorem { margin-bottom: 2em; margin-top: 2em;} -.obeylines-h,.obeylines-v {white-space: nowrap; } -div.obeylines-v p { margin-top:0; margin-bottom:0; } -.overline{ text-decoration:overline; } -.overline img{ border-top: 1px solid black; } -td.displaylines {text-align:center; white-space:nowrap;} -.centerline {text-align:center;} -.rightline {text-align:right;} -div.verbatim {font-family: monospace; white-space: nowrap; text-align:left; clear:both; } -.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } -div.fbox {display:table} -div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } -div.minipage{width:100%;} -div.center, div.center div.center {text-align: center; margin-left:1em; margin-right:1em;} -div.center div {text-align: left;} -div.flushright, div.flushright div.flushright {text-align: right;} -div.flushright div {text-align: left;} -div.flushleft {text-align: left;} -.underline{ text-decoration:underline; } -.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; } -.framebox-c, .framebox-l, .framebox-r { padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } -.framebox-c {text-align:center;} -.framebox-l {text-align:left;} -.framebox-r {text-align:right;} -span.thank-mark{ vertical-align: super } -span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; } -div.footnotes{border-top:solid 1px black; border-bottom:solid 1px black; padding-bottom:1ex; padding-top:0.5ex; margin-right:15%; margin-top:2ex; font-style:italic; font-size:85%;} -div.footnotes p{margin-top:0; margin-bottom:0; text-indent:0;} -div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; } -table.tabular td p{margin-top:0em;} -table.tabular {margin-left: auto; margin-right: auto;} -td p:first-child{ margin-top:0em; } -td p:last-child{ margin-bottom:0em; } -div.td00{ margin-left:0pt; margin-right:0pt; } -div.td01{ margin-left:0pt; margin-right:5pt; } -div.td10{ margin-left:5pt; margin-right:0pt; } -div.td11{ margin-left:5pt; margin-right:5pt; } -table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } -td.td00{ padding-left:0pt; padding-right:0pt; } -td.td01{ padding-left:0pt; padding-right:5pt; } -td.td10{ padding-left:5pt; padding-right:0pt; } -td.td11{ padding-left:5pt; padding-right:5pt; } -table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } -.hline hr, .cline hr{ height : 1px; margin:0px; } -.tabbing-right {text-align:right;} -span.TEX {letter-spacing: -0.125em; } -span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;} -a span.TEX span.E {text-decoration: none; } -span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;} -span.LATEX span.TEX{ position:relative; left: -0.4em; } -div.float, div.figure {margin-left: auto; margin-right: auto;} -div.float img {text-align:center;} -div.figure img {text-align:center;} -.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;} -.marginpar p{margin-top:0.4em; margin-bottom:0.4em;} -table.equation {width:100%;} -.equation td{text-align:center; } -td.equation { margin-top:1em; margin-bottom:1em; } -td.equation-label { width:5%; text-align:center; } -td.eqnarray4 { width:5%; white-space: normal; } -td.eqnarray2 { width:5%; } -table.eqnarray-star, table.eqnarray {width:100%;} -div.eqnarray{text-align:center;} -div.array {text-align:center;} -div.pmatrix {text-align:center;} -table.pmatrix {width:100%;} -span.pmatrix img{vertical-align:middle;} -div.pmatrix {text-align:center;} -table.pmatrix {width:100%;} -span.bar-css {text-decoration:overline;} -img.cdots{vertical-align:middle;} -.partToc a, .partToc, .likepartToc a, .likepartToc {line-height: 200%; font-weight:bold; font-size:110%;} -.index-item, .index-subitem, .index-subsubitem {display:block} -div.caption {text-indent:-2em; margin-left:3em; margin-right:1em; text-align:left;} -div.caption span.id{font-weight: bold; white-space: nowrap; } -h1.partHead{text-align: center} -p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } -p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } -.paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;} -.subparagraphHead, .likesubparagraphHead { font-weight: bold;} -.quote {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; margin-right:1em; text-align:justify;} -.verse{white-space:nowrap; margin-left:2em} -div.maketitle {text-align:center;} -h2.titleHead{text-align:center;} -div.maketitle{ margin-bottom: 2em; } -div.author, div.date {text-align:center;} -div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; } -.quotation {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; } -.abstract p {margin-left:5%; margin-right:5%;} -div.abstract {width:100%;} -span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; } -table.multicols { width:100%; margin-left:1em; margin-top:1em; margin-bottom:1em; } -.equation td{text-align:center; } -.equation-star td{text-align:center; } -table.equation-star { width:100%; } -table.equation { width:100%; } -table.align, table.alignat, table.xalignat, table.xxalignat, table.flalign {width:100%; margin-left:5%; white-space: nowrap;} -table.align-star, table.alignat-star, table.xalignat-star, table.flalign-star {margin-left:auto; margin-right:auto; white-space: nowrap;} -td.align-label { width:5%; text-align:center; } -td.align-odd { text-align:right; padding-right:0.3em;} -td.align-even { text-align:left; padding-right:0.6em;} -table.multline, table.multline-star {width:100%;} -td.gather {text-align:center; } -table.gather {width:100%;} -div.gather-star {text-align:center;} -div.important { background-color:red; } -/* end css.sty */ - - ---> -</style> -</head><body -> - <div class="maketitle"> - - - - -<div class="minipage"><a - id="top"></a> -</div> - -<h2 class="titleHead">probsoln v3.04: creating problem -sheets optionally with solutions</h2> - <div class="author" ><span -class="ec-lmr-12x-x-120">Nicola L.C. Talbot</span> -<br /> <span -class="ec-lmr-12x-x-120">School of Computing Sciences</span> -<br /> <span -class="ec-lmr-12x-x-120">University of East Anglia</span> -<br /> <span -class="ec-lmr-12x-x-120">Norwich. Norfolk</span> -<br /> <span -class="ec-lmr-12x-x-120">NR4 7TJ. United Kingdom.</span> -<br /><a -href="http://theoval.cmp.uea.ac.uk/~nlct/" class="url" ><span -class="ec-lmtt-12x-x-120">http://theoval.cmp.uea.ac.uk/~nlct/</span></a></div><br /> -<div class="date" ><span -class="ec-lmr-12x-x-120">2012-08-23</span></div> - </div> - <h3 class="likesectionHead"><a - id="x1-1000"></a>Contents</h3> - <div class="tableofcontents"> - <span class="sectionToc" >1 <a -href="#x1-20001" id="QQ2-1-2">Introduction</a></span> -<br /> <span class="sectionToc" >2 <a -href="#x1-30002" id="QQ2-1-3">Package Options</a></span> -<br /> <span class="sectionToc" >3 <a -href="#x1-40003" id="QQ2-1-4">Verbatim</a></span> -<br /> <span class="sectionToc" >4 <a -href="#x1-50004" id="QQ2-1-5">Showing and Hiding Solutions</a></span> -<br /> <span class="sectionToc" >5 <a -href="#x1-60005" id="QQ2-1-6">General Formatting Commands</a></span> -<br /> <span class="sectionToc" >6 <a -href="#x1-70006" id="QQ2-1-7">Defining a Problem</a></span> -<br /> <span class="sectionToc" >7 <a -href="#x1-80007" id="QQ2-1-8">Using a Problem</a></span> -<br /> <span class="sectionToc" >8 <a -href="#x1-90008" id="QQ2-1-9">Loading Problems From External Files</a></span> -<br />  <span class="subsectionToc" >8.1 <a -href="#x1-100008.1" id="QQ2-1-10">Randomly Selecting Problems Not Selected in Previous Documents</a></span> -<br /> <span class="sectionToc" >9 <a -href="#x1-110009" id="QQ2-1-11">Iterating Through Datasets</a></span> -<br /> <span class="sectionToc" >10 <a -href="#x1-1200010" id="QQ2-1-12">Random Number Generator</a></span> -<br /> <span class="sectionToc" >11 <a -href="#x1-1300011" id="QQ2-1-13">Compatibility With Versions Prior to 3.0</a></span> -<br /> <span class="sectionToc" ><a -href="#Q1-1-14">Index</a></span> - - - </div> -<!--l. 40--><p class="noindent" > -</p> - <h3 class="sectionHead"><span class="titlemark">1 </span> <a - id="x1-20001"></a>Introduction</h3> -<!--l. 41--><p class="noindent" >The <span -class="ec-lmss-10x-x-109">probsoln </span>package is designed for teachers or lecturers who want to -create problem sheets for their students. This package was designed with -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 <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span -class="E">E</span>X</span></span>, 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><!--l. 56--><p class="noindent" > -</p> -<!--l. 56--><p class="noindent" ><a -href="#top">Top</a></p><h3 class="sectionHead"><span class="titlemark">2 </span> <a - id="x1-30002"></a>Package Options</h3> -<!--l. 57--><p class="noindent" >The following options may be passed to this package: - </p><dl class="description"><dt class="description"> -<span -class="ec-lmssbx-10x-x-109">answers</span><a - id="dx1-3001"></a> </dt><dd -class="description">Show the answers - </dd><dt class="description"> -<span -class="ec-lmssbx-10x-x-109">noanswers</span><a - id="dx1-3002"></a> </dt><dd -class="description">Don’t show the answers (default) - </dd><dt class="description"> -<span -class="ec-lmssbx-10x-x-109">draft</span><a - id="dx1-3003"></a> </dt><dd -class="description">Display the label and dataset name when a problem is used - </dd><dt class="description"> -<span -class="ec-lmssbx-10x-x-109">final</span><a - id="dx1-3004"></a> </dt><dd -class="description">Don’t display label and dataset name when a problem is used - </dd><dt class="description"> -<span -class="ec-lmssbx-10x-x-109">usedefaultargs</span><a - id="dx1-3005"></a> </dt><dd -class="description">Make <span -class="ec-lmtt-10x-x-109">\thisproblem</span><a - id="dx1-3006"></a> use the default arguments supplied in - the problem definition. - - - </dd><dt class="description"> -<span -class="ec-lmssbx-10x-x-109">nousedefaultargs</span><a - id="dx1-3007"></a> </dt><dd -class="description">Make <span -class="ec-lmtt-10x-x-109">\thisproblem</span><a - id="dx1-3008"></a> prompt for problem arguments - (default).</dd></dl> -<!--l. 69--><p class="noindent" > -</p> -<!--l. 69--><p class="noindent" ><a -href="#top">Top</a></p><h3 class="sectionHead"><span class="titlemark">3 </span> <a - id="x1-40003"></a>Verbatim</h3> -<!--l. 71--><p class="noindent" >As from version 3.02, problems and solutions may contain verbatim text, but -you must use the <a - id="dx1-4001"></a><span -class="ec-lmtt-10x-x-109">fragile </span>(or <span -class="ec-lmtt-10x-x-109">fragile=true</span>) option for the associated -environments. -</p><!--l. 75--><p class="indent" > Alternatively, if most of your problems contain verbatim, you can globally set -this option using: - - -</p> - <div class="verbatim" id="verbatim-1"> -\setkeys{probsoln}{fragile} -</div> -<!--l. 79--><p class="nopar" > You can switch off this option using <span -class="ec-lmtt-10x-x-109">fragile=false</span>. -</p><!--l. 82--><p class="indent" > The <span -class="ec-lmtt-10x-x-109">fragile </span>option writes information to a temporary file. This defaults to -<span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\jobname.vrb</span></span></span> but the name may be changed. The extension (<span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">.vrb</span></span></span>) is given -by: -</p><!--l. 85--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\ProbSolnFragileExt</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-4002"></a> <span -class="ec-lmtt-10x-x-109">\ProbSolnFragileExt </span></div><hr> -</p><!--l. 87--><p class="noindent" > -The base name (<span -class="ec-lmtt-10x-x-109">\jobname</span>) is given by: -</p><!--l. 89--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\ProbSolnFragileFile</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-4003"></a> <span -class="ec-lmtt-10x-x-109">\ProbSolnFragileFile </span></div><hr> -</p><!--l. 91--><p class="noindent" > -</p><!--l. 93--><p class="noindent" > -</p> -<!--l. 93--><p class="noindent" ><a -href="#top">Top</a></p><h3 class="sectionHead"><span class="titlemark">4 </span> <a - id="x1-50004"></a>Showing and Hiding Solutions</h3> -<!--l. 95--><p class="noindent" >In addition to the <span -class="ec-lmss-10x-x-109">answers</span><a - id="dx1-5001"></a> and <span -class="ec-lmss-10x-x-109">noanswers</span><a - id="dx1-5002"></a> package options, it is also possible to -show or suppress the solutions using -</p><!--l. 98--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\showanswers</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-5003"></a> <span -class="ec-lmtt-10x-x-109">\showanswers </span></div><hr> -</p><!--l. 100--><p class="noindent" > -and -</p><!--l. 102--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\hideanswers</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-5004"></a> <span -class="ec-lmtt-10x-x-109">\hideanswers </span></div><hr> -</p><!--l. 104--><p class="noindent" > -respectively. -</p><!--l. 107--><p class="indent" > The boolean variable <span -class="ec-lmss-10x-x-109">showanswers</span><a - id="dx1-5005"></a> determines whether the answers should be -displayed. You can use this value with the <span -class="ec-lmss-10x-x-109">ifthen</span><a - id="dx1-5006"></a> package to specify -different text depending on whether the solutions should be displayed. For -example: - - -</p> - <div class="verbatim" id="verbatim-2"> -Assignment 1\ifthenelse{\boolean{showanswers}}{ (Solution Sheet)}{} -</div> -<!--l. 113--><p class="nopar" > Alternatively you can use <span -class="ec-lmtt-10x-x-109">\ifshowanswers</span><a - id="dx1-5007"></a>…<span -class="ec-lmtt-10x-x-109">\else</span>…<span -class="ec-lmtt-10x-x-109">\fi</span>: - - -</p> - <div class="verbatim" id="verbatim-3"> -Assignment 1\ifshowanswers\space (Solution Sheet)\fi -</div> -<!--l. 118--><p class="nopar" > -</p><!--l. 120--><p class="indent" > For longer passages, you can use the environments -</p><!--l. 121--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">onlyproblem</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-5008"></a><a - id="dx1-5009"></a> <span -class="ec-lmtt-10x-x-109">\begin{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">onlyproblem</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">option</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">] </span></div><hr> -</p><!--l. 123--><p class="noindent" > -and -</p><!--l. 125--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">onlysolution</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-5010"></a><a - id="dx1-5011"></a> <span -class="ec-lmtt-10x-x-109">\begin{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">onlysolution</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">option</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">] </span></div><hr> -</p><!--l. 127--><p class="noindent" > -For example: - - -</p> - <div class="verbatim" id="verbatim-4"> -\begin{onlyproblem}% - <br />What is the derivative of $f(x) = x^2$? - <br />\end{onlyproblem}% - <br />\begin{onlysolution}% - <br />$f’(x) = 2x$ - <br />\end{onlysolution} -</div> -<!--l. 136--><p class="nopar" > The above will only display the question if <span -class="ec-lmss-10x-x-109">showanswers</span><a - id="dx1-5012"></a> is false and will only -display the solution if <span -class="ec-lmss-10x-x-109">showanswers</span><a - id="dx1-5013"></a> is true. If you want the question to appear in -the answer sheet as well as the solution, then don’t put the question in the -<span -class="ec-lmss-10x-x-109">onlyproblem</span><a - id="dx1-5014"></a><a - id="dx1-5015"></a> environment: - - -</p> - <div class="verbatim" id="verbatim-5"> -What is the derivative of $f(x) = x^2$? - <br />\begin{onlysolution}% - <br />Solution: $f’(x) = 2x$ - <br />\end{onlysolution} -</div> -<!--l. 147--><p class="nopar" > -</p><!--l. 149--><p class="indent" > <div class="important" title="Important Note"> If you want to include verbatim text in the body of <span -class="ec-lmss-10x-x-109">onlyproblem</span><a - id="dx1-5016"></a><a - id="dx1-5017"></a> or -<span -class="ec-lmss-10x-x-109">onlysolution</span><a - id="dx1-5018"></a><a - id="dx1-5019"></a>, you need to specify <span -class="ec-lmtt-10x-x-109">fragile </span>in the optional argument of the -environment. (See <a -href="#x1-40003">§3 </a><a -href="#x1-40003">Verbatim<!--tex4ht:ref: sec:verbatim --></a> for further details.) </div> -</p><!--l. 154--><p class="noindent" > -</p><!--l. 156--><p class="indent" > If you use <span -class="ec-lmss-10x-x-109">onlysolution </span>within the <span -class="ec-lmss-10x-x-109">defproblem</span><a - id="dx1-5020"></a><a - id="dx1-5021"></a> environment, the problem will -be tagged as having a solution and will be added to the list used by -<span -class="ec-lmtt-10x-x-109">\foreachsolution</span><a - id="dx1-5022"></a>. The optional argument of <span -class="ec-lmss-10x-x-109">onlysolution </span>(and <span -class="ec-lmss-10x-x-109">onlyproblem</span><a - id="dx1-5023"></a><a - id="dx1-5024"></a>) is -inherited from the parent <span -class="ec-lmss-10x-x-109">defproblem</span><a - id="dx1-5025"></a><a - id="dx1-5026"></a> setting. -</p><!--l. 162--><p class="noindent" > -</p> -<!--l. 162--><p class="noindent" ><a -href="#top">Top</a></p><h3 class="sectionHead"><span class="titlemark">5 </span> <a - id="x1-60005"></a>General Formatting Commands</h3> -<!--l. 164--><p class="noindent" >The commands and environments described in this section are provided to assist -formatting problems and their solutions. -</p><!--l. 166--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">solution</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-6001"></a><a - id="dx1-6002"></a> <span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\begin{solution}</span></span></span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">text</span><span -class="lmsy-10x-x-109">⟩</span><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\end{solution}</span></span></span> </div><hr> -</p><!--l. 168--><p class="noindent" > -By default, this is equivalent to <spacer type=vertical size=10><span class="obeylines-h"> - <br /><span class="verb"><span -class="ec-lmtt-10x-x-109">\par\noindent\textbf{\solutionname}:</span><span -class="ec-lmtt-10x-x-109"> </span></span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">text</span><span -class="lmsy-10x-x-109">⟩</span> - <br /><spacer type=vertical size=10></span> -where <span class="marginpar"><span -class="ec-lmtt-10">\solutionname</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-6003"></a><span -class="ec-lmtt-10x-x-109">\solutionname </span>defaults to “Solution”. Note that you -must place the <span -class="ec-lmss-10x-x-109">solution</span><a - id="dx1-6004"></a><a - id="dx1-6005"></a> environment inside the <span -class="ec-lmss-10x-x-109">onlysolution </span>environment or -between <span -class="ec-lmtt-10x-x-109">\ifshowanswers</span><a - id="dx1-6006"></a>…<span -class="ec-lmtt-10x-x-109">\fi </span>to ensure that it is suppressed when the solutions -are not wanted. (See <a -href="#x1-50004">§4 </a><a -href="#x1-50004">Showing and Hiding Solutions<!--tex4ht:ref: sec:showanswers --></a>.) -</p><!--l. 181--><p class="indent" > Note that the <span -class="ec-lmss-10x-x-109">probsoln </span>package will only define the <span -class="ec-lmss-10x-x-109">solution</span><a - id="dx1-6007"></a><a - id="dx1-6008"></a> environment if it -is not already defined. -</p><!--l. 184--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">textenum</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-6009"></a><a - id="dx1-6010"></a> <span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\begin{textenum}</span></span></span><span -class="ec-lmtt-10x-x-109">…</span><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\end{textenum}</span></span></span> </div><hr> -</p><!--l. 186--><p class="noindent" > -The <span -class="ec-lmss-10x-x-109">textenum </span>environment is like the <span -class="ec-lmss-10x-x-109">enumerate</span><a - id="dx1-6011"></a><a - id="dx1-6012"></a> environment but is in-line. It -uses the same counter that the <span -class="ec-lmss-10x-x-109">enumerate </span>environment would use at that level -so the question can be compact but the answer can use <span -class="ec-lmss-10x-x-109">enumerate </span>instead. For - - -example: - - -</p> - <div class="verbatim" id="verbatim-6"> -\begin{onlyproblem}% - <br />  Differentiate the following: - <br />  \begin{textenum} - <br />    \item $f(x)=2^x$; \item $f(x)=\cot(x)$ - <br />  \end{textenum} - <br />\end{onlyproblem} - <br />\begin{onlysolution} - <br />  \begin{enumerate} - <br />  \item - <br />    \begin{align*} - <br />    f(x) &= 2^x = \exp(\ln(x^2)) =\exp(2\ln(x))\\ - <br />    f’(x) &= \exp(2\ln(x))\times \frac{2}{x}\\ - <br />      &= f(x)\frac{2}{x} - <br />    \end{align*} - <br />  \item - <br />    \begin{align*} - <br />    f(x) &= \cot(x) = (\tan(x))^{-2}\\ - <br />    f’(x) &= -(\tan(x))^{-2}\times\sec^2(x)\\ - <br />    &=-\csc^2x - <br />    \end{align*} - <br />  \end{enumerate} - <br />\end{onlysolution} -</div> -<!--l. 215--><p class="nopar" > In this example, the items in the question are brief, so an <span -class="ec-lmss-10x-x-109">enumerate</span><a - id="dx1-6013"></a><a - id="dx1-6014"></a> -environment would result in a lot of unnecessary white space, but the answers -require more space, so an <span -class="ec-lmss-10x-x-109">enumerate </span>environment is more appropriate. Since the -<span -class="ec-lmss-10x-x-109">textenum </span>environment uses the same counters as the <span -class="ec-lmss-10x-x-109">enumerate </span>environment, the -question and answer sheets use consistent labelling. Note that there are other -packages available on CTAN that you can use to create in-line lists. Check the -<a -href="http://www.tex.ac.uk/tex-archive/help/Catalogue/bytopic.html#enumeration" >TeX Catalogue</a> for further details. -</p><!--l. 227--><p class="indent" > <span class="marginpar"><span -class="ec-lmtt-10">\correctitem</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-6015"></a><span class="marginpar"><span -class="ec-lmtt-10">\incorrectitem</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-6016"></a> -</p><!--l. 229--><p class="indent" > <hr><div title="Definition"><span -class="ec-lmtt-10x-x-109">\correctitem</span><br -class="newline" /><span -class="ec-lmtt-10x-x-109">\incorrectitem </span></div><hr> -</p><!--l. 231--><p class="noindent" > -You can use the commands <span -class="ec-lmtt-10x-x-109">\correctitem </span>and <span -class="ec-lmtt-10x-x-109">\incorrectitem </span>in place of -<span -class="ec-lmtt-10x-x-109">\item</span><a - id="dx1-6017"></a>. If the solutions are suppressed, these commands behave in the same way -as <span -class="ec-lmtt-10x-x-109">\item</span>, otherwise they format the item label using one of the commands: -<span class="marginpar"><span -class="ec-lmtt-10">\correctitemformat</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-6018"></a><span class="marginpar"><span -class="ec-lmtt-10">\incorrectitemformat</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-6019"></a> -</p><!--l. 238--><p class="indent" > <hr><div title="Definition"><span -class="ec-lmtt-10x-x-109">\correctitemformat{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">label</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}</span><br -class="newline" /><span -class="ec-lmtt-10x-x-109">\incorrectitemformat{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">label</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> -</p><!--l. 240--><p class="noindent" > -For example: - - -</p> - <div class="verbatim" id="verbatim-7"> -Under which of the following functions does $S=\{a_1,a_2\}$ - <br />become a probability space? - <br />\begin{enumerate} - <br />\incorrectitem $P(a_1)=\frac{1}{3}$, $P(a_2)=\frac{1}{2}$ - <br />\correctitem $P(a_1)=\frac{3}{4}$, $P(a_2)=\frac{1}{4}$ - <br />\correctitem $P(a_1)=1$, $P(a_2)=0$ - <br />\incorrectitem $P(a_1)=\frac{5}{4}$, $P(a_2)=-\frac{1}{4}$ - <br />\end{enumerate} -</div> -<!--l. 251--><p class="nopar" > The default definition of <span -class="ec-lmtt-10x-x-109">\correctitemformat </span>puts a frame around the -label. -</p><!--l. 255--><p class="noindent" > -</p> -<!--l. 255--><p class="noindent" ><a -href="#top">Top</a></p><h3 class="sectionHead"><span class="titlemark">6 </span> <a - id="x1-70006"></a>Defining a Problem</h3> -<!--l. 257--><p class="noindent" >It is possible to construct a problem sheet with solutions using the commands -described in the previous sections, however it is also possible to define a set of -problems for later use. In this way you can create an external file containing -many problems some or all of which can be loaded and used in a document. The -<span -class="ec-lmss-10x-x-109">probsoln </span>package has a default data set labelled “default” in which you can -store problems. Alternatively, you can create multiple data sets. You -can then iterate through each problem in a problem set. You can use a -previously defined problem more than once, which means that by judicious -use of <span -class="ec-lmss-10x-x-109">onlyproblem</span><a - id="dx1-7001"></a><a - id="dx1-7002"></a>, <span -class="ec-lmss-10x-x-109">onlysolution</span><a - id="dx1-7003"></a><a - id="dx1-7004"></a> or the <span -class="ec-lmss-10x-x-109">showanswers</span><a - id="dx1-7005"></a> boolean variable -in conjunction with <span -class="ec-lmtt-10x-x-109">\showanswers</span><a - id="dx1-7006"></a> and <span -class="ec-lmtt-10x-x-109">\hideanswers</span><a - id="dx1-7007"></a>, you can print -the solutions in a different location to the questions (for example in an -appendix). -</p><!--l. 272--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">defproblem</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-7008"></a><a - id="dx1-7009"></a> <span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\begin{defproblem}</span></span></span><span -class="ec-lmtt-10x-x-109">[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">][</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">default args</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">label</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">option</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]</span><br -class="newline" /><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">definition</span><span -class="lmsy-10x-x-109">⟩</span><br -class="newline" /><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\end{defproblem}</span></span></span> </div><hr> -</p><!--l. 276--><p class="noindent" > -This defines the problem whose label is given by <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">label</span><span -class="lmsy-10x-x-109">⟩</span>. The label must be -unique for a given data set and should not contain active characters or -a comma. (Active characters include the special characters such as $ -and &, but some packages may make other symbols active, such as the -colon (:) character. For example, the <span -class="ec-lmss-10x-x-109">ngerman</span><a - id="dx1-7010"></a> and <span -class="ec-lmss-10x-x-109">babel</span><a - id="dx1-7011"></a> packages make -certain punctuation active. Check the relevant package documentation for -details.) - - -</p><!--l. 285--><p class="indent" > <div class="important" title="Important Note"> The final optional argument <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">option</span><span -class="lmsy-10x-x-109">⟩ </span>may be <span -class="ec-lmtt-10x-x-109">fragile </span>to indicate that the -problem contains verbatim text. Any occurrences of <span -class="ec-lmss-10x-x-109">onlyproblem</span><a - id="dx1-7012"></a><a - id="dx1-7013"></a> or <span -class="ec-lmss-10x-x-109">onlysolution</span><a - id="dx1-7014"></a><a - id="dx1-7015"></a> -contained within <span -class="ec-lmss-10x-x-109">defproblem </span>are inherited from <span -class="ec-lmss-10x-x-109">defproblem</span>. (See <a -href="#x1-40003">§3 </a><a -href="#x1-40003">Verbatim<!--tex4ht:ref: sec:verbatim --></a> for -further details.) </div> -</p><!--l. 291--><p class="noindent" > -</p><!--l. 293--><p class="indent" > If <span -class="ec-lmss-10x-x-109">defproblem</span><a - id="dx1-7016"></a><a - id="dx1-7017"></a> occurs in the document or is included via <span -class="ec-lmtt-10x-x-109">\input</span><a - id="dx1-7018"></a> or <span -class="ec-lmtt-10x-x-109">\include</span><a - id="dx1-7019"></a>, -then the problem will be added to the default data set. If <span -class="ec-lmss-10x-x-109">defproblem </span>occurs in -an external file that is loaded using one of the commands defined in <a -href="#x1-90008">§8 </a><a -href="#x1-90008">Loading -Problems From External Files<!--tex4ht:ref: sec:load --></a> then the problem will be added to the specified -data set. -</p><!--l. 300--><p class="indent" > The contents of the <span -class="ec-lmss-10x-x-109">defproblem</span><a - id="dx1-7020"></a><a - id="dx1-7021"></a> environment should be the text that defines -the problem. This may include any of the commands defined in <a -href="#x1-50004">§4 </a><a -href="#x1-50004">Showing and -Hiding Solutions<!--tex4ht:ref: sec:showanswers --></a> and <a -href="#x1-60005">§5 </a><a -href="#x1-60005">General Formatting Commands<!--tex4ht:ref: sec:formatting --></a>. -</p><!--l. 305--><p class="indent" > The problem may optionally take <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩ </span>arguments (where <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩ </span>is from 0 to 9). -The arguments can be referenced in the definition via <span -class="ec-lmtt-10x-x-109">#1</span>,…,<span -class="ec-lmtt-10x-x-109">#9</span>. If <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩ </span>is omitted -then the problem doesn’t take any arguments. The following example defines a -problem with one argument: - - -</p> - <div class="verbatim" id="verbatim-8"> -\begin{defproblem}[1]{diffsin} - <br />Differentiate $f(x)=\sin(#1x)$. - <br />\begin{onlysolution}% - <br />  \begin{solution} - <br />    $f’(x) = #1\cos(#1x)$ - <br />  \end{solution} - <br />\end{onlysolution} - <br />\end{defproblem} -</div> -<!--l. 320--><p class="nopar" > -</p><!--l. 322--><p class="indent" > The second optional argument <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">default args</span><span -class="lmsy-10x-x-109">⟩ </span>supplies default problem -arguments that will automatically be used within <span -class="ec-lmtt-10x-x-109">\thisproblem</span><a - id="dx1-7022"></a> when used in -<span -class="ec-lmtt-10x-x-109">\foreachproblem</span><a - id="dx1-7023"></a> in conjunction with the package option <span -class="ec-lmss-10x-x-109">usedefaultargs</span><a - id="dx1-7024"></a>. (See <a -href="#x1-110009">§9 -</a><a -href="#x1-110009">Iterating Through Datasets<!--tex4ht:ref: sec:foreach --></a>.) For example: - - -</p> - <div class="verbatim" id="verbatim-9"> -\begin{defproblem}[1][{2}]{diffsin} - <br />Differentiate $f(x)=\sin(#1x)$. - <br />\begin{onlysolution}% - <br />  \begin{solution} - <br />    $f’(x) = #1\cos(#1x)$ - <br />  \end{solution} - <br />\end{onlysolution} - <br />\end{defproblem} -</div> -<!--l. 336--><p class="nopar" > -</p><!--l. 338--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\newproblem</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-7025"></a> <span -class="ec-lmtt-10x-x-109">\newproblem[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">][</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">default args</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">label</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">problem</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">solution</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}</span> -</div><hr> -</p><!--l. 340--><p class="noindent" > -This is a shortcut command for: <span class="obeylines-h"> - <span -class="ec-lmtt-10x-x-109">\begin{defproblem}[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">][</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">default args</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">label</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}%</span> - <br /><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">problem</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">%</span> - <br /><span -class="ec-lmtt-10x-x-109">\begin{onlysolution}%</span> - <br /><span -class="ec-lmtt-10x-x-109">\begin{solution}%</span> - <br /><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">solution</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">%</span> - <br /><span -class="ec-lmtt-10x-x-109">\end{solution}%</span> - <br /><span -class="ec-lmtt-10x-x-109">\end{onlysolution}%</span> - <br /><span -class="ec-lmtt-10x-x-109">\end{defproblem}</span></span> -</p><!--l. 352--><p class="indent" > For example: - - -</p> - <div class="verbatim" id="verbatim-10"> -\newproblem[1]{diffsin}{% - <br />  \(f(x) = \sin(#1x)\) - <br />}% - <br />{% - <br />  \(f’(x) = #1\cos(#1x)\) - <br />} -</div> -<!--l. 360--><p class="nopar" > is equivalent to - - -</p> - <div class="verbatim" id="verbatim-11"> -\begin{defproblem}[1]{diffcos}% - <br />  \(f(x) = \cos(#1x)\) - <br />\begin{onlysolution}% - <br />  \begin{solution}% - <br />    \(f’(x) = -#1\sin(#1x)\) - <br />  \end{solution}% - <br />\end{onlysolution}% - <br />\end{defproblem} -</div> -<!--l. 371--><p class="nopar" > (In this example, the argument will need to be a positive number to avoid a -double minus in the answer. If you want to perform floating point arithmetic on -the arguments, then try the <span -class="ec-lmss-10x-x-109">fp</span><a - id="dx1-7026"></a> or <span -class="ec-lmss-10x-x-109">pgfmath</span><a - id="dx1-7027"></a> packages.) -</p><!--l. 377--><p class="indent" > Alternatively, if you want to supply default arguments to use when iterating -through problems with <span -class="ec-lmtt-10x-x-109">\foreachproblem</span><a - id="dx1-7028"></a>: - - -</p> - <div class="verbatim" id="verbatim-12"> -\newproblem[1][{3}]{diffsin}{% - <br />  \(f(x) = \sin(#1x)\) - <br />}% - <br />{% - <br />  \(f’(x) = #1\cos(#1x)\) - <br />} -</div> -<!--l. 386--><p class="nopar" > -</p><!--l. 389--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\newproblem*</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-7029"></a> <span -class="ec-lmtt-10x-x-109">\newproblem*[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">][</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">default args</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">label</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">definition</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}</span> -</div><hr> -</p><!--l. 391--><p class="noindent" > -This is a shortcut for: <span class="obeylines-h"> - <span -class="ec-lmtt-10x-x-109">\begin{defproblem}[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">][</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">default args</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">label</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}%</span> - <br /><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">definition</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">%</span> - <br /><span -class="ec-lmtt-10x-x-109">\end{defproblem}</span></span> -</p><!--l. 399--><p class="indent" > <div class="important" title="Important Note"> Note that you can’t use verbatim text with <span -class="ec-lmtt-10x-x-109">\newproblem </span>or <span -class="ec-lmtt-10x-x-109">\newproblem*</span>. -Use the <span -class="ec-lmss-10x-x-109">defproblem</span><a - id="dx1-7030"></a><a - id="dx1-7031"></a> environment instead with the <span -class="ec-lmtt-10x-x-109">fragile option</span>. </div> -</p><!--l. 403--><p class="noindent" > -</p><!--l. 405--><p class="noindent" > -</p> -<!--l. 405--><p class="noindent" ><a -href="#top">Top</a></p><h3 class="sectionHead"><span class="titlemark">7 </span> <a - id="x1-80007"></a>Using a Problem</h3> -<!--l. 407--><p class="noindent" >Once you have defined a problem using <span -class="ec-lmss-10x-x-109">defproblem</span><a - id="dx1-8001"></a><a - id="dx1-8002"></a> or <span -class="ec-lmtt-10x-x-109">\newproblem</span><a - id="dx1-8003"></a> (see <a -href="#x1-70006">§6 -</a><a -href="#x1-70006">Defining a Problem<!--tex4ht:ref: sec:defproblem --></a>), you can later display the problem using: -</p><!--l. 410--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\useproblem</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-8004"></a> <span -class="ec-lmtt-10x-x-109">\useproblem[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">data set</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">label</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">arg</span><sub><span -class="rm-lmr-8x-x-103">1</span></sub><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}</span><span -class="ec-lmtt-10x-x-109">…{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">arg</span><sub><span -class="lmmi-8x-x-103">N</span></sub><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}</span> -</div><hr> -</p><!--l. 413--><p class="noindent" > -where <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">data set</span><span -class="lmsy-10x-x-109">⟩ </span>is the name of the data set that contains the problem (the -default data set is used if omitted), <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">label</span><span -class="lmsy-10x-x-109">⟩ </span>is the label identifying the required -problem and <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">arg</span><sub><span -class="rm-lmr-8x-x-103">1</span></sub><span -class="lmsy-10x-x-109">⟩</span>, …, <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">arg</span><sub><span -class="lmmi-8x-x-103">N</span></sub><span -class="lmsy-10x-x-109">⟩ </span>are the arguments to pass to the problem, if the -problem was defined to have arguments (where <span -class="lmmi-10x-x-109">N </span>is the number of arguments -specified when the problem was defined). -</p><!--l. 422--><p class="indent" > For example, in the previous section the problem <span -class="ec-lmtt-10x-x-109">diffcos </span>was defined to have -one argument, so it can be used as follows: - - -</p> - <div class="verbatim" id="verbatim-13"> -\useproblem{diffcos}{3} -</div> -<!--l. 426--><p class="nopar" > This will be equivalent to: - - -</p> - <div class="verbatim" id="verbatim-14"> -\(f(x) = \cos(3x)\) - <br />\begin{onlysolution}% - <br />\begin{solution}% - <br />\(f’(x) = -3\sin(3x)\) - <br />\end{solution}% - <br />\end{onlysolution}% -</div> -<!--l. 435--><p class="nopar" > -</p><!--l. 437--><p class="noindent" > -</p> -<!--l. 437--><p class="noindent" ><a -href="#top">Top</a></p><h3 class="sectionHead"><span class="titlemark">8 </span> <a - id="x1-90008"></a>Loading Problems From External Files</h3> -<!--l. 439--><p class="noindent" >You can store all your problem definitions (see <a -href="#x1-70006">§6 </a><a -href="#x1-70006">Defining a Problem<!--tex4ht:ref: sec:defproblem --></a>) in an -external file. These problems can all be appended to the default data set by -including the file via <span -class="ec-lmtt-10x-x-109">\input</span><a - id="dx1-9001"></a> or they can be appended to other data sets -using one of the commands described below. Once you have loaded all -the required problems, you can iterate through the data sets using the -commands described in <a -href="#x1-110009">§9 </a><a -href="#x1-110009">Iterating Through Datasets<!--tex4ht:ref: sec:foreach --></a>. Note that the -commands below will create a new data set, if the named data set doesn’t -exist. -</p><!--l. 450--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\loadallproblems</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-9002"></a> <span -class="ec-lmtt-10x-x-109">\loadallproblems[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">data set</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">filename</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> -</p><!--l. 452--><p class="noindent" > -This will load all problems defined in <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">filename</span><span -class="lmsy-10x-x-109">⟩ </span>and append them to the -specified data set, in the order in which they are defined in the file. If <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">data set</span><span -class="lmsy-10x-x-109">⟩</span> -is omitted, the default data set will be used. If <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">data set</span><span -class="lmsy-10x-x-109">⟩ </span>doesn’t exist, it will be -created. -</p><!--l. 459--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\loadselectedproblems</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-9003"></a> <span -class="ec-lmtt-10x-x-109">\loadselectedproblems[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">data set</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">labels</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">filename</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}</span> -</div><hr> -</p><!--l. 461--><p class="noindent" > -This is like <span -class="ec-lmtt-10x-x-109">\loadallproblems</span>, but only those problems whose label is listed in -the comma-separated list <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">labels</span><span -class="lmsy-10x-x-109">⟩ </span>are loaded. For example, if I have some -problems defined in the file <span -class="ec-lmtt-10x-x-109">derivatives.tex</span>, then - - -</p> - <div class="verbatim" id="verbatim-15"> -\loadselectedproblems{diffsin,diffcos}{derivatives} -</div> -<!--l. 468--><p class="nopar" > will only load the problems whose labels are <span -class="ec-lmtt-10x-x-109">diffsin </span>and <span -class="ec-lmtt-10x-x-109">diffcos</span>, -respectively. All the other problems in the file will remain undefined. -</p><!--l. 473--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\loadexceptproblems</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-9004"></a> <span -class="ec-lmtt-10x-x-109">\loadexceptproblems[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">data set</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">exception</span> -<span -class="ec-lmri-10x-x-109">list</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">filename</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> -</p><!--l. 475--><p class="noindent" > -This is the reverse of <span -class="ec-lmtt-10x-x-109">\loadselectedproblems</span>. This loads all problems except -those whose labels are listed in <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">exception list</span><span -class="lmsy-10x-x-109">⟩</span>. -</p><!--l. 480--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\loadrandomproblems</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-9005"></a> <span -class="ec-lmtt-10x-x-109">\loadrandomproblems[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">data set</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">filename</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}</span> -</div><hr> -</p><!--l. 482--><p class="noindent" > -This randomly loads <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩ </span>problems from <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">filename</span><span -class="lmsy-10x-x-109">⟩ </span>and adds them to the given -data set. If <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">data set</span><span -class="lmsy-10x-x-109">⟩ </span>is omitted, the default data set is assumed. Note that the -problems will be added to the data set in a random order, not in the order in -which they were defined. There must be at least <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩ </span>problems defined in -<span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">filename</span><span -class="lmsy-10x-x-109">⟩</span>. -</p><!--l. 490--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\loadrandomexcept</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-9006"></a> <span -class="ec-lmtt-10x-x-109">\loadrandomexcept[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">data set</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">filename</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">exception</span> -<span -class="ec-lmri-10x-x-109">list</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> -</p><!--l. 493--><p class="noindent" > -This is similar to <span -class="ec-lmtt-10x-x-109">\loadrandomproblems </span>except that it won’t load those -problems whose labels are listed in <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">exception list</span><span -class="lmsy-10x-x-109">⟩</span>. <span -class="ec-lmbx-10x-x-109">If you want to</span> -<span -class="ec-lmbx-10x-x-109">automatically exclude problems included in previous documents, see</span> -<a -href="#x1-100008.1"><span -class="ec-lmbx-10x-x-109">§8.1 </span></a><a -href="#x1-100008.1"><span -class="ec-lmbx-10x-x-109">Randomly Selecting Problems Not Selected in Previous</span> -<span -class="ec-lmbx-10x-x-109">Documents</span><!--tex4ht:ref: sec:exprev --></a><span -class="ec-lmbx-10x-x-109">.</span> -</p><!--l. 499--><p class="indent" > Note that the random number generator has been modified in version 3.01 in -order to fix a bug. If you want to ensure that your random numbers are -compatible with earlier versions, you can switch to the old generator -using -</p><!--l. 503--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\PSNuseoldrandom</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-9007"></a> <span -class="ec-lmtt-10x-x-109">\PSNuseoldrandom </span></div><hr> -</p><!--l. 505--><p class="noindent" > -</p><!--l. 507--><p class="indent" > <div class="important" title="Important Note"> It is generally not a good idea to place anything in <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">filename</span><span -class="lmsy-10x-x-109">⟩ </span>that is not -inside the body of <span -class="ec-lmss-10x-x-109">defproblem</span><a - id="dx1-9008"></a><a - id="dx1-9009"></a> or in the arguments to <span -class="ec-lmtt-10x-x-109">\newproblem</span><a - id="dx1-9010"></a> or -<span -class="ec-lmtt-10x-x-109">\newproblem*</span><a - id="dx1-9011"></a>. All the commands in this section input the external file within a -local scope, so command definitions would need to be made global to have any -effect. In addition, <span -class="ec-lmtt-10x-x-109">\loadrandomproblems </span>has to load each file twice, which -means that anything outside a problem definition will be parsed twice. -</div> - - -</p><!--l. 516--><p class="noindent" > -</p><!--l. 519--><p class="noindent" > -</p> -<!--l. 519--><p class="noindent" ><a -href="#top">Top</a></p><h4 class="subsectionHead"><span class="titlemark">8.1 </span> <a - id="x1-100008.1"></a>Randomly Selecting Problems Not Selected in Previous Documents</h4> -<!--l. 522--><p class="noindent" >Suppose you have a large set of questions that you want to randomly select for -assignments and exams. The chances are, you don’t want to include questions -that have been previously set for, say, the last three years. That is, you don’t -want to select questions the students may already have seen. As from version -3.03, you can now do this. -</p><!--l. 529--><p class="indent" > The <span -class="ec-lmss-10x-x-109">probsoln</span><a - id="dx1-10001"></a> package defaults to the UK academic year, which starts in -September. If this isn’t appropriate, you can change it using: -</p><!--l. 532--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\SetStartMonth</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-10002"></a> <span -class="ec-lmtt-10x-x-109">\SetStartMonth{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> -</p><!--l. 534--><p class="noindent" > -where <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩ </span>is the number of the month. (1 = January, 2 = February, -etc.) -</p><!--l. 538--><p class="indent" > The <span -class="ec-lmri-10x-x-109">start year </span>is the calender year in effect when the academic -year started. For example, if this is the academic year 2011/12, then -the start year is 2011. This is automatically set to the start of the -current academic year. It is also updated when <span -class="ec-lmtt-10x-x-109">\SetStartMonth </span>is -used.<span class="footnote-mark"><a -href="#fn1x0" id="fn1x0-bk"><sup class="textsuperscript">1</sup></a></span><a - id="x1-10003f1"></a> -If you want to set it to a specific year, you can use: -</p><!--l. 545--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\SetStartYear</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-10004"></a> <span -class="ec-lmtt-10x-x-109">\SetStartYear{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">year</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> -</p><!--l. 547--><p class="noindent" > -For example: <span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\SetStartYear{2008}</span></span></span> indicates the academic year 2008/9. -</p><!--l. 551--><p class="indent" > There are two files concerned with previously used labels. They are: - </p><dl class="description"><dt class="description"> -<span -class="ec-lmssbx-10x-x-109">The previously used labels file</span> </dt><dd -class="description">This keeps track of all problems used in - previous years, as well as problems used by other documents that have - this as their previously used labels file, and it contains the problem - labels from the last run of the current document. - </dd><dt class="description"> -<span -class="ec-lmssbx-10x-x-109">The current used labels file</span> </dt><dd -class="description">This defaults to <span -class="ec-lmtt-10x-x-109">\jobname.prb</span>, but the name can - be changed using: - <!--l. 562--><p class="noindent" ><hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\SetUsedFileName</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-10005"></a> <span -class="ec-lmtt-10x-x-109">\SetUsedFileName{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">name</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> - </p><!--l. 564--><p class="noindent" > - This file keeps track of all the labels used in the current document from - the previous <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span -class="E">E</span>X</span></span> run. Note that if you want to delete this file, first - clear it using - - - </p><!--l. 568--><p class="noindent" ><hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\ClearUsedFile</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-10006"></a> <span -class="ec-lmtt-10x-x-109">\ClearUsedFile{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">file</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> - </p><!--l. 570--><p class="noindent" > - in place of <span -class="ec-lmtt-10x-x-109">\ExcludePreviousFile{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">file</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}</span>, described below. The - argument <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">file</span><span -class="lmsy-10x-x-109">⟩ </span>is the previously used labels file described above. - <span -class="ec-lmtt-10x-x-109">\ClearUsedFile </span>will remove all labels in the current used labels file from - the previously used labels file and clear the current used labels file. Once - this file is empty, it may then be deleted. -</p> - </dd></dl> -<!--l. 580--><p class="indent" > Before loading randomly selected problems, first specify the previously used -labels file with the command: -</p><!--l. 582--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\ExcludePreviousFile</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-10007"></a> <span -class="ec-lmtt-10x-x-109">\ExcludePreviousFile[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">number of years</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">file</span> -<span -class="ec-lmri-10x-x-109">name</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> -</p><!--l. 584--><p class="noindent" > -where <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">file name</span><span -class="lmsy-10x-x-109">⟩ </span>is the name of the previously used file. The optional argument -<span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">number of years</span><span -class="lmsy-10x-x-109">⟩ </span>specifies the year cut-off. This defaults to 3, which means that -only those labels used this year or the previous 2 years will be kept. Any -problems used before then may be reused. -</p><!--l. 591--><p class="indent" > Suppose I’m lecturing a first year undergraduate mathematics course -(designated, say, mth101). I want to set assignments on each topic and an exam -at the end of the year (as well as a resit or second sitting paper). I’ve got -databases with problems for each topic, but the first and second sitting -exams mustn’t include any of the problems used in the assignments -or any problems used in assignments or exams for the previous two -academic years. I’m going to arrange my directory structure as follows: -</p> - <ul class="itemize1"> - <li class="itemize"><span -class="ec-lmtt-10x-x-109">mth101/</span> - <ul class="itemize2"> - <li class="itemize"><span -class="ec-lmtt-10x-x-109">assignment1/ </span>(differentiation) - <ul class="itemize3"> - <li class="itemize"><span -class="ec-lmtt-10x-x-109">assignment1.tex</span></li></ul> - </li> - <li class="itemize"><span -class="ec-lmtt-10x-x-109">assignment2/ </span>(probability spaces) - <ul class="itemize3"> - <li class="itemize"><span -class="ec-lmtt-10x-x-109">assignment2.tex</span></li></ul> - </li> - <li class="itemize"><span -class="ec-lmtt-10x-x-109">assignment3/ </span>(linear algebra) - <ul class="itemize3"> - <li class="itemize"><span -class="ec-lmtt-10x-x-109">assignment3.tex</span></li></ul> - - - </li> - <li class="itemize"><span -class="ec-lmtt-10x-x-109">exams/</span> - <ul class="itemize3"> - <li class="itemize"><span -class="ec-lmtt-10x-x-109">exam.tex </span>(first sitting) - </li> - <li class="itemize"><span -class="ec-lmtt-10x-x-109">resit.tex </span>(second sitting)</li></ul> - </li> - <li class="itemize"><span -class="ec-lmtt-10x-x-109">databases/</span> - <ul class="itemize3"> - <li class="itemize"><span -class="ec-lmtt-10x-x-109">differentiation.tex</span> - </li> - <li class="itemize"><span -class="ec-lmtt-10x-x-109">probabilityspaces.tex</span> - </li> - <li class="itemize"><span -class="ec-lmtt-10x-x-109">linearalgebra.tex</span></li></ul> - </li> - <li class="itemize"><span -class="ec-lmtt-10x-x-109">previouslabels.tex </span>(created by <span -class="ec-lmss-10x-x-109">probsoln</span><a - id="dx1-10008"></a>)</li></ul> - </li></ul> -<!--l. 629--><p class="noindent" > -</p> -<!--l. 629--><p class="noindent" ><a -href="#top">Top</a></p><h3 class="sectionHead"><span class="titlemark">9 </span> <a - id="x1-110009"></a>Iterating Through Datasets</h3> -<!--l. 631--><p class="noindent" >Once you have defined all your problems for a given data set, you can use an -individual problem with <span -class="ec-lmtt-10x-x-109">\useproblem</span><a - id="dx1-11001"></a> (see <a -href="#x1-80007">§7 </a><a -href="#x1-80007">Using a Problem<!--tex4ht:ref: sec:useproblem --></a>) but it is more -likely that you will want to iterate through all the problems so that -you don’t need to remember the labels of all the problems you have -defined. -</p><!--l. 637--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\foreachproblem</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-11002"></a> <span -class="ec-lmtt-10x-x-109">\foreachproblem[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">data set</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">body</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> -</p><!--l. 639--><p class="noindent" > -This does <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">body</span><span -class="lmsy-10x-x-109">⟩ </span>for each problem in the given data set. If <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">data set</span><span -class="lmsy-10x-x-109">⟩ </span>is omitted, -the default data set is used. Within <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">body</span><span -class="lmsy-10x-x-109">⟩ </span>you can use -</p><!--l. 643--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\thisproblem</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-11003"></a> <span -class="ec-lmtt-10x-x-109">\thisproblem </span></div><hr> -</p><!--l. 645--><p class="noindent" > -to use the current problem and -</p><!--l. 647--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\thisproblemlabel</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-11004"></a> <span -class="ec-lmtt-10x-x-109">\thisproblemlabel </span></div><hr> -</p><!--l. 649--><p class="noindent" > -to access the current label. If the problem requires arguments, and no default -arguments were supplied in the problem definition or the package option -<span -class="ec-lmss-10x-x-109">usedefaultargs</span><a - id="dx1-11005"></a> was not used, then you will be prompted for arguments, so if you - - -want to use this approach you will need to use <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span -class="E">E</span>X</span></span> in interactive mode. If -you do provide arguments, they will be stored in the event that you need to -iterate through the data set again. The arguments will be included in -<span -class="ec-lmtt-10x-x-109">\thisproblem</span>, so you only need to use <span -class="ec-lmtt-10x-x-109">\thisproblem </span>without having to specify -<span -class="ec-lmtt-10x-x-109">\useproblem</span><a - id="dx1-11006"></a>. -</p><!--l. 661--><p class="indent" > For example, to iterate through all problems in the default data set: - - -</p> - <div class="verbatim" id="verbatim-16"> -\begin{enumerate} - <br />\foreachproblem{\item\thisproblem} - <br />\end{enumerate} -</div> -<!--l. 667--><p class="nopar" > -</p><!--l. 669--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\foreachsolution</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-11007"></a> <span -class="ec-lmtt-10x-x-109">\foreachsolution[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">data set</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">body</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> -</p><!--l. 671--><p class="noindent" > -This is equivalent to <span -class="ec-lmtt-10x-x-109">\foreachsolution</span>, but only iterates through problems -that contain the <span -class="ec-lmss-10x-x-109">onlysolution</span><a - id="dx1-11008"></a><a - id="dx1-11009"></a> environment. Note that you still need to use -<span -class="ec-lmtt-10x-x-109">\showanswers</span><a - id="dx1-11010"></a> or the <span -class="ec-lmss-10x-x-109">answers</span><a - id="dx1-11011"></a> package option for the contents of the <span -class="ec-lmss-10x-x-109">onlysolution</span><a - id="dx1-11012"></a><a - id="dx1-11013"></a> -environment to appear. -</p><!--l. 678--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\foreachdataset</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-11014"></a> <span -class="ec-lmtt-10x-x-109">\foreachdataset{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">cmd</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">body</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> -</p><!--l. 680--><p class="noindent" > -This does <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">body</span><span -class="lmsy-10x-x-109">⟩ </span>for each of the defined data sets. Within <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">body</span><span -class="lmsy-10x-x-109">⟩</span>, <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">cmd</span><span -class="lmsy-10x-x-109">⟩ </span>will be -set to the name of the current data set. For example, to display all problems in -all data sets: - - -</p> - <div class="verbatim" id="verbatim-17"> -\begin{enumerate} - <br />\foreachdataset{\thisdataset}{% - <br />\foreachproblem[\thisdataset]{\item\thisproblem}} - <br />\end{enumerate} -</div> -<!--l. 689--><p class="nopar" > -</p><!--l. 691--><p class="indent" > Suppose I have two external files called <span -class="ec-lmtt-10x-x-109">derivatives.tex </span>and -<span -class="ec-lmtt-10x-x-109">probspaces.tex </span>which define problems using both <span -class="ec-lmss-10x-x-109">onlyproblem</span><a - id="dx1-11015"></a><a - id="dx1-11016"></a> and <span -class="ec-lmss-10x-x-109">onlysolution</span><a - id="dx1-11017"></a><a - id="dx1-11018"></a> -for example: - - -</p> - <div class="verbatim" id="verbatim-18"> -\begin{defproblem}{cosxsqsinx}% - <br />\begin{onlyproblem}% - <br />$y = \cos(x^2)\sin x$.% - <br />\end{onlyproblem}% - <br />\begin{onlysolution}% - <br />\[\frac{dy}{dx} = -\sin(x^2)2x\sin x + \cos(x^2)\cos x\] - <br />\end{onlysolution}% - <br />\end{defproblem} -</div> -<!--l. 704--><p class="nopar" > I can write a document that creates two data sets, one for the derivative -problems and one for the problems about probability spaces. I can then use -<span -class="ec-lmtt-10x-x-109">\hideanswers</span><a - id="dx1-11019"></a> and iterate through the require data set to produce the -problems. Later, I can use <span -class="ec-lmtt-10x-x-109">\showanswers</span><a - id="dx1-11020"></a> and iterate over all problems defined -in both data sets to produce the chapter containing all the answers. When -displaying the questions, I have taken advantage of the fact that I can -cross-reference items within an <span -class="ec-lmss-10x-x-109">enumerate</span><a - id="dx1-11021"></a><a - id="dx1-11022"></a> environment, and redefined -<span -class="ec-lmtt-10x-x-109">\theenumi</span><a - id="dx1-11023"></a> to label the questions according to the chapter. The cross-reference -label is constructed from the problem label and is referenced in the -answer section to ensure that the answers have the same label as the -questions. - - -</p> - <div class="verbatim" id="verbatim-19"> -\documentclass{report} - <br />\usepackage{probsoln} - <br />\begin{document} - <br />\hideanswers - <br />\chapter{Differentiation} - <br /> randomly select 25 problems from derivatives.tex and add to - <br /> the data set called ’deriv’ - <br />\loadrandomproblems[deriv]{25}{derivatives} - <br /> Display the problems - <br />\renewcommand{\theenumi}{\thechapter.\arabic{enumi}} - <br />\begin{enumerate} - <br />\foreachproblem[deriv]{\item\label{prob:\thisproblemlabel}\thisproblem} - <br />\end{enumerate} - <br /> You may need to change \theenumi back here - <br />\chapter{Probability Spaces} - <br /> randomly select 25 problems from probspaces.tex and add to - <br /> the data set called ’spaces’ - <br />\loadrandomproblems[spaces]{25}{probspaces} - <br /> Display the problems - <br />\renewcommand{\theenumi}{\thechapter.\arabic{enumi}} - <br />\begin{enumerate} - <br />\foreachproblem[spaces]{\item\label{prob:\thisproblemlabel}\thisproblem} - <br />\end{enumerate} - <br /> You may need to change \theenumi back here - <br />\appendix - <br />\chapter{Solutions} - <br />\showanswers - <br />\begin{itemize} - <br />\foreachdataset{\thisdataset}{% - <br />\foreachproblem[\thisdataset]{\item[\ref{prob:\thisproblemlabel}]\thisproblem} - <br />} - <br />\end{itemize} - <br />\end{document} -</div> -<!--l. 757--><p class="nopar" > - - -</p><!--l. 759--><p class="noindent" > -</p> -<!--l. 759--><p class="noindent" ><a -href="#top">Top</a></p><h3 class="sectionHead"><span class="titlemark">10 </span> <a - id="x1-1200010"></a>Random Number Generator</h3> -<!--l. 761--><p class="noindent" >This package provides a pseudo-random number generator that is used by -<span -class="ec-lmtt-10x-x-109">\loadrandomproblems</span><a - id="dx1-12001"></a>. As noted earlier the random number generator has been -modified in version 3.01 in order to fix a bug. If you want to ensure that your -random numbers are compatible with earlier versions, you can switch to the old -generator using -</p><!--l. 766--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\PSNuseoldrandom</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-12002"></a> <span -class="ec-lmtt-10x-x-109">\PSNuseoldrandom </span></div><hr> -</p><!--l. 768--><p class="noindent" > -</p><!--l. 770--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\PSNrandseed</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-12003"></a> <span -class="ec-lmtt-10x-x-109">\PSNrandseed{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> -</p><!--l. 772--><p class="noindent" > -This sets the seed to <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩ </span>which must be a non-zero integer. For example, to -generate a different set of random numbers every time you <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span -class="E">E</span>X</span></span> your -document,<span class="footnote-mark"><a -href="#fn2x0" id="fn2x0-bk"><sup class="textsuperscript">2</sup></a></span><a - id="x1-12004f2"></a> -put the following in your preamble: - - -</p> - <div class="verbatim" id="verbatim-20"> -\PSNrandseed{\time} -</div> -<!--l. 780--><p class="nopar" > or to generate a different set of random numbers every year you <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span -class="E">E</span>X</span></span> your -document: - - -</p> - <div class="verbatim" id="verbatim-21"> -\PSNrandseed{\year} -</div> -<!--l. 785--><p class="nopar" > -</p><!--l. 787--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\PSNgetrandseed</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-12005"></a> <span -class="ec-lmtt-10x-x-109">\PSNgetrandseed{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">register</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> -</p><!--l. 789--><p class="noindent" > -This stores the current seed in the count register specified by <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">register</span><span -class="lmsy-10x-x-109">⟩</span>. For -example: - - -</p> - <div class="verbatim" id="verbatim-22"> -\newcount\myseed - <br />\PSNgetrandseed{\myseed} -</div> -<!--l. 796--><p class="nopar" > -</p><!--l. 798--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\PSNrandom</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-12006"></a> <span -class="ec-lmtt-10x-x-109">\PSNrandom{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">register</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> -</p><!--l. 800--><p class="noindent" > -Generates a random integer from 1 to <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩ </span>and stores in the count register -specified by <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">register</span><span -class="lmsy-10x-x-109">⟩</span>. For example, the following generates an integer from 1 to -10 and stores it in the register <span -class="ec-lmtt-10x-x-109">\myreg</span>: - - -</p> - <div class="verbatim" id="verbatim-23"> -\newcount\myreg - <br />\PSNrandom{\myreg}{10} -</div> -<!--l. 808--><p class="nopar" > -</p><!--l. 810--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\random</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-12007"></a> <span -class="ec-lmtt-10x-x-109">\random{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">counter</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">min</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">max</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> -</p><!--l. 812--><p class="noindent" > -Generates a random integer from <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">min</span><span -class="lmsy-10x-x-109">⟩ </span>to <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">max</span><span -class="lmsy-10x-x-109">⟩ </span>and stores in the given -counter. For example, the following generates a random number between 3 and -8 (inclusive) and stores it in the counter <span -class="ec-lmtt-10x-x-109">myrand</span>. - - -</p> - <div class="verbatim" id="verbatim-24"> -\newcounter{myrand} - <br />\random{myrand}{3}{8} -</div> -<!--l. 820--><p class="nopar" > -</p><!--l. 822--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\doforrandN</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-12008"></a> <span -class="ec-lmtt-10x-x-109">\doforrandN{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">cmd</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">list</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">text</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> -</p><!--l. 824--><p class="noindent" > -Randomly selects <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩ </span>values from the comma-separated list given by -<span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">list</span><span -class="lmsy-10x-x-109">⟩ </span>and iterates through this subset. On each iteration it sets <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">cmd</span><span -class="lmsy-10x-x-109">⟩</span> -to the current value and does <span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">text</span><span -class="lmsy-10x-x-109">⟩</span>. For example, the following will -load a randomly selected problem from two of the listed files (where -<span -class="ec-lmtt-10x-x-109">file1.tex</span>, <span -class="ec-lmtt-10x-x-109">file2.tex </span>and <span -class="ec-lmtt-10x-x-109">file3.tex </span>are files containing at least one -problem): - - -</p> - <div class="verbatim" id="verbatim-25"> -\doforrandN{2}{\thisfile}{file1,file2,file3}{% - <br />\loadrandomproblems{1}{\thisfile}} -</div> -<!--l. 835--><p class="nopar" > -</p><!--l. 837--><p class="noindent" > -</p> -<!--l. 837--><p class="noindent" ><a -href="#top">Top</a></p><h3 class="sectionHead"><span class="titlemark">11 </span> <a - id="x1-1300011"></a>Compatibility With Versions Prior to 3.0</h3> -<!--l. 839--><p class="noindent" >Version 3.0 of the <span -class="ec-lmss-10x-x-109">probsoln</span><a - id="dx1-13001"></a> package completely changed the structure of the -package, but the commands described in this section have been provided to -maintain compatibility with earlier versions. The only problems that are likely -to occur are those where commands are contained within groups. This will effect -any commands that are contained in external files that are outside of the -arguments to <span -class="ec-lmtt-10x-x-109">\newproblem</span><a - id="dx1-13002"></a> and <span -class="ec-lmtt-10x-x-109">\newproblem*</span><a - id="dx1-13003"></a>. However, since the external files -had to be parsed twice in order to load the problems, this shouldn’t be an issue -as adding anything other than problem definitions in those files would be -problematic anyway. -</p><!--l. 851--><p class="indent" > The other likely difference is where the random generator is used in a group. -This includes commands such as <span -class="ec-lmtt-10x-x-109">\selectrandomly</span><a - id="dx1-13004"></a>. For example, if your -document contained something like: - - -</p> - <div class="verbatim" id="verbatim-26"> -\begin{enumerate} - <br />\selectrandomly{file1}{8} - <br />\item Solve the following: - <br />\begin{enumerate} - <br />\selectrandomly{file2}{4} - <br />\end{enumerate} - <br />\selectrandomly{file3}{2} - <br />\end{enumerate} -</div> -<!--l. 866--><p class="nopar" > Then using versions prior to v3.0 will produce a different set of random -numbers since the second <span -class="ec-lmtt-10x-x-109">\selectrandomly </span>is in a different level of grouping. If -you want to ensure that the document produces exactly the same random set -with the new version as with the old version, you will need to get and set the -random number seed. For example, the above would need to be modified so that -it becomes: - - -</p> - <div class="verbatim" id="verbatim-27"> -\begin{enumerate} - <br />\selectrandomly{file1}{8} - <br />\item Solve the following: - <br />\newcount\oldseed - <br />\PSNgetrandseed{\oldseed} - <br />\begin{enumerate} - <br />\selectrandomly{file2}{4} - <br />\end{enumerate} - <br />\PSNrandseed{\oldseed} - <br />\selectrandomly{file3}{2} - <br />\end{enumerate} -</div> -<!--l. 888--><p class="nopar" > -</p><!--l. 890--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\selectrandomly</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-13005"></a> <span -class="ec-lmtt-10x-x-109">\selectrandomly{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">filename</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> -</p><!--l. 892--><p class="noindent" > -This is now equivalent to: <span class="obeylines-h"> - <span -class="ec-lmtt-10x-x-109">{\loadrandomproblems[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">filename</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">n</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">filename</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}}%</span> - <br /><span -class="ec-lmtt-10x-x-109">\foreachproblem[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">filename</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]{\PSNitem\thisproblem\endPSNitem}</span></span> -</p><!--l. 899--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="ec-lmtt-10">\selectallproblems</span><span -class="ec-lmtt-10"> </span></span><a - id="dx1-13006"></a> <span -class="ec-lmtt-10x-x-109">\selectallproblems{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">filename</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">} </span></div><hr> -</p><!--l. 901--><p class="noindent" > -This is now equivalent to: <span class="obeylines-h"> - <span -class="ec-lmtt-10x-x-109">{\loadallproblems[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">filename</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]{</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">filename</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">}}%</span> - <br /><span -class="ec-lmtt-10x-x-109">\foreachproblem[</span><span -class="lmsy-10x-x-109">⟨</span><span -class="ec-lmri-10x-x-109">filename</span><span -class="lmsy-10x-x-109">⟩</span><span -class="ec-lmtt-10x-x-109">]{\PSNitem\thisproblem\endPSNitem}</span></span> -</p><!--l. 908--><p class="indent" > Note that in both the above cases, a new data set is created with the same -name as the file name. - - -</p><!--l. 911--><p class="indent" > <a - id="likesection.1"></a><a - id="Q1-1-14"></a> -</p> -<!--l. 2--><p class="noindent" ><a -href="#top">Top</a></p><h3 class="likesectionHead"><a - id="x1-1400011"></a>Index</h3> -<!--l. 4--><p class="noindent" > <span -class="ec-lmbx-10x-x-109">B</span> -</p> - <div class="theindex"><span class="index-item"><span -class="ec-lmss-10x-x-109">babel </span>package  <a -href="probsoln-manual.html#dx1-7011" >1</a> <br /></span> -<p class="theindex"> <span -class="ec-lmbx-10x-x-109">C</span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\ClearUsedFile</span></span></span>  <a -href="probsoln-manual.html#dx1-10006" ><span -class="ec-lmri-10x-x-109">2</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\correctitem</span></span></span>  <a -href="probsoln-manual.html#dx1-6015" ><span -class="ec-lmri-10x-x-109">3</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\correctitemformat</span></span></span>  <a -href="probsoln-manual.html#dx1-6018" ><span -class="ec-lmri-10x-x-109">4</span></a> <br /></span> -</p><p class="theindex"> <span -class="ec-lmbx-10x-x-109">D</span> -<span class="index-item"><span -class="ec-lmtt-10x-x-109">defproblem </span>(environment)  <a -href="probsoln-manual.html#dx1-5020" ><span class="underline">5</span></a>, <a -href="probsoln-manual.html#dx1-5025" ><span class="underline">6</span></a>, <a -href="probsoln-manual.html#dx1-7008" ><span -class="ec-lmri-10x-x-109">7</span></a>, <a -href="probsoln-manual.html#dx1-7016" ><span class="underline">8</span></a>, <a -href="probsoln-manual.html#dx1-7020" ><span class="underline">9</span></a>, <a -href="probsoln-manual.html#dx1-7030" ><span class="underline">10</span></a>, <a -href="probsoln-manual.html#dx1-8001" ><span class="underline">11</span></a>, <a -href="probsoln-manual.html#dx1-9008" ><span class="underline">12</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\doforrandN</span></span></span>  <a -href="probsoln-manual.html#dx1-12008" ><span -class="ec-lmri-10x-x-109">13</span></a> <br /></span> -</p><p class="theindex"> <span -class="ec-lmbx-10x-x-109">E</span> -<span class="index-item"><span -class="ec-lmtt-10x-x-109">enumerate </span>(environment)  <a -href="probsoln-manual.html#dx1-6011" ><span class="underline">14</span></a>, <a -href="probsoln-manual.html#dx1-6013" ><span class="underline">15</span></a>, <a -href="probsoln-manual.html#dx1-11021" ><span class="underline">16</span></a> <br /></span> -<span class="index-item">environments:<br /></span> -<span class="index-subitem">    <span -class="ec-lmtt-10x-x-109">defproblem</span>  <a -href="probsoln-manual.html#dx1-5021" ><span class="underline">17</span></a>, <a -href="probsoln-manual.html#dx1-5026" ><span class="underline">18</span></a>, <a -href="probsoln-manual.html#dx1-7009" ><span -class="ec-lmri-10x-x-109">19</span></a>, <a -href="probsoln-manual.html#dx1-7017" ><span class="underline">20</span></a>, <a -href="probsoln-manual.html#dx1-7021" ><span class="underline">21</span></a>, <a -href="probsoln-manual.html#dx1-7031" ><span class="underline">22</span></a>, <a -href="probsoln-manual.html#dx1-8002" ><span class="underline">23</span></a>, <a -href="probsoln-manual.html#dx1-9009" ><span class="underline">24</span></a> <br /></span> -<span class="index-subitem">    <span -class="ec-lmtt-10x-x-109">enumerate</span>  <a -href="probsoln-manual.html#dx1-6012" ><span class="underline">25</span></a>, <a -href="probsoln-manual.html#dx1-6014" ><span class="underline">26</span></a>, <a -href="probsoln-manual.html#dx1-11022" ><span class="underline">27</span></a> <br /></span> -<span class="index-subitem">    <span -class="ec-lmtt-10x-x-109">onlyproblem</span>  <a -href="probsoln-manual.html#dx1-5009" ><span -class="ec-lmri-10x-x-109">28</span></a>, <a -href="probsoln-manual.html#dx1-5015" ><span class="underline">29</span></a>, <a -href="probsoln-manual.html#dx1-5017" ><span class="underline">30</span></a>, <a -href="probsoln-manual.html#dx1-5024" ><span class="underline">31</span></a>, <a -href="probsoln-manual.html#dx1-7002" ><span class="underline">32</span></a>, <a -href="probsoln-manual.html#dx1-7013" ><span class="underline">33</span></a>, <a -href="probsoln-manual.html#dx1-11016" ><span class="underline">34</span></a> <br /></span> -<span class="index-subitem">    <span -class="ec-lmtt-10x-x-109">onlysolution</span>  <a -href="probsoln-manual.html#dx1-5011" ><span -class="ec-lmri-10x-x-109">35</span></a>, <a -href="probsoln-manual.html#dx1-5019" ><span class="underline">36</span></a>, <a -href="probsoln-manual.html#dx1-7004" ><span class="underline">37</span></a>, <a -href="probsoln-manual.html#dx1-7015" ><span class="underline">38</span></a>, <a -href="probsoln-manual.html#dx1-11009" ><span class="underline">39</span></a>, <a -href="probsoln-manual.html#dx1-11013" ><span class="underline">40</span></a>, <a -href="probsoln-manual.html#dx1-11018" ><span class="underline">41</span></a> <br /></span> -<span class="index-subitem">    <span -class="ec-lmtt-10x-x-109">solution</span>  <a -href="probsoln-manual.html#dx1-6002" ><span -class="ec-lmri-10x-x-109">42</span></a>, <a -href="probsoln-manual.html#dx1-6005" ><span class="underline">43</span></a>, <a -href="probsoln-manual.html#dx1-6008" ><span class="underline">44</span></a> <br /></span> -<span class="index-subitem">    <span -class="ec-lmtt-10x-x-109">textenum</span>  <a -href="probsoln-manual.html#dx1-6010" ><span -class="ec-lmri-10x-x-109">45</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\ExcludePreviousFile</span></span></span>  <a -href="probsoln-manual.html#dx1-10007" ><span -class="ec-lmri-10x-x-109">46</span></a> <br /></span> -</p><p class="theindex"> <span -class="ec-lmbx-10x-x-109">F</span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\foreachdataset</span></span></span>  <a -href="probsoln-manual.html#dx1-11014" ><span -class="ec-lmri-10x-x-109">47</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\foreachproblem</span></span></span>  <a -href="probsoln-manual.html#dx1-7023" ><span class="underline">48</span></a>, <a -href="probsoln-manual.html#dx1-7028" ><span class="underline">49</span></a>, <a -href="probsoln-manual.html#dx1-11002" ><span -class="ec-lmri-10x-x-109">50</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\foreachsolution</span></span></span>  <a -href="probsoln-manual.html#dx1-5022" ><span class="underline">51</span></a>, <a -href="probsoln-manual.html#dx1-11007" ><span -class="ec-lmri-10x-x-109">52</span></a> <br /></span> -<span class="index-item"><span -class="ec-lmss-10x-x-109">fp </span>package  <a -href="probsoln-manual.html#dx1-7026" >53</a> <br /></span> -<span class="index-item">fragile  <a -href="probsoln-manual.html#dx1-4001" ><span class="underline">54</span></a> <br /></span> -</p><p class="theindex"> <span -class="ec-lmbx-10x-x-109">H</span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\hideanswers</span></span></span>  <a -href="probsoln-manual.html#dx1-5004" ><span -class="ec-lmri-10x-x-109">55</span></a>, <a -href="probsoln-manual.html#dx1-7007" ><span class="underline">56</span></a>, <a -href="probsoln-manual.html#dx1-11019" ><span class="underline">57</span></a> <br /></span> - - -</p><p class="theindex"> <span -class="ec-lmbx-10x-x-109">I</span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\ifshowanswers</span></span></span>  <a -href="probsoln-manual.html#dx1-5007" ><span class="underline">58</span></a>, <a -href="probsoln-manual.html#dx1-6006" ><span class="underline">59</span></a> <br /></span> -<span class="index-item"><span -class="ec-lmss-10x-x-109">ifthen </span>package  <a -href="probsoln-manual.html#dx1-5006" >60</a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\include</span></span></span>  <a -href="probsoln-manual.html#dx1-7019" ><span class="underline">61</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\incorrectitem</span></span></span>  <a -href="probsoln-manual.html#dx1-6016" ><span -class="ec-lmri-10x-x-109">62</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\incorrectitemformat</span></span></span>  <a -href="probsoln-manual.html#dx1-6019" ><span -class="ec-lmri-10x-x-109">63</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\input</span></span></span>  <a -href="probsoln-manual.html#dx1-7018" ><span class="underline">64</span></a>, <a -href="probsoln-manual.html#dx1-9001" ><span class="underline">65</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\item</span></span></span>  <a -href="probsoln-manual.html#dx1-6017" ><span class="underline">66</span></a> <br /></span> -</p><p class="theindex"> <span -class="ec-lmbx-10x-x-109">L</span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\loadallproblems</span></span></span>  <a -href="probsoln-manual.html#dx1-9002" ><span -class="ec-lmri-10x-x-109">67</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\loadexceptproblems</span></span></span>  <a -href="probsoln-manual.html#dx1-9004" ><span -class="ec-lmri-10x-x-109">68</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\loadrandomexcept</span></span></span>  <a -href="probsoln-manual.html#dx1-9006" ><span -class="ec-lmri-10x-x-109">69</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\loadrandomproblems</span></span></span>  <a -href="probsoln-manual.html#dx1-9005" ><span -class="ec-lmri-10x-x-109">70</span></a>, <a -href="probsoln-manual.html#dx1-12001" ><span class="underline">71</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\loadselectedproblems</span></span></span>  <a -href="probsoln-manual.html#dx1-9003" ><span -class="ec-lmri-10x-x-109">72</span></a> <br /></span> -</p><p class="theindex"> <span -class="ec-lmbx-10x-x-109">N</span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\newproblem</span></span></span>  <a -href="probsoln-manual.html#dx1-7025" ><span -class="ec-lmri-10x-x-109">73</span></a>, <a -href="probsoln-manual.html#dx1-8003" ><span class="underline">74</span></a>, <a -href="probsoln-manual.html#dx1-9010" ><span class="underline">75</span></a>, <a -href="probsoln-manual.html#dx1-13002" ><span class="underline">76</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\newproblem*</span></span></span>  <a -href="probsoln-manual.html#dx1-7029" ><span -class="ec-lmri-10x-x-109">77</span></a>, <a -href="probsoln-manual.html#dx1-9011" ><span class="underline">78</span></a>, <a -href="probsoln-manual.html#dx1-13003" ><span class="underline">79</span></a> <br /></span> -<span class="index-item"><span -class="ec-lmss-10x-x-109">ngerman </span>package  <a -href="probsoln-manual.html#dx1-7010" >80</a> <br /></span> -</p><p class="theindex"> <span -class="ec-lmbx-10x-x-109">O</span> -<span class="index-item"><span -class="ec-lmtt-10x-x-109">onlyproblem </span>(environment)  <a -href="probsoln-manual.html#dx1-5008" ><span -class="ec-lmri-10x-x-109">81</span></a>, <a -href="probsoln-manual.html#dx1-5014" ><span class="underline">82</span></a>, <a -href="probsoln-manual.html#dx1-5016" ><span class="underline">83</span></a>, <a -href="probsoln-manual.html#dx1-5023" ><span class="underline">84</span></a>, <a -href="probsoln-manual.html#dx1-7001" ><span class="underline">85</span></a>, <a -href="probsoln-manual.html#dx1-7012" ><span class="underline">86</span></a>, <a -href="probsoln-manual.html#dx1-11015" ><span class="underline">87</span></a> <br /></span> -<span class="index-item"><span -class="ec-lmtt-10x-x-109">onlysolution </span>(environment)  <a -href="probsoln-manual.html#dx1-5010" ><span -class="ec-lmri-10x-x-109">88</span></a>, <a -href="probsoln-manual.html#dx1-5018" ><span class="underline">89</span></a>, <a -href="probsoln-manual.html#dx1-7003" ><span class="underline">90</span></a>, <a -href="probsoln-manual.html#dx1-7014" ><span class="underline">91</span></a>, <a -href="probsoln-manual.html#dx1-11008" ><span class="underline">92</span></a>, <a -href="probsoln-manual.html#dx1-11012" ><span class="underline">93</span></a>, <a -href="probsoln-manual.html#dx1-11017" ><span class="underline">94</span></a> <br /></span> -</p><p class="theindex"> <span -class="ec-lmbx-10x-x-109">P</span> -<span class="index-item">package options:<br /></span> -<span class="index-subitem">    <span -class="ec-lmss-10x-x-109">answers</span>  <a -href="probsoln-manual.html#dx1-3001" ><span class="underline">95</span></a>, <a -href="probsoln-manual.html#dx1-5001" ><span class="underline">96</span></a>, <a -href="probsoln-manual.html#dx1-11011" ><span class="underline">97</span></a> <br /></span> -<span class="index-subitem">    <span -class="ec-lmss-10x-x-109">draft</span>  <a -href="probsoln-manual.html#dx1-3003" ><span class="underline">98</span></a> <br /></span> -<span class="index-subitem">    <span -class="ec-lmss-10x-x-109">final</span>  <a -href="probsoln-manual.html#dx1-3004" ><span class="underline">99</span></a> <br /></span> -<span class="index-subitem">    <span -class="ec-lmss-10x-x-109">noanswers</span>  <a -href="probsoln-manual.html#dx1-3002" ><span class="underline">100</span></a>, <a -href="probsoln-manual.html#dx1-5002" ><span class="underline">101</span></a> <br /></span> -<span class="index-subitem">    <span -class="ec-lmss-10x-x-109">nousedefaultargs</span>  <a -href="probsoln-manual.html#dx1-3007" ><span class="underline">102</span></a> <br /></span> -<span class="index-subitem">    <span -class="ec-lmss-10x-x-109">usedefaultargs</span>  <a -href="probsoln-manual.html#dx1-3005" ><span class="underline">103</span></a>, <a -href="probsoln-manual.html#dx1-7024" ><span class="underline">104</span></a>, <a -href="probsoln-manual.html#dx1-11005" ><span class="underline">105</span></a> <br /></span> -<span class="index-item"><span -class="ec-lmss-10x-x-109">pgfmath </span>package  <a -href="probsoln-manual.html#dx1-7027" >106</a> <br /></span> -<span class="index-item"><span -class="ec-lmss-10x-x-109">probsoln </span>package  <a -href="probsoln-manual.html#dx1-10001" >107</a>, <a -href="probsoln-manual.html#dx1-10008" >108</a>, <a -href="probsoln-manual.html#dx1-13001" >109</a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\ProbSolnFragileExt</span></span></span>  <a -href="probsoln-manual.html#dx1-4002" ><span -class="ec-lmri-10x-x-109">110</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\ProbSolnFragileFile</span></span></span>  <a -href="probsoln-manual.html#dx1-4003" ><span -class="ec-lmri-10x-x-109">111</span></a> <br /></span> - - -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\PSNgetrandseed</span></span></span>  <a -href="probsoln-manual.html#dx1-12005" ><span -class="ec-lmri-10x-x-109">112</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\PSNrandom</span></span></span>  <a -href="probsoln-manual.html#dx1-12006" ><span -class="ec-lmri-10x-x-109">113</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\PSNrandseed</span></span></span>  <a -href="probsoln-manual.html#dx1-12003" ><span -class="ec-lmri-10x-x-109">114</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\PSNuseoldrandom</span></span></span>  <a -href="probsoln-manual.html#dx1-9007" ><span -class="ec-lmri-10x-x-109">115</span></a>, <a -href="probsoln-manual.html#dx1-12002" ><span -class="ec-lmri-10x-x-109">116</span></a> <br /></span> -</p><p class="theindex"> <span -class="ec-lmbx-10x-x-109">R</span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\random</span></span></span>  <a -href="probsoln-manual.html#dx1-12007" ><span -class="ec-lmri-10x-x-109">117</span></a> <br /></span> -</p><p class="theindex"> <span -class="ec-lmbx-10x-x-109">S</span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\selectallproblems</span></span></span>  <a -href="probsoln-manual.html#dx1-13006" ><span -class="ec-lmri-10x-x-109">118</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\selectrandomly</span></span></span>  <a -href="probsoln-manual.html#dx1-13004" ><span class="underline">119</span></a>, <a -href="probsoln-manual.html#dx1-13005" ><span -class="ec-lmri-10x-x-109">120</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\SetStartMonth</span></span></span>  <a -href="probsoln-manual.html#dx1-10002" ><span -class="ec-lmri-10x-x-109">121</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\SetStartYear</span></span></span>  <a -href="probsoln-manual.html#dx1-10004" ><span -class="ec-lmri-10x-x-109">122</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\SetUsedFileName</span></span></span>  <a -href="probsoln-manual.html#dx1-10005" ><span -class="ec-lmri-10x-x-109">123</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\showanswers</span></span></span>  <a -href="probsoln-manual.html#dx1-5003" ><span -class="ec-lmri-10x-x-109">124</span></a>, <a -href="probsoln-manual.html#dx1-7006" ><span class="underline">125</span></a>, <a -href="probsoln-manual.html#dx1-11010" ><span class="underline">126</span></a>, <a -href="probsoln-manual.html#dx1-11020" ><span class="underline">127</span></a> <br /></span> -<span class="index-item"><span -class="ec-lmss-10x-x-109">showanswers </span>boolean variable  <a -href="probsoln-manual.html#dx1-5005" >128</a>, <a -href="probsoln-manual.html#dx1-5012" >129</a>, <a -href="probsoln-manual.html#dx1-5013" >130</a>, <a -href="probsoln-manual.html#dx1-7005" >131</a> <br /></span> -<span class="index-item"><span -class="ec-lmtt-10x-x-109">solution </span>(environment)  <a -href="probsoln-manual.html#dx1-6001" ><span -class="ec-lmri-10x-x-109">132</span></a>, <a -href="probsoln-manual.html#dx1-6004" ><span class="underline">133</span></a>, <a -href="probsoln-manual.html#dx1-6007" ><span class="underline">134</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\solutionname</span></span></span>  <a -href="probsoln-manual.html#dx1-6003" ><span -class="ec-lmri-10x-x-109">135</span></a> <br /></span> -</p><p class="theindex"> <span -class="ec-lmbx-10x-x-109">T</span> -<span class="index-item"><span -class="ec-lmtt-10x-x-109">textenum </span>(environment)  <a -href="probsoln-manual.html#dx1-6009" ><span -class="ec-lmri-10x-x-109">136</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\theenumi</span></span></span>  <a -href="probsoln-manual.html#dx1-11023" ><span class="underline">137</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\thisproblem</span></span></span>  <a -href="probsoln-manual.html#dx1-3006" ><span class="underline">138</span></a>, <a -href="probsoln-manual.html#dx1-3008" ><span class="underline">139</span></a>, <a -href="probsoln-manual.html#dx1-7022" ><span class="underline">140</span></a>, <a -href="probsoln-manual.html#dx1-11003" ><span -class="ec-lmri-10x-x-109">141</span></a> <br /></span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\thisproblemlabel</span></span></span>  <a -href="probsoln-manual.html#dx1-11004" ><span -class="ec-lmri-10x-x-109">142</span></a> <br /></span> -</p><p class="theindex"> <span -class="ec-lmbx-10x-x-109">U</span> -<span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="ec-lmtt-10x-x-109">\useproblem</span></span></span>  <a -href="probsoln-manual.html#dx1-8004" ><span -class="ec-lmri-10x-x-109">143</span></a>, <a -href="probsoln-manual.html#dx1-11001" ><span class="underline">144</span></a>, <a -href="probsoln-manual.html#dx1-11006" ><span class="underline">145</span></a> <br /></span> -</p></div> - <div class="footnotes"><!--l. 543--><p class="indent" > <span class="footnote-mark"><a -href="#fn1x0-bk" id="fn1x0"> -<sup class="textsuperscript">1</sup></a></span><span -class="ec-lmr-9">So don’t use </span><span -class="ec-lmtt-9">\SetStartMonth </span><span -class="ec-lmr-9">after </span><span -class="ec-lmtt-9">\SetStartYear</span><span -class="ec-lmr-9">.</span></p><!--l. 776--><p class="indent" > <span class="footnote-mark"><a -href="#fn2x0-bk" id="fn2x0"> -<sup class="textsuperscript">2</sup></a></span><span -class="ec-lmr-9">assuming you leave at least a minute between runs.</span></p> </div> - -</body></html> - - - - |