Provided by: lgrind_3.67-3.1_amd64 bug

NAME

       lgrind - grind nice program listings using LaTeX

NOTE

       This  man page is not yet much outdated, but might be soon except somebody asks me to work
       on it. Consider the LaTeX docs the real docs.

SYNOPSIS

       lgrind [ -e ] [ -i ] [ - ] [ -n ] [ -c ] [ -t <width> ] [ -h <header> ] [ -d  <description
       file> ] [ -l<language> ] [ -s ] <name> ...

DESCRIPTION

       LGrind  formats  program  sources  in a nice style using LaTeX(1).  Comments are placed in
       roman, keywords in bold face, variables in italics, and strings in typewriter font. Source
       file line numbers appear in the right margin (every 10 lines).

       LGrind  processes its input file(s) and writes the result to standard output.  This output
       can be saved for later editting, inclusion in a larger document, etc.

       The options are:

       -e     process a LaTeX file for embedded code.

       -i     process source code file for inclusion in a LaTeX document.

       -      take input from standard input.

       -n     don't boldface keywords.

       -c     don't treat @, etc. specially in comments.

       -t     change tab width (default 8).

       -h     specifies text to go into the header.

       -d     specifies      the      language      definitions      file       (default       is
              /usr/lib/texmf/tex/latex/lgrind/lgrindef).

       -d!    same as above, but write patched executable.

       -l     specifies the language to use.

       -s     shows a list of currently known languages.

       If LGrind is called without parameters, a help screen will be shown.  If neither -e nor -i
       are specified, a complete LaTeX file is produced. When no language  is  specified,  LGrind
       tries to find out the language used itself; C is used when this fails.

USAGE

       For  example,  to  include  a  C file named foo.c into your LaTeX document, first give the
       command:

           lgrind -i -lc foo.c > foo.tex

       This will generate foo.tex, which will have the pretty-printed version of foo.c with a lot
       of LaTeX commands.

       Then   include   lgrind.sty   as   you   include   any   other   style,  namely  with  the
       \usepackage{lgrind} line at the beginning of your LaTeX document. Having done this, within
       the document you can include foo.tex using one of the following commands:

       \lgrindfile{foo.tex}
              which  will simply include the file at that point of text, and will draw horizontal
              lines before and after the listing.

       \lagrind[htbp]{foo.tex}{caption}{label}
              which will put the listing also  within  a  figure  environment,  using  the  float
              options, caption and label you gave.

       To produce a standalone LaTeX file from, say, a Yacc file:

           lgrind -ly bary.y > bary.tex
              This uses Piet van Oostrum's fancyhdr.sty to make the headers and footers.

       For     a     more     detailed     explanation    of    these    commands,    refer    to
       /usr/TeX/texmf/doc/latex/lgrind.dvi.

EMBEDDED PROGRAMS WITHIN A LaTeX FILE

       (From Jerry Leichter's notes.)

       Within the text of your LaTeX file, you mark groups of lines as either text-  or  display-
       style program code:

       Text style:

           The expression
           %(
           a + 3
           %)
           produces 10.
       prints  something  like:   "The  expression  a  +  3 produces 10."  (with "a + 3" set as a
       program.)

       The same effect can be achieved with inline @'s.

           The expression @a + 3@ produces 10.

       Display style:

           The statement
           %[
           a += 3;
           %]
           is an example of an incrementing operator.
       prints something like:

           The statement
                 a += 3;
           is an example of an incrementing operator.

       Important rules:

              % and the following character must be the first two characters on the  line  to  be
              recognized.

              Put  nothing on the line after the % and the key character.  If you do that, LGrind
              will provide a default environment that will produce an \hbox  for  %(  )%,  and  a
              \vbox  for  %[  -  %].   If  you  put stuff on the line, LGrind assumes you want to
              control the format completely.  Doing this requires understanding exactly what  the
              code LGrind produces is doing. (Sometimes I'm not sure I do!)

              %) and %] are, if I remember right, simply ignored outside of a code group, but any
              extra %( or %[ produces a warning, so a missing %) or %] is usually caught.

       You can insert your own code by using a  line  starting  with  %=  in  the  program  text.
       Whatever  you enter after that is left in the output, exactly as you typed it.  It will be
       executed in a strange environment, so doing anything  fancy  is  very  tricky.   A  macro,
       \Line, is provided to help you do simple things.  For example,

       %[
       %=\Line{________\vdots}

               a = 1;
       %]
       produces:

               .
               .
               .
               a = 1;

       (Within  the  program text, _ is active and expands to a fixed-width space.  A whole bunch
       of macros are also defined.  If you understand how LGrind sets lines up, you  can  replace
       the 8 _'s with a call to \Tab — but I'll let you hang yourself on that one.)

       The  output of LGrind always contains exactly one output line for each input line.  Hence,
       you can look up line numbers in TeX error messages in your original file, rather  than  in
       the lgrind'ed (lground?) file.  (Of course, if the problem is in the LGrind output....)

       Many  things  are  controllable  by re-defining various macros.  You can change what fonts
       LGrind will use for various kinds of things, how much it indents the  output,  whether  it
       adds line numbers, and if so at what interval it prints them and whether it sticks them on
       the left or right, and so on.  This stuff is all described in lgrind.dvi, though  probably
       not  very  well. The default settings produce output that looks reasonable to me, though I
       can't say I'm ecstatic about it.  Doing a really good  job  would  require  defining  some
       special fonts.

FILES

       /usr/bin/lgrind
              Executable

       /usr/doc/lgrind/lgrind.dvi
              Documentation

       /usr/lib/texmf/tex/latex/lgrind/lgrind.sty
              LaTeX style file

       /usr/lib/texmf/tex/latex/lgrind/lgrindef
              Language descriptions

AUTHORS

       Van  Jacobson,  Lawrence Berkeley Laboratory (based on "vgrind" by Dave Presotto & William
       Joy of UC Berkeley), wrote it for TeX.

       Jerry Leichter of Yale University modified it for LaTeX.

       George V. Reilly of Brown University changed the name to lgrind, fixed up  the  man  page,
       and added the program-text-within-comments and @-within-LaTeX features.

       Michael  Piefel  of  Humboldt-University  Berlin  adapted  it  to LaTeX2e and wrote decent
       documentation.

SEE ALSO

       latex(1), tex(1), vgrind(1), lgrindef(5)