listings-tex-options.sty¶
highlight LaTeX code with lstlistings¶
| Author: | Günter Milde | 
|---|---|
| Contact: | milde@users.berlios.de | 
| Revision: | $Revision: 5534 $ | 
| Date: | $Date: 2005-06-28$ | 
| Copyright: | © 2007, 2009 G. Milde, Released without warranties or conditions of any kind under the terms of the Apache License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0 | 
Usage¶
For syntax highlight of literal blocks with the listings LaTeX package,
call rst2latex.py with the options
--stylesheet=listings-tex-options.sty --literal-block-env=lstlisting.
Adapt the settings to your needs by either
- modifying a copy of this file under a different name, or
- copy parts of this file into your custom style sheet.
See listings.pdf for configuration and usage of the listings package.
Implementation¶
Identification:
\ProvidesPackage{listings-tex-options}
[2009/03/02 v0.1 highlight LaTeX with lstlistings]
Of course, we need to load the listings package itself:
\RequirePackage{listings}
In a document with lots of lists and listings, separating paragraphs by vertical seems appropriate:
\RequirePackage{parskip}
load hyperref with blue citation colour:
\RequirePackage[colorlinks=true,linkcolor=blue,urlcolor=blue,citecolor=blue]
{hyperref}
In the References/Bibliography section, avoid holes in the title due to block alignment:
\renewcommand{\titlereference}[1]{\raggedright\textsl{#1}}
Omit the auto-inserted “References” heading, to be compatible with HTML output also if use latex references is set:
\AtBeginDocument{\renewcommand{\refname}{\vspace{-2em}}}
Font settings¶
Times, Helvetica, Courier:
%\RequirePackage{mathptmx}
%\RequirePackage[scaled=.90]{helvet}  % scaled to fit Times
%\RequirePackage{courier}
Palatino, Helvetica, Courier:
\RequirePackage[sc]{mathpazo}         % with small caps
% \RequirePackage[sc,osf]{mathpazo}   % with small caps and old style figures
\RequirePackage[scaled=.95]{helvet}   % scaled to fit Palatino
\RequirePackage{courier}
(The TX typewriter font comes with bold, slanted, and small-caps variants and without the problems of txfonts’ math fonts). However, txfonts is a contributed package, not necessarily available:
%\renewcommand{\ttdefault}{txtt}
Default language¶
Highlight literal blocks as TeX:
\lstset{language=[LaTeX]TeX}
pre-load the language:
\lstloadlanguages{[LaTeX]TeX} %  comma separated list of languages
Style¶
Typeface settings:
\lstset{
  basicstyle=\ttfamily,           % print whole listing in tt
  % basicstyle=\ttfamily\small,
  keywordstyle={},                % do not highlight keywords
  % identifierstyle=\slshape,     % macros that are not keywords, args
  commentstyle=\rmfamily\itshape, % italic comments
  % stringstyle=\ttfamily,        % typewriter type for strings
  % texcsstyle=\slshape,
}
Visible whitespace:
\lstset{showstringspaces=false}  % no visible spaces in strings
%\lstset{showspaces=true,
%        showtabs=true,
%        tab=\rightarrowfill}
Line numbers:
%\lstset{numbers=left, numberstyle=\tiny, stepnumber=2, numbersep=5pt}
Frames around listings:
%\lstset{frame=single}
Extended characters in listings:
%extendedchars=true
%extendedchars=false
Column alignment¶
(for typesetting with variable width fonts)
- columns=[c|l|r] <alignment>
- <alignment> in [fixed, flexible, spaceflexible, or fullflexible] - The optional c, l, or r controls the horizontal orientation of smallest output units (keywords, identifiers, etc.). - default: [c]fixed 
- basewidth={fixed, flexible}
- sets the width of a single character box for fixed and flexible column mode (both to the same value or individually). - default: {0.6em,0.45em} 
Free spacing for comments:
\lstset{columns=fullflexible, basewidth={0.5em,0.4em}}