{\def {\faq \=question \&rest}
  {\li {\b {\big \question}}

       \rest}}

{\def {\keyword \&text}
  {\span \style={color: blue} \text}}

{\def {\string \&text}
  {\span \style={color: red} \text}}

{\page \name={Latte Frequently Asked Questions}

 {\ol

  {\faq \question={Why doesn't
                   {\tt {\keyword \\href}={\keyword \\var}.html}
                   work?}

   When assigning a value to a named parameter, remember that the
   value must be a single Latte expression.  In this example,
   {\tt {\keyword \\var}.html} is {\em two} expressions: a reference
   to the variable named {\tt var}, and the string {\tt .html}.  Use
   braces to group these into a single expression:
   {\tt {\keyword \\href}=\{{\keyword \\var}.html\}}.}


  {\faq \question={Why does only part of my function's output appear?}

   As of Latte 2.0, the output of a function is the value of only the
   {\em last subexpression} in its body (after all the other
   expressions are evaluated).  So if you have a function that looks
   like this:

{\example
\{\\def \{\\function ...\}
  \{\\b Here is a picture:\}
  \{\\img ...\}\}}

   its output is only {\tt <img ...>}, because the {\tt \{\\b ...\}}
   expression is evaluated and then discarded.  To include both
   expressions in the function's output, make them a single expression
   by wrapping them in an extra pair of braces:

{\example
\{\\def \{\\function ...\}
  \{\{\\b Here is a picture:\}
   \{\\img ...\}\}\}}}

  {\faq \question={How do I separate a variable reference from text
                   that immediately follows it?}

   In other words, if you have a variable {\tt {\keyword \\foo}} and
   would like to include its value immediately followed by the string
   {\tt bar}, you can't simply write {\tt {\keyword \\foobar}},
   because it will be interpreted as a reference to a variable named
   {\tt foobar}.

   There are many ways to address this problem:

   {\ul
    {\li {\tt {\keyword \\foo}\{\}bar}}
    {\li {\tt \{{\keyword \\foo}\}bar}}
    {\li {\tt {\keyword \\foo}\{bar\}}}
    {\li {\tt {\keyword \\foo} {\keyword \\/}bar}}
    {\li {\tt {\keyword \\foo}{\string \\"bar\\"}}}}

   Note that these tricks aren't necessary when the string following
   the variable reference cannot be mistaken for part of the variable
   name (because of the rules about what characters are permitted in
   variable names).}

  {\faq \question={Why is the Latte documentation not in Latte
                   format?}

   The Latte documentation is written in "Texinfo" format because that
   gave us the greatest number of options for producing the
   documentation in different forms: as browsable "Info" pages on
   character displays and within Emacs; as online web pages in HTML
   form; and as printed documentation created by TeX.

   Making all these options possible from a single source document is,
   of course, the ultimate goal of Latte.  Furthermore, Texinfo is
   highly specialized for writing technical manuals and isn't as
   general as Latte is.  Unfortunately, Latte isn't ready yet to
   produce any kind of output other than HTML (but see the
   {\a \href=plans.html Plans page}).  As soon as Latte can subsume
   the role of Texinfo, we'll convert the documentation to Latte
   format.}

  \; xxx need a faq about tricky strings that are really groups

  }

}