JezK
Edit File: Debugging-with-Info.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <!-- This manual is for GNU Texinfo (version 6.8, 8 June 2021), a documentation system that can produce both online information and a printed manual from a single source using semantic markup. Copyright (C) 1988, 1990-1993, 1995-1999, 2001-2021 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". --> <title>Debugging with Info (GNU Texinfo 6.8)</title> <meta name="description" content="Debugging with Info (GNU Texinfo 6.8)"> <meta name="keywords" content="Debugging with Info (GNU Texinfo 6.8)"> <meta name="resource-type" content="document"> <meta name="distribution" content="global"> <meta name="Generator" content="texi2any"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link href="index.html" rel="start" title="Top"> <link href="Command-and-Variable-Index.html" rel="index" title="Command and Variable Index"> <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> <link href="Catching-Mistakes.html" rel="up" title="Catching Mistakes"> <link href="Debugging-with-TeX.html" rel="next" title="Debugging with TeX"> <link href="makeinfo-Preferred.html" rel="prev" title="makeinfo Preferred"> <style type="text/css"> <!-- a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em} a.summary-letter {text-decoration: none} blockquote.indentedblock {margin-right: 0em} div.display {margin-left: 3.2em} div.example {margin-left: 3.2em} kbd {font-style: oblique} pre.display {font-family: inherit} pre.format {font-family: inherit} pre.menu-comment {font-family: serif} pre.menu-preformatted {font-family: serif} span.nolinebreak {white-space: nowrap} span.roman {font-family: initial; font-weight: normal} span.sansserif {font-family: sans-serif; font-weight: normal} span:hover a.copiable-anchor {visibility: visible} ul.no-bullet {list-style: none} --> </style> </head> <body lang="en"> <div class="section" id="Debugging-with-Info"> <div class="header"> <p> Next: <a href="Debugging-with-TeX.html" accesskey="n" rel="next">Debugging with TeX</a>, Previous: <a href="makeinfo-Preferred.html" accesskey="p" rel="prev"><code>makeinfo</code> Preferred</a>, Up: <a href="Catching-Mistakes.html" accesskey="u" rel="up">Catching Mistakes</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Command-and-Variable-Index.html" title="Index" rel="index">Index</a>]</p> </div> <hr> <span id="Catching-Errors-with-Info-Formatting"></span><h4 class="subsection">D.9.2 Catching Errors with Info Formatting</h4> <span id="index-Catching-errors-with-Info-formatting"></span> <span id="index-Debugging-with-Info-formatting"></span> <p>After you have written part of a Texinfo file, you can use the <code>texinfo-format-region</code> or the <code>makeinfo-region</code> command to see whether the region formats properly. </p> <p>Most likely, however, you are reading this section because for some reason you cannot use the <code>makeinfo-region</code> command; therefore, the rest of this section presumes that you are using <code>texinfo-format-region</code>. </p> <p>If you have made a mistake with an @-command, <code>texinfo-format-region</code> will stop processing at or after the error and display an error message. To see where in the buffer the error occurred, switch to the ‘<samp>*Info Region*</samp>’ buffer; the cursor will be in a position that is after the location of the error. Also, the text will not be formatted after the place where the error occurred (or more precisely, where it was detected). </p> <p>For example, if you accidentally end a menu with the command <code>@end menus</code> with an ‘s’ on the end, instead of with <code>@end menu</code>, you will see an error message that says: </p> <div class="example"> <pre class="example">@end menus is not handled by texinfo </pre></div> <p>The cursor will stop at the point in the buffer where the error occurs, or not long after it. The buffer will look like this: </p> <div class="example"> <pre class="example">---------- Buffer: *Info Region* ---------- * Menu: * Using texinfo-show-structure:: How to use `texinfo-show-structure' to catch mistakes. * Running Info-validate:: How to check for unreferenced nodes. @end menus ∗ ---------- Buffer: *Info Region* ---------- </pre></div> <p>The <code>texinfo-format-region</code> command sometimes provides slightly odd error messages. For example, the following cross-reference fails to format: </p> <div class="example"> <pre class="example">(@xref{Catching Mistakes, for more info.) </pre></div> <p>In this case, <code>texinfo-format-region</code> detects the missing closing brace but displays a message that says ‘<samp>Unbalanced parentheses</samp>’ rather than ‘<samp>Unbalanced braces</samp>’. This is because the formatting command looks for mismatches between braces as if they were parentheses. </p> <p>Sometimes <code>texinfo-format-region</code> fails to detect mistakes. For example, in the following, the closing brace is swapped with the closing parenthesis: </p> <div class="example"> <pre class="example">(@xref{Catching Mistakes), for more info.} </pre></div> <p>Formatting produces: </p><div class="example"> <pre class="example">(*Note for more info.: Catching Mistakes) </pre></div> <p>The only way for you to detect this error is to realize that the reference should have looked like this: </p> <div class="example"> <pre class="example">(*Note Catching Mistakes::, for more info.) </pre></div> <p>Incidentally, if you are reading this node in Info and type <kbd>f <span class="key">RET</span></kbd> (<code>Info-follow-reference</code>), you will generate an error message that says: </p> <div class="example"> <pre class="example">No such node: "Catching Mistakes) The only way … </pre></div> <p>This is because Info perceives the example of the error as the first cross-reference in this node and if you type a <tt class="key">RET</tt> immediately after typing the Info <kbd>f</kbd> command, Info will attempt to go to the referenced node. If you type <kbd>f catch <span class="key">TAB</span> <span class="key">RET</span></kbd>, Info will complete the node name of the correctly written example and take you to the ‘Catching Mistakes’ node. (If you try this, you can return from the ‘Catching Mistakes’ node by typing <kbd>l</kbd> (<code>Info-last</code>).) </p> </div> <hr> <div class="header"> <p> Next: <a href="Debugging-with-TeX.html">Debugging with TeX</a>, Previous: <a href="makeinfo-Preferred.html"><code>makeinfo</code> Preferred</a>, Up: <a href="Catching-Mistakes.html">Catching Mistakes</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Command-and-Variable-Index.html" title="Index" rel="index">Index</a>]</p> </div> </body> </html>