diff options
42 files changed, 827 insertions, 4203 deletions
diff --git a/Master/texmf-dist/doc/latex/probsoln/CHANGES b/Master/texmf-dist/doc/latex/probsoln/CHANGES index 3c3efc2c943..058edce2aa1 100644 --- a/Master/texmf-dist/doc/latex/probsoln/CHANGES +++ b/Master/texmf-dist/doc/latex/probsoln/CHANGES @@ -1,5 +1,10 @@ probsoln package versions: +Version 3.05: + + * Now allows comma-separated list of file names in + \loadrandomproblems and \loadrandomexcept + Version 3.04: * fixed bug in textenum diff --git a/Master/texmf-dist/doc/latex/probsoln/README b/Master/texmf-dist/doc/latex/probsoln/README index e3e0912a332..085e3e27ab0 100644 --- a/Master/texmf-dist/doc/latex/probsoln/README +++ b/Master/texmf-dist/doc/latex/probsoln/README @@ -1,9 +1,11 @@ -LaTeX Package : probsoln v3.04 +LaTeX Package : probsoln v3.05 -Last Modified : 2012-08-23 +Last Modified : 2017-07-10 Author : Nicola L.C. Talbot +Package FAQ : http://www.dickimaw-books.com/faqs/probsolnfaq.html + Files : probsoln.dtx - documented source file probsoln.ins - installation script @@ -45,11 +47,10 @@ Comment out \OnlyDescription if you want the documented code. If you experience difficulties, try reading the troubleshooting section of the manual. If that doesn't -help try -http://theoval.cmp.uea.ac.uk/~nlct/latex/packages/faq/ +help try http://www.dickimaw-books.com/faqs/probsolnfaq.html This material is subject to the LaTeX Project Public License. -See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html for +See http://www.ctan.org/license/lppl1.3 for the details of that license. -http://theoval.cmp.uea.ac.uk/~nlct/ +http://www.dickimaw-books.com/ diff --git a/Master/texmf-dist/doc/latex/probsoln/probsoln-manual.css b/Master/texmf-dist/doc/latex/probsoln/probsoln-manual.css deleted file mode 100644 index 86f6de1a936..00000000000 --- a/Master/texmf-dist/doc/latex/probsoln/probsoln-manual.css +++ /dev/null @@ -1,253 +0,0 @@ - -/* 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 */ - 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> - - - - diff --git a/Master/texmf-dist/doc/latex/probsoln/probsoln-manual.tex b/Master/texmf-dist/doc/latex/probsoln/probsoln-manual.tex deleted file mode 100644 index d2822c6093d..00000000000 --- a/Master/texmf-dist/doc/latex/probsoln/probsoln-manual.tex +++ /dev/null @@ -1,913 +0,0 @@ -\documentclass[a4paper]{nlctdoc} - -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} -\usepackage{lmodern} -\usepackage{color} -\usepackage{creatdtx} -\usepackage{probsoln} - -\usepackage[colorlinks, - bookmarks, - hyperindex=false, - pdfauthor={Nicola L.C. Talbot}, - pdftitle={probsoln: creating problem sheets optionally with solutions}]{hyperref} -\doxitem{Option}{option}{package options} - -\RecordChanges -\PageIndex -\CheckSum{1822} - -\newcommand*{\dq}[1]{``#1''} - -\begin{document} -\MakeShortVerb{"} -\DeleteShortVerb{\|} - - \title{probsoln v3.04: -creating problem sheets optionally with solutions} - \author{Nicola L.C. Talbot\\[10pt] -School of Computing Sciences\\ -University of East Anglia\\ -Norwich. Norfolk\\ -NR4 7TJ. United Kingdom.\\ -\url{http://theoval.cmp.uea.ac.uk/~nlct/}} - - \date{2012-08-23} - \maketitle -\tableofcontents - - \section{Introduction} -The \styfmt{probsoln} 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 \LaTeX, and then select a number of problems to typeset. This -means that once the database has been set up, each year you can -easily create a new problem sheet that is sufficiently different -from the previous year, thus preventing the temptation of current -students seeking out the previous year's students, and checking out -their answers. There is also an option that can be passed to the -package to determine whether or not the solutions should be printed. -In this way, one file can either produce the student's version or -the teacher's version. - -\section{Package Options}\label{sec:pkgopt} -The following options may be passed to this package: -\begin{description} -\item[\pkgopt{answers}] Show the answers -\item[\pkgopt{noanswers}] Don't show the answers (default) -\item[\pkgopt{draft}] Display the label and dataset name when a problem is used -\item[\pkgopt{final}] Don't display label and dataset name when a problem is used -\item[\pkgopt{usedefaultargs}] Make \ics{thisproblem} use the -default arguments supplied in the problem definition. -\item[\pkgopt{nousedefaultargs}] Make \ics{thisproblem} prompt for -problem arguments (default). -\end{description} - -\section{Verbatim}\label{sec:verbatim} - -As from version 3.02, problems and solutions may contain verbatim -text, but you must use the \iterm{fragile}\texttt{fragile} (or -\texttt{fragile=true}) option for the associated environments. - -Alternatively, if most of your problems contain verbatim, you can -globally set this option using: -\begin{verbatim} -\setkeys{probsoln}{fragile} -\end{verbatim} -You can switch off this option using \texttt{fragile=false}. - -The \texttt{fragile} option writes information to a temporary file. -This defaults to "\jobname.vrb" but the name may be changed. The -extension (".vrb") is given by: -\begin{definition}[\DescribeMacro{\ProbSolnFragileExt}] -\cs{ProbSolnFragileExt} -\end{definition} -The base name (\cs{jobname}) is given by: -\begin{definition}[\DescribeMacro{\ProbSolnFragileFile}] -\cs{ProbSolnFragileFile} -\end{definition} - -\section{Showing and Hiding Solutions}\label{sec:showanswers} - -In addition to the \pkgopt{answers} and \pkgopt{noanswers} package -options, it is also possible to show or suppress the solutions -using -\begin{definition}[\DescribeMacro{\showanswers}] -\cs{showanswers} -\end{definition} -and -\begin{definition}[\DescribeMacro{\hideanswers}] -\cs{hideanswers} -\end{definition} -respectively. - -The boolean variable \bool{showanswers} determines whether the -answers should be displayed. You can use this value with the -\sty{ifthen} package to specify different text depending on -whether the solutions should be displayed. For example: -\begin{verbatim} -Assignment 1\ifthenelse{\boolean{showanswers}}{ (Solution Sheet)}{} -\end{verbatim} -Alternatively you can use \ics{ifshowanswers}\ldots\cs{else}\ldots -\cs{fi}: -\begin{verbatim} -Assignment 1\ifshowanswers\space (Solution Sheet)\fi -\end{verbatim} - -For longer passages, you can use the environments -\begin{definition}[\DescribeEnv{onlyproblem}] -\cs{begin}\marg{onlyproblem}\oarg{option} -\end{definition} -and -\begin{definition}[\DescribeEnv{onlysolution}] -\cs{begin}\marg{onlysolution}\oarg{option} -\end{definition} -For example: -\begin{verbatim} -\begin{onlyproblem}% -What is the derivative of $f(x) = x^2$? -\end{onlyproblem}% -\begin{onlysolution}% -$f'(x) = 2x$ -\end{onlysolution} -\end{verbatim} -The above will only display the question if \bool{showanswers} -is false and will only display the solution if \bool{showanswers} -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 \env{onlyproblem} environment: -\begin{verbatim} -What is the derivative of $f(x) = x^2$? -\begin{onlysolution}% -Solution: $f'(x) = 2x$ -\end{onlysolution} -\end{verbatim} - -\begin{important} -If you want to include verbatim text in the body of -\env{onlyproblem} or \env{onlysolution}, you need to specify -\texttt{fragile} in the optional argument of the environment. -(See \sectionref{sec:verbatim} for further details.) -\end{important} - -If you use \envfmt{onlysolution} within the \env{defproblem} -environment, the problem will be tagged as having a solution -and will be added to the list used by \ics{foreachsolution}. -The optional argument of \envfmt{onlysolution} (and \env{onlyproblem}) -is inherited from the parent \env{defproblem} setting. - -\section{General Formatting Commands}\label{sec:formatting} - -The commands and environments described in this section are -provided to assist formatting problems and their solutions. -\begin{definition}[\DescribeEnv{solution}] -\verb|\begin{solution}|\meta{text}\verb|\end{solution}| -\end{definition} -By default, this is equivalent to -\begin{display} -\verb|\par\noindent\textbf{\solutionname}: |\meta{text} -\end{display} -where \DescribeMacro{\solutionname}\cs{solutionname} defaults -to \dq{\solutionname}. Note that you must place the \env{solution} -environment inside the \envfmt{onlysolution} environment or -between \ics{ifshowanswers}\ldots\cs{fi} to ensure that it -is suppressed when the solutions are not wanted. (See -\sectionref{sec:showanswers}.) - - -Note that the \styfmt{probsoln} package will only define the -\env{solution} environment if it is not already defined. - -\begin{definition}[\DescribeEnv{textenum}] -\verb|\begin{textenum}|\ldots\verb|\end{textenum}| -\end{definition} -The \envfmt{textenum} environment is like the \env{enumerate} -environment but is in-line. It uses the same counter that the -\envfmt{enumerate} environment would use at that level so the -question can be compact but the answer can use \envfmt{enumerate} -instead. For example: -\begin{verbatim} -\begin{onlyproblem}% - Differentiate the following: - \begin{textenum} - \item $f(x)=2^x$; \item $f(x)=\cot(x)$ - \end{textenum} -\end{onlyproblem} -\begin{onlysolution} - \begin{enumerate} - \item - \begin{align*} - f(x) &= 2^x = \exp(\ln(x^2)) =\exp(2\ln(x))\\ - f'(x) &= \exp(2\ln(x))\times \frac{2}{x}\\ - &= f(x)\frac{2}{x} - \end{align*} - \item - \begin{align*} - f(x) &= \cot(x) = (\tan(x))^{-2}\\ - f'(x) &= -(\tan(x))^{-2}\times\sec^2(x)\\ - &=-\csc^2x - \end{align*} - \end{enumerate} -\end{onlysolution} -\end{verbatim} -In this example, the items in the question are brief, so an -\env{enumerate} environment would result in a lot of unnecessary -white space, but the answers require more space, so an -\envfmt{enumerate} environment is more appropriate. Since the -\envfmt{textenum} environment uses the same counters as the -\envfmt{enumerate} 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 -\urlfootref{http://www.tex.ac.uk/tex-archive/help/Catalogue/bytopic.html\#enumeration}{TeX -Catalogue} for further details. - -\DescribeMacro{\correctitem}\DescribeMacro{\incorrectitem} -\begin{definition} -\cs{correctitem}\\ -\cs{incorrectitem} -\end{definition} -You can use the commands \cs{correctitem} and \cs{incorrectitem} -in place of \ics{item}. If the solutions are suppressed, these -commands behave in the same way as \cs{item}, otherwise they -format the item label using one of the commands: -\DescribeMacro{\correctitemformat}\DescribeMacro{\incorrectitemformat} -\begin{definition} -\cs{correctitemformat}\marg{label}\\ -\cs{incorrectitemformat}\marg{label} -\end{definition} -For example: -\begin{verbatim} -Under which of the following functions does $S=\{a_1,a_2\}$ -become a probability space? -\begin{enumerate} -\incorrectitem $P(a_1)=\frac{1}{3}$, $P(a_2)=\frac{1}{2}$ -\correctitem $P(a_1)=\frac{3}{4}$, $P(a_2)=\frac{1}{4}$ -\correctitem $P(a_1)=1$, $P(a_2)=0$ -\incorrectitem $P(a_1)=\frac{5}{4}$, $P(a_2)=-\frac{1}{4}$ -\end{enumerate} -\end{verbatim} -The default definition of \cs{correctitemformat} puts a frame around -the label. - -\section{Defining a Problem}\label{sec:defproblem} - -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 \styfmt{probsoln} -package has a default data set labelled \dq{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 \env{onlyproblem}, \env{onlysolution} or -the \bool{showanswers} boolean variable in conjunction with -\ics{showanswers} and \ics{hideanswers}, you can print the solutions -in a different location to the questions (for example in an -appendix). - -\begin{definition}[\DescribeEnv{defproblem}] -\verb|\begin{defproblem}|\oarg{n}\oarg{default args}\marg{label}\oarg{option}\newline -\meta{definition}\newline -\verb|\end{defproblem}| -\end{definition} -This defines the problem whose label is given by \meta{label}. 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 \sty{ngerman} and -\sty{babel} packages make certain punctuation active. Check the -relevant package documentation for details.) - -\begin{important} -The final optional argument \meta{option} may be \texttt{fragile} to -indicate that the problem contains verbatim text. Any occurrences of -\env{onlyproblem} or \env{onlysolution} contained within -\envfmt{defproblem} are inherited from \envfmt{defproblem}. (See -\sectionref{sec:verbatim} for further details.) -\end{important} - -If \env{defproblem} occurs in the document or is included via -\ics{input} or \ics{include}, then the problem will be added to -the default data set. If \envfmt{defproblem} occurs in an external -file that is loaded using one of the commands defined in -\sectionref{sec:load} then the problem will be added to -the specified data set. - -The contents of the \env{defproblem} environment should be the text -that defines the problem. This may include any of the commands -defined in \sectionref{sec:showanswers} and -\sectionref{sec:formatting}. - -The problem may optionally take \meta{n} arguments (where -\meta{n} is from 0 to 9). The arguments can be referenced -in the definition via \texttt{\#1},\ldots,\texttt{\#9}. -If \meta{n} is omitted then the problem doesn't take any -arguments. -The following example defines a problem with one argument: -\begin{verbatim} -\begin{defproblem}[1]{diffsin} -Differentiate $f(x)=\sin(#1x)$. -\begin{onlysolution}% - \begin{solution} - $f'(x) = #1\cos(#1x)$ - \end{solution} -\end{onlysolution} -\end{defproblem} -\end{verbatim} - -The second optional argument \meta{default args} supplies -default problem arguments that will automatically be used within -\ics{thisproblem} when used in \ics{foreachproblem} in conjunction -with the package option \pkgopt{usedefaultargs}. (See \sectionref{sec:foreach}.) -For example: -\begin{verbatim} -\begin{defproblem}[1][{2}]{diffsin} -Differentiate $f(x)=\sin(#1x)$. -\begin{onlysolution}% - \begin{solution} - $f'(x) = #1\cos(#1x)$ - \end{solution} -\end{onlysolution} -\end{defproblem} -\end{verbatim} - -\begin{definition}[\DescribeMacro{\newproblem}] -\cs{newproblem}\oarg{n}\oarg{default args}\marg{label}\marg{problem}\marg{solution} -\end{definition} -This is a shortcut command for: -\begin{ttfamily}\obeylines -\cs{begin}\{defproblem\}\oarg{n}\oarg{default args}\marg{label}\% -\meta{problem}\% -\cs{begin}\{onlysolution\}\% -\cs{begin}\{solution\}\% -\meta{solution}\% -\cs{end}\{solution\}\% -\cs{end}\{onlysolution\}\% -\cs{end}\{defproblem\} -\end{ttfamily} -For example: -\begin{verbatim} -\newproblem[1]{diffsin}{% - \(f(x) = \sin(#1x)\) -}% -{% - \(f'(x) = #1\cos(#1x)\) -} -\end{verbatim} -is equivalent to -\begin{verbatim} -\begin{defproblem}[1]{diffcos}% - \(f(x) = \cos(#1x)\) -\begin{onlysolution}% - \begin{solution}% - \(f'(x) = -#1\sin(#1x)\) - \end{solution}% -\end{onlysolution}% -\end{defproblem} -\end{verbatim} -(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 -\sty{fp} or \sty{pgfmath} packages.) - -Alternatively, if you want to supply default arguments to use when -iterating through problems with \ics{foreachproblem}: -\begin{verbatim} -\newproblem[1][{3}]{diffsin}{% - \(f(x) = \sin(#1x)\) -}% -{% - \(f'(x) = #1\cos(#1x)\) -} -\end{verbatim} - - -\begin{definition}[\DescribeMacro{\newproblem*}] -\cs{newproblem*}\oarg{n}\oarg{default args}\marg{label}\marg{definition} -\end{definition} -This is a shortcut for: -\begin{ttfamily}\obeylines -\cs{begin}\{defproblem\}\oarg{n}\oarg{default args}\marg{label}\% -\meta{definition}\% -\cs{end}\{defproblem\} -\end{ttfamily} - -\begin{important} -Note that you can't use verbatim text with \cs{newproblem} or -\cs{newproblem*}. Use the \env{defproblem} environment instead with -the \texttt{fragile option}. -\end{important} - -\section{Using a Problem}\label{sec:useproblem} - -Once you have defined a problem using \env{defproblem} or -\ics{newproblem} (see \sectionref{sec:defproblem}), you can -later display the problem using: -\begin{definition}[\DescribeMacro{\useproblem}] -\cs{useproblem}\oarg{data set}\marg{label}\marg{arg$_1$}\ldots -\marg{arg$_N$} -\end{definition} -where \meta{data set} is the name of the data set that contains -the problem (the default data set is used if omitted), -\meta{label} is the label identifying the required problem and -\meta{arg$_1$}, \ldots, \meta{arg$_N$} -are the arguments to pass to the problem, if the problem was -defined to have arguments (where $N$ is the number -of arguments specified when the problem was defined). - -For example, in the previous section the problem \texttt{diffcos} -was defined to have one argument, so it can be used as follows: -\begin{verbatim} -\useproblem{diffcos}{3} -\end{verbatim} -This will be equivalent to: -\begin{verbatim} -\(f(x) = \cos(3x)\) -\begin{onlysolution}% -\begin{solution}% -\(f'(x) = -3\sin(3x)\) -\end{solution}% -\end{onlysolution}% -\end{verbatim} - -\section{Loading Problems From External Files}\label{sec:load} - -You can store all your problem definitions (see -\sectionref{sec:defproblem}) in an external file. -These problems can all be appended to the default data set by -including the file via \ics{input} 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 \sectionref{sec:foreach}. Note that the commands below -will create a new data set, if the named data set doesn't -exist. - -\begin{definition}[\DescribeMacro{\loadallproblems}] -\cs{loadallproblems}\oarg{data set}\marg{filename} -\end{definition} -This will load all problems defined in \meta{filename} and -append them to the specified data set, in the order in which -they are defined in the file. If \meta{data set} is -omitted, the default data set will be used. If \meta{data set} -doesn't exist, it will be created. - -\begin{definition}[\DescribeMacro{\loadselectedproblems}] -\cs{loadselectedproblems}\oarg{data set}\marg{labels}\marg{filename} -\end{definition} -This is like \cs{loadallproblems}, but only those problems whose -label is listed in the comma-separated list \meta{labels} are -loaded. For example, if I have some problems defined in the -file \texttt{derivatives.tex}, then -\begin{verbatim} -\loadselectedproblems{diffsin,diffcos}{derivatives} -\end{verbatim} -will only load the problems whose labels are \texttt{diffsin} -and \texttt{diffcos}, respectively. All the other problems in -the file will remain undefined. - -\begin{definition}[\DescribeMacro{\loadexceptproblems}] -\cs{loadexceptproblems}\oarg{data set}\marg{exception list}\marg{filename} -\end{definition} -This is the reverse of \cs{loadselectedproblems}. This loads all -problems except those whose labels are listed in \meta{exception -list}. - -\begin{definition}[\DescribeMacro{\loadrandomproblems}] -\cs{loadrandomproblems}\oarg{data set}\marg{n}\marg{filename} -\end{definition} -This randomly loads \meta{n} problems from \meta{filename} and -adds them to the given data set. If \meta{data set} 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 \meta{n} problems -defined in \meta{filename}. - -\begin{definition}[\DescribeMacro{\loadrandomexcept}] -\cs{loadrandomexcept}\oarg{data -set}\marg{n}\marg{filename}\marg{exception list} -\end{definition} -This is similar to \cs{loadrandomproblems} except that it won't load -those problems whose labels are listed in \meta{exception list}. -\textbf{If you want to automatically exclude problems included in -previous documents, see \sectionref{sec:exprev}.} - -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 -\begin{definition}[\DescribeMacro{\PSNuseoldrandom}] -\cs{PSNuseoldrandom} -\end{definition} - -\begin{important} -It is generally not a good idea to place anything in -\meta{filename} that is not inside the body of \env{defproblem} -or in the arguments to \ics{newproblem} or \ics{newproblem*}. -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, \cs{loadrandomproblems} -has to load each file twice, which means that anything outside -a problem definition will be parsed twice. -\end{important} - -\subsection{Randomly Selecting Problems Not Selected in Previous -Documents} -\label{sec:exprev} - -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. - -The \sty{probsoln} package defaults to the UK academic year, which -starts in September. If this isn't appropriate, you can change it -using: -\begin{definition}[\DescribeMacro{\SetStartMonth}] -\cs{SetStartMonth}\marg{n} -\end{definition} -where \meta{n} is the number of the month. (1 = January, 2 = -February, etc.) - -The \emph{start year} 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 -\cs{SetStartMonth} is used.\footnote{So don't use \cs{SetStartMonth} -after \cs{SetStartYear}.} If you want to set it to a specific year, -you can use: -\begin{definition}[\DescribeMacro{\SetStartYear}] -\cs{SetStartYear}\marg{year} -\end{definition} -For example: \verb|\SetStartYear{2008}| indicates the academic year -2008/9. - -There are two files concerned with previously used labels. They are: -\begin{description} - - \item[The previously used labels file] 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. - - \item[The current used labels file] This defaults to -\cs{jobname}\texttt{.prb}, but the name can be changed using: - \begin{definition}[\DescribeMacro{\SetUsedFileName}] - \cs{SetUsedFileName}\marg{name} - \end{definition} - This file keeps track of all the labels used in the current - document from the previous \LaTeX\ run. Note that if you want to - delete this file, first clear it using - \begin{definition}[\DescribeMacro{\ClearUsedFile}] - \cs{ClearUsedFile}\marg{file} - \end{definition} - in place of \cs{ExcludePreviousFile}\marg{file}, described below. - The argument \meta{file} is the previously used labels file - described above. \cs{ClearUsedFile} 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. - -\end{description} - -Before loading randomly selected problems, first specify the -previously used labels file with the command: -\begin{definition}[\DescribeMacro{\ExcludePreviousFile}] -\cs{ExcludePreviousFile}\oarg{number of years}\marg{file name} -\end{definition} -where \meta{file name} is the name of the previously used file. The -optional argument \meta{number of years} 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. - -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: -\begin{itemize} -\item \texttt{mth101/} - \begin{itemize} - \item \texttt{assignment1/} (differentiation) - \begin{itemize} - \item \texttt{assignment1.tex} - \end{itemize} - \item \texttt{assignment2/} (probability spaces) - \begin{itemize} - \item \texttt{assignment2.tex} - \end{itemize} - \item \texttt{assignment3/} (linear algebra) - \begin{itemize} - \item \texttt{assignment3.tex} - \end{itemize} - \item \texttt{exams/} - \begin{itemize} - \item \texttt{exam.tex} (first sitting) - \item \texttt{resit.tex} (second sitting) - \end{itemize} - \item \texttt{databases/} - \begin{itemize} - \item \texttt{differentiation.tex} - \item \texttt{probabilityspaces.tex} - \item \texttt{linearalgebra.tex} - \end{itemize} - \item \texttt{previouslabels.tex} (created by \sty{probsoln}) - \end{itemize} -\end{itemize} - -\section{Iterating Through Datasets}\label{sec:foreach} - -Once you have defined all your problems for a given data set, you -can use an individual problem with \ics{useproblem} (see -\sectionref{sec:useproblem}) 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. - -\begin{definition}[\DescribeMacro{\foreachproblem}] -\cs{foreachproblem}\oarg{data set}\marg{body} -\end{definition} -This does \meta{body} for each problem in the given data set. -If \meta{data set} is omitted, the default data set is used. -Within \meta{body} you can use -\begin{definition}[\DescribeMacro{\thisproblem}] -\cs{thisproblem} -\end{definition} -to use the current problem and -\begin{definition}[\DescribeMacro{\thisproblemlabel}] -\cs{thisproblemlabel} -\end{definition} -to access the current label. If the problem requires arguments, -and no default arguments were supplied in the problem definition or -the package option \pkgopt{usedefaultargs} was not used, then -you will be prompted for arguments, so if you want to use this -approach you will need to use \LaTeX\ 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 \cs{thisproblem}, so you only -need to use \cs{thisproblem} without having to specify -\ics{useproblem}. - -For example, to iterate through all problems -in the default data set: -\begin{verbatim} -\begin{enumerate} -\foreachproblem{\item\thisproblem} -\end{enumerate} -\end{verbatim} - -\begin{definition}[\DescribeMacro{\foreachsolution}] -\cs{foreachsolution}\oarg{data set}\marg{body} -\end{definition} -This is equivalent to \cs{foreachsolution}, but only iterates -through problems that contain the \env{onlysolution} environment. -Note that you still need to use \ics{showanswers} or the -\pkgopt{answers} package option for the contents of the -\env{onlysolution} environment to appear. - -\begin{definition}[\DescribeMacro{\foreachdataset}] -\cs{foreachdataset}\marg{cmd}\marg{body} -\end{definition} -This does \meta{body} for each of the defined data sets. Within -\meta{body}, \meta{cmd} will be set to the name of the current -data set. For example, to display all problems in all data sets: -\begin{verbatim} -\begin{enumerate} -\foreachdataset{\thisdataset}{% -\foreachproblem[\thisdataset]{\item\thisproblem}} -\end{enumerate} -\end{verbatim} - -Suppose I have two external files called -\texttt{derivatives.tex} and \texttt{probspaces.tex} which -define problems using both \env{onlyproblem} and -\env{onlysolution} for example: -\begin{verbatim} -\begin{defproblem}{cosxsqsinx}% -\begin{onlyproblem}% -$y = \cos(x^2)\sin x$.% -\end{onlyproblem}% -\begin{onlysolution}% -\[\frac{dy}{dx} = -\sin(x^2)2x\sin x + \cos(x^2)\cos x\] -\end{onlysolution}% -\end{defproblem} -\end{verbatim} -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 \ics{hideanswers} and -iterate through the require data set to produce the problems. -Later, I can use \ics{showanswers} 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 \env{enumerate} environment, -and redefined \ics{theenumi} 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. -\begin{verbatim} -\documentclass{report} -\usepackage{probsoln} -\begin{document} -\hideanswers -\chapter{Differentiation} -% randomly select 25 problems from derivatives.tex and add to -% the data set called 'deriv' -\loadrandomproblems[deriv]{25}{derivatives} - -% Display the problems -\renewcommand{\theenumi}{\thechapter.\arabic{enumi}} -\begin{enumerate} -\foreachproblem[deriv]{\item\label{prob:\thisproblemlabel}\thisproblem} -\end{enumerate} -% You may need to change \theenumi back here - -\chapter{Probability Spaces} -% randomly select 25 problems from probspaces.tex and add to -% the data set called 'spaces' -\loadrandomproblems[spaces]{25}{probspaces} - -% Display the problems -\renewcommand{\theenumi}{\thechapter.\arabic{enumi}} -\begin{enumerate} -\foreachproblem[spaces]{\item\label{prob:\thisproblemlabel}\thisproblem} -\end{enumerate} -% You may need to change \theenumi back here - -\appendix - -\chapter{Solutions} -\showanswers -\begin{itemize} -\foreachdataset{\thisdataset}{% -\foreachproblem[\thisdataset]{\item[\ref{prob:\thisproblemlabel}]\thisproblem} -} -\end{itemize} - -\end{document} -\end{verbatim} - -\section{Random Number Generator}\label{sec:random} - -This package provides a pseudo-random number generator that is used -by \ics{loadrandomproblems}. 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 -\begin{definition}[\DescribeMacro{\PSNuseoldrandom}] -\cs{PSNuseoldrandom} -\end{definition} - -\begin{definition}[\DescribeMacro{\PSNrandseed}] -\cs{PSNrandseed}\marg{n} -\end{definition} -This sets the seed to \meta{n} which must be a non-zero integer. -For example, to generate a different set of random numbers -every time you \LaTeX\ your document,\footnote{assuming you -leave at least a minute between runs.} put the following in your -preamble: -\begin{verbatim} -\PSNrandseed{\time} -\end{verbatim} -or to generate a different set of random numbers every year you -\LaTeX\ your document: -\begin{verbatim} -\PSNrandseed{\year} -\end{verbatim} - -\begin{definition}[\DescribeMacro{\PSNgetrandseed}] -\cs{PSNgetrandseed}\marg{register} -\end{definition} -This stores the current seed in the count register specified by -\meta{register}. -For example: -\begin{verbatim} -\newcount\myseed -\PSNgetrandseed{\myseed} -\end{verbatim} - -\begin{definition}[\DescribeMacro{\PSNrandom}] -\cs{PSNrandom}\marg{register}\marg{n} -\end{definition} -Generates a random integer from 1 to \meta{n} and stores in -the count register specified by \meta{register}. For example, -the following generates an integer from 1 to 10 and stores it -in the register \cs{myreg}: -\begin{verbatim} -\newcount\myreg -\PSNrandom{\myreg}{10} -\end{verbatim} - -\begin{definition}[\DescribeMacro{\random}] -\cs{random}\marg{counter}\marg{min}\marg{max} -\end{definition} -Generates a random integer from \meta{min} to \meta{max} 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 \texttt{myrand}. -\begin{verbatim} -\newcounter{myrand} -\random{myrand}{3}{8} -\end{verbatim} - -\begin{definition}[\DescribeMacro{\doforrandN}] -\cs{doforrandN}\marg{n}\marg{cmd}\marg{list}\marg{text} -\end{definition} -Randomly selects \meta{n} values from the comma-separated list -given by \meta{list} and iterates through this subset. On -each iteration it sets \meta{cmd} to the current value and -does \meta{text}. For example, the following will load a -randomly selected problem from two of the listed files (where -\texttt{file1.tex}, \texttt{file2.tex} and \texttt{file3.tex} -are files containing at least one problem): -\begin{verbatim} -\doforrandN{2}{\thisfile}{file1,file2,file3}{% -\loadrandomproblems{1}{\thisfile}} -\end{verbatim} - -\section{Compatibility With Versions Prior to 3.0} - -Version 3.0 of the \sty{probsoln} 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 \ics{newproblem} and \ics{newproblem*}. -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. - -The other likely difference is where the random generator is -used in a group. This includes commands such as -\ics{selectrandomly}. For example, if your document contained -something like: -\begin{verbatim} -\begin{enumerate} -\selectrandomly{file1}{8} - -\item Solve the following: -\begin{enumerate} -\selectrandomly{file2}{4} -\end{enumerate} - -\selectrandomly{file3}{2} -\end{enumerate} -\end{verbatim} -Then using versions prior to v3.0 will produce a different -set of random numbers since the second \cs{selectrandomly} -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: -\begin{verbatim} -\begin{enumerate} -\selectrandomly{file1}{8} - -\item Solve the following: -\newcount\oldseed -\PSNgetrandseed{\oldseed} -\begin{enumerate} -\selectrandomly{file2}{4} -\end{enumerate} -\PSNrandseed{\oldseed} - -\selectrandomly{file3}{2} -\end{enumerate} -\end{verbatim} - -\begin{definition}[\DescribeMacro{\selectrandomly}] -\cs{selectrandomly}\marg{filename}\marg{n} -\end{definition} -This is now equivalent to: -\begin{ttfamily}\obeylines -\{\cs{loadrandomproblems}\oarg{filename}\marg{n}\marg{filename}\}\% -\cs{foreachproblem}\oarg{filename}\{\cs{PSNitem}\cs{thisproblem}\cs{endPSNitem}\} -\end{ttfamily} - -\begin{definition}[\DescribeMacro{\selectallproblems}] -\cs{selectallproblems}\marg{filename} -\end{definition} -This is now equivalent to: -\begin{ttfamily}\obeylines -\{\cs{loadallproblems}\oarg{filename}\marg{filename}\}\% -\cs{foreachproblem}\oarg{filename}\{\cs{PSNitem}\cs{thisproblem}\cs{endPSNitem}\} -\end{ttfamily} - -Note that in both the above cases, a new data set is created -with the same name as the file name. - - \StopEventually{\clearpage\phantomsection\addcontentsline{toc}{section}{Index}\PrintIndex} - -\end{document} diff --git a/Master/texmf-dist/doc/latex/probsoln/probsoln.pdf b/Master/texmf-dist/doc/latex/probsoln/probsoln.pdf Binary files differindex e0bbc92904f..50dee7e1cc0 100644 --- a/Master/texmf-dist/doc/latex/probsoln/probsoln.pdf +++ b/Master/texmf-dist/doc/latex/probsoln/probsoln.pdf diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/prob-1stprncp.tex b/Master/texmf-dist/doc/latex/probsoln/samples/prob-1stprncp.tex new file mode 100644 index 00000000000..343d6b3e1c0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/prob-1stprncp.tex @@ -0,0 +1,63 @@ + % This file is public domain + % + % These problems all involve differentiating from 1st principles + +\newproblem{dfp:xcube}{% +Differentiate $f(x) = x^3$ with respect to $x$ by first principles.}{% +\begin{eqnarray*} +\frac{dy}{dx} & = & \lim_{\Delta x\rightarrow 0}\frac{f(x+\Delta x) - f(x)}{\Delta x}\\ + & = & \lim_{\Delta x\rightarrow 0}\frac{(x+\Delta x)^3-x^3}{\Delta x}\\ + & = & \lim_{\Delta x\rightarrow 0}\frac{(x+\Delta x)(x^2+2x\Delta x+(\Delta x)^2)-x^3}{\Delta x}\\ + & = & \lim_{\Delta x\rightarrow 0}\frac{x^3+3x^2\Delta x+3x(\Delta x)^2+(\Delta x)^3-x^3}{\Delta x}\\ + & = & \lim_{\Delta x\rightarrow 0}\frac{3x^2\Delta x+3x(\Delta x)^2+(\Delta x)^3}{\Delta x}\\ + & = & \lim_{\Delta x\rightarrow 0}3x^2+3x\Delta x + (\Delta x)^2\\ + & = & 3x^2 +\end{eqnarray*}} + +\newproblem{dfp:Ioverxsq}{% +Differentiate $\displaystyle f(x) = \frac{1}{x^2}$ with respect to $x$ by first principles.}{% +\begin{eqnarray*} +\frac{df}{dx} & = & \lim_{\Delta x\rightarrow 0}\frac{\frac{1}{(x+\Delta x)^2}-\frac{1}{x^2}}{\Delta x}\\ + & = & \lim_{\Delta x\rightarrow 0}\frac{\frac{x^2-(x+\Delta x)^2}{x^2(x+\Delta x)^2}}{\Delta x}\\ + & = & \lim_{\Delta x\rightarrow 0}\frac{x^2-(x^2+2x\Delta x+(\Delta x)^2)}{x^2\Delta x(x+\Delta x)^2}\\ + & = & \lim_{\Delta x\rightarrow 0}\frac{-2x\Delta x-(\Delta x)^2}{x^2\Delta x(x+\Delta x)^2}\\ + & = & \lim_{\Delta x\rightarrow 0}\frac{-2x-\Delta x}{x^2(x+\Delta x)^2}\\ + & = & \frac{-2x}{x^2x^2}\\ + & = & -\frac{2}{x^3} +\end{eqnarray*}} + +\newproblem{dfp:sqrtx}{% +Differentiate from first principles $f(x) = \surd x$}{% +\begin{eqnarray*} +\frac{df}{dx} & = & \lim_{\Delta x\rightarrow 0}\frac{\sqrt{x+\Delta x}-\surd x}{\Delta x}\\ + & = & \lim_{\Delta x\rightarrow 0}\frac{(\sqrt{x+\Delta x}-\surd x)(\sqrt{x+\delta x}+\surd x)}{\Delta x(\sqrt{x+\Delta x}+\surd x)}\\ + & = & \lim_{\Delta x\rightarrow 0}\frac{x+\Delta x - x}{\Delta x(\sqrt{x+\Delta x}+\surd x)}\\ + & = & \lim_{\Delta x\rightarrow 0}\frac{\Delta x}{\Delta x(\sqrt{x+\Delta x}+\Delta x)}\\ + & = & \lim_{\Delta x\rightarrow 0}\frac{1}{\sqrt{x+\Delta x}+\surd x}\\ + & = & \frac{1}{2\surd x} +\end{eqnarray*}} + +\newproblem{dfp:cons}{% +Differentiate from first principles $f(x) = c$ where $c$ is a constant.}{% +\begin{eqnarray*} +\frac{df}{dx} & = & \lim_{\Delta x\rightarrow 0}\frac{c-c}{\Delta x}\\ + & = & \lim_{\Delta x\rightarrow 0}0\\ + & = & 0 +\end{eqnarray*}} + +\newproblem{dfp:cosx}{% +Given +\begin{eqnarray*} +\lim_{x \rightarrow 0} \frac{\cos x - 1}{x} & = & 0\\ +\lim_{x \rightarrow 0} \frac{\sin x}{x} & = & 1 +\end{eqnarray*} +differentiate from first principles $f(x) = \cos x$.}{% +\begin{eqnarray*} +\frac{df}{dx} & = & \lim_{\Delta x \rightarrow 0}\frac{f(x + \Delta x) - f(x)}{\Delta x}\\ + & = & \lim_{\Delta x \rightarrow 0} \frac{\cos(x + \Delta x) - \cos(x)}{\Delta x}\\ + & = & \lim_{\Delta x \rightarrow 0} \frac{\cos x\cos\Delta x - \sin x\sin\Delta x - \cos x}{\Delta x}\\ + & = & \lim_{\Delta x \rightarrow 0} \frac{\cos x(\cos\Delta x - 1) - \sin x\sin\Delta x}{\Delta x}\\ + & = & \cos x\lim_{\Delta x \rightarrow 0}\frac{\cos\Delta x - 1}{\Delta x} + - \sin x\lim_{\Delta x \rightarrow 0}\frac{\sin\Delta x}{\Delta x}\\ + & = & -1 \qquad\mbox{(using given results)} +\end{eqnarray*}} diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/prob-args.tex b/Master/texmf-dist/doc/latex/probsoln/samples/prob-args.tex new file mode 100644 index 00000000000..8276790feb6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/prob-args.tex @@ -0,0 +1,49 @@ + % This file is public domain + % + % These problems require arguments +% + % Arguments: #1->a_2, #2->a_1 and #3->a_0 + % (Arguments must be integers) +\newcount\ctr +\newproblem[3][{1}{2}{3}]{diff:quad}{% +\(f(x) = +\ifnum#1=0 +\else +\ifnum#1=1\else#1\fi x^2 +\fi +\ifnum#2=0 +\else +\ifnum#2>0 \ifnum#1=0 \else + \fi \fi +\ifnum#2=1\else#2\fi x +\fi +\ifnum#3=0 +\else +\ifnum#3>0 \ifnum#2=0 \ifnum#1=0 \else + \fi \else + \fi\fi +#3 +\fi\) +}{% +\(f'(x) = +\ifnum#1=0 +\else +\ctr=2 +\multiply\ctr by #1 +\the\ctr x +\fi +\ifnum#2=0 +\else +\ifnum#2>0 \ifnum#1=0 \else + \fi \fi +#2 +\fi + % print 0 if both #1 and #2 are 0 +\ifnum#1=0 \ifnum#2=0 0 \fi\fi +\) +} + +\begin{defproblem}[1][{6}]{diff:sin} +\begin{onlyproblem} + \(f(x) = \sin(#1x)\) +\end{onlyproblem} +\begin{onlysolution} + \(f'(x) = #1\cos(#1x)\) +\end{onlysolution} +\end{defproblem} diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/prob-easy.tex b/Master/texmf-dist/doc/latex/probsoln/samples/prob-easy.tex new file mode 100644 index 00000000000..0527e3e4647 --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/prob-easy.tex @@ -0,0 +1,114 @@ + % This file is public domain + % + % These are all easy differentiation problems + +\newproblem{diffeasy:gpowh}{% +\(f(x) = g(x)^{h(x)}.\)}{% +\begin{eqnarray*} +f(x) & = & e^{\ln g(x)^{h(x)}}\\ + & = & e^{h(x)\ln g(x)}\\ +f'(x) & = & e^{h(x)\ln g(x)}(h'(x)\ln g(x) + h(x)\frac{g'(x)}{g(x)})\\ + & = & g(x)^{h(x)}(h'(x)\ln g(x) + \frac{h(x)g'(x)}{g(x)}) +\end{eqnarray*}} + +\newproblem{diffeasy:arcsin}{% +\(y = \arcsin(x)\)}{% +\[\sin(y) = x\] +diff. w.r.t. $x$: +\begin{eqnarray*} +\cos y \frac{dy}{dx} & = & 1\\ +\frac{dy}{dx} & = & \frac{1}{\cos y}\\ + & = & \frac{1}{\sqrt{1 - \sin^2y}}\\ + & = & \frac{1}{\sqrt{1-x^2}}. +\end{eqnarray*}} + +\newproblem{diffeasy:arccos}{% +$y = \arccos x$.}{% +\(\cos y = x\) +diff. w.r.t. $x$: +\begin{eqnarray*} +-\sin y \frac{dy}{dx} & = & 1\\ +\frac{dy}{dx} & = & \frac{-1}{\sin y}\\ + & = & \frac{-1}{\sqrt{1-\cos^2y}}\\ + & = & \frac{-1}{\sqrt{1-x^2}} +\end{eqnarray*}} + +\newproblem{diffeasy:tan}{% +\(y = \tan x\)}{% +\begin{eqnarray*} +y & = & \tan x\\ + & = & \frac{\sin x}{\cos x}\\ +\frac{dy}{dx} & = & \frac{\cos x}{\cos x} + \sin x\times\frac{-1}{\cos^2x}\times -\sin x\\ + & = & 1 + \tan^2x\\ + & = & \sec^2x. +\end{eqnarray*}} + +\newproblem{diffeasy:arctan}{% +\(y = \arctan x = \tan^{-1}x\)}{% +\[\tan y = x\] +diff w.r.t. $x$: +\begin{eqnarray*} +\sec^2y\frac{dy}{dx} & = & 1\\ +\frac{dy}{dx} & = & \frac{1}{\sec^2y}\\ + & = & \frac{1}{1+\tan^2y}\\ + & = & \frac{1}{1+x^2} +\end{eqnarray*}} + +\newproblem{diffeasy:cot}{% +\(y = (\tan x)^{-1} = \cot x\)}{% +\begin{eqnarray*} +\frac{dy}{dx} & = & -(\tan x)^{-2}\sec^2x\\ + & = & -\frac{\cos^2x}{\sin^2x}\cdot\frac{1}{\cos^2x}\\ + & = & \frac{-1}{\sin^2x}\\ + & = & -\csc^2x. +\end{eqnarray*}} + +\newproblem{diffeasy:cosxsqsinx}{% +$y = \cos(x^2)\sin x$.}{% +\[\frac{dy}{dx} = -\sin(x^2)2x\sin x + \cos(x^2)\cos x\]} + +\newproblem{diffeasy:xlnx}{% +$y = (x+1)\ln(x+1)$.}{% +\begin{eqnarray*} +\frac{dy}{dx} & = & \ln(x+1) + \frac{x+1}{x+1}\\ + & = & 1 + \ln(x+1). +\end{eqnarray*}} + +\newproblem{diffeasy:glng}{% +$f(x) = g(x)\ln(g(x))$.}{% +\begin{eqnarray*} +f'(x) & = & g'(x)\ln(g(x)) + \frac{g(x)}{g(x)}g'(x)\\ + & = & g'(x)(1+\ln(g(x))). +\end{eqnarray*}} + +\newproblem{diffeasy:sinx/x}{% +$y = \frac{\sin x}{x}$.}{% +\[\frac{dy}{dx} = \frac{\cos x}{x} - \frac{\sin x}{x^2}\]} + +\newproblem{diffeasy:exp4x}{% + $y = \exp(4x)$ +}% +{% + \[\frac{dy}{dx} = 4\exp(4x)\] +} + +\newproblem{diffeasy:exp3x+2}{% + $y = \exp(3x+2)$ +}% +{% + \[\frac{dy}{dx} = 3\exp(3x+2)\] +} + +\newproblem{diffeasy:cubic}{% + $y=x^3 + 4x^2 - x + 3$ +}% +{% + \[\frac{dy}{dx} = 3x^2 + 8x - 1\] +} + +\newproblem{diffeasy:quad}{% + $y=2x^3 + 6x -1$ +}% +{% + \[\frac{dy}{dx} = 6x + 6 = 6(x+1)\] +} diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/prob-easy2.tex b/Master/texmf-dist/doc/latex/probsoln/samples/prob-easy2.tex new file mode 100644 index 00000000000..d6edc7ee3ce --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/prob-easy2.tex @@ -0,0 +1,137 @@ + % This file is public domain + % + % These are all easy differentiation problems + +\begin{defproblem}{diffeasy:gpowh}% +\begin{onlyproblem}% +\(f(x) = g(x)^{h(x)}.\)% +\end{onlyproblem}% +\begin{onlysolution}% +\begin{eqnarray*} +f(x) & = & e^{\ln g(x)^{h(x)}}\\ + & = & e^{h(x)\ln g(x)}\\ +f'(x) & = & e^{h(x)\ln g(x)}(h'(x)\ln g(x) + h(x)\frac{g'(x)}{g(x)})\\ + & = & g(x)^{h(x)}(h'(x)\ln g(x) + \frac{h(x)g'(x)}{g(x)}) +\end{eqnarray*}% +\end{onlysolution}% +\end{defproblem} + +\begin{defproblem}{diffeasy:arcsin}% +\begin{onlyproblem}% +\(y = \arcsin(x)\)% +\end{onlyproblem}% +\begin{onlysolution}% +\[\sin(y) = x\] +diff. w.r.t. $x$: +\begin{eqnarray*} +\cos y \frac{dy}{dx} & = & 1\\ +\frac{dy}{dx} & = & \frac{1}{\cos y}\\ + & = & \frac{1}{\sqrt{1 - \sin^2y}}\\ + & = & \frac{1}{\sqrt{1-x^2}}. +\end{eqnarray*} +\end{onlysolution}% +\end{defproblem} + +\begin{defproblem}{diffeasy:arccos}% +\begin{onlyproblem}% +$y = \arccos x$.% +\end{onlyproblem}% +\begin{onlysolution}% +\(\cos y = x\) +diff. w.r.t. $x$: +\begin{eqnarray*} +-\sin y \frac{dy}{dx} & = & 1\\ +\frac{dy}{dx} & = & \frac{-1}{\sin y}\\ + & = & \frac{-1}{\sqrt{1-\cos^2y}}\\ + & = & \frac{-1}{\sqrt{1-x^2}} +\end{eqnarray*} +\end{onlysolution}% +\end{defproblem} + +\begin{defproblem}{diffeasy:tan}% +\begin{onlyproblem}% +\(y = \tan x\)% +\end{onlyproblem} +\begin{onlysolution}% +\begin{eqnarray*} +y & = & \tan x\\ + & = & \frac{\sin x}{\cos x}\\ +\frac{dy}{dx} & = & \frac{\cos x}{\cos x} + \sin x\times\frac{-1}{\cos^2x}\times -\sin x\\ + & = & 1 + \tan^2x\\ + & = & \sec^2x. +\end{eqnarray*} +\end{onlysolution}% +\end{defproblem} + +\begin{defproblem}{diffeasy:arctan}% +\begin{onlyproblem}% +\(y = \arctan x = \tan^{-1}x\)% +\end{onlyproblem}% +\begin{onlysolution}% +\[\tan y = x\] +diff w.r.t. $x$: +\begin{eqnarray*} +\sec^2y\frac{dy}{dx} & = & 1\\ +\frac{dy}{dx} & = & \frac{1}{\sec^2y}\\ + & = & \frac{1}{1+\tan^2y}\\ + & = & \frac{1}{1+x^2} +\end{eqnarray*} +\end{onlysolution}% +\end{defproblem} + +\begin{defproblem}{diffeasy:cot}% +\begin{onlyproblem}% +\(y = (\tan x)^{-1} = \cot x\)% +\end{onlyproblem} +\begin{onlysolution}% +\begin{eqnarray*} +\frac{dy}{dx} & = & -(\tan x)^{-2}\sec^2x\\ + & = & -\frac{\cos^2x}{\sin^2x}\cdot\frac{1}{\cos^2x}\\ + & = & \frac{-1}{\sin^2x}\\ + & = & -\csc^2x. +\end{eqnarray*} +\end{onlysolution}% +\end{defproblem} + +\begin{defproblem}{diffeasy:cosxsqsinx}% +\begin{onlyproblem}% +$y = \cos(x^2)\sin x$.% +\end{onlyproblem}% +\begin{onlysolution}% +\[\frac{dy}{dx} = -\sin(x^2)2x\sin x + \cos(x^2)\cos x\] +\end{onlysolution}% +\end{defproblem} + +\begin{defproblem}{diffeasy:xlnx}% +\begin{onlyproblem}% +$y = (x+1)\ln(x+1)$. +\end{onlyproblem}% +\begin{onlysolution}% +\begin{eqnarray*} +\frac{dy}{dx} & = & \ln(x+1) + \frac{x+1}{x+1}\\ + & = & 1 + \ln(x+1). +\end{eqnarray*} +\end{onlysolution} +\end{defproblem} + +\begin{defproblem}{diffeasy:glng}% +\begin{onlyproblem}% +$f(x) = g(x)\ln(g(x))$. +\end{onlyproblem} +\begin{onlysolution}% +\begin{eqnarray*} +f'(x) & = & g'(x)\ln(g(x)) + \frac{g(x)}{g(x)}g'(x)\\ + & = & g'(x)(1+\ln(g(x))). +\end{eqnarray*} +\end{onlysolution}% +\end{defproblem} + +\begin{defproblem}{diffeasy:sinx/x} +\begin{onlyproblem}% +$y = \frac{\sin x}{x}$. +\end{onlyproblem} +\begin{onlysolution}% +\[\frac{dy}{dx} = \frac{\cos x}{x} - \frac{\sin x}{x^2}\] +\end{onlysolution}% +\end{defproblem} + diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/prob-implicit.tex b/Master/texmf-dist/doc/latex/probsoln/samples/prob-implicit.tex new file mode 100644 index 00000000000..dd847d96e30 --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/prob-implicit.tex @@ -0,0 +1,52 @@ + % This file is public domain + % + % These are all implicit differentiation problems + +\newproblem{imd:circ}{% +Find the gradient of the unit circle ($x^2 + y^2 = 1$).}{% +Differentiating with respect to $x$ gives: +\begin{eqnarray*} +2x + 2y\frac{dy}{dx} & = & 0\\ +\frac{dy}{dx} & = & \frac{-2x}{2y}\\ + & = & \frac{-x}{\sqrt{1-x^2}}. +\end{eqnarray*}} + +\newproblem{imd:ellipse}{% +Find the gradient of the ellipse given by $4x^2 + 3y^2 = 25$.}{% +Differentiating with respect to $x$ gives: +\begin{eqnarray*} +8x + 6y\frac{dy}{dx} & = & 0\\ +\frac{dy}{dx} & = & \frac{-8x}{6y}\\ + & = & \frac{-4x}{\sqrt{25-4x^2}}. +\end{eqnarray*}} + +\newproblem{imd:ysq:xcuov2mx}{% +Find $\frac{dy}{dx}$, given +\begin{displaymath} +y^2 = \frac{x^3}{2-x} +\end{displaymath}}{% +Differentiating both sides w.r.t.\ $x$: +\begin{eqnarray*} +2y\frac{dy}{dx} & = & \frac{(2-x)3x^2 - x^3(-1)}{(2-x)^2}\\ + & = & \frac{3x^2(2-x) + x^3}{(2-x)^2}\\ + & = & \frac{6x^2 - 3x^3 + x^3}{(2-x)^2}\\ + & = & \frac{6x^2-2x^3}{(2-x)^2}\\ + & = & 2x^2\frac{3-x}{(2-x)^2} +\end{eqnarray*} +Therefore +\begin{displaymath} +y\frac{dy}{dx} = x^2\frac{3-x}{(2-x)^2} +\end{displaymath}} + +\newproblem{imd:exy:IIxay}{% +Differentiate w.r.t.\ $x$: +\begin{displaymath} +e^{xy} = 2x + y +\end{displaymath}}{% +Differentiating both sides w.r.t.\ $x$: +\begin{eqnarray*} +e^{xy}(1y + x\frac{dy}{dx}) & = & 2 + \frac{dy}{dx}\\ +xe^{xy}\frac{dy}{dx} - \frac{dy}{dx} & = & 2 - ye^{xy} \\ +\frac{dy}{dx}(xe^{xy}-1) & = & 2 - ye^{xy}\\ +\frac{dy}{dx} & = & \frac{2-ye^{xy}}{xe^{xy}-1} +\end{eqnarray*}} diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/prob-mchoice.tex b/Master/texmf-dist/doc/latex/probsoln/samples/prob-mchoice.tex new file mode 100644 index 00000000000..22886ce9b2c --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/prob-mchoice.tex @@ -0,0 +1,37 @@ + % This file is public domain + % + % These problems are for multiple choice questions +\newproblem{mc:prod}{% +Which of the following is the derivative of $x\sin(x)$? +(Circle the correct answer.) +\ifthenelse{\boolean{showanswers}}{}% +{\begin{description} +\item[A] $\sin(x)$ +\item[B] $x\cos(x)$ +\item[C] $\sin(x) + x\cos(x)$ +\end{description} +}}{% +\begin{description} +\item[A] $\sin(x)$ +\item[B] $x\cos(x)$ +\item[\textcircled{C}] $\sin(x) + x\cos(x)$ (product rule). +\end{description} +} + +\newproblem{mc:quot}{% +Which of the following is the derivative of $\frac{\sin(x)}{x}$? +(Circle the correct answer.) +\ifthenelse{\boolean{showanswers}}{}% +{\begin{description} +\item[A] $\sin(x)$ +\item[B] $\cos(x)$ +\item[C] $\frac{\cos(x)x-\sin(x)}{x^2}$ +\end{description} +}}{% +\begin{description} +\item[A] $\sin(x)$ +\item[B] $\cos(x)$ +\item[\textcircled{C}] $\frac{\cos(x)x-\sin(x)}{x^2}$ +(quotient rule) +\end{description} +} diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/prob-mixed.tex b/Master/texmf-dist/doc/latex/probsoln/samples/prob-mixed.tex new file mode 100644 index 00000000000..1f43968b8a4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/prob-mixed.tex @@ -0,0 +1,78 @@ + % This file is public domain + % + % These problems are a mixture of essay-style and questions with + % answers. One of these problems requires the tikz package + +\newproblem*{oop}{Describe what is meant by object-oriented +programming.} + +\begin{defproblem}{inheritance} + Describe what is meant by the term \emph{inheritance} in + object-oriented programming. Use examples. +\end{defproblem} + +\begin{defproblem}{weightedcoin}% + \begin{onlyproblem} + A coin is weighted so that heads is four times as likely + as tails. Find the probability that: + \begin{textenum} + \item tails appears, + \item heads appears + \end{textenum}% + \end{onlyproblem}% + \begin{onlysolution} + Let $p=P(T)$, then $P(H)=4p$. We require $P(H)+P(T)=1$, + so $4p+p=1$, hence $p=\frac{1}{5}$. Therefore: + \begin{textenum} + \item $P(T)=\frac{1}{5}$, + \item $P(H)=\frac{4}{5}$ + \end{textenum} + \end{onlysolution} +\end{defproblem} + +\begin{defproblem}{validprobspaces} +\begin{onlyproblem}% +Under which of the following functions does +$S=\{a_1,a_2\}$ become a probability space? +\par +\begin{textenum} +\begin{tabular}{ll} +\item $P(a_1)=\frac{1}{3}$, $P(a_2)=\frac{1}{2}$ +& +\item\label{validprobspacescorrect1} $P(a_1)=\frac{3}{4}$, +$P(a_2)=\frac{1}{4}$ +\\ +\item\label{validprobspacescorrect2} $P(a_1)=1$, $P(a_2)=0$ +& +\item $P(a_1)=\frac{5}{4}$, $P(a_2)=-\frac{1}{4}$ +\end{tabular} +\end{textenum} +\end{onlyproblem}% +\begin{onlysolution}% +\ref{validprobspacescorrect1} and \ref{validprobspacescorrect2}% +\end{onlysolution} +\end{defproblem} + +\begin{defproblem}{digraph} + \begin{onlyproblem}\label{ex:digraph} + Identify, if any, the sinks and sources of the digraph shown in Figure~\ref{fig:digraph}. + + \begin{figure}[tbh] + \centering + \begin{tikzpicture}[every node/.style={draw,circle}] + \path (0,0) node (A) {$A$} + (1,0) node (B) {$B$} + (0,1) node (C) {$C$}; + \draw[->] (A) -- (B); + \draw[->] (B) -- (C); + \draw[->] (A) -- (C); + \end{tikzpicture} + \par + \caption{Digraph for Question~\ref{ex:digraph}} + \label{fig:digraph} + \end{figure} + \end{onlyproblem} + \begin{onlysolution} + $A$ is a souce and $C$ is a sink. + \end{onlysolution} +\end{defproblem} diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/prob-newdata.tex b/Master/texmf-dist/doc/latex/probsoln/samples/prob-newdata.tex new file mode 100644 index 00000000000..946f0e11248 --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/prob-newdata.tex @@ -0,0 +1,27 @@ + % This file is public domain +\begin{defproblem}{sample} +\begin{onlyproblem} +Differentiate $y=\sin x$ +\end{onlyproblem} +\begin{onlysolution} +$y'=\cos x$ +\end{onlysolution} +\end{defproblem} + +\begin{defproblem}[1]{sample2} +\begin{onlyproblem} +Differentiate $y = \sin(#1x)$ +\end{onlyproblem} +\begin{onlysolution} +$y'=#1\cos #1x$ +\end{onlysolution} +\end{defproblem} + +\begin{defproblem}{sample3} +\begin{onlyproblem} +Differentiate $y = x^2$. +\end{onlyproblem} +\begin{onlysolution} +$y' = 2x$ +\end{onlysolution} +\end{defproblem} diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/prob-nosoln.tex b/Master/texmf-dist/doc/latex/probsoln/samples/prob-nosoln.tex new file mode 100644 index 00000000000..9909651b86d --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/prob-nosoln.tex @@ -0,0 +1,9 @@ + % This file is public domain + % + % these problems don't have solutions + +\newproblem*{oop}{Describe what is meant by object-oriented +programming.} + +\newproblem*{inheritance}{Describe what is meant by the term +\emph{inheritance} in object-oriented programming. Use examples.} diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/prob-probspaces.tex b/Master/texmf-dist/doc/latex/probsoln/samples/prob-probspaces.tex new file mode 100644 index 00000000000..4862e5caefb --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/prob-probspaces.tex @@ -0,0 +1,33 @@ + % This file is public domain + % + % Finite probability spaces +\newproblem{weightedcoin}{% +A coin is weighted so that heads is four times as likely +as tails. Find the probability that: +\begin{textenum} +\item tails appears, +\item heads appears +\end{textenum}}{% +Let $p=P(T)$, then $P(H)=4p$. We require $P(H)+P(T)=1$, +so $4p+p=1$, hence $p=\frac{1}{5}$. Therefore: +\begin{textenum} +\item $P(T)=\frac{1}{5}$, +\item $P(H)=\frac{4}{5}$ +\end{textenum}} + +\newproblem*{validprobspaces}{% +Under which of the following functions does +$S=\{a_1,a_2\}$ become a probability space? +\par +\begin{textenum} +\begin{tabular}{ll} +\incorrectitem $P(a_1)=\frac{1}{3}$, $P(a_2)=\frac{1}{2}$ +& +\correctitem $P(a_1)=\frac{3}{4}$, $P(a_2)=\frac{1}{4}$ +\\ +\correctitem $P(a_1)=1$, $P(a_2)=0$ +& +\incorrectitem $P(a_1)=\frac{5}{4}$, $P(a_2)=-\frac{1}{4}$ +\end{tabular} +\end{textenum} +} diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/prob-probspaces2.tex b/Master/texmf-dist/doc/latex/probsoln/samples/prob-probspaces2.tex new file mode 100644 index 00000000000..dacddb510cf --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/prob-probspaces2.tex @@ -0,0 +1,43 @@ + % This file is public domain + % + % Finite probability spaces +\begin{defproblem}{weightedcoin} +\begin{onlyproblem}% +A coin is weighted so that heads is four times as likely +as tails. Find the probability that: +\begin{textenum} +\item tails appears, +\item heads appears +\end{textenum} +\end{onlyproblem} +\begin{onlysolution}% +Let $p=P(T)$, then $P(H)=4p$. We require $P(H)+P(T)=1$, +so $4p+p=1$, hence $p=\frac{1}{5}$. Therefore: +\begin{textenum} +\item $P(T)=\frac{1}{5}$, +\item $P(H)=\frac{4}{5}$ +\end{textenum} +\end{onlysolution} +\end{defproblem} + +\begin{defproblem}{validprobspaces} +\begin{onlyproblem}% +Under which of the following functions does +$S=\{a_1,a_2\}$ become a probability space? +\par +\begin{textenum} +\begin{tabular}{ll} +\item $P(a_1)=\frac{1}{3}$, $P(a_2)=\frac{1}{2}$ +& +\item\label{validprobspacescorrect1} $P(a_1)=\frac{3}{4}$, $P(a_2)=\frac{1}{4}$ +\\ +\item\label{validprobspacescorrect2} $P(a_1)=1$, $P(a_2)=0$ +& +\item $P(a_1)=\frac{5}{4}$, $P(a_2)=-\frac{1}{4}$ +\end{tabular} +\end{textenum} +\end{onlyproblem}% +\begin{onlysolution}% +\ref{validprobspacescorrect1} and \ref{validprobspacescorrect2}% +\end{onlysolution} +\end{defproblem} diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/prob-tabmchoice.tex b/Master/texmf-dist/doc/latex/probsoln/samples/prob-tabmchoice.tex new file mode 100644 index 00000000000..9555b97dd32 --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/prob-tabmchoice.tex @@ -0,0 +1,18 @@ + % This file is public domain + % + % These problems are designed to be placed in a + % tabular environment + % +\newproblem{tab:1}{% +What is $(3+2)\times5$? & +25 \ifshowanswers\selected\else\notselected\fi & +13 \notselected & +10 \notselected & +}{Brackets come first}% + +\newproblem{tab:2}{% +What is $-1+2\times3$? & +3 \notselected & +-7 \notselected & +5 \ifshowanswers\selected\else\notselected\fi & +}{Multiplication comes first}% diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/prob-verb.tex b/Master/texmf-dist/doc/latex/probsoln/samples/prob-verb.tex new file mode 100644 index 00000000000..07e0f835134 --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/prob-verb.tex @@ -0,0 +1,28 @@ +\begin{defproblem}{code-helloworld} +This problem has a code fragment. +\begin{onlyproblem} +\lstset{language=Java} +\begin{lstlisting} +public class HelloWorld +{ + public static void main(String[] args) + { + System.out.println("Hello World!"); + } +} +\end{lstlisting} +\end{onlyproblem} +\begin{onlysolution} +\lstset{language=Java} +\begin{lstlisting} +public class HelloWorld +{ + public static void main(String[] args) + { + System.out.println("Hello " + + (args.length==0 ? "anon" : args[0])+"!"); + } +} +\end{lstlisting} +\end{onlysolution} +\end{defproblem} diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample-exclude.pdf b/Master/texmf-dist/doc/latex/probsoln/samples/sample-exclude.pdf Binary files differnew file mode 100644 index 00000000000..a0e6571cacb --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample-exclude.pdf diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample-exclude.tex b/Master/texmf-dist/doc/latex/probsoln/samples/sample-exclude.tex index 8295015352e..0120d310ed2 100644 --- a/Master/texmf-dist/doc/latex/probsoln/samples/sample-exclude.tex +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample-exclude.tex @@ -1,51 +1,3 @@ -%% -%% This is file `sample-exclude.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% probsoln.dtx (with options: `sample-exclude.tex,package') -%% -%% probsoln.dtx -%% Copyright 2013 Nicola Talbot -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license of (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainer of this work is Nicola Talbot. -%% -%% This work consists of the files probsoln.dtx and probsoln.ins and the derived files probsoln.sty, sample-exclude.tex, sample.tex, sample2.tex, sample3.tex, sample4.tex, sample5.tex, sample6.tex, sample7.tex, sample8.tex, prob-1stprncp.tex, prob-args.tex, prob-easy.tex, prob-easy2.tex, prob-implicit.tex, prob-mchoice.tex, prob-mixed.tex, prob-newdata.tex, prob-nosoln.tex, prob-probspaces.tex, prob-probspaces2.tex, prob-tabmchoice.tex, prob-verb.tex. -%% -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} -%% randomly select 25 problems from derivatives.tex and add to -%% the data set called 'deriv' -%% Display the problems -%% You may need to change \theenumi back here -%% randomly select 25 problems from probspaces.tex and add to -%% the data set called 'spaces' -%% Display the problems -%% You may need to change \theenumi back here % This file is public domain \documentclass[a4paper]{article} @@ -63,11 +15,11 @@ % Exclude problems that have been used this year or the previous % two academic years. (Creates a file called 'excluded.tex' to % store labels of used problems. Also creates a file called - % \jobname.prb that stores labels of problems used in this + % \jobname.prb that stores labels of problems used in this % document, so they don't get excluded on subsequent runs.) \ExcludePreviousFile[3]{excluded} - % To clear the used problems file (\jobname.prb) of the labels + % To clear the used problems file (\jobname.prb) of the labels % generated in the previous run, comment the above and uncomment % below: % \ClearUsedFile{excluded} @@ -96,6 +48,7 @@ % and store in database 'nosoln': \loadrandomproblems[nosoln]{1}{prob-nosoln} + \begin{document} \title{Sample Problem Sheet} \author{Nicola Talbot} @@ -124,6 +77,3 @@ \foreachproblem[nosoln]{\item \thisproblem} \end{enumerate} \end{document} -\endinput -%% -%% End of file `sample-exclude.tex'. diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample.pdf b/Master/texmf-dist/doc/latex/probsoln/samples/sample.pdf Binary files differindex 43f13544672..3a44bed21a3 100644 --- a/Master/texmf-dist/doc/latex/probsoln/samples/sample.pdf +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample.pdf diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample.tex b/Master/texmf-dist/doc/latex/probsoln/samples/sample.tex index c5b631659e6..b6bd6658259 100644 --- a/Master/texmf-dist/doc/latex/probsoln/samples/sample.tex +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample.tex @@ -1,51 +1,3 @@ -%% -%% This is file `sample.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% probsoln.dtx (with options: `sample.tex,package') -%% -%% probsoln.dtx -%% Copyright 2013 Nicola Talbot -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license of (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainer of this work is Nicola Talbot. -%% -%% This work consists of the files probsoln.dtx and probsoln.ins and the derived files probsoln.sty, sample-exclude.tex, sample.tex, sample2.tex, sample3.tex, sample4.tex, sample5.tex, sample6.tex, sample7.tex, sample8.tex, prob-1stprncp.tex, prob-args.tex, prob-easy.tex, prob-easy2.tex, prob-implicit.tex, prob-mchoice.tex, prob-mixed.tex, prob-newdata.tex, prob-nosoln.tex, prob-probspaces.tex, prob-probspaces2.tex, prob-tabmchoice.tex, prob-verb.tex. -%% -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} -%% randomly select 25 problems from derivatives.tex and add to -%% the data set called 'deriv' -%% Display the problems -%% You may need to change \theenumi back here -%% randomly select 25 problems from probspaces.tex and add to -%% the data set called 'spaces' -%% Display the problems -%% You may need to change \theenumi back here % This file is public domain \documentclass[a4paper]{article} @@ -81,6 +33,7 @@ % and store in database 'nosoln': \loadrandomproblems[nosoln]{1}{prob-nosoln} + \begin{document} \title{Sample Problem Sheet} \author{Nicola Talbot} @@ -109,6 +62,3 @@ \foreachproblem[nosoln]{\item \thisproblem} \end{enumerate} \end{document} -\endinput -%% -%% End of file `sample.tex'. diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample2.pdf b/Master/texmf-dist/doc/latex/probsoln/samples/sample2.pdf Binary files differindex a54bc6f77d3..007f6d906b5 100644 --- a/Master/texmf-dist/doc/latex/probsoln/samples/sample2.pdf +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample2.pdf diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample2.tex b/Master/texmf-dist/doc/latex/probsoln/samples/sample2.tex index 72a2f6df6a3..cd13c89f309 100644 --- a/Master/texmf-dist/doc/latex/probsoln/samples/sample2.tex +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample2.tex @@ -1,51 +1,3 @@ -%% -%% This is file `sample2.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% probsoln.dtx (with options: `sample2.tex,package') -%% -%% probsoln.dtx -%% Copyright 2013 Nicola Talbot -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license of (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainer of this work is Nicola Talbot. -%% -%% This work consists of the files probsoln.dtx and probsoln.ins and the derived files probsoln.sty, sample-exclude.tex, sample.tex, sample2.tex, sample3.tex, sample4.tex, sample5.tex, sample6.tex, sample7.tex, sample8.tex, prob-1stprncp.tex, prob-args.tex, prob-easy.tex, prob-easy2.tex, prob-implicit.tex, prob-mchoice.tex, prob-mixed.tex, prob-newdata.tex, prob-nosoln.tex, prob-probspaces.tex, prob-probspaces2.tex, prob-tabmchoice.tex, prob-verb.tex. -%% -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} -%% randomly select 25 problems from derivatives.tex and add to -%% the data set called 'deriv' -%% Display the problems -%% You may need to change \theenumi back here -%% randomly select 25 problems from probspaces.tex and add to -%% the data set called 'spaces' -%% Display the problems -%% You may need to change \theenumi back here % This file is public domain \documentclass[a4paper]{article} @@ -94,6 +46,3 @@ \end{enumerate} \end{enumerate} \end{document} -\endinput -%% -%% End of file `sample2.tex'. diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample3.pdf b/Master/texmf-dist/doc/latex/probsoln/samples/sample3.pdf Binary files differindex 1b0e3717ade..d6f6ff4909a 100644 --- a/Master/texmf-dist/doc/latex/probsoln/samples/sample3.pdf +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample3.pdf diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample3.tex b/Master/texmf-dist/doc/latex/probsoln/samples/sample3.tex index f40e4755ae4..6922f9538ed 100644 --- a/Master/texmf-dist/doc/latex/probsoln/samples/sample3.tex +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample3.tex @@ -1,51 +1,3 @@ -%% -%% This is file `sample3.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% probsoln.dtx (with options: `sample3.tex,package') -%% -%% probsoln.dtx -%% Copyright 2013 Nicola Talbot -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license of (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainer of this work is Nicola Talbot. -%% -%% This work consists of the files probsoln.dtx and probsoln.ins and the derived files probsoln.sty, sample-exclude.tex, sample.tex, sample2.tex, sample3.tex, sample4.tex, sample5.tex, sample6.tex, sample7.tex, sample8.tex, prob-1stprncp.tex, prob-args.tex, prob-easy.tex, prob-easy2.tex, prob-implicit.tex, prob-mchoice.tex, prob-mixed.tex, prob-newdata.tex, prob-nosoln.tex, prob-probspaces.tex, prob-probspaces2.tex, prob-tabmchoice.tex, prob-verb.tex. -%% -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} -%% randomly select 25 problems from derivatives.tex and add to -%% the data set called 'deriv' -%% Display the problems -%% You may need to change \theenumi back here -%% randomly select 25 problems from probspaces.tex and add to -%% the data set called 'spaces' -%% Display the problems -%% You may need to change \theenumi back here % This file is public domain \documentclass[a4paper]{article} @@ -66,11 +18,8 @@ \begin{document} \begin{longtable}{lrrrl} -\bfseries Question & \bfseries A & \bfseries B & +\bfseries Question & \bfseries A & \bfseries B & \bfseries C & \ifshowanswers \bfseries Reason\fi\\ \selectrandomly{prob-tabmchoice}{2} \end{longtable} \end{document} -\endinput -%% -%% End of file `sample3.tex'. diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample4.pdf b/Master/texmf-dist/doc/latex/probsoln/samples/sample4.pdf Binary files differindex fba702a13fb..7aadf56ca1f 100644 --- a/Master/texmf-dist/doc/latex/probsoln/samples/sample4.pdf +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample4.pdf diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample4.tex b/Master/texmf-dist/doc/latex/probsoln/samples/sample4.tex index e79fd08340d..b432182d01e 100644 --- a/Master/texmf-dist/doc/latex/probsoln/samples/sample4.tex +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample4.tex @@ -1,51 +1,3 @@ -%% -%% This is file `sample4.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% probsoln.dtx (with options: `sample4.tex,package') -%% -%% probsoln.dtx -%% Copyright 2013 Nicola Talbot -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license of (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainer of this work is Nicola Talbot. -%% -%% This work consists of the files probsoln.dtx and probsoln.ins and the derived files probsoln.sty, sample-exclude.tex, sample.tex, sample2.tex, sample3.tex, sample4.tex, sample5.tex, sample6.tex, sample7.tex, sample8.tex, prob-1stprncp.tex, prob-args.tex, prob-easy.tex, prob-easy2.tex, prob-implicit.tex, prob-mchoice.tex, prob-mixed.tex, prob-newdata.tex, prob-nosoln.tex, prob-probspaces.tex, prob-probspaces2.tex, prob-tabmchoice.tex, prob-verb.tex. -%% -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} -%% randomly select 25 problems from derivatives.tex and add to -%% the data set called 'deriv' -%% Display the problems -%% You may need to change \theenumi back here -%% randomly select 25 problems from probspaces.tex and add to -%% the data set called 'spaces' -%% Display the problems -%% You may need to change \theenumi back here % This file is public domain \documentclass[a4paper]{article} @@ -67,6 +19,3 @@ Differentiate the following functions: \foreachproblem{\item \thisproblem} \end{enumerate} \end{document} -\endinput -%% -%% End of file `sample4.tex'. diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample5.pdf b/Master/texmf-dist/doc/latex/probsoln/samples/sample5.pdf Binary files differindex 3d50533dc6c..f4ac8c7fdc0 100644 --- a/Master/texmf-dist/doc/latex/probsoln/samples/sample5.pdf +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample5.pdf diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample5.tex b/Master/texmf-dist/doc/latex/probsoln/samples/sample5.tex index 4f515585196..ac294c11caf 100644 --- a/Master/texmf-dist/doc/latex/probsoln/samples/sample5.tex +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample5.tex @@ -1,51 +1,3 @@ -%% -%% This is file `sample5.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% probsoln.dtx (with options: `sample5.tex,package') -%% -%% probsoln.dtx -%% Copyright 2013 Nicola Talbot -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license of (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainer of this work is Nicola Talbot. -%% -%% This work consists of the files probsoln.dtx and probsoln.ins and the derived files probsoln.sty, sample-exclude.tex, sample.tex, sample2.tex, sample3.tex, sample4.tex, sample5.tex, sample6.tex, sample7.tex, sample8.tex, prob-1stprncp.tex, prob-args.tex, prob-easy.tex, prob-easy2.tex, prob-implicit.tex, prob-mchoice.tex, prob-mixed.tex, prob-newdata.tex, prob-nosoln.tex, prob-probspaces.tex, prob-probspaces2.tex, prob-tabmchoice.tex, prob-verb.tex. -%% -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} -%% randomly select 25 problems from derivatives.tex and add to -%% the data set called 'deriv' -%% Display the problems -%% You may need to change \theenumi back here -%% randomly select 25 problems from probspaces.tex and add to -%% the data set called 'spaces' -%% Display the problems -%% You may need to change \theenumi back here % This file is public domain \documentclass[a4paper]{report} @@ -80,6 +32,3 @@ \end{enumerate} \end{document} -\endinput -%% -%% End of file `sample5.tex'. diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample6.pdf b/Master/texmf-dist/doc/latex/probsoln/samples/sample6.pdf Binary files differnew file mode 100644 index 00000000000..2a8be97bbc7 --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample6.pdf diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample6.tex b/Master/texmf-dist/doc/latex/probsoln/samples/sample6.tex index 321fda452a9..65769d3c97b 100644 --- a/Master/texmf-dist/doc/latex/probsoln/samples/sample6.tex +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample6.tex @@ -1,51 +1,3 @@ -%% -%% This is file `sample6.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% probsoln.dtx (with options: `sample6.tex,package') -%% -%% probsoln.dtx -%% Copyright 2013 Nicola Talbot -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license of (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainer of this work is Nicola Talbot. -%% -%% This work consists of the files probsoln.dtx and probsoln.ins and the derived files probsoln.sty, sample-exclude.tex, sample.tex, sample2.tex, sample3.tex, sample4.tex, sample5.tex, sample6.tex, sample7.tex, sample8.tex, prob-1stprncp.tex, prob-args.tex, prob-easy.tex, prob-easy2.tex, prob-implicit.tex, prob-mchoice.tex, prob-mixed.tex, prob-newdata.tex, prob-nosoln.tex, prob-probspaces.tex, prob-probspaces2.tex, prob-tabmchoice.tex, prob-verb.tex. -%% -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} -%% randomly select 25 problems from derivatives.tex and add to -%% the data set called 'deriv' -%% Display the problems -%% You may need to change \theenumi back here -%% randomly select 25 problems from probspaces.tex and add to -%% the data set called 'spaces' -%% Display the problems -%% You may need to change \theenumi back here \documentclass{article} \usepackage[usedefaultargs]{probsoln} @@ -57,6 +9,3 @@ \foreachproblem{\item \thisproblem} \end{enumerate} \end{document} -\endinput -%% -%% End of file `sample6.tex'. diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample7.pdf b/Master/texmf-dist/doc/latex/probsoln/samples/sample7.pdf Binary files differnew file mode 100644 index 00000000000..12b0da7dad8 --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample7.pdf diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample7.tex b/Master/texmf-dist/doc/latex/probsoln/samples/sample7.tex index 0b48c4cc85e..00ccf637d46 100644 --- a/Master/texmf-dist/doc/latex/probsoln/samples/sample7.tex +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample7.tex @@ -1,51 +1,3 @@ -%% -%% This is file `sample7.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% probsoln.dtx (with options: `sample7.tex,package') -%% -%% probsoln.dtx -%% Copyright 2013 Nicola Talbot -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license of (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainer of this work is Nicola Talbot. -%% -%% This work consists of the files probsoln.dtx and probsoln.ins and the derived files probsoln.sty, sample-exclude.tex, sample.tex, sample2.tex, sample3.tex, sample4.tex, sample5.tex, sample6.tex, sample7.tex, sample8.tex, prob-1stprncp.tex, prob-args.tex, prob-easy.tex, prob-easy2.tex, prob-implicit.tex, prob-mchoice.tex, prob-mixed.tex, prob-newdata.tex, prob-nosoln.tex, prob-probspaces.tex, prob-probspaces2.tex, prob-tabmchoice.tex, prob-verb.tex. -%% -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} -%% randomly select 25 problems from derivatives.tex and add to -%% the data set called 'deriv' -%% Display the problems -%% You may need to change \theenumi back here -%% randomly select 25 problems from probspaces.tex and add to -%% the data set called 'spaces' -%% Display the problems -%% You may need to change \theenumi back here \documentclass{article} \usepackage{tikz} @@ -66,6 +18,3 @@ \foreachsolution{\item[\ref{q-\thisproblemlabel}] \thisproblem} \end{enumerate} \end{document} -\endinput -%% -%% End of file `sample7.tex'. diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample8.pdf b/Master/texmf-dist/doc/latex/probsoln/samples/sample8.pdf Binary files differnew file mode 100644 index 00000000000..f931368efa3 --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample8.pdf diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample8.tex b/Master/texmf-dist/doc/latex/probsoln/samples/sample8.tex index 503488f5e2e..e68954daf24 100644 --- a/Master/texmf-dist/doc/latex/probsoln/samples/sample8.tex +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample8.tex @@ -1,51 +1,3 @@ -%% -%% This is file `sample8.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% probsoln.dtx (with options: `sample8.tex,package') -%% -%% probsoln.dtx -%% Copyright 2013 Nicola Talbot -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license of (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainer of this work is Nicola Talbot. -%% -%% This work consists of the files probsoln.dtx and probsoln.ins and the derived files probsoln.sty, sample-exclude.tex, sample.tex, sample2.tex, sample3.tex, sample4.tex, sample5.tex, sample6.tex, sample7.tex, sample8.tex, prob-1stprncp.tex, prob-args.tex, prob-easy.tex, prob-easy2.tex, prob-implicit.tex, prob-mchoice.tex, prob-mixed.tex, prob-newdata.tex, prob-nosoln.tex, prob-probspaces.tex, prob-probspaces2.tex, prob-tabmchoice.tex, prob-verb.tex. -%% -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} -%% randomly select 25 problems from derivatives.tex and add to -%% the data set called 'deriv' -%% Display the problems -%% You may need to change \theenumi back here -%% randomly select 25 problems from probspaces.tex and add to -%% the data set called 'spaces' -%% Display the problems -%% You may need to change \theenumi back here \documentclass{article} \usepackage{listings} @@ -61,6 +13,3 @@ \foreachproblem{\item \thisproblem} \end{enumerate} \end{document} -\endinput -%% -%% End of file `sample8.tex'. diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample9.pdf b/Master/texmf-dist/doc/latex/probsoln/samples/sample9.pdf Binary files differnew file mode 100644 index 00000000000..9632dc35dfa --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample9.pdf diff --git a/Master/texmf-dist/doc/latex/probsoln/samples/sample9.tex b/Master/texmf-dist/doc/latex/probsoln/samples/sample9.tex new file mode 100644 index 00000000000..79ac7c5f5e9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/probsoln/samples/sample9.tex @@ -0,0 +1,19 @@ + % This file is public domain +\documentclass[a4paper]{article} + +\usepackage{probsoln} + % uncomment the following line to display the answers + % \showanswers + + % Load 10 problems randomly selected from the given files +\loadrandomproblems{10}{prob-1stprncp,prob-easy,prob-implicit,prob-probspaces} + +\begin{document} +\title{Sample Problem Sheet} +\author{Nicola Talbot} +\maketitle + +\begin{enumerate} + \foreachproblem{\item \thisproblem} +\end{enumerate} +\end{document} diff --git a/Master/texmf-dist/source/latex/probsoln/probsoln.dtx b/Master/texmf-dist/source/latex/probsoln/probsoln.dtx index 0468d92c632..9b4593b23b0 100644 --- a/Master/texmf-dist/source/latex/probsoln/probsoln.dtx +++ b/Master/texmf-dist/source/latex/probsoln/probsoln.dtx @@ -1,15 +1,15 @@ %\iffalse -% probsoln.dtx generated using makedtx version 0.94b (c) Nicola Talbot +% probsoln.dtx generated using makedtx version 1.1 (c) Nicola Talbot % Command line args: -% -macrocode ".+\.tex" -% -comment ".+\.tex" +% -doc "probsoln-manual.tex" % -src "(.+)\.(sty)\Z=>\1.\2" % -src "(sample.*)\.(tex)\Z=>\1.\2" % -src "(prob-.*)\.(tex)\Z=>\1.\2" -% -doc "probsoln-manual.tex" +% -comment ".+\.tex" +% -macrocode ".+\.tex" % -author "Nicola Talbot" % probsoln -% Created on 2013/3/13 15:28 +% Created on 2017/7/10 11:58 %\fi %\iffalse %<*package> @@ -32,7 +32,7 @@ %\fi % \iffalse % Doc-Source file to use with LaTeX2e -% Copyright (C) 2013 Nicola Talbot, all rights reserved. +% Copyright (C) 2017 Nicola Talbot, all rights reserved. % \fi % \iffalse %<*driver> @@ -54,7 +54,7 @@ \RecordChanges \PageIndex -\CheckSum{1822} +\CheckSum{1830} \newcommand*{\dq}[1]{``#1''} @@ -66,16 +66,12 @@ %\MakeShortVerb{"} %\DeleteShortVerb{\|} % -% \title{probsoln v3.04: +% \title{probsoln v3.05: %creating problem sheets optionally with solutions} -% \author{Nicola L.C. Talbot\\[10pt] -%School of Computing Sciences\\ -%University of East Anglia\\ -%Norwich. Norfolk\\ -%NR4 7TJ. United Kingdom.\\ -%\url{http://theoval.cmp.uea.ac.uk/~nlct/}} -% -% \date{2012-08-23} +% \author{Nicola L.C. Talbot\\ +%\url{http://www.dickimaw-books.com/}} +% +% \date{2017-07-10} % \maketitle %\tableofcontents % @@ -95,6 +91,11 @@ %In this way, one file can either produce the student's version or %the teacher's version. % +%You may want to consider using \sty{datatool} with \app{datatooltk} +%instead of \styfmt{probsoln}. See +%\href{http://www.dickimaw-books.com/latex/admin/html/datatoolexam.shtml}{Using +%the \styfmt{datatool} Package for Exams or Assignment Sheets}. +% %\section{Package Options}\label{sec:pkgopt} %The following options may be passed to this package: %\begin{description} @@ -376,6 +377,11 @@ %\end{onlysolution} %\end{defproblem} %\end{verbatim} +%\begin{important} +%If you don't use \cs{thisproblem} or you don't +%use the package option \pkgopt{usedefaultargs}, then you must supply +%the arguments. +%\end{important} % %\begin{definition}[\DescribeMacro{\newproblem}] %\cs{newproblem}\oarg{n}\oarg{default args}\marg{label}\marg{problem}\marg{solution} @@ -393,11 +399,11 @@ %\end{ttfamily} %For example: %\begin{verbatim} -%\newproblem[1]{diffsin}{% -% \(f(x) = \sin(#1x)\) +%\newproblem[1]{diffcos}{% +% \(f(x) = \cos(#1x)\) %}% %{% -% \(f'(x) = #1\cos(#1x)\) +% \(f'(x) = -#1\sin(#1x)\) %} %\end{verbatim} %is equivalent to @@ -520,18 +526,33 @@ %list}. % %\begin{definition}[\DescribeMacro{\loadrandomproblems}] -%\cs{loadrandomproblems}\oarg{data set}\marg{n}\marg{filename} +%\cs{loadrandomproblems}\oarg{data set}\marg{n}\marg{filenames} %\end{definition} -%This randomly loads \meta{n} problems from \meta{filename} and -%adds them to the given data set. If \meta{data set} 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 \meta{n} problems -%defined in \meta{filename}. +%This randomly loads \meta{n} problems from the comma-separated +%list\footnote{The list form was added to v3.05. Earlier versions +%only allow a single filename.} +%of \meta{filenames} and adds them to the given data set. If +%\meta{data set} 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 +%\meta{n} problems defined across the given list of files. +% +%Note that there's a difference between +%\begin{verbatim} +%\loadrandomproblems{5}{problemset1} +%\loadrandomproblems{5}{problemset2} +%\end{verbatim} +%and +%\begin{verbatim} +%\loadrandomproblems{10}{problemset1,problemset2} +%\end{verbatim} +%In the first case, the data set will contain 5 problems randomly +%selected from \texttt{problemset1} and 5 problems randomly selected +%from \texttt{problemset2}. Whereas in the second case, the data set +%will contain 10 problems randomly selected across both files. % %\begin{definition}[\DescribeMacro{\loadrandomexcept}] -%\cs{loadrandomexcept}\oarg{data -%set}\marg{n}\marg{filename}\marg{exception list} +%\cs{loadrandomexcept}\oarg{data set}\marg{n}\marg{filenames}\marg{exception list} %\end{definition} %This is similar to \cs{loadrandomproblems} except that it won't load %those problems whose labels are listed in \meta{exception list}. @@ -711,7 +732,7 @@ %\begin{definition}[\DescribeMacro{\foreachsolution}] %\cs{foreachsolution}\oarg{data set}\marg{body} %\end{definition} -%This is equivalent to \cs{foreachsolution}, but only iterates +%This is equivalent to \cs{foreachproblem}, but only iterates %through problems that contain the \env{onlysolution} environment. %Note that you still need to use \ics{showanswers} or the %\pkgopt{answers} package option for the contents of the @@ -967,7 +988,7 @@ % \end{macrocode} % Identify this package and version: % \begin{macrocode} -\ProvidesPackage{probsoln}[2012/08/23 v3.04 (NLCT)] +\ProvidesPackage{probsoln}[2017/07/10 v3.05 (NLCT)] % \end{macrocode} % Required packages: %\changes{3.01}{2011/08/22}{substr package no longer required} @@ -1490,7 +1511,7 @@ % which stores a comma-separated list of labels for each problem % associated with that data base. Each problem \meta{label} is % stored in the macro -% \cs{prob@data@}\meta{name}"@"\meta{name}"@"\meta{label}. Problems +% \cs{prob@data@}\meta{name}"@"\meta{label}. Problems % loaded from an external file using \cs{loadproblems} are added % to the specified data base. Any problems that are defined in the % document or are \cs{input}ed from another file (without the @@ -2345,7 +2366,11 @@ Please specify (e.g. \csname @prob@getargs@eg@\romannumeral#1\endcsname):}% % \begin{macrocode} \let\prob@do@defproblem=\prob@add@currentlabel \firstpasstrue - \input{#3}% +% \end{macrocode} +%\changes{3.05}{2017/07/10}{allow comma-separated list of file names} +%Allow a comma-separated list of file names. +% \begin{macrocode} + \@for\@thisfile:=#3\do{\input{\@thisfile}}% % \end{macrocode} % Shuffle labels. % \begin{macrocode} @@ -2422,7 +2447,7 @@ Please specify (e.g. \csname @prob@getargs@eg@\romannumeral#1\endcsname):}% % \begin{macrocode} \let\prob@do@defproblem=\prob@do@selectedproblem \firstpassfalse - \input{#3}% + \@for\@thisfile:=#3\do{\input{\@thisfile}}% % \end{macrocode} % Move them from the reserved data base into the required data base % in the order specified by \cs{prob@selectedlabels} @@ -3353,6 +3378,39 @@ Differentiate the following functions: %\fi %\iffalse % \begin{macrocode} +%<*sample9.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} + % This file is public domain +\documentclass[a4paper]{article} + +\usepackage{probsoln} + % uncomment the following line to display the answers + % \showanswers + + % Load 10 problems randomly selected from the given files +\loadrandomproblems{10}{prob-1stprncp,prob-easy,prob-implicit,prob-probspaces} + +\begin{document} +\title{Sample Problem Sheet} +\author{Nicola Talbot} +\maketitle + +\begin{enumerate} + \foreachproblem{\item \thisproblem} +\end{enumerate} +\end{document} +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%</sample9.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} %<*prob-1stprncp.tex> % \end{macrocode} %\fi diff --git a/Master/texmf-dist/source/latex/probsoln/probsoln.ins b/Master/texmf-dist/source/latex/probsoln/probsoln.ins index 261f5de04d8..6ac532dcc55 100644 --- a/Master/texmf-dist/source/latex/probsoln/probsoln.ins +++ b/Master/texmf-dist/source/latex/probsoln/probsoln.ins @@ -1,14 +1,14 @@ -% probsoln.ins generated using makedtx version 0.94b 2013/3/13 15:28 +% probsoln.ins generated using makedtx version 1.1 2017/7/10 11:58 \input docstrip \preamble probsoln.dtx - Copyright 2013 Nicola Talbot + Copyright 2017 Nicola Talbot This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 - of this license of (at your option) any later version. + of this license or (at your option) any later version. The latest version of this license is in http://www.latex-project.org/lppl.txt and version 1.3 or later is part of all distributions of LaTeX @@ -18,7 +18,7 @@ The Current Maintainer of this work is Nicola Talbot. - This work consists of the files probsoln.dtx and probsoln.ins and the derived files probsoln.sty, sample-exclude.tex, sample.tex, sample2.tex, sample3.tex, sample4.tex, sample5.tex, sample6.tex, sample7.tex, sample8.tex, prob-1stprncp.tex, prob-args.tex, prob-easy.tex, prob-easy2.tex, prob-implicit.tex, prob-mchoice.tex, prob-mixed.tex, prob-newdata.tex, prob-nosoln.tex, prob-probspaces.tex, prob-probspaces2.tex, prob-tabmchoice.tex, prob-verb.tex. + This work consists of the files probsoln.dtx and probsoln.ins and the derived files probsoln.sty, sample-exclude.tex, sample.tex, sample2.tex, sample3.tex, sample4.tex, sample5.tex, sample6.tex, sample7.tex, sample8.tex, sample9.tex, prob-1stprncp.tex, prob-args.tex, prob-easy.tex, prob-easy2.tex, prob-implicit.tex, prob-mchoice.tex, prob-mixed.tex, prob-newdata.tex, prob-nosoln.tex, prob-probspaces.tex, prob-probspaces2.tex, prob-tabmchoice.tex, prob-verb.tex. \endpreamble @@ -44,6 +44,8 @@ \usepostamble\defaultpostamble\from{probsoln.dtx}{sample7.tex,package}} \file{sample8.tex}{\usepreamble\defaultpreamble \usepostamble\defaultpostamble\from{probsoln.dtx}{sample8.tex,package}} +\file{sample9.tex}{\usepreamble\defaultpreamble +\usepostamble\defaultpostamble\from{probsoln.dtx}{sample9.tex,package}} \file{prob-1stprncp.tex}{\usepreamble\defaultpreamble \usepostamble\defaultpostamble\from{probsoln.dtx}{prob-1stprncp.tex,package}} \file{prob-args.tex}{\usepreamble\defaultpreamble diff --git a/Master/texmf-dist/tex/latex/probsoln/probsoln.sty b/Master/texmf-dist/tex/latex/probsoln/probsoln.sty index 86e685a1327..10e21db0bf9 100644 --- a/Master/texmf-dist/tex/latex/probsoln/probsoln.sty +++ b/Master/texmf-dist/tex/latex/probsoln/probsoln.sty @@ -7,11 +7,11 @@ %% probsoln.dtx (with options: `probsoln.sty,package') %% %% probsoln.dtx -%% Copyright 2013 Nicola Talbot +%% Copyright 2017 Nicola Talbot %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license of (at your option) any later version. +%% of this license or (at your option) any later version. %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of LaTeX @@ -21,7 +21,7 @@ %% %% The Current Maintainer of this work is Nicola Talbot. %% -%% This work consists of the files probsoln.dtx and probsoln.ins and the derived files probsoln.sty, sample-exclude.tex, sample.tex, sample2.tex, sample3.tex, sample4.tex, sample5.tex, sample6.tex, sample7.tex, sample8.tex, prob-1stprncp.tex, prob-args.tex, prob-easy.tex, prob-easy2.tex, prob-implicit.tex, prob-mchoice.tex, prob-mixed.tex, prob-newdata.tex, prob-nosoln.tex, prob-probspaces.tex, prob-probspaces2.tex, prob-tabmchoice.tex, prob-verb.tex. +%% This work consists of the files probsoln.dtx and probsoln.ins and the derived files probsoln.sty, sample-exclude.tex, sample.tex, sample2.tex, sample3.tex, sample4.tex, sample5.tex, sample6.tex, sample7.tex, sample8.tex, sample9.tex, prob-1stprncp.tex, prob-args.tex, prob-easy.tex, prob-easy2.tex, prob-implicit.tex, prob-mchoice.tex, prob-mixed.tex, prob-newdata.tex, prob-nosoln.tex, prob-probspaces.tex, prob-probspaces2.tex, prob-tabmchoice.tex, prob-verb.tex. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -47,7 +47,7 @@ %% Display the problems %% You may need to change \theenumi back here \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{probsoln}[2012/08/23 v3.04 (NLCT)] +\ProvidesPackage{probsoln}[2017/07/10 v3.05 (NLCT)] \RequirePackage{ifthen} \RequirePackage{amsmath} \RequirePackage{etoolbox} @@ -659,7 +659,7 @@ Please specify (e.g. \csname @prob@getargs@eg@\romannumeral#1\endcsname):}% \edef\prob@selectedlabels{}% \let\prob@do@defproblem=\prob@add@currentlabel \firstpasstrue - \input{#3}% + \@for\@thisfile:=#3\do{\input{\@thisfile}}% \@probselN=0\relax \@for\@thislabel:=\prob@selectedlabels\do{% \edef\@if@in@list{\noexpand\DTLifinlist{\@thislabel}{#4}}% @@ -714,7 +714,7 @@ Please specify (e.g. \csname @prob@getargs@eg@\romannumeral#1\endcsname):}% }% \let\prob@do@defproblem=\prob@do@selectedproblem \firstpassfalse - \input{#3}% + \@for\@thisfile:=#3\do{\input{\@thisfile}}% \@ifundefined{prob@db@#1}{\prob@newdb{#1}}{}% \@for\@thislabel:=\prob@selectedlabels\do{% \@moveproblem{\@thislabel}{reserved}{#1}% |