{\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 } }