This file is indexed.

/usr/share/doc/racket/scribble/how-to-doc.html is in racket-doc 6.1-4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><title>4.1&nbsp;Getting Started with Documentation</title><link rel="stylesheet" type="text/css" href="../scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="../racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../doc-site.css" title="default"/><script type="text/javascript" src="../scribble-common.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../doc-site.js"></script><script type="text/javascript" src="../local-redirect/local-redirect.js"></script><script type="text/javascript" src="../local-redirect/local-user-redirect.js"></script><!--[if IE 6]><style type="text/css">.SIEHidden { overflow: hidden; }</style><![endif]--></head><body id="doc-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,&quot;tocview_0&quot;);">&#9658;</a></td><td></td><td><a href="index.html" class="tocviewlink" data-pltdoc="x">Scribble:<span class="mywbr"> &nbsp;</span> The Racket Documentation Tool</a></td></tr></table></div><div class="tocviewsublisttop" style="display: none;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1&nbsp;</td><td><a href="getting-started.html" class="tocviewlink" data-pltdoc="x">Getting Started</a></td></tr><tr><td align="right">2&nbsp;</td><td><a href="reader.html" class="tocviewlink" data-pltdoc="x">@ Syntax</a></td></tr><tr><td align="right">3&nbsp;</td><td><a href="generic-prose.html" class="tocviewlink" data-pltdoc="x">High-<wbr></wbr>Level Scribble API</a></td></tr><tr><td align="right">4&nbsp;</td><td><a href="plt-manuals.html" class="tocviewselflink" data-pltdoc="x">Scribbling Documentation</a></td></tr><tr><td align="right">5&nbsp;</td><td><a href="lp.html" class="tocviewlink" data-pltdoc="x">Literate Programming</a></td></tr><tr><td align="right">6&nbsp;</td><td><a href="internals.html" class="tocviewlink" data-pltdoc="x">Low-<wbr></wbr>Level Scribble API</a></td></tr><tr><td align="right">7&nbsp;</td><td><a href="running.html" class="tocviewlink" data-pltdoc="x">Running <span class="stt">scribble</span></a></td></tr><tr><td align="right"></td><td><a href="doc-index.html" class="tocviewlink" data-pltdoc="x">Index</a></td></tr></table></div></div><div class="tocviewlist"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,&quot;tocview_1&quot;);">&#9660;</a></td><td>4&nbsp;</td><td><a href="plt-manuals.html" class="tocviewlink" data-pltdoc="x">Scribbling Documentation</a></td></tr></table><div class="tocviewsublist" style="display: block;" id="tocview_1"><table cellspacing="0" cellpadding="0"><tr><td align="right">4.1&nbsp;</td><td><a href="" class="tocviewselflink" data-pltdoc="x">Getting Started with Documentation</a></td></tr><tr><td align="right">4.2&nbsp;</td><td><a href="reference-style.html" class="tocviewlink" data-pltdoc="x">Style Guide</a></td></tr><tr><td align="right">4.3&nbsp;</td><td><a href="manual.html" class="tocviewlink" data-pltdoc="x">Manual Forms</a></td></tr><tr><td align="right">4.4&nbsp;</td><td><a href="scheme.html" class="tocviewlink" data-pltdoc="x">Racket</a></td></tr><tr><td align="right">4.5&nbsp;</td><td><a href="eval.html" class="tocviewlink" data-pltdoc="x">Evaluation and Examples</a></td></tr><tr><td align="right">4.6&nbsp;</td><td><a href="srcdoc.html" class="tocviewlink" data-pltdoc="x">In-<wbr></wbr>Source Documentation</a></td></tr><tr><td align="right">4.7&nbsp;</td><td><a href="bnf.html" class="tocviewlink" data-pltdoc="x">BNF Grammars</a></td></tr><tr><td align="right">4.8&nbsp;</td><td><a href="Compatibility_Libraries.html" class="tocviewlink" data-pltdoc="x">Compatibility Libraries</a></td></tr></table></div></div><div class="tocviewlist"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,&quot;tocview_2&quot;);">&#9658;</a></td><td>4.1&nbsp;</td><td><a href="" class="tocviewselflink" data-pltdoc="x">Getting Started with Documentation</a></td></tr></table><div class="tocviewsublistbottom" style="display: none;" id="tocview_2"><table cellspacing="0" cellpadding="0"><tr><td align="right">4.1.1&nbsp;</td><td><a href="#%28part._setting-up%29" class="tocviewlink" data-pltdoc="x">Setting Up Library Documentation</a></td></tr><tr><td align="right">4.1.2&nbsp;</td><td><a href="#%28part._racket-hyperlinks%29" class="tocviewlink" data-pltdoc="x">Racket Typesetting and Hyperlinks</a></td></tr><tr><td align="right">4.1.3&nbsp;</td><td><a href="#%28part._section-hyperlinks%29" class="tocviewlink" data-pltdoc="x">Section Hyperlinks</a></td></tr><tr><td align="right">4.1.4&nbsp;</td><td><a href="#%28part._.Defining_.Racket_.Bindings%29" class="tocviewlink" data-pltdoc="x">Defining Racket Bindings</a></td></tr><tr><td align="right">4.1.5&nbsp;</td><td><a href="#%28part._.Showing_.Racket_.Examples%29" class="tocviewlink" data-pltdoc="x">Showing Racket Examples</a></td></tr><tr><td align="right">4.1.6&nbsp;</td><td><a href="#%28part._.Multi-.Page_.Sections%29" class="tocviewlink" data-pltdoc="x">Multi-<wbr></wbr>Page Sections</a></td></tr></table></div></div></div><div class="tocsub"><div class="tocsubtitle">On this page:</div><table class="tocsublist" cellspacing="0"><tr><td><span class="tocsublinknumber">4.1.1<tt>&nbsp;</tt></span><a href="#%28part._setting-up%29" class="tocsubseclink" data-pltdoc="x">Setting Up Library Documentation</a></td></tr><tr><td><span class="tocsublinknumber">4.1.2<tt>&nbsp;</tt></span><a href="#%28part._racket-hyperlinks%29" class="tocsubseclink" data-pltdoc="x">Racket Typesetting and Hyperlinks</a></td></tr><tr><td><span class="tocsublinknumber">4.1.3<tt>&nbsp;</tt></span><a href="#%28part._section-hyperlinks%29" class="tocsubseclink" data-pltdoc="x">Section Hyperlinks</a></td></tr><tr><td><span class="tocsublinknumber">4.1.4<tt>&nbsp;</tt></span><a href="#%28part._.Defining_.Racket_.Bindings%29" class="tocsubseclink" data-pltdoc="x">Defining Racket Bindings</a></td></tr><tr><td><span class="tocsublinknumber">4.1.5<tt>&nbsp;</tt></span><a href="#%28part._.Showing_.Racket_.Examples%29" class="tocsubseclink" data-pltdoc="x">Showing Racket Examples</a></td></tr><tr><td><span class="tocsublinknumber">4.1.6<tt>&nbsp;</tt></span><a href="#%28part._.Multi-.Page_.Sections%29" class="tocsubseclink" data-pltdoc="x">Multi-<wbr></wbr>Page Sections</a></td></tr></table></div></div><div class="maincolumn"><div class="main"><div class="navsettop"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, &quot;6.1&quot;, &quot;../&quot;);" onfocus="this.style.color=&quot;black&quot;; this.style.textAlign=&quot;left&quot;; if (this.value == &quot;...search manuals...&quot;) this.value=&quot;&quot;;" onblur="if (this.value.match(/^ *$/)) { this.style.color=&quot;#888&quot;; this.style.textAlign=&quot;center&quot;; this.value=&quot;...search manuals...&quot;; }"/></form>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.1&quot;);">top</a></span><span class="navright">&nbsp;&nbsp;<a href="plt-manuals.html" title="backward to &quot;4 Scribbling Documentation&quot;" data-pltdoc="x">&larr; prev</a>&nbsp;&nbsp;<a href="plt-manuals.html" title="up to &quot;4 Scribbling Documentation&quot;" data-pltdoc="x">up</a>&nbsp;&nbsp;<a href="reference-style.html" title="forward to &quot;4.2 Style Guide&quot;" data-pltdoc="x">next &rarr;</a></span>&nbsp;</div><h4 x-source-module="(lib &quot;scribblings/scribble/scribble.scrbl&quot;)" x-part-tag="&quot;how-to-doc&quot;">4.1<tt>&nbsp;</tt><a name="(part._how-to-doc)"></a>Getting Started with Documentation</h4><p>Although the <span class="stt">scribble</span> command-line utility generates output
from a Scribble document, documentation of Racket libraries is
normally built by <span class="stt">raco setup</span>. This chapter emphasizes the
<span class="stt">raco setup</span> approach, which more automatically supports links
across documents.</p><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p>See <a href="getting-started.html" data-pltdoc="x">Getting Started</a> for information on using the
<span class="stt">scribble</span> command-line utility.</p></blockquote></blockquote></blockquote><h5 x-source-module="(lib &quot;scribblings/scribble/scribble.scrbl&quot;)" x-part-tag="&quot;setting-up&quot;">4.1.1<tt>&nbsp;</tt><a name="(part._setting-up)"></a>Setting Up Library Documentation</h5><p>To document a collection, including a collection implemented by a
<a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=pkg&amp;rel=getting-started.html&amp;version=6.1" class="Sq" data-pltdoc="x">package</a>:</p><ul><li><p>Create a file in your collection with the
file extension <span class="stt">".scrbl"</span>. Beware that the file name
you choose will determine the output directory&rsquo;s name, and
the directory name must be unique across all installed documents. The
remainder of these instructions assume that the file is called
<span class="stt">"manual.scrbl"</span> (but pick a more specific name in practice).</p></li><li><p><div class="SIntrapara">Start <span class="stt">"manual.scrbl"</span> like this:
  </div><div class="SIntrapara"><table cellspacing="0" cellpadding="0"><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">#lang scribble/manual</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@title{My Library}</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">Welcome to my documentation: @racket[(list 'testing 1 2 3)].</span></p></td></tr></table></div></p><p>The first line starts the file in &ldquo;text&rdquo; mode and selects
the Racket manual output format.
It also introduces bindings like <span class="RktSym"><a href="base.html#%28def._%28%28lib._scribble%2Fbase..rkt%29._title%29%29" class="RktValLink" data-pltdoc="x">title</a></span> and
<span class="RktSym"><a href="scribble_manual_code.html#%28form._%28%28lib._scribble%2Fmanual..rkt%29._racket%29%29" class="RktStxLink" data-pltdoc="x">racket</a></span> for writing Racket documentation.</p></li><li><p>Add the following entry to your collection&rsquo;s
<span class="stt">"info.rkt"</span>:</p><blockquote class="SCodeFlow"><p><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=define.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._define%2529%2529&amp;version=6.1" class="RktStxLink Sq" data-pltdoc="x">define</a></span><span class="hspace">&nbsp;</span><span class="RktSym">scribblings</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">"manual.scrbl"</span><span class="hspace">&nbsp;</span><span class="RktVal">(</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span></p></blockquote><p>The <span class="RktPn">(</span><span class="RktPn">)</span> above is a list of options. When your document
gets large enough that you want it split into multiple pages,
add the <span class="RktVal">'</span><span class="RktVal">multi-page</span> option (omitting the quote, since
the whole right-hand side of the definition is already
quoted).</p><p>If you do not already have an <span class="stt">"info.rkt"</span> module,
here&rsquo;s a suitable complete module:</p><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=guide&amp;rel=Module_Syntax.html%23%2528part._hash-lang%2529&amp;version=6.1" class="RktModLink Sq" data-pltdoc="x"><span class="RktMod">#lang</span></a><span class="hspace">&nbsp;</span><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=raco&amp;rel=info_rkt.html&amp;version=6.1" class="RktModLink Sq" data-pltdoc="x"><span class="RktSym">info</span></a></td></tr><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=define.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._define%2529%2529&amp;version=6.1" class="RktStxLink Sq" data-pltdoc="x">define</a></span><span class="hspace">&nbsp;</span><span class="RktSym">scribblings</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">"manual.scrbl"</span><span class="hspace">&nbsp;</span><span class="RktVal">(</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr></table></blockquote></li><li><p>Run <span class="stt">raco setup</span> to build your documentation. For a
collection, optionally supply <span class="nobreak"><span class="stt">-l</span></span> followed by the
collection name to limit the build process to that
collection.</p></li><li><p>For a collection that is installed as user-specific
(e.g., the user <a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=pkg&amp;rel=Package_Concepts.html%23%2528tech._package._scope%2529&amp;version=6.1" class="techoutside Sq" data-pltdoc="x"><span class="techinside">package scope</span></a>), the generated
documentation is <span class="stt">"doc/manual/index.html"</span> within the
collection directory. If the collection is installation-wide,
however, then the documentation
is generated as <span class="stt">"manual/index.html"</span> in the
installation&rsquo;s <span class="stt">"doc"</span> directory.</p></li></ul><h5 x-source-module="(lib &quot;scribblings/scribble/scribble.scrbl&quot;)" x-part-tag="&quot;racket-hyperlinks&quot;">4.1.2<tt>&nbsp;</tt><a name="(part._racket-hyperlinks)"></a>Racket Typesetting and Hyperlinks</h5><p>In the document source at the start of this chapter
(<a href="#%28part._setting-up%29" data-pltdoc="x">Setting Up Library Documentation</a>), the Racket expression
<span class="RktPn">(</span><span class="RktSym">list</span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">testing</span><span class="stt"> </span><span class="RktVal">1</span><span class="stt"> </span><span class="RktVal">2</span><span class="stt"> </span><span class="RktVal">3</span><span class="RktPn">)</span> is typeset properly,
but the <span class="RktSym">list</span> identifier is not hyperlinked to the usual
definition. To cause <span class="RktSym">list</span> to be hyperlinked, add a
<span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.1" class="RktStxLink Sq" data-pltdoc="x">require</a></span> form like this:</p><p><table cellspacing="0" cellpadding="0"><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@(require (for-label racket))</span></p></td></tr></table></p><p>This <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.1" class="RktStxLink Sq" data-pltdoc="x">require</a></span> with <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._for-label%2529%2529&amp;version=6.1" class="RktStxLink Sq" data-pltdoc="x">for-label</a></span> declaration introduces a
document-time binding for each export of the <a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=index.html&amp;version=6.1" class="RktModLink Sq" data-pltdoc="x"><span class="RktSym">racket</span></a>
module. When the document is built, the <span class="RktSym"><a href="scribble_manual_code.html#%28form._%28%28lib._scribble%2Fmanual..rkt%29._racket%29%29" class="RktStxLink" data-pltdoc="x">racket</a></span> form detects
the binding for <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&amp;version=6.1" class="RktValLink Sq" data-pltdoc="x">list</a></span>, and so it generates a reference to the
specification of <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&amp;version=6.1" class="RktValLink Sq" data-pltdoc="x">list</a></span>. The setup process detects the
reference, and it finds the matching specification in the existing
documentation, and ultimately directs the hyperlink to that
specification.</p><p>Hyperlinks based on <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._for-label%2529%2529&amp;version=6.1" class="RktStxLink Sq" data-pltdoc="x">for-label</a></span> and <span class="RktSym"><a href="scribble_manual_code.html#%28form._%28%28lib._scribble%2Fmanual..rkt%29._racket%29%29" class="RktStxLink" data-pltdoc="x">racket</a></span> are the
preferred mechanism for linking to information outside of a single
document. Such links require no information about where and how a
binding is documented elsewhere:</p><p><table cellspacing="0" cellpadding="0"><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">#lang scribble/manual</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@(require (for-label racket))</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@title{My Library}</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">See also @racket[list].</span></p></td></tr></table></p><p>The <span class="RktSym"><a href="scribble_manual_code.html#%28form._%28%28lib._scribble%2Fmanual..rkt%29._racket%29%29" class="RktStxLink" data-pltdoc="x">racket</a></span> form typesets a Racket expression for inline text,
so it ignores the source formatting of the expression. The
<span class="RktSym"><a href="scribble_manual_code.html#%28form._%28%28lib._scribble%2Fmanual..rkt%29._racketblock%29%29" class="RktStxLink" data-pltdoc="x">racketblock</a></span> form, in contrast, typesets inset Racket code,
and it preserves the expression&rsquo;s formatting from the document source.</p><p><table cellspacing="0" cellpadding="0"><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">#lang scribble/manual</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@(require (for-label racket))</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@title{My Library}</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">Some example Racket code:</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@racketblock[</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">(define (nobody-understands-me what)</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;&nbsp;</span><span class="stt">(list "When I think of all the"</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="stt">what</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="stt">"I've tried so hard to explain!"))</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">(nobody-understands-me "glorble snop")</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">]</span></p></td></tr></table></p><h5 x-source-module="(lib &quot;scribblings/scribble/scribble.scrbl&quot;)" x-part-tag="&quot;section-hyperlinks&quot;">4.1.3<tt>&nbsp;</tt><a name="(part._section-hyperlinks)"></a>Section Hyperlinks</h5><p>A <span class="RktSym"><a href="base.html#%28def._%28%28lib._scribble%2Fbase..rkt%29._section%29%29" class="RktValLink" data-pltdoc="x">section</a></span> declaration in a document can include a
<span class="RktPn">#:tag</span> argument that declares a hyperlink-target tag. The
<span class="RktSym"><a href="base.html#%28def._%28%28lib._scribble%2Fbase..rkt%29._secref%29%29" class="RktValLink" data-pltdoc="x">secref</a></span> function generates a hyperlink, using the section name
as the text of the hyperlink. Use <span class="RktSym"><a href="base.html#%28def._%28%28lib._scribble%2Fbase..rkt%29._seclink%29%29" class="RktValLink" data-pltdoc="x">seclink</a></span> to create a
hyperlink with text other than the section title.</p><p>The following example illustrates section hyperlinks:</p><p><table cellspacing="0" cellpadding="0"><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">#lang scribble/manual</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@(require (for-label racket))</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@title{My Library}</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">Welcome to my documentation: @racket[(list 'testing 1 2 3)].</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@table-of-contents[]</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@section[#:tag "chickens"]{Philadelphia Chickens}</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">Dancing tonight!</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@section{Reprise}</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">See @secref{chickens}.</span></p></td></tr></table></p><p>Since the page is so short, the hyperlinks in the above example are
 more effective if you change the <span class="stt">"info.rkt"</span> file to add the
 <span class="RktVal">'</span><span class="RktVal">multi-file</span> flag:</p><blockquote class="SCodeFlow"><p><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=define.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._define%2529%2529&amp;version=6.1" class="RktStxLink Sq" data-pltdoc="x">define</a></span><span class="hspace">&nbsp;</span><span class="RktSym">scribblings</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">"manual.scrbl"</span><span class="hspace">&nbsp;</span><span class="RktVal">(</span><span class="RktVal">multi-page</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span></p></blockquote><p>A section can have a <a href="core.html#%28tech._tag._prefix%29" data-pltdoc="x">tag prefix</a> that applies to all tags as
seen from outside the section. Such a prefix is automatically given to
each top-level document as processed by <span class="stt">raco setup</span>. Thus,
referencing a section tag in a different document requires using a
prefix, which is based on the target document&rsquo;s main source file.  The
following example links to a section in the Racket reference
manual:</p><p><table cellspacing="0" cellpadding="0"><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">#lang scribble/manual</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@(require (for-label racket))</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@(define ref-src</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;&nbsp;&nbsp;</span><span class="stt">'(lib "scribblings/reference/reference.scrbl"))</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@title{My Library}</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">See also @italic{@secref[#:doc ref-src]{pairs}}.</span></p></td></tr></table></p><p>As mentioned in <a href="#%28part._racket-hyperlinks%29" data-pltdoc="x">Racket Typesetting and Hyperlinks</a>, however, cross-document
references based on <span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.1" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._for-label%2529%2529&amp;version=6.1" class="RktStxLink Sq" data-pltdoc="x">for-label</a></span><span class="stt"> </span><span class="RktSym">....</span><span class="RktPn">)</span><span class="RktPn">)</span> and
<span class="RktSym"><a href="scribble_manual_code.html#%28form._%28%28lib._scribble%2Fmanual..rkt%29._racket%29%29" class="RktStxLink" data-pltdoc="x">racket</a></span> are usually better than cross-document references
using <span class="RktSym"><a href="base.html#%28def._%28%28lib._scribble%2Fbase..rkt%29._secref%29%29" class="RktValLink" data-pltdoc="x">secref</a></span>.</p><h5 x-source-module="(lib &quot;scribblings/scribble/scribble.scrbl&quot;)" x-part-tag="&quot;Defining_Racket_Bindings&quot;">4.1.4<tt>&nbsp;</tt><a name="(part._.Defining_.Racket_.Bindings)"></a>Defining Racket Bindings</h5><p>Use <span class="RktSym"><a href="doc-forms.html#%28form._%28%28lib._scribble%2Fmanual..rkt%29._defproc%29%29" class="RktStxLink" data-pltdoc="x">defproc</a></span> to document a procedure, <span class="RktSym"><a href="doc-forms.html#%28form._%28%28lib._scribble%2Fmanual..rkt%29._defform%29%29" class="RktStxLink" data-pltdoc="x">defform</a></span> to
document a syntactic form, <span class="RktSym"><a href="doc-forms.html#%28form._%28%28lib._scribble%2Fmanual..rkt%29._defstruct%29%29" class="RktStxLink" data-pltdoc="x">defstruct</a></span> to document a structure
type, etc.  These forms provide consistent formatting of definitions,
and they declare hyperlink targets for <span class="RktSym"><a href="scribble_manual_code.html#%28form._%28%28lib._scribble%2Fmanual..rkt%29._racket%29%29" class="RktStxLink" data-pltdoc="x">racket</a></span>-based
hyperlinks.</p><p>To document a <span class="RktSym">my-helper</span> procedure that is exported by
<span class="stt">"helper.rkt"</span> in the <span class="stt">"my-lib"</span> collection that contains
<span class="stt">"manual.scrbl"</span>:</p><ul><li><p>Use <span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.1" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._for-label%2529%2529&amp;version=6.1" class="RktStxLink Sq" data-pltdoc="x">for-label</a></span><span class="stt"> </span><span class="RktVal">"helper.rkt"</span><span class="RktPn">)</span><span class="RktPn">)</span> to import the
binding information about the bindings of <span class="stt">"helper.rkt"</span>
for use when typesetting identifiers. A relative reference
<span class="RktVal">"helper.rkt"</span> works since it is relative to the
documentation source.</p></li><li><p>Add a <span class="stt">@defmodule[my-lib/helper]</span> declaration, which
specifies the library that is being documented within the
section. The <span class="RktSym"><a href="doc-modules.html#%28form._%28%28lib._scribble%2Fmanual..rkt%29._defmodule%29%29" class="RktStxLink" data-pltdoc="x">defmodule</a></span> form needs an absolute module
name <span class="RktSym">mylib/helper</span>, instead of a relative reference
<span class="RktVal">"helper.rkt"</span>, since the module path given to
<span class="RktSym"><a href="doc-modules.html#%28form._%28%28lib._scribble%2Fmanual..rkt%29._defmodule%29%29" class="RktStxLink" data-pltdoc="x">defmodule</a></span> appears verbatim in the generated
documentation.</p></li><li><p>Use <span class="RktSym"><a href="doc-forms.html#%28form._%28%28lib._scribble%2Fmanual..rkt%29._defproc%29%29" class="RktStxLink" data-pltdoc="x">defproc</a></span> to document the procedure.</p></li></ul><p>Adding these pieces to <span class="stt">""manual.scrbl""</span> gives us the
following:</p><p><table cellspacing="0" cellpadding="0"><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">#lang scribble/manual</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@(require (for-label racket</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="stt">"helper.rkt"))</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@title{My Library}</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@defmodule[my-lib/helper]</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@defproc[(my-helper [lst list?])</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="stt">(listof</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="stt">(not/c (one-of/c 'cow)))]{</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;</span><span class="stt">Replaces each @racket['cow] in @racket[lst] with</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;</span><span class="stt">@racket['aardvark].}</span></p></td></tr></table></p><p>In <span class="RktSym"><a href="doc-forms.html#%28form._%28%28lib._scribble%2Fmanual..rkt%29._defproc%29%29" class="RktStxLink" data-pltdoc="x">defproc</a></span>, a contract is specified with each argument to the
procedure. In this example, the contract for the <span class="RktVar">lst</span>
argument is <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%7E3f%2529%2529&amp;version=6.1" class="RktValLink Sq" data-pltdoc="x">list?</a></span>, which is the contract for a list. After
the closing parenthesis that ends the argument sequence, the contract
of the result must be given; in this case, <span class="RktSym">my-helper</span>
guarantees a result that is a list where none of the elements are
<span class="RktVal">'</span><span class="RktVal">cow</span>.</p><p>Some things to notice in this example and the documentation that it
generates:</p><ul><li><p>The <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%7E3f%2529%2529&amp;version=6.1" class="RktValLink Sq" data-pltdoc="x">list?</a></span>, <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&amp;version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span>, etc<span class="Sendabbrev">.</span> elements of
contracts are hyperlinked to their documentation.</p></li><li><p>The result contract is formatted in the generated documentation
in the same way as in the source. That is, the source layout of
contracts is preserved. (In this case, putting the contract all
on one line would be better.)</p></li><li><p>In the prose that documents <span class="RktSym">my-helper</span>, <span class="RktVar">lst</span>
is automatically typeset in italic, matching the typesetting in
the blue box. The <span class="RktSym"><a href="scribble_manual_code.html#%28form._%28%28lib._scribble%2Fmanual..rkt%29._racket%29%29" class="RktStxLink" data-pltdoc="x">racket</a></span> form essentially knows that
it&rsquo;s used in the scope of a procedure with argument
<span class="RktVar">lst</span>.</p></li><li><p>If you hover the mouse pointer over <span class="RktSym">my-helper</span>, a popup
reports that it is provided from <span class="RktSym">my-lib/helper</span>.</p></li><li><p>If you use <span class="RktSym">my-helper</span> in any documentation now, as long
as that documentation source also has a <span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.1" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._for-label%2529%2529&amp;version=6.1" class="RktStxLink Sq" data-pltdoc="x">for-label</a></span><span class="stt"> </span><span class="RktSym">....</span><span class="RktPn">)</span><span class="RktPn">)</span> of <span class="stt">"helper.rkt"</span>, then the
reference is hyperlinked to the definition above.</p></li></ul><p>See <span class="RktSym"><a href="doc-forms.html#%28form._%28%28lib._scribble%2Fmanual..rkt%29._defproc%2A%29%29" class="RktStxLink" data-pltdoc="x">defproc*</a></span>, <span class="RktSym"><a href="doc-forms.html#%28form._%28%28lib._scribble%2Fmanual..rkt%29._defform%29%29" class="RktStxLink" data-pltdoc="x">defform</a></span>, etc<span class="Sendabbrev">.</span> for more information
on forms to document Racket bindings.</p><h5 x-source-module="(lib &quot;scribblings/scribble/scribble.scrbl&quot;)" x-part-tag="&quot;Showing_Racket_Examples&quot;">4.1.5<tt>&nbsp;</tt><a name="(part._.Showing_.Racket_.Examples)"></a>Showing Racket Examples</h5><p>The <span class="RktSym"><a href="eval.html#%28form._%28%28lib._scribble%2Feval..rkt%29._examples%29%29" class="RktStxLink" data-pltdoc="x">examples</a></span> form from <span class="RktSym">scribble/eval</span>
helps you generate examples in your documentation.</p><p>To use <span class="RktSym"><a href="eval.html#%28form._%28%28lib._scribble%2Feval..rkt%29._examples%29%29" class="RktStxLink" data-pltdoc="x">examples</a></span>, the procedures to document must be suitable
for use at documentation time; in fact, <span class="RktSym"><a href="eval.html#%28form._%28%28lib._scribble%2Feval..rkt%29._examples%29%29" class="RktStxLink" data-pltdoc="x">examples</a></span> uses
bindings introduced into the document source by
<span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.1" class="RktStxLink Sq" data-pltdoc="x">require</a></span>. Thus, to generate examples using <span class="RktSym">my-helper</span>
from the previous section, <span class="stt">"helper.rkt"</span> must be imported both
via <span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.1" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._for-label%2529%2529&amp;version=6.1" class="RktStxLink Sq" data-pltdoc="x">for-label</a></span><span class="stt"> </span><span class="RktSym">....</span><span class="RktPn">)</span><span class="RktPn">)</span> and <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.1" class="RktStxLink Sq" data-pltdoc="x">require</a></span>:</p><p><table cellspacing="0" cellpadding="0"><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">#lang scribble/manual</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@(require scribble/eval</span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="stt">; &lt;--- added</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="stt">"helper.rkt"</span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="stt">; &lt;--- added</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="stt">(for-label racket</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="stt">"helper.rkt"))</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@title{My Library}</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@defmodule[my-lib/helper]{The @racketmodname[my-lib/helper]</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">module---now with extra cows!}</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@defproc[(my-helper [lst list?])</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="stt">(listof (not/c (one-of/c 'cow)))]{</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;</span><span class="stt">Replaces each @racket['cow] in @racket[lst] with</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;</span><span class="stt">@racket['aardvark].</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;</span><span class="stt">@examples[</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;&nbsp;&nbsp;</span><span class="stt">(my-helper '())</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;&nbsp;&nbsp;</span><span class="stt">(my-helper '(cows such remarkable cows))</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span><span class="hspace">&nbsp;</span><span class="stt">]}</span></p></td></tr></table></p><h5 x-source-module="(lib &quot;scribblings/scribble/scribble.scrbl&quot;)" x-part-tag="&quot;Multi-Page_Sections&quot;">4.1.6<tt>&nbsp;</tt><a name="(part._.Multi-.Page_.Sections)"></a>Multi-Page Sections</h5><p>Setting the <span class="RktVal">'</span><span class="RktVal">multi-page</span> option (see
<a href="#%28part._section-hyperlinks%29" data-pltdoc="x">Section Hyperlinks</a>) causes each top-level section of a
document to be rendered as a separate HTML page.</p><p>To push sub-sections onto separate pages, use the <span class="RktVal">'</span><span class="RktVal">toc</span> style
for the enclosing section (as started by <span class="RktSym"><a href="base.html#%28def._%28%28lib._scribble%2Fbase..rkt%29._title%29%29" class="RktValLink" data-pltdoc="x">title</a></span>,
<span class="RktSym"><a href="base.html#%28def._%28%28lib._scribble%2Fbase..rkt%29._section%29%29" class="RktValLink" data-pltdoc="x">section</a></span>, <span class="RktSym"><a href="base.html#%28def._%28%28lib._scribble%2Fbase..rkt%29._subsection%29%29" class="RktValLink" data-pltdoc="x">subsection</a></span>, etc.) and use
<span class="RktSym"><a href="base.html#%28def._%28%28lib._scribble%2Fbase..rkt%29._local-table-of-contents%29%29" class="RktValLink" data-pltdoc="x">local-table-of-contents</a></span> to generate hyperlinks to the
sub-sections.</p><p>Revising <span class="stt">"cows.scrbl"</span> from the previous section:</p><p><table cellspacing="0" cellpadding="0"><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">#lang scribble/manual</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@title[#:style '(toc)]{Cows}</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@local-table-of-contents[]</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@section[#:tag "singing"]{Singing}</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">Wherever they go, it's a quite a show.</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">@section{Dancing}</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">See @secref["singing"].</span></p></td></tr></table></p><p>To run this example, remember to change <span class="stt">"info.rkt"</span> to add the
<span class="RktVal">'</span><span class="RktVal">multi-page</span> style. You may also want to add a call to
<span class="RktSym"><a href="base.html#%28def._%28%28lib._scribble%2Fbase..rkt%29._table-of-contents%29%29" class="RktValLink" data-pltdoc="x">table-of-contents</a></span> in <span class="stt">"manual.scrbl"</span>.</p><p>The difference between <span class="RktSym"><a href="base.html#%28def._%28%28lib._scribble%2Fbase..rkt%29._table-of-contents%29%29" class="RktValLink" data-pltdoc="x">table-of-contents</a></span> and
<span class="RktSym"><a href="base.html#%28def._%28%28lib._scribble%2Fbase..rkt%29._local-table-of-contents%29%29" class="RktValLink" data-pltdoc="x">local-table-of-contents</a></span> is that the latter is ignored for
Latex output.</p><p>When using <span class="RktSym"><a href="base.html#%28def._%28%28lib._scribble%2Fbase..rkt%29._local-table-of-contents%29%29" class="RktValLink" data-pltdoc="x">local-table-of-contents</a></span>, it often makes sense to
include introductory text before the call of
<span class="RktSym"><a href="base.html#%28def._%28%28lib._scribble%2Fbase..rkt%29._local-table-of-contents%29%29" class="RktValLink" data-pltdoc="x">local-table-of-contents</a></span>. When the introductory text is less
important and when local table of contents is short, putting the
introductory text after the call of <span class="RktSym"><a href="base.html#%28def._%28%28lib._scribble%2Fbase..rkt%29._local-table-of-contents%29%29" class="RktValLink" data-pltdoc="x">local-table-of-contents</a></span>
may be appropriate.</p><div class="navsetbottom"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, &quot;6.1&quot;, &quot;../&quot;);" onfocus="this.style.color=&quot;black&quot;; this.style.textAlign=&quot;left&quot;; if (this.value == &quot;...search manuals...&quot;) this.value=&quot;&quot;;" onblur="if (this.value.match(/^ *$/)) { this.style.color=&quot;#888&quot;; this.style.textAlign=&quot;center&quot;; this.value=&quot;...search manuals...&quot;; }"/></form>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.1&quot;);">top</a></span><span class="navright">&nbsp;&nbsp;<a href="plt-manuals.html" title="backward to &quot;4 Scribbling Documentation&quot;" data-pltdoc="x">&larr; prev</a>&nbsp;&nbsp;<a href="plt-manuals.html" title="up to &quot;4 Scribbling Documentation&quot;" data-pltdoc="x">up</a>&nbsp;&nbsp;<a href="reference-style.html" title="forward to &quot;4.2 Style Guide&quot;" data-pltdoc="x">next &rarr;</a></span>&nbsp;</div></div></div><div id="contextindicator">&nbsp;</div></body></html>