Merge lp:~sschaefer/leo-editor/leo-manualUpdate into lp:leo-editor/old-trunk

Proposed by Stephen P. Schaefer
Status: Needs review
Proposed branch: lp:~sschaefer/leo-editor/leo-manualUpdate
Merge into: lp:leo-editor/old-trunk
Diff against target: 26634 lines
To merge this branch: bzr merge lp:~sschaefer/leo-editor/leo-manualUpdate
Reviewer Review Type Date Requested Status
The Leo editor team Pending
Review via email: mp+24335@code.launchpad.net

Description of the change

Work on documentation.

Also changes the version number in setup.py from 4.6 to 4.7.1.

To post a comment you must log in.
3069. By Stephen P. Schaefer <email address hidden>

Commit merge from EKR trunk.

3070. By Stephen P. Schaefer <email address hidden>

Merge trunk.

3071. By Stephen P. Schaefer <email address hidden>

Merge from trunk.

3072. By Stephen P. Schaefer <email address hidden>

Partial update of User Guide Chapter 4.

3073. By Stephen P. Schaefer <email address hidden>

Fetch changes from trunk.

3074. By Stephen P. Schaefer <email address hidden>

Revision of Chapter 4, Writing Programs in Leo.
Added LeoDoc.pdf as demo of eventual result from fixup.pl.

3075. By Stephen P. Schaefer <email address hidden>

Merge from trunk.
Chapter 4, more cleanup.

Unmerged revisions

3075. By Stephen P. Schaefer <email address hidden>

Merge from trunk.
Chapter 4, more cleanup.

3074. By Stephen P. Schaefer <email address hidden>

Revision of Chapter 4, Writing Programs in Leo.
Added LeoDoc.pdf as demo of eventual result from fixup.pl.

3073. By Stephen P. Schaefer <email address hidden>

Fetch changes from trunk.

3072. By Stephen P. Schaefer <email address hidden>

Partial update of User Guide Chapter 4.

3071. By Stephen P. Schaefer <email address hidden>

Merge from trunk.

3070. By Stephen P. Schaefer <email address hidden>

Merge trunk.

3069. By Stephen P. Schaefer <email address hidden>

Commit merge from EKR trunk.

3068. By Stephen P. Schaefer <email address hidden>

Get documentation generation working in Fedora 12 environment.
Proposed clarifications in Chapter 3.
Minor typo fixes.
Update version number in setup.py

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'leo/doc/LeoDocs.leo'
--- leo/doc/LeoDocs.leo 2010-05-06 15:19:03 +0000
+++ leo/doc/LeoDocs.leo 2010-05-11 20:36:27 +0000
@@ -34,6 +34,10 @@
34<v t="ville.20090705225609.5736"><vh>&lt;&lt; html manual &gt;&gt;</vh></v>34<v t="ville.20090705225609.5736"><vh>&lt;&lt; html manual &gt;&gt;</vh></v>
35<v t="ville.20090705225609.5738"><vh>&lt;&lt; pdf manual &gt;&gt;</vh></v>35<v t="ville.20090705225609.5738"><vh>&lt;&lt; pdf manual &gt;&gt;</vh></v>
36</v>36</v>
37<v t="sps.20100504170836.13118"><vh>@button generate-full-userguide</vh>
38<v t="sps.20100504170836.13120"><vh>&lt;&lt; html manual &gt;&gt;</vh></v>
39<v t="sps.20100504170836.13122"><vh>&lt;&lt; pdf manual &gt;&gt;</vh></v>
40</v>
37<v t="ekr.20091006063434.13802"><vh>@button rst3</vh></v>41<v t="ekr.20091006063434.13802"><vh>@button rst3</vh></v>
38<v t="ville.20090520232034.6345"><vh>@button rst-preview</vh></v>42<v t="ville.20090520232034.6345"><vh>@button rst-preview</vh></v>
39</v>43</v>
@@ -129,9 +133,9 @@
129<v t="ekr.20060111192108"><vh>When is deleting a node dangerous?</vh></v>133<v t="ekr.20060111192108"><vh>When is deleting a node dangerous?</vh></v>
130</v>134</v>
131</v>135</v>
132<v t="ekr.20050830115714.12"><vh>How should I use Leo with bzr/git/hg/svn/cvs?</vh></v>136<v t="ekr.20050830115714.12"><vh>How Should I Use Leo With bzr/git/hg/svn/cvs?</vh></v>
133<v t="ekr.20090706042206.14718"><vh>How can I use Leo cooperatively without sentinels?</vh></v>137<v t="ekr.20090706042206.14718"><vh>How Can I Use Leo Cooperatively Without Sentinels?</vh></v>
134<v t="ekr.20050830115714.13"><vh>Using external files</vh>138<v t="ekr.20050830115714.13"><vh>Using External Files</vh>
135<v t="ekr.20090501093330.3"><vh>@rst-option show-sections = False</vh>139<v t="ekr.20090501093330.3"><vh>@rst-option show-sections = False</vh>
136<v t="ekr.20050830115714.14"><vh>How do I inhibit sentinels in external files?</vh></v>140<v t="ekr.20050830115714.14"><vh>How do I inhibit sentinels in external files?</vh></v>
137<v t="ekr.20050830115714.16"><vh>How do I prevent Leo from expanding sections?</vh></v>141<v t="ekr.20050830115714.16"><vh>How do I prevent Leo from expanding sections?</vh></v>
@@ -156,7 +160,7 @@
156<v t="ekr.20091105080104.9031"><vh>How do I specify qt fonts?</vh></v>160<v t="ekr.20091105080104.9031"><vh>How do I specify qt fonts?</vh></v>
157</v>161</v>
158</v>162</v>
159<v t="ekr.20050830115714.118"><vh>Tips and techniques</vh>163<v t="ekr.20050830115714.118"><vh>Tips and Techniques</vh>
160<v t="ekr.20090501093330.5"><vh>@rst-option show-sections = False</vh>164<v t="ekr.20090501093330.5"><vh>@rst-option show-sections = False</vh>
161<v t="ekr.20080527063511.1"><vh>What is an easy way to profile code?</vh></v>165<v t="ekr.20080527063511.1"><vh>What is an easy way to profile code?</vh></v>
162<v t="ekr.20070622185234"><vh>How can I do a simple find and replace?</vh></v>166<v t="ekr.20070622185234"><vh>How can I do a simple find and replace?</vh></v>
@@ -169,7 +173,7 @@
169<v t="ekr.20060822111759"><vh>How can I reuse @button nodes in multiple files?</vh></v>173<v t="ekr.20060822111759"><vh>How can I reuse @button nodes in multiple files?</vh></v>
170</v>174</v>
171</v>175</v>
172<v t="ekr.20050830115714.76"><vh>Trouble shooting</vh>176<v t="ekr.20050830115714.76"><vh>Trouble Shooting</vh>
173<v t="ekr.20090501093330.6"><vh>@rst-option show-sections = False</vh>177<v t="ekr.20090501093330.6"><vh>@rst-option show-sections = False</vh>
174<v t="ekr.20090130144433.1"><vh>How do I get help?</vh></v>178<v t="ekr.20090130144433.1"><vh>How do I get help?</vh></v>
175<v t="ekr.20090130144433.2"><vh>How do I report bugs?</vh></v>179<v t="ekr.20090130144433.2"><vh>How do I report bugs?</vh></v>
@@ -192,7 +196,7 @@
192<v t="ekr.20091105080104.11492"><vh>Why don't @font nodes work with the Qt gui?</vh></v>196<v t="ekr.20091105080104.11492"><vh>Why don't @font nodes work with the Qt gui?</vh></v>
193</v>197</v>
194</v>198</v>
195<v t="ekr.20071026055929"><vh>Unicode issues</vh>199<v t="ekr.20071026055929"><vh>Unicode Issues</vh>
196<v t="ekr.20090501093330.7"><vh>@rst-option show-sections = False</vh>200<v t="ekr.20090501093330.7"><vh>@rst-option show-sections = False</vh>
197<v t="ekr.20061021164213"><vh>I can not enter non-ascii characters. What can I do?</vh></v>201<v t="ekr.20061021164213"><vh>I can not enter non-ascii characters. What can I do?</vh></v>
198<v t="ekr.20050830115714.9"><vh>Some characters in external files look funny. What can I do?</vh></v>202<v t="ekr.20050830115714.9"><vh>Some characters in external files look funny. What can I do?</vh></v>
@@ -241,77 +245,105 @@
241<v t="EKR.20040524104904.26"><vh>Chapter 3: Using Outlines</vh>245<v t="EKR.20040524104904.26"><vh>Chapter 3: Using Outlines</vh>
242<v t="ekr.20050901101608"><vh>@rst html\outlines.html</vh>246<v t="ekr.20050901101608"><vh>@rst html\outlines.html</vh>
243<v t="ekr.20050901101608.1"><vh>@rst-no-head links</vh></v>247<v t="ekr.20050901101608.1"><vh>@rst-no-head links</vh></v>
248<v t="sps.20100504170836.13115"><vh>Outline Related</vh>
244<v t="EKR.20040524104904.27"><vh>Cloning nodes</vh></v>249<v t="EKR.20040524104904.27"><vh>Cloning nodes</vh></v>
245<v t="EKR.20040524104904.36"><vh>Creating and destroying nodes</vh></v>250<v t="EKR.20040524104904.36"><vh>Creating and destroying nodes</vh></v>
246<v t="ekr.20060920145745"><vh>Creating and destroying multiple body editors</vh></v>
247<v t="EKR.20040524104904.37"><vh>Cutting, pasting and deleting nodes</vh></v>251<v t="EKR.20040524104904.37"><vh>Cutting, pasting and deleting nodes</vh></v>
248<v t="EKR.20040524104904.38"><vh>Dragging nodes</vh></v>252<v t="EKR.20040524104904.38"><vh>Dragging nodes</vh></v>
249<v t="EKR.20040524104904.39"><vh>Editing body text</vh></v>
250<v t="EKR.20040524104904.40"><vh>Expanding &amp; contracting nodes</vh></v>253<v t="EKR.20040524104904.40"><vh>Expanding &amp; contracting nodes</vh></v>
251<v t="EKR.20040524104904.41"><vh>Indenting body text automatically</vh></v>
252<v t="EKR.20040524104904.43"><vh>Marking nodes</vh></v>254<v t="EKR.20040524104904.43"><vh>Marking nodes</vh></v>
253<v t="EKR.20040524104904.44"><vh>Moving &amp; Reorganizing nodes</vh></v>255<v t="EKR.20040524104904.44"><vh>Moving &amp; Reorganizing nodes</vh></v>
254<v t="ekr.20060929040750"><vh>Navigating through the outline</vh></v>256<v t="ekr.20060929040750"><vh>Navigating through the outline</vh></v>
257</v>
258<v t="sps.20100504170836.13116"><vh>Body Related</vh>
259<v t="ekr.20060920145745"><vh>Creating and destroying multiple body editors</vh></v>
260<v t="EKR.20040524104904.39"><vh>Editing body text</vh></v>
261<v t="EKR.20040524104904.41"><vh>Indenting body text automatically</vh></v>
262</v>
263<v t="sps.20100504170836.13117"><vh>Miscellaneous</vh>
255<v t="EKR.20040524104904.45"><vh>Opening URL's automatically</vh></v>264<v t="EKR.20040524104904.45"><vh>Opening URL's automatically</vh></v>
256<v t="EKR.20040524104904.47"><vh>Resizing panes</vh></v>265<v t="EKR.20040524104904.47"><vh>Resizing panes</vh></v>
257<v t="EKR.20040524104904.48"><vh>Undoing operations</vh></v>266<v t="EKR.20040524104904.48"><vh>Undoing operations</vh></v>
258<v t="ekr.20070623145346.2"><vh>Using chapters</vh></v>267<v t="ekr.20070623145346.2"><vh>Using chapters</vh></v>
259</v>268</v>
260</v>269</v>
261<v t="ekr.20050831184021.5"><vh>Chapter 4: Programming with Leo</vh>270</v>
262<v t="ekr.20050828061213"><vh>@rst html\directives.html</vh>271<v t="ekr.20050831184021.5" a="E"><vh>Chapter 4: Programming with Leo</vh>
272<v t="ekr.20050828061213" a="E"><vh>@rst html\directives.html</vh>
263<v t="ekr.20050828160132"><vh>@rst-no-head links</vh></v>273<v t="ekr.20050828160132"><vh>@rst-no-head links</vh></v>
264<v t="ekr.20050828061501.1"><vh>@rst-no-head Intro.</vh></v>274<v t="ekr.20050828061501.1"><vh>@rst-no-head Intro.</vh></v>
265<v t="ekr.20050828163557"><vh>Overview: creating and using external files</vh></v>275<v t="sps.20100506030816.13127"><vh>A Brief and Inaccurate History of Leo for Programming</vh>
266<v t="ekr.20050828211507"><vh>Overview: summary of directives</vh></v>276<v t="sps.20100507011942.17790"><vh>@rst-ignore-node \@root</vh></v>
267<v t="ekr.20050828061501.30"><vh>Reference: all about directives</vh>277</v>
278<v t="ekr.20050828163557"><vh>Creating and using external files: recommendations</vh>
279<v t="sps.20100507011942.17791"><vh>@rst-ignore-node \@root</vh></v>
280</v>
281<v t="ekr.20050828211507"><vh>Overview: summary of directives</vh>
282<v t="sps.20100507011942.13175"><vh>Body pane modifiers</vh></v>
283<v t="sps.20100507011942.13176"><vh>Headline Family Directives</vh>
284<v t="sps.20100507011942.13177"><vh>External File Directives</vh></v>
285<v t="sps.20100507011942.13178"><vh>Body Text Generation Modifiers</vh></v>
286<v t="sps.20100507011942.13179"><vh>Tree Walk Modifiers</vh></v>
287</v>
288<v t="sps.20100507011942.13180"><vh>@rst-ignore-node @root Family Directives</vh></v>
289</v>
290<v t="ekr.20050828061501.30" a="E"><vh>Reference: all about directives</vh>
291<v t="sps.20100506153234.13367" a="E"><vh>Body pane modifiers</vh>
292<v t="ekr.20050828061501.32"><vh>@color, @nocolor, @nocolor-node and @killcolor</vh></v>
293<v t="ekr.20050828061501.42"><vh>@wrap and @nowrap</vh></v>
294</v>
295<v t="sps.20100507011942.13181" a="E"><vh>Headline Directive Family</vh>
296<v t="sps.20100506153234.13364" a="E"><vh>External file directives</vh>
297<v t="ekr.20050828174453.2"><vh>\@asis</vh></v>
298<v t="ekr.20080730212711.47" a="E"><vh>\@auto</vh>
299<v t="sps.20100507011942.17787"><vh>Perfect import checks</vh></v>
300<v t="sps.20100507011942.17789"><vh>@rst-ignore-node Commands related to @auto</vh></v>
301</v>
302<v t="ekr.20090307063422.4"><vh>\@edit</vh></v>
303<v t="ekr.20050828061501.51"><vh>\@file</vh></v>
304<v t="ekr.20050828174453.1"><vh>\@nosent</vh></v>
305<v t="ekr.20050828061501.39"><vh>\@path</vh></v>
306<v t="ekr.20080730212711.41"><vh>\@shadow</vh></v>
307<v t="ekr.20080730212711.44"><vh>\@thin</vh></v>
308</v>
309<v t="sps.20100506153234.13365" a="E"><vh>Text generation modifiers</vh>
268<v t="ekr.20050828173234"><vh>@ and @doc</vh></v>310<v t="ekr.20050828173234"><vh>@ and @doc</vh></v>
269<v t="ekr.20050828061501.31"><vh>@all</vh></v>
270<v t="ekr.20050828174453.2"><vh>\@asis</vh></v>
271<v t="ekr.20080730212711.47"><vh>\@auto</vh></v>
272<v t="ekr.20050828173234.1"><vh>@c and @code</vh></v>311<v t="ekr.20050828173234.1"><vh>@c and @code</vh></v>
273<v t="ekr.20050828061501.32"><vh>@color, @nocolor, @nocolor-node and @killcolor</vh></v>
274<v t="ekr.20050828061501.33"><vh>@comment</vh></v>312<v t="ekr.20050828061501.33"><vh>@comment</vh></v>
275<v t="ekr.20050828061501.34"><vh>@delims</vh></v>313<v t="ekr.20050828061501.34"><vh>@delims</vh></v>
276<v t="ekr.20090307063422.4"><vh>@edit</vh></v>
277<v t="ekr.20050828061501.35"><vh>@encoding</vh></v>314<v t="ekr.20050828061501.35"><vh>@encoding</vh></v>
278<v t="ekr.20050828061501.51"><vh>\@file</vh></v>
279<v t="ekr.20050828061501.36"><vh>@first</vh></v>315<v t="ekr.20050828061501.36"><vh>@first</vh></v>
280<v t="ekr.20050828065955.3"><vh>@ignore</vh></v>
281<v t="ekr.20050828061501.37"><vh>@language</vh></v>316<v t="ekr.20050828061501.37"><vh>@language</vh></v>
282<v t="ekr.20050828210721"><vh>@last</vh></v>317<v t="ekr.20050828210721"><vh>@last</vh></v>
283<v t="ekr.20050828061501.38"><vh>@lineending</vh></v>318<v t="ekr.20050828061501.38"><vh>@lineending</vh></v>
284<v t="ekr.20050828064254"><vh>@others</vh></v>
285<v t="ekr.20050828174453.1"><vh>\@nosent</vh></v>
286<v t="ekr.20050828061501.39"><vh>\@path</vh></v>
287<v t="ekr.20050828210721.1"><vh>@pagewidth</vh></v>319<v t="ekr.20050828210721.1"><vh>@pagewidth</vh></v>
288<v t="ekr.20050828061501.40"><vh>@raw and @end_raw</vh></v>320<v t="ekr.20050828061501.40"><vh>@raw and @end_raw</vh></v>
321<v t="ekr.20050828210721.2"><vh>\@tabwidth</vh></v>
322<v t="sps.20100507011942.13198"><vh>\@verbatim</vh></v>
323</v>
324<v t="sps.20100506153234.13366" a="E"><vh>Tree walk modifiers</vh>
325<v t="sps.20100506153234.13369"><vh>\&lt;\&lt;section\&gt;\&gt;</vh></v>
326<v t="ekr.20050828061501.31"><vh>@all</vh></v>
327<v t="ekr.20050828065955.3"><vh>@ignore</vh></v>
328<v t="ekr.20050828064254"><vh>@others</vh></v>
329</v>
330</v>
331</v>
332<v t="sps.20100507011942.13182"><vh>@rst-ignore-tree \@root Directive Family</vh>
333<v t="sps.20100507011942.13200"><vh>\&lt;\&lt;section\&gt;\&gt;</vh></v>
334<v t="sps.20100507011942.13189"><vh>@ and @doc</vh></v>
335<v t="sps.20100507011942.13191"><vh>@c and @code</vh></v>
336<v t="sps.20100507011942.13193"><vh>@comment</vh></v>
337<v t="ekr.20050828061501.35"></v>
338<v t="sps.20100507011942.13195"><vh>@language</vh></v>
339<v t="ekr.20050828061501.38"></v>
340<v t="ekr.20050828210721.2"></v>
341<v t="sps.20100507011942.13185"><vh>\@path</vh></v>
289<v t="ekr.20080730212711.51"><vh>\@root</vh></v>342<v t="ekr.20080730212711.51"><vh>\@root</vh></v>
290<v t="ekr.20050828061501.41"><vh>\@root-code and @root-doc</vh></v>343<v t="ekr.20050828061501.41"><vh>\@root-code and @root-doc</vh></v>
291<v t="ekr.20080730212711.41"><vh>\@shadow</vh></v>344<v t="sps.20100507011942.13202"><vh>@unit</vh></v>
292<v t="ekr.20050828210721.2"><vh>\@tabwidth</vh></v>345<v t="sps.20100507011942.13197"><vh>@verbose, @terse, @quiet and @silent</vh></v>
293<v t="ekr.20080730212711.44"><vh>\@thin</vh></v>346<v t="sps.20100507011942.13198"></v>
294<v t="ekr.20080729064227.3"><vh>@unit</vh></v>
295<v t="ekr.20050828061501.50"><vh>@verbose, @terse, @quiet and @silent</vh></v>
296<v t="ekr.20050828061501.42"><vh>@wrap and @nowrap</vh></v>
297</v>
298<v t="ekr.20050828062751"><vh>Reference: creating and using external files</vh>
299<v t="ekr.20070814090306"><vh>\@auto</vh>
300<v t="ekr.20070814090306.2"><vh>Perfect import checks</vh></v>
301<v t="ekr.20070814090306.3"><vh>Commands related to @auto</vh></v>
302</v>
303<v t="ekr.20090307063422.7"><vh>\@edit</vh></v>
304<v t="ekr.20050828061501.51"></v>
305<v t="ekr.20050828174453.1"></v>
306<v t="ekr.20050828174453.2"></v>
307<v t="ekr.20050828061501.45"><vh>\@root reference</vh>
308<v t="ekr.20050828061501.47"><vh>Sections and section definitions</vh></v>
309<v t="ekr.20050828061501.48"><vh>Tangling @root trees with the Tangle commands</vh></v>
310<v t="ekr.20050828061501.49"><vh>Untangling @root trees with the Untangle commands</vh></v>
311</v>
312<v t="ekr.20080730212711.44"></v>
313<v t="ekr.20080730212711.41"></v>
314<v t="EKR.20040524104904.282"><vh>Converting @root trees to @file trees</vh></v>
315</v>347</v>
316<v t="ekr.20050828061501.43"><vh>CWEB mode</vh></v>348<v t="ekr.20050828061501.43"><vh>CWEB mode</vh></v>
317</v>349</v>
@@ -377,8 +409,8 @@
377<v t="EKR.20040524104904.181"><vh>How Leo Changes the Notion of Literate Programming</vh></v>409<v t="EKR.20040524104904.181"><vh>How Leo Changes the Notion of Literate Programming</vh></v>
378</v>410</v>
379</v>411</v>
380<v t="ekr.20050831195331.4" a="E"><vh>Chapter 7: Scripting Leo with Python</vh>412<v t="ekr.20050831195331.4"><vh>Chapter 7: Scripting Leo with Python</vh>
381<v t="ekr.20040403171740" a="E"><vh>@rst html\scripting.html</vh>413<v t="ekr.20040403171740"><vh>@rst html\scripting.html</vh>
382<v t="ekr.20091104200540.6566"><vh>@rst-ignore</vh>414<v t="ekr.20091104200540.6566"><vh>@rst-ignore</vh>
383<v t="ekr.20091107181442.26607"><vh>old, too complicated intro</vh></v>415<v t="ekr.20091107181442.26607"><vh>old, too complicated intro</vh></v>
384<v t="ekr.20091104200540.6567"><vh>details for later</vh></v>416<v t="ekr.20091104200540.6567"><vh>details for later</vh></v>
@@ -465,7 +497,7 @@
465<v t="ekr.20100122073254.11655"><vh>Writing new importers</vh></v>497<v t="ekr.20100122073254.11655"><vh>Writing new importers</vh></v>
466</v>498</v>
467</v>499</v>
468<v t="EKR.20040524104904.245"><vh>Chapter 9: History of Leo</vh>500<v t="EKR.20040524104904.245" a="E"><vh>Chapter 9: History of Leo</vh>
469<v t="ekr.20050901101608.5"><vh>@rst html\history.html</vh>501<v t="ekr.20050901101608.5"><vh>@rst html\history.html</vh>
470<v t="ekr.20050901102147"><vh>@rst-no-head links</vh></v>502<v t="ekr.20050901102147"><vh>@rst-no-head links</vh></v>
471<v t="ekr.20050902105852"><vh>Beginnings</vh></v>503<v t="ekr.20050902105852"><vh>Beginnings</vh></v>
@@ -4959,45 +4991,6 @@
4959again when its penultimate clone is deleted. Clones are useful for making4991again when its penultimate clone is deleted. Clones are useful for making
4960alternate views of a program. See `Clones and views`_ for full details.</t>4992alternate views of a program. See `Clones and views`_ for full details.</t>
4961<t tx="EKR.20040524104904.274">@language rest</t>4993<t tx="EKR.20040524104904.274">@language rest</t>
4962<t tx="EKR.20040524104904.282">To convert an @root tree to an @file tree, choose the root of the tree to be
4963converted, then do the following in the Python window::
4964
4965 import c2py
4966 c2py.leo1to2()
4967
4968This script makes numerous changes throughout the tree. It does not, however,
4969change @root to @file, or insert the needed @others directives. You must do that
4970by hand.
4971
4972To convert @root trees to @file trees by hand:
4973
49741. Change the @root node to an @file node. That is, delete the @root &lt;filename&gt;
4975 from the body text and insert @file &lt;filename&gt; in the headline. Typically,
4976 the root node contains a reference like &lt;&lt;methods of class x&gt;&gt; as the last
4977 body text. Replace this reference with the @others directive. The expansion
4978 of @others is all text that is not part of a section definition.
4979
49802. Add @ to the start of all doc parts. Leo starts syntax coloring in code mode
4981 rather than doc mode, so if a doc part starts body text it should start with
4982 an '@' sign.
4983
49843. Replace all section definition lines (like &lt;&lt;name&gt;&gt;=) by @c. This results in
4985 the node being added to the expansion of @others.
4986
49874. Remove all unused code from the @file tree. Leo does not write external files
4988 whose @file trees contain orphan or @ignore nodes.
4989
49905. Make sure that all nodes defining a section have a headline that starts with
4991 &lt;&lt;section&gt;&gt;. This will typically be true when converting @root trees that use
4992 the @code directive.
4993
49946. If a section is referenced in more than one node (a rare occurrence in my
4995 code), clone the defining node and move one clone under each referencing
4996 node.
4997
49987. If a node contains the definitions of several sections, place each different
4999 definition in a different node.
5000</t>
5001<t tx="EKR.20040524104904.307">The following error messages may be generated by the Tangle commands.4994<t tx="EKR.20040524104904.307">The following error messages may be generated by the Tangle commands.
50024995
5003Can not re-open temp file4996Can not re-open temp file
@@ -5307,7 +5300,7 @@
5307<t tx="EKR.20040524104904.36">The Insert Node command inserts a new node into the outline. The5300<t tx="EKR.20040524104904.36">The Insert Node command inserts a new node into the outline. The
5308Delete Node command deletes a node and all its children.5301Delete Node command deletes a node and all its children.
5309</t>5302</t>
5310<t tx="EKR.20040524104904.37">The Cut Outline, Paste Outline, Copy Outline and Delete Outline commands work on5303<t tx="EKR.20040524104904.37">The Cut Node, Paste Node, Copy Node and Delete Node commands work on
5311nodes rather than text. For example, to delete a node, select the node and5304nodes rather than text. For example, to delete a node, select the node and
5312choose the Cut Outline or Delete Outline command. The Cut Outline and Copy5305choose the Cut Outline or Delete Outline command. The Cut Outline and Copy
5313Outline commands copy a text representation of the outline to the clipboard.5306Outline commands copy a text representation of the outline to the clipboard.
@@ -5315,20 +5308,21 @@
5315deleted. You may copy this text representation into a body pane (or into any5308deleted. You may copy this text representation into a body pane (or into any
5316other text editor) using the Edit:Paste command.5309other text editor) using the Edit:Paste command.
53175310
5318**Warning**: In practice, it is almost always wiser to move clones rather than5311**Warning**: If you want to preserve the "cloned" attribute of a node, or want to paste the node as a clone of the node you cut or copied, use the paste-retaining-clones command (in the Outline menu, called "Past Node as Clone").
5319cutting or pasting them. Cutting and pasting outlines preserves clones, but the5312The paste-node command instead creates a new, distinct version of the node you previously cut or copied, though if there were descendants nodes which were clones of each other, the new version will have parallel, distinct nodes that are also clones of each other (just not to the originals). You may paste a node between .leo files, but there can be no clone relationship between them.
5320links between clones only exist within the part of the outline that was pasted.5313
5321Therefore, if you are cutting and pasting an outline containing clones it is5314There are places to which you are prevented from paste-retaining-clones, because it would cause a node to become a parent of itself, and thus cuase outline traversals like \@thin expansion to loop until they consumed all memory and crashed the program. The leo outline is thus mathematically a *directed acyclic graph*: clones make it more flexible than a tree, but not a generalized graph.
5322best to cut and paste the *entire* outline. Alternatively, you can paste part of5315</t>
5323an outline, then delete all clones.</t>5316<t tx="EKR.20040524104904.38">If you are using the Tk GUI ( by starting Leo with the argument --gui=tk ) you may drag a node (including all its descendants) from one place to another
5324<t tx="EKR.20040524104904.38">You may drag an node (including all its descendants) from one place to another
5325in an outline. To start a drag, press the main (left) mouse button while the5317in an outline. To start a drag, press the main (left) mouse button while the
5326cursor is over the icon for a node. The cursor will change to a hand icon. If5318cursor is over the icon for a node. The cursor will change to a hand icon. If
5327you release the mouse button while the hand cursor is above the icon for another5319you release the mouse button while the hand cursor is above the icon for another
5328node, Leo will move the dragged node after that node. If you release the mouse5320node, Leo will move the dragged node after that node. If you release the mouse
5329button when the hand cursor is not over an icon, Leo will leave the outline pane5321button when the hand cursor is not over an icon, Leo will leave the outline pane
5330as it is. Leo scrolls the outline pane as the result of mouse-moved events, so5322as it is. Leo scrolls the outline pane as the result of mouse-moved events so near the top and bottom boundaries of the outline pane, so to continue scrolling you must keep moving the mouse.
5331to continue scrolling you must keep moving the mouse.</t>5323to continue scrolling you must keep moving the mouse.
5324
5325In both GUIs, you can use the move-outline-down and move-outline-up commands (bound to Ctrl-D and Ctrl-U by default) to move a node within the outline. It may be easier to move within a large outline by cutting the node and pasting it.</t>
5332<t tx="EKR.20040524104904.380">@language rest</t>5326<t tx="EKR.20040524104904.380">@language rest</t>
5333<t tx="EKR.20040524104904.39">Leo auto indents unless @nocolor is in effect. Typing a newline5327<t tx="EKR.20040524104904.39">Leo auto indents unless @nocolor is in effect. Typing a newline
5334automatically inserts the same leading whitespace present on the previous line.5328automatically inserts the same leading whitespace present on the previous line.
@@ -5440,7 +5434,10 @@
5440<t tx="EKR.20040524104904.40">You can expand or contract a node by clicking in the standard Windows Tree5434<t tx="EKR.20040524104904.40">You can expand or contract a node by clicking in the standard Windows Tree
5441View icon to the left of the status icon. Expanding a node shows its immediate5435View icon to the left of the status icon. Expanding a node shows its immediate
5442children; contracting a node hides all its children. The Expand All Subheads5436children; contracting a node hides all its children. The Expand All Subheads
5443command expands all of a nodes offspring (children, grandchildren, etc.)</t>5437command expands all of a nodes offspring (children, grandchildren, etc.)
5438
5439Alt-Leftarrow on an expanded node will contract the node; Alt-RightArrow on a contracted node will expand the node.
5440</t>
5444<t tx="EKR.20040524104904.41">Leo auto indents body text following colons when @language Python is in5441<t tx="EKR.20040524104904.41">Leo auto indents body text following colons when @language Python is in
5445effect. When the smart_auto_indent setting is True, Leo uses Emacs-style5442effect. When the smart_auto_indent setting is True, Leo uses Emacs-style
5446auto-indentation instead. This style of auto-indent aligns newly created lines5443auto-indentation instead. This style of auto-indent aligns newly created lines
@@ -5467,13 +5464,7 @@
5467selecting another location in the outline and pasting the node in the new5464selecting another location in the outline and pasting the node in the new
5468location.5465location.
54695466
5470**Warning**: In practice, it is almost always wiser to move clones rather than5467See the **Warning** above in `Cutting, pasting and deleting nodes`_.</t>
5471cutting or pasting them. Cutting and pasting outlines preserves clones, but the
5472links between clones only exist within the part of the outline that was pasted.
5473Therefore, if you are cutting and pasting an outline containing clones it is
5474best to cut and paste the _entire_ outline. Alternatively, you can paste part of
5475an outline, then delete all clones.
5476</t>
5477<t tx="EKR.20040524104904.45">Double-clicking the icon box of a node whose headline has the form::5468<t tx="EKR.20040524104904.45">Double-clicking the icon box of a node whose headline has the form::
54785469
5479 @url &lt;any url&gt;5470 @url &lt;any url&gt;
@@ -8140,7 +8131,7 @@
8140Naud Olivier, Joe Orr,8131Naud Olivier, Joe Orr,
8141Marc-Antoine Parent, Paul Paterson, Sean Shaleh Perry, Tim Peters, David Priest, Gary Poster, Scott Powell,8132Marc-Antoine Parent, Paul Paterson, Sean Shaleh Perry, Tim Peters, David Priest, Gary Poster, Scott Powell,
8142Bruce Rafnel, Walter H. Rauser, Olivier Ravard, David Speed Ream, Rich Ries, Aharon Robbins, Guido van Rossum, David Rowe,8133Bruce Rafnel, Walter H. Rauser, Olivier Ravard, David Speed Ream, Rich Ries, Aharon Robbins, Guido van Rossum, David Rowe,
8143Davide Salomoni, Steven Schaefer,Johannes Schöön, Wolfram Schwenzer, Casey Wong Kam Shun,8134Davide Salomoni, Stephen Schaefer,Johannes Schöön, Wolfram Schwenzer, Casey Wong Kam Shun,
8144Gil Shwartz, Jim Sizelove, Paul Snively, Jurjen Stellingwerff, Phil Straus, David Szent-Györgyi,8135Gil Shwartz, Jim Sizelove, Paul Snively, Jurjen Stellingwerff, Phil Straus, David Szent-Györgyi,
8145Kent Tenney, Jeffrey Thompson,8136Kent Tenney, Jeffrey Thompson,
8146Gabriel Valiente, Jim Vickroy, Tony Vignaux, Tom van Vleck,8137Gabriel Valiente, Jim Vickroy, Tony Vignaux, Tom van Vleck,
@@ -8201,7 +8192,7 @@
8201François Pinard wrote pymacs.8192François Pinard wrote pymacs.
8202Norman Ramsey created noweb and gave permission to quote from the noweb web documentation.8193Norman Ramsey created noweb and gave permission to quote from the noweb web documentation.
8203Rich Ries has contributed a huge number of suggestions.8194Rich Ries has contributed a huge number of suggestions.
8204Steven P. Schaefer pointed out major security problems lurking in hooks.8195Stephen P. Schaefer pointed out major security problems lurking in hooks.
8205Gil Shwartz helped with unicode support.8196Gil Shwartz helped with unicode support.
8206Phil Straus has been a great friend and constant support.8197Phil Straus has been a great friend and constant support.
8207Guido van Rossum created Python, Tkinter and the Python License.8198Guido van Rossum created Python, Tkinter and the Python License.
@@ -10233,7 +10224,7 @@
10233widget. This allows users to set Tk options.</t>10224widget. This allows users to set Tk options.</t>
10234<t tx="ekr.20050812090111">import leo.core.leoPlugins as leoPlugins10225<t tx="ekr.20050812090111">import leo.core.leoPlugins as leoPlugins
1023510226
10236rst3 = leoPlugins.getPluginModule('rst3')10227rst3 = c.rstCommands.rst3
1023710228
10238if rst3:10229if rst3:
10239 controller = rst3.controllers.get(c)10230 controller = rst3.controllers.get(c)
@@ -10899,130 +10890,132 @@
10899for that you should read `Leo's tutorial`_.10890for that you should read `Leo's tutorial`_.
10900This chapter assumes you are thoroughly familiar with the terminology introduced in the tutorial.10891This chapter assumes you are thoroughly familiar with the terminology introduced in the tutorial.
10901**Note**: Are you *sure* you want to read this chapter?10892**Note**: Are you *sure* you want to read this chapter?
10902It contains many details that are no interest to the average user of Leo.10893It contains many details that are of no interest to the average user of Leo.
10903I recommend using Leo for two weeks, or longer, before attempting this chapter.10894I recommend using Leo for two weeks, or longer, before attempting this chapter.
1090410895
10905.. .. contents::</t>10896.. .. contents::</t>
10906<t tx="ekr.20050828061501.30">The following sections give full details about each directive.10897<t tx="ekr.20050828061501.30">The following sections give full details about each directive. The `Headline Directive Family`_ directives will be supplemented by the `\@root Directive Family`_ once the latter has settled in its semantics; the same directive may have different effects depending on whether it is governed by a headline directive or an ``@root`` directive; at this point, just don't use ``@root``.
10907The directives listed here may appear in headlines or body text.10898
10908</t>10899</t>
10909<t tx="ekr.20050828061501.31">The @all directive is valid only in @thin trees.10900<t tx="ekr.20050828061501.31">The ``@all`` directive is valid only in ``@thin`` style trees.
10910The @all directive is similar to @others, but it is less restrictive:10901The ``@all`` directive is similar to ``@others``, but it is less fastidious:
10911it dumps *all* nodes to the external file, including @ignore nodes and nodes that10902it dumps the current node and *all* child nodes to the external file,
10912in an @others tree would be considered to be orphan nodes.10903including ``@ignore`` nodes and nodes that
10904in an ``@others`` tree would be considered to be orphan nodes, generally ceasing to
10905interpret any
10906further tree walk or text generation modifying directives.
1091310907
10914The @all directive is required for files such as @thin leoProjects.txt in LeoPy.leo.10908The ``@all`` directive is required for files such as ``@thin`` leoProjects.txt in LeoPy.leo.
10915leoProjects.txt contains so-called project nodes.10909leoProjects.txt contains so-called project nodes.
10916It doesn't have any meaning as a program file: it is simply a collection of unrelated data.10910It doesn't have any meaning as a program file: it is simply a collection of unrelated data.
10917@others would not work at all: it would complain about lots of orphan nodes.</t>10911``@others`` would not work at all: it would complain about lots of orphan nodes.</t>
10918<t tx="ekr.20050828061501.32">Syntax coloring is on by default in all body text.10912<t tx="ekr.20050828061501.32">Syntax coloring is on by default in all body text.
10919Leo formats comments and documentation parts in red,10913Leo formats comments and documentation parts in red,
10920directives and C keywords in blue,10914directives and C keywords in blue,
10921strings and character constants in gray and all other text in code parts in black.10915strings and character constants in green and all other text in code parts in black.
10922The @nocolor directive disables syntax coloring for the body text in which it appears.10916The color directives are recognized only in the first column of the body text.
10923No syntax coloring is done until an @color directive re-enables syntax coloring.10917The ``@nocolor`` directive disables syntax coloring for the lines of body text after which it appears.
10918No syntax coloring is done until an ``@color`` directive re-enables syntax coloring.
1092410919
10925If a node contains neither the @color nor the @nocolor directive10920If a node contains neither the ``@color`` nor the ``@nocolor`` directive
10926it may inherit the syntax coloring attribute from an ancestor.10921it may inherit the syntax coloring attribute from an ancestor.
10927The nearest ancestor that contains exactly one of the @color or @nocolor directives10922The nearest ancestor that contains exactly one of the ``@color`` or ``@nocolor`` directives
10928will control the syntax coloring.10923will control the syntax coloring.
10929**Ambiguous nodes**, nodes containing both the @color and @nocolor directives,10924**Ambiguous nodes**, nodes containing both the ``@color`` and ``@nocolor`` directives,
10930never affect the coloring of their offspring.10925never affect the coloring of their children.
1093110926
10932The @nocolor-node directive completely disables coloring for that node only.10927The ``@nocolor-node`` directive completely disables coloring for that node only, taking precedence over other color directives that may be present.
10933Descedant nodes are not affected.10928Descedant nodes are not affected.
1093410929
10935The @killcolor directive completely disables the colorizer for that node.10930The ``@killcolor`` directive completely disables the colorizer for that node.
10936The result is much faster syntax coloring of large body text.10931The result is much faster syntax coloring of large body text.
10937As usual @killcolor may itself be overridden in descendant nodes.10932``@killcolor`` may itself be overridden in descendant nodes.
10938The differences between @killcolor and @nocolor:10933The differences between ``@killcolor`` and ``@nocolor``:
1093910934
10940- @nocolor suppresses coloring only until the next @color directive.10935- ``@nocolor`` suppresses coloring only until the next ``@color`` directive.
1094110936
10942- @killcolor overrides @nocolor and @color directives.10937- ``@killcolor`` overrides ``@nocolor`` and ``@color`` directives.
10943 Any node containing @killcolor is unambiguously a @killcolor node regardless of10938 Any node containing ``@killcolor`` is unambiguously a ``@killcolor`` node regardless of
10944 whether that node also contains @color or @nocolor directives.10939 whether that node also contains ``@color`` or ``@nocolor`` directives.
1094510940
10946**Note**:10941``@killcolor`` and ``@nocolor-node`` differ in that the influence of ``@nocolor-node`` does not extend to descendant nodes, whereas ``@killcolor`` does influence descendant nodes.
10947These directives do not affect the Tangle commands in any way.10942
10948In particular, the Tangle commands will recognize section definitions as usual even10943Leo recognizes the color directives only in the first column of body text, not in headlines.
10949after an @nocolor directive is seen.</t>10944They have no effect on the "tangle" processes.
10950<t tx="ekr.20050828061501.33">**Note**: the @comment directive is deprecated: you should use the @language10945</t>
10951directive whenever possible. However, sometimes using both @language and10946<t tx="ekr.20050828061501.33">**Note**: the ``@comment`` directive is deprecated: you should use the ``@language``
10952@comment is useful. For this to be effective the @comment directive should10947directive whenever possible. However, sometimes using both ``@language`` and
10953appear after the @language directive (in outline order).10948``@comment`` is useful. For this to be effective the ``@comment`` directive should
1095410949appear after the ``@language`` directive (in outline order). In such cases ``@comment``
10955The Untangle command will not process an @root or @unit node if an @comment10950overrides the comment delimiters normally used by ``@language``. Even in this case, you will generally
10956directive is in effect because Untangle can't be sure of properly parsing an10951do better combining ``@language`` and ``@delims``. See `\@delims`_. **DO NOT** combine ``@comment``
10957external file if the language of the external file isn't known. It might be10952with ``@delims``: the result is undefined and often generates a file which Leo cannot read and from
10958possible to assume some defaults in this case, but that is not done at present10953which **data will be lost** after any subsequent ''save''.
10959and is not a high priority. By default, the Tangle commands produces C-language10954
10960comments. Single-line comments generated during tangling start with ///, while10955``@comment`` controls the text used to designate comment strings in the external file.
10961documentation parts are surrounded by \* and \*. The @comment directive allows10956By default, saving an ``@thin`` style tree produces C-language
10962you to use Tangle to produce shell and make files, as well as source code for10957comments. Single-line comments generated during generation start with ``//``, while
10963other programming languages.10958documentation parts are surrounded by ``/*`` and ``*/``. The ``@comment`` directive allows
1096410959you to work with source code for almost any programming languages.
10965The @comment directive may be followed by zero to three delimiters, separated by10960
10961The ``@comment`` directive may be followed by zero to three delimiters, separated by
10966whitespace. This directive sets the single-line comment delimiter and the10962whitespace. This directive sets the single-line comment delimiter and the
10967opening and closing block comment delimiters as follows:10963opening and closing block comment delimiters as follows:
1096810964
10969====================== =====================================================================10965======================== =====================================================================
10970\@comment no args\: restores the defaults to ///, /\* and \*/10966``@comment`` no args\: restores the defaults to ``//``, ``/*`` and ``*/``
10971---------------------- ---------------------------------------------------------------------10967------------------------ ---------------------------------------------------------------------
10972\@comment /// \1 arg\: sets the single-line comment and clears the other delims.10968``@comment //`` \1 arg\: sets the single-line comment and clears the other delims.
10973---------------------- ---------------------------------------------------------------------10969------------------------ ---------------------------------------------------------------------
10974\@comment /\* \*/ \2 args\: sets the block comment delims; clears the single-line delim.10970``@comment /* */`` \2 args\: sets the block comment delims; clears the single-line delim.
10975---------------------- ---------------------------------------------------------------------10971------------------------ ---------------------------------------------------------------------
10976\@comment /// /\* \*/ \3 args\: sets all three delimiters.10972``@comment // /* */`` \3 args\: sets all three delimiters.
10977====================== =====================================================================10973======================== =====================================================================
1097810974
10979If only one delimiter is given, Leo does not write any documentation parts while tangling.10975If only one delimiter is given, Leo uses it to begin each line of a
10980If two delimiters are given, block-style comments are used instead of single-line comments.10976recognized documentation part (that is, one ungoverned by something like ``@all``).
10981For example, the @comment { } directive could be used to tangle Pascal files.10977
1098210978If two delimiters are given, Leo uses block-style comments instead of single-line comments.
10983The @comment directive is only recognized in @root, @unit, @file and @thin nodes,10979For example, ``@comment { }`` could be used with Pascal files.
10984and the @comment directive must precede the first section name or @code directive.10980
10985An @comment directive in the body text of an @unit directive specifies the current global defaults.10981The ``@comment`` directive must precede the first section name or ``@c`` directive.
10986An @comment directive in the body text of an @root directive affects comments generated for one root only.10982
10987Comments in all other roots are governed by the global defaults.10983Leo will convert underscores in the ``@comment`` directives to significant spaces. For example::
10988
10989Leo will convert underscores in the @comment directives to significant spaces. For example::
1099010984
10991 @comment REM_10985 @comment REM_
1099210986
10993causes the comment delimiter to be "REM " (Note the trailing space).</t>10987causes the comment delimiter to be "REM " (Note the trailing space).
10994<t tx="ekr.20050828061501.34">The @delims directive changes the comment strings used to mark sentinel lines.10988</t>
10989<t tx="ekr.20050828061501.34">The ``@delims`` directive changes the comment strings used to mark sentinel lines from that point forward in the body text.
10995This directive is often used to place Javascript text inside XML or HTML files.10990This directive is often used to place Javascript text inside XML or HTML files.
10996The delims directive is not valid in @root or @unit trees.
1099710991
10998The @delims directive contains one or two delimiters, separated by whitespace.10992The ``@delims`` directive contains one or two delimiters, separated by whitespace.
10999If only one delim is present it delimits single-line comments.10993If only one delim is present it delimits single-line comments.
11000If two delims are present they delimit block comments.10994If two delims are present they delimit block comments.
11001The @delims directive can not be used to change the comment strings at the start of the external file,10995The ``@delims`` directive can not be used to change the comment strings at the start of the external file,
11002that is, the comment strings for the @+leo sentinel and the initial @+body and @+node sentinels.10996that is, the comment strings for the ``@+leo`` sentinel and the initial ``@+body`` and ``@+node`` sentinels.
1100310997
11004The @delims directive inserts @@delims sentinels into the external file.10998The ``@delims`` directive inserts ``@@delims`` sentinels into the external file.
11005The new delimiter strings continue in effect until the next @@delims sentinel in the external file or10999The new delimiter strings continue in effect until the next ``@@delims`` sentinel in the external file or
11006the end of the external file.11000the end of the external file.
1100711001
11008**Note**: Leo can not revert to previous delimiters automatically;11002**Note**: Leo can not revert to previous delimiters automatically;
11009you must change back to previous delimiters using another @delims directive. For example::11003you must change back to previous delimiters using another ``@delims`` directive. For example::
1101011004
11011 @delims /* */11005 @delims /* */
11012 Javascript stuff11006 Javascript stuff
11013 @delims &lt;-- --&gt;11007 @delims &lt;-- --&gt;
11014 HTML stuff11008 HTML stuff
1101511009
11016Adding, deleting or changing @@delims sentinels will destroy Leo's ability to read the external file.11010Adding, deleting or changing ``@@delims`` sentinels will destroy Leo's ability to read the external file.
11017Mistakes using the @delims directive have no effect on Leo,11011``@delims`` affects only external files, having no effect on Leo's colorizer or internal data representation.
11018though such mistakes will thoroughly mess up a external file as far as compilers,11012Incorrect use will thoroughly corrupt the external file as far as compilers, HTML renderers, etc. are concerned.</t>
11019HTML renderers, etc. are concerned.</t>11013<t tx="ekr.20050828061501.35">You may use the ``@encoding`` directive to specify the encoding used in an external file.
11020<t tx="ekr.20050828061501.35">You may use the @encoding directive to specify the encoding used in an external file.
11021You can't mix encodings in a single external file. For example::11014You can't mix encodings in a single external file. For example::
1102211015
11023 @encoding iso-8859-111016 @encoding iso-8859-1
1102411017
11025If the encoding used in an external file is not "utf-8" it is represented in the @+leo sentinel line, like this::11018If the encoding used in an external file is not "utf-8" it is represented in the ``@+leo`` sentinel line, like this::
1102611019
11027 #@+leo-encoding=iso-8859-1.11020 #@+leo-encoding=iso-8859-1.
1102811021
@@ -11031,56 +11024,72 @@
11031so encoding and decoding to and from utf-8 plain strings will never cause a problem.11024so encoding and decoding to and from utf-8 plain strings will never cause a problem.
11032When reading or writing a character not in a "lossy" encoding (such as iso-8859-1),11025When reading or writing a character not in a "lossy" encoding (such as iso-8859-1),
11033Leo converts such characters to '?' and issues a warning. </t>11026Leo converts such characters to '?' and issues a warning. </t>
11034<t tx="ekr.20050828061501.36">The @first directive allows you to place lines at the very start of external files created11027<t tx="ekr.20050828061501.36">The ``@first`` directive allows you to place lines at the very start of external files.
11035by @thin and @file nodes.11028For example, the first line of body text of ``@file spam.py`` might be::
11036For example, the body text of @file spam.py
11037might be::
1103811029
11039 @first #! /usr/bin/env python11030 @first #! /usr/bin/env python
1104011031
11041The body text of @file foo.perl might be::11032The first line of body text of ``@file foo.pl`` might be::
1104211033
11043 @first #/usr/bin/perl11034 @first #/usr/bin/perl
1104411035
11045@first directives are recognized only at the start of the body text of @file and @thin nodes.11036``@first`` directives are recognized only at the start of the body text of external
11046No text may precede @first directives.11037file directive headline nodes, such as ``@file`` or ``@thin``.
11047More than one @first directive may exist, like this::11038No text may precede ``@first`` directives.
11039More than one ``@first`` directive may exist, like this::
1104811040
11049 @first #! /usr/bin/env python11041 @first #! /usr/bin/env python
11050 @first # more comments.11042 @first # more comments.
1105111043</t>
11052The @first directive is not valid in @root or @unit trees.</t>11044<t tx="ekr.20050828061501.37">The ``@language`` directive specifies the comment delimiters and string types used by the
11053<t tx="ekr.20050828061501.37">The @language directive specifies the comment delimiters and string types used by the
11054Tangle and Untangle commands.11045Tangle and Untangle commands.
11055This directive over-rides the default specified in the settings dialog.11046This directive over-rides the default specified in the settings dialog.
1105611047
11057When the threading_colorizer plugin is enabled, the valid @language directives are::11048The valid @language directives are::
11058
11059 @language x
11060
11061where the leo/modes folder contains the file x.py. When the threading_colorizier plugin is not enabled,
11062the 'old' colorizer is used and the valid @language directives are::
1106311049
11064 @language actionscript11050 @language actionscript
11051 @language ada
11052 @language autohotkey
11053 @language batch
11065 @language c11054 @language c
11066 @language c++11055 @language cpp
11056 @language css
11067 @language cweb11057 @language cweb
11068 @language elisp11058 @language elisp
11059 @language forth
11060 @language fortran
11061 @language fortran90
11062 @language haskell
11063 @language haxe
11069 @language html11064 @language html
11065 @language ini
11070 @language java11066 @language java
11067 @language kshell
11071 @language latex11068 @language latex
11072 @language objective-c11069 @language lua
11070 @language noweb
11073 @language pascal11071 @language pascal
11074 @language perl11072 @language perl
11075 @language perlpod11073 @language perlpod
11074 @language php
11076 @language plain11075 @language plain
11076 @language plsql
11077 @language python11077 @language python
11078 @language rapidq
11078 @language rebol11079 @language rebol
11080 @language rest
11081 @language rst
11082 @language ruby
11079 @language shell11083 @language shell
11084 @language tex
11080 @language tcltk11085 @language tcltk
11086 @language vim
11087 @language vimoutline
11088 @language xml
11089 @language xslt
1108111090
11082Shell files have comments that start with `#`.11091Shell files have comments that start with `#`.
11083Case is ignored in the language specifiers, but not in the @language itself.11092Case is ignored in the language specifiers, but not in the ``@language`` itself.
11084Thus, the following are equivalent::11093Thus, the following are equivalent::
1108511094
11086 @language html11095 @language html
@@ -11090,462 +11099,164 @@
11090but the following is invalid::11099but the following is invalid::
1109111100
11092 @LANGUAGE html</t>11101 @LANGUAGE html</t>
11093<t tx="ekr.20050828061501.38">The @lineending directive sets the line endings for individual external files.11102<t tx="ekr.20050828061501.38">The ``@lineending`` directive sets the line endings for individual external files.
11094This directive will override the output_newline setting.11103This directive will override the ``@string output_newline`` setting.
11095The @lineending *never* affects the line endings in .leo files themselves:11104The ``@lineending`` *never* affects the line endings in .leo files themselves:
11096.leo files must have consistent line endings!11105.leo files must have consistent line endings!
1109711106
11098The valid forms of the @lineending directive are:11107The valid forms of the @lineending directive are:
1109911108
11100======================= ======================================================11109======================== ======================================================
11101\@lineending nl The default, Linux.11110``@lineending nl`` The default, Linux.
11102----------------------- ------------------------------------------------------11111------------------------ ------------------------------------------------------
11103\@lineending cr Mac11112``@lineending cr`` Mac
11104----------------------- ------------------------------------------------------11113------------------------ ------------------------------------------------------
11105\@lineending crlf Windows11114``@lineending crlf`` Windows
11106----------------------- ------------------------------------------------------11115------------------------ ------------------------------------------------------
11107\@lineending lf Same as 'nl', not recommended11116``@lineending lf`` Same as 'nl', not recommended
11108----------------------- ------------------------------------------------------11117------------------------ ------------------------------------------------------
11109\@lineending platform Same as platform value for output_newline setting.11118``@lineending platform`` Same as platform value for output_newline setting.
11110======================= ======================================================</t>11119======================== ======================================================</t>
11111<t tx="ekr.20050828061501.39">The @path directives override the deprecated default_tangle_directory setting.11120<t tx="ekr.20050828061501.39">The ``@path`` directives override the deprecated ``@directory default_tangle_directory`` setting.
1111211121
11113The form of the \@path directive is @path *filename*,11122The form is:
11114where *filename* is taken to be everything following \@path to the end of the line.11123
1111511124 ``@path`` *directory*
11116If *filename* is an absolute filename the location of the external file is specified only by the filename.11125
11117Otherwise, if *filename* is a relative filename, the location of the external file is relative to:11126where *directory* is taken to be everything following ``@path`` to the end of the line.
1111811127
111191. the directory specified the applicable @path directive, or11128When an external file directive such as ``@thin`` specifies an absolute path,
111202. the "Default Tangle Directory" in the Settings dialog if no @path directive is in effect, or11129no ``@path`` or setting affects the external file name.
11130When an external file directive specifies a relative name,
11131Leo derives the directory to which that path is relative as follows:
11132
111331. the directory specified by ``@path`` directives in parent nodes, or
111342. the "Default Tangle Directory" in the Settings dialog if no ``@path`` directive is in effect, or
111213. the directory in which the .leo file resides if the .leo file has ever been saved.111353. the directory in which the .leo file resides if the .leo file has ever been saved.
1112211136
11137As parent nodes are examined beginning with the closest, Leo prepends relative path components, and finishes when prepending an absolute path. In other words, ``@path`` directives specifying relative directory names are relative to their parent nodes. If no ``@path`` directive gives an absolute directory name, then the topmost ``@path`` is relative to either (2) or (3) in the list above.
11138
11123An error occurs if no absolute path can be computed according to these rules,11139An error occurs if no absolute path can be computed according to these rules,
11124or if *filename* does not exist.</t>11140or if the derived directory name does not exist.
11125<t tx="ekr.20050828061501.40">The @raw and @end_raw directives are valid only within @file and @thin trees.11141</t>
11126The @raw directive starts a section of "raw" text. The @end_raw directive ends11142<t tx="ekr.20050828061501.40">The ``@raw`` directive starts a section of "raw" text. The ``@end_raw`` directive ends
11127such a section, as does the end of body text. No section references are11143such a section, as does the end of body text. No section references are
11128recognized within raw text, and no additional leading whitespace is generated11144recognized within raw text, and no additional leading whitespace is generated
11129within raw text when writing the external file.</t>11145within raw text when writing the external file.</t>
11130<t tx="ekr.20050828061501.41">Leo allows you to choose whether body text in @root trees will start in code11146<t tx="ekr.20050828061501.41">Leo allows you to choose whether body text in @root trees will start in code
11131mode or doc mode by default. The @root-doc *filename* and @root-code *filename*11147mode or doc mode by default. The \@root-doc *filename* and \@root-code *filename*
11132directives specify that body text is assumed to start in doc mode or code mode11148directives specify that body text is assumed to start in doc mode or code mode
11133respectively. The options (-doc and -code) must follow @root immediately with no11149respectively. The options (-doc and -code) must follow \@root immediately with no
11134intervening whitespace. In effect, @root-code and @root-doc are two new11150intervening whitespace. In effect, \@root-code and \@root-doc are two new
11135directives.11151directives.
1113611152
11137These @root options override the at_root_bodies_start_in_doc_mode setting. This11153These \@root options override the at_root_bodies_start_in_doc_mode setting. This
11138setting affects only @root trees without options. Such "plain" @root trees are11154setting affects only \@root trees without options. Such "plain" \@root trees are
11139now deprecated, which only means that it is better style to use either the11155now deprecated, which only means that it is better style to use either the
11140\@root-code or @root-doc directive. The reason is simple: the meaning of plain11156\@root-code or \@root-doc directive. The reason is simple: the meaning of plain
11141\@root trees will depend on the at_root_bodies_start_in_doc_mode setting. It's11157\@root trees will depend on the at_root_bodies_start_in_doc_mode setting. It's
11142better to be explicit. By default, at_root_bodies_start_in_doc_mode = 1 for11158better to be explicit. By default, at_root_bodies_start_in_doc_mode = 1 for
11143compatibility for old @root trees. I actually don't think this option is good11159compatibility for old \@root trees. I actually don't think this option is good
11144for much; I created it before I created @root-doc and @root-code settings, and I11160for much; I created it before I created \@root-doc and \@root-code settings, and I
11145decided it wouldn't hurt to leave it in. Anyway, you now have complete11161decided it wouldn't hurt to leave it in. Anyway, you now have complete
11146flexibility about how @root works, and in particular you can make @root work11162flexibility about how \@root works.
11147just like @file.</t>11163</t>
11148<t tx="ekr.20050828061501.42">By default, the body_pane_wraps setting controls whether body text wraps.11164<t tx="ekr.20050828061501.42">@nowrap
11149You may override this setting for a particular tree using the @wrap and @nowrap directives.11165By default, the ``@bool body_pane_wraps`` setting controls whether body text wraps. You may override this setting for a particular tree using the ``@wrap`` and ``@nowrap`` directives. Only the first ``@wrap`` or ``@nowrap`` directive in a node has any effect. ``@wrap`` and ``@nowrap`` are recognized in both headlines and the body. In the body, these directives are recognized only in the first column of body text.
11150Only the first @wrap or @nowrap directive in a node has any effect.</t>11166
11167</t>
11151<t tx="ekr.20050828061501.43">See `CWEB`_ for a discussion of the CWEB language. CWEB mode refers to how Leo11168<t tx="ekr.20050828061501.43">See `CWEB`_ for a discussion of the CWEB language. CWEB mode refers to how Leo
11152tangles an outline when @language cweb is in effect or the cweb setting is in11169tangles an outline when ``@language cweb`` is in effect or the cweb setting is in
11153effect. Leo treats *all* cweb code in cweb mode as unevaluated text. That is,11170effect. Leo treats *all* cweb code in cweb mode as unevaluated text. That is,
11154Leo treats cweb control codes, including @&lt;...@&gt;, @&lt;..@&gt;=, @c, @, @* and @** as11171Leo treats cweb control codes, including ``@&lt;`` ... ``@&gt;``, ``@&lt;`` ... ``@&gt;=``, ``@c``, ``@``, ``@*`` and ``@**`` as
11155"raw" text within cweb mode. Leo does *not* expand *cweb* section references11172"raw" text within cweb mode. Leo does *not* expand *cweb* section references
11156when writing external files in cweb mode. However, Leo *does* expand *noweb*11173when writing external files in cweb mode. However, Leo *does* expand *noweb*
11157section references, so you may use noweb sections to organize cweb files! You11174section references, so you may use noweb sections to organize cweb files! You
11158can create *noweb* code and doc sections using the @code and @doc directives in11175can create *noweb* code and doc sections using the ``@code`` and ``@doc`` directives in
11159place of @c and @ directives.11176place of ``@c`` and ``@`` directives.
1116011177
11161By default, cweb colors @, @* and @** sections using the same syntax coloring as11178By default, cweb colors ``@``, ``@*`` and ``@**`` sections using the same syntax coloring as
11162for LaTeX. In addition, cweb colors C // and /*..*/ comments using LaTeX11179for LaTeX. In addition, cweb colors C ``//`` and ``/*`` .. ``*/`` comments using LaTeX
11163coloring by default. You may change these defaults using the11180coloring by default. You may change these defaults using the
11164color_cweb_doc_parts_with_latex and color_cweb_comments_with_latex settings.11181``@bool color_cweb_doc_parts_with_latex`` and ``@bool color_cweb_comments_with_latex`` settings.
11165</t>11182</t>
11166<t tx="ekr.20050828061501.45">This section discusses all aspects of @root trees.11183<t tx="ekr.20050828061501.51">The ``@file`` is a synonym for ``@thin``. The ``@file`` directive creates an external file
11167\@root directives must appear in body text, not headlines.11184containing sentinels.
1116811185
11169You should carefully consider whether the extra flexibility afforded by @root11186This was not always so; if you work on the same .leo file with Leo 4.6
11170trees is worth the extra bother. Indeed, @file trees are much easier to use than11187or earlier as well as with Leo 4.7 and later, the two interpretations will corrupt
11171\@root trees:11188each other: the workaround is to change all ``@file`` directives to ``@thin``, then save the
1117211189leo file and its generated files. ``@thin`` works regardless of Leo version, since all
11173- @file and @thin trees use less markup than @root trees.11190versions of Leo which support ``@thin``, support ``@thin`` in the
11174 In particular, the @others directive is valid only within @file and @thin trees.11191same way. If you work only with versions of Leo 4.7 or later, you avoid this issue entirely.
1117511192</t>
11176- You must explicitly tangle and untangle @root trees using the Tangle and11193<t tx="ekr.20050828064254">The ``@others`` directive refers to the body text of all nodes *except* section
11177 Untangle commands.11194definition nodes. The ``@others`` directive places the body text of section
11178
11179However, @root trees are more flexible than @file and @thin trees:
11180
11181- Sections may be defined anywhere within @root trees. Moreover, the @unit
11182 directive expands the scope of section definitions in @root trees so that a
11183 section may be referenced in several @root trees.
11184
11185- The meaning of section definitions in @root trees are independent of their position within the tree.
11186</t>
11187<t tx="ekr.20050828061501.47">Just as with @file trees, @root trees may contain code parts and doc parts.
11188Code parts start with section definition lines (see below) or the @c directive.
11189Doc parts start with @ directive.
11190Doc parts continue until the end of body text or until the next @c or @ directive.
11191
11192Body text in @root trees contain zero or more code and doc parts in any order.
11193The @c directive starts a named code section if the node's headline starts with &lt;&lt;section name&gt;&gt;.
11194Otherwise, the @c directive is invalid.
11195
11196**Section definition lines** are lines of the form::
11197
11198 &lt;&lt; section name&gt;&gt;=
11199
11200(note the equal sign).
11201Such lines also start named code parts.
11202Named code parts in @root trees may be defined in several places.
11203The definition of a named code part is the concatenation of all code parts with the same name.
11204Body text that defines no code part is ignored.
11205At least one non-blank line must follow the section definition line;
11206empty sections are not allowed.
11207
11208As in @file trees, paired &lt;&lt; and &gt;&gt; characters on the same line always denote a section name,
11209even within comments and strings.
11210Thus, &lt;&lt; and &gt;&gt; characters that do not delimit a section name must be placed on separate lines.
11211If &lt;&lt; and &gt;&gt; are not paired on a line, they are treated as ordinary &lt;&lt; and &gt;&gt; characters.
11212
11213Here is a typical example of body text within an @root tree::
11214
11215 @ This method puts an open node sentinel for node v.
11216 &lt;&lt;atFile methods&gt;&gt;=
11217 def putOpenNodeSentinel(self,v):
11218 if v.isAtFileNode() and v != self.root:
11219 &lt;&lt; issue an error message &gt;&gt;
11220 else:
11221 s = self.nodeSentinelText(v)
11222 self.putSentinel("@+node:" + s)
11223
11224Provided that the node's headline starts with &lt;&lt;atFile methods&gt;&gt;,
11225the example above is equivalent to::
11226
11227 @ This method puts an open node sentinel for node v.
11228 @c
11229 def putOpenNodeSentinel(self,v):
11230 if v.isAtFileNode() and v != self.root:
11231 &lt;&lt; issue an error message &gt;&gt;
11232 else:
11233 s = self.nodeSentinelText(v)
11234 self.putSentinel("@+node:" + s)
11235
11236We may not eliminate @c directives in @root trees.
11237If we convert the doc part to a comment we are left with::
11238
11239 @c
11240 # This method puts an open node sentinel for node v.
11241 def putOpenNodeSentinel(self,v):
11242 if v.isAtFileNode() and v != self.root:
11243 &lt;&lt; issue an error message &gt;&gt;
11244 else:
11245 s = self.nodeSentinelText(v)
11246 self.putSentinel("@+node:" + s)
11247
11248The following escape convention applies only in @root trees.
11249Within a code part @@ in the first column (and only in the first column) stands for a single @ sign.</t>
11250<t tx="ekr.20050828061501.48">Each @root tree represents a single external file. **Tangling** is the process
11251of creating external files from @file, @thin or @root trees. Leo tangles @file
11252and @thin trees automatically whenever an outline is saved. The user must tangle
11253@root trees explicitly using one of the Tangle commands.
11254
11255Leo creates external files by expanding all section references in an @root node.
11256Leo expands a section reference by substituting the code section itself for the
11257section reference. This is a recursive process: the substituted code section may
11258contain other code references which are themselves expanded, and so on.
11259
11260The outline provides a natural way of organizing an sections as follows::
11261
11262 Place the definition of a section S in a child of
11263 the node containing the reference to S.
11264
11265If a section is referenced in more than one node, I usually place its definition
11266in a node containing all the nodes that refer to it. Using this rule of thumb
11267creates an outline whose structure mirrors the intrinsic organization of a
11268program.
11269
11270The Tangle command creates external files from @root node. The @root directive
11271indicates which sections constitute an output file. The text following a @root
11272directive forms the entire content of the file, that is, after section
11273references are expanded. An outline can contain arbitrarily many @root
11274directives: Leo's Tangle commands will create one output file for each. The
11275process of creating external files is called "tangling" because the code from
11276the outline is rearranged to create the external files.
11277
11278For example, the following @root section shows a typical way of specifying a
11279header file xx.h::
11280
11281 @root xx.h
11282 #ifndef xx_defined
11283 #define xx_defined
11284 &lt;&lt; declarations of public constants of the xx class &gt;&gt;
11285 &lt;&lt; declarations of public types of the xx class &gt;&gt;
11286 &lt;&lt; declarations of public variables of the xx class &gt;&gt;
11287 &lt;&lt; public prototypes of the xx class &gt;&gt;
11288 #endif
11289
11290The Tangle commands will create the file xx.h from this body text by expanding
11291all the section references. Incidentally, the introductory documentation will be
11292included in the header file: any text preceding the @root directive is treated
11293just like the doc part of a section definition.
11294
11295As another example, the following shows a typical way of specifying the
11296corresponding xx.c file::
11297
11298 @root xx.c
11299 &lt;&lt; public variables of the xx class &gt;&gt;
11300 &lt;&lt; private types of the xx class &gt;&gt;
11301 &lt;&lt; private variables of the xx class &gt;&gt;
11302 &lt;&lt; private function prototypes of the xx class &gt;&gt;
11303 &lt;&lt; methods of the xx class &gt;&gt;
11304
11305There are three menu commands that tangle an outline: Tangle, Tangle All and
11306Tangle Marked. These commands are identical except for how much of the outline
11307is tangled. The Tangle command tangles only the selected portion of the outline,
11308the Tangle All command tangles the entire outline, and the Tangle Marked command
11309tangles only marked headlines.
11310
11311The @root directive has three forms. All three forms mean exactly the same
11312thing::
11313
11314 @root filename
11315 @root "filename"
11316 @root &lt;filename&gt;
11317
11318If *filename* is an absolute filename the location of the external file is specified only by the filename.
11319Otherwise, if the @root node contains a relative filename, the location of the external file is relative to:
11320
113211. the directory specified by an @path directive, or
11322
113232. the default_tangle_directory setting if no @path directive is in effect, or
11324
113253. the directory in which the .leo resides if the .leo file has ever been saved.
11326
11327An error occurs if no absolute path can be computed according to these rules,
11328or if the filename or directory does not exist.
11329
11330The scope of a definition is the tree in which the definition is known. By
11331default, Tangle commands look for section definitions only in the suboutline of
11332the @root node being tangled. That is, all sections are assumed to be defined
11333either in the body text of the headline, say h, containing the @root directive,
11334or in the body texts of the descendants of h. The @unit directive explicitly
11335indicates the scope of section definitions. When a Tangle command encounters the
11336@unit directive it treats the suboutline containing the @unit command as the
11337scope for all enclosed roots. This ensures that the group of roots in the
11338subtree use the same section definitions.
11339
11340For example, suppose we have a tree organized as follows::
11341
11342 + @unit
11343 + @root A
11344 sections in A
11345 + @root B
11346 sections in B
11347
11348The @unit directive insures that only sections defined in the unit can affect
11349files A and B and that all sections definitions in A and B are compatible with
11350each other.
11351
11352The Tangle commands ignore any tree containing an @ignore directive. This
11353ensures that trees that contain cloned nodes or other subsidiary information do
11354not cause the tangle commands to issue spurious error messages. It also ensures
11355that a tree can never contribute a section definition to another part of the
11356outline by mistake.</t>
11357<t tx="ekr.20050828061501.49">The Untangle, Untangle All and Untangle Marked commands are the reverse of the
11358corresponding Tangle commands. They update one or more @root nodes based on
11359changes made to the corresponding external files.
11360
11361For example, suppose you create a new part of the outline and tangle it for the
11362first time. When you compile external files for the first you are likely to get
11363many syntax errors. You could fix those errors in the outline and tangle the
11364outline again, but there is a much easier way: you fix the errors in the
11365external files using the compiler's editor, then run the untangle command on the
11366part of the outline that created the external file. The Untangle command updates
11367the selected outline to match the changes in the external files. It's as simple
11368as that. By the way, the Untangle command marks all the nodes in the outline
11369that it updates, and you can examine all such nodes with the Go To Next Marked
11370command in the Outline menu.
11371
11372You cannot use Untangle to update doc parts, or leading comments in code parts
11373or "trivial" whitespace in code parts. This is a limitation of the Untangle
11374command that cannot be fixed; Untangle has no way of knowing whether leading
11375comments came from doc parts or are just leading comments.
11376
11377Untangle never changes the structure of an outline; it never inserts, deletes or
11378moves nodes. Don't attempt to change the structure of an outline by modifying
11379external files; it won't work. Also, never delete, move or alter the sentinel
11380lines in external files written by the Tangle command. Such lines start with the
11381comment delimiter followed by a section name.
11382
11383If you change the section name in a sentinel line Untangle will not update the
11384code in the outline (with the old name) that generated the renamed section.
11385Untangle warns about sections that appear in an external file but not in the
11386outline. Untangle has no trouble with changed section references in external
11387files; it is only changed sentinel lines that cause problems.
11388
11389Cloned nodes that generate code in several files may cause problems for
11390Untangle. If Untangle is run separately on these external files, Untangle will
11391update all cloned nodes each time it is run, so only the code in the last
11392Untangle run will take effect. Therefore, the safe way to update text in cloned
11393nodes is to make the change in the .leo file rather than the external files.
11394</t>
11395<t tx="ekr.20050828061501.50">The @verbose, @terse, @quiet and @silent directives determine
11396how the Tangle command outputs comments in @root trees.
11397Comments written by the user in code sections are always output.
11398These directives control only:
11399a) the comments containing doc sections and
11400b) sentinel comments that delimit the beginning and end of code sections.
11401
11402When @verbose is in effect Tangle outputs all comments.
11403When @terse is in effect, Tangle outputs only those comments necessary for Untangle to work.
11404When @silent is in effect Tangle adds no additional comments.
11405The @quiet directive is like @silent except that it does output leading sentinels as comments.
11406Like @silent, @quiet inhibits untangling.
11407@verbose is the default.
11408If more than one of these directives appear in the same body text the "most verbose" of these options will be in effect.</t>
11409<t tx="ekr.20050828061501.51">The @file is a synonym for @thin. The @file directive creates an external file
11410containing sentinels.</t>
11411<t tx="ekr.20050828062751">In the following table all terms in each row are equivalent.
11412The spelling in the first column is preferred:
11413
11414=========== =============== =================
11415\@asis \@file-asis \@silent
11416----------- --------------- -----------------
11417\@nosent \@file-nosent \@nosentinelsfile
11418=========== =============== =================
11419
11420The following table summarizes the differences between
11421the various kinds of @&lt;file&gt; trees.
11422
11423+---------+------------+-------------------+
11424| | | Sections and |
11425| Type | Sentinels? | @others expanded? |
11426+---------+------------+-------------------+
11427| @asis | no | no |
11428+---------+------------+-------------------+
11429| @auto | no | no |
11430+---------+------------+-------------------+
11431| @edit | no | yes |
11432+---------+------------+-------------------+
11433| @file | yes | yes |
11434+---------+------------+-------------------+
11435| @nosent | no | yes |
11436+---------+------------+-------------------+
11437| @root | yes | yes |
11438+---------+------------+-------------------+
11439| @shadow | yes and no | yes |
11440+---------+------------+-------------------+
11441| @thin | yes | yes |
11442+---------+------------+-------------------+
11443
11444Leo can not update the outline from changes made from external files unless
11445those files contain sentinels. The primary source for @nosent and @asis trees
11446are the outlines from which those files were created.
11447
11448For @shadow trees, Leo creates *two* files, a **public** file without sentinels,
11449and a **private** file (by default in the .leo_shadow subfolder) containing
11450sentinels. The primary sources for @shadow trees are the private files, updated
11451by changes to the public file.
11452</t>
11453<t tx="ekr.20050828064254">The @others directive refers to the body text of all nodes *except* section
11454definition nodes. The @others directive places the body text of section
11455definition nodes in the external file in outline order.11195definition nodes in the external file in outline order.
1145611196
11457An @file or @thin tree may contain more than one @others directive. @others11197An external file directive tree may contain more than one ``@others`` directive. ``@others``
11458directives that descend from other @others directives refer only to unnamed11198directives that descend from other ``@others`` directives refer only to non-section
11459nodes that descend from them. The @others directive that occurs highest in the11199nodes (i.e., nodes with headlines that do not contain the patter ``&lt;&lt;`` *section* ``&gt;&gt;``)
11460@file tree refers to all other unnamed nodes.11200that descend from them. The ``@others`` directive that occurs highest in the
1146111201``@file`` tree refers to all other unnamed nodes. If ``@others`` occurs multiple in the same node, all non-section nodes appear at the location of the first instance of the ``@others`` directive; the remainder
11462**Notes**:11202are remembered as sentinels but have no other content.
1146311203</t>
11464- No node may contain more than one @others directive.11204<t tx="ekr.20050828065955.3">Generally speaking, ``@ignore`` directive prevents nodes from being processed.
1146511205
11466- No section definition node may intervene between an non-section definition11206#. In the root node of any ``@auto``, ``@edit``, ``@file``, ``@nosent``, ``@thin`` or ``@shadow`` tree,
11467 node containing body text and an @others node. In practice this is never a11207 the ``@ignore`` directive prevents Leo from writing the external file.
11468 problem.11208
1146911209#. ``@auto`` trees are an exception. Everything, including ``@ignore`` directives occuring outside the root node, are written.
11470- The @others directive is not valid in @root or @unit trees.</t>11210 However, you can disable the writing of an ``@auto`` tree by putting an ``@ignore`` directive in the root node or in an
11471<t tx="ekr.20050828065955.3">Generally speaking, @ignore directive prevents nodes from being processed.11211 ancestor of the ``@auto`` tree.
1147211212
114731. In the root node of any @auto, @edit, @file, @nosent, @root, @thin or @shadow tree, 11213#. ``@ignore`` can be used by scripts and plugins as they like, but should preserve the behavior in item 1 above.</t>
11474 the @ignore directive prevents Leo from writing the external file.
11475
114762. @auto trees are an exception. Everything, including @ignore directives, are written.
11477 However, you can disable the writing of an @auto tree by putting an @ignore directive in an
11478 ancestor of the @auto tree.
11479
114803. At present, @ignore can be used to prevent the inclusion of a node that descends from @others.
11481 This may be dubious behavior, but that's how Leo works.
11482
114834. @ignore can be used by scripts and plugins as they like, but should preserve the behavior in item 1 above.</t>
11484<t tx="ekr.20050828160132">.. External links...11214<t tx="ekr.20050828160132">.. External links...
11485.. _`CWEB`: http://www-cs-faculty.stanford.edu/~knuth/cweb.html11215.. _`CWEB`: http://www-cs-faculty.stanford.edu/~knuth/cweb.html
11486.. _`noweb`: http://www.eecs.harvard.edu/~nr/noweb/11216.. _`noweb`: http://www.eecs.harvard.edu/~nr/noweb/
1148711217
11488.. Relative links...11218.. Relative links...
11489.. _`@root reference`: directives.html#id5 11219.. _`\@root reference`: directives.html#id5
11490.. _front: front.html11220.. _front: front.html
11491.. _`Leo's tutorial`: intro.html11221.. _`Leo's tutorial`: intro.html
11492.. _`@auto reference`: directives#id111222.. _`@auto reference`: directives#id1
11493</t>11223.. _ `History of Leo`: history.html</t>
11494<t tx="ekr.20050828163557">You create and use external files using @&lt;file&gt; directives.11224<t tx="ekr.20050828163557">Differing external file directives are appropriate in different situations:
11495Most of these directives may only appear in headlines.
11496Here are all the ways of creating external files:
1149711225
11498\@asis11226\@asis
11499 This directive copies body text verbatim, without even ensuring that11227 Use this directive only when you must have complete control over
11500 newlines terminate each node. Use this directive only when you must have11228 every character of the external file: it copies body text verbatim,
11501 complete control over every character of the external file.11229 without even ensuring that newlines terminate each node.
1150211230
11503\@auto11231\@auto
11504 Imports the external file when Leo reads an outline. See the `@auto11232 Use this when you don't want sentinels and Leo's parser for your language
11505 reference`_ for full details.11233 works well. It can be tricky: see the `\@auto reference`_ for full details.
1150611234
11507\@edit11235\@edit
11508 Reads the external file into a single node.11236 Use for small files which can't have sentinels and it's ok for them to occupy a single node.
1150911237
11510\@file11238\@file
11511 As of Leo 4.7 b2, @file works exactly like @thin. See below.11239 As of Leo 4.7 b2, ``@file`` works exactly like ``@thin``. See `\@file`_
1151211240
11513\@thin11241\@thin
11514 Creates external files containing sentinels that minimize conflicts11242 Use ``@thin`` unless you have a good reason not to.
11515 in source code control systems such as bzr.
11516 Use @thin unless you have a good reason not to.
1151711243
11518\@nosent11244\@nosent
11519 Creates external files without sentinels.11245 Use ``@nosent`` only as a last resort:
11520 Use @nosent only as a last resort:11246 ``@auto`` or ``@shadow`` are usually a better choice.
11521 @auto or @shadow are usually a better choice.11247 Leo can not update ``@nosent`` trees from changes made to external files.
11522 Leo can not update @nosent trees from changes made to the external files.
11523
11524 The @bool force_newlines_in_at_nosent_bodies setting
11525 controls whether Leo writes a trailing newline if non-empty body text does not
11526 end in a newline. The default is True. In effect, the default value of this
11527 setting was False in previous versions of Leo.
11528
11529\@root
11530 This directive is the most flexible, and the most difficult to use.
11531 **Note**: @root is a true directive: you must put @root in body text.
11532 Historically, this was the first directive that created external files.
11533 It comes closest in spirit to traditional literate programming tools.
11534 However, it is seldom necessary to suffer the drawbacks of using @root.
11535 My advice is to avoid using @root unless you have a compelling reason.
1153611248
11537\@shadow11249\@shadow
11538 This directive writes *two* external files, a **public** file without sentinels,11250 Use this directive when you can't have sentinels in the **public** version
11539 and a **private** file (by default in the .leo_shadow subfolder) containing sentinels.11251 of the file, but want all the features of ``@thin`` trees. This directive writes
11540 This allows Leo to get the benefits of @thin trees,11252 *two* external files, a **public** file without sentinels, and a **private**
11541 without having sentinels in the public files that people care about.11253 file (by default in the ``.leo_shadow`` subfolder) containing sentinels.
11542
11543To complicate matters further,11254To complicate matters further,
11544you can use `CWEB`_ markup instead of `noweb`_ markup.11255you can use `CWEB`_ markup instead of `noweb`_ markup.
11545See the section called `CWEB mode`_ for the details.11256See the section called `CWEB mode`_ for the details.
11546The choice between CWEB and noweb is independent of the directive is used to create external files.</t>11257The choice between CWEB and noweb is independent of the directive is used to create external files.</t>
11547<t tx="ekr.20050828173234">The @ directive starts a doc part.11258<t tx="ekr.20050828173234">The ``@`` directive starts a doc part.
11548Doc parts continue until an @c directive or the end of the body text.11259Doc parts continue until an ``@c`` directive or the end of the body text.
11549For example::11260For example::
1155011261
11551 @ This is a comment in a doc part.11262 @ This is a comment in a doc part.
@@ -11553,49 +11264,66 @@
11553 The next line ends the doc part11264 The next line ends the doc part
11554 @c11265 @c
1155511266
11556@doc is a synonym for @, but @ is preferred.</t>11267``@doc`` is a synonym for ``@``, but ``@`` is preferred.
11557<t tx="ekr.20050828173234.1">The @c directive ends a doc part and begins a code part.11268
11558@code is a synonym for @c, but @c is preferred.11269The directive is only recognized in the first column.
1155911270
11560In @root and @unit trees, the headline must contain a valid section name.</t>11271In ``@thin`` style external files, such documentation sections appear as comments, using comment
11561<t tx="ekr.20050828174453.1">Leo writes @nosent trees just as for @thin trees,11272characters appropriate to the language, or as specified by the prevailing ``@comment`` or ``@delims``
11562but Leo writes no sentinels at all.11273directive.
1156311274
11564The @bool force_newlines_in_at_nosent_bodies setting11275A governing ``@asis``, ``@all``, ``@raw`` or ``@verbatim`` directive causes the directive
11276to be uninterpreted and simply copied to the external file.
11277</t>
11278<t tx="ekr.20050828173234.1">The ``@c`` directive ends a doc part and begins a code part.
11279``@code`` is a synonym for ``@c``, but ``@c`` is preferred.
11280
11281The directive is only recognized in the first column.
11282
11283A governing ``@asis``, ``@all``, ``@raw`` or ``@verbatim`` directive causes the directive
11284to be uninterpreted and simply copied to the external file.
11285</t>
11286<t tx="ekr.20050828174453.1">Leo writes ``@nosent`` trees just as for ``@thin`` trees, except it writes no sentinels at all.
11287All the information for the ``@nosent`` tree is kept in the .leo file,
11288and Leo incorporates no changes from the external file.
11289
11290The ``@bool force_newlines_in_at_nosent_bodies`` setting
11565controls whether Leo writes a trailing newline if non-empty body text does not11291controls whether Leo writes a trailing newline if non-empty body text does not
11566end in a newline. The default is True. In effect, the default value of this11292end in a newline. The default is True. In effect, the default value of this
11567setting was False in previous versions of Leo.</t>11293setting was False in previous versions of Leo.
11568<t tx="ekr.20050828174453.2">Leo creates files from @asis trees by writing the body text of all nodes of the11294</t>
11569tree in outline order. Leo writes the body text *as is*, without recognizing11295<t tx="ekr.20050828174453.2">Leo creates files from ``@asis`` trees by writing the body text of all nodes of the
11296``@asis`` tree in outline order. Leo writes the body text *as is*, without recognizing
11570section definitions, without expanding section references, and without treating11297section definitions, without expanding section references, and without treating
11571directives specially in any way. In particular, Leo copies all directives,11298directives specially in any way. In particular, Leo copies all directives,
11572including @ or @c directives, to the external file as text.11299including ``@`` or ``@c`` directives, to the external file as text.
1157311300
11574Leo does recognize the @ignore directive in the *ancestors* of @asis nodes, so11301Leo does recognize the ``@ignore`` directive in the *ancestors* of ``@asis`` nodes, so
11575you may use the @ignore directive as usual to prevent Leo from writing @asis11302you may use the ``@ignore`` directive as usual to prevent Leo from writing ``@asis``
11576trees.11303trees.
1157711304
11578**Notes**:11305**Notes**:
1157911306
11580- Within @asis trees only, if a headline starts with @@, Leo writes11307- Within ``@asis`` trees only, if a headline starts with ``@@``, Leo writes
11581 everything in the headline following the @@ just before the corresponding11308 everything in the headline following the ``@@`` just before the corresponding
11582 body text.11309 body text.
1158311310
11584- Files created from @asis trees contain *nothing* not contained in body11311- Files created from ``@asis`` trees contain *nothing* not contained in body
11585 text (or @@ headlines). In particular, if body text does not end in a11312 text (or ``@@`` headlines). In particular, if body text does not end in a
11586 newline, the first line from the next node will concatenated to the last line11313 newline, the first line from the next node will concatenated to the last line
11587 of the preceding node.</t>11314 of the preceding node.
11588<t tx="ekr.20050828210721">The @last directive allows you to place lines at the very end of external files11315</t>
11589created from @file and @thin nodes. The @last directive is recognized only at11316<t tx="ekr.20050828210721">The ``@last`` directive allows you to place lines at the very end of external files (except those
11590the end of body text of @file and @thin nodes. No text may follow @last11317specified with ``@asis``). The ``@last`` directive is recognized only at
11591directives. More than one @last directive may exist. For example, here is how a11318the end of body text of the external file directive (e.g., the ``@thin`` node). No text may follow ``@last``
11319directives. More than one ``@last`` directive may exist. For example, here is how a
11592PHP file might be set up::11320PHP file might be set up::
1159311321
11594 @first &lt;?php11322 @first &lt;?php
11595 ...11323 ...
11596 @last ?&gt;</t>11324 @last ?&gt;</t>
11597<t tx="ekr.20050828210721.1">The @pagewidth directive overrides the page_width setting.11325<t tx="ekr.20050828210721.1">The ``@pagewidth`` directive overrides the ``@int page_width`` setting.
11598The form of the @pagewidth directive is @pagewidth *n*,11326The form of the ``@pagewidth`` directive is ``@pagewidth`` *n*,
11599where n is a positive integer that indicates the width of tangled pages in columns.11327where n is a positive integer that indicates the width of tangled pages in columns.
11600For example::11328For example::
1160111329
@@ -11604,8 +11332,8 @@
11604This setting only affects how Leo reformats doc parts, and how the Tangle command outputs block comments.11332This setting only affects how Leo reformats doc parts, and how the Tangle command outputs block comments.
1160511333
11606</t>11334</t>
11607<t tx="ekr.20050828210721.2">The @tabwidth directive overrides the tab_width setting.11335<t tx="ekr.20050828210721.2">The ``@tabwidth`` directive overrides the ``@int tab_width`` setting.
11608The form of the @tabwidth directive is @tabwidth *n*,11336The form of the ``@tabwidth`` directive is ``@tabwidth`` *n*,
11609where n is a positive integer that indicates the width of tabs in spaces.11337where n is a positive integer that indicates the width of tabs in spaces.
11610For example::11338For example::
1161111339
@@ -11613,101 +11341,7 @@
1161311341
11614Negative values cause Leo to convert tabs to blanks.</t>11342Negative values cause Leo to convert tabs to blanks.</t>
11615<t tx="ekr.20050828211507">Here is a brief summary of each directive:11343<t tx="ekr.20050828211507">Here is a brief summary of each directive:
1161611344</t>
11617- **\@**
11618 Starts a doc part. @doc is a deprecated synonym.
11619
11620- **\@all**
11621 Copies *all* descendant nodes to the external file.
11622 Not valid in @root trees.
11623
11624- **\@asis**
11625 Creates an external file without sentinels,
11626 containing exactly the data in the @asis tree,
11627 without expanding section references or @others directives.
11628
11629- **\@auto**
11630 Imports the external file every time Leo reads the outline.
11631 The read-at-auto-nodes and write-at-auto-nodes commands can
11632 be used to read and write and @auto nodes.
11633
11634- **\@c**
11635 Starts a code part. @code is a deprecated synonym.
11636
11637- **\@color**, **\@nocolor**, **\@nocolor-node** and **\@killcolor**
11638 Control syntax coloring.
11639
11640- **\@comment**
11641 Sets comment delimiters in @root and @unit trees.
11642
11643- **\@delims**
11644 Sets comment delimiters in @thin and @file trees.
11645
11646- **\@edit**
11647 Reads an external file into a single node.
11648
11649- **\@encoding**
11650 Sets the Unicode encoding used in external files.
11651
11652- **\@file**
11653 A synonym for @thin.
11654
11655- **\@first**
11656 Forces lines to appear before the first sentinel of an external file.
11657
11658- **\@ignore**
11659 Causes Leo to ignore all or part of an external file.
11660
11661- **\@language**
11662 Sets the language used for syntax coloring **and**
11663 sets the comment delimiters used in sentinel lines and in doc parts.
11664
11665- **\@last**
11666 Forces lines to appear after the last sentinel of an external file.
11667
11668- **\@lineending**
11669 Sets the line ending to be used in external files.
11670
11671- **\@others**
11672 Copies all nodes *except* section definition nodes to the external file.
11673
11674- **\@nosent**
11675 Same as @thin, but the external file contains no sentinels.
11676
11677- **\@pagewidth**
11678 Sets the page width used to break doc parts into lines.
11679
11680- **\@path**
11681 Set the path to be appended to filenames.
11682
11683- **\@raw** and **\@end_raw**
11684 Delimit a section of 'raw' text.
11685 Not valid in @root or @unit trees.
11686
11687- **\@root**, **\@root-code** and **\@root-code**
11688 Start an @root tree.
11689 The last two forms set the starting mode for body text.
11690 These directives must appear in body text.
11691
11692- **\@shadow**
11693 Creates two external files, a **public** file without sentinels,
11694 and a **private** file containing sentinels.
11695 Imports the file just as @auto does if the private file does not exist.
11696
11697- **\@tabwidth**
11698 Sets the width of tabs.
11699 Negative tab widths cause Leo to convert tabs to spaces.
11700
11701- **\@thin**
11702 Creates an external file containing sentinels.
11703 Thin external files miminize cvs and bzr conflicts.
11704 All essential information is stored in the thin external file.
11705
11706- **@verbose**, **@terse**, **@quiet** and **@silent**
11707 Set the verbosity of sentinels in external files from @root.
11708
11709- **\@wrap** and **\@nowrap**
11710 Enable or disable line wrapping the Leo's body pane.</t>
11711<t tx="ekr.20050830074716">###################################11345<t tx="ekr.20050830074716">###################################
11712What People Are Saying About Leo11346What People Are Saying About Leo
11713###################################11347###################################
@@ -12199,7 +11833,7 @@
12199layers simultaneously: data structures, object structure, entity-relationship11833layers simultaneously: data structures, object structure, entity-relationship
12200structure, client-server structure, design pattern structure, temporal11834structure, client-server structure, design pattern structure, temporal
12201structure, project management structure, and any other structure relevant to the11835structure, project management structure, and any other structure relevant to the
12202system." -- Steven P. Schaefer11836system." -- Stephen P. Schaefer
1220311837
12204"A funny observation with Leo is that when I 'Leo-ise' other people's code, Leo11838"A funny observation with Leo is that when I 'Leo-ise' other people's code, Leo
12205makes the code's structure so transparent that design faults become very quickly11839makes the code's structure so transparent that design faults become very quickly
@@ -12608,7 +12242,7 @@
12608The C compiler is happy: the C preprocessor strips out the offending line before the C12242The C compiler is happy: the C preprocessor strips out the offending line before the C
12609compiler gets it.</t>12243compiler gets it.</t>
12610<t tx="ekr.20050830115714.26"></t>12244<t tx="ekr.20050830115714.26"></t>
12611<t tx="ekr.20050830115714.29">See the instructions are in LeoPy.leo in::12245<t tx="ekr.20050830115714.29">The instructions are in LeoPy.leo in::
1261212246
12613 Notes:How To:How to add support for a new language section.12247 Notes:How To:How to add support for a new language section.
1261412248
@@ -24264,102 +23898,6 @@
2426423898
24265- Added @bool big_outline_pane setting. False (legacy): Top pane contains outline and log panes.23899- Added @bool big_outline_pane setting. False (legacy): Top pane contains outline and log panes.
24266 True: Top pane contains only the outline pane. Bottom pane contains body and log panes.</t>23900 True: Top pane contains only the outline pane. Bottom pane contains body and log panes.</t>
24267<t tx="ekr.20070814090306">@auto trees allow people to use Leo in collaborative environments without using
24268sentinels in the files Leo generates. In contrast to @nosent, @auto trees can
24269change when the corresponding file changes outside of Leo.
24270
24271Leo will automatically recreate (import) all @auto trees when reading a .leo
24272file, and will write all dirty @auto trees when saving a .leo file. There are
24273two exceptions to this statement:
24274
242751. Leo will never read (import) or write an @auto tree if
24276the root @auto tree is under the influence of an @ignore directive.
24277
242782. Saving a .leo file does not save @auto nodes if:
24279
24280a) they haven't been changed or,
24281
24282b) they do not contain a **significant** amount of information. An @auto tree
24283 contains a significant amount of information if it has children or if the
24284 root node contains more than 10 characters.
24285
24286Leo creates @auto trees by parsing the corresponding external file. Parsers
24287create descendant nodes of the @auto tree: one node for each class, method and
24288function in the external file.
24289
24290Parsers presently exist for C, elisp, Java, Javascript, Pascal, PHP, Python and xml. Leo
24291determines the language using the file's extension. Notes:
24292
24293- If no parser exists for a language, the entire body of the external file is
24294 copied to the body of the @auto node.
24295
24296- Javascript regexps that look like section references cause problems, but that
24297 can not be helped.
24298
24299- Use the @data import_xml_tags setting in leoSettings.leo to specify the xml
24300 tags that create outline nodes. By default, the **organizer tags** are html,
24301 body, head, and div.</t>
24302<t tx="ekr.20070814090306.2">Leo performs several checks to ensure that the result of importing an external
24303file will be equivalent to the file that writing the @auto tree would produce.
24304
24305These checks can produces **errors** or **warnings**. Errors indicate a
24306potentially serious problem. Leo inserts an @ignore directive in the @auto tree
24307if any error is found. This @ignore directive prevents the @auto tree from
24308modifying the external file. If you @ignore directive, a later write of the
24309@auto tree will attempt to fix the problems that gave rise to the errors. There
24310are no guarantees however.
24311
24312Before importing a file, Leo **regularizes** the leading whitespace of all lines
24313of the original source file. That is, Leo converts blanks to tabs or tabs to
24314blanks depending on the value of the @tabwidth directive in effect for the @auto
24315node. Leo also checks that the indentation of any non-blank line is not a
24316multiple of the indentation specified by the @tabwidth directive in effect for
24317the @auto node.
24318
24319Leo cannot guarantee to reproduce the original source file exactly if problems
24320are discovered while regularizing leading whitespace. **Strict languages** are
24321languages such as Python for which leading whitespace must be preserved exactly
24322as it appears in the original source file. Problems during regularizing generate
24323errors for strict languages and warnings for non-strict languages.
24324
24325After importing a file, Leo verifies that writing the @auto node would create
24326*exactly* the same file as the original file. Such file comparison mismatches
24327generate errors unless the problem involves only leading whitespace for
24328non-strict languages. Whenever a mismatch occurs the first non-matching line is
24329printed.
24330
24331File comparison mismatches can arise for several reasons:
24332
243331. Bugs in the import parsers. Please report any suspected bugs immediately.
24334
243352. Underindented lines in classes, methods or function. An **underindented
24336 line** is a line that is indented less then the starting line of the class,
24337 method or function in which it appears. Leo outlines can not represent such
24338 lines exactly: every line of node implicitly has at least the indentation of
24339 any unindented line of the node.
24340
24341Leo will issue a warning (not an error) for underindented Python comment lines.
24342Such lines can not change the meaning of Python programs.</t>
24343<t tx="ekr.20070814090306.3">Three commands in the File:Read/Write menu allow you to manually read and
24344write @auto nodes from the presently selected outline. As always, an @ignore
24345directive in the @auto node or its ancestors will suppress any of these
24346commands:
24347
24348- The Read @auto Nodes (read-at-auto-nodes) command reads all @auto nodes in the
24349 presently selected outline. An @ignore directive will suppress this import.
24350
24351- The Write @auto Nodes (write-at-auto-nodes) command writes all @auto nodes. An
24352 @ignore directive will suppress this import. Caution: the write will occur even
24353 if Leo has not previously read the @auto node.
24354
24355- The Write Dirty @auto Nodes (write-dirty-at-auto-nodes) is the same as the
24356 write-at-auto-nodes command, except that only changed @auto trees are written.
24357
24358Most users will rarely use these explicit commands, because reading and writing
24359.leo files handles @auto nodes well enough. However, you can use the
24360read-at-auto-nodes command to update @auto nodes without having to reload the
24361.leo file.
24362</t>
24363<t tx="ekr.20070814104719">You enable or disable plugins using @enabled-plugins nodes in leoSettings files (leoSettings.leo, myLeoSettings.leo or the .leo file being loaded). See `Specifying settings`_ for full details of settings files.23901<t tx="ekr.20070814104719">You enable or disable plugins using @enabled-plugins nodes in leoSettings files (leoSettings.leo, myLeoSettings.leo or the .leo file being loaded). See `Specifying settings`_ for full details of settings files.
2436423902
24365The body text of the @enabled-plugins node contains a list of enabled plugins.23903The body text of the @enabled-plugins node contains a list of enabled plugins.
@@ -27176,9 +26714,6 @@
27176actually not visible lines, but the second time you drag something in26714actually not visible lines, but the second time you drag something in
27177it's ok, as if it has an accurate count on visible lines now.26715it's ok, as if it has an accurate count on visible lines now.
27178</t>26716</t>
27179<t tx="ekr.20080729064227.3">The @unit directive expands the scope of section definitions in @root trees
27180so that a section may be referenced in several @root trees.
27181The @unit directive is ignored outside of @root trees.</t>
27182<t tx="ekr.20080729064227.6">The timit button in unitTest.leo allows you to apply Python's timeit module.26717<t tx="ekr.20080729064227.6">The timit button in unitTest.leo allows you to apply Python's timeit module.
27183See http://docs.python.org/lib/module-timeit.html.26718See http://docs.python.org/lib/module-timeit.html.
27184The contents of @button timer is::26719The contents of @button timer is::
@@ -27305,28 +26840,28 @@
27305please study the x.propagate_changed_lines method in leoShadow.py. This code is26840please study the x.propagate_changed_lines method in leoShadow.py. This code is
27306heavily commented.26841heavily commented.
27307</t>26842</t>
27308<t tx="ekr.20080730212711.41">When writing an @shadow tree, Leo writes *two* files, a **public** file without26843<t tx="ekr.20080730212711.41">When writing an ``@shadow`` tree, Leo writes *two* files, a **public** file without
27309sentinels, and a **private** file (by default in the .leo_shadow subfolder)26844sentinels, and a **private** file (by default in the ``.leo_shadow`` subfolder)
27310containing sentinels. The primary sources for @shadow trees are the private26845containing sentinels. The primary sources for ``@shadow`` trees are the private
27311files, updated by changes to the public file.26846files, updated by changes to the public file.
2731226847
27313When reading an @shadow tree, Leo will import the tree from the public file if26848When reading an ``@shadow`` tree, Leo will import the tree from the public file if
27314the private file does not exist. **Important**: just as for @auto, the following26849the private file does not exist. **Important**: just as for ``@auto``, the following
27315exceptions apply:26850exceptions apply:
2731626851
273171. Leo will never read (import) or write an @shadow tree if the @shadow tree is268521. Leo will never read (import) or write an ``@shadow`` tree if the ``@shadow`` tree is
27318 under the influence of an @ignore directive.26853 under the influence of an ``@ignore`` directive.
2731926854
273202. Saving a .leo file does not save @shadow nodes if:268552. Saving a .leo file does not save ``@shadow`` nodes if:
2732126856
27322 a) they haven't been changed or,26857 a) they haven't been changed or,
2732326858
27324 b) they do not contain a **significant** amount of information. An @auto tree26859 b) they do not contain a **significant** amount of information. An ``@auto`` tree
27325 contains a significant amount of information if it has children or if the26860 contains a significant amount of information if it has children or if the
27326 root node contains more than 10 characters.26861 root node contains more than 10 characters.
2732726862
27328Leo imports shadow trees by parsing the corresponding public file, exactly as is26863Leo can do an initial import of ``@shadow`` trees by parsing the corresponding public file, exactly as is
27329done for @auto node. See the discussion of @auto above for details.26864done for ``@auto`` node. See the discussion of `\@auto`_ for details.
27330</t>26865</t>
27331<t tx="ekr.20080730212711.42">The first step in creating an @shadow tree is to create a node whose headline is26866<t tx="ekr.20080730212711.42">The first step in creating an @shadow tree is to create a node whose headline is
27332@shadow *&lt;filename&gt;*. This is always safe, even if *&lt;filename&gt;* already26867@shadow *&lt;filename&gt;*. This is always safe, even if *&lt;filename&gt;* already
@@ -27350,64 +26885,65 @@
27350**Note**: just as for @auto, Leo will never read (import) or write an @shadow tree if26885**Note**: just as for @auto, Leo will never read (import) or write an @shadow tree if
27351the @shadow node is under the influence of an @ignore directive.26886the @shadow node is under the influence of an @ignore directive.
27352</t>26887</t>
27353<t tx="ekr.20080730212711.44">Creates an external file containing sentinels. Thin exteral files contain all26888<t tx="ekr.20080730212711.44">Create an external file containing sentinels. An ``@thin`` external file contains all the
27354information needed to recreate the @thin tree in the outline. The @all directive26889information needed to recreate the ``@thin`` tree in the outline. In a collaborative environment,
27355is valid only in @thin trees, not @file trees. In a collaborative environment,
27356where a version control system is utilized and everyone can use Leo for editing,26890where a version control system is utilized and everyone can use Leo for editing,
27357@thin is the recommended way to hold most of the content.26891``@thin`` is the recommended way to hold most of the content.
27358</t>26892</t>
27359<t tx="ekr.20080730212711.47">@auto trees allow people to use Leo in collaborative environments without using26893<t tx="ekr.20080730212711.47">``@auto`` trees allow people to use Leo in collaborative environments without using
27360sentinels in the files Leo generates. In contrast to @nosent, @auto trees can26894sentinels in the files Leo generates. In contrast to ``@nosent``, ``@auto`` trees can
27361change when the corresponding file changes outside of Leo.26895change when the corresponding file changes outside of Leo.
2736226896
27363Leo will automatically recreate (import) all @auto trees when reading a .leo26897Leo automatically recreates (imports) all ``@auto`` trees when reading a .leo
27364file, and will write all dirty @auto trees when saving a .leo file. There are26898file, and writes all dirty ``@auto`` trees when saving a .leo file. There are
27365two exceptions to this statement:26899two exceptions to this statement:
2736626900
273671. Leo will never read (import) or write an @auto tree if269011. Leo never reads (imports) or writes an ``@auto`` tree if
27368the root @auto tree is under the influence of an @ignore directive.26902the root ``@auto`` tree is under the influence of an ``@ignore`` directive.
2736926903
273702. Saving a .leo file does not save @auto nodes if:269042. Saving a .leo file does not save ``@auto`` nodes if:
2737126905
27372a) they haven't been changed or,26906a) they haven't changed or,
2737326907
27374b) they do not contain a **significant** amount of information. An @auto tree26908b) they do not contain a **significant** amount of information. An ``@auto`` tree
27375 contains a significant amount of information if it has children or if the26909 contains a significant amount of information if it has children or if the
27376 root node contains more than 10 characters.26910 root node contains more than 10 characters.
2737726911
27378Leo creates @auto trees by parsing the corresponding external file. Parsers26912Leo creates ``@auto`` trees by parsing the corresponding external file. Parsers
27379create descendant nodes of the @auto tree: one node for each class, method and26913create descendant nodes of the @auto tree: one node for each class, method and
27380function in the external file.26914function in the external file, and sometimes nodes for declarations, docstrings
26915or other recognized components.
2738126916
27382Parsers presently exist for C, elisp, Java, Javascript, Pascal, PHP, Python and xml. Leo26917Parsers presently exist for C, elisp, Java, Javascript, Pascal, PHP, Python and xml. Leo
27383determines the language using the file's extension. Notes:26918determines the language using the file's extension. Notes:
2738426919
27385- If no parser exists for a language, the entire body of the external file is26920- If no parser exists for a language, Leo copies the entire body of the external file into the ``@auto`` node.
27386 copied to the body of the @auto node.26921
2738726922- Javascript regexps that look like section references are dealt with using the ``@verbatim`` directive
27388- Javascript regexps that look like section references cause problems, but that26923 which suppresses all directive interpretation in the single immediately following line
27389 can not be helped.26924 (the colorizer may remain confused).
2739026925
27391- Use the @data import_xml_tags setting in leoSettings.leo to specify the xml26926- Use the ``@data import_xml_tags`` setting to specify the xml
27392 tags that create outline nodes. By default, the **organizer tags** are html,26927 tags that create outline nodes. By default, the **organizer tags** are html,
27393 body, head, and div.</t>26928 body, head, and div.
27394<t tx="ekr.20080730212711.51">The @root directive creates external files that are more flexible than @file,26929</t>
26930<t tx="ekr.20080730212711.51">The \@root directive creates external files that are more flexible than @file,
27395@thin, @shadow, etc. The @root directive must appear in body text, not the headline.26931@thin, @shadow, etc. The @root directive must appear in body text, not the headline.
2739626932
27397- Sections may be defined anywhere within @root trees.26933- Sections may be defined anywhere within \@root trees.
27398 Moreover, the @unit directive expands the scope of section definitions in @root trees26934 Moreover, the @unit directive expands the scope of section definitions in \@root trees
27399 so that a section may be referenced in several @root trees.26935 so that a section may be referenced in by any \@root trees beneath the @unit directive.
2740026936
27401- The meaning of section definitions in @root trees are independent of their position within the tree.26937- The meaning of section definitions in @root trees are independent of their position within the tree.
2740226938
27403However, this flexibility comes at a cost:26939However, this flexibility comes at a cost:
2740426940
27405- @thin and @file trees use less markup than @root trees.26941- @thin and @file trees use less markup than @root trees.
27406 In particular, the @others directive is valid only within @file and @thin trees.26942 In particular, the \@others directive is valid only within @file and @thin trees.
2740726943
27408- You must explicitly tangle and untangle @root trees using the Tangle and Untangle commands.26944- You must explicitly tangle and untangle \@root trees using the Tangle and Untangle commands.
2740926945
27410See `@root reference`_ for more details.</t>26946See `\@root reference`_ for more details.</t>
27411<t tx="ekr.20080730212711.52">There is one boundary case that the update algorithm can not resolve.26947<t tx="ekr.20080730212711.52">There is one boundary case that the update algorithm can not resolve.
27412If a line is inserted at the boundary between nodes,26948If a line is inserted at the boundary between nodes,
27413the updated algorithm can not determine whether the line should be inserted26949the updated algorithm can not determine whether the line should be inserted
@@ -28432,22 +27968,15 @@
2843227968
28433- color is a tk color name, even when using the qt gui plugin.27969- color is a tk color name, even when using the qt gui plugin.
28434</t>27970</t>
28435<t tx="ekr.20090307063422.4">Reads a file into a single node.27971<t tx="ekr.20090307063422.4">Read a file into a single node.
28436@edit is similar to @auto; saving a .leo file does not save dirty @edit nodes27972``@edit`` is similar to ``@auto`` in that saving a .leo file does not save a dirty ``@edit`` node
28437if they do not contain a **significant** amount of information. An @edit tree27973unless it contains a **significant** amount of information. An ``@edit`` tree
28438contains a significant amount of information if it has children or if the root27974contains a significant amount of information if it has children or if the root
28439node contains more than 10 characters.27975node contains more than 10 characters. In and ``@edit`` tree, Leo interprets text generation and tree walk
27976directives in the manner of an ``@file`` or ``@thin`` subtree, but any such structure is lost
27977once you close the leo window.
27978
28440</t>27979</t>
28441<t tx="ekr.20090307063422.7">Initially, Leo's File:Open command creates such nodes when opening any
28442non-.leo file.
28443
28444When writing @edit nodes, Leo uses Leo's @auto write logic. That is,
28445no sentinels are written.
28446
28447When reading @edit nodes, Leo just puts then entire text of the file
28448into the node, along with @language or @nocolor directives as
28449appropriate. These added directives will not change the file when it
28450gets written because no sentinels are written.</t>
28451<t tx="ekr.20090324085713.2">Leo 4.6 beta 1 March 23, 200927980<t tx="ekr.20090324085713.2">Leo 4.6 beta 1 March 23, 2009
2845227981
28453Leo 4.6 b1 is now available at:27982Leo 4.6 b1 is now available at:
@@ -29247,6 +28776,8 @@
29247 python configure.py 28776 python configure.py
29248 make28777 make
29249 sudo make install28778 sudo make install
28779
28780 E: If you have a pre-packaged way to install these libraries, please contribute!
29250</t>28781</t>
29251<t tx="ekr.20090705111443.10370">Leo sends more detailed error messages to stderr,28782<t tx="ekr.20090705111443.10370">Leo sends more detailed error messages to stderr,
29252the output stream that goes to the console window. In Linux and MacOS28783the output stream that goes to the console window. In Linux and MacOS
@@ -31173,7 +30704,7 @@
31173commands`_ that apply to the body pane.30704commands`_ that apply to the body pane.
31174</t>30705</t>
31175<t tx="ekr.20091130111843.6817">A **clone** is a node that appears in more than one place in a Leo outline.30706<t tx="ekr.20091130111843.6817">A **clone** is a node that appears in more than one place in a Leo outline.
31176Clones are marked with a small red arrow in the icon box. All clones of a node30707Clones are marked with a small red circular arrow in the icon box. All clones of a node
31177are actually *the same node*, so any change to one clone affects all clones. For30708are actually *the same node*, so any change to one clone affects all clones. For
31178example, inserting, moving or deleting any child of a clone will change all30709example, inserting, moving or deleting any child of a clone will change all
31179other clones on the screen.30710other clones on the screen.
@@ -31366,7 +30897,7 @@
31366 outside of Leo, Leo will update the corresponding \@thin tree to reflect those30897 outside of Leo, Leo will update the corresponding \@thin tree to reflect those
31367 changes when Leo next opens the outline.30898 changes when Leo next opens the outline.
3136830899
31369- When you save your outline, Leo writes all **dirty** \@thin nodes. An \@thin30900- When you save your outline, Leo writes all **dirty** \@thin nodes. An \@thin node
31370 is dirty if the node or any of its descendant nodes has changed.30901 is dirty if the node or any of its descendant nodes has changed.
31371 **Important**: When Leo writes an external file, Leo writes all the essential30902 **Important**: When Leo writes an external file, Leo writes all the essential
31372 information in the \@thin tree to the external file, *not* to the .leo file.30903 information in the \@thin tree to the external file, *not* to the .leo file.
@@ -34574,6 +34105,467 @@
34574containing the body text's cursor, **fcol** shows the cursor coordinate34105containing the body text's cursor, **fcol** shows the cursor coordinate
34575relative to the external file, not to the curent node. The relation34106relative to the external file, not to the curent node. The relation
34576**fcol &gt;= col** is always true.</t>34107**fcol &gt;= col** is always true.</t>
34108<t tx="sps.20100504170836.13115"></t>
34109<t tx="sps.20100504170836.13116"></t>
34110<t tx="sps.20100504170836.13117"></t>
34111<t tx="sps.20100504170836.13118">@language python
34112import os
34113pos = c.find_h("Users Guide")[0]
34114c.selectPosition(pos)
34115c.k.simulateCommand('rst3')
34116&lt;&lt; html manual &gt;&gt;
34117&lt;&lt; pdf manual &gt;&gt;
34118</t>
34119<t tx="sps.20100504170836.13120">d = c.scanAllDirectives(p)
34120mandir = d.get('path') + "/html"
34121g.es(mandir)
34122os.chdir(mandir)
34123os.system('make html')</t>
34124<t tx="sps.20100504170836.13122"># you probably need to install several packages
34125# to create pdf (e.g. jadetex)
34126mandir = d.get('path') + "/html"
34127g.es(mandir)
34128os.chdir(mandir)
34129os.system('make latex')
34130os.chdir('_build/latex')
34131os.system('make all-pdf')
34132</t>
34133<t tx="sps.20100506030816.13127">Leo has an initially bewildering array of ways to turn outlines into external files. This history, simplified to the point of inaccuracy, may help you decide which of the varieties are appropriate to your project. For a better and more detailed history, see `History of Leo`_.
34134
34135The original external file directive was ``@root``, which has gone through several sets of semantics, and
34136is about to change again, so it will not be described here until those semantics are settled.
34137
34138Patterns in how ``@root`` trees were used suggested a different and easier way of deriving code from the outline: ``@file``. This directive occurs in the headline. Instead of explicitly naming each section, just put an ``@others`` directive where you want all the otherwise unplaced child sections collected; if you want a section put in a more specific place, specifying ``&lt;&lt;`` *section* ``&gt;&gt;`` will put it at that location in the body, and consequently require that ``&lt;&lt;`` *section* ``&gt;&gt;`` appear as a child headline defining that section. The other innovation with ``@file`` is what happens when Leo starts: there is an immediate "untangle" of each ``@file``, thus incorporating changes from outside Leo into Leo's model of the file. Correspondingly, when Leo exits, you're prompted to "save" (tangle) any altered ``@file`` (including alterations to child nodes).
34139
34140The next mutation was ``@thin``. ``@file`` created source code with sentinels containing almost, but not all, of what was needed to recreate the outline for the ``@file``. That same information was in the .leo file. Situations could arise where that information was inconsistent, and create headaches. ``@thin`` was like ``@file``, except that *everything* needed to create the ``@thin`` outline goes into the sentinels, and *does not* go into the Leo file, thus severely reducing opportunities for inconsistency. This has been so successful that the old ``@file`` directive now forcibly converts ``@file`` derived source code to ``@thin`` style sentinels, and otherwise acts as a synonym for ``@thin``. (Beware, however, if you use both pre-4.7 and 4.7 *et post* versions of Leo with ``@file``: change each ``@file`` headline to ``@thin`` immediately, else the incompatible sentinels for ``@file`` between the versions will be most painful.)
34141
34142If you look at source code managed with ``@thin``, the sentinels will stand silently in their commented multitudes - which may be reassuring to the Leo user, but appear to the non-Leo reader as a massive invasion. The sentinels are almost necessary for pulling in changes from external files, but if those sentinels are banished, any number of compromise approaches can be imagined - and most of them seem to have been implemented. All these directives can appear in a headline and create files without sentinels:
34143
34144\@auto
34145 parses the external file to put language apppropriate nodes (modules, classes, methods, functions...) into an @thin-like outline
34146
34147\@asis
34148 does a strict tree walk to generate the file, ignoring ``@others`` and ``&lt;&lt;`` *section* ``&gt;&gt;`` references, keeps everything in the .leo file and ignores changes from outside Leo
34149
34150\@edit
34151 honors markup directives like ``@others`` when writing the external file, but when opening the .leo file, the contents of the external file all go into one node, which *might* have a language directive (e.g., ``@language python``), but never any children
34152
34153\@nosent
34154 writes files honoring the directives in the manner of ``@thin``, keeps copies of everything in the Leo file, and ignores changes introduced into the external file
34155
34156\@shadow
34157 reads and writes two versions of each file, one without sentinels, and a hidden one with sentinels as if it were ``@thin``, then uses the sentinels in the hidden file to make sense of externally introduced changes to the unsentineled file
34158
34159There are subtleties and crucial details to each of these external file generation directives: read the descriptive sections carefully.</t>
34160<t tx="sps.20100506153234.13364">These file directives are valid only in headlines, with the exception of ``@path``, which may appear in both a headline or a body.
34161
34162In the following table all terms in each row are equivalent.
34163The spelling in the first column is preferred:
34164
34165=========== =============== =================
34166\@asis \@file-asis \@silent
34167----------- --------------- -----------------
34168\@nosent \@file-nosent \@nosentinelsfile
34169=========== =============== =================
34170
34171The following table summarizes the differences between
34172the various kinds of external file directives.
34173
34174+---------+------------+-------------------+
34175| | | Sections and |
34176| Type | Sentinels? | @others expanded? |
34177+---------+------------+-------------------+
34178| @asis | no | no |
34179+---------+------------+-------------------+
34180| @auto | no | no |
34181+---------+------------+-------------------+
34182| @edit | no | yes |
34183+---------+------------+-------------------+
34184| @file | yes | yes |
34185+---------+------------+-------------------+
34186| @nosent | no | yes |
34187+---------+------------+-------------------+
34188| @shadow | yes and no | yes |
34189+---------+------------+-------------------+
34190| @thin | yes | yes |
34191+---------+------------+-------------------+
34192
34193The ``@all`` directive in any environment supercedes ``@others`` and section expansion.
34194
34195Leo can not update the outline from changes made from external files unless
34196those files contain sentinels. The primary source for ``@nosent`` and ``@asis`` trees
34197are the outlines from which those files were created.
34198
34199For ``@shadow`` trees, Leo creates *two* files, a **public** file without sentinels,
34200and a **private** file (by default in the ``.leo_shadow`` subfolder) containing
34201sentinels. The primary sources for ``@shadow`` trees are the private files, updated
34202by changes to the public file.
34203</t>
34204<t tx="sps.20100506153234.13365"></t>
34205<t tx="sps.20100506153234.13366"></t>
34206<t tx="sps.20100506153234.13367"></t>
34207<t tx="sps.20100506153234.13369">In the ``@auto``, ``@edit``, ``@file``, ``@nosent``, ``@shadow`` and ``@thin`` trees, ``&lt;&lt;`` *section* ``&gt;&gt;`` in the headline specifies that this node and its descendants define a named section; in the body of a node, it specifies the location at which the text of a named section (defined in a child node) is to be interpolated.
34208
34209As with nearly all other directives, sections are ignored in ``@asis`` trees or when governed by ``@all``.
34210</t>
34211<t tx="sps.20100507011942.13175">- **\@color**, **\@nocolor**, **\@nocolor-node** and **\@killcolor**
34212 Control syntax coloring.
34213
34214- **\@wrap** and **\@nowrap**
34215 Enable or disable line wrapping the Leo's body pane.
34216</t>
34217<t tx="sps.20100507011942.13176"></t>
34218<t tx="sps.20100507011942.13177">- **\@asis**
34219 Creates an external file without sentinels,
34220 containing exactly the data in the ``@asis`` tree,
34221 without expanding section references or ``@others`` directives.
34222
34223- **\@auto**
34224 Imports the external file every time Leo reads the outline.
34225 The ``read-at-auto-nodes`` and ``write-at-auto-nodes`` commands can
34226 be used to read and write and ``@auto`` nodes.
34227
34228- **\@edit**
34229 Reads an external file into a single node.
34230
34231- **\@file**
34232 A synonym for ``@thin``.
34233
34234- **\@nosent**
34235 Same as ``@thin``, but the external file contains no sentinels.
34236
34237- **\@path**
34238 Set the path to be appended to filenames (influences all child external file directives).
34239
34240- **\@shadow**
34241 Creates two external files, a **public** file without sentinels,
34242 and a **private** file containing sentinels.
34243 Imports the file just as ``@auto`` does if the private file does not exist.
34244
34245- **\@thin**
34246 Creates an external file containing sentinels.
34247 Thin external files miminize cvs and bzr conflicts.
34248 All essential information is stored in the thin external file.
34249</t>
34250<t tx="sps.20100507011942.13178">- **\@**
34251 Starts a doc part. ``@doc`` is a deprecated synonym.
34252
34253- **\@c**
34254 Starts a code part. ``@code`` is a deprecated synonym.
34255
34256- **\@comment**
34257 Sets comment delimiters.
34258
34259- **\@delims**
34260 Sets comment delimiters in ``@thin`` and ``@file`` trees.
34261
34262- **\@encoding**
34263 Sets the Unicode encoding used in external files.
34264
34265- **\@first**
34266 Forces lines to appear before the first sentinel of an external file.
34267
34268- **\@last**
34269 Forces lines to appear after the last sentinel of an external file.
34270
34271- **\@language**
34272 Sets the language used for syntax coloring **and**
34273 sets the comment delimiters used in sentinel lines and in doc parts.
34274
34275- **\@lineending**
34276 Sets the line ending to be used in external files.
34277
34278- **\@pagewidth**
34279 Sets the page width used to break doc parts into lines.
34280
34281- **\@raw** and **\@end_raw**
34282 Delimit a section of 'raw' text.
34283
34284- **\@tabwidth**
34285 Sets the width of tabs.
34286 Negative tab widths cause Leo to convert tabs to spaces.
34287
34288- **\@verbatim**
34289 Causes directives on the immediately following line to be uninterpreted.
34290</t>
34291<t tx="sps.20100507011942.13179">- **\&lt;\&lt;** *section* **\&gt;\&gt;**
34292 In body, interpolates a named section; in headline, defines a named section.
34293
34294- **\@all**
34295 Copies *all* descendant nodes to the external file, with node sentinels.
34296 No further directives honored.
34297
34298- **\@ignore**
34299 Causes Leo to skip processing all or part of an external file.
34300
34301- **\@others**
34302 Copies all nodes *except* section definition nodes to the external file.</t>
34303<t tx="sps.20100507011942.13180">- **\&lt;\&lt;** *section* **\&gt;\&gt;** and **\&lt;\&lt;** *section* **\&gt;\&gt;=**
34304 Interpolate or define a named section of code.
34305
34306- **\@root**, **\@root-code** and **\@root-code**
34307 Start an ``\@root`` tree.
34308 The last two forms set the starting mode for body text.
34309 These directives must appear in body text.
34310
34311- **\@**
34312 Start a doc part. ``@doc`` is a deprecated synonym.
34313
34314- **\@c**
34315 Start a code part. ``@code`` is a deprecated synonym.
34316
34317- **\@comment**
34318 Set comment delimiters.
34319
34320- **\@language**
34321 Set the language used for syntax coloring **and**
34322 set the comment delimiters used in sentinel lines.
34323
34324- **\@lineending**
34325 Set the line ending to be used in external files.
34326
34327- **\@tabwidth**
34328 Set the width of tabs.
34329 Negative tab widths cause Leo to convert tabs to spaces.
34330
34331- **\@unit**
34332 Change the scope within which ``\@root`` section names are valid.
34333
34334- **@verbose**, **@terse**, **@quiet** and **@silent**
34335 Set the verbosity of sentinels.</t>
34336<t tx="sps.20100507011942.13181"></t>
34337<t tx="sps.20100507011942.13182"></t>
34338<t tx="sps.20100507011942.13185">The @path directives override the deprecated default_tangle_directory setting.
34339
34340The form of the \@path directive is ``\@path`` *directory*,
34341where *directory* is taken to be everything following \@path to the end of the line.
34342
34343When an external file directive such as @thin or @root specifies an absolute path, no \@path or setting affects the external file name. When the external file directive specifies a relative name, Leo derives the directory to which that path is relative as follows:
34344
343451. the directory specified by @path directives in parent nodes, or
343462. the "Default Tangle Directory" in the Settings dialog if no @path directive is in effect, or
343473. the directory in which the .leo file resides if the .leo file has ever been saved.
34348
34349The closest parent with an absolute path takes precedence; \@path directives specifying relative directory names are relative to their parent nodes; if no \@path directive gives an absolute directory name, then the topmost @path is relative to either (2) or (3) in the list above.
34350
34351An error occurs if no absolute path can be computed according to these rules,
34352or if the derived directory name does not exist.
34353</t>
34354<t tx="sps.20100507011942.13189">The @ directive starts a doc part.
34355Doc parts continue until an @c directive or the end of the body text.
34356For example::
34357
34358 @ This is a comment in a doc part.
34359 Doc parts can span multiple lines.
34360 The next line ends the doc part
34361 @c
34362
34363\@doc is a synonym for @, but @ is preferred.
34364
34365In \@thin style external files, such documentation sections appear as comments, using comment
34366characters appropriate to the language, or as specified by the prevailing @comment or @delims
34367directive.
34368
34369**NOTES**:
34370
34371- Following in the tradition of Literate Programming tangle,
34372 content of the body of an \@root node or its subnodes
34373 which is not contained in the code part of a section definition
34374 will not appear in the external file.
34375
34376- A governing @asis, @all, @raw or @verbatim directive causes the directive
34377 to be uninterpreted and simply copied to the external file.
34378</t>
34379<t tx="sps.20100507011942.13191">The @c directive ends a doc part and begins a code part.
34380@code is a synonym for @c, but @c is preferred.
34381
34382In @root and @unit trees, the headline must contain a valid section name.</t>
34383<t tx="sps.20100507011942.13193">**Note**: the @comment directive is deprecated: you should use the @language
34384directive whenever possible. However, sometimes using both @language and
34385@comment is useful. For this to be effective the @comment directive should
34386appear after the @language directive (in outline order).
34387
34388Untangle will not process an @root or @unit node if an @comment
34389directive is in effect because @comment make parsing an
34390external file ambiguous. It might be
34391possible to assume some defaults in this case, but that is not done at present
34392and is not a high priority.
34393(If you donate code and proper unit tests, it will be happily considered.)
34394By default, tangle of an @root node or saving an @thin style tree produces C-language
34395comments. Single-line comments generated during tangling start with ``//``, while
34396documentation parts are surrounded by ``/*`` and ``*/``. The @comment directive allows
34397you to use Tangle to produce shell and make files, as well as source code for
34398other programming languages.
34399
34400The @comment directive may be followed by zero to three delimiters, separated by
34401whitespace. This directive sets the single-line comment delimiter and the
34402opening and closing block comment delimiters as follows:
34403
34404======================== =====================================================================
34405``@comment`` no args\: restores the defaults to ``//``, ``/*`` and ``*/``
34406------------------------ ---------------------------------------------------------------------
34407``@comment //`` \1 arg\: sets the single-line comment and clears the other delims.
34408------------------------ ---------------------------------------------------------------------
34409``@comment /* */`` \2 args\: sets the block comment delims; clears the single-line delim.
34410------------------------ ---------------------------------------------------------------------
34411``@comment // /\* \*/`` \3 args\: sets all three delimiters.
34412======================== =====================================================================
34413
34414If only one delimiter is given and the external file is generated by \@root, tangle does not write
34415any documentation parts; @thin style external files precede each line of a
34416recognized (that is, ungoverned by something like @all) documentation part with the delimiter.
34417
34418If two delimiters are given, block-style comments are used instead of single-line comments.
34419For example, ``@comment { }`` could be used to tangle Pascal files.
34420
34421The @comment directive is only recognized in \@root, \@unit, @file and @thin nodes,
34422and the @comment directive must precede the first section name or @c directive.
34423An @comment directive in the same body text as an @unit directive specifies the current global defaults.
34424An @comment directive in the same body text as an @root directive affects comments generated for that root only.
34425Comments in all other roots are governed by the global defaults.
34426
34427Leo will convert underscores in the @comment directives to significant spaces. For example::
34428
34429 @comment REM_
34430
34431causes the comment delimiter to be "REM " (Note the trailing space).</t>
34432<t tx="sps.20100507011942.13195">The @language directive specifies the comment delimiters and string types used by the
34433Tangle and Untangle commands.
34434This directive over-rides the default specified in the settings dialog.
34435
34436When the threading_colorizer plugin is enabled, the valid @language directives are::
34437
34438 @language x
34439
34440where the leo/modes folder contains the file x.py. When the threading_colorizier plugin is not enabled,
34441the 'old' colorizer is used and the valid @language directives are::
34442
34443 @language actionscript
34444 @language c
34445 @language c++
34446 @language cweb
34447 @language elisp
34448 @language html
34449 @language java
34450 @language latex
34451 @language objective-c
34452 @language pascal
34453 @language perl
34454 @language perlpod
34455 @language plain
34456 @language python
34457 @language rebol
34458 @language shell
34459 @language tcltk
34460
34461Shell files have comments that start with `#`.
34462Case is ignored in the language specifiers, but not in the @language itself.
34463Thus, the following are equivalent::
34464
34465 @language html
34466 @language HTML
34467 @language hTmL
34468
34469but the following is invalid::
34470
34471 @LANGUAGE html</t>
34472<t tx="sps.20100507011942.13197">The @verbose, @terse, @quiet and @silent directives determine
34473how the Tangle command outputs comments in @root trees.
34474Comments written by the user in code sections are always output.
34475These directives control only:
34476a) the comments containing doc sections and
34477b) sentinel comments that delimit the beginning and end of code sections.
34478
34479When @verbose is in effect Tangle outputs all comments.
34480When @terse is in effect, Tangle outputs only those comments necessary for Untangle to work.
34481When @silent is in effect Tangle adds no additional comments.
34482The @quiet directive is like @silent except that it does output leading sentinels as comments.
34483Like @silent, @quiet inhibits untangling.
34484@verbose is the default.
34485If more than one of these directives appear in the same body text the "most verbose" of these options will be in effect.</t>
34486<t tx="sps.20100507011942.13198">The ``@verbatime`` directive causes the immediately succeeding single line to be copied to the generated file;
34487in this way, content that might otherwise be mistaken for a section definition or directive can be escaped.
34488</t>
34489<t tx="sps.20100507011942.13200">In the \@auto, \@edit, \@file, \@nosent, \@shadow and \@thin trees, ``\&lt;\&lt;``*section*``\&gt;\&gt;`` in the headline specifies that this node and its descendants defines a named section; in the body of a node, it specifies the location at which the text of a named section (defined in a child node) is to be interpolated
34490
34491In \@root nodes, ``\&lt;\&lt;``*section*``\&gt;\&gt;`` in a headline *adds* the text of its body and descendants to to the named section; in a body, ``\&lt;\&lt;``*section*``\&gt;\&gt;`` spcifies the point at which Leo should interpolated a named section. In a body, ``\&lt;\&lt;``*section*``\&gt;\&gt;=`` appends the following text to the definition of *section*. Surprises abound; study the `\@root reference`_ .
34492
34493As with nearly all other directives, sections are ignored in \@asis trees.
34494</t>
34495<t tx="sps.20100507011942.13202">The @unit directive expands the scope of section definitions in @root trees
34496so that a section may be referenced in several @root trees.
34497The @unit directive is ignored outside of @root trees.</t>
34498<t tx="sps.20100507011942.17787">Leo performs several checks to ensure that the result of importing an external
34499file will be equivalent to the file that writing the ``@auto ``tree would produce.
34500
34501These checks can produces **errors** or **warnings**. Errors indicate a
34502potentially serious problem. Leo inserts an ``@ignore`` directive in the ``@auto`` tree
34503if any error is found. This ``@ignore`` directive prevents the ``@auto`` tree from
34504modifying the external file. If you remove or displace the ``@ignore`` directive, a later write of the
34505``@auto`` tree will attempt to fix the problems that gave rise to the errors. There
34506are no guarantees however.
34507
34508Before importing a file, Leo **regularizes** the leading whitespace of all lines
34509of the original source file. That is, Leo converts blanks to tabs or tabs to
34510blanks depending on the value of the @tabwidth directive in effect for the ``@auto``
34511node. Leo also checks that the indentation of any non-blank line is not a
34512multiple of the indentation specified by the ``@tabwidth`` directive in effect for
34513the ``@auto`` node.
34514
34515Leo cannot guarantee to reproduce the original source file exactly if problems
34516are discovered while regularizing leading whitespace. **Strict languages** are
34517languages such as Python for which leading whitespace must be preserved exactly
34518as it appears in the original source file. Problems during regularizing whitespace generate
34519errors for strict languages and warnings for non-strict languages.
34520
34521After importing a file, Leo verifies that writing the ``@auto`` node would create
34522*exactly* the same file as the original file. Such file comparison mismatches
34523generate errors unless the problem involves only leading whitespace for
34524non-strict languages. Whenever a mismatch occurs the first non-matching line is
34525printed.
34526
34527File comparison mismatches can arise for several reasons:
34528
345291. Bugs in the import parsers. Please report any suspected bugs immediately.
34530
345312. Underindented lines in classes, methods or function. An **underindented
34532 line** is a line that is indented less then the starting line of the class,
34533 method or function in which it appears. Leo outlines can not represent such
34534 lines exactly: every line of node implicitly has at least the indentation of
34535 any unindented line of the node.
34536
34537Leo will issue a warning (not an error) for underindented Python comment lines.
34538Such lines can not change the meaning of Python programs.</t>
34539<t tx="sps.20100507011942.17789">FIXME: This section is probably relevant to Read @&lt;file&gt; Nodes; the former named menu entries are no longer present.
34540
34541Three commands in the File:Read/Write menu allow you to manually read and
34542write ``@auto`` nodes from the presently selected outline. As always, an ``@ignore``
34543directive in the ``@auto`` node or its ancestors will suppress any of these
34544commands:
34545
34546- The **Read @auto Nodes** (read-at-auto-nodes) command reads all @auto nodes in the
34547 presently selected outline. An @ignore directive will suppress this import.
34548
34549- The **Write @auto Nodes** (write-at-auto-nodes) command writes all @auto nodes. An
34550 ``@ignore`` directive will suppress this import. Caution: the write will occur even
34551 if Leo has not previously read the @auto node.
34552
34553- The **Write Dirty @auto Nodes** (write-dirty-at-auto-nodes) is the same as the
34554 write-at-auto-nodes command, except that only changed ``@auto`` trees are written.
34555
34556Most users will rarely use these explicit commands, because reading and writing
34557.leo files handles ``@auto`` nodes well enough. However, you can use the
34558read-at-auto-nodes command to update @auto nodes without having to reload the
34559.leo file.
34560</t>
34561<t tx="sps.20100507011942.17790">The earliest variety of file generation was the \@root directive, designed to work with either `CWEB`_ or `noweb`_ markup. The model for CWEB and noweb were for the person to edit a text ("web") file containing code and markup, and then "tangle" the file into a source code file appropriate for the compiler or interpreter, and to "weave" the text file into a beautifully typeset narrative which explained all the inner workings of the code. Leo's innovation was to realize that a lot of what the markup was doing was to expose the often hidden conceptual structure of the code, and that this could be done better with an outline. Thus in Leo, "tangling" creates the source files from the outline, "weaving" is dropped, and "untangling" turns source files into outlines. That last trick nearly always requires some assistance from the source file, in the form of special comments called "sentinels" which help Leo discover the names of outline headlines and the boundaries in the chunks of text (bodies) corresponding to those headlines - and which chunks are subheads to other subheads. As with CWEB and noweb, the specifications for how to assemble the nodes into the program source code are explicit: ``\&lt;\&lt;`` *section* ``\&gt;\&gt;`` specifies the location where Leo emits the section, and ``\&lt;\&lt;`` *section* ``\&gt;\&gt;=`` *code* adds snippets of code to the end of the section.</t>
34562<t tx="sps.20100507011942.17791">\@root
34563 This directive is the most flexible, the most difficult to use, and behaves
34564 very differently from every other file generating directive. It comes closest
34565 in spirit to traditional literate programming tools.
34566 However, it is seldom necessary to suffer the drawbacks of using ``@root``.
34567 Avoid using ``@root`` unless you have a compelling reason. Forget everything
34568 you've read about headline family file generation as you carefully study the `\@root reference`_.</t>
34577<t tx="tbrown.20091203211538.14165">Makes \@path nodes "active".34569<t tx="tbrown.20091203211538.14165">Makes \@path nodes "active".
3457834570
34579With this plugin running, double clicking on \@path nodes34571With this plugin running, double clicking on \@path nodes
3458034572
=== added directory 'leo/doc/html/_build'
=== added directory 'leo/doc/html/_build/latex'
=== added file 'leo/doc/html/_build/latex/LeoDoc.pdf'
--- leo/doc/html/_build/latex/LeoDoc.pdf 1970-01-01 00:00:00 +0000
+++ leo/doc/html/_build/latex/LeoDoc.pdf 2010-05-11 20:36:27 +0000
@@ -0,0 +1,24321 @@
1%PDF-1.4
2%ÐÔÅØ
35 0 obj
4<< /S /GoTo /D (chapter*.1) >>
5endobj
68 0 obj
7(Acknowledgements)
8endobj
99 0 obj
10<< /S /GoTo /D (chapter*.1) >>
11endobj
1211 0 obj
13(Leo's MIT License)
14endobj
1512 0 obj
16<< /S /GoTo /D (chapter*.2) >>
17endobj
1815 0 obj
19(Preface)
20endobj
2116 0 obj
22<< /S /GoTo /D (chapter*.3) >>
23endobj
2419 0 obj
25(What People Are Saying About Leo)
26endobj
2720 0 obj
28<< /S /GoTo /D (section*.4) >>
29endobj
3023 0 obj
31(Leo is revolutionary)
32endobj
3324 0 obj
34<< /S /GoTo /D (section*.4) >>
35endobj
3626 0 obj
37(Leo is a showcase Python/Tkinter application)
38endobj
3927 0 obj
40<< /S /GoTo /D (section*.4) >>
41endobj
4229 0 obj
43(Leo is fun, even addicting)
44endobj
4530 0 obj
46<< /S /GoTo /D (section*.4) >>
47endobj
4832 0 obj
49(Leo is a flexible, powerful IDE)
50endobj
5133 0 obj
52<< /S /GoTo /D (section*.4) >>
53endobj
5435 0 obj
55(Leo is a superb outliner)
56endobj
5736 0 obj
58<< /S /GoTo /D (section*.4) >>
59endobj
6038 0 obj
61(Leo is an excellent PIM)
62endobj
6339 0 obj
64<< /S /GoTo /D (section*.4) >>
65endobj
6641 0 obj
67(Leo extends, completes and simplifies literate programming)
68endobj
6942 0 obj
70<< /S /GoTo /D (section*.4) >>
71endobj
7244 0 obj
73(Leo is a superb documentation tool)
74endobj
7545 0 obj
76<< /S /GoTo /D (section*.4) >>
77endobj
7847 0 obj
79(Leo simplifies the understanding of complex systems)
80endobj
8148 0 obj
82<< /S /GoTo /D (section*.4) >>
83endobj
8450 0 obj
85(Leo is stable, well designed and well supported)
86endobj
8751 0 obj
88<< /S /GoTo /D (section*.4) >>
89endobj
9053 0 obj
91(Longer quotes...)
92endobj
9354 0 obj
94<< /S /GoTo /D (chapter*.5) >>
95endobj
9657 0 obj
97(FAQ)
98endobj
9958 0 obj
100<< /S /GoTo /D (section*.6) >>
101endobj
10261 0 obj
103(Getting Leo)
104endobj
10562 0 obj
106<< /S /GoTo /D (Item.10) >>
107endobj
10865 0 obj
109(Installing Leo)
110endobj
11166 0 obj
112<< /S /GoTo /D (Item.10) >>
113endobj
11468 0 obj
115(Learning to use Leo)
116endobj
11769 0 obj
118<< /S /GoTo /D (Item.10) >>
119endobj
12071 0 obj
121(How Should I Use Leo With bzr/git/hg/svn/cvs?)
122endobj
12372 0 obj
124<< /S /GoTo /D (Item.10) >>
125endobj
12674 0 obj
127(How Can I Use Leo Cooperatively Without Sentinels?)
128endobj
12975 0 obj
130<< /S /GoTo /D (Item.10) >>
131endobj
13277 0 obj
133(Using External Files)
134endobj
13578 0 obj
136<< /S /GoTo /D (Item.10) >>
137endobj
13880 0 obj
139(Customizing Leo)
140endobj
14181 0 obj
142<< /S /GoTo /D (Item.15) >>
143endobj
14484 0 obj
145(Tips and Techniques)
146endobj
14785 0 obj
148<< /S /GoTo /D (Item.40) >>
149endobj
15088 0 obj
151(Trouble Shooting)
152endobj
15389 0 obj
154<< /S /GoTo /D (Item.45) >>
155endobj
15692 0 obj
157(Unicode Issues)
158endobj
15993 0 obj
160<< /S /GoTo /D (chapter.1) >>
161endobj
16296 0 obj
163(Installing Leo)
164endobj
16597 0 obj
166<< /S /GoTo /D (section.1.1) >>
167endobj
168100 0 obj
169(System requirements)
170endobj
171101 0 obj
172<< /S /GoTo /D (section.1.2) >>
173endobj
174104 0 obj
175(Leo's HOME directory)
176endobj
177105 0 obj
178<< /S /GoTo /D (section.1.3) >>
179endobj
180108 0 obj
181(How to install Leo on Linux)
182endobj
183109 0 obj
184<< /S /GoTo /D (section.1.4) >>
185endobj
186112 0 obj
187(Installing Leo on MacOS X)
188endobj
189113 0 obj
190<< /S /GoTo /D (section.1.5) >>
191endobj
192116 0 obj
193(Installing Leo on Windows)
194endobj
195117 0 obj
196<< /S /GoTo /D (section.1.6) >>
197endobj
198120 0 obj
199(Tracking the development version)
200endobj
201121 0 obj
202<< /S /GoTo /D (section.1.7) >>
203endobj
204124 0 obj
205(Running Leo)
206endobj
207125 0 obj
208<< /S /GoTo /D (section.1.8) >>
209endobj
210128 0 obj
211(Running Leo from a console window)
212endobj
213129 0 obj
214<< /S /GoTo /D (section.1.9) >>
215endobj
216132 0 obj
217(Running Leo in batch mode)
218endobj
219133 0 obj
220<< /S /GoTo /D (section.1.10) >>
221endobj
222136 0 obj
223(How to install the Aspell spell checker)
224endobj
225137 0 obj
226<< /S /GoTo /D (chapter.2) >>
227endobj
228140 0 obj
229(The Leo Tutorial)
230endobj
231141 0 obj
232<< /S /GoTo /D (section.2.1) >>
233endobj
234144 0 obj
235(Leo's main window)
236endobj
237145 0 obj
238<< /S /GoTo /D (section.2.2) >>
239endobj
240148 0 obj
241(Outline commands)
242endobj
243149 0 obj
244<< /S /GoTo /D (section.2.3) >>
245endobj
246152 0 obj
247(External files and @thin nodes)
248endobj
249153 0 obj
250<< /S /GoTo /D (section.2.4) >>
251endobj
252156 0 obj
253(Creating external files from outlines)
254endobj
255157 0 obj
256<< /S /GoTo /D (section.2.5) >>
257endobj
258160 0 obj
259(Clones \046 views)
260endobj
261161 0 obj
262<< /S /GoTo /D (section.2.6) >>
263endobj
264164 0 obj
265(More about directives)
266endobj
267165 0 obj
268<< /S /GoTo /D (section.2.7) >>
269endobj
270168 0 obj
271(Scripting, extending and customizing Leo)
272endobj
273169 0 obj
274<< /S /GoTo /D (section.2.8) >>
275endobj
276172 0 obj
277(Summary)
278endobj
279173 0 obj
280<< /S /GoTo /D (section.2.9) >>
281endobj
282176 0 obj
283(Further study)
284endobj
285177 0 obj
286<< /S /GoTo /D (chapter.3) >>
287endobj
288180 0 obj
289(Using Outlines)
290endobj
291181 0 obj
292<< /S /GoTo /D (section.3.1) >>
293endobj
294184 0 obj
295(Outline Related)
296endobj
297185 0 obj
298<< /S /GoTo /D (section.3.2) >>
299endobj
300188 0 obj
301(Body Related)
302endobj
303189 0 obj
304<< /S /GoTo /D (section.3.3) >>
305endobj
306192 0 obj
307(Miscellaneous)
308endobj
309193 0 obj
310<< /S /GoTo /D (chapter.4) >>
311endobj
312196 0 obj
313(Writing Programs in Leo)
314endobj
315197 0 obj
316<< /S /GoTo /D (section.4.1) >>
317endobj
318200 0 obj
319(A Brief and Inaccurate History of Leo for Programming)
320endobj
321201 0 obj
322<< /S /GoTo /D (section.4.2) >>
323endobj
324204 0 obj
325(Creating and using external files: recommendations)
326endobj
327205 0 obj
328<< /S /GoTo /D (section.4.3) >>
329endobj
330208 0 obj
331(Overview: summary of directives)
332endobj
333209 0 obj
334<< /S /GoTo /D (section.4.4) >>
335endobj
336212 0 obj
337(Reference: all about directives)
338endobj
339213 0 obj
340<< /S /GoTo /D (section.4.5) >>
341endobj
342216 0 obj
343(CWEB mode)
344endobj
345217 0 obj
346<< /S /GoTo /D (chapter.5) >>
347endobj
348220 0 obj
349(Using Leo's Commands)
350endobj
351221 0 obj
352<< /S /GoTo /D (section.5.1) >>
353endobj
354224 0 obj
355(Autocompletion)
356endobj
357225 0 obj
358<< /S /GoTo /D (section.5.2) >>
359endobj
360228 0 obj
361(Calltips)
362endobj
363229 0 obj
364<< /S /GoTo /D (section.5.3) >>
365endobj
366232 0 obj
367(The minibuffer)
368endobj
369233 0 obj
370<< /S /GoTo /D (section.5.4) >>
371endobj
372236 0 obj
373(The File Menu)
374endobj
375237 0 obj
376<< /S /GoTo /D (section.5.5) >>
377endobj
378240 0 obj
379(The Edit Menu)
380endobj
381241 0 obj
382<< /S /GoTo /D (section.5.6) >>
383endobj
384244 0 obj
385(The Outline Menu)
386endobj
387245 0 obj
388<< /S /GoTo /D (section.5.7) >>
389endobj
390248 0 obj
391(The Window Menu)
392endobj
393249 0 obj
394<< /S /GoTo /D (section.5.8) >>
395endobj
396252 0 obj
397(The Help Menu)
398endobj
399253 0 obj
400<< /S /GoTo /D (chapter.6) >>
401endobj
402256 0 obj
403(Leo and Literate Programming)
404endobj
405257 0 obj
406<< /S /GoTo /D (section.6.1) >>
407endobj
408260 0 obj
409(Why I like Literate Programming)
410endobj
411261 0 obj
412<< /S /GoTo /D (section.6.2) >>
413endobj
414264 0 obj
415(How Leo Improves Literate Programming)
416endobj
417265 0 obj
418<< /S /GoTo /D (section.6.3) >>
419endobj
420268 0 obj
421(How Leo Changes the Notion of Literate Programming)
422endobj
423269 0 obj
424<< /S /GoTo /D (chapter.7) >>
425endobj
426272 0 obj
427(Scripting Leo with Python)
428endobj
429273 0 obj
430<< /S /GoTo /D (section.7.1) >>
431endobj
432276 0 obj
433(Leo's most import objects)
434endobj
435277 0 obj
436<< /S /GoTo /D (section.7.2) >>
437endobj
438280 0 obj
439(Predefined objects)
440endobj
441281 0 obj
442<< /S /GoTo /D (section.7.3) >>
443endobj
444284 0 obj
445(g.es writes to the log pane)
446endobj
447285 0 obj
448<< /S /GoTo /D (section.7.4) >>
449endobj
450288 0 obj
451(app.windowList: the list of all open frames)
452endobj
453289 0 obj
454<< /S /GoTo /D (section.7.5) >>
455endobj
456292 0 obj
457(Getting and setting headline and body text)
458endobj
459293 0 obj
460<< /S /GoTo /D (section.7.6) >>
461endobj
462296 0 obj
463(Getting and setting body text directly)
464endobj
465297 0 obj
466<< /S /GoTo /D (section.7.7) >>
467endobj
468300 0 obj
469(Ensuring that positions are valid)
470endobj
471301 0 obj
472<< /S /GoTo /D (section.7.8) >>
473endobj
474304 0 obj
475(About copying positions)
476endobj
477305 0 obj
478<< /S /GoTo /D (section.7.9) >>
479endobj
480308 0 obj
481(Traversing outlines)
482endobj
483309 0 obj
484<< /S /GoTo /D (section.7.10) >>
485endobj
486312 0 obj
487(Updating the screen)
488endobj
489313 0 obj
490<< /S /GoTo /D (section.7.11) >>
491endobj
492316 0 obj
493(Invoking commands from scripts)
494endobj
495317 0 obj
496<< /S /GoTo /D (section.7.12) >>
497endobj
498320 0 obj
499(Getting settings from @settings trees)
500endobj
501321 0 obj
502<< /S /GoTo /D (section.7.13) >>
503endobj
504324 0 obj
505(Getting and setting preferences)
506endobj
507325 0 obj
508<< /S /GoTo /D (section.7.14) >>
509endobj
510328 0 obj
511(Functions for finding and changing text from scripts)
512endobj
513329 0 obj
514<< /S /GoTo /D (section.7.15) >>
515endobj
516332 0 obj
517(Functions defined in leoGlobals.py)
518endobj
519333 0 obj
520<< /S /GoTo /D (section.7.16) >>
521endobj
522336 0 obj
523(Event handlers)
524endobj
525337 0 obj
526<< /S /GoTo /D (section.7.17) >>
527endobj
528340 0 obj
529(How to make operations undoable)
530endobj
531341 0 obj
532<< /S /GoTo /D (section.7.18) >>
533endobj
534344 0 obj
535(Redirecting output from scripts)
536endobj
537345 0 obj
538<< /S /GoTo /D (section.7.19) >>
539endobj
540348 0 obj
541(Writing to different log tabs)
542endobj
543349 0 obj
544<< /S /GoTo /D (section.7.20) >>
545endobj
546352 0 obj
547(Invoking dialogs using the g.app.gui class)
548endobj
549353 0 obj
550<< /S /GoTo /D (section.7.21) >>
551endobj
552356 0 obj
553(Inserting and deleting icons)
554endobj
555357 0 obj
556<< /S /GoTo /D (section.7.22) >>
557endobj
558360 0 obj
559(Customizing panes with different widgets)
560endobj
561361 0 obj
562<< /S /GoTo /D (section.7.23) >>
563endobj
564364 0 obj
565(Working with directives and paths)
566endobj
567365 0 obj
568<< /S /GoTo /D (section.7.24) >>
569endobj
570368 0 obj
571(Summary of the vnode and position classes)
572endobj
573369 0 obj
574<< /S /GoTo /D (section.7.25) >>
575endobj
576372 0 obj
577(Creating script buttons)
578endobj
579373 0 obj
580<< /S /GoTo /D (section.7.26) >>
581endobj
582376 0 obj
583(Running Leo in batch mode)
584endobj
585377 0 obj
586<< /S /GoTo /D (section.7.27) >>
587endobj
588380 0 obj
589(Getting interactive input from scripts)
590endobj
591381 0 obj
592<< /S /GoTo /D (section.7.28) >>
593endobj
594384 0 obj
595(Creating Leo commands with the @g.command decorator)
596endobj
597385 0 obj
598<< /S /GoTo /D (section.7.29) >>
599endobj
600388 0 obj
601(Modifying plugins with @script scripts)
602endobj
603389 0 obj
604<< /S /GoTo /D (chapter.8) >>
605endobj
606392 0 obj
607(Customizing Leo)
608endobj
609393 0 obj
610<< /S /GoTo /D (section.8.1) >>
611endobj
612396 0 obj
613(Specifying settings)
614endobj
615397 0 obj
616<< /S /GoTo /D (section.8.2) >>
617endobj
618400 0 obj
619(Input modes)
620endobj
621401 0 obj
622<< /S /GoTo /D (section.8.3) >>
623endobj
624404 0 obj
625(Adding extensible attributes to nodes and .leo files)
626endobj
627405 0 obj
628<< /S /GoTo /D (section.8.4) >>
629endobj
630408 0 obj
631(Specifying Tk options using .leo\137xresources)
632endobj
633409 0 obj
634<< /S /GoTo /D (section.8.5) >>
635endobj
636412 0 obj
637(Translating Leo's menus and messages)
638endobj
639413 0 obj
640<< /S /GoTo /D (section.8.6) >>
641endobj
642416 0 obj
643(Writing new importers)
644endobj
645417 0 obj
646<< /S /GoTo /D (chapter.9) >>
647endobj
648420 0 obj
649(History of Leo)
650endobj
651421 0 obj
652<< /S /GoTo /D (section.9.1) >>
653endobj
654424 0 obj
655(Beginnings)
656endobj
657425 0 obj
658<< /S /GoTo /D (section.9.2) >>
659endobj
660428 0 obj
661(Breakthrough)
662endobj
663429 0 obj
664<< /S /GoTo /D (section.9.3) >>
665endobj
666432 0 obj
667(Apple and YellowBox)
668endobj
669433 0 obj
670<< /S /GoTo /D (section.9.4) >>
671endobj
672436 0 obj
673(Borland C++)
674endobj
675437 0 obj
676<< /S /GoTo /D (section.9.5) >>
677endobj
678440 0 obj
679(Discovering Python)
680endobj
681441 0 obj
682<< /S /GoTo /D (section.9.6) >>
683endobj
684444 0 obj
685(SourceForge)
686endobj
687445 0 obj
688<< /S /GoTo /D (section.9.7) >>
689endobj
690448 0 obj
691(Allowing sentinel lines in external files)
692endobj
693449 0 obj
694<< /S /GoTo /D (section.9.8) >>
695endobj
696452 0 obj
697(Untangling @file is easy!)
698endobj
699453 0 obj
700<< /S /GoTo /D (section.9.9) >>
701endobj
702456 0 obj
703(Leo 3.x: Continuous improvement)
704endobj
705457 0 obj
706<< /S /GoTo /D (section.9.10) >>
707endobj
708460 0 obj
709(Leo 4.0: Eliminating error `recovery')
710endobj
711461 0 obj
712<< /S /GoTo /D (section.9.11) >>
713endobj
714464 0 obj
715(Leo 4.1: The debut of gnx's)
716endobj
717465 0 obj
718<< /S /GoTo /D (section.9.12) >>
719endobj
720468 0 obj
721(Leo 4.2: Complete at last)
722endobj
723469 0 obj
724<< /S /GoTo /D (section.9.13) >>
725endobj
726472 0 obj
727(Leo 4.3 Settings)
728endobj
729473 0 obj
730<< /S /GoTo /D (section.9.14) >>
731endobj
732476 0 obj
733(Leo 4.4 The minibuffer and key bindings)
734endobj
735477 0 obj
736<< /S /GoTo /D (section.9.15) >>
737endobj
738480 0 obj
739(Leo 4.4.4 Improvements)
740endobj
741481 0 obj
742<< /S /GoTo /D (chapter.10) >>
743endobj
744484 0 obj
745(Theory of Operation)
746endobj
747485 0 obj
748<< /S /GoTo /D (section.10.1) >>
749endobj
750488 0 obj
751(Overview)
752endobj
753489 0 obj
754<< /S /GoTo /D (section.10.2) >>
755endobj
756492 0 obj
757(Nodes)
758endobj
759493 0 obj
760<< /S /GoTo /D (section.10.3) >>
761endobj
762496 0 obj
763(Drawing and events)
764endobj
765497 0 obj
766<< /S /GoTo /D (section.10.4) >>
767endobj
768500 0 obj
769(Clones)
770endobj
771501 0 obj
772<< /S /GoTo /D (section.10.5) >>
773endobj
774504 0 obj
775(Find and change commands)
776endobj
777505 0 obj
778<< /S /GoTo /D (section.10.6) >>
779endobj
780508 0 obj
781(Tangle and untangle commands)
782endobj
783509 0 obj
784<< /S /GoTo /D (section.10.7) >>
785endobj
786512 0 obj
787(Unicode)
788endobj
789513 0 obj
790<< /S /GoTo /D (section.10.8) >>
791endobj
792516 0 obj
793(Unlimited undo)
794endobj
795517 0 obj
796<< /S /GoTo /D (section.10.9) >>
797endobj
798520 0 obj
799(Key bindings)
800endobj
801521 0 obj
802<< /S /GoTo /D (chapter.11) >>
803endobj
804524 0 obj
805(White Papers)
806endobj
807525 0 obj
808<< /S /GoTo /D (section.11.1) >>
809endobj
810528 0 obj
811(Why I like Python)
812endobj
813529 0 obj
814<< /S /GoTo /D (chapter.12) >>
815endobj
816532 0 obj
817(Plugins)
818endobj
819533 0 obj
820<< /S /GoTo /D (section.12.1) >>
821endobj
822536 0 obj
823(Enabling plugins)
824endobj
825537 0 obj
826<< /S /GoTo /D (section.12.2) >>
827endobj
828540 0 obj
829(Body pane)
830endobj
831541 0 obj
832<< /S /GoTo /D (section.12.3) >>
833endobj
834544 0 obj
835(Commands \046 directives)
836endobj
837545 0 obj
838<< /S /GoTo /D (section.12.4) >>
839endobj
840548 0 obj
841(Dialogs)
842endobj
843549 0 obj
844<< /S /GoTo /D (section.12.5) >>
845endobj
846552 0 obj
847(Debugging \046 testing)
848endobj
849553 0 obj
850<< /S /GoTo /D (section.12.6) >>
851endobj
852556 0 obj
853(External editors \046 Open With)
854endobj
855557 0 obj
856<< /S /GoTo /D (section.12.7) >>
857endobj
858560 0 obj
859(Files)
860endobj
861561 0 obj
862<< /S /GoTo /D (section.12.8) >>
863endobj
864564 0 obj
865(Guis)
866endobj
867565 0 obj
868<< /S /GoTo /D (section.12.9) >>
869endobj
870568 0 obj
871(Icon and status areas)
872endobj
873569 0 obj
874<< /S /GoTo /D (section.12.10) >>
875endobj
876572 0 obj
877(LeoN)
878endobj
879573 0 obj
880<< /S /GoTo /D (section.12.11) >>
881endobj
882576 0 obj
883(Menus \046 translations)
884endobj
885577 0 obj
886<< /S /GoTo /D (section.12.12) >>
887endobj
888580 0 obj
889(Nodes)
890endobj
891581 0 obj
892<< /S /GoTo /D (section.12.13) >>
893endobj
894584 0 obj
895(Plugins manager \046 menu)
896endobj
897585 0 obj
898<< /S /GoTo /D (section.12.14) >>
899endobj
900588 0 obj
901(Scripting)
902endobj
903589 0 obj
904<< /S /GoTo /D (section.12.15) >>
905endobj
906592 0 obj
907(Servers)
908endobj
909593 0 obj
910<< /S /GoTo /D (section.12.16) >>
911endobj
912596 0 obj
913(Spell checking)
914endobj
915597 0 obj
916<< /S /GoTo /D (section.12.17) >>
917endobj
918600 0 obj
919(Text formatting)
920endobj
921601 0 obj
922<< /S /GoTo /D (section.12.18) >>
923endobj
924604 0 obj
925(Windows)
926endobj
927605 0 obj
928<< /S /GoTo /D (chapter.13) >>
929endobj
930608 0 obj
931(Writing Plugins)
932endobj
933609 0 obj
934<< /S /GoTo /D (section.13.1) >>
935endobj
936612 0 obj
937(Overview)
938endobj
939613 0 obj
940<< /S /GoTo /D (section.13.2) >>
941endobj
942616 0 obj
943(Support for unit testing)
944endobj
945617 0 obj
946<< /S /GoTo /D (section.13.3) >>
947endobj
948620 0 obj
949(Turning script buttons into plugins)
950endobj
951621 0 obj
952<< /S /GoTo /D (section.13.4) >>
953endobj
954624 0 obj
955(Important security warnings)
956endobj
957625 0 obj
958<< /S /GoTo /D (chapter.14) >>
959endobj
960628 0 obj
961(Leo and ReStructuredText)
962endobj
963629 0 obj
964<< /S /GoTo /D (section.14.1) >>
965endobj
966632 0 obj
967(Overview)
968endobj
969633 0 obj
970<< /S /GoTo /D (section.14.2) >>
971endobj
972636 0 obj
973(Power features of @rst trees)
974endobj
975637 0 obj
976<< /S /GoTo /D (section.14.3) >>
977endobj
978640 0 obj
979(Options)
980endobj
981641 0 obj
982<< /S /GoTo /D (section.14.4) >>
983endobj
984644 0 obj
985(Headline Commands)
986endobj
987645 0 obj
988<< /S /GoTo /D (section.14.5) >>
989endobj
990648 0 obj
991(Using doc parts)
992endobj
993649 0 obj
994<< /S /GoTo /D (section.14.6) >>
995endobj
996652 0 obj
997(Setting defaults)
998endobj
999653 0 obj
1000<< /S /GoTo /D (section.14.7) >>
1001endobj
1002656 0 obj
1003(The code-block directive)
1004endobj
1005657 0 obj
1006<< /S /GoTo /D (section.14.8) >>
1007endobj
1008660 0 obj
1009(Required cascading style sheets)
1010endobj
1011661 0 obj
1012<< /S /GoTo /D (section.14.9) >>
1013endobj
1014664 0 obj
1015(Notes about rST markup)
1016endobj
1017665 0 obj
1018<< /S /GoTo /D (section.14.10) >>
1019endobj
1020668 0 obj
1021(Examples)
1022endobj
1023669 0 obj
1024<< /S /GoTo /D (section.14.11) >>
1025endobj
1026672 0 obj
1027(Theory of operation)
1028endobj
1029673 0 obj
1030<< /S /GoTo /D (section.14.12) >>
1031endobj
1032676 0 obj
1033(Controlling the rst3 command from scripts)
1034endobj
1035677 0 obj
1036<< /S /GoTo /D (section.14.13) >>
1037endobj
1038680 0 obj
1039(Acknowledgements)
1040endobj
1041681 0 obj
1042<< /S /GoTo /D (chapter.15) >>
1043endobj
1044684 0 obj
1045(Controlling Syntax Coloring)
1046endobj
1047685 0 obj
1048<< /S /GoTo /D (section.15.1) >>
1049endobj
1050688 0 obj
1051(Files)
1052endobj
1053689 0 obj
1054<< /S /GoTo /D (section.15.2) >>
1055endobj
1056692 0 obj
1057(The colorizer's inner loop)
1058endobj
1059693 0 obj
1060<< /S /GoTo /D (section.15.3) >>
1061endobj
1062696 0 obj
1063(Format of colorizer control files)
1064endobj
1065697 0 obj
1066<< /S /GoTo /D (section.15.4) >>
1067endobj
1068700 0 obj
1069(Rule methods)
1070endobj
1071701 0 obj
1072<< /S /GoTo /D (section.15.5) >>
1073endobj
1074704 0 obj
1075(Syntax coloring settings)
1076endobj
1077705 0 obj
1078<< /S /GoTo /D (section.15.6) >>
1079endobj
1080708 0 obj
1081(The threading\137colorizer plugin)
1082endobj
1083709 0 obj
1084<< /S /GoTo /D (chapter.16) >>
1085endobj
1086712 0 obj
1087(Debugging with Leo)
1088endobj
1089713 0 obj
1090<< /S /GoTo /D (section.16.1) >>
1091endobj
1092716 0 obj
1093(Using g.trace and g.pdb)
1094endobj
1095717 0 obj
1096<< /S /GoTo /D (section.16.2) >>
1097endobj
1098720 0 obj
1099(Settings for winpdb)
1100endobj
1101721 0 obj
1102<< /S /GoTo /D (section.16.3) >>
1103endobj
1104724 0 obj
1105(Debugging scripts with winpdb)
1106endobj
1107725 0 obj
1108<< /S /GoTo /D (chapter.17) >>
1109endobj
1110728 0 obj
1111(Using ZODB with Leo)
1112endobj
1113729 0 obj
1114<< /S /GoTo /D (section.17.1) >>
1115endobj
1116732 0 obj
1117(Configuring Leo to use zodb)
1118endobj
1119733 0 obj
1120<< /S /GoTo /D (section.17.2) >>
1121endobj
1122736 0 obj
1123(Initing zodb)
1124endobj
1125737 0 obj
1126<< /S /GoTo /D (section.17.3) >>
1127endobj
1128740 0 obj
1129(Writing data to zodb)
1130endobj
1131741 0 obj
1132<< /S /GoTo /D (section.17.4) >>
1133endobj
1134744 0 obj
1135(Defining zodb keys)
1136endobj
1137745 0 obj
1138<< /S /GoTo /D (section.17.5) >>
1139endobj
1140748 0 obj
1141(Reading data from zodb)
1142endobj
1143749 0 obj
1144<< /S /GoTo /D (section.17.6) >>
1145endobj
1146752 0 obj
1147(About connections)
1148endobj
1149753 0 obj
1150<< /S /GoTo /D (section.17.7) >>
1151endobj
1152756 0 obj
1153(Convenience routines)
1154endobj
1155757 0 obj
1156<< /S /GoTo /D (chapter.18) >>
1157endobj
1158760 0 obj
1159(Leo and Emacs)
1160endobj
1161761 0 obj
1162<< /S /GoTo /D (section.18.1) >>
1163endobj
1164764 0 obj
1165(Controlling Leo from Emacs using Pymacs)
1166endobj
1167765 0 obj
1168<< /S /GoTo /D (section.18.2) >>
1169endobj
1170768 0 obj
1171(Functions in leoPymacs.py)
1172endobj
1173769 0 obj
1174<< /S /GoTo /D (section.18.3) >>
1175endobj
1176772 0 obj
1177(The minibuffer)
1178endobj
1179773 0 obj
1180<< /S /GoTo /D (chapter.19) >>
1181endobj
1182776 0 obj
1183(Embedding Leo with the leoBridge module)
1184endobj
1185777 0 obj
1186<< /S /GoTo /D (section.19.1) >>
1187endobj
1188780 0 obj
1189(The basics)
1190endobj
1191781 0 obj
1192<< /S /GoTo /D (section.19.2) >>
1193endobj
1194784 0 obj
1195(Running leoBridge from within Leo)
1196endobj
1197785 0 obj
1198<< /S /GoTo /D (chapter.20) >>
1199endobj
1200788 0 obj
1201(Unit testing with Leo)
1202endobj
1203789 0 obj
1204<< /S /GoTo /D (section.20.1) >>
1205endobj
1206792 0 obj
1207(Overview)
1208endobj
1209793 0 obj
1210<< /S /GoTo /D (section.20.2) >>
1211endobj
1212796 0 obj
1213(Using @test nodes)
1214endobj
1215797 0 obj
1216<< /S /GoTo /D (section.20.3) >>
1217endobj
1218800 0 obj
1219(Using @suite nodes)
1220endobj
1221801 0 obj
1222<< /S /GoTo /D (section.20.4) >>
1223endobj
1224804 0 obj
1225(How the unit test commands work)
1226endobj
1227805 0 obj
1228<< /S /GoTo /D (section.20.5) >>
1229endobj
1230808 0 obj
1231(@button timer)
1232endobj
1233809 0 obj
1234<< /S /GoTo /D (section.20.6) >>
1235endobj
1236812 0 obj
1237(@button profile)
1238endobj
1239813 0 obj
1240<< /S /GoTo /D (chapter.21) >>
1241endobj
1242816 0 obj
1243(IPython and Leo)
1244endobj
1245817 0 obj
1246<< /S /GoTo /D (section.21.1) >>
1247endobj
1248820 0 obj
1249(Introduction)
1250endobj
1251821 0 obj
1252<< /S /GoTo /D (section.21.2) >>
1253endobj
1254824 0 obj
1255(Installation and startup)
1256endobj
1257825 0 obj
1258<< /S /GoTo /D (section.21.3) >>
1259endobj
1260828 0 obj
1261(Accessing IPython from Leo)
1262endobj
1263829 0 obj
1264<< /S /GoTo /D (section.21.4) >>
1265endobj
1266832 0 obj
1267(Accessing Leo nodes from IPython)
1268endobj
1269833 0 obj
1270<< /S /GoTo /D (section.21.5) >>
1271endobj
1272836 0 obj
1273(@cl definitions)
1274endobj
1275837 0 obj
1276<< /S /GoTo /D (section.21.6) >>
1277endobj
1278840 0 obj
1279(Special node types)
1280endobj
1281841 0 obj
1282<< /S /GoTo /D (section.21.7) >>
1283endobj
1284844 0 obj
1285(Launching ILeo from IPython)
1286endobj
1287845 0 obj
1288<< /S /GoTo /D (section.21.8) >>
1289endobj
1290848 0 obj
1291(Declaring custom push-to-ipython handlers)
1292endobj
1293849 0 obj
1294<< /S /GoTo /D (section.21.9) >>
1295endobj
1296852 0 obj
1297(Example code snippets)
1298endobj
1299853 0 obj
1300<< /S /GoTo /D (section.21.10) >>
1301endobj
1302856 0 obj
1303(Example use case: pylab)
1304endobj
1305857 0 obj
1306<< /S /GoTo /D (section.21.11) >>
1307endobj
1308860 0 obj
1309(Magic functions)
1310endobj
1311861 0 obj
1312<< /S /GoTo /D (section.21.12) >>
1313endobj
1314864 0 obj
1315(Acknowledgements and history)
1316endobj
1317865 0 obj
1318<< /S /GoTo /D (chapter.22) >>
1319endobj
1320868 0 obj
1321(Using Vim Bindings with Leo)
1322endobj
1323869 0 obj
1324<< /S /GoTo /D (section.22.1) >>
1325endobj
1326872 0 obj
1327(Vim bindings)
1328endobj
1329873 0 obj
1330<< /S /GoTo /D (section.22.2) >>
1331endobj
1332876 0 obj
1333(Avoiding changes to `tag' files)
1334endobj
1335877 0 obj
1336<< /S /GoTo /D (chapter.23) >>
1337endobj
1338880 0 obj
1339(Eliminating sentinel lines with @shadow)
1340endobj
1341881 0 obj
1342<< /S /GoTo /D (section.23.1) >>
1343endobj
1344884 0 obj
1345(Overview)
1346endobj
1347885 0 obj
1348<< /S /GoTo /D (section.23.2) >>
1349endobj
1350888 0 obj
1351(Creating @shadow trees)
1352endobj
1353889 0 obj
1354<< /S /GoTo /D (section.23.3) >>
1355endobj
1356892 0 obj
1357(What the update algorithm does)
1358endobj
1359893 0 obj
1360<< /S /GoTo /D (section.23.4) >>
1361endobj
1362896 0 obj
1363(Aha: boundary cases don't matter)
1364endobj
1365897 0 obj
1366<< /S /GoTo /D (chapter.24) >>
1367endobj
1368900 0 obj
1369(Appendices)
1370endobj
1371901 0 obj
1372<< /S /GoTo /D (section.24.1) >>
1373endobj
1374904 0 obj
1375(Bugs)
1376endobj
1377905 0 obj
1378<< /S /GoTo /D (section.24.2) >>
1379endobj
1380908 0 obj
1381(Errors while tangling)
1382endobj
1383909 0 obj
1384<< /S /GoTo /D (section.24.3) >>
1385endobj
1386912 0 obj
1387(Errors while untangling)
1388endobj
1389913 0 obj
1390<< /S /GoTo /D (section.24.4) >>
1391endobj
1392916 0 obj
1393(Errors while reading @file nodes)
1394endobj
1395917 0 obj
1396<< /S /GoTo /D (section.24.5) >>
1397endobj
1398920 0 obj
1399(Errors while writing @file nodes)
1400endobj
1401921 0 obj
1402<< /S /GoTo /D (section.24.6) >>
1403endobj
1404924 0 obj
1405(Format of .leo files)
1406endobj
1407925 0 obj
1408<< /S /GoTo /D (section.24.7) >>
1409endobj
1410928 0 obj
1411(Format of external files)
1412endobj
1413929 0 obj
1414<< /S /GoTo /D (section.24.8) >>
1415endobj
1416932 0 obj
1417(Unicode reference)
1418endobj
1419933 0 obj
1420<< /S /GoTo /D (chapter.25) >>
1421endobj
1422936 0 obj
1423(What's New in Leo 4.7)
1424endobj
1425937 0 obj
1426<< /S /GoTo /D (section.25.1) >>
1427endobj
1428940 0 obj
1429(Leo supports Python 3.x)
1430endobj
1431941 0 obj
1432<< /S /GoTo /D (section.25.2) >>
1433endobj
1434944 0 obj
1435(Improved file handling)
1436endobj
1437945 0 obj
1438<< /S /GoTo /D (section.25.3) >>
1439endobj
1440948 0 obj
1441(New command-line options)
1442endobj
1443949 0 obj
1444<< /S /GoTo /D (section.25.4) >>
1445endobj
1446952 0 obj
1447(New commands)
1448endobj
1449953 0 obj
1450<< /S /GoTo /D (section.25.5) >>
1451endobj
1452956 0 obj
1453(New settings)
1454endobj
1455957 0 obj
1456<< /S /GoTo /D (section.25.6) >>
1457endobj
1458960 0 obj
1459(Improved plugins)
1460endobj
1461961 0 obj
1462<< /S /GoTo /D (chapter.26) >>
1463endobj
1464964 0 obj
1465(What's New in Leo 4.6)
1466endobj
1467965 0 obj
1468<< /S /GoTo /D (section.26.1) >>
1469endobj
1470968 0 obj
1471(Improved unit testing)
1472endobj
1473969 0 obj
1474<< /S /GoTo /D (section.26.2) >>
1475endobj
1476972 0 obj
1477(Improved file handling)
1478endobj
1479973 0 obj
1480<< /S /GoTo /D (section.26.3) >>
1481endobj
1482976 0 obj
1483(Improved handling of rST files)
1484endobj
1485977 0 obj
1486<< /S /GoTo /D (section.26.4) >>
1487endobj
1488980 0 obj
1489(New code features)
1490endobj
1491981 0 obj
1492<< /S /GoTo /D (section.26.5) >>
1493endobj
1494984 0 obj
1495(New command-line options)
1496endobj
1497985 0 obj
1498<< /S /GoTo /D (section.26.6) >>
1499endobj
1500988 0 obj
1501(New commands)
1502endobj
1503989 0 obj
1504<< /S /GoTo /D (section.26.7) >>
1505endobj
1506992 0 obj
1507(New and improved directives)
1508endobj
1509993 0 obj
1510<< /S /GoTo /D (section.26.8) >>
1511endobj
1512996 0 obj
1513(New settings)
1514endobj
1515997 0 obj
1516<< /S /GoTo /D (section.26.9) >>
1517endobj
15181000 0 obj
1519(Plugins)
1520endobj
15211001 0 obj
1522<< /S /GoTo /D (chapter.27) >>
1523endobj
15241004 0 obj
1525(What's New in Leo 4.5)
1526endobj
15271005 0 obj
1528<< /S /GoTo /D (section.27.1) >>
1529endobj
15301008 0 obj
1531(Major new features)
1532endobj
15331009 0 obj
1534<< /S /GoTo /D (section.27.2) >>
1535endobj
15361012 0 obj
1537(Major code reorganizations)
1538endobj
15391013 0 obj
1540<< /S /GoTo /D (section.27.3) >>
1541endobj
15421016 0 obj
1543(Minor new features)
1544endobj
15451017 0 obj
1546<< /S /GoTo /D (section.27.4) >>
1547endobj
15481020 0 obj
1549(New settings)
1550endobj
15511021 0 obj
1552<< /S /GoTo /D (chapter.28) >>
1553endobj
15541024 0 obj
1555(What's New in Leo 4.4.7 and Leo 4.4.8)
1556endobj
15571025 0 obj
1558<< /S /GoTo /D (section.28.1) >>
1559endobj
15601028 0 obj
1561(New features)
1562endobj
15631029 0 obj
1564<< /S /GoTo /D (section.28.2) >>
1565endobj
15661032 0 obj
1567(New and improved plugins)
1568endobj
15691033 0 obj
1570<< /S /GoTo /D (section.28.3) >>
1571endobj
15721036 0 obj
1573(New settings)
1574endobj
15751037 0 obj
1576<< /S /GoTo /D (chapter.29) >>
1577endobj
15781040 0 obj
1579(What's New in Leo 4.4.6)
1580endobj
15811041 0 obj
1582<< /S /GoTo /D (section.29.1) >>
1583endobj
15841044 0 obj
1585(New commands)
1586endobj
15871045 0 obj
1588<< /S /GoTo /D (section.29.2) >>
1589endobj
15901048 0 obj
1591(New features)
1592endobj
15931049 0 obj
1594<< /S /GoTo /D (section.29.3) >>
1595endobj
15961052 0 obj
1597(New settings)
1598endobj
15991053 0 obj
1600<< /S /GoTo /D (chapter.30) >>
1601endobj
16021056 0 obj
1603(What's New in Leo 4.4.5)
1604endobj
16051057 0 obj
1606<< /S /GoTo /D (section.30.1) >>
1607endobj
16081060 0 obj
1609(Bug fixed)
1610endobj
16111061 0 obj
1612<< /S /GoTo /D (section.30.2) >>
1613endobj
16141064 0 obj
1615(New features)
1616endobj
16171065 0 obj
1618<< /S /GoTo /D (section.30.3) >>
1619endobj
16201068 0 obj
1621(New commands)
1622endobj
16231069 0 obj
1624<< /S /GoTo /D (section.30.4) >>
1625endobj
16261072 0 obj
1627(New settings)
1628endobj
16291073 0 obj
1630<< /S /GoTo /D (chapter.31) >>
1631endobj
16321076 0 obj
1633(What's New in Leo 4.4.4)
1634endobj
16351077 0 obj
1636<< /S /GoTo /D (section.31.1) >>
1637endobj
16381080 0 obj
1639(The Great Graph Aha)
1640endobj
16411081 0 obj
1642<< /S /GoTo /D (section.31.2) >>
1643endobj
16441084 0 obj
1645(Added support for @auto files)
1646endobj
16471085 0 obj
1648<< /S /GoTo /D (section.31.3) >>
1649endobj
16501088 0 obj
1651(New commands for resolving cvs conflicts)
1652endobj
16531089 0 obj
1654<< /S /GoTo /D (section.31.4) >>
1655endobj
16561092 0 obj
1657(New kinds of settings trees)
1658endobj
16591093 0 obj
1660<< /S /GoTo /D (section.31.5) >>
1661endobj
16621096 0 obj
1663(New plugins)
1664endobj
16651097 0 obj
1666<< /S /GoTo /D (section.31.6) >>
1667endobj
16681100 0 obj
1669(Leo's core is now compatible with jython)
1670endobj
16711101 0 obj
1672<< /S /GoTo /D (section.31.7) >>
1673endobj
16741104 0 obj
1675(Improved prototype for icons in headlines)
1676endobj
16771105 0 obj
1678<< /S /GoTo /D (section.31.8) >>
1679endobj
16801108 0 obj
1681(Minor improvements)
1682endobj
16831109 0 obj
1684<< /S /GoTo /D (section.31.9) >>
1685endobj
16861112 0 obj
1687(Summary of new commands)
1688endobj
16891113 0 obj
1690<< /S /GoTo /D (chapter.32) >>
1691endobj
16921116 0 obj
1693(What's New in Leo 4.4.3)
1694endobj
16951117 0 obj
1696<< /S /GoTo /D (section.32.1) >>
1697endobj
16981120 0 obj
1699(Important new features)
1700endobj
17011121 0 obj
1702<< /S /GoTo /D (section.32.2) >>
1703endobj
17041124 0 obj
1705(New commands)
1706endobj
17071125 0 obj
1708<< /S /GoTo /D (section.32.3) >>
1709endobj
17101128 0 obj
1711(New settings)
1712endobj
17131129 0 obj
1714<< /S /GoTo /D (section.32.4) >>
1715endobj
17161132 0 obj
1717(Plugins)
1718endobj
17191133 0 obj
1720<< /S /GoTo /D (section.32.5) >>
1721endobj
17221136 0 obj
1723(Minor improvements)
1724endobj
17251137 0 obj
1726<< /S /GoTo /D (chapter.33) >>
1727endobj
17281140 0 obj
1729(What's New in Leo 4.4.2)
1730endobj
17311141 0 obj
1732<< /S /GoTo /D (section.33.1) >>
1733endobj
17341144 0 obj
1735(A major code reorg)
1736endobj
17371145 0 obj
1738<< /S /GoTo /D (section.33.2) >>
1739endobj
17401148 0 obj
1741(New commands)
1742endobj
17431149 0 obj
1744<< /S /GoTo /D (section.33.3) >>
1745endobj
17461152 0 obj
1747(New features)
1748endobj
17491153 0 obj
1750<< /S /GoTo /D (section.33.4) >>
1751endobj
17521156 0 obj
1753(New and improved plugins)
1754endobj
17551157 0 obj
1756<< /S /GoTo /D (section.33.5) >>
1757endobj
17581160 0 obj
1759(Settings)
1760endobj
17611161 0 obj
1762<< /S /GoTo /D (section.33.6) >>
1763endobj
17641164 0 obj
1765(ZODB scripting)
1766endobj
17671165 0 obj
1768<< /S /GoTo /D (chapter.34) >>
1769endobj
17701168 0 obj
1771(What's New in Leo 4.4.1)
1772endobj
17731169 0 obj
1774<< /S /GoTo /D (section.34.1) >>
1775endobj
17761172 0 obj
1777(New commands)
1778endobj
17791173 0 obj
1780<< /S /GoTo /D (section.34.2) >>
1781endobj
17821176 0 obj
1783(New features)
1784endobj
17851177 0 obj
1786<< /S /GoTo /D (section.34.3) >>
1787endobj
17881180 0 obj
1789(New and improved plugins)
1790endobj
17911181 0 obj
1792<< /S /GoTo /D (section.34.4) >>
1793endobj
17941184 0 obj
1795(New settings)
1796endobj
17971185 0 obj
1798<< /S /GoTo /D (section.34.5) >>
1799endobj
18001188 0 obj
1801(Improved settings)
1802endobj
18031189 0 obj
1804<< /S /GoTo /D (section.34.6) >>
1805endobj
18061192 0 obj
1807(Minor improvements)
1808endobj
18091193 0 obj
1810<< /S /GoTo /D (chapter.35) >>
1811endobj
18121196 0 obj
1813(What's New in Leo 4.4)
1814endobj
18151197 0 obj
1816<< /S /GoTo /D (section.35.1) >>
1817endobj
18181200 0 obj
1819(New commands)
1820endobj
18211201 0 obj
1822<< /S /GoTo /D (section.35.2) >>
1823endobj
18241204 0 obj
1825(New features)
1826endobj
18271205 0 obj
1828<< /S /GoTo /D (section.35.3) >>
1829endobj
18301208 0 obj
1831(Added new convenience methods for scripts and plugins)
1832endobj
18331209 0 obj
1834<< /S /GoTo /D (section.35.4) >>
1835endobj
18361212 0 obj
1837(New and improved plugins)
1838endobj
18391213 0 obj
1840<< /S /GoTo /D (section.35.5) >>
1841endobj
18421216 0 obj
1843(New and improved settings)
1844endobj
18451217 0 obj
1846<< /S /GoTo /D (chapter.36) >>
1847endobj
18481220 0 obj
1849(Indices and tables)
1850endobj
18511221 0 obj
1852<< /S /GoTo /D [1222 0 R /Fit ] >>
1853endobj
18541224 0 obj <<
1855/Length 267
1856/Filter /FlateDecode
1857>>
1858stream
1859xÚ½�=OÄ0
0†÷ü1860†÷ü
1861�­DŒ�ï¬HÒG·»*Zn q
1'þ=.©(;CbçÕë'ÖKp‚+Ese¹ ¢�2¦1862'þ=.©(;CbçÕë'ÖKp‚+Ese¹ ¢�2¦
2£¢Y|R„ÒÍçx€ïÏÍù×ë×â:£1863£¢Y|R„ÒÍçx€ïÏÍù×ë×â:£
3~Ú{»'èDY‹=ç§OÏÎ3š¤à^Ý-ý1864~Ú{»'èDY‹=ç§OÏÎ3š¤à^Ý-ý
1865AK
1866z‰á¢Qç—&�qSdh
4ÁÅŒ†œÄå�‚�¦ƒmuÓ¿Ôûf-Þ1867ÁÅŒ†œÄå�‚�¦ƒmuÓ¿Ôûf-Þ
51868
6Ñ°w“WgÂä1869Ñ°w“WgÂä
7hŠwÓ}ûÖ×"¦J¸zGdžÛa¤B+ŠæÈh­/€UW³¯Ní±6Tu…s�¥núv, ËÀŒÙ{3�BB—d)`"[@·í»Lyª˜ÏJcˆiÿ“ϪQWZu…1870hŠwÓ}ûÖ×"¦J¸zGdžÛa¤B+ŠæÈh­/€UW³¯Ní±6Tu…s�¥núv, ËÀŒÙ{3�BB—d)`"[@·í»Lyª˜ÏJcˆiÿ“ϪQWZu…
1871endstream
1872endobj
18731222 0 obj <<
1874/Type /Page
1875/Contents 1224 0 R
1876/Resources 1223 0 R
1877/MediaBox [0 0 595.276 841.89]
1878/Parent 1230 0 R
1879>> endobj
18801225 0 obj <<
1881/D [1222 0 R /XYZ 72 794.796 null]
1882>> endobj
18831226 0 obj <<
1884/D [1222 0 R /XYZ 72 769.89 null]
1885>> endobj
18861223 0 obj <<
1887/Font << /F28 1227 0 R /F29 1228 0 R /F31 1229 0 R >>
1888/ProcSet [ /PDF /Text ]
1889>> endobj
18901233 0 obj <<
1891/Length 19
1892/Filter /FlateDecode
1893>>
1894stream
1895xÚ3PHW0Ppç2ÀAc(á
1896endstream
1897endobj
18981232 0 obj <<
1899/Type /Page
1900/Contents 1233 0 R
1901/Resources 1231 0 R
1902/MediaBox [0 0 595.276 841.89]
1903/Parent 1230 0 R
1904>> endobj
19051234 0 obj <<
1906/D [1232 0 R /XYZ 72 794.796 null]
1907>> endobj
19081231 0 obj <<
1909/ProcSet [ /PDF ]
1910>> endobj
19111278 0 obj <<
1912/Length 1468
1913/Filter /FlateDecode
1914>>
1915stream
1916xÚí›]SÛ8†ïó+|·öÌÆH²eËW;,K[:¥Ð¦;Óí…±E¢Á‘‚?J鯯Œd‡Ø�¥‹ÜnÁ7XQŒäñ£stΫ`Í-`½œ}ýs6Ùy�ˆ…|7$!´fç–G7ò‰à"X³Ôúhï
8½�í¿��8Ÿf¯'²1917½�í¿��8Ÿf¯'²
9¸^èË¿> ¬\ŽÖë|ÿRŽíA+r£ 1918¸^èË¿> ¬\ŽÖë|ÿRŽíA+r£ 
10çÜšz¸øÖ4‚n€õØ»ÉÂöUFÓ9]R^j1919çÜšz¸øÖ4‚n€õØ»ÉÂöUFÓ9]R^j
11ý�ÖÇ)&Èv�)à]ü(zü(� ±Ol¸Ñûpœòö)„n„±"÷†Šß1920ý�ÖÇ)&Èv�)à]ü(zü(� ±Ol¸Ñûpœòö)„n„±"÷†Šß
12Œí™"1921Œí™"
13ìÙj¼a åíÎM<<Büé¥M’Û6 }iîÒ$‘1922ìÙj¼a åíÎM<<Büé¥M’Û6 }iîÒ$‘
14‰{œ;�Øô<N:}?pQ$GS÷yßé¬i3ÀÆtq©VჀMÅ*£êó®zõá$¾f|®¿8•þ¹1923‰{œ;�Øô<N:}?pQ$GS÷yßé¬i3ÀÆtq©VჀMÅ*£êó®zõá$¾f|®¿8•þ¹
1924»/E˜`?Î[5/¦³âÕ¤L¯ùœÖžësýØ"«J&xœ_wǾÁ…�Íy¯M–±º
15µ%q¡Þñu¹|gvÁxIs}ój•±$®‰wŸ21925µ%q¡Þñu¹|gvÁxIs}ój•±$®‰wŸ2
16Ã'‰fÁ1926Ã'‰fÁ
170Î+þ»ji19270Î+þ»ji
18ƒØ¦\¿û4eIYû‚Î#y!1928ƒØ¦\¿û4eIYû‚Î#y!
19Më¿`1929Më¿`
20¶©ðh�ð1930¶©ðh�ð
21;˨»RvFóó*S=í÷"¿ˆŒô~2½¢ZÑüLµå¶›1.½`—GÓû_2ä�­Í/¡Y&,½¯1931;˨»RvFóó*S=í÷"¿ˆŒô~2½¢ZÑüLµå¶›1.½`—GÓû_2ä�­Í/¡Y&,½¯
221932
23öB•Ž1Ê#0†¦1*l%åi¡Ýf"–2>.iË7ÕVÊd?“ž5_eL†+q©£˜U.æy¼\nÙ7e¼ü+Pø!/ü1933öB•Ž1Ê#0†¦1*l%åi¡Ýf"–2>.iË7ÕVÊd?“ž5_eL†+q©£˜U.æy¼\nÙ7e¼ü+Pø!/ü
24ß—Š¤ªå õÝt•Bd=‚d´1934ß—Š¤ªå õÝt•Bd=‚d´
25󠺑b½—1935󠺑b½—
26½Ô+žÒ¼(¥i´ £8¿m=7F¥‡¹.Jºì)N¡G~YÛ^?ÊNäk^‡tWr{ѶB1936½Ô+žÒ¼(¥i´ £8¿m=7F¥‡¹.Jºì)N¡G~YÛ^?ÊNäk^‡tWr{ѶB
276ç4í8©õ19376ç4í8©õ
28Ò°V"/å1938Ò°V"/å
29]™�§eƒâ|Þ¤¤—•�»‚ëöfÄ>?ýÁdÀ6ȇÈp/œØ»Ž�íw]º1939]™�§eƒâ|Þ¤¤—•�»‚ëöfÄ>?ýÁdÀ6ȇÈp/œØ»Ž�íw]º
30ôz�Ôå}¸^m.­—´,[÷¹Ed1940ôz�Ôå}¸^m.­—´,[÷¹Ed
31"ülWÕ�Ë1941"ülWÕ�Ë
32@-õz†¼Å—Þ:Ë#Î�qúÆöâ8ç-ÌRoÌU#[n¡ë‡þÒ1942@-õz†¼Å—Þ:Ë#Î�qúÆöâ8ç-ÌRoÌU#[n¡ë‡þÒ
33HSRô+¥„écŽ…¨21943HSRô+¥„écŽ…¨2
34.1944.
35¨Ëém¤7�Ž/C°r¡>�}Íwæ¬ÜYÌwŠÏ|'ù\üÑ#O¼§1945¨Ëém¤7�Ž/C°r¡>�}Íwæ¬ÜYÌwŠÏ|'ù\üÑ#O¼§
361946
37%@ö åN{B¬êL›­¥êìzT{\u"HÆiÖGäôËB††6�Ó¢urû_JšóXç/XF{™1947%@ö åN{B¬êL›­¥êìzT{\u"HÆiÖGäôËB††6�Ó¢urû_JšóXç/XF{™
1948ÉèãÌù8SË^U”bɾÞ|ÏÃ
38ã#CgŽ‡m¶êêŽ3'6Mœ]VÛ¬ÑYc‰ I–¹¨ÎšJ1949ã#CgŽ‡m¶êêŽ3'6Mœ]VÛ¬ÑYc‰ I–¹¨ÎšJ
39uˆmGª!G“4ŽÑ7§œr–ˆT#<(Š-A2frCq1950uˆmGª!G“4ŽÑ7§œr–ˆT#<(Š-A2frCq
40Dý µªãÈIäÔÿš´wÔ UƒôJƒný<^í)nó¦üé²bùöšMŸøãªú®åä™òîÐEV§DóÕÑá¾Öç%¶¤ýb5ïÉIƒ™¿A^žæµ‘x6ŠS1951Dý µªãÈIäÔÿš´wÔ UƒôJƒný<^í)nó¦üé²bùöšMŸøãªú®åä™òîÐEV§DóÕÑá¾Öç%¶¤ýb5ïÉIƒ™¿A^žæµ‘x6ŠS
41 “t6G�o¯¾ô$ÿÀ1952 “t6G�o¯¾ô$ÿÀ
42lH`¾¶Í;oà9Œ“£Õü»\E£ÜB £„JIÉ4<Uæ×Ïb1953lH`¾¶Í;oà9Œ“£Õü»\E£ÜB £„JIÉ4<Uæ×Ïb
43ž"==^ž1^�æ¥Ò“8¹X«ÛÍÙ~z«1954ž"==^ž1^�æ¥Ò“8¹X«ÛÍÙ~z«
444«e[ͤºòbKEn}P÷lH19554«e[ͤºòbKEn}P÷lH
45Ĭ1956Ĭ
46C�è}Åù½IxL11957C�è}Åù½IxL1
47Ú˜oÌÆÈ]UÝu.–P‰à…hT‚«ÖEö¶²àùù=sL¢{™0½I�Åe¢O|–uÖß+Yc¾-”°1J8Sò  ½Ý­v‹ÕºâiÝL4¹p °û…Ô‘>Ÿm X=ƒ´~2[t�ëfN„ìJ&¿,Îî—RÂ!1958Ú˜oÌÆÈ]UÝu.–P‰à…hT‚«ÖEö¶²àùù=sL¢{™0½I�Åe¢O|–uÖß+Yc¾-”°1J8Sò  ½Ý­v‹ÕºâiÝL4¹p °û…Ô‘>Ÿm X=ƒ´~2[t�ëfN„ìJ&¿,Îî—RÂ!
1959kP+¥t²óeÜXúÝ~6"pÜA¿o‘™ªµC­ªr¤~ÑV”.cžö³üÄ+i†Ö9°Ò×ýÙäreXÐ
1960‘…}¡•,'?+•Ý¯k‚±®nnZZ>†.
1961Ùά“É»ö×îkŸ–/m"…™mÌ.gý€pŠ
1962endstream
1963endobj
19641277 0 obj <<
1965/Type /Page
1966/Contents 1278 0 R
1967/Resources 1276 0 R
1968/MediaBox [0 0 595.276 841.89]
1969/Parent 1230 0 R
1970/Annots [ 1235 0 R 1236 0 R 1237 0 R 1238 0 R 1239 0 R 1240 0 R 1241 0 R 1242 0 R 1243 0 R 1244 0 R 1245 0 R 1246 0 R 1247 0 R 1248 0 R 1249 0 R 1250 0 R 1251 0 R 1252 0 R 1253 0 R 1254 0 R 1255 0 R 1256 0 R 1257 0 R 1258 0 R 1259 0 R 1260 0 R 1261 0 R 1262 0 R 1263 0 R 1264 0 R 1265 0 R 1266 0 R 1267 0 R 1268 0 R 1269 0 R 1270 0 R 1271 0 R 1272 0 R 1273 0 R 1274 0 R ]
1971>> endobj
19721235 0 obj <<
1973/Type /Annot
1974/Border[0 0 0]/H/I/C[1 0 0]
1975/Rect [85.948 585.417 166.824 596.321]
1976/Subtype /Link
1977/A << /S /GoTo /D (chapter*.1) >>
1978>> endobj
19791236 0 obj <<
1980/Type /Annot
1981/Border[0 0 0]/H/I/C[1 0 0]
1982/Rect [85.948 575.519 164.303 584.365]
1983/Subtype /Link
1984/A << /S /GoTo /D (chapter*.1) >>
1985>> endobj
19861237 0 obj <<
1987/Type /Annot
1988/Border[0 0 0]/H/I/C[1 0 0]
1989/Rect [71.004 553.581 104.896 562.557]
1990/Subtype /Link
1991/A << /S /GoTo /D (chapter*.2) >>
1992>> endobj
19931238 0 obj <<
1994/Type /Annot
1995/Border[0 0 0]/H/I/C[1 0 0]
1996/Rect [71.004 529.76 224.547 540.639]
1997/Subtype /Link
1998/A << /S /GoTo /D (chapter*.3) >>
1999>> endobj
20001239 0 obj <<
2001/Type /Annot
2002/Border[0 0 0]/H/I/C[1 0 0]
2003/Rect [85.948 517.671 168.288 528.575]
2004/Subtype /Link
2005/A << /S /GoTo /D (section*.4) >>
2006>> endobj
20071240 0 obj <<
2008/Type /Annot
2009/Border[0 0 0]/H/I/C[1 0 0]
2010/Rect [85.948 505.716 269.487 516.619]
2011/Subtype /Link
2012/A << /S /GoTo /D (section*.4) >>
2013>> endobj
20141241 0 obj <<
2015/Type /Annot
2016/Border[0 0 0]/H/I/C[1 0 0]
2017/Rect [85.948 493.76 191.302 504.664]
2018/Subtype /Link
2019/A << /S /GoTo /D (section*.4) >>
2020>> endobj
20211242 0 obj <<
2022/Type /Annot
2023/Border[0 0 0]/H/I/C[1 0 0]
2024/Rect [85.948 481.805 211.496 492.709]
2025/Subtype /Link
2026/A << /S /GoTo /D (section*.4) >>
2027>> endobj
20281243 0 obj <<
2029/Type /Annot
2030/Border[0 0 0]/H/I/C[1 0 0]
2031/Rect [85.948 469.85 182.016 480.754]
2032/Subtype /Link
2033/A << /S /GoTo /D (section*.4) >>
2034>> endobj
20351244 0 obj <<
2036/Type /Annot
2037/Border[0 0 0]/H/I/C[1 0 0]
2038/Rect [85.948 459.952 182.973 468.799]
2039/Subtype /Link
2040/A << /S /GoTo /D (section*.4) >>
2041>> endobj
20421245 0 obj <<
2043/Type /Annot
2044/Border[0 0 0]/H/I/C[1 0 0]
2045/Rect [85.948 445.94 326.592 456.844]
2046/Subtype /Link
2047/A << /S /GoTo /D (section*.4) >>
2048>> endobj
20491246 0 obj <<
2050/Type /Annot
2051/Border[0 0 0]/H/I/C[1 0 0]
2052/Rect [85.948 433.984 228.233 444.888]
2053/Subtype /Link
2054/A << /S /GoTo /D (section*.4) >>
2055>> endobj
20561247 0 obj <<
2057/Type /Annot
2058/Border[0 0 0]/H/I/C[1 0 0]
2059/Rect [85.948 422.029 299.764 432.933]
2060/Subtype /Link
2061/A << /S /GoTo /D (section*.4) >>
2062>> endobj
20631248 0 obj <<
2064/Type /Annot
2065/Border[0 0 0]/H/I/C[1 0 0]
2066/Rect [85.948 410.074 276.651 420.978]
2067/Subtype /Link
2068/A << /S /GoTo /D (section*.4) >>
2069>> endobj
20701249 0 obj <<
2071/Type /Annot
2072/Border[0 0 0]/H/I/C[1 0 0]
2073/Rect [85.948 398.119 152.687 409.023]
2074/Subtype /Link
2075/A << /S /GoTo /D (section*.4) >>
2076>> endobj
20771250 0 obj <<
2078/Type /Annot
2079/Border[0 0 0]/H/I/C[1 0 0]
2080/Rect [71.004 376.625 92.682 387.215]
2081/Subtype /Link
2082/A << /S /GoTo /D (chapter*.5) >>
2083>> endobj
20841251 0 obj <<
2085/Type /Annot
2086/Border[0 0 0]/H/I/C[1 0 0]
2087/Rect [85.948 364.246 135.81 375.15]
2088/Subtype /Link
2089/A << /S /GoTo /D (section*.6) >>
2090>> endobj
20911252 0 obj <<
2092/Type /Annot
2093/Border[0 0 0]/H/I/C[1 0 0]
2094/Rect [85.948 352.291 143.561 363.195]
2095/Subtype /Link
2096/A << /S /GoTo /D (Item.10) >>
2097>> endobj
20981253 0 obj <<
2099/Type /Annot
2100/Border[0 0 0]/H/I/C[1 0 0]
2101/Rect [85.948 340.336 167.9 351.24]
2102/Subtype /Link
2103/A << /S /GoTo /D (Item.10) >>
2104>> endobj
21051254 0 obj <<
2106/Type /Annot
2107/Border[0 0 0]/H/I/C[1 0 0]
2108/Rect [85.948 328.381 279.889 339.284]
2109/Subtype /Link
2110/A << /S /GoTo /D (Item.10) >>
2111>> endobj
21121255 0 obj <<
2113/Type /Annot
2114/Border[0 0 0]/H/I/C[1 0 0]
2115/Rect [85.948 316.425 304.108 327.329]
2116/Subtype /Link
2117/A << /S /GoTo /D (Item.10) >>
2118>> endobj
21191256 0 obj <<
2120/Type /Annot
2121/Border[0 0 0]/H/I/C[1 0 0]
2122/Rect [85.948 304.47 169.852 315.374]
2123/Subtype /Link
2124/A << /S /GoTo /D (Item.10) >>
2125>> endobj
21261257 0 obj <<
2127/Type /Annot
2128/Border[0 0 0]/H/I/C[1 0 0]
2129/Rect [85.948 292.515 156.851 303.419]
2130/Subtype /Link
2131/A << /S /GoTo /D (Item.10) >>
2132>> endobj
21331258 0 obj <<
2134/Type /Annot
2135/Border[0 0 0]/H/I/C[1 0 0]
2136/Rect [85.948 280.56 169.902 291.464]
2137/Subtype /Link
2138/A << /S /GoTo /D (Item.15) >>
2139>> endobj
21401259 0 obj <<
2141/Type /Annot
2142/Border[0 0 0]/H/I/C[1 0 0]
2143/Rect [85.948 268.605 157.608 279.509]
2144/Subtype /Link
2145/A << /S /GoTo /D (Item.40) >>
2146>> endobj
21471260 0 obj <<
2148/Type /Annot
2149/Border[0 0 0]/H/I/C[1 0 0]
2150/Rect [85.948 258.707 148.532 267.553]
2151/Subtype /Link
2152/A << /S /GoTo /D (Item.45) >>
2153>> endobj
21541261 0 obj <<
2155/Type /Annot
2156/Border[0 0 0]/H/I/C[1 0 0]
2157/Rect [71.004 234.866 146.898 245.745]
2158/Subtype /Link
2159/A << /S /GoTo /D (chapter.1) >>
2160>> endobj
21611262 0 obj <<
2162/Type /Annot
2163/Border[0 0 0]/H/I/C[1 0 0]
2164/Rect [85.948 222.777 197.688 233.68]
2165/Subtype /Link
2166/A << /S /GoTo /D (section.1.1) >>
2167>> endobj
21681263 0 obj <<
2169/Type /Annot
2170/Border[0 0 0]/H/I/C[1 0 0]
2171/Rect [85.948 210.821 206.256 221.725]
2172/Subtype /Link
2173/A << /S /GoTo /D (section.1.2) >>
2174>> endobj
21751264 0 obj <<
2176/Type /Annot
2177/Border[0 0 0]/H/I/C[1 0 0]
2178/Rect [85.948 200.923 226.779 209.77]
2179/Subtype /Link
2180/A << /S /GoTo /D (section.1.3) >>
2181>> endobj
21821265 0 obj <<
2183/Type /Annot
2184/Border[0 0 0]/H/I/C[1 0 0]
2185/Rect [85.948 186.911 224.527 197.815]
2186/Subtype /Link
2187/A << /S /GoTo /D (section.1.4) >>
2188>> endobj
21891266 0 obj <<
2190/Type /Annot
2191/Border[0 0 0]/H/I/C[1 0 0]
2192/Rect [85.948 174.956 221.947 185.86]
2193/Subtype /Link
2194/A << /S /GoTo /D (section.1.5) >>
2195>> endobj
21961267 0 obj <<
2197/Type /Annot
2198/Border[0 0 0]/H/I/C[1 0 0]
2199/Rect [85.948 163.001 249.354 173.905]
2200/Subtype /Link
2201/A << /S /GoTo /D (section.1.6) >>
2202>> endobj
22031268 0 obj <<
2204/Type /Annot
2205/Border[0 0 0]/H/I/C[1 0 0]
2206/Rect [85.948 151.046 166.147 161.949]
2207/Subtype /Link
2208/A << /S /GoTo /D (section.1.7) >>
2209>> endobj
22101269 0 obj <<
2211/Type /Annot
2212/Border[0 0 0]/H/I/C[1 0 0]
2213/Rect [85.948 139.09 262.186 149.994]
2214/Subtype /Link
2215/A << /S /GoTo /D (section.1.8) >>
2216>> endobj
22171270 0 obj <<
2218/Type /Annot
2219/Border[0 0 0]/H/I/C[1 0 0]
2220/Rect [85.948 127.135 225.085 138.039]
2221/Subtype /Link
2222/A << /S /GoTo /D (section.1.9) >>
2223>> endobj
22241271 0 obj <<
2225/Type /Annot
2226/Border[0 0 0]/H/I/C[1 0 0]
2227/Rect [85.948 115.18 267.893 126.084]
2228/Subtype /Link
2229/A << /S /GoTo /D (section.1.10) >>
2230>> endobj
22311272 0 obj <<
2232/Type /Annot
2233/Border[0 0 0]/H/I/C[1 0 0]
2234/Rect [71.004 95.3 160.089 104.276]
2235/Subtype /Link
2236/A << /S /GoTo /D (chapter.2) >>
2237>> endobj
22381273 0 obj <<
2239/Type /Annot
2240/Border[0 0 0]/H/I/C[1 0 0]
2241/Rect [85.948 83.364 192.737 92.211]
2242/Subtype /Link
2243/A << /S /GoTo /D (section.2.1) >>
2244>> endobj
22451274 0 obj <<
2246/Type /Annot
2247/Border[0 0 0]/H/I/C[1 0 0]
2248/Rect [85.948 71.29 189.389 80.256]
2249/Subtype /Link
2250/A << /S /GoTo /D (section.2.2) >>
2251>> endobj
22526 0 obj <<
2253/D [1277 0 R /XYZ 72 600.215 null]
2254>> endobj
22551276 0 obj <<
2256/Font << /F28 1227 0 R /F31 1229 0 R /F38 1279 0 R >>
2257/ProcSet [ /PDF /Text ]
2258>> endobj
22591336 0 obj <<
2260/Length 1879
2261/Filter /FlateDecode
2262>>
2263stream
2264xÚíœßw›6ÇßóWð´ÙçÌ
48�$ÄžÚä$iwÚµKÓ“‡®Ä(¶V@2265�$ÄžÚä$iwÚµKÓ“‡®Ä(¶V@
49p²î¯Ÿ0’l#’懜&5/1ÇÆúè^Ýû½Wöœ™ã9Ç{žzt}�8ž„Pü…;¥¸`œ<9ÞÛ?Ýûõ(NäFØÇÎé…C°Aè„HœòCç4q>�|7O@€¼Ñá¿5-ó82266p²î¯Ÿ0’l#’懜&5/1ÇÆúè^Ýû½Wöœ™ã9Ç{žzt}�8ž„Pü…;¥¸`œ<9ÞÛ?Ýûõ(NäFØÇÎé…C°Aè„HœòCç4q>�|7O@€¼Ñá¿5-ó8
50O|ñì/ÏóSZµOâ<i^Ôs–·‡9OÄåϧ¿ë[s>MFîx‚<ï>À(zÀ¿wFx�Œ‚hãôíÙ‰—Op#„%()2267O|ñì/ÏóSZµOâ<i^Ôs–·‡9OÄåϧ¿ë[s>MFîx‚<ï>À(zÀ¿wFx�Œ‚hãôíÙ‰—Op#„%()
51”4®Y>k!Ð1@£ë¹]”<k�ø¢NYnƒ¡¿ˆúØ@Ϥؤ<WCÿSûpÉèØG£+cà}‚Ÿ¯¥<²iÝDÑ·FKŠoyI¥Û;fÓ2268”4®Y>k!Ð1@£ë¹]”<k�ø¢NYnƒ¡¿ˆúØ@Ϥؤ<WCÿSûpÉèØG£+cà}‚Ÿ¯¥<²iÝDÑ·FKŠoyI¥Û;fÓ
52&¬¤Óš5,/›3-)p€vKhÁC¡a-”Ð>LKV4~ñ—Mǘ'ÚWêElº¨jž±ÿô•7”~à2269&¬¤Óš5,/›3-)p€vKhÁC¡a-”Ð>LKV4~ñ—Mǘ'ÚWêElº¨jž±ÿô•7”~à
53p�КñÅa‘eqùµûq€2270p�КñÅa‘eqùµûq€
54òv[0£›("k#IñhQÖsZ¶ÖQÕ‹ÄDÂï�Pød-ÀŸ¸Œð'¾À2271òv[0£›("k#IñhQÖsZ¶ÖQÕ‹ÄDÂï�Pød-ÀŸ¸Œð'¾À
2272H‹µ‰ï=ñÑ+íðÞõFƒ7�x²ü?¶—ïr3ëÙÆúØ
55p´9ÉÈI&o¢½£šÆ5MÌ|2273p´9ÉÈI&o¢½£šÆ5MÌ|
56ÓÌÂü2274ÓÌÂü
2275-¹ˆÀõ%½}.œÂMè O_o�`d� Ê÷ß²jJÓ4Î)_Ñ, ƒÛñ!o‹Ž
57JÇ~V²•"ð¾2276JÇ~V²•"ð¾
582â³2Îd&ª›ž(7ð=à�Pð0G¯îm}šAíæ_¶Ÿ¾_2zÑ Ä_çñtº(…÷hŸ¿b"0/¥[á«ÛnÅ22772â³2Îd&ª›ž(7ð=à�Pð0G¯îm}šAíæ_¶Ÿ¾_2zÑ Ä_çñtº(…÷hŸ¿b"0/¥[á«ÛnÅ
59^ª¯¸üzYó�;_(|¬8ó®3¦wr–lj¯¼©é�^TßVŒ~O1DšË³LäMâ}xnÊ!|FæÚ;êÐRò µ'}×J¥{äPV2Ú˜ÎßB„wÇ…n‡�¶2278^ª¯¸üzYó�;_(|¬8ó®3¦wr–lj¯¼©é�^TßVŒ~O1DšË³LäMâ}xnÊ!|FæÚ;êÐRò µ'}×J¥{äPV2Ú˜ÎßB„wÇ…n‡�¶
60¥šžÐ2279¥šžÐ
61ZÒ|J%š8Mï!ñÀ é±É Yã¤Ô³Ãý–FƺÛIç¶c¼Í¤™I§XÈ2280ZÒ|J%š8Mï!ñÀ é±É Yã¤Ô³Ãý–FƺÛIç¶c¼Í¤™I§XÈ
62áH†%b™2281áH†%b™
63”YBò1G8´“ UL²¨¹X抔6‹œ¡äëaËV¶‰Vq�pØ5+*Ó#��ÕI›²HSÅK§sð‹ž��} ^4Ë®X£»·€Á�‡Ú€H¬A„]ˆG,•Goi¾0¢Yo¨sZ†–²¤c-2282”YBò1G8´“ UL²¨¹X抔6‹œ¡äëaËV¶‰Vq�pØ5+*Ó#��ÕI›²HSÅK§sð‹ž��} ^4Ë®X£»·€Á�‡Ú€H¬A„]ˆG,•Goi¾0¢Yo¨sZ†–²¤c-
64ð0aõõQ„rFÖ,wn(é½FˆýÞ}¨‘Àµ°Kíl2283ð0aõõQ„rFÖ,wn(é½FˆýÞ}¨‘Àµ°Kíl
65q.áKÍàzx j÷‚‡¬Á#]x¯hZÜ€2284q.áKÍàzx j÷‚‡¬Á#]x¯hZÜ€
66�aÑûŽo“¡b™¡j}Y«¥oXMW¢ôš Þ§8ûoB¶�®b�®žÍÇh$uÄ×íCʾŒA£æöÞñõúxHv»#“ØÊf°ÎM_­;p=›^gEÉQi‰w€h`k0‚a2285�aÑûŽo“¡b™¡j}Y«¥oXMW¢ôš Þ§8ûoB¶�®b�®žÍÇh$uÄ×íCʾŒA£æöÞñõúxHv»#“ØÊf°ÎM_­;p=›^gEÉQi‰w€h`k0‚a
67Ìã|¦ÔʇÿÁ—êÏfµé¶€|=éÑï2286Ìã|¦ÔʇÿÁ—êÏfµé¶€|=éÑï
68ïh‹þ4”þTwâu\±z.Gõk=7U· ˆG°ïHCíH—$BJ‚Ìx%–¼”Çüüo:­Í²L2287ïh‹þ4”þTwâu\±z.Gõk=7U· ˆG°ïHCíH—$BJ‚Ìx%–¼”Çüüo:­Í²L
692288
70öu3Ka{pzj·ú¾¤ mj“9Mn2289öu3Ka{pzj·ú¾¤ mj“9Mn
71áÕw‚¦2290áÕw‚¦
72L¹ß™«¼ìU)<©ò¸¼ãyS.½CçÔTŒÂݵÌ|kÌ”�…{¥óÐ7¬ªe‘t…‹)?©–I]?åÍÕ^“83K¦øéí/±XµHC©rÇ´îià¨ÖÏÎiœ¬ô2291L¹ß™«¼ìU)<©ò¸¼ãyS.½CçÔTŒÂݵÌ|kÌ”�…{¥óÐ7¬ªe‘t…‹)?©–I]?åÍÕ^“83K¦øéí/±XµHC©rÇ´îià¨ÖÏÎiœ¬ô
73ýšsÝ‘WË&£°õd7û؈n,ÂÀ·‡Ñ3êkÝ©Ñ82292ýšsÝ‘WË&£°õd7û؈n,ÂÀ·‡Ñ3êkÝ©Ñ8
74Âh×ú¢À%¢2293Âh×ú¢À%¢
75æÕ¢Ô2294æÕ¢Ô
76êy,G½àkû–Zdj'ÏeãÛâ”™]ª2295êy,G½àkû–Zdj'ÏeãÛâ”™]ª
77ëŠF:€SZÙËUkÍ”�ZñU[qêVB<,þ�gOjÃÇé8@£2nJ±²—mÕ·qýÖQ0ÄÝ÷â­ñÞxB£�E²Ö÷©·jZRÚÓß2TƒîH2296ëŠF:€SZÙËUkÍ”�ZñU[qêVB<,þ�gOjÃÇé8@£2nJ±²—mÕ·qýÖQ0ÄÝ÷â­ñÞxB£�E²Ö÷©·jZRÚÓß2TƒîH
78Û#Zb¯ó¦üsÙX2297Û#Zb¯ó¦üsÙX
79ÿ¢ÉMUSTgûvµUÌ=§2298ÿ¢ÉMUSTgûvµUÌ=§
80`l�ñ[01Ÿ2299`l�ñ[01Ÿ
81õ2300õ
822301
83/6/ÔÂÌL]‚ �‹ô°µ(=8úCð¢Tݽ¦�`hÕmÀ„öì¶`Žùt-ÔÖ»3–’]ß®ëFƒ_-QÉÒ72302/6/ÔÂÌL]‚ �‹ô°µ(=8úCð¢Tݽ¦�`hÕmÀ„öì¶`Žùt-ÔÖ»3–’]ß®ëFƒ_-QÉÒ7
842303
85ñгMK-=ê2304ñгMK-=ê
86úŽLªöû¤”§ü<N+·�¾Í_,ØÙeƒØc‚[&‡mÜœË-&{’Š(ÚÐÃ"8t<-€a2305úŽLªöû¤”§ü<N+·�¾Í_,ØÙeƒØc‚[&‡mÜœË-&{’Š(ÚÐÃ"8t<-€a
87p£r¨ë,^/³ó¢©2306p£r¨ë,^/³ó¢©
88®2307®
89o‘'<>O2308o‘'<>O
90b´³at€g¯²H‹ç„Êý9kii±¸õúñ,·³nŒo/@‹Z0»O•Ý$L5tk�¨k>u|nÆÊ2309b´³at€g¯²H‹ç„Êý9kii±¸õúñ,·³nŒo/@‹Z0»O•Ý$L5tk�¨k>u|nÆÊ
912310
92ÒÎ-ÐÒfä{7¥� ‹žÊØ,ª…„™ÛT‰f2311ÒÎ-ÐÒfä{7¥� ‹žÊØ,ª…„™ÛT‰f
93&c¹4®L=ÈC?t Ý"±§½ùZ ¨hÙ“ã$´Ùž¤N³i�ZJ~€>Ã-˜�EFR8èþdTS¸®º�-=^ïŠ%3j®GÁÁVîÂAªgc"2312&c¹4®L=ÈC?t Ý"±§½ùZ ¨hÙ“ã$´Ùž¤N³i�ZJ~€>Ã-˜�EFR8èþdTS¸®º�-=^ïŠ%3j®GÁÁVîÂAªgc"
94W¹ò\ëƒolßÝ´§"®ç&ˆg�Û„Ô‘läãáéÞ?{@2313W¹ò\ëƒolßÝ´§"®ç&ˆg�Û„Ô‘läãáéÞ?{@
95zpBßAÐõqèL³½OŸ='§o¨EĹZ¾(s ®bqœ:öþl~Ô_oo}¿¥ÊØÆ'‹Oü¦õ‚2314zpBßAÐõqèL³½OŸ='§o¨EĹZ¾(s ®bqœ:öþl~Ô_oo}¿¥ÊØÆ'‹Oü¦õ‚
2315endstream
2316endobj
23171335 0 obj <<
2318/Type /Page
2319/Contents 1336 0 R
2320/Resources 1334 0 R
2321/MediaBox [0 0 595.276 841.89]
2322/Parent 1230 0 R
2323/Annots [ 1275 0 R 1280 0 R 1281 0 R 1282 0 R 1283 0 R 1284 0 R 1285 0 R 1286 0 R 1287 0 R 1288 0 R 1289 0 R 1290 0 R 1291 0 R 1292 0 R 1293 0 R 1294 0 R 1295 0 R 1296 0 R 1297 0 R 1298 0 R 1299 0 R 1300 0 R 1301 0 R 1302 0 R 1303 0 R 1304 0 R 1305 0 R 1306 0 R 1307 0 R 1308 0 R 1309 0 R 1310 0 R 1311 0 R 1312 0 R 1313 0 R 1314 0 R 1315 0 R 1316 0 R 1317 0 R 1318 0 R 1319 0 R 1320 0 R 1321 0 R 1322 0 R 1323 0 R 1324 0 R 1325 0 R 1326 0 R 1327 0 R 1328 0 R 1329 0 R 1330 0 R 1331 0 R 1332 0 R ]
2324>> endobj
23251275 0 obj <<
2326/Type /Annot
2327/Border[0 0 0]/H/I/C[1 0 0]
2328/Rect [85.948 758.712 236.472 767.678]
2329/Subtype /Link
2330/A << /S /GoTo /D (section.2.3) >>
2331>> endobj
23321280 0 obj <<
2333/Type /Annot
2334/Border[0 0 0]/H/I/C[1 0 0]
2335/Rect [85.948 744.819 257.582 755.723]
2336/Subtype /Link
2337/A << /S /GoTo /D (section.2.4) >>
2338>> endobj
23391281 0 obj <<
2340/Type /Annot
2341/Border[0 0 0]/H/I/C[1 0 0]
2342/Rect [85.948 734.921 177.245 743.768]
2343/Subtype /Link
2344/A << /S /GoTo /D (section.2.5) >>
2345>> endobj
23461282 0 obj <<
2347/Type /Annot
2348/Border[0 0 0]/H/I/C[1 0 0]
2349/Rect [85.948 722.966 200.876 731.812]
2350/Subtype /Link
2351/A << /S /GoTo /D (section.2.6) >>
2352>> endobj
23531283 0 obj <<
2354/Type /Annot
2355/Border[0 0 0]/H/I/C[1 0 0]
2356/Rect [85.948 708.953 280.556 719.857]
2357/Subtype /Link
2358/A << /S /GoTo /D (section.2.7) >>
2359>> endobj
23601284 0 obj <<
2361/Type /Annot
2362/Border[0 0 0]/H/I/C[1 0 0]
2363/Rect [85.948 696.998 152.587 707.902]
2364/Subtype /Link
2365/A << /S /GoTo /D (section.2.8) >>
2366>> endobj
23671285 0 obj <<
2368/Type /Annot
2369/Border[0 0 0]/H/I/C[1 0 0]
2370/Rect [85.948 685.043 167.252 695.947]
2371/Subtype /Link
2372/A << /S /GoTo /D (section.2.9) >>
2373>> endobj
23741286 0 obj <<
2375/Type /Annot
2376/Border[0 0 0]/H/I/C[1 0 0]
2377/Rect [71.004 663.26 150.774 674.139]
2378/Subtype /Link
2379/A << /S /GoTo /D (chapter.3) >>
2380>> endobj
23811287 0 obj <<
2382/Type /Annot
2383/Border[0 0 0]/H/I/C[1 0 0]
2384/Rect [85.948 653.227 176.657 662.074]
2385/Subtype /Link
2386/A << /S /GoTo /D (section.3.1) >>
2387>> endobj
23881288 0 obj <<
2389/Type /Annot
2390/Border[0 0 0]/H/I/C[1 0 0]
2391/Rect [85.948 639.215 168.358 650.119]
2392/Subtype /Link
2393/A << /S /GoTo /D (section.3.2) >>
2394>> endobj
23951289 0 obj <<
2396/Type /Annot
2397/Border[0 0 0]/H/I/C[1 0 0]
2398/Rect [85.948 629.317 171.396 638.164]
2399/Subtype /Link
2400/A << /S /GoTo /D (section.3.3) >>
2401>> endobj
24021290 0 obj <<
2403/Type /Annot
2404/Border[0 0 0]/H/I/C[1 0 0]
2405/Rect [71.004 605.476 195.406 616.355]
2406/Subtype /Link
2407/A << /S /GoTo /D (chapter.4) >>
2408>> endobj
24091291 0 obj <<
2410/Type /Annot
2411/Border[0 0 0]/H/I/C[1 0 0]
2412/Rect [85.948 593.387 337.393 604.291]
2413/Subtype /Link
2414/A << /S /GoTo /D (section.4.1) >>
2415>> endobj
24161292 0 obj <<
2417/Type /Annot
2418/Border[0 0 0]/H/I/C[1 0 0]
2419/Rect [85.948 581.432 319.33 592.336]
2420/Subtype /Link
2421/A << /S /GoTo /D (section.4.2) >>
2422>> endobj
24231293 0 obj <<
2424/Type /Annot
2425/Border[0 0 0]/H/I/C[1 0 0]
2426/Rect [85.948 569.476 247.281 580.38]
2427/Subtype /Link
2428/A << /S /GoTo /D (section.4.3) >>
2429>> endobj
24301294 0 obj <<
2431/Type /Annot
2432/Border[0 0 0]/H/I/C[1 0 0]
2433/Rect [85.948 559.579 235.495 568.425]
2434/Subtype /Link
2435/A << /S /GoTo /D (section.4.4) >>
2436>> endobj
24371295 0 obj <<
2438/Type /Annot
2439/Border[0 0 0]/H/I/C[1 0 0]
2440/Rect [85.948 547.623 167.252 556.47]
2441/Subtype /Link
2442/A << /S /GoTo /D (section.4.5) >>
2443>> endobj
24441296 0 obj <<
2445/Type /Annot
2446/Border[0 0 0]/H/I/C[1 0 0]
2447/Rect [71.004 523.783 188.861 534.662]
2448/Subtype /Link
2449/A << /S /GoTo /D (chapter.5) >>
2450>> endobj
24511297 0 obj <<
2452/Type /Annot
2453/Border[0 0 0]/H/I/C[1 0 0]
2454/Rect [85.948 511.693 178.6 522.597]
2455/Subtype /Link
2456/A << /S /GoTo /D (section.5.1) >>
2457>> endobj
24581298 0 obj <<
2459/Type /Annot
2460/Border[0 0 0]/H/I/C[1 0 0]
2461/Rect [85.948 499.738 144.846 510.642]
2462/Subtype /Link
2463/A << /S /GoTo /D (section.5.2) >>
2464>> endobj
24651299 0 obj <<
2466/Type /Annot
2467/Border[0 0 0]/H/I/C[1 0 0]
2468/Rect [85.948 489.84 173.987 498.687]
2469/Subtype /Link
2470/A << /S /GoTo /D (section.5.3) >>
2471>> endobj
24721300 0 obj <<
2473/Type /Annot
2474/Border[0 0 0]/H/I/C[1 0 0]
2475/Rect [85.948 477.885 173.06 486.732]
2476/Subtype /Link
2477/A << /S /GoTo /D (section.5.4) >>
2478>> endobj
24791301 0 obj <<
2480/Type /Annot
2481/Border[0 0 0]/H/I/C[1 0 0]
2482/Rect [85.948 465.81 174.166 474.776]
2483/Subtype /Link
2484/A << /S /GoTo /D (section.5.5) >>
2485>> endobj
24861302 0 obj <<
2487/Type /Annot
2488/Border[0 0 0]/H/I/C[1 0 0]
2489/Rect [85.948 453.975 187.446 462.821]
2490/Subtype /Link
2491/A << /S /GoTo /D (section.5.6) >>
2492>> endobj
24931303 0 obj <<
2494/Type /Annot
2495/Border[0 0 0]/H/I/C[1 0 0]
2496/Rect [85.948 442.019 191.223 450.866]
2497/Subtype /Link
2498/A << /S /GoTo /D (section.5.7) >>
2499>> endobj
25001304 0 obj <<
2501/Type /Annot
2502/Border[0 0 0]/H/I/C[1 0 0]
2503/Rect [85.948 428.007 176.926 438.911]
2504/Subtype /Link
2505/A << /S /GoTo /D (section.5.8) >>
2506>> endobj
25071305 0 obj <<
2508/Type /Annot
2509/Border[0 0 0]/H/I/C[1 0 0]
2510/Rect [71.004 406.224 221.409 417.103]
2511/Subtype /Link
2512/A << /S /GoTo /D (chapter.6) >>
2513>> endobj
25141306 0 obj <<
2515/Type /Annot
2516/Border[0 0 0]/H/I/C[1 0 0]
2517/Rect [85.948 394.134 247.062 405.038]
2518/Subtype /Link
2519/A << /S /GoTo /D (section.6.1) >>
2520>> endobj
25211307 0 obj <<
2522/Type /Annot
2523/Border[0 0 0]/H/I/C[1 0 0]
2524/Rect [85.948 382.179 281.523 393.083]
2525/Subtype /Link
2526/A << /S /GoTo /D (section.6.2) >>
2527>> endobj
25281308 0 obj <<
2529/Type /Annot
2530/Border[0 0 0]/H/I/C[1 0 0]
2531/Rect [85.948 370.224 334.125 381.128]
2532/Subtype /Link
2533/A << /S /GoTo /D (section.6.3) >>
2534>> endobj
25351309 0 obj <<
2536/Type /Annot
2537/Border[0 0 0]/H/I/C[1 0 0]
2538/Rect [71.004 348.44 200.029 359.319]
2539/Subtype /Link
2540/A << /S /GoTo /D (chapter.7) >>
2541>> endobj
25421310 0 obj <<
2543/Type /Annot
2544/Border[0 0 0]/H/I/C[1 0 0]
2545/Rect [85.948 336.351 217.623 347.255]
2546/Subtype /Link
2547/A << /S /GoTo /D (section.7.1) >>
2548>> endobj
25491311 0 obj <<
2550/Type /Annot
2551/Border[0 0 0]/H/I/C[1 0 0]
2552/Rect [85.948 324.395 187.167 335.299]
2553/Subtype /Link
2554/A << /S /GoTo /D (section.7.2) >>
2555>> endobj
25561312 0 obj <<
2557/Type /Annot
2558/Border[0 0 0]/H/I/C[1 0 0]
2559/Rect [85.948 312.44 217.882 323.344]
2560/Subtype /Link
2561/A << /S /GoTo /D (section.7.3) >>
2562>> endobj
25631313 0 obj <<
2564/Type /Annot
2565/Border[0 0 0]/H/I/C[1 0 0]
2566/Rect [85.948 300.485 285.477 311.389]
2567/Subtype /Link
2568/A << /S /GoTo /D (section.7.4) >>
2569>> endobj
25701314 0 obj <<
2571/Type /Annot
2572/Border[0 0 0]/H/I/C[1 0 0]
2573/Rect [85.948 288.53 282.489 299.434]
2574/Subtype /Link
2575/A << /S /GoTo /D (section.7.5) >>
2576>> endobj
25771315 0 obj <<
2578/Type /Annot
2579/Border[0 0 0]/H/I/C[1 0 0]
2580/Rect [85.948 276.575 262.295 287.479]
2581/Subtype /Link
2582/A << /S /GoTo /D (section.7.6) >>
2583>> endobj
25841316 0 obj <<
2585/Type /Annot
2586/Border[0 0 0]/H/I/C[1 0 0]
2587/Rect [85.948 264.62 242.549 275.524]
2588/Subtype /Link
2589/A << /S /GoTo /D (section.7.7) >>
2590>> endobj
25911317 0 obj <<
2592/Type /Annot
2593/Border[0 0 0]/H/I/C[1 0 0]
2594/Rect [85.948 252.664 211.715 263.568]
2595/Subtype /Link
2596/A << /S /GoTo /D (section.7.8) >>
2597>> endobj
25981318 0 obj <<
2599/Type /Annot
2600/Border[0 0 0]/H/I/C[1 0 0]
2601/Rect [85.948 240.709 190.345 251.613]
2602/Subtype /Link
2603/A << /S /GoTo /D (section.7.9) >>
2604>> endobj
26051319 0 obj <<
2606/Type /Annot
2607/Border[0 0 0]/H/I/C[1 0 0]
2608/Rect [85.948 228.754 193.524 239.658]
2609/Subtype /Link
2610/A << /S /GoTo /D (section.7.10) >>
2611>> endobj
26121320 0 obj <<
2613/Type /Annot
2614/Border[0 0 0]/H/I/C[1 0 0]
2615/Rect [85.948 216.799 245.239 227.703]
2616/Subtype /Link
2617/A << /S /GoTo /D (section.7.11) >>
2618>> endobj
26191321 0 obj <<
2620/Type /Annot
2621/Border[0 0 0]/H/I/C[1 0 0]
2622/Rect [85.948 204.844 261.936 215.748]
2623/Subtype /Link
2624/A << /S /GoTo /D (section.7.12) >>
2625>> endobj
26261322 0 obj <<
2627/Type /Annot
2628/Border[0 0 0]/H/I/C[1 0 0]
2629/Rect [85.948 192.889 238.066 203.793]
2630/Subtype /Link
2631/A << /S /GoTo /D (section.7.13) >>
2632>> endobj
26331323 0 obj <<
2634/Type /Annot
2635/Border[0 0 0]/H/I/C[1 0 0]
2636/Rect [85.948 180.933 321.512 191.837]
2637/Subtype /Link
2638/A << /S /GoTo /D (section.7.14) >>
2639>> endobj
26401324 0 obj <<
2641/Type /Annot
2642/Border[0 0 0]/H/I/C[1 0 0]
2643/Rect [85.948 168.978 253.219 179.882]
2644/Subtype /Link
2645/A << /S /GoTo /D (section.7.15) >>
2646>> endobj
26471325 0 obj <<
2648/Type /Annot
2649/Border[0 0 0]/H/I/C[1 0 0]
2650/Rect [85.948 158.961 173.18 167.927]
2651/Subtype /Link
2652/A << /S /GoTo /D (section.7.16) >>
2653>> endobj
26541326 0 obj <<
2655/Type /Annot
2656/Border[0 0 0]/H/I/C[1 0 0]
2657/Rect [85.948 145.068 250.181 155.972]
2658/Subtype /Link
2659/A << /S /GoTo /D (section.7.17) >>
2660>> endobj
26611327 0 obj <<
2662/Type /Annot
2663/Border[0 0 0]/H/I/C[1 0 0]
2664/Rect [85.948 133.113 238.644 144.017]
2665/Subtype /Link
2666/A << /S /GoTo /D (section.7.18) >>
2667>> endobj
26681328 0 obj <<
2669/Type /Annot
2670/Border[0 0 0]/H/I/C[1 0 0]
2671/Rect [85.948 121.158 225.383 132.062]
2672/Subtype /Link
2673/A << /S /GoTo /D (section.7.19) >>
2674>> endobj
26751329 0 obj <<
2676/Type /Annot
2677/Border[0 0 0]/H/I/C[1 0 0]
2678/Rect [85.948 109.202 280.666 120.106]
2679/Subtype /Link
2680/A << /S /GoTo /D (section.7.20) >>
2681>> endobj
26821330 0 obj <<
2683/Type /Annot
2684/Border[0 0 0]/H/I/C[1 0 0]
2685/Rect [85.948 97.247 224.248 108.151]
2686/Subtype /Link
2687/A << /S /GoTo /D (section.7.21) >>
2688>> endobj
26891331 0 obj <<
2690/Type /Annot
2691/Border[0 0 0]/H/I/C[1 0 0]
2692/Rect [85.948 85.292 280.177 96.196]
2693/Subtype /Link
2694/A << /S /GoTo /D (section.7.22) >>
2695>> endobj
26961332 0 obj <<
2697/Type /Annot
2698/Border[0 0 0]/H/I/C[1 0 0]
2699/Rect [85.948 73.337 249.892 84.241]
2700/Subtype /Link
2701/A << /S /GoTo /D (section.7.23) >>
2702>> endobj
27031334 0 obj <<
2704/Font << /F31 1229 0 R /F38 1279 0 R /F28 1227 0 R >>
2705/ProcSet [ /PDF /Text ]
2706>> endobj
27071393 0 obj <<
2708/Length 1771
2709/Filter /FlateDecode
2710>>
2711stream
2712xÚíœ]w›6Çïý)ØÍjN�ˆ]uyi–n}Yãžœ�®g#¶bë
96p›ìÓOXÛˆ¦Y+l7æ&†¢Ÿ2713p›ìÓOXÛˆ¦Y+l7æ&†¢Ÿ
97=ý%áZ˵Îznùé@—X®ãHüDÄ·RqBûòõYïhØû马Р}è[Ãk‹øNˆ�`ñ2714=ý%áZ˵Îznùé@—X®ãHüDÄ·RqBûòõYïhØû马Р}è[Ãk‹øNˆ�`ñ
98¬áØzÛ2715¬áØzÛ
99ˆìÁnÿb1›Eé­=€â ¹–Ÿù”ÊÂGžŒU1âcY˜'ËYÂåÑ(Ž²Œfö»á³êi­·쓾c°ëîÍ2716ˆìÁnÿb1›Eé­=€â ¹–Ÿù”ÊÂGžŒU1âcY˜'ËYÂåÑ(Ž²Œfö»á³êi­·쓾c°ëîÍ
2717ïù½ú?†H¸þÆ×÷§#.à„W
100°äpœÒ(g|"k5¥lžËò•2718°äpœÒ(g|"k5¥lžËò•
101Ýþ"Ï®×2÷­–wé2719Ýþ"Ï®×2÷­–wé
102ÈsÈ|‰ìõ‚óŠØï4‘¦ã*ÊGSYœAT{¨ÀC2720ÈsÈ|‰ìõ‚óŠØï4‘¦ã*ÊGSYœAT{¨ÀC
103%�1G)�”Îh¾Š+ÆsšF£œÙ÷?Ú÷iyb¾Pñv�&³õ(Ô¢Ž`ò�)µÃů¸�¦¯2721%�1G)�”Îh¾Š+ÆsšF£œÙ÷?Ú÷iyb¾Pñv�&³õ(Ô¢Ž`ò�)µÃů¸�¦¯
2722ŸQ"ògòè˧µ”ôdâ¨käñ˜Ž’4Ê“´þà~ìY7Ölh®Å‡²fŸ'cv}[Uí<^L×*ôÉzŽùLK÷>˜&ܯ!äY“[€–zk
104@$2723@$
105Ñæ�+n}¼ÈòdÆþÝh÷Oƒ<ßñ<(–¿�çÿÏ㬫¿Ïá²ÙXˆÄy…þ›ÓÑzkÉdw©K2724Ñæ�+n}¼ÈòdÆþÝh÷Oƒ<ßñ<(–¿�çÿÏ㬫¿Ïá²ÙXˆÄy…þ›ÓÑzkÉdw©K
1062725
107˜ÔØRJ+~s€*fç«dUH2726˜ÔØRJ+~s€*fç«dUH
108�UɃfÕ¹»úÆz2727�UɃfÕ¹»úÆz
2728à/ãqp´P!79廊˱Vž§Lé~ªzî\%H¾$¾9$sâ2}þåº0Ö[DÐwD¨‘B`ŒúL×7|¯FÁóbx«êx‘Uç‹Zþû&¥Y²HGz
109ä?ȼHŒU<V?´=ÜO#žÅ›2729ä?ȼHŒU<V?´=ÜO#žÅ›
2730ð‘�q_ÕûŒòE½™Ïh–E“†š‡þáÈSJœ8¾Âq™²N‹¡Ñ'5*šÍ“TŒ˜ì
110Ü%“–�Ý©+•�*]ù+º²îâ}Q[B³ÚR5¬°Ò–GËÜ&¼IQúnx@*eKbšR›a¥6�Ä@ý}>M“ÅdZ¿'rAÇpáUJs>�ëþŸ¶è3ú4Ž“eW”Ühr1ð;f[gVêÒ£$�+XÇ�k2731Ü%“–�Ý©+•�*]ù+º²îâ}Q[B³ÚR5¬°Ò–GËÜ&¼IQúnx@*eKbšR›a¥6�Ä@ý}>M“ÅdZ¿'rAÇpáUJs>�ëþŸ¶è3ú4Ž“eW”Ühr1ð;f[gVêÒ£$�+XÇ�k
111§çuAg 4°Ô·',%Eê“sZ‰«W·ù4áÚp2732§çuAg 4°Ô·',%Eê“sZ‰«W·ù4áÚp
112“ŽÙ®˜•"øb9¨{ZKR�þ„êÃŒ.îö‰a¥7ƒ2Ù•)mÍÍäbhCcy‹b¶9KWº/)�â»2733“ŽÙ®˜•"øb9¨{ZKR�þ„êÃŒ.îö‰a¥7ƒ2Ù•)mÍÍäbhCcy‹b¶9KWº/)�â»
113ä?H^-‡QhÞð<⓸óDV³‚¡ Ð(»ýA73QK[ *RÕLœçÜül< 4HRDÑ")2734ä?H^-‡QhÞð<⓸óDV³‚¡ Ð(»ýA73QK[ *RÕLœçÜül< 4HRDÑ")
1146›§kùm&‚¬þt27356›§kùm&‚¬þt
1152736
116Cd€+çõ*2Èq™Ó˜Í_sÑhšŠôµ,þ“Ò2737Cd€+çõ*2Èq™Ó˜Í_sÑhšŠôµ,þ“Ò
117rûHëÓÜàÐ&²¡g2738rûHëÓÜàÐ&²¡g
118а…eXNV�©rñ7�™ ¿Q^g�î¤BÐVÖÔ Áª—›‰±r^MÁ(ÍeZçqЩ¼-š§1ódáâ3“Õ$€�6ßxHƒ‡Ôt[ÙIŠ2739а…eXNV�©rñ7�™ ¿Q^g�î¤BÐVÖÔ Áª—›‰±r^MÁ(ÍeZçqЩ¼-š§1ódáâ3“Õ$€�6ßxHƒ‡Ôt[ÙIŠ
119¦&;¯2740¦&;¯
120õ~MÓšaõÞJ©+‡ûŠñq÷=ì>[ˆ,dÖá”xÎu‘§O…¤‹¥¶pÝg]Q!2741õ~MÓšaõÞJ©+‡ûŠñq÷=ì>[ˆ,dÖá”xÎu‘§O…¤‹¥¶pÝg]Q!
121‹[‹XÒ¦^Îi-jß= ´±À¸Ž’G/•üüÈÔÌb}2742‹[‹XÒ¦^Îi-jß= ´±À¸Ž’G/•üüÈÔÌb}
2743!
122ÏUÙÖl�©E§N/š2744ÏUÙÖl�©E§N/š
123y,Ã-%æˆ*Yu’FE„®L³*ïÒÕ*é†Î?ÄAÇpËðü2745y,Ã-%æˆ*Yu’FE„®L³*ïÒÕ*é†Î?ÄAÇpËðü
2746ž’UÇqÂé¡êß�bh.•
2747{ÊÊÀ«"p4�ø„ÖVƧ.ΖU²A>j¿ÏÐ&š‰6¡¾�æö—8y°##Èx®92j�ÏÎF
124{¬ ßuƒ-wƒ2748{¬ ßuƒ-wƒ
1250“”027490“”0
126S;§Up�]o¢Žá~ÁS{�~+$ã}¬2750S;§Up�]o¢Žá~ÁS{�~+$ã}¬
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to status/vote changes: