From 
Maurice Kinal@1:153/7001.2989 to 
Kai Richter on Fri May 30 01:44:48 2025
 
 
Hey Kai!
<standard input>:128: warning: table wider than line length minus indentation manâpages(7)    Miscellaneous Information Manual   manâpages(7)
NAME
       manâpages - conventions for writing Linux man pages
SYNOPSIS
       man [section] title
DESCRIPTION
       This  page  describes the conventions that should be emâ
       ployed when writing man pages for  the  Linux  manâpages
       project,  which documents the userâspace API provided by
       the Linux kernel and the GNU  C  library.   The  project
       thus  provides  most  of the pages in Section 2, many of
       the pages that appear in Sections 3, 4, and 7, and a few
       of the pages that appear in Sections 1, 5, and 8 of  the
       man  pages on a Linux system.  The conventions described
       on this page may also be useful for authors writing  man
       pages for other projects.
   Sections of the manual pages
       The  manual  Sections  are traditionally defined as folâ
       lows:
       1 User commands (Programs)
              Commands that can be executed by  the  user  from
              within a shell.
       2 System calls
              Functions  which wrap operations performed by the
              kernel.
       3 Library calls
              All library functions excluding the  system  call
              wrappers (Most of the libc functions).
       4 Special files (devices)
              Files  found in /dev which allow to access to deâ
              vices through the kernel.
       5 File formats and configuration files
              Describes various humanâreadable file formats and
              configuration files.
       6 Games
              Games and funny little programs available on  the
              system.
       7 Overview, conventions, and miscellaneous
              Overviews or descriptions of various topics, conâ
              ventions, and protocols, character set standards,
              the standard filesystem layout, and miscellaneous
              other things.
       8 System management commands
              Commands  like  mount(8), many of which only root
              can execute.
   Macro package
       New manual pages should be marked  up  using  the  groff
       an.tmac  package  described  in  man(7).  This choice is
       mainly for consistency: the vast  majority  of  existing
       Linux manual pages are marked up using these macros.
   Conventions for source file layout
       Please  limit  source  code  line length to no more than
       about 75 characters wherever possible.  This helps avoid
       lineâwrapping in some mail clients when patches are subâ
       mitted inline.
   Title line
       The first command in a man page should be a TH command:
              .TH title section date source manualâsection
       The arguments of the command are as follows:
       title  The title of the man page.
       section
              The section number in which the man  page  should
              be placed (e.g., 7).
       date   The  date  of the last nontrivial change that was
              made to the  man  page.   (Within  the  manâpages
              project,  the  necessary  updates  to these timeâ
              stamps are handled automatically by  scripts,  so
              there  is no need to manually update them as part
              of a patch.)  Dates should be written in the form
              YYYYâMMâDD.
       source The name and version of the project that provides
              the manual page (not necessarily the package that
              provides the functionality).
       manualâsection
              Normally, this should be empty, since the default
              value will be good.
   Sections within a manual page
       The list below shows conventional or suggested sections.
       Most manual pages should  include  at  least  the  highâ
       lighted  sections.   Arrange  a  new manual page so that
       sections are placed in the order shown in the list.
              NAME
              LIBRARY          [Normally only in Sections 2, 3]
              SYNOPSIS
              CONFIGURATION    [Normally only in Section 4]
              DESCRIPTION
              OPTIONS          [Normally only in Sections 1, 8]
              EXIT STATUS      [Normally only in Sections 1, 8]
              RETURN VALUE     [Normally only in Sections 2, 3]
              ERRORS           [Typically only in Sections 2, 3]
              ENVIRONMENT
              FILES
              ATTRIBUTES       [Normally only in Sections 2, 3]
              VERSIONS         [Normally only in Sections 2, 3]
              STANDARDS
              HISTORY
              NOTES
              CAVEATS
              BUGS
              EXAMPLES
              AUTHORS          [Discouraged]
              REPORTING BUGS   [Not used in manâpages]
              COPYRIGHT        [Not used in manâpages]
              SEE ALSO
       Where a traditional heading would apply, please use  it;
       this kind of consistency can make the information easier
       to  understand.   If  you  must, you can create your own
       headings if they make things easier to understand  (this
       can be especially useful for pages in Sections 4 and 5).
       However,  before  doing this, consider whether you could
       use the  traditional  headings,  with  some  subsections
       (.SS) within those sections.
       The following list elaborates on the contents of each of
       the above sections.
       NAME   The name of this manual page.
              See  man(7)  for important details of the line(s)
              that should follow the  .SH  NAME  command.   All
              words  in  this  line (including the word immediâ
              ately following the "\-") should be in lowercase,
              except where English or technical  terminological
              convention dictates otherwise.
       LIBRARY
              The library providing a symbol.
              It  shows  the common name of the library, and in
              parentheses, the name of the library file and, if
              needed, the linker flag needed to link a  program
              against it: (libfoo[, -lfoo]).
       SYNOPSIS
              A  brief summary of the command or functionâs inâ
              terface.
              For commands, this shows the syntax of  the  comâ
              mand and its arguments (including options); boldâ
              face  is used for asâis text and italics are used
              to indicate replaceable arguments.  Brackets ([])
              surround optional arguments,  vertical  bars  (|)
              separate  choices,  and ellipses (...) can be reâ
              peated.  For functions,  it  shows  any  required
              data  declarations  or  #include directives, folâ
              lowed by the function declaration.
              Where a feature test macro must be defined in orâ
              der to obtain the declaration of a function (or a
              variable) from a header file, then  the  SYNOPSIS
              should   indicate  this,  as  described  in  feaâ
              ture_test_macros(7).
       CONFIGURATION
              Configuration details for a device.
              This section normally appears only in  Section  4
              pages.
       DESCRIPTION
              An  explanation of what the program, function, or
              format does.
              Discuss how it interacts with files and  standard
              input, and what it produces on standard output or
              standard  error.   Omit internals and implementaâ
              tion details unless theyâre critical  for  underâ
              standing the interface.  Describe the usual case;
              for information on commandâline options of a proâ
              gram use the OPTIONS section.
              When  describing  new behavior or new flags for a
              system call or library function,  be  careful  to
              note  the kernel or C library version that introâ
              duced the change.  The preferred method of noting
              this information for flags is as part  of  a  .TP
              list, in the following form (here, for a new sysâ
              tem call flag):
                       XYZ_FLAG (since Linux 3.7)
                              Description of flag...
              Including  version information is especially useâ
              ful to users who are constrained to  using  older
              kernel or C library versions (which is typical in
              embedded systems, for example).
       OPTIONS
              A  description  of  the  commandâline options acâ
              cepted by a program and how they change  its  beâ
              havior.
              This section should appear only for Section 1 and
              8 manual pages.
       EXIT STATUS
              A  list  of  the possible exit status values of a
              program and the conditions that cause these  valâ
              ues to be returned.
              This section should appear only for Section 1 and
              8 manual pages.
       RETURN VALUE
              For  Section  2 and 3 pages, this section gives a
              list of the values the library routine  will  reâ
              turn  to the caller and the conditions that cause
              these values to be returned.
       ERRORS For Section 2 and 3 manual pages, this is a  list
              of  the values that may be placed in errno in the
              event of an error, along with  information  about
              the cause of the errors.
              Where  several  different  conditions produce the
              same error, the preferred approach is  to  create
              separate   list  entries  (with  duplicate  error
              names) for each of the  conditions.   This  makes
              the  separate conditions clear, may make the list
              easier to read, and allows metainformation (e.g.,
              kernel version number where the  condition  first
              became  applicable)  to be more easily marked for
              each condition.
              The error list should be in alphabetical order.
       ENVIRONMENT
              A list of all environment variables  that  affect
              the program or function and how they affect it.
       FILES  A list of the files the program or function uses,
              such  as  configuration files, startup files, and
              files the program directly operates on.
              Give the full pathname of these  files,  and  use
              the  installation process to modify the directory
              part to match user preferences.   For  many  proâ
              grams,  the  default  installation location is in
              /usr/local, so your base manual page  should  use
              /usr/local as the base.
       ATTRIBUTES
              A  summary  of  various  attributes  of the funcâ
              tion(s) documented on  this  page.   See  attribâ
              utes(7) for further details.
       VERSIONS
              A  summary of systems where the API performs difâ
              ferently, or where thereâs a similar API.
       STANDARDS
              A description of  any  standards  or  conventions
              that  relate to the function or command described
              by the manual page.
              The preferred terms to use for the various  stanâ
              dards are listed as headings in standards(7).
              This section should note the current standards to
              which the API conforms to.
              If  the  API is not governed by any standards but
              commonly exists on other systems, note them.   If
              the  call is Linuxâspecific or GNUâspecific, note
              this.  If itâs available in the BSDs, note that.
              If this section consists of just a list of  stanâ
              dards  (which  it  commonly  does), terminate the
              list with a period ('.').
       HISTORY
              A brief summary of the Linux kernel or glibc verâ
              sions where a system call or library function apâ
              peared, or changed significantly  in  its  operaâ
              tion.
              As a general rule, every new interface should inâ
              clude  a HISTORY section in its manual page.  Unâ
              fortunately, many existing manual pages donât inâ
              clude this information (since there was no policy
              to do so when they  were  written).   Patches  to
              remedy  this  are welcome, but, from the perspecâ
              tive of programmers writing new code, this inforâ
              mation probably matters only in the case of  kerâ
              nel  interfaces that have been added in Linux 2.4
              or later (i.e., changes since Linux 2.2), and liâ
              brary functions that have  been  added  to  glibc
              since glibc 2.1 (i.e., changes since glibc 2.0).
              The  syscalls(2) manual page also provides inforâ
              mation about kernel  versions  in  which  various
              system calls first appeared.
       Old  versions  of  standards  should  be mentioned here,
       rather than in STANDARDS, for example, SUS,  SUSv2,  and
       XPG, or the SVr4 and 4.xBSD implementation standards.
       NOTES  Miscellaneous notes.
              For  Section  2  and  3 man pages you may find it
              useful  to   include   subsections   (SS)   named
              Linux Notes and glibc Notes.
              In  Section  2,  use the heading C library/kernel
              differences to mark off notes that  describe  the
              differences  (if any) between the C library wrapâ
              per function for a system call and the raw system
              call interface provided by the kernel.
       CAVEATS
              Warnings about typical user  misuse  of  an  API,
              that  donât  constitute  an API bug or design deâ
              fect.
       BUGS   A list of limitations, known defects or  inconveâ
              niences, and other questionable activities.
       EXAMPLES
              One or more examples demonstrating how this funcâ
              tion, file, or command is used.
              For  details on writing example programs, see Exâ
              ample programs below.
       AUTHORS
              A list of authors of the  documentation  or  proâ
              gram.
              Use of an AUTHORS section is strongly discouraged
              .   Generally,  it is better not to clutter every
              page with a list of (over time potentially numerâ
              ous) authors; if you write or significantly amend
              a page, add a copyright notice as  a  comment  in
              the  source file.  If you are the author of a deâ
              vice driver and want to include  an  address  for
              reporting  bugs,  place  this under the BUGS secâ
              tion.
       REPORTING BUGS
              The manâpages project  doesnât  use  a  REPORTING
              BUGS section in manual pages.  Information on reâ
              porting  bugs  is instead supplied in the scriptâ
              generated  COLOPHON  section.   However,  various
              projects  do use a REPORTING BUGS section.  It is
              recommended to place it  near  the  foot  of  the
              page.
       COPYRIGHT
              The  manâpages  project  doesnât  use a COPYRIGHT
              section in manual pages.   Copyright  information
              is  instead  maintained  in  the page source.  In
              pages where this section is present, it is recomâ
              mended to place it near the  foot  of  the  page,
              just above SEE ALSO.
       SEE ALSO
              A commaâseparated list of related man pages, posâ
              sibly  followed  by  other related pages or docuâ
              ments.
              The list should be ordered by section number  and
              then  alphabetically  by  name.  Do not terminate
              this list with a period.
              Where the SEE ALSO list contains many long manual
              page names, to improve the visual result  of  the
              output,  it  may  be  useful  to employ the <standard input>:851: warning: table wider than line length minus indentation
.ad l
              (donât right justify) and .nh  (donât  hyphenate)
              directives.  Hyphenation of individual page names
              can  be  prevented  by  preceding  words with the
              string "\%".
              Given the distributed, autonomous nature of  FOSS
              projects and their documentation, it is sometimes
              necessaryâand  in  many  cases desirableâthat the
              SEE ALSO section includes  references  to  manual
              pages provided by other projects.
FORMATTING AND WORDING CONVENTIONS
       The  following  subsections  note  some details for preâ
       ferred formatting and  wording  conventions  in  various
       sections of the pages in the manâpages project.
   SYNOPSIS
       Wrap the function prototype(s) in a .nf/.fi pair to preâ
       vent filling.
       In  general,  where  more than one function prototype is
       shown in the SYNOPSIS, the prototypes should not be sepâ
       arated by blank lines.  However, blank  lines  (achieved
       using .P) may be added in the following cases:
       ⢠ to  separate  long  lists of function prototypes into
          related groups (see for example list(3));
       ⢠ in other cases that may improve readability.
       In the SYNOPSIS, a long function prototype may  need  to
       be  continued  over  to the next line.  The continuation
       line is indented according to the following rules:
       (1)  If there is a single such prototype that  needs  to
            be  continued,  then align the continuation line so
            that when the page is  rendered  on  a  fixedâwidth
            font  device  (e.g.,  on an xterm) the continuation
            line starts just below the start  of  the  argument
            list  in  the line above.  (Exception: the indentaâ
            tion may be adjusted if necessary to prevent a very
            long continuation line or  a  further  continuation
            line  where  the  function prototype is very long.)
            As an example:
                int tcsetattr(int fd, int optional_actions,
                              const struct termios *termios_p);
       (2)  But, where multiple functions in the  SYNOPSIS  reâ
            quire  continuation  lines,  and the function names
            have different lengths, then align all continuation
            lines to start in the same column.  This provides a
            nicer rendering in PDF output (because the SYNOPSIS
            uses a variable width font where spaces render narâ
            rower than most characters).  As an example:
                int getopt(int argc, char * const argv[],
                           const char *optstring);
                int getopt_long(int argc, char * const argv[],
                           const char *optstring,
                           const struct option *longopts, int *longindex);
   RETURN VALUE
       The preferred wording to describe how errno  is  set  is
       "errno  is  set to indicate the error" or similar.  This
       wording is consistent with  the  wording  used  in  both
       POSIX.1 and FreeBSD.
   ATTRIBUTES
       Note the following:
       ⢠ Wrap the table in this section in a .ad l/.ad pair to
          disable  text  filling  and a .nh/.hy pair to disable
          hyphenation.
       ⢠ Ensure that the table occupies the  full  page  width
          through  the use of an lbx description for one of the
          columns (usually the first  column,  though  in  some
          cases the last column if it contains a lot of text).
       ⢠ Make  free  use  of  T{/T} macro pairs to allow table
          cells to be broken over multiple lines (also  bearing
          in  mind  that  pages  may sometimes be rendered to a
          width of less than 80 columns).
       For examples of all of the above, see the source code of
       various pages.
STYLE GUIDE
       The following subsections describe the  preferred  style
       for  the manâpages project.  For details not covered beâ
       low, the Chicago Manual  of  Style  is  usually  a  good
       source;  try  also grepping for preexisting usage in the
       project source tree.
   Use of genderâneutral language
       As far as possible, use genderâneutral language  in  the
       text  of  man pages.  Use of "they" ("them", "themself",
       "their") as a genderâneutral singular pronoun is acceptâ
       able.
   Formatting conventions for manual pages describing commands
       For manual pages that describe a command  (typically  in
       Sections  1  and  8), the arguments are always specified
       using italics, even in the SYNOPSIS section.
       The name of the command, and its options, should  always
       be formatted in bold.
   Formatting conventions for manual pages describing functions
       For  manual  pages that describe functions (typically in
       Sections 2 and 3), the arguments  are  always  specified
       using  italics,  even in the SYNOPSIS section, where the
       rest of the function is specified in bold:
           int myfunction(int argc, char **argv);
       Variable names should, like argument names, be specified
       in italics.
       Any reference to the subject of the current manual  page
       should  be  written  with the name in bold followed by a
       pair of parentheses in Roman (normal) font.   For  examâ
       ple, in the fcntl(2) man page, references to the subject
       of the page would be written as: fcntl().  The preferred
       way to write this in the source file is:
           .BR fcntl ()
       (Using this format, rather than the use of "\fB...\fP()"
       makes  it  easier  to  write  tools  that parse man page
       source files.)
   Use semantic newlines
       In the source of a manual page, new sentences should  be
       started  on  new  lines,  long sentences should be split
       into lines at clause breaks (commas, semicolons, colons,
       and so on), and long clauses should be split  at  phrase
       boundaries.  This convention, sometimes known as "semanâ
       tic  newlines",  makes  it  easier  to see the effect of
       patches, which often operate at the level of  individual
       sentences, clauses, or phrases.
   Lists
       There are different kinds of lists:
       Tagged paragraphs
              These  are  used for a list of tags and their deâ
              scriptions.  When the tags are constants  (either
              macros or numbers) they are in bold.  Use the .TP
              macro.
              An example is this "Tagged paragraphs" subsection
              is itself.
       Ordered lists
              Elements  are preceded by a number in parentheses
              (1), (2).  These represent a set  of  steps  that
              have an order.
              When  there  are  substeps, they will be numbered
              like (4.2).
       Positional lists
              Elements are preceded  by  a  number  (index)  in
              square brackets [4], [5].  These represent fields
              in a set.  The first index will be:
              0      When  it  represents  fields  of  a C data
                     structure, to be consistent with arrays.
              1      When it represents fields of a file, to be
                     consistent with tools like cut(1).
       Alternatives list
              Elements are preceded by a letter in  parentheses
              (a),  (b).   These  represent a set of (normally)
              exclusive alternatives.
       Bullet lists
              Elements are preceded by bullet symbols  (\[bu]).
              Anything  that  doesnât  fit elsewhere is usually
              covered by this type of list.
       Numbered notes
              Not really a list, but the syntax is identical to
              "positional lists".
       There should always be exactly 2 spaces between the list
       symbol and the elements.  This doesnât apply to  "tagged
       paragraphs", which use the default indentation rules.
   Formatting conventions (general)
       Paragraphs should be separated by suitable markers (usuâ
       ally  either .P or .IP).  Do not separate paragraphs usâ
       ing blank lines, as this results in  poor  rendering  in
       some output formats (such as PostScript and PDF).
       Filenames  (whether  pathnames,  or references to header
       files) are always in italics (e.g.,  <stdio.h>),  except
       in  the  SYNOPSIS  section,  where included files are in
       bold (e.g., #include <stdio.h>).  When  referring  to  a
       standard  header  file  include, specify the header file
       surrounded by angle brackets, in the usual C way  (e.g.,
       <stdio.h>).
       Special  macros,  which are usually in uppercase, are in
       bold (e.g., MAXINT).  Exception: donât boldface NULL.
       When enumerating a list of error codes, the codes are in
       bold (this list usually uses the .TP macro).
       Complete commands should, if long, be written as an  inâ
       dented  line  on their own, with a blank line before and
       after the command, for example
           man 7 man-pages
       If the command is short, then it can be included  inline
       in  the  text, in italic format, for example, man 7 manâ
       pages.  In this case, it may be worth using  nonbreaking
       spaces  (\~) at suitable places in the command.  Command
       options should be written in italics (e.g., -l).
       Expressions, if not written on a separate indented line,
       should be specified in italics.  Again, the use of  nonâ
       breaking  spaces may be appropriate if the expression is
       inlined with normal text.
       When showing example shell sessions, user  input  should
       be formatted in bold, for example
           $ date;
           Thu Jul  7 13:01:27 CEST 2016
       Any reference to another man page should be written with
       the name in bold, always followed by the section number,
       formatted in Roman (normal) font, without any separating
       spaces  (e.g.,  intro(2)).   The  preferred way to write
       this in the source file is:
           .BR intro (2)
       (Including the section number in cross  references  lets
       tools   like  man2html(1)  create  properly  hyperlinked
       pages.)
       Control characters should be written in bold face,  with
       no quotes; for example, ^X.
   Spelling
       Starting  with  release 2.59, manâpages follows American
       spelling conventions (previously, there was a random mix
       of British and American spellings); please write all new
       pages and patches according to these conventions.
       Aside from the wellâknown  spelling  differences,  there
       are a few other subtleties to watch for:
       ⢠ American  English  tends to use the forms "backward",
          "upward", "toward", and so on rather than the British
          forms "backwards", "upwards", "towards", and so on.
       ⢠ Opinions are divided  on  "acknowledgement"  vs  "acâ
          knowledgment".   The  latter  is predominant, but not
          universal usage in American English.  POSIX  and  the
          BSD  license  use  the former spelling.  In the Linux
          manâpages project, we use "acknowledgement".
   BSD version numbers
       The classical scheme for writing BSD version numbers  is
       x.yBSD,  where x.y is the version number (e.g., 4.2BSD).
       Avoid forms such as BSD 4.3.
   Capitalization
       In subsection ("SS") headings, capitalize the first word
       in the heading,  but  otherwise  use  lowercase,  except
       where  English usage (e.g., proper nouns) or programming
       language requirements (e.g., identifier  names)  dictate
       otherwise.  For example:
           .SS Unicode under Linux
   Indentation  of  structure  definitions, shell session logs,
       and so on
       When structure definitions, shell session logs,  and  so
       on are included in running text, indent them by 4 spaces
       (i.e., a block enclosed by .in +4n and .in), format them
       using  the  .EX  and  .EE macros, and surround them with
       suitable paragraph markers (either .P or .IP).  For  exâ
       ample:
           .P
           .in +4n
           .EX
           int
           main(int argc, char *argv[])
           {
               return 0;
           }
           .EE
           .in
           .P
   Preferred terms
       The following table lists some preferred terms to use in
       man pages, mainly to ensure consistency across pages.
       Term                 Avoid using              Notes
       âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
       bit mask             bitmask
       builtâin             builtin
       Epoch                epoch                    For the UNIX
                                                     Epoch
                                                     (00:00:00, 1
                                                     Jan 1970 UTC)
       filename             file name
       filesystem           file system
       hostname             host name
       inode                iânode
       lowercase            lower case, lowerâcase
       nonzero              nonâzero
       pathname             path name
       pseudoterminal       pseudoâterminal
       privileged port      reserved port, system
                            port
       realâtime            realtime, real time
       run time             runtime
       saved setâgroupâID   saved group ID, saved
                            setâGID
       saved setâuserâID    saved user ID, saved
                            setâUID
       setâgroupâID         setâGID, setgid
       setâuserâID          setâUID, setuid
       superuser            super user, superâuser
       superblock           super block, superâ
                            block
       symbolic link        symlink
       timestamp            time stamp
       timezone             time zone
       uppercase            upper case, upperâcase
       usable               useable
       user space           userspace
       username             user name
       x86â64               x86_64                   Except if reâ
                                                     ferring to
                                                     result of
                                                     "uname -m" or
                                                     similar
       zeros                zeroes
       See also the discussion Hyphenation of attributive comâ
       pounds below.
   Terms to avoid
       The following table lists some terms to avoid using in
       man pages, along with some suggested alternatives,
       mainly to ensure consistency across pages.
       Avoid             Use instead         Notes
       âââââââââââââââââââââââââââââââââââââââââââââââââââââââ
       32bit             32âbit              same for 8âbit,
                                             16âbit, etc.
       current process   calling process     A common mistake
                                             made by kernel
                                             programmers when
                                             writing man
                                             pages
       manpage           man page, manual
                         page
       minus infinity    negative infinity
       nonâroot          unprivileged user
       nonâsuperuser     unprivileged user
       nonprivileged     unprivileged
       OS                operating system
       plus infinity     positive infinity
       pty               pseudoterminal
       tty               terminal
       Unices            UNIX systems
       Unixes            UNIX systems
   Trademarks
       Use  the  correct spelling and case for trademarks.  The
       following is a list of the correct spellings of  various
       relevant trademarks that are sometimes misspelled:
              DG/UX
              HPâUX
              UNIX
              UnixWare
   NULL, NUL, null pointer, and null byte
       A  null pointer is a pointer that points to nothing, and
       is normally indicated by  the  constant  NULL.   On  the
       other  hand, NUL is the null byte, a byte with the value
       0, represented in C via the character constant '\0'.
       The preferred term for the pointer is "null pointer"  or
       simply "NULL"; avoid writing "NULL pointer".
       The  preferred  term for the byte is "null byte".  Avoid
       writing "NUL", since it  is  too  easily  confused  with
       "NULL".   Avoid  also  the  terms  "zero byte" and "null
       character".  The byte that terminates a C string  should
       be described as "the terminating null byte"; strings may
       be  described as "nullâterminated", but avoid the use of
       "NULâterminated".
   Hyperlinks
       For  hyperlinks,  use  the  .UR/.UE  macro   pair   (see
       groff_man(7)).  This produces proper hyperlinks that can
       be  used  in  a web browser, when rendering a page with,
       say:
           BROWSER=firefox man âH pagename
   Use of e.g., i.e., etc., a.k.a., and similar
       In general, the use of  abbreviations  such  as  "e.g.",
       "i.e.",  "etc.",  "cf.", and "a.k.a." should be avoided,
       in favor of suitable full wordings ("for example", "that
       is", "and so on", "compare to", "also known as").
       The only place where such abbreviations may  be  acceptâ
       able  is  in short parenthetical asides (e.g., like this
       one).
       Always include periods in such abbreviations,  as  shown
       here.   In  addition, "e.g." and "i.e." should always be
       followed by a comma.
   Emâdashes
       The way to write an emâdashâthe glyph  that  appears  at
       either  end of this subphraseâin *roff is with the macro
       "\[em]".  (On an ASCII terminal,  an  emâdash  typically
       renders  as two hyphens, but in other typographical conâ
       texts it renders as a long dash.)  Emâdashes  should  be
       written without surrounding spaces.
   Hyphenation of attributive compounds
       Compound  terms  should be hyphenated when used attribuâ
       tively (i.e., to qualify a following noun).  Some  examâ
       ples:
              32âbit value
              commandâline argument
              floatingâpoint number
              runâtime check
              userâspace function
              wideâcharacter string
   Hyphenation with multi, non, pre, re, sub, and so on
       The general tendency in modern English is not to hyphenâ
       ate  after prefixes such as "multi", "non", "pre", "re",
       "sub", and so on.  Manual pages should generally  follow
       this  rule  when these prefixes are used in natural Engâ
       lish constructions with simple suffixes.  The  following
       list gives some examples of the preferred forms:
              interprocess
              multithreaded
              multiprocess
              nonblocking
              nondefault
              nonempty
              noninteractive
              nonnegative
              nonportable
              nonzero
              preallocated
              precreate
              prerecorded
              reestablished
              reinitialize
              rearm
              reread
              subcomponent
              subdirectory
              subsystem
       Hyphens should be retained when the prefixes are used in
       nonstandard   English  words,  with  trademarks,  proper
       nouns, acronyms, or compound terms.  Some examples:
              nonâASCII
              nonâEnglish
              nonâNULL
              nonârealâtime
       Finally, note that "reâcreate" and  "recreate"  are  two
       different  verbs,  and  the  former is probably what you
       want.
   Generating optimal glyphs
       Where a real minus character is required (e.g., for numâ
       bers such as -1, for man page cross references  such  as
       utf-8(7),  or  when  writing options that have a leading
       dash, such as in ls -l), use the following form  in  the
       man page source:
           \-
       This guideline applies also to code examples.
       The  use  of  real minus signs serves the following purâ
       poses:
       ⢠ To provide better renderings on various targets other
          than ASCII terminals, notably  in  PDF  and  on  Uniâ
          code/UTF-8âcapable terminals.
       ⢠ To  generate  glyphs  that  when copied from rendered
          pages will produce real minus signs when pasted  into
          a terminal.
       To  produce  unslanted single quotes that render well in
       ASCII, UTFâ8, and PDF, use "\[aq]" ("apostrophe quote");
       for example
           \[aq]C\[aq]
       where C is the quoted character.  This guideline applies
       also to character constants used in code examples.
       Where a proper caret (^) that renders  well  in  both  a
       terminal  and PDF is required, use "\[ha]".  This is esâ
       pecially necessary in code samples, to get a nicely renâ
       dered caret when rendering to PDF.
       Using a naked "~" character results in a poor  rendering
       in PDF.  Instead use "\[ti]".  This is especially necesâ
       sary  in  code  samples,  to get a nicely rendered tilde
       when rendering to PDF.
   Example programs and shell sessions
       Manual pages may include example programs  demonstrating
       how  to use a system call or library function.  However,
       note the following:
       ⢠ Example programs should be written in C.
       ⢠ An example program is necessary and useful only if it
          demonstrates something beyond what can easily be proâ
          vided in a textual description of the interface.   An
          example  program that does nothing other than call an
          interface usually serves little purpose.
       ⢠ Example programs should ideally  be  short  (e.g.,  a
          good  example  can often be provided in less than 100
          lines of code), though in some cases longer  programs
          may be necessary to properly illustrate the use of an
          API.
       ⢠ Expressive code is appreciated.
       ⢠ Comments  should  included  where  helpful.  Complete
          sentences in freeâstanding comments should be  termiâ
          nated by a period.  Periods should generally be omitâ
          ted in "tag" comments (i.e., comments that are placed
          on  the  same line of code); such comments are in any
          case typically brief  phrases  rather  than  complete
          sentences.
       ⢠ Example  programs should do error checking after sysâ
          tem calls and library function calls.
       ⢠ Example programs  should  be  complete,  and  compile
          without warnings when compiled with cc -Wall.
       ⢠ Where  possible  and  appropriate,  example  programs
          should allow experimentation, by varying their behavâ
          ior based on inputs (ideally from commandâline  arguâ
          ments,  or  alternatively, via input read by the proâ
          gram).
       ⢠ Example programs should  be  laid  out  according  to
          Kernighan  and  Ritchie  style, with 4âspace indents.
          (Avoid the use of TAB  characters  in  source  code!)
          The  following  command  can  be  used to format your
          source code  to  something  close  to  the  preferred
          style:
              indent -npro -kr -i4 -ts4 -sob -l72 -ss -nut -psl prog.c
       ⢠ For  consistency,  all example programs should termiâ
          nate using either of:
              exit(EXIT_SUCCESS);
              exit(EXIT_FAILURE);
          Avoid using the following forms to terminate  a  proâ
          gram:
              exit(0);
              exit(1);
              return n;
       ⢠ If  there  is  extensive  explanatory text before the
          program source code, mark off the source code with  a
          subsection heading Program source, as in:
              .SS Program source
          Always  do  this  if  the explanatory text includes a
          shell session log.
       If you include a shell session log demonstrating the use
       of a program or other system feature:
       ⢠ Place the session log above the source code listing.
       ⢠ Indent the session log by four spaces.
       ⢠ Boldface the user input text, to distinguish it  from
          output produced by the system.
       For  some  examples of what example programs should look
       like, see wait(2) and pipe(2).
EXAMPLES
       For canonical examples of how man pages in the manâpages
       package should look, see pipe(2) and fcntl(2).
SEE ALSO
       man(1),    man2html(1),     attributes(7),     groff(7),
       groff_man(7), man(7), mdoc(7)
Linux manâpages 6.14       2025â05â06              manâpages(7)
Life is good,
Maurice
 o-  -o    o-  -o    o-  -o   -o   -o    o-  -o   -o    o-   o-   o-   o-  -o /)    (\  /)    (\  /)    (\   (\   (\  /)    (\   (\  /)   /)   /)   /)    (\ ^^    ^^  ^^    ^^  ^^    ^^   ^^   ^^  ^^    ^^   ^^  ^^   ^^   ^^   ^^    ^^ ... Fidonet 4K - You load sixteen penguins and what do you get?
--- GNU bash, version 5.2.37(1)-release (x86_64-pc-linux-gnu)
 * Origin: One of us @ (1:153/7001.2989)