14.1 Version 1.61

14.1.1 Updates to documentation (v1.61)

  1. FWEB supports color modes in which messages to the terminal can appear in colors chosen by the user; see Color output. The color mode is set by the new command-line option ‘-C’ (see -C’: Set the color mode).
  2. A previously undocumented feature is that for the C-like and Fortran-like languages, FTANGLE expands the binary notation ‘0b...’ to an unsigned decimal number. See Phases of processing.

14.1.2 Redefined commands (v1.61)

A few obscure commands have been slightly redefined. Sorry about that, but it makes for more symmetry and ease of recall, and/or solves some technical problems.

  1. Although it was never documented, previous versions permitted either lower or upper case for the ‘@’ commands that set the language—e.g., both ‘@c’ and ‘@C’ worked. Now only the lower-case forms work. (The upper-case forms may have other meanings.)
  2. The style-file parameter ‘Ext_delimiter’ now begins with an upper-case ‘E’; formerly it was lower-case.
  3. The behavior of the optional argument of the \Title macro has been slightly redefined. The new, more symmetrical form is
    \Title[Short title]{Long title}
    

    where Long title is printed on the title page and Short title is used for the running header within the document. See LaTeX’s Table of Contents.

  4. The line-break commands ‘@/’ and ‘@\’ (formerly identical) now behave slightly differently. ‘@/’ breaks the line just as it would if the line had been too long and been spontaneously broken. See @/’: Force a line break, preserving indentation.. ‘@\’ backspaces one unit of indentation after breaking the line. See @\’: Force a line break, then indent. Usually, one should use ‘@/’ (sorry; I was previously recommending ‘@\’. For an example in which it is natural to use ‘@\’, see @\’: Force a line break, then indent.
  5. The names of some of the code-typesetting macros in fwebmac.sty have been changed to conform to the convention that they should all start with ‘W’. This change will be invisible to you unless you happen to have user macros of your own that start that way or (perish the thought) you have redefined low-level and obscure code in fwebmac.sty.

14.1.3 New features (v1.61)

This release adds some features for managing large projects, including (i) the idxmerge utility that merges indexes produced by several FWEB files, (ii) a mechanism for accessing RCS-like information in the ignorable commentary at the beginning of the file, and (iii) the ability to include FWEAVE-formatted code into a standard LaTeX document. It also fixes a variety of miscellaneous bugs.

  1. A stand-alone index file suitable for processing by makeindex can be produced by the ‘-XI’ option. See Creating a stand-alone index with makeindex.
  2. Stand-alone indexes produced by ‘-XI’ can be merged with the idxmerge utility. See Using the idxmerge utility to merge indexes.
  3. FWEAVE-formatted code can be included in a standard LaTeX2e document by means of the fwebinsert package. See Package fwebinsert: Inserting FWEAVE’s output into a LaTeX document.
  4. Revision-control-system (RCS) information that appears in the ignorable commentary between the optional ‘@z’ and ‘@x’ that begin an FWEB file (see @z’: Begin ignorable material, or terminate change) is accessible in the body of the file through the built-in function $KEYWORD (see $KEYWORD: Value of global RCS-like keyword) and the new commands ‘@K’ (see @K’: Extract global RCS-like keyword) and ‘@k’ (see @k’: Access local RCS-like keyword). These features can access RCS-like keywords that are not known to RCS itself, as long as they fit the proper syntax (see @z’: Begin ignorable material, or terminate change).
  5. The ‘-h’ option now permits easy access to the GNU info browser if it is installed. See -h’: Get help.
  6. Underscored versions of built-in functions have been removed!!! E.g., use $IF, not _IF. This change was warned about in the last release.
  7. Single-character identifiers can now be completely cross-referenced via the ‘-W1’ option. See -W1’: Cross-reference single-character identifiers.
  8. Some module warning messages can be eliminated with the ‘-W@’ option. See -W@’: Set module warning flag..
  9. The ‘@q’ command (still experimental) has been added to locally turn on or off the the line and module comments in the tangled output. See @q’: Turn off module and line info locally.
  10. The level of verbosity of FWEB’s informational messages can be controlled with the ‘-M’ option. See -M’: Set output message level.
  11. C/C++ programmers may find the command ‘@{’ useful. See Special left brace.
  12. The ‘-nC’ option has been added for FORTRAN users; it kills commented lines at a very early stage in the processing. This can be useful when converting existing codes to FWEB. See -nC’: Ignore single-line comments [FORTRAN]
  13. FORTRAN-90 (see -n9’: Set global language to FORTRAN–90) now defaults to free-form syntax.
  14. As of the non-beta Version 1.61, free-form FORTRAN-90 now inserts semicolons automatically in the code part. Thus, textbook FORTRAN-90 examples will weave correctly without the annoyance of explicitly terminating each statement with a semicolon. (If you prefer to put in the semicolons explicitly, use ‘--n;’ to turn off the auto-insertion.) See -n;’: Supply automatic semicolons [FORTRAN]
  15. The default meaning of the ‘-k’ option was changed; now both lower- and upper-case forms of FORTRAN I/O keywords are recognized. See -k’: Don’t recognize lower-case forms of keywords.
  16. Various changes were made to internal code in fwebmac.sty. This should not affect anyone unless you have redefined fwebmac macros. If so, you’ll have to compare your versions with the present ones. For example, colons as argument delimiters in \defs have been removed.
  17. It is now (barely) possible to use \documentstyle{revtex} instead of the default \documentclass{article}. See Using REVTeX.

14.1.4 Significant bugs (v1.61)

  1. Perhaps the most significant bug is that some high-order (>= 128) characters in strings may not typeset or be processed correctly. This may be an issue for some users of foreign-language packages. The difficulty arises from a design decision made by a previous author. This has at least partly been fixed, but I eschewed a substantial overhaul for fear of breaking other things.