#LyX 1.5.0svn created this file. For more info see http://www.lyx.org/
\lyxformat 276
\begin_document
\begin_header
\textclass article
\begin_preamble
\usepackage{a4wide}
\end_preamble
\language english
\inputencoding auto
\font_roman default
\font_sans default
\font_typewriter default
\font_default_family default
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100
\graphics default
\float_placement H
\paperfontsize default
\spacing single
\papersize default
\use_geometry false
\use_amsmath 1
\use_esint 0
\cite_engine basic
\use_bibtopic false
\paperorientation portrait
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\defskip medskip
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
\author "Bo Peng"
\end_header

\begin_body

\begin_layout Section
Three types of listings
\end_layout

\begin_layout Standard
There are three types of listings, in listings package terms:
\end_layout

\begin_layout Description
lstinline short piece of program code like 
\begin_inset listings
lstparams "language=C++,basicstyle=\ttfamily,showspaces=true"
inline true
status open

\begin_layout Standard

\color foreground
int a=5;
\end_layout

\end_inset

 
\end_layout

\begin_layout Description
lstlisting long program listing in its own paragraphs and decorations, For
 example, 
\begin_inset listings
lstparams "language=Python,numbers=left,numberstyle=\tiny,basicstyle=\ttfamily,numbersep=5pt"
inline false
status open

\begin_layout Standard

\color foreground
def func(param):
\end_layout

\begin_layout Standard
    'this is a python function'
\end_layout

\begin_layout Standard
    pass
\end_layout

\end_inset


\end_layout

\begin_layout Description
lstinputlisting read program listing from a file.
 Parameters can be given to list only given lines.
 For example, the following listings list line 10 - 15 of this lyx file.
\end_layout

\begin_layout Standard
\begin_inset Include \lstinputlisting{listings.lyx}[firstline=10,lastline=15,language=TeX,breaklines=true,caption={Line 10 - 15 of this listings.lyx file}]
preview false

\end_inset


\end_layout

\begin_layout Section
How to enter listings
\end_layout

\begin_layout Standard
Inline and normal listings are entered through listings inset (introduced
 by lyx 1.5.0).
 To insert a program listing, choose 
\family typewriter
Insert->Program Listing
\family default
.
 inline listing is selected by choosing 
\family typewriter
inline listing 
\family default
in the 
\family typewriter
placement 
\family default
section.
\end_layout

\begin_layout Standard
File listing is inserted using 
\family typewriter
Insert->File->Child Document
\family default
, and choose 
\family typewriter
listings 
\family default
from the type combo box.
 
\end_layout

\begin_layout Section
Listings parameters
\end_layout

\begin_layout Standard
The listings package is a very powerful latex packaging, providing more
 than 130 parameters that customize the look of your program listings.
 Lyx provides direct support for a few most commonly used parameters through
 the listings dialog, and an 
\family typewriter
advanced 
\family default
edit box to enter all other parameters.
\end_layout

\begin_layout Subsection
Global listings options
\end_layout

\begin_layout Standard
It is likely that your document will have several listings of the same type
 so it makes sense to customize all of them using global listings options.
 To enter these options, choose 
\family typewriter
Document -> Settings -> Text Layouts 
\family default
and enter listings parameters in the given edit box.
 The editbox to the left of the input box can provide valuable information
 such as allowed values of a parameter but you may still need to consult
 the listings manual for the meanings of the parameters.
\end_layout

\begin_layout Standard
Parameters set via this dialog will output as 
\family typewriter

\backslash
lstset 
\family default
in latex preamble.
\end_layout

\begin_layout Subsection
Parameters of the listings inset
\end_layout

\begin_layout Standard
If you right-click a listings inset, a listings dialog will be shown that
 allows you to customize your listings.
 The most commonly used parameters are displayed on the first tab, including
 placement, language, numbering and basic style of the code.
 More advanced options can be entered at the second 
\family typewriter
advanced 
\family default
tab.
\end_layout

\begin_layout Subsection
Parameters of listings child document
\end_layout

\begin_layout Standard
The child document dialog provides less support for commonly used listings
 parameters so you will have to enter them manually.
 
\end_layout

\begin_layout Subsection
Caption and label
\end_layout

\begin_layout Standard
Parameters 
\family typewriter
caption={blah}
\family default
 and 
\family typewriter
label={blah}
\family default
 are handled separately from other listings parameters.
 In the 
\family typewriter
Child Document 
\family default
dialog, caption ad label should be entered in the given caption and label
 edit boxes.
 In a listing inset, you can insert caption through 
\family typewriter
insert -> caption
\family default
, and 
\family typewriter
insert->label
\family default
 in the caption.
 Explicit 
\family typewriter
caption
\family default
 and
\family typewriter
 label 
\family default
parameters entered through the 
\family typewriter
advanced 
\family default
edit box are allowed, but if both 
\family typewriter
insert->caption
\family default
 and parameter 
\family typewriter
caption={blah} 
\family default
are entered, the latter will be ignored.
\end_layout

\end_body
\end_document
