Appendix B Tips and Hints

Writers of GNU manuals should consult GNU Manuals in GNU Coding Standards. Here are some other tips for writing Texinfo documentation:

Index, Index, Index!

Complete Phrases

Complete phrases are easier to read than …

Introducing New Terms

Bad Examples

Here are a few examples of bad writing to avoid:

When you are done editing the file, you must perform a @dfn{check in}.

In this example, say, “ … you must @dfn{check in} the new version.” That flows better.

SCCS, RCS and other version-control systems all perform similar functions in broadly similar ways (it is this resemblance which makes a unified control mode like this possible).

In this example, say, “… makes a unified interface such as VC mode possible.”

Periods Outside of Quotes

Place periods and other punctuation marks outside of quotations, unless the punctuation is part of the quotation. This practice goes against some publishing conventions in the United States, but enables the reader to distinguish between the contents of the quotation and the whole passage.

For example, you should write the following sentence with the period outside the end quotation marks:

Evidently, ‘au’ is an abbreviation for ``author''.

since ‘au’ does not serve as an abbreviation for ‘author.’ (with a period following the word).

Blank Lines

Spaces

Do not use spaces to format a Texinfo file, except inside of @example@end example and other literal environments and commands.

For example, TeX fills the following:

   @kbd{C-x v}
   @kbd{M-x vc-next-action}
      Perform the next logical operation
      on the version-controlled file
      corresponding to the current buffer.

so it looks like this:

‘C-x v’ ‘M-x vc-next-action’ Perform the next logical operation on the version-controlled file corresponding to the current buffer.

In this case, the text should be formatted with @table, @item, and @itemx, to create a table.

@code, @samp, @var, and ‘---

Program Invocation Nodes

You can invoke programs such as Emacs, GCC, and gawk from a shell. The documentation for each program should contain a section that describes this. Unfortunately, if the node names and titles for these sections are all different, they are difficult for users to find.

So, there is a convention to name such sections with a phrase beginning with the word ‘Invoking’, as in ‘Invoking Emacs’; this way, users can find the section easily.

C functions

When you use @example to describe a C function’s calling conventions, use the ANSI C syntax, like this:

void dld_init (char *@var{path});

And in the subsequent discussion, refer to the argument values by writing the same argument names, again highlighted with @var.

Also, it is best to avoid writing #include above the declaration just to indicate that the function is declared in a header file. The practice may give the misimpression that the #include belongs near the declaration of the function. Either state explicitly which header file holds the declaration or, better yet, name the header file used for a group of functions at the beginning of the section that describes the functions.

Node Length

Keep nodes (sections) to a reasonable length, whatever reasonable might be in the given context. Don’t hesitate to break up long nodes into subnodes and have an extensive tree structure; that’s what it’s there for. Many times, readers will probably try to find a single specific point in the manual, using search, indexing, or just plain guessing, rather than reading the whole thing from beginning to end.

You can use the texi-elements-by-size utility to see a list of all nodes (or sections) in the document, sorted by size (either lines or words), to find candidates for splitting. It’s in the util/ subdirectory of the Texinfo sources.

Capitalization

And Finally …