diff --ignore-file-name-case -rupN /tmp/noweb-2.11b/src/awk/Makefile noweb-2.11b-hack/src/awk/Makefile --- /tmp/noweb-2.11b/src/awk/Makefile 1997-09-13 15:43:38.000000000 -0500 +++ noweb-2.11b-hack/src/awk/Makefile 2009-11-25 21:52:34.000000000 -0600 @@ -5,7 +5,7 @@ LIB=/dev/null # must be overridden BIN=/dev/null # must be overridden SHELL=/bin/sh -LIBEXECS=totex noidx tohtml +LIBEXECS=totex noidx tohtml toasciidoc BINEXECS=noindex EXECS=$(BINEXECS) $(LIBEXECS) @@ -30,6 +30,9 @@ noidx: noidx.nw tohtml: tohtml.nw notangle tohtml.nw > tohtml +toasciidoc: toasciidoc.nw + notangle -Rtoasciidoc toasciidoc.nw > toasciidoc + noindex: noindex.nw notangle -Rnoindex noindex.nw > noindex diff --ignore-file-name-case -rupN /tmp/noweb-2.11b/src/awk/toasciidoc.nw noweb-2.11b-hack/src/awk/toasciidoc.nw --- /tmp/noweb-2.11b/src/awk/toasciidoc.nw 1969-12-31 18:00:00.000000000 -0600 +++ noweb-2.11b-hack/src/awk/toasciidoc.nw 2010-06-14 13:38:28.000000000 -0500 @@ -0,0 +1,307 @@ +toasciidoc - An Asciidoc backend for noweb +========================================== +Michael McDermott + +toasciidoc is an Asciidoc backend for noweb. The purpose of this being to allow +the documentation chunks to be written with asciidoc markup, rather than either +HTML, LaTeX, or TeX. I, personally, find Asciidoc to be a much more natural +composition format. HTML and TeX litter the document with their own markup, but +Asciidoc allows for cleaner editing that can still have nice formatting later on +down the pipeline. In short, it's sweet, simple, and stays out of the way. + +toasciidoc itself is a shell script which will parse out the options handed to +it, then use them to run the main of the code, which is in the form of an awk +script. + +<>= +#!/bin/sh + +for arg in $* +do + case $arg in + --language=*) language=`echo $arg | sed 's/--language=//'` + esac +done + +nawk '<>' language=$language +@ + +Here, the only option that is handled is the language option. More about this +will be said when we look at code blocks, but in the meanwhile, suffice it to +say that it is used for syntax highlighting. + +Now, we get to the heart of the backend. We will attempt to handle all of the +valid output outlined in the _Hacker's Guide_. We will start with the @header +and @footer tags. These are meant for boilerplate. One of the awesome things +about asciidoc is that there is no boilerplate, so the proper action is to do +nothing when encountering these tags. + +<>= +/^@header / { } +/^@footer / { } +@ + +The next easiest element to handle is @literal. All it has to do is pass its +arguments to the backend processor. So, we will add it to the mix: + +<>= +/^@literal / { sub(/@literal /, "", $0); print $0; } +@ + +Next, let us examine the handling of code blocks. Asciidoc provides two +mechanisms that could be good to handle code listings. The first is a straight +literal listing and the other is a source block, which will attempt to +highlight the source code using GNU source-highlight. In order to work properly, +the source block needs to be able to pass a language to source-highlight. + +In order to make use of these facilities, we will have to have the entire code +block before we output it. First, if the @language tag is provided, it will be +inside the block. However, to make use of source highlighting, it must be +declared before the code. Secondly, we are able to place the labels at the top +of the new block, rather than farther down. Thirdly, @defn marks the definition +and gives us the name. This needs to be placed at the top of the block as a +paragraph heading. + +<>= +BEGIN { stashlines = 0; ref=""; } +/^@begin code/ { buffer = ""; stashlines = 1; delete labels; nextdef=""; + prevdef=""; } +/^@end code/ { stashlines = 0; + buffer = substr(buffer, 2, length(buffer)) + + if (length(labels) > 0) + { + printf "." + + for (label in labels) + printf "[[%s]] ", label + + printf "@<<%s, <%s>= >>", label, title + } + else + printf ".<%s>=", title + + print "" + + if (language != "") + printf "[source,%s]\n", language; + + print "-------------------------------------------------------------------------------" + print buffer + print "-------------------------------------------------------------------------------" + + buffer = ""; + stashlines = 0; +} +@ + +The substring call removes the first character from the buffer. This is done on +code blocks because the toolchain format adds an extra @nl, which would cause an +annoying space in the output that was not present on the input. The quick and +dirty way to handle this is, of course, to simply remove it from the buffer +before outputting it. + +There seems to be a problem here with using the source filter with the Docbook +backend. When this is done, Asciidoc fails to put the id attributes on the +programlisting elements. The reason for this is unknown. The solution is to +either set no language or not use cross referencing. This problem is fixed in +Asciidoc version 8.5.1. + +To get the header name, we only need to handle the @defn tag, which provides the +name: + +<>= +/^@defn / { sub(/^@defn /, "", $0); title = $0; ref = ""; } +@ + +Unfortunately, it does not seem possible to create a link within. + +There are a few lines in there regarding labels. We will address these +later. At this point, @text and @nl have to be set up to put their +arguments in the +buffer if stashlines is set to 1. So, we will add this portion next: + +<>= +/^@text / { sub(/^@text /, "", $0); + if (stashlines == 1) + buffer = (buffer $0); + else + printf "%s", $0; +} + +/^@nl/ { + if (stashlines == 1) + buffer = (buffer "\n"); + else + print ""; +} + +/^@use / { sub(/@use /, "", $0); + $0 = "<" $0 ">" + + ref = "" + + if (stashlines == 1) + buffer = (buffer $0); + else + printf $0; +} +@ + +Pretty straightforward. If we are not buffering lines, we print the output. As +an aside, this handles the doc blocks without any explicit work. We do not add +any trappings around them, so their text need only be passed through. If we +encounter the usage of another chunk, we put the chunks name between angled +brackets in the buffer. + +Language +is assumed to be set from the command line (and, therefore, can be set when +invoking noweave, like so: [[language=shell noweave -asciidoc foo.nw]]). +toasciidoc also recognizes the @language tag with the following simple rule: + +<>= +/^@language / { sub(/^@language /, "", $0); language = $0; } +@ + +Colloquially, the language parameter is overriden with the value found in the +toolchain format. + +Like code blocks, we will buffer quotes until the very end, but the motivation +is different. We are going to try and handle quotes in an intelligent manner. If +there is only a single line in the quote, we will display it in an inline, +monotyped, literal style. If it is multiple lines, we will type set it in a +block, like a code chunk. If a single line should be offset, a second line +consisting only of a space can be added to the quote. toasciidoc will loyally +generate a block for it, but Asciidoc will ignore the extraneous whitespace. + +<>= +/^@quote/ { buffer = ""; stashlines = 1; delete labels; } +/^@endquote/ { + if (index(buffer, "\n") != 0) + { + print "" + + if (language != "") + printf "[source,%s]\n", language; + + print "-------------------" + print buffer + print "-------------------" + } + else + printf "`%s`", buffer + + buffer = ""; + stashlines = 0; +} +@ + +Next, we will address cross-referencing. Asciidoc uses double square brackets to +create an anchor. So, when we encounter a label, we create it that way, +buffering it if needed. + +<>= +/^@xref label / { + sub(/^@xref label /, "", $0) + + if (stashlines == 1) + labels[$0] = $0 + else + printf "[[%s]]\n", $0 +} +@ + +A ref makes the next item (the item it "tags") a link. We will handle this by +setting the variable _ref_ and allowing the item handlers to output the links, +if this is supported. + +<>= +/^@xref ref / { + sub(/^@xref ref /, "", $0); + ref = $0; +} +@ + +Next we have the creation of a chunk list or index. We don't have any wrappers +to put around the list, so we do nothing on the opening or closing chunk +information. For the individual elements, we create a list of links in a manner +similar to the HTML backend. + +<>= +/^@xref beginchunks/ { } +/^@xref endchunks/ { } +/^@xref chunkbegin/ { + uses = 0; + defs = 0; + printname = ""; + + for(i=4; i <= NF; i++) + { + if (printname != "") + printname = (printname " "); + + printname = (printname $(i)) + } + + printf "* @<<%s,%s>>: ", $3, printname +} + +/^@xref chunkdefn/ { + defs = defs + 1; + printf " @<<%s,D%d>>", $3, defs +} + +/^@xref chunkuse/ { + uses = uses + 1; + printf " @<<%s,U%d>>", $3, uses +} + +/^@xref chunkend/ { print "" } +@ + +To add support for continued definitions, we will simply set the variables +nextdef and prevdef, respectively, with the labels. When the code chunk is +outputted, it will add the links. + +<>= +/^@xref nextdef / { + sub(/^@xref nextdef /, "", $0); + nextdef = $0 +} + +/^@xref prevdef/ { + sub(/^@xref prevdef /, "", $0); + prevdef = $0 +} +@ + +Next stop, indexing. We will simply output an index as a list of terms, showing +each terms definition and uses. The model for this is the HTML backend. + +<>= +/^@index beginindex/ { } +/^@index endindex/ { } +/^@index entryend/ { print "" } +/^@index entrybegin/ { + uses = 0; + defs = 0; + printf "* @<<%s, %s>>: ", $3, substr($0, 20 + length($3)); +} +/^@index entrydefn/ { + defs = defs + 1; + printf " @<<%s,D%d>>", $3, defs +} + +/^@index entryuse/ { + uses = uses + 1; + printf " @<<%s,U%d>>", $3, uses +} + +@ + +There are some other, listing commands in both the cross referencing and the +indexing. These are not supported by this backend and, consequently, they are +ignored. + +Code Index +---------- diff --ignore-file-name-case -rupN /tmp/noweb-2.11b/src/Makefile noweb-2.11b-hack/src/Makefile --- /tmp/noweb-2.11b/src/Makefile 2006-06-12 15:14:20.000000000 -0500 +++ noweb-2.11b-hack/src/Makefile 2009-11-25 21:52:34.000000000 -0600 @@ -18,12 +18,13 @@ ICONT=icont # MAN7EXT is the extension for the nowebstyle man page (usually 7) # TEXINPUTS is the directory for TeX macro files # ELISP is the directory for emacs lisp files, or /dev/null not to install -BIN=/usr/local/noweb -LIB=/usr/local/noweb/lib -MAN=/usr/local/noweb/man +BIN=/usr/local/bin/ +LIB=/usr/local/lib/noweb +MAN=/usr/local/man MANEXT=1 MAN7EXT=7 -TEXINPUTS=/usr/local/tex/inputs +#TEXINPUTS=/usr/local/tex/inputs +TEXINPUTS=/usr/share/texmf/tex ELISP=/dev/null # change WEAVE if you want a different version of noweave to be installed Binary files /tmp/noweb-2.11b/src/shell/.noweave.nw.swp and noweb-2.11b-hack/src/shell/.noweave.nw.swp differ diff --ignore-file-name-case -rupN /tmp/noweb-2.11b/src/shell/noweave noweb-2.11b-hack/src/shell/noweave --- /tmp/noweb-2.11b/src/shell/noweave 2006-06-12 16:16:23.000000000 -0500 +++ noweb-2.11b-hack/src/shell/noweave 2009-11-25 21:52:34.000000000 -0600 @@ -22,6 +22,8 @@ while [ $# -gt 0 ]; do -html) if [ "$wrapper" != "none" ]; then wrapper=html; fi; backend="$LIB/tohtml -localindex" noquote=""; docanchor="-docanchor 10" ;; + -asciidoc) if [ "$wrapper" != "none" ]; then wrapper=asciidoc; fi; + backend="$LIB/toasciidoc" ;; -latex+html) if [ "$wrapper" != "none" ]; then wrapper=latex; fi; backend="$LIB/tohtml -localindex -raw" noquote=""; docanchor="-docanchor 10" ;; @@ -88,6 +90,7 @@ while [ $# -gt 0 ]; do echo "-latex Emit LaTeX with headers and trailers (default)." 1>&2 echo "-tex Emit plain TeX with headers and trailers." 1>&2 echo "-html Emit HTML with headers and trailers." 1>&2 + echo "-asciidoc Emit Asciidoc with headers and trailers." 1>&2 echo "-latex+html Assume LaTeX in documentation, but use HTML in code." 1>&2 # echo "-ascii Emit ASCII." 1>&2 echo "-troff Emit troff (actually GNU groff)." 1>&2 diff --ignore-file-name-case -rupN /tmp/noweb-2.11b/src/shell/noweave.nw noweb-2.11b-hack/src/shell/noweave.nw --- /tmp/noweb-2.11b/src/shell/noweave.nw 2003-09-16 13:58:41.000000000 -0500 +++ noweb-2.11b-hack/src/shell/noweave.nw 2009-11-25 21:52:34.000000000 -0600 @@ -88,6 +88,8 @@ fi -html) if [ "$wrapper" != "none" ]; then wrapper=html; fi; backend="$LIB/tohtml -localindex" noquote=""; docanchor="-docanchor 10" ;; +-asciidoc) if [ "$wrapper" != "none" ]; then wrapper=asciidoc; fi; + backend="$LIB/toasciidoc" ;; -latex+html) if [ "$wrapper" != "none" ]; then wrapper=latex; fi; backend="$LIB/tohtml -localindex -raw" noquote=""; docanchor="-docanchor 10" ;; @@ -105,6 +107,7 @@ at all. The leading space is claimed to echo "-latex Emit LaTeX with headers and trailers (default)." 1>&2 echo "-tex Emit plain TeX with headers and trailers." 1>&2 echo "-html Emit HTML with headers and trailers." 1>&2 +echo "-asciidoc Emit Asciidoc with headers and trailers." 1>&2 echo "-latex+html Assume LaTeX in documentation, but use HTML in code." 1>&2 # echo "-ascii Emit ASCII." 1>&2 echo "-troff Emit troff (actually GNU groff)." 1>&2 diff --ignore-file-name-case -rupN /tmp/noweb-2.11b/src/xdoc/notangle.txt noweb-2.11b-hack/src/xdoc/notangle.txt --- /tmp/noweb-2.11b/src/xdoc/notangle.txt 2006-06-12 16:16:23.000000000 -0500 +++ noweb-2.11b-hack/src/xdoc/notangle.txt 2009-11-25 21:52:34.000000000 -0600 @@ -7,7 +7,7 @@ NNAAMMEE SSYYNNOOPPSSIISS nnoottaannggllee [--RRrootname ...] [--ffiilltteerr command] [--LL[format]] [file] ... - nnoouunnttaannggllee [--mmll|--mm33|--cc|--cc++++|--aawwkk|--tteexx|--ff7777|--ff9900|--lliisspp|--mmaattllaabb] [--RRroot- + nnoouunnttaannggllee [--mmll|--mm33|--cc|--cc++++|--aawwkk|--tteexx|--ff7777|--ff9900|--lliisspp|--mmaattllaabb] [--RRroot‐ name ...] [--ffiilltteerr command] [--wwwidth] [file] ... nnoowweeaavvee [options] [file] ... @@ -24,13 +24,13 @@ DDEESSCCRRIIPPTTIIOONN FFOORRMMAATT OOFF NNOOWWEEBB FFIILLEESS A _n_o_w_e_b file is a sequence of _c_h_u_n_k_s, which may appear in any order. A chunk may contain code or documentation. Documentation chunks begin - with a line that starts with an at sign (@) followed by a space or new- + with a line that starts with an at sign (@) followed by a space or new‐ line. They have no names. Code chunks begin with <<_c_h_u_n_k _n_a_m_e>>= on a line by itself. The double left angle bracket (<<) must be in the first column. Chunks are terminated by the beginning of another chunk, or by end of file. If the first line in the file does not mark the - beginning of a chunk, it is assumed to be the first line of a documen- + beginning of a chunk, it is assumed to be the first line of a documen‐ tation chunk. Documentation chunks contain text that is ignored by _n_o_t_a_n_g_l_e and @@ -40,8 +40,8 @@ FFOORRMMAATT OOFF NNOOWWEEB commands like \\cchhaapptteerr and \\sseeccttiioonn.. Code chunks contain program source code and references to other code - chunks. Several code chunks may have the same name; _n_o_t_a_n_g_l_e concate- - nates their definitions to produce a single chunk, just as does _t_a_n_- + chunks. Several code chunks may have the same name; _n_o_t_a_n_g_l_e concate‐ + nates their definitions to produce a single chunk, just as does _t_a_n_‐ _g_l_e(1). Code chunk definitions are like macro definitions; _n_o_t_a_n_g_l_e extracts a program by expanding one chunk (by default, the chunk named <<<<*>>>>). The definition of that chunk contains references to other @@ -79,11 +79,11 @@ TTAANNGGLLIINNGG --LL_f_o_r_m_a_t Emit line number indications at chunk boundaries. A line number indication identifies the source of the line that follows it. - In _f_o_r_m_a_t, %%FF indicates the name of the source file, %%LL indi- - cates the line number of the source file, %%NN indicates a new- + In _f_o_r_m_a_t, %%FF indicates the name of the source file, %%LL indi‐ + cates the line number of the source file, %%NN indicates a new‐ line, and %%%% indicates a percent sign. A sign and digit may be inserted between the percent sign and the `LL', in which case the - line number will be adjusted by that amount. If _f_o_r_m_a_t is omit- + line number will be adjusted by that amount. If _f_o_r_m_a_t is omit‐ ted, the default format is that accepted by the C preprocessor: `##lliinnee %%LL ""%%FF""%%NN'. When using the --LL_f_o_r_m_a_t option, _n_o_t_a_n_g_l_e ensures that all text appears in the same column in input and @@ -96,7 +96,7 @@ TTAANNGGLLIINNGG Modula-3 --LL''<<**LLIINNEE %%LL ""%%FF"" **>>%%NN'' SML/NJ --LL''((**##lliinnee %%LL ""%%FF""**))'' - To solve the converse problem, that is, to get noweb to do some- + To solve the converse problem, that is, to get noweb to do some‐ thing sensible with ##lliinnee in its input, see the sshhaarrpplliinnee filter in the examples directory. @@ -130,7 +130,7 @@ WWEEAAVVIINNGG Output from _n_o_w_e_a_v_e can be used in _T_e_X documents that \\iinnppuutt nnwwmmaacc,, in _L_a_T_e_X documents that use the nnoowweebb package (see _n_o_w_e_b_s_t_y_l_e_(_1_)), and in _H_T_M_L documents to be browsed with _M_o_s_a_i_c_(_1_)_. _N_o_w_e_a_v_e treats code - chunks somewhat like _L_a_T_e_X _l_i_s_t _e_n_v_i_r_o_n_m_e_n_t_s_. If the ``@@ '' that ter- + chunks somewhat like _L_a_T_e_X _l_i_s_t _e_n_v_i_r_o_n_m_e_n_t_s_. If the ``@@ '' that ter‐ minates a code chunk is followed immediately by text, that text follows the code chunk without a paragraph break. If the rest of the line is blank, _n_o_w_e_a_v_e puts _T_e_X into ``vertical mode,'' and later text starts a @@ -141,7 +141,7 @@ WWEEAAVVIINNGG a code chunk appears on the same page as that code chunk unless doing so would violate the previous rule. - _N_o_w_e_a_v_e inserts no extra newlines in its _T_e_X output, so the line num- + _N_o_w_e_a_v_e inserts no extra newlines in its _T_e_X output, so the line num‐ bers given in _T_e_X error messages are the same as those in the input file. @@ -169,10 +169,10 @@ WWEEAAVVIINNGG --hhttmmll with --ffiilltteerr ll22hh instead. --ttrrooffff Emit _t_r_o_f_f(1) markup (with no wrapper). The result should be - processed with _n_o_r_o_f_f(1). Bug reports for --ttrrooffff to Aharon Rob- + processed with _n_o_r_o_f_f(1). Bug reports for --ttrrooffff to Aharon Rob‐ bins <>.. - --nn Don't use any wrapper (header or trailer). This option is use- + --nn Don't use any wrapper (header or trailer). This option is use‐ ful when _n_o_w_e_a_v_e's output will be a part of a larger document. See also --ddeellaayy.. @@ -180,7 +180,7 @@ WWEEAAVVIINNGG Filters the _n_o_w_e_b source through _c_m_d after converting it to tool form and before converting to _T_e_X_. _n_o_w_e_a_v_e looks for _c_m_d first on the user's PPAATTHH,, then in ||LLIIBBDDIIRR||.. Such filters can be used - to add features to _n_o_w_e_a_v_e_; for an example, see ||LLIIBB-- + to add features to _n_o_w_e_a_v_e_; for an example, see ||LLIIBB‐‐ DDIIRR||//nnooxxrreeff..kkrroomm.. _N_o_w_e_a_v_e supports up to four filters; one can get more by shell trickery, for example, --ffiilltteerr ""iiccoonn..ffiilltteerr || nnooiiddxx"". The --aauuttooddeeffss, --xx, --iinnddeexx, and --iinnddeexxffrroomm options are @@ -200,13 +200,13 @@ WWEEAAVVIINNGG --ddeellaayy By default, _n_o_w_e_a_v_e puts file-name and other information into the output before the first chunk of the program. --ddeellaayy delays - that information until after the first documentation chunk, mak- - ing act a little bit like the _W_E_B ``limbo.'' The option is typ- - ically used to enable a user to put a specialized _L_a_T_e_X \\ddooccuu-- - mmeennttccllaassss command and other preamble material in the first docu- + that information until after the first documentation chunk, mak‐ + ing act a little bit like the _W_E_B ``limbo.'' The option is typ‐ + ically used to enable a user to put a specialized _L_a_T_e_X \\ddooccuu‐‐ + mmeennttccllaassss command and other preamble material in the first docu‐ mentation chunk (i.e., _b_e_f_o_r_e the first @ sign). This option also forces trailing cross-referencing information to be emitted - just before the final chunk, instead of at the end of the docu- + just before the final chunk, instead of at the end of the docu‐ ment; the final chunk is expected to contain \\eenndd{{ddooccuummeenntt}}.. The --ddeellaayy option implies the --nn option. @@ -220,10 +220,10 @@ WWEEAAVVIINNGG IINNDDEEXXIINNGG AANNDD CCRROOSSSS--RREEFFEERREENNCCEE When used with _L_a_T_e_X, _t_r_o_f_f, or _H_T_M_L_, _n_o_w_e_a_v_e can provide indexing and cross-reference information for chunks and for programming-language - identifiers. Identifier definitions may be marked by hand using back- + identifiers. Identifier definitions may be marked by hand using back‐ ticks (`); the --ffiilltteerr bbttddeeffnn option recognizes these markings. For some languages, defintioins may be found automatically using the - --aauuttooddeeffss option. This section describes the indexing and cross-refer- + --aauuttooddeeffss option. This section describes the indexing and cross-refer‐ ence options; it might well be skipped on first reading. --xx For _L_a_T_e_X_, add a page number to each chunk name identifying the @@ -237,7 +237,7 @@ IINNDDEEXXIINNGG AANNDD CCR defined identifiers. Definitions are those found in the input files by --aauuttooddeeffss _l_a_n_g_u_a_g_e or by --ffiilltteerrbtdefn. Requires _L_a_T_e_X or _H_T_M_L_. --iinnddeexx implies --xx;; including both will generate - strange-looking output. _n_o_w_e_a_v_e does not generate cross-refer- + strange-looking output. _n_o_w_e_a_v_e does not generate cross-refer‐ ences to identifiers that appear in quoted code (@@[[[[...@@]]]]), but it does generate hypertext links. When nnoowweeaavvee --iinnddeexx is used with _L_a_T_e_X_, the control sequence \\nnoowweebbiinnddeexx expands to an index @@ -250,7 +250,7 @@ IINNDDEEXXIINNGG AANNDD CCR --aauuttooddeeffss _l_a_n_g Discover identifier definitions automatically. Code in chunks must be in language _l_a_n_g. Permissible _l_a_n_gs vary but may - include tteexx or iiccoonn.. Useless without --iinnddeexx,, which it must pre- + include tteexx or iiccoonn.. Useless without --iinnddeexx,, which it must pre‐ cede. --sshhoowwaauuttooddeeffss @@ -303,14 +303,14 @@ FFIILLEESS |TEXINPUTS|/noweb.sty use in _L_a_T_e_X documents; see _n_o_w_e_b_s_t_y_l_e_(_7_) SSEEEE AALLSSOO - _c_p_i_f(1), _n_o_d_e_f_s(1), _n_o_r_o_o_t_s(1), _n_o_w_e_b(1), _n_o_i_n_d_e_x(1), _n_o_r_o_f_f(1), _n_o_w_e_b_- + _c_p_i_f(1), _n_o_d_e_f_s(1), _n_o_r_o_o_t_s(1), _n_o_w_e_b(1), _n_o_i_n_d_e_x(1), _n_o_r_o_f_f(1), _n_o_w_e_b_‐ _s_t_y_l_e(7), _n_o_w_e_b_f_i_l_t_e_r_s(7) BBUUGGSS _n_o_t_a_n_g_l_e and _n_o_u_n_t_a_n_g_l_e fail if names used on the command line contain single quotes. - Ignoring unused chunks can cause problems; if a chunk has multiple def- + Ignoring unused chunks can cause problems; if a chunk has multiple def‐ initions and one is misspelled, the misspelled definition is silently ignored. _n_o_r_o_o_t_s(1) can be used to catch this mistake. @@ -334,10 +334,10 @@ BBUUGGSS - The _-_L option of _n_o_t_a_n_g_l_e puts an implicit initial newline in the for- + The _-_L option of _n_o_t_a_n_g_l_e puts an implicit initial newline in the for‐ mat string. - The default _L_a_T_e_X pagestyles don't set the width of the boxes contain- + The default _L_a_T_e_X pagestyles don't set the width of the boxes contain‐ ing headers and footers. Since _n_o_w_e_b code paragraphs are extra wide, this _L_a_T_e_X bug sometimes results in extra-wide headers and footers. The remedy is to redefine the relevant ppss@@** commands; ppss@@nnoowweebb in @@ -351,7 +351,7 @@ VVEERRSSIIOONN This man page is from _n_o_w_e_b version 2.11b. AAUUTTHHOORR - Norman Ramsey, Harvard University. Internet address nnrr@@eeeeccss..hhaarr-- + Norman Ramsey, Harvard University. Internet address nnrr@@eeeeccss..hhaarr‐‐ vvaarrdd..eedduu. Noweb home page at hhttttpp::////wwwwww..eeeeccss..hhaarrvvaarrdd..eedduu//~~nnrr//nnoowweebb.