diff options
author | Karl Berry <karl@freefriends.org> | 2007-02-28 22:32:28 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-02-28 22:32:28 +0000 |
commit | e7d22f9c3388947b1b1e5e8c8519c9ae0684a96f (patch) | |
tree | 54fcbbab0ca8c6ff479a36810919d99ce6e9e112 /Master/texmf-dist/source/latex/listings | |
parent | 278b41c83363bdbda2ef386ec54df1c16417a1d8 (diff) |
listings update (28feb07)
git-svn-id: svn://tug.org/texlive/trunk@4002 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/listings')
-rw-r--r-- | Master/texmf-dist/source/latex/listings/Makefile | 37 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/listings/listings.dtx (renamed from Master/texmf-dist/source/latex/listings/listings-1.3.dtx) | 1372 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/listings/listings.ins (renamed from Master/texmf-dist/source/latex/listings/listings-1.3.ins) | 10 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/listings/lstdrvrs.dtx (renamed from Master/texmf-dist/source/latex/listings/lstdrvrs-1.3.dtx) | 1117 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/listings/lstdrvrs.ins | 14 |
5 files changed, 2089 insertions, 461 deletions
diff --git a/Master/texmf-dist/source/latex/listings/Makefile b/Master/texmf-dist/source/latex/listings/Makefile new file mode 100644 index 00000000000..9ecf8b6f552 --- /dev/null +++ b/Master/texmf-dist/source/latex/listings/Makefile @@ -0,0 +1,37 @@ +# This file generates files required to use the listings package. +# +# (c) 2007 Brooks Moses +# +# This file is distributed under the terms of the LaTeX Project Public +# License from CTAN archives in directory macros/latex/base/lppl.txt. +# Either version 1.3 or, at your option, any later version. + +.PHONY: listings pdf pdf-devel all + +listings: listings.sty + +pdf: listings.pdf + +pdf-devel: listings-devel.pdf + +all: listings pdf pdf-devel + + +listings.sty: listings.dtx listings.ins lstdrvrs.dtx + tex listings.ins + +listings.pdf: listings.sty + rm -f ltxdoc.cfg + pdflatex listings.dtx + makeindex -s gind.ist listings + pdflatex listings.dtx + pdflatex listings.dtx + +listings-devel.pdf: listings.sty + rm -rf ltxdoc.cfg + echo "\AtBeginDocument{\AlsoImplementation}" > ltxdoc.cfg + pdflatex -jobname=listings-devel listings.dtx + makeindex -s gind.ist listings-devel + pdflatex -jobname=listings-devel listings.dtx + pdflatex -jobname=listings-devel listings.dtx + rm -rf ltxdoc.cfg diff --git a/Master/texmf-dist/source/latex/listings/listings-1.3.dtx b/Master/texmf-dist/source/latex/listings/listings.dtx index 2776eae2b54..667ac65bded 100644 --- a/Master/texmf-dist/source/latex/listings/listings-1.3.dtx +++ b/Master/texmf-dist/source/latex/listings/listings.dtx @@ -14,9 +14,9 @@ % that file are `drivers'. % % The listings package is copyright 1996--2004 Carsten Heinz, and -% continued maintenance on the package is copyright 2006 Brooks Moses. -% The drivers are copyright 1997/1998/1999/2000/2001/2002/2003/2004 any -% individual author listed in the driver files. +% continued maintenance on the package is copyright 2006--2007 Brooks Moses. +% The drivers are copyright 1997/1998/1999/2000/2001/2002/2003/2004/2006/ +% 2007 any individual author listed in the driver files. % % The listings package and its drivers may be distributed and/or modified % under the conditions of the LaTeX Project Public License, either version @@ -42,7 +42,7 @@ \makeindex \begin{document} - \DocInput{listings-1.3.dtx} + \DocInput{listings.dtx} \end{document} %</driver> % \fi @@ -53,6 +53,7 @@ %^^A %\lstisaspect[strings]{string,morestring,deletestring,stringstyle,showstringspaces} %\lstisaspect[comments]{comment,morecomment,deletecomment,commentstyle} +%\lstisaspect[comment styles]{b,d,l,n,s,ib,id,il,in,is} %\lstisaspect[pod]{printpod,podcomment} %\lstisaspect[escape]{texcl,escapebegin,escapeend,escapechar,escapeinside,mathescape} %\lstisaspect[keywords]{sensitive,classoffset,keywords,morekeywords,deletekeywords,keywordstyle,ndkeywords,morendkeywords,deletendkeywords,ndkeywordstyle,keywordsprefix,otherkeywords} @@ -82,7 +83,8 @@ % \string\lstname,\string\lstlistlistingname,\string\lstlistoflistings,^^A % \string\lstnewenvironment,\string\lstinline,\string\lstinputlisting,lstlisting,^^A % \string\lstloadaspects,\string\lstset,\string\thelstlisting,\string\lstaspectfiles,^^A -% inputencoding,delim,moredelim,deletedelim,upquote} +% inputencoding,delim,moredelim,deletedelim,upquote,numberbychapter,^^A +% \string\lstMakeShortInline,\string\lstDeleteShortInline} %\lstisaspect[doc]{lstsample,lstxsample}^^A environment %\lstisaspect[experimental]{includerangemarker,rangebeginprefix,rangebeginsuffix,rangeendprefix,rangeendsuffix,rangeprefix,rangesuffix} % @@ -103,11 +105,12 @@ % % \title{\vspace*{-2\baselineskip}The \textsf{Listings} Package} % \author{Copyright 1996--2004, Carsten Heinz% -% \\ Maintainer: Brooks Moses% -% \thanks{Brooks Moses became the maintainer of the \packagename{listings} -% package in 2006; see the Preface for details.} % +% \\ Copyright 2006--2007, Brooks Moses +% \\ Maintainer: Brooks Moses\thanks{Brooks % +% Moses became the maintainer of the \packagename{listings} +% package in 2006; see the Preface for details.}~ % % \textless\lstemail\textgreater} -% \date{2006/05/08\enspace\enspace Version 1.3c\\ \box\abstractbox} +% \date{2007/02/22\enspace\enspace Version 1.4\\ \box\abstractbox} % \def\lstemail{\href{mailto:bmoses@dpdx.net}{\texttt{bmoses@dpdx.net}}} % \ifhyper % \hypersetup{pdfsubject=Package guide,pdfauthor=Brooks Moses <bmoses@dpdx.net>} @@ -130,93 +133,51 @@ % He then passed the maintainership of the package to Brooks Moses, who had % volunteered for the position while this procedure was going through. % -% This release, version 1.3c, is not yet a long-awaited bugfix release, as I -% have neither a list of bugs that have been reported since 1.3b, nor a good -% comprehensive test suite to make sure that my fixes don't break things. -% (It does have some very minor corrections to the Erlang and Octave language -% definitions that were reported to the Debian bug system, and a minor -% internal spped improvement placed in \texttt{lstpatch.sty}, but other than that -% the only changes are the alteration of the maintanence information and the -% inclusion of this prefatory note.) I would very much appreciate it if users -% would email any outstanding bug reports to me at \lstemail, along with any -% examples of tricky uses of the package that should be included in the test -% suite. -% -% \paragraph{Reading this manual} -% If you are experienced with the \packagename{listings} package, you should -% read the next paragraph ``\emph{News and changes}''. Otherwise read section -% \lstref{uGettingStarted} step by step and go on with section -% \ref{uTheNextSteps}. +% This release, version 1.4, is the first substantial bugfix release since +% I accepted maintainership of the package. I would like to thank the +% numerous people who reported bugs to me, and particularly those who +% suggested fixes. Thanks in addition to those who provided +% new language definitions and suggestions for improvements. % % \paragraph{News and changes} -% Version 1.3 is the third bugfix release. The most noteworthy news for the -% tortured\,---\,I mean experienced\,---\,user is a new |\output| routine, -% which improves the compatibility to other packages. Therefore the temporary -% key |noxoutput| has been removed. -% -% |texcs| became a family, i.e.~you can highlight your own control sequences -% diffently from the already defined ones: |texcsstyle=|[|*|]\oarg{class number}\ldots\space -% and |texcs=|\oarg{classnumber}\ldots\space -% Note the added optional star, which also highlights the backslash in front of -% the control sequence name. And don't forget to check page \pageref{roption:texcsstyle} -% for a bug. -% -% |keywordstyle| has a small add-on (see page \pageref{roption:keywordstyle}) -% and |extendedchars| is turned on by default. -% -%^^A undocumented: -%^^A inputpath=<single, relative path> -%^^A useoutput=0|1|2 -%^^A uses no (0), old (1), or new (2) output routine -%\iffalse -% \begin{table}[hbp] -% \footnotesize -% \begin{center} -% \begin{tabular}{@{}rlrl@{}} -% \emph{new to 1.2}&&&\\[1ex] -% \multicolumn{4}{l}{\texttt{breakatwhitespace} (page \pageref{uoption:breakatwhitespace})}\\ -% \multicolumn{4}{l}{\texttt{linerange} (page \pageref{uoption:linerange})}\\ -% & & \\ -% \emph{1.0}&\emph{1.1 and later}&\emph{1.0}&\emph{1.1 and later}\\[1ex] -% \texttt{keywordsinside} & \texttt{tag} (page \pageref{uoption:tag}) -% & --- & \texttt{final}$^*$ (p.\,\pageref{uoption:final})\\ -% --- & \texttt{tagstyle} (p.\,\pageref{uoption:tagstyle}) -% & --- & \texttt{numberfirstline} (p.\,\pageref{uoption:numberfirstline})\\ -% --- & \texttt{markfirstintag} (p.\,\pageref{uoption:markfirstintag}) -% & --- & \texttt{upquote} (p.\,\pageref{uoption:upquote})\\ -% \texttt{usekeywordsinside}& \texttt{usekeywordsintag} (p.\,\pageref{uoption:usekeywordsintag}) -% & & \\ -% & & --- & \texttt{fvcmdparams} (p.\,\pageref{uoption:fvcmdparams})\\ -% & & --- & \texttt{morefvcmdparams} (p.\,\pageref{uoption:morefvcmdparams})\\[2ex] -% \emph{0.21}&\emph{1.x}&\emph{0.21}&\emph{1.x}\\[1ex] -% \texttt{first} & \texttt{firstline} & --- & \texttt{numbers}\\ -% \texttt{last} & \texttt{lastline} & \texttt{labelstep} & \texttt{stepnumber}\\ -% \texttt{stringspaces} & \texttt{showstringspaces} & \texttt{labelstyle} & \texttt{numberstyle}\\ -% \texttt{visiblespaces} & \texttt{showspaces} & \cs{thelstlabel} & \cs{thelstnumber}\\ -% \texttt{visibletabs} & \texttt{showtabs} & \texttt{labelsep} & \texttt{numbersep}\\ -% \texttt{framerulewidth} & \texttt{framerule} & \texttt{firstlabel} & \texttt{firstnumber}\\ -% \texttt{framerulesep} & \texttt{rulesep} & \texttt{advancelabel} & ---\\ -% \texttt{frametextsep} & \texttt{framesep} & \texttt{spread} & ---\\ -% \texttt{framespread} & superceded by & \texttt{indent} & \texttt{xleftmargin}$^3$\\ -% & \texttt{framexleftmargin} & --- & \texttt{xrightmargin}\\ -% & \texttt{framexrightmargin} & \texttt{wholeline} & \texttt{resetmargins}\\ -% & \texttt{framextopmargin} & \texttt{defaultclass} & \texttt{classoffset}\\ -% & \texttt{framexbottommargin} & \texttt{stringtest} & ---\\ -% \texttt{framerulecolor} & \texttt{rulecolor}$^1$ & \texttt{outputpos} & ---\\ -% --- & \texttt{columns}$^2$ -% \end{tabular} -% \end{center} -% \parindent=20pt\relax -% \par\indent $^*$ This is an option for package loading only. -% \par\indent $^1$ \emph{All} color-keys require now an explicit \cs{color} command in the value. -% \par\indent $^2$ Please look at section \ref{uFixedAndFlexibleColumns}. -% \par\indent $^3$ Now frames are also moved! -% \end{table} -%\fi -% The following languages were added: Awk (Gnu and Posix), Gnuplot, Handel-C, -% ByteCode Java (\texttt{JVMIS}), Plasm, Promella, and RSL, refer table~ref{uPredefinedLanguages}. -% Moreover, {\small HTML}, AspectJ, and MetaPost have been improved. -% Thanks go to the contributers. +% Version 1.4 is the fourth bugfix release. There are no substantial changes +% in this version, but a number of minor changes and fixes. The primary news +% is that the documentation has been substantially copyedited, and improved +% in a number of ways to document workarounds and things learned from the +% recent bug reports. +% +% A |numberbychapter| key has been added, to control whether listings are +% numbered sequentially or by chapter in document classes that provide +% chapters. +% +% The |\lstMakeShortInline| command can be used to define single-character +% inline-listing macros, much like the \packagename{shortvrb} package +% allows for verbatim inline text. +% +% A new |spaceflexible| column alignment style has been added, which is +% similar to the |flexible| style except that it only inserts extra space +% to recover the column alignment at locations where there is already +% existing space. +% +% A |s| string type has been added, akin to the |s| comment type. This is +% used in the Ruby language definition. +% +% The |\lst@for| routine has been sped up substantially, thanks to some code +% provided by Hendri Adriaens. Hopefully this will result in a significant +% speedup of the runtime of the overall package. +% +% Among the bugs fixed are the |*| option to |texcs|, which was quite badly +% broken; the interaction of background colors with inline listings and with +% frames; listing captions being broken in AMS document classes; and better +% integration of the list of listings with KOMAscript document class and other +% document clases that use the |\float@addtolists| mechanism. +% +% The following languages were added: |command.com| (DOS/Windows) batch files, +% Common Intermediate Language, Lingo, Postscript, PSTricks, and SPARQL. +% The following dialects of existing languages were added: Ada (2005), +% Assembler (Motorola68k), and Mathematica (5.2). The definitions for ABAP, +% Fortran, Octave, Python, Ruby, and TCL have been improved. Thanks go to the +% contributers. % % \vfill % \paragraph{Thanks} @@ -261,23 +222,23 @@ % \item Must I do that really? % \advisespace % Yes and no. Some books about programming say this is good. -% What a mistake! Typing takes time---wasted if the code is clear to +% What a mistake! Typing takes time---which is wasted if the code is clear to % you. And if you need that time to understand what is going on, the % author of the book should reconsider the concept of presenting the % crucial things---you might want to say that about this guide even---or -% you're simply unexperienced with programming. If only the latter case +% you're simply inexperienced with programming. If only the latter case % applies, you should spend more time on reading (good) books about % programming, (good) documentations, and (good) source code from other % people. Of course you should also make your own experiments. % You will learn a lot. However, running the example through \LaTeX\ -% shows whether the \packagename{listings} package is installed. +% shows whether the \packagename{listings} package is installed correctly. % \item The example doesn't work. % \advisespace % Are the two packages \packagename{listings} and \packagename{keyval} % installed on your system? Consult the administration tool of your % \TeX\ distribution, your system administrator, the local \TeX\ and % \LaTeX\ guides, a \TeX\ FAQ, and section \ref{rInstallation}---in -% the given order. If you've checked \emph{all} these sources and are +% that order. If you've checked \emph{all} these sources and are % still helpless, you might want to write a post to a \TeX\ newsgroup % like \texttt{comp.text.tex}. % \item Should I read the software license before using the package? @@ -290,13 +251,13 @@ % \subsection{Typesetting listings} % % Three types of source codes are supported: code snippets, code segments, and -% listings of stand alone files; snippets are placed inside paragraphs and the +% listings of stand alone files. Snippets are placed inside paragraphs and the % others as separate paragraphs---the difference is the same as between text % style and display style formulas. % \begin{advise} % \item No matter what kind of source you have, if a listing contains national -% characters like \'e, \L, \"a, or whatever, you must tell it the -% package! Section \lstref{uSpecialCharacters} discusses this issue. +% characters like \'e, \L, \"a, or whatever, you must tell the +% package about it! Section \lstref{uSpecialCharacters} discusses this issue. % \end{advise} % % \paragraph{Code snippets} @@ -349,7 +310,7 @@ % \item Hold on! Where comes the frame from and what is it good for? % \advisespace % You can put frames around all listings except code snippets. -% You will learn it later. The frame shows that empty lines at the end +% You will learn how later. The frame shows that empty lines at the end % of listings aren't printed. This is line 5 in the example. % \item Hey, you can't drop my empty lines! % \advisespace @@ -443,7 +404,7 @@ %\fi % The styles use two different kinds of commands. |\ttfamily| and |\bfseries| % both take no arguments but |\underbar| does; it underlines the following -% argument. In general, the \emph{very last} command might read exactly one +% argument. In general, the \emph{very last} command may read exactly one % argument, namely some material the package typesets. There's one exception. % The last command of \ikeyname{basicstyle} \emph{must not} read any % tokens---or you will get deep in trouble. @@ -528,8 +489,8 @@ % example into the minimal file and run it through \LaTeX, please don't wonder: % you'll miss the horizontal rules since they are described elsewhere. % \begin{advise} -% \item \LaTeX's float mechanism allows to determine the placement of floats. -% What's about that? +% \item \LaTeX's float mechanism allows one to determine the placement of floats. +% How can I do that with these? % \advisespace % You can write `|float=tp|', for example. % \end{advise} @@ -564,19 +525,19 @@ % other programs? % \advisespace % Firstly, the descriptions give a taste and not a complete overview, -% secondly, \packagename{listings} lacks some properties, and, eventually, +% secondly, \packagename{listings} lacks some properties, and, ultimately, % you should use the program matching your needs most precisely. % \end{advise} % This package is certainly not the final utility for typesetting source code. -% Other programs do their job very well---if you are not satisfied with -% \packagename{listings}. Some are independent of \LaTeX, other come as -% separate program plus \LaTeX\ package, and other more are packages which -% don't pretty-print the source code. The second type inlcudes converters, +% Other programs do their job very well, if you are not satisfied with +% \packagename{listings}. Some are independent of \LaTeX, others come as +% separate program plus \LaTeX\ package, and others are packages which +% don't pretty-print the source code. The second type includes converters, % cross compilers, and preprocessors. Such programs create \LaTeX\ files % you can use in your document or stand alone ready-to-run \LaTeX\ files. % -% Note that I'm not dealing with any literate programming tool here, which -% could also be an alternative. However, you should have heard of the +% Note that I'm not dealing with any literate programming tools here, which +% could also be alternatives. However, you should have heard of the % \texttt{WEB} system, the tool Prof.~Donald E.~Knuth developed and made use % of to document and implement \TeX. % @@ -647,7 +608,7 @@ % I know you can't number lines. % % \paragraph{\href{http://www.ctan.org/tex-archive/support/slatex}{\packagename{S\LaTeX}}} -% is a pretty-printing Scheme program (invokes \LaTeX\ automatically) +% is a pretty-printing Scheme program (which invokes \LaTeX\ automatically) % especially designed for Scheme and other Lisp dialects. It supports stand % alone files, text and display listings, and you can even nest the % commands/environments if you use \LaTeX\ code in comments, for example. @@ -678,7 +639,7 @@ % formats it, for example % \begin{center} % \begin{minipage}{0.45\linewidth} -%\ifalgorithmic +%\ifalgorithmicpkg % \begin{algorithmic} % \IF {$i\leq0$} % \STATE $i\gets1$ @@ -728,13 +689,13 @@ % a command to input files verbatim. % % \paragraph{\href{http://www.ctan.org/tex-archive/macros/latex/contrib/fancyvrb}{\packagename{fancyvrb}}} -% is, roughly spoken, a super set of \packagename{alltt}, +% is, roughly speaking, a superset of \packagename{alltt}, % \packagename{moreverb}, and \packagename{verbatim}, but many more parameters % control the output. The package provides frames, line numbers on the left or % on the right, automatic line breaking (difficult), and more. For example, an % interface to \packagename{listings} exists, i.e.~you can pretty-print source % code automatically. -% The package \packagename{fvrb-ex} builds above \packagename{fancyvrb} and +% The package \packagename{fvrb-ex} builds on \packagename{fancyvrb} and % defines environments to present examples similar to the ones in this guide. % % @@ -784,7 +745,7 @@ % documents created with an earlier version of this package or if you use % special features. Here's an incomplete list of possible options. % \begin{advise} -% \item Where is a list of all options? +% \item Where is a list of all of the options? % \advisespace % In the developer's guide since they were introduced to debug the % package more easily. Read section \ref{uHowTos} on how to get that @@ -793,7 +754,8 @@ % \begin{description} % \item[\normalfont\texttt{0.21}]\leavevmode % -% compiles a document created with version 0.21. +% invokes a compatibility mode for compiling documents written for +% \packagename{listings} version 0.21. % % \item[\normalfont\texttt{draft}]\leavevmode % @@ -850,7 +812,7 @@ % \advisespace % No. `\ikeyname{firstline}' and `\ikeyname{lastline}' belong to a small % set of -% keys which are used on individual listings. However, your command is +% keys which are only used on individual listings. However, your command is % not illegal---it has no effect. You have to use these keys inside the % optional argument of the environment or input command. % \item What's about a better example of a key|=|value list? @@ -873,7 +835,7 @@ % \item \icmdname\lstinline\ has an optional argument? % \advisespace % Yes. And from this fact comes a limitation: you can't use the left -% bracket `|[|' as delimiter except you specify at least an empty +% bracket `|[|' as delimiter unless you specify at least an empty % optional argument as in `|\lstinline[][var i:integer;[|'. % If you forget this, you will either get a ``runaway argument'' error % from \TeX, or an error message from the \packagename{keyval} package. @@ -888,7 +850,7 @@ % same for Pascal XSC. The general form is % {\rstyle\ikeyname{language}}|=|\oarg{dialect}\meta{language}. % If you want to get rid of keyword, comment, and string detection, use -% |language={}| as argument to |\lstset| or as optional argument. +% |language={}| as an argument to |\lstset| or as optional argument. % % Table \ref{uPredefinedLanguages} shows all predefined languages and dialects. % Use the listed names as \meta{language} and \meta{dialect}, respectively. If @@ -919,7 +881,8 @@ % \small % \caption{Predefined languages. % Note that some definitions are preliminary, for example HTML and XML. -% Each underlined dialect is default dialect}\label{uPredefinedLanguages}^^A +% Each underlined dialect is the default dialect.}^^A +% \label{uPredefinedLanguages}^^A % \makeatletter % \setbox\@tempboxa\hbox{^^A % \InputIfFileExists{listings.cfg}{\lst@InputCatcodes}{}}^^A @@ -1020,8 +983,9 @@ % If you type in such characters directly as characters of codes 128--255 and % use them also in listings, let the package know it---or you'll get really % funny results. {\rstyle\ikeyname{extendedchars}}|=true| allows and -% |extendedchars=false| prohibits extended characters in listings. If you use -% them, you should load \packagename{fontenc}, \packagename{inputenc} and/or +% |extendedchars=false| prohibits \packagename{listings} from handling +% extended characters in listings. If you use them, you should load +% \packagename{fontenc}, \packagename{inputenc} and/or % any other package which defines the characters. % \begin{advise} % \item I have problems using \packagename{inputenc} together with @@ -1031,7 +995,26 @@ % in section \lstref{uTroubleshooting}. % \end{advise} % The extended characters don't cover Arabic, Chinese, Hebrew, Japanese, and so -% on. Read section \ref{uNationalCharacters} for details on work-arounds. +% on---specifically, any encoding which uses multiple bytes per character. +% +% Thus, if you use the a package that supports multibyte characters, such as +% the \packagename{CJK} or \packagename {ucs} packages for Chinese and +% UTF-8 characters, you must avoid letting \packagename{listings} +% process the extended characters. It is generally best to also specify +% |extendedchars=false| to avoid having \packagename{listings} get entangled +% in the other package's extended-character treatment. +% +% If you do have a listing contained within a CJK environment, and want to have +% CJK characters inside the listing, you can place them within a comment that +% escapes to \LaTeX -- see section \ref{rEscapingToLaTeX} for how to do that. +% (If the listing is not inside a CJK environment, you can simply put a small +% CJK environment within the escaped-to-\LaTeX portion of the comment.) +% +% Similarly, if you are using UTF-8 extended characters in a listing, they must +% be placed within an escape to \LaTeX. +% +% Also, section \ref{uNationalCharacters} has a few details on how to work with +% extended characters in the context of $\Lambda$. % % % \subsection{Line numbers}\label{uLineNumbers} @@ -1129,7 +1112,10 @@ % heavily. And do this step by step! % For example, begin with `|framerule=10mm|'. If the rules are % misaligned by the same (small) amount as before, the problem does not -% come from the rule width. So continue with the next parameter. +% come from the rule width. So continue with the next parameter. Also, +% Adobe Acrobat sometimes has single-pixel rounding errors which can +% cause small misalignments at the corners when PDF files are displayed +% on screen; these are unfortunately normal. % \end{advise} % Alternatively you can control the rules at the \texttt{t}op, \texttt{r}ight, % \texttt{b}ottom, and \texttt{l}eft directly by using the four initial letters @@ -1161,7 +1147,7 @@ % the value affects all following listings in the same group or environment. % Since the listing is inside a \texttt{minipage} here, this is no problem. % \begin{advise} -% \item Dont' use frames all the time, in particular not with short listings. +% \item Don't use frames all the time, and in particular not with short listings. % This would emphasize nothing. Use frames for $10\%$ or even less of % your listings, for your most important ones. % \item If you use frames on floating listings, do you really want frames? @@ -1175,9 +1161,10 @@ % \end{advise} % % \paragraph{Captions} -% Now we come to \ikeyname{caption} and \ikeyname{label}. You might guess that -% they can be used in the same manner as \LaTeX's |\caption| and |\label| -% commands: +% Now we come to \ikeyname{caption} and \ikeyname{label}. You might guess +% (correctly) that they can be used in the same manner as \LaTeX's |\caption| +% and |\label| commands, although here it is also possible to have a caption +% regardless of whether or not the listing is in a float: % \begin{lstsample}[caption,label]{\lstset{xleftmargin=.05\linewidth}}{} % \begin{lstlisting}[caption={Useless code},label=useless] % for i:=maxint to 0 do @@ -1242,7 +1229,7 @@ % \end{lstlisting} % \end{lstsample} % The example also shows how to get coloured space around the whole listing: -% use a frame whose rules has no width. +% use a frame whose rules have no width. % % % \subsection{Emphasize identifiers}\label{uEmphasizeIdentifiers} @@ -1268,7 +1255,7 @@ % Didactic is true by definition.^^A :-) % \end{advise} % Usually \emph{keywords} are highlighted when the package typesets a piece of -% source code. This isn't necessary for readers knowing the programming +% source code. This isn't necessary for readers who know the programming % language well. The main matter is the presentation of interface, library or % other functions or variables. If this is your concern, here come the right % keys. Let's say, you want to emphasize the functions |square| and |root|, @@ -1416,7 +1403,7 @@ % % \subsection{Indexing}\label{uIndexing} % -% is just like emphasizing identifiers---I mean the usage: +% Indexing is just like emphasizing identifiers---I mean the usage: % \begin{lstxsample}[index] % \lstset{index={square},index={[2]root}} % \end{lstxsample} @@ -1430,7 +1417,7 @@ % \end{lstsample} % Of course, you can't see anything here. You will have to look at the index. % \begin{advise} -% \item Why the `\ikeyname{index}' key is able to work with multiple identifier +% \item Why is the `\ikeyname{index}' key able to work with multiple identifier % lists? % \advisespace % This question is strongly related to the `{\rstyle\ikeyname{indexstyle}}' @@ -1479,8 +1466,9 @@ % The first thing a reader notices---except different styles for keywords, % etc.---is the column alignment. Arne John Glenstrup invented the flexible % column format in 1997. Since then some efforts were made to develop this -% branch farther. Currently three column formats are provided: fixed, flexible, -% and full flexible. Take a close look at the following examples. +% branch farther. Currently four column formats are provided: fixed, flexible, +% space-flexible, and full flexible. Take a close look at the following +% examples. % \begin{center} % \lstset{style={},language={}} % \def\sample{\begin{lstlisting}^^J WOMEN\ \ are^^A @@ -1504,7 +1492,7 @@ % \advisespace % Do you want to philosophize? Well, have I ever said that the % statement ``women are better men'' is true? I can't even remember this -% about ``women are men'' \ldots ^^A ;-)) +% about ``women are men'' \ldots . ^^A ;-) % \end{advise} % In the abstract one can say: The fixed column format ruins the spacing % intended by the font designer, while the flexible formats ruin the column @@ -1532,17 +1520,21 @@ % If you don't need or like this, you should use a flexible format. All % characters are typeset at their natural width. In particular, they never % overlap. If a word requires more space than reserved, the rest of the line -% simply moves to the right. The difference between the two formats is that the -% full flexible format cares about nothing else and the normal flexible format -% tries to fix the column alignment if a character string needs less space -% than `reserved'. In the flexible example above, the two MENs are vertically +% simply moves to the right. The difference between the three formats is that +% the full flexible format cares about nothing else, while the normal flexible +% and space-flexible formats try to fix the column alignment if a character +% string needs less space than `reserved'. The normal flexible format will +% insert make-up space to fix the alignment at spaces, before and after +% identifiers, and before and after sequences of other characters; the +% space-flexible format will only insert make-up space by stretching +% existing spaces. In the flexible example above, the two MENs are vertically % aligned since some space has been inserted in the fourth line to fix the % alignment. In the full flexible format, the two MENs are not aligned. % % Note that both flexible modes printed the two blanks in the first line as a % single blank, but for different reasons: the normal flexible format fixes -% the column alignment and the full flexible format doesn't care about the -% second space. +% the column alignment (as would the space-flexible format), and the full +% flexible format doesn't care about the second space. % % % \section{Advanced techniques}\label{uAdvancedTechniques} @@ -1585,7 +1577,7 @@ % % \subsection{Language definitions}\label{uLanguageDefinitions} % -% This is like style definitions except for an optional dialect name and an +% These are like style definitions except for an optional dialect name and an % optional base language---and, of course, a different command name and % specialized keys. In the simple case it's % {\rstyle|\lstdefinelanguage|}\marg{language name}\marg{key=value list}. @@ -1677,7 +1669,7 @@ % % You already know two special delimiter classes: comments and strings. % However, their full syntax hasn't been described so far. For example, -% \ikeyname{commentstyle} applies to all comments---except you specify +% \ikeyname{commentstyle} applies to all comments---unless you specify % something different. The \emph{optional} \oarg{style} argument follows the % \emph{mandatory} \oarg{type} argument. %\ifcolor @@ -1775,7 +1767,7 @@ % ' string ' */ % \end{lstlisting} % \end{lstsample} -% Moreover, you can force the styles being applied cumulative. +% Moreover, you can force the styles to be applied cumulatively. % \begin{lstxsample} % \lstset{moredelim=**[is][\ttfamily]{|}{|}, % cumulative % moredelim=*[s][\itshape]{/*}{*/}} % not so @@ -1802,26 +1794,29 @@ % % You've seen a lot of keys but you are far away from knowing all of them. % The next step is the real use of the \packagename{listings} package. -% Please take the following advices. Firstly, look up the known commands and +% Please take the following advice. Firstly, look up the known commands and % keys in the reference guide to get a notion of the notation there. Secondly, -% poke about around these keys to learn some other parameters. Then, hopefully, +% poke around with these keys to learn some other parameters. Then, hopefully, % you'll be prepared if you encounter any problems or need some special things. % % \begin{advise} % \item % There is one question `you' haven't asked all the last pages: who is to -% blame. The author has written the guides, coded the \packagename{listings} -% package and some language drivers. Other people defined more languages or -% contributed their ideas; many others made bug reports, but only the first +% blame. Carsten Heinz wrote the guides, coded the \packagename{listings} +% package and wrote some language drivers. Brooks Moses currently maintains +% the package. Other people defined more languages +% or contributed their ideas; many others made bug reports, but only the first % bug finder is listed. %^^A %^^A Thanks for error reports (first bug finder only), new programming %^^A languages, etc. -%^^A Special thanks for communication which lead to kernel extensions. +%^^A Special thanks for communication which lead to kernel extensions, and to +%^^A Hendri Adriaens for reviving maintenance on the package. %^^A % Special thanks go to (alphabetical order) % \begin{quote} % \hyphenpenalty=10000\relax \rightskip=0pt plus \linewidth +% \lstthanks{Hendri~Adriaens}{-}, % \lstthanks{Andreas~Bartelt}{Andreas.Bartelt@Informatik.Uni-Oldenburg.DE}, % \lstthanks{Jan~Braun}{Jan.Braun@tu-bs.de}, % \lstthanks{Denis~Girou}{Denis.Girou@idris.fr}, @@ -1832,15 +1827,18 @@ % \lstthanks{Jens~Schwarzer}{schwarzer@schwarzer.dk}, and % \lstthanks{Boris~Veytsman}{boris@plmsc.psu.edu}. % \end{quote} -% Moreover I wish to thank +% Moreover we wish to thank % \begin{quote} % \hyphenpenalty=10000\relax \rightskip=0pt plus \linewidth % \lstthanks{Bj{\o}rn~{\AA}dlandsvik}{bjorn@imr.no}, +% \lstthanks{Omair-Inam~Abdul-Matin}{-}, % \lstthanks{Gaurav~Aggarwal}{gaurav@ics.uci.edu}, % \lstthanks{Jason~Alexander}{jalex@ea.oac.uci.edu}, +% \lstthanks{Andrei~Alexandrescu}{-}, % \lstthanks{Holger~Arndt}{-}, % \lstthanks{Donald~Arseneau}{ASND@erich.triumf.ca}, % \lstthanks{David~Aspinall}{David.Aspinall@ed.ac.uk}, +% \lstthanks{Frank~Atanassow}{-}, % \lstthanks{Claus~Atzenbeck}{Claus.Atzenbeck@stud.uni-regensburg.de}, % \lstthanks{Michael~Bachmann}{-}, % \lstthanks{Luca~Balzerani}{-}, @@ -1857,10 +1855,12 @@ % \lstthanks{Peter~Biechele}{peter.biechele@physik.uni-freiburg.de}, % \lstthanks{Beat~Birkhofer}{beat@birkhofer.ch}, % \lstthanks{Fr\'ed\'eric~Boulanger}{Frederic.Boulanger@supelec.fr}, +% \lstthanks{Joachim~Breitner}{-}, % \lstthanks{Martin~Brodbeck}{Martin.Brodbeck@gmx.de}, % \lstthanks{Walter~E.~Brown}{WB@fnal.gov}, % \lstthanks{Achim~D.~Brucker}{brucker@informatik.uni-freiburg.de}, % \lstthanks{J\'an Bu\v{s}a}{-}, +% \lstthanks{Thomas~ten~Cate}{-}, % \lstthanks{David~Carlisle}{davidc@nag.co.uk}, % \lstthanks{Bradford~Chamberlain}{brad@cs.washington.edu}, % \lstthanks{Brian~Christensen}{-}, @@ -1883,6 +1883,8 @@ % \lstthanks{Tanguy~Fautr\'e}{tfautre@pandora.be}, % \lstthanks{Ulrike~Fischer}{-}, % \lstthanks{Robert~Frank}{rf7@ukc.ac.uk}, +% \lstthanks{Michael~Franke}{-}, +% \lstthanks{Ignacio~Fern\'andez~Galv\'an}{-}, % \lstthanks{Martine~Gautier}{-} % \lstthanks{Daniel~Gazard}{gazard_d@epita.fr}, % \lstthanks{Daniel~Gerigk}{Daniel.Gerigk@ePost.de}, @@ -1900,6 +1902,8 @@ % \lstthanks{Jim~Hefferon}{Hefferon9@aol.com}, % \lstthanks{Heiko~Heil}{info@heiko-heil.de}, % \lstthanks{J\"urgen~Heim}{heim@astro.uni-tuebingen.de}, +% \lstthanks{Martin~Heller}{-}, +% \lstthanks{Stephan~Hennig}{-}, % \lstthanks{Alvaro~Herrera}{alvherre@dcc.uchile.cl}, % \lstthanks{Richard~Hoefter}{hoefter@gmx.de}, % \lstthanks{Dr.~Jobst~Hoffmann}{HOFFMANN@rz.rwth-aachen.de}, @@ -1918,6 +1922,7 @@ % \lstthanks{Marcin~Kasperski}{Marcin.Kasperski@softax.com.pl}, % \lstthanks{Christian~Kindinger}{chkind@uni-wuppertal.de}, % \lstthanks{Steffen~Klupsch}{steffen@vlsi.informatik.tu-darmstadt.de}, +% \lstthanks{Markus~Kohm}{-}, % \lstthanks{Peter~K\"oller}{pkoeller@metaprojekt.de} (big thankyou), ^^A beta tester % \lstthanks{Reinhard~Kotucha}{Reinhard.Kotucha@web.de}, % \lstthanks{Stefan~Lagotzki}{info@lagotzki.de}, @@ -1929,25 +1934,29 @@ % \lstthanks{Thomas~Leonhardt}{leonhardt@informatik.tu-darmstadt.de} (big thankyou), ^^A beta tester % \lstthanks{Magnus~Lewis-Smith}{Magnus.Lewis-Smith@pace.co.uk}, % \lstthanks{Knut~Lickert}{knut.lickert@gmx.de}, +% \lstthanks{Benjamin~Lings}{-}, % \lstthanks{Dan~Luecking}{luecking@uark.edu}, % \lstthanks{Peter~L\"offler}{-}, +% \lstthanks{Markus~Luisser}{-}, % \lstthanks{Kris~Luyten}{no email available}, % \lstthanks{Jos\'e~Romildo~Malaquias}{romildo@urano.iceb.ufop.br}, % \lstthanks{Andreas~Matthias}{amat@kabsi.at}, % \lstthanks{Patrick~TJ~McPhee}{ptjm@interlog.com}, -% \lstthanks{Brooks~Moses}{-}, +% ^^A \lstthanks{Brooks~Moses}{-}, % \lstthanks{Riccardo~Murri}{riccardo.murri@gmx.it}, % \lstthanks{Knut~M\"uller}{knut@physik3.gwdg.de}, % \lstthanks{Svend~Tollak~Munkejord}{svendm@efisms.energy.sintef.no}, % \lstthanks{Gerd~Neugebauer}{gerd.neugebauer@gmx.de}, % \lstthanks{Torsten~Neuer}{tneuer@inwise.de}, +% \lstthanks{Enzo~Nicosia}{-}, % \lstthanks{Michael~Niedermair}{m.g.n@gmx.de}, % \lstthanks{Xavier~Noria}{fxn@hashref.com}, % \lstthanks{Heiko~Oberdiek}{oberdiek@ruf.uni-freiburg.de}, % \lstthanks{Xavier~Olive}{-}, % \lstthanks{Alessio~Pace}{-}, % \lstthanks{Markus~Pahlow}{pahlowm@mar.dfo-mpo.gc.ca}, -% \lstthanks{Morten~H~Pedersen}{mhp@dadlnet.dk}, +% \lstthanks{Morten~H.~Pedersen}{mhp@dadlnet.dk}, +% \lstthanks{Xiaobo~Peng}{-}, % \lstthanks{Zvezdan~V.~Petkovic}{zpetkovic@acm.org}, % \lstthanks{Michael~Piefel}{piefel@informatik.hu-berlin.de}, % \lstthanks{Michael~Piotrowski}{mxp@linguistik.uni-erlangen.de}, @@ -1957,6 +1966,7 @@ % \lstthanks{Ralf~Quast}{rquast@hs.uni-hamburg.de}, % \lstthanks{Aslak~Raanes}{araanes@ifi.ntnu.no}, % \lstthanks{Venkatesh~Prasad~Ranganath}{vranganath@cox.net}, +% \lstthanks{Tobias~Rapp}{-}, % \lstthanks{Jeffrey~Ratcliffe}{-}, % \lstthanks{Georg~Rehm}{Georg.Rehm@germanistik.uni-giessen.de}, % \lstthanks{Fermin~Reig}{reig@ics.uci.edu}, @@ -1967,14 +1977,17 @@ % \lstthanks{Magne~Rudshaug}{magne@ife.no}, % \lstthanks{Jonathan~Sauer}{jonathan.sauer@gmx.de}, % \lstthanks{Vespe~Savikko}{vespe@cs.tut.fi}, +% \lstthanks{Mark~Schade}{-}, % \lstthanks{Gunther~Schmidl}{gschmidl@gmx.at}, % \lstthanks{Andreas~Schmidt}{-}, % \lstthanks{Walter~Schmidt}{wschmi@arcor.de}, +% \lstthanks{Christian~Schneider}{-}, % \lstthanks{Jochen~Schneider}{jschneider@ds3.etech.haw-hamburg.de}, % \lstthanks{Benjamin~Schubert}{benjamin.schubert@berlin.de}, +% \lstthanks{Sebastian~Schubert}{-}, % \lstthanks{Uwe~Siart}{uwe.siart@ei.tum.de}, % \lstthanks{Axel~Sommerfeldt}{axel@sommerfeldt.net}, -% \lstthanks{Richard~Stallman}{no address}, +% \lstthanks{Richard~Stallman}{-}, % \lstthanks{Nigel~Stanger}{nstanger@infoscience.otago.ac.nz}, % \lstthanks{Martin~Steffen}{ms@informatik.uni-kiel.de}, % \lstthanks{Andreas~Stephan}{Andreas.Stephan@victoria.de}, @@ -2005,12 +2018,13 @@ % \lstthanks{Herbert~Weinhandl}{weinhand@grz08u.unileoben.ac.at}, % \lstthanks{Robert~Wenner}{robert.wenner@gmx.de}, % \lstthanks{Michael~Wiese}{wiese@itwm.uni-kl.de}, -% \lstthanks{James~Willans}{-}, +% \lstthanks{James~Willans}{-}, % \lstthanks{J\"orn~Wilms}{wilms@rocinante.colorado.edu}, % \lstthanks{Kai~Wollenweber}{kai@ece.WPI.EDU}, % \lstthanks{Ulrich~G.~Wortmann}{uliw@erdw.ethz.ch}, -% \lstthanks{Cameron~H.G.~Wright}{-}, and -% \lstthanks{Andrew~Zabolotny}{-}. +% \lstthanks{Cameron~H.G.~Wright}{-}, +% \lstthanks{Andrew~Zabolotny}{-}, and +% \lstthanks{Florian~Z\"ahringer}{-}. % \end{quote} % There are probably other people who contributed to this package. % If I've missed your name, send an email. @@ -2051,9 +2065,6 @@ % If there is verbatim text touching the right margin, it is the % predefined value. Note that some keys default to this value every % listing, namely the keys which can be used on individual listings only. -% -% The label in the right margin is the current version number and marks -% newly introduced features. % \end{syntax} % Regarding the parameters, please keep in mind the following: % \begin{enumerate} @@ -2086,15 +2097,16 @@ % sets the values of the specified keys, see also section % \ref{uTheKey=ValueInterface}. % The parameters keep their values up to the end of the current group. -% In opposition, all optional \meta{key=value list}s below modify the +% In contrast, all optional \meta{key=value list}s below modify the % parameters for single listings only. % % \item[0.18] \rcmdname\lstinline\oarg{key=value list}\meta{character}\meta{source code}\meta{same character} % % works like |\verb| but respects the active language and style. These -% listings use flexible columns except requested differently in the -% optional argument. You can write `|\lstinline!var i:integer;!|' and -% get `\lstinline!var i:integer;!'. +% listings use flexible columns unless requested differently in the +% optional argument, and do not support frames or background colors. +% You can write `|\lstinline!var i:integer;!|' and get +% `\lstinline!var i:integer;!'. % % Since the command first looks ahead for an optional argument, you must % provide at least an empty one if you want to use |[| as @@ -2107,6 +2119,9 @@ % explicit space token---and, of course, using a listing inside another % argument is itself experimental, see section \ref{rListingsInsideArguments}. % +% See also section \ref{rShortInline} for commands to create short analogs +% for the |\lstinline| command. +% % \item[0.15] |\begin{|\texttt{\rstyle lstlisting}|}|\oarg{key=value list} % % \leavevmode\hspace*{-\leftmargini}|\end{|\texttt{\rstyle lstlisting}|}| @@ -2168,7 +2183,7 @@ % % Note: If the package is loaded without the \texttt{draft} option, you % can use this key together with |\lstset|. In the other case the key -% can only be used to typeset particular listings despite of the +% can be used to typeset particular listings despite using the % \texttt{draft} option. % % \item[0.1,1] \rkeyname{firstline}|=|\meta{number} @@ -2192,7 +2207,7 @@ % % sets the maximum of empty lines allowed. If there is a block of more % than \meta{number} empty lines, only \meta{number} ones are printed. -% Without the optional star, line numbers can be disturb when blank +% Without the optional star, line numbers can be disturbed when blank % lines are omitted; with the star, the lines keep their original % numbers. % @@ -2203,8 +2218,8 @@ % or \cs{lstinputlisting}. % % Tabulators expand to \ikeyname{tabsize} spaces before they are gobbled. -% Code lines with less than \ikeyname{gobble} characters are considered -% empty, but never indent the end of environment by more characters. +% Code lines with fewer than \ikeyname{gobble} characters are considered +% empty. Never indent the end of environment by more characters. % \end{syntax} % % @@ -2224,9 +2239,10 @@ % \item[0.17,{{}}] \rkeyname{language}|=|\oarg{dialect}\meta{language} % % activates a (dialect of a) programming language. The `empty' default -% language detects no keywords, no comments, no strings, and so on. -% Without specifying \meta{dialect}, the package chooses a default -% dialect. +% language detects no keywords, no comments, no strings, and so on; it +% may be useful for typesetting plain text. +% If \meta{dialect} is not specified, the package chooses the default +% dialect, or the empty dialect if there is no default dialect. % % Table \ref{uPredefinedLanguages} on page \pageref{uPredefinedLanguages} % lists all languages and dialects provided by \texttt{lstdrvrs.dtx}. @@ -2234,9 +2250,10 @@ % % \item[0.21] \rkeyname{alsolanguage}|=|\oarg{dialect}\meta{language} % -% selects the (dialect of a) programming language additionally to the +% activates a (dialect of a) programming language in addition to the % current active one. Note that some language definitions interfere with -% each other and are plainly incompatible. +% each other and are plainly incompatible; for instance, if one is case +% sensitive and the other is not. % % Take a look at the \ikeyname{classoffset} key in section % \ref{rFigureOutTheAppearance} if you want to highlight the keywords @@ -2250,7 +2267,7 @@ % not with |language=[]fool|. % \end{syntax} % -% Eventually here's a small list of language specific keys. +% Finally, here's a small list of language-specific keys. % \begin{syntax} % \item[0.19,false,optional] \rkeyname{printpod}|=|\meta{\alternative{true,false}} % @@ -2294,28 +2311,29 @@ % \item[0.11,\itshape] \rkeyname{commentstyle}|=|\meta{style} % \item[0.12,{{}}] \rkeyname{stringstyle}|=|\meta{style} % -% determine the style for non-keywords, comments, and strings. The -% \emph{last} token might be an one-parameter command like |\textbf| or +% determines the style for non-keywords, comments, and strings. The +% \emph{last} token can be an one-parameter command like |\textbf| or % |\underbar|. % % \item[0.11,\bfseries,addon] \rkeyname{keywordstyle}|=|\oarg{number}[\textasteriskcentered]\meta{style}\label{roption:keywordstyle} -% \item[0.19,keywordstyle,deprecated] \rkeyname{ndkeywordstyle}|=|\meta{style} % -% are used to print keywords and second order keywords (if defined). -% The optional \meta{number} argument is the class number to which the -% style should be applied. -% |ndkeywordstyle| has the fixed class number 2. +% is used to print keywords. The optional \meta{number} argument is the +% class number to which the style should be applied. % % Add-on: If you use the optional star after the (optional) class number, the % keywords are printed uppercase\,---\,even if a language is case % sensitive and defines lowercase keywords only. Maybe there should also be an % option for lowercase keywords \ldots % +% \item[0.19,keywordstyle,deprecated] \rkeyname{ndkeywordstyle}|=|\meta{style} +% +% is equivalent to |keywordstyle=2|\meta{style}. +% % \item[1.0,0] \rkeyname{classoffset}|=|\meta{number} % % is added to all class numbers before the styles, keywords, identifiers, % etc.~are assigned. The example below defines the keywords directly; -% you could do it indirectly by selection two different languages. +% you could do it indirectly by selecting two different languages. % \end{syntax} %\ifcolor % \begin{lstxsample} @@ -2346,7 +2364,7 @@ % \item[0.20,keywordstyle,optional] \rkeyname{directivestyle}|=|\meta{style} % % determine the style of \TeX\ control sequences and directives. -% Note that these key are present only if you've chosen an appropriate +% Note that these keys are present only if you've chosen an appropriate % language. % % The optional star of |texcsstyle| also highlights the backslash in @@ -2362,8 +2380,8 @@ % \item[0.21] \rkeyname{deleteemph}|=|\oarg{number}\marg{identifier list} % \item[0.21] \rkeyname{emphstyle}|=|\oarg{number}\marg{style} % -% define, add and remove the \meta{identifier list} from `emphasize -% class \meta{number}' respectively define the style for that class. +% respectively define, add or remove the \meta{identifier list} from +% `emphasize class \meta{number}', or define the style for that class. % If you don't give an optional argument, the package assumes % \meta{number}$\,=1$. % @@ -2374,9 +2392,8 @@ % \item[1.0] \rkeyname{moredelim}|=|[\texttt*[\texttt*]]\texttt[\meta{type}\texttt][\texttt[\meta{style}\texttt]]\meta{delimiter\textup(s\textup)} % \item[1.0] \rkeyname{deletedelim}|=|[\texttt*[\texttt*]]\texttt[\meta{type}\texttt]\meta{delimiter\textup(s\textup)} % -% deletes all previously defined delimiters (but neither strings nor -% comments) and defines the user supplied delimiter, adds the specified -% delimiter, or removes it. +% define, add, or remove user supplied delimiters. (Note that this does +% not affect strings or comments.) % % In the first two cases \meta{style} is used to print the delimited % code (and the delimiters). Here, \meta{style} could be something like @@ -2391,7 +2408,7 @@ % % If you use one optional star, the package will detect keywords, % comments, and strings inside the delimited code. With both optional -% stars, aditionally the style is applied cumulative, see section +% stars, aditionally the style is applied cumulatively; see section % \ref{uDelimiters}. % \end{syntax} % @@ -2415,7 +2432,7 @@ % % determines whether the left and right quote are printed |`'| or % \texttt{\textasciigrave\textquotesingle}. -% This key requires the \packagename{textcomp} package. +% This key requires the \packagename{textcomp} package if true. % % \item[0.12,8] \rkeyname{tabsize}|=|\meta{number} % @@ -2445,7 +2462,7 @@ % % \item[0.19,\bigbreak] \rkeyname{formfeed}|=|\meta{tokens} % -% Whenever a listing contains a form feed \meta{tokens} is executed. +% Whenever a listing contains a form feed, \meta{tokens} is executed. % \end{syntax} % % @@ -2463,7 +2480,7 @@ % line number. % If you turn line numbers on and off with \keyname{numbers}, the % parameter \keyname{stepnumber} will keep its value. Alternatively you -% can turn them off via |stepnumber=0| and on with a nonzero number and +% can turn them off via |stepnumber=0| and on with a nonzero number, and % keep the value of \keyname{numbers}. % % \item[1.1,false] \rkeyname{numberfirstline}|=|\meta{\alternative{true,false}}\label{uoption:numberfirstline} @@ -2496,7 +2513,7 @@ % \item[1.0] \rkeyname{name}|=|\meta{name} % % names a listing. Displayed environment-listings with the same name -% share a line counter. +% share a line counter if |firstnumber=auto| is in effect. % % \item[0.20,\arabic{lstnumber},data] \rcmdname\thelstnumber % @@ -2579,9 +2596,15 @@ % % prints the running number of the caption. % +% \item[1.4,true] \rkeyname{numberbychapter}|=|\meta{\alternative{true,false}} +% +% If true, and |\thechapter| exists, listings are numbered by chapter. +% Otherwise, they are numbered sequentially from the beginning of the +% document. This key can only be used before |\begin{document}|. +% % \item[0.19] \rcmdname\lstname % -% prints the name of the current listing which is either the file name or +% prints the name of the current listing which is either the file name or % the name defined by the \keyname{name} key. This command can be used to % define a caption or title template, for example by % |\lstset{caption=\lstname}|. @@ -2594,7 +2617,7 @@ % \item[0.20,\smallskipamount] \rkeyname{abovecaptionskip}|=|\meta{dimension} % \item[0.20,\smallskipamount] \rkeyname{belowcaptionskip}|=|\meta{dimension} % -% is the vertical space above respectively below each caption. +% is the vertical space respectively above or below each caption. % \end{syntax} % % @@ -2610,11 +2633,11 @@ % \item[1.0,0pt] \rkeyname{xrightmargin}|=|\meta{dimension} % % The dimensions are used as extra margins on the left and right. Line -% numbers and frames both move respectively shrink or grow accordingly. +% numbers and frames are both moved accordingly. % % \item[0.19,false] \rkeyname{resetmargins}|=|\meta{\alternative{true,false}} % -% If true indention from list environments like \texttt{enumerate} or +% If true, indention from list environments like \texttt{enumerate} or % \texttt{itemize} is reset, i.e.~not used. % % \item[0.20,false] \rkeyname{breaklines}|=|\meta{\alternative{true,false}}\syntaxor\rkeyname{breaklines} @@ -2677,7 +2700,7 @@ % % \item[0.19,{{}}] \rkeyname{frame}|=|\meta{subset of \textup{\texttt{trblTRBL}}} % -% The characters \texttt{trblTRBL} are attached to lines at the top and +% The characters \texttt{trblTRBL} designate lines at the top and % bottom of a listing and to lines on the right and left. Upper case % characters are used to draw double rules. So |frame=tlrb| draws a % single frame and |frame=TL| double lines at the top and on the left. @@ -2686,7 +2709,7 @@ % % \item[0.20,ffff] \rkeyname{frameround}|=|\meta{\alternative{t,f}}\meta{\alternative{t,f}}\meta{\alternative{t,f}}\meta{\alternative{t,f}} % -% The four letters are attached to the top right, bottom right, bottom +% The four letters designate the top right, bottom right, bottom % left and top left corner. In this order. \texttt{t} makes the % according corner round. If you use round corners, the rule width is % controlled via |\thinlines| and |\thicklines|. @@ -2725,7 +2748,7 @@ % \end{syntax} % \ikeyname{frame} does not work with |fancyvrb=true| or when the package % internally makes a |\hbox| around the listing! And there are certainly more -% problems with other commands. Take the time to make a (bug) report. +% problems with other commands; please take the time to make a (bug) report. %\ifcolor % \begin{lstxsample} % \lstset{framexleftmargin=5mm, frame=shadowbox, rulesepcolor=\color{blue}} @@ -2742,8 +2765,10 @@ % \end{lstlisting} % \end{lstsample} % -% Do you want exotic frames? -% Try the following key if you want for example +% Note here the use of |framexleftmargin| to include the line numbers inside +% the frame. +% +% Do you want exotic frames? Try the following key if you want, for example, % \begin{lstsample}{\lstset{frameshape={RYRYNYYYY}{yny}{yny}{RYRYNYYYY}}}{} % \begin{lstlisting} % for i:=maxint to 0 do @@ -2814,10 +2839,11 @@ % \subsection{Column alignment}\label{rColumnAlignment} % % \begin{syntax} -% \item[1.0,{[c]fixed}] \rkeyname{columns}|=|\oarg{\alternative{c,l,r}}\meta{\alternative{fixed,flexible,fullflexible}} +% \item[1.0,{[c]fixed}] \rkeyname{columns}|=|\oarg{\alternative{c,l,r}}\meta{alignment} % -% selects the respective column format, refer section -% \ref{uFixedAndFlexibleColumns}. +% selects the column alignment. The \meta{alignment} can be |fixed|, +% |flexible|, |spaceflexible|, or |fullflexible|; see section +% \ref{uFixedAndFlexibleColumns} for details. % % The optional |c|, |l|, or |r| controls the horizontal orientation of % smallest output units (keywords, identifiers, etc.). The arguments work @@ -2833,7 +2859,9 @@ % $\vert$\lstinline[columns={[c]fullflexible}]!listing!$\vert$, % $\vert$\lstinline[columns={[l]fullflexible}]!listing!$\vert$, and % $\vert$\lstinline[columns={[r]fullflexible}]!listing!$\vert$ -% with full flexible columns. +% with space-flexible or full flexible columns (which ignore the +% optional argument, since they do not add extra space around +% printable characters). % % \item[0.18,false] \rkeyname{flexiblecolumns}|=|\meta{\alternative{true,false}}\syntaxor\rkeyname{flexiblecolumns} % @@ -2962,19 +2990,19 @@ % \end{lstsample} % In the first example the comment line up to $a_{ij}$ has been typeset by the % \packagename{listings} package in comment style. The $a_{ij}$ itself is -% typeset in `\TeX\ math mode' without comment style. About the half -% comment line of the second example has been typeset by this package. -% The rest is in `\LaTeX\ mode'. +% typeset in `\TeX\ math mode' without comment style. About half of the +% comment line of the second example has been typeset by this package, and +% the rest is in `\LaTeX\ mode'. % % To avoid problems with the current and future version of this package: % \begin{enumerate} -% \item Don't use any command of the \packagename{listings} package when you +% \item Don't use any commands of the \packagename{listings} package when you % have escaped to \LaTeX. % \item Any environment must start and end inside the same escape. % \item You might use |\def|, |\edef|, etc., but do not assume that the -% definitions are present later---except they are |\global|. +% definitions are present later, unless they are |\global|. % \item |\if \else \fi|, groups, math shifts |$| and |$$|, \ldots\ must be -% balanced each escape. +% balanced within each escape. % \item \ldots % \end{enumerate} % Expand that list yourself and mail me about new items. @@ -2985,7 +3013,7 @@ % The \packagename{fancyvrb} package---fancy verbatims---from Timothy van Zandt % provides macros for reading, writing and typesetting verbatim code. It has % some remarkable features the \packagename{listings} package doesn't have. -% (Some are possible, but you must find somebody who implements them ; -- ). +% (Some are possible, but you must find somebody who will implement them |;-)|. % \begin{syntax} % \item[0.19] \rkeyname{fancyvrb}|=|\meta{\alternative{true,false}} % @@ -2997,7 +3025,7 @@ % This interface works with |Verbatim|, |BVerbatim| and |LVerbatim|. % But you shouldn't use \packagename{fancyvrb}'s \keyname{defineactive}. % (As far as I can see it doesn't matter since it does nothing at all, -% but for safety \ldots) +% but for safety \ldots .) % If \packagename{fancyvrb} and \packagename{listings} provide similar % functionality, you should use \packagename{fancyvrb}'s. % @@ -3035,8 +3063,8 @@ % \lstset{fancyvrb=false} % \end{lstsample} % The lines typeset by the \packagename{listings} package are wider since the -% default \ikeyname{basewidth} equals not the width of a single typewriter type -% character. Moreover note that the first space begins a comment as defined at +% default \ikeyname{basewidth} doesn't equal the width of a single typewriter type +% character. Moreover, note that the first space begins a comment as defined at % the beginning of the example. % \else % \begin{center} @@ -3078,6 +3106,25 @@ % {}\end{verbatim} % % +% \subsection{Short Inline Listing Commands}\label{rShortInline} +% +% Short equivalents of |\lstinline| can also be defined, in a manner similar +% to the short verbatim macros provided by \packagename{shortvrb}. +% +% \begin{syntax} +% \item[1.4] \rcmdname\lstMakeShortInline[\oarg{options}]\meta{character} +% +% defines \meta{character} to be an equivalent of +% |\lstinline|[\oarg{options}]\meta{character}, +% allowing for a convenient syntax when using lots of inline listings. +% +% \item[1.4] \rcmdname\lstDeleteShortInline\meta{character} +% +% removes a definition of \meta{character} created by |\lstMakeShortInline|, +% and returns \meta{character} to its previous meaning. +% \end{syntax} +% +% % \subsection{Language definitions}\label{rLanguageDefinitions} % % You should first read section \ref{uLanguageDefinitions} for an introduction @@ -3108,8 +3155,9 @@ % `\texttt{lstlang0.sty}' or add the definition to that file, but use % `|\lst@definelanguage|' instead of `|\lstdefinelanguage|'. % However, you might want to send the definition to the address in -% section \ref{uSoftwareLicense}. Then it will be published under the -% \LaTeX\ Project Public License. +% section \ref{uSoftwareLicense}. Then it will be included with the +% rest of the languages distributed with the package, and published under +% the \LaTeX\ Project Public License. % \end{advise} % % \item[0.18] \rcmdname\lstalias\marg{alias}\marg{language} @@ -3122,17 +3170,17 @@ % % Here all four parameters are \emph{nonoptional} and an alias with empty % \meta{dialect} will select the default dialect. Note that aliases -% can't be nested: The two aliases `|\lstalias{foo1}{foo2}|' and -% `|\lstalias{foo2}{foo3}|' redirect |foo1| \emph{not} to |foo3|. +% cannot be chained: The two aliases `|\lstalias{foo1}{foo2}|' and +% `|\lstalias{foo2}{foo3}|' will \emph{not} redirect |foo1| to |foo3|. % \end{syntax} -% All remaining keys in this section are intended to build language +% All remaining keys in this section are intended for building language % definitions. \emph{No other key should be used in such a definition!} % % % \paragraph{Keywords} % We begin with keyword building keys. Note: {\itshape If you want to enter -% {\upshape|\|, |{|, |}|, |%|, |#|} or {\upshape|&|} inside or as an argument -% here or below, you must do it with a preceding backslash!} +% {\upshape|\|, |{|, |}|, |%|, |#|} or {\upshape|&|} as (part of) an argument +% to the keywords below, you must do it with a preceding backslash!} % \begin{syntax} % \item[1.0,,{\dag bug}] \rkeyname{keywordsprefix}|=|\meta{prefix} % @@ -3141,10 +3189,10 @@ % % Bugs: Currently there are several limitations. % (1) The prefix is always case sensitive. -% (2) Only one prefix can be defined at the same time. -% (3) If used `standalone', the key might work only after selecting a -% nonempty language (and switching back to the empty language if -% necessary). +% (2) Only one prefix can be defined at a time. +% (3) If used `standalone' outside a language definition, the key might +% work only after selecting a nonempty language (and switching back to +% the empty language if necessary). % (4) The key does not respect the value of \keyname{classoffset} and % has no optional class \meta{number} argument. % @@ -3164,7 +3212,8 @@ % \item[0.19,,deprecated] \rkeyname{morendkeywords}|=|\marg{list of keywords} % \item[0.19,,deprecated] \rkeyname{deletendkeywords}|=|\marg{list of keywords} % -% define, add to or remove the keywords from keyword list 2. +% define, add to or remove the keywords from keyword list 2; note that +% this is equivalent to |keywords=[2]|\ldots etc. % The use of \keyname{ndkeywords} is strongly discouraged. % % \item[0.19,,{addon,optional}] \rkeyname{texcs}|=|\oarg{class number}\marg{list of control sequences \textup(without backslashes\textup)} @@ -3192,11 +3241,11 @@ % \item[0.19] \rkeyname{alsodigit}|=|\marg{character sequence} % \item[0.19] \rkeyname{alsoother}|=|\marg{character sequence} % -% All identifiers (keywords, directives, and such) begin with a letter -% and goes on with alpha-numeric characters (letters and digits). +% All identifiers (keywords, directives, and such) consist of a letter +% followed by alpha-numeric characters (letters and digits). % For example, if you write % |keywords={one-two,\#include}|, -% the minus must become a digit and the sharp a letter since the +% the minus sign must become a digit and the sharp a letter since the % keywords can't be detected otherwise. % % Table \ref{rStdCharTable} show the standard configuration of the @@ -3206,6 +3255,7 @@ % % \item[0.20] \rkeyname{otherkeywords}|=|\marg{keywords} % +% Defines keywords that contain other characters, or start with digits. % Each given `keyword' is printed in keyword style, but without changing % the `letter', `digit' and `other' status of the characters. This key % is designed to define keywords like |=>|, |->|, |-->|, |--|, |::|, and @@ -3242,22 +3292,23 @@ % % \paragraph{Strings} % \begin{syntax} -% \item[0.12] \rkeyname{string}|=|\oarg{\alternative{b,d,m,bd}}\marg{delimiter \textup(character\textup)} -% \item[0.21] \rkeyname{morestring}|=|\oarg{\alternative{b,d,m,bd}}\marg{delimiter} -% \item[0.21] \rkeyname{deletestring}|=|\oarg{\alternative{b,d,m,bd}}\marg{delimiter} +% \item[0.12] \rkeyname{string}|=|\oarg{\alternative{b,d,m,bd,s}}\marg{delimiter \textup(character\textup)} +% \item[0.21] \rkeyname{morestring}|=|\oarg{\alternative{b,d,m,bd,s}}\marg{delimiter} +% \item[0.21] \rkeyname{deletestring}|=|\oarg{\alternative{b,d,m,bd,s}}\marg{delimiter} % % define, add to or delete the delimiter from the list of string % delimiters. Starting and ending delimiters are the same, i.e.~in the % source code the delimiters must match each other. % -% The optional argument is the type and controls how the delimiter itself -% is represented in a string or character literal: it is escaped by a -% |b|ackslash, |d|oubled (or both is allowed via |bd|) or it is -% `|m|atlabed'. -% The latter one is a special type for Ada and Matlab and possibly more -% languages where the string delimters are also used for other purposes. -% In general the delimiter is also doubled, but a string does not start -% after a letter, a right parenthesis, or a right bracket. +% The optional argument is the type and controls the how the delimiter +% itself is represented in a string or character literal: it is escaped by a +% |b|ackslash, |d|oubled (or both is allowed via |bd|). Alternately, the +% type can refer to an unusual form of delimiter: |s|tring delimiters (akin +% to the |s| comment type) or |m|atlab-style delimiters. The latter is a +% special type for Ada and Matlab and possibly other languages where the +% string delimiters are also used for other purposes. It is equivalent +% to |d|, except that a string does not start after a letter, a right +% parenthesis, a right bracket, or some other characters. % \end{syntax} % % @@ -3269,14 +3320,15 @@ % % Ditto for comments, but some types require more than a single % delimiter. The following overview uses \keyname{morecomment} as the -% only example. +% example, but the examples apply to \keyname{comment} and \keyname{deletecomment} +% as well. % % \item[0.13] \keyname{morecomment}|=[l]|\meta{delimiter} % % The delimiter starts a comment line, which in general starts with the % delimiter and ends at end of line. If the character sequence |//| % should start a comment line (like in \Cpp, Comal 80 or Java), -% |morecomment=[l]=//| is the correct declaration. For Matlab it +% |morecomment=[l]//| is the correct declaration. For Matlab it % would be |morecomment=[l]\%|---note the preceding backslash. % % \item[0.13] \keyname{morecomment}|=[s]|\marg{delimiter}\marg{delimiter} @@ -3294,7 +3346,8 @@ % are not allowed---think a while about it! % Modula-2 and Oberon-2 use |morecomment=[n]{(*}{*)}|. % -% \item[0.18] \keyname{morecomment}|=[f][]|\oarg{n=preceding columns}\meta{delimiter} +% \item[0.18] \keyname{morecomment}|=[f]|\meta{delimiter} +% \item[0.18] \keyname{morecomment}|=[f][commentstyle]|\oarg{n=preceding columns}\meta{delimiter} % % The delimiter starts a comment line if and only if it appears on a % fixed column-number, namely if it is in column $n$ (zero based). @@ -3344,11 +3397,12 @@ % \texttt{lstdrvrs.dtx}&$\to$&\texttt{texmf/source/latex/listings} % \end{tabular} % \end{center} -% Note that you possibly don't have a patch file \texttt{lstpatch.sty}. +% Note that you may not have a patch file \texttt{lstpatch.sty}. % If you don't use the TDS, simply adjust the directories below. -% \item Create the directory \texttt{texmf/tex/latex/listings} or remove all +% \item Create the directory \texttt{texmf/tex/latex/listings} or, if it exists +% already, remove all % files except \texttt{lst}\meta{whatever}\texttt{0.sty} and -% \texttt{lstlocal.cfg} from that directory. +% \texttt{lstlocal.cfg} from it. % \item Change the working directory to \texttt{texmf/source/latex/listings} % and run \texttt{listings.ins} through \TeX. % \item Move the generated files to \texttt{texmf/tex/latex/listings} if this @@ -3366,7 +3420,7 @@ % \end{center} % \item If your \TeX\ implementation uses a file name database, update it. % \item If you receive a patch file later on, put it where -% \texttt{listings.sty} is (and update file name database). +% \texttt{listings.sty} is (and update the file name database). % \end{enumerate} % Note that \packagename{listings} requires at least version 1.10 of the % \packagename{keyval} package included in the \packagename{graphics} bundle by @@ -3384,14 +3438,14 @@ % \begin{center} % \begin{tabular}{lcl} % \texttt{lstmisc0.sty} & for & local add-ons -% (see developer's guide),\\ +% (see the developer's guide),\\ % \texttt{lstlang0.sty} & for & local language definitions % (see \ref{rLanguageDefinitions}), and\\ % \texttt{lstlocal.cfg} & as & local configuration file % \end{tabular} % \end{center} -% and put it/them to the other \packagename{listings} files. These three files -% are not touched by a new installation except you remove them. +% and put them in the same directory as the other \packagename{listings} files. +% These three files are not touched by a new installation unless you remove them. % If \texttt{lstlocal.cfg} exists, it is loaded after \texttt{listings.cfg}. % You might want to change one of the following parameters. % \begin{syntax} @@ -3401,19 +3455,19 @@ % The package uses the specified files to find add-ons and language % definitions. % \end{syntax} -% Moreover you might want to adjust +% Moreover, you might want to adjust % \icmdname\lstlistlistingname, % \icmdname\lstlistingname, % \ikeyname{defaultdialect}, % \icmdname\lstalias, or % \icmdname\lstalias -% as described in earlier section. +% \ as described in earlier sections. % % % \section{Experimental features}\label{rExperimentalFeatures} % % This section describes the more or less unestablished parts of this package. -% It's unlikely that they are all removed (except it is stated explicitly), but +% It's unlikely that they will all be removed (unless stated explicitly), but % they are liable to (heavy) changes and improvements. Such features have been % \dag-marked in the last sections. So, if you find anything \dag-marked here, % you should be very, very careful. @@ -3470,9 +3524,9 @@ % for function and procedure declaration or definition. A general interface is % completely out of the scope of this package---that's the work of a compiler % and not of a pretty-printing tool. However, it is possible for particular -% languages: in Pascal each function or procedure definition and variable -% declaration is preceded by a particular keyword. -% Note that you must request the following keys with \texttt{procnames} option: +% languages: in Pascal, for instance, each function or procedure definition and +% variable declaration is preceded by a particular keyword. +% Note that you must request the following keys with the \texttt{procnames} option: % |\usepackage[procnames]{listings}|. % \begin{syntax} % \item[0.19,{{}},{\dag optional}] \rkeyname{procnamekeys}|=|\marg{keywords} @@ -3494,8 +3548,8 @@ % If activated, procedure and function names are also indexed. % \end{syntax} % \begin{TODO} -% The \aspectname{procnames} aspect is unsatisfactory (since unchanged for more -% than four years). It marks and indexes the function definitions so far, but +% The \aspectname{procnames} aspect is unsatisfactory (and has been unchanged +% at least since 2000). It marks and indexes the function definitions so far, but % it would be possible to mark also the following function calls, for example. % A key could control whether function names are added to a special keyword % class, which then appears in `procname' style. But should these names be @@ -3504,10 +3558,10 @@ % \end{TODO} % % -% \subsection{\dag\ Hyper references}\label{rHyperReferences} +% \subsection{\dag\ Hyperlink references}\label{rHyperReferences} % -% This very small aspect must be requested via \texttt{hyper} option since it -% is experimental. One perspective for the future is to combine this aspect +% This very small aspect must be requested via the \texttt{hyper} option since it +% is experimental. One possibility for the future is to combine this aspect % with \aspectname{procnames}. Then it should be possible to click on a % function name and jump to its definition, for example. % \begin{syntax} @@ -3515,14 +3569,14 @@ % \item[0.21,,{\dag optional}] \rkeyname{morehyperref}|=|\marg{identifiers} % \item[0.21,,{\dag optional}] \rkeyname{deletehyperref}|=|\marg{identifiers} % -% Hyper references the specified identifiers (via \packagename{hyperref} +% hyperlink the specified identifiers (via \packagename{hyperref} % package). A `click' on such an identifier jumps to the previous % occurrence. % % \item[0.21,\hyper@@anchor,{\dag optional}] \rkeyname{hyperanchor}|=|\meta{two-parameter macro} % \item[0.21,\hyperlink,{\dag optional}] \rkeyname{hyperlink}|=|\meta{two-parameter macro} % -% The macros are used to set an hyper anchor and link, respectively. +% set a hyperlink anchor and link, respectively. % The defaults are suited for the \packagename{hyperref} package. % \end{syntax} % @@ -3539,12 +3593,12 @@ % if (i<>0) i := 0; % \end{lstlisting} % \end{lstsample} -% Funny, isn't it? We could write |i := 0| respectively i| |$\gets$| |0 -% instead, but that's not literate!^^A :-) +% Funny, isn't it? We could leave |i := 0| in our listings instead of +% i| |$\gets$| |0, but that's not literate! ^^A :-) % Now you might want to know how this has been done. Have a \emph{close} % look at the following key. % \begin{syntax} -% \item[0.20,,\dag] \rkeyname{literate}|=|\meta{replacement item}\ldots\meta{replacement item} +% \item[0.20,,\dag] \rkeyname{literate}|=|[|*|]\meta{replacement item}\ldots\meta{replacement item} % % First note that there are no commas between the items. Each item % consists of three arguments: @@ -3553,18 +3607,21 @@ % Instead of printing these characters, we use \meta{replacement text}, % which takes the width of \meta{length} characters in the output. % -% Each `printing unit' in \meta{replacement text} \emph{must} be braced -% except it's a single character. For example, you must put braces +% Each `printing unit' in \meta{replacement text} \emph{must} be in braces +% unless it's a single character. For example, you must put braces % around |$\leq$|. % If you want to replace |<-1->| by |$\leftarrow1\rightarrow$|, the % replacement item would be |{<-1->}{{$\leftarrow$}1{$\rightarrow$}}3|. % Note the braces around the arrows. % % If one \meta{replace} is a subsequence of another \meta{replace}, you -% must use the shorter sequence first. For example, |{-}| must be used +% must define the shorter sequence first. For example, |{-}| must be defined % before |{--}| and this before |{-->}|. +% +% The optional star indicates that literate replacements should not be +% made in strings, comments, and other delimited text. % \end{syntax} -% In the example above I've used +% In the example above, I've used % \begin{verbatim} % literate={:=}{{$\gets$}}1 {<=}{{$\leq$}}1 {>=}{{$\geq$}}1 {<>}{{$\neq$}}1\end{verbatim} % \begin{TODO} @@ -3729,6 +3786,35 @@ % \end{lstsample} % % +% \subsection{Multicolumn Listings}\label{rMulticolumnListings} +% +% When the \packagename{multicol} package is loaded, it can be used to typeset +% multi-column listings. These are specified with the |multicols| key. For +% example: +% \begin{lstsample}{}{} +% \begin{lstlisting}[multicols=2] +% if (i < 0) +% i = 0 +% j = 1 +% end if +% if (j < 0) +% j = 0 +% end if +% \end{lstlisting} +% \end{lstsample} +% +% The multicolumn option is known to fail with some keys. +% +% \begin{advise} +% \item Which keys? +% \advisespace +% Unfortunately, I don't know. Carsten left the code for this option +% in the version 1.3b patch file with only that cryptic note for +% documentation. Bug reports would be welcome, though I don't promise +% that they're fixable. ---Brooks +% \end{advise} +% +% %\iffalse % \section{Forthcoming ?} % @@ -3783,9 +3869,9 @@ % % \section{Troubleshooting}\label{uTroubleshooting} % -% If you're faced with a \packagename{listings}' package problem, there are +% If you're faced with a problem with the \packagename{listings} package, there are % some steps you should undergo before you make a bug report. First you should -% consult the reference guide whether the problem is already known. If not, +% consult the reference guide to see whether the problem is already known. If not, % create a \emph{minimal} file which reproduces the problem. Follow these % instructions: % \begin{enumerate} @@ -3799,7 +3885,7 @@ % \item You now have a minimal file. Send a bug report to the address on the % first page of this documentation and include the minimal file together % with the created \texttt{.log}-file. If you use a very special package -% (i.e.~not on CTAN), also include the package if its software license +% (i.e.~one not on CTAN), also include the package if its software license % allows it. % \end{enumerate} % @@ -3808,11 +3894,12 @@ % % % \subsubsection*{How to reference line numbers} -% You want to put |\label{|\meta{whatever}|}| into a \LaTeX\ escape which is -% inside a comment whose delimiters aren't printed? The compiler won't see the -% \LaTeX\ code since inside a comment, and the \packagename{listings} package -% won't print anything since the delimiters are dropped and |\label| doesn't -% produce any printable output. Well, your wish is granted. +% Perhaps you want to put |\label{|\meta{whatever}|}| into a \LaTeX\ escape which is +% inside a comment whose delimiters aren't printed? If you did that, the compiler +% won't see the \LaTeX\ code since it would be inside a comment, and the +% \packagename{listings} package wouldn't print anything since the delimiters would +% be dropped and |\label| doesn't produce any printable output, but you could still +% reference the line number. Well, your wish is granted. % % In Pascal, for example, you could make the package recognize the `special' % comment delimiters |(*@| and |@*)| as begin-escape and end-escape sequences. @@ -3855,9 +3942,9 @@ % % \subsubsection*{How to gobble characters} % To make your \LaTeX\ code more readable, you might want to indent your -% \texttt{lstlisting} listings. This indention must be removed for -% pretty-printing. If you indent each code line by three characters, you can -% remove them via |gobble=3|: +% \texttt{lstlisting} listings. This indention should not show up in the +% pretty-printed listings, however, so it must be removed. If you indent each code +% line by three characters, you can remove them via |gobble=3|: % \begin{lstsample}{}{\lstset{showspaces}} % \begin{lstlisting}[gobble=3] % 1 for i:=maxint to 0 do @@ -3869,8 +3956,8 @@ % WritE('Pascal keywords.'); % \end{lstlisting} % \end{lstsample} -% Note that empty lines as well as the beginning and the end of the environment -% need not to respect the indention. But never indent the end by more than +% Note that empty lines and the beginning and the end of the environment +% need not respect the indention. However, never indent the end by more than % `\ikeyname{gobble}' characters. Moreover note that tabulators expand to % |tabsize| spaces before we gobble. % \begin{advise} @@ -3885,7 +3972,7 @@ % \subsubsection*{How to include graphics} % \lsthelper{Herbert~Weinhandl}{1999/09/06}{listings + eps} found a very easy % way to include graphics in listings. Thanks for contributing this idea---an -% idea I never have had. +% idea I would never have had. % % Some programming languages allow the dollar sign to be part of an identifier. % But except for intermediate function names or library functions, this @@ -3909,7 +3996,8 @@ % Atom_T *x_ptr; /* pointer to (A|B) Atom in grid */ % } ABV_Pair_T; % \end{lstlisting}\end{verbatim} -% The result looks pretty good. Unfortunately you can't see it. +% The result looks pretty good. Unfortunately you can't see it, because the +% graphic wasn't available when the manual was typeset. % % % \subsubsection*{How to get closed frames on each page} @@ -3936,8 +4024,8 @@ % The keys \ikeyname{escapechar}, \ikeyname{escapeinside}, and \ikeyname{texcl} % allow partial usage of \LaTeX\ code. % -% Now, if you use $\Lambda$ (Lambda, the \LaTeX\ pendant to Omega) and want, -% for example, Arabic comment lines, you need not to write |\begin{arab}| +% Now, if you use $\Lambda$ (Lambda, the \LaTeX\ variant for Omega) and want, +% for example, Arabic comment lines, you need not write |\begin{arab}| % \ldots\ |\end{arab}| each escaped comment line. This can be automated: % \begin{verbatim} % \lstset{escapebegin=\begin{arab},escapeend=\end{arab}} @@ -3957,7 +4045,7 @@ % \end{lstlisting}\end{verbatim} % Note that the delimiters |`| and |'| are essential here. The example doesn't % work without them. There is a more clever way if the comment delimiters of -% the programming language are single characters like the braces in Pascal: +% the programming language are single characters, like the braces in Pascal: % \begin{verbatim} % \lstset{escapebegin=\textbraceleft\begin{arab}, % escapeend=\end{arab}\textbraceright} @@ -4012,20 +4100,27 @@ % \fi % % +% \subsubsection*{How to work with plain text} +% If you want to use \packagename{listings} to set plain text (perhaps with +% line numbers, or like |verbatim| but with line wrapping, or so forth, use +% the empty language: |\lstset{language=}|. +% +% % \subsubsection*{How to get the developer's guide} % In the \emph{source directory} of the listings package, i.e.~where % the \texttt{.dtx} files are, create the file \texttt{ltxdoc.cfg} with the % following contents. % \begin{verbatim} % \AtBeginDocument{\AlsoImplementation}\end{verbatim} -% Then run \texttt{\jobname.dtx} through \LaTeX\ twice, run Makeindex, -% and one last time \LaTeX\ on \texttt{\jobname.dtx}. This creates the whole -% documentation including User's guide, Reference guide, Developer's guide, -% and Implementation. +% Then run \texttt{listings.dtx} through \LaTeX\ twice, run Makeindex (with +% the |-s gind.ist| option), and then run \LaTeX\ one last time on +% \texttt{listings.dtx}. This creates the whole documentation including User's +% guide, Reference guide, Developer's guide, and Implementation. % % % \makeatletter -% \def\index@prologue{\section*{Index}\markboth{Index}{Index}} +%^^A \def\index@prologue{\section*{Index}\markboth{Index}{Index}} +% \def\index@prologue{\part{Index}\markboth{Index}{Index}} % \makeatother %^^A \StopEventually{\lstcheckreference\setcounter{IndexColumns}{2}\PrintIndex} % \StopEventually{\setcounter{IndexColumns}{2}\PrintIndex} @@ -4034,9 +4129,9 @@ % \part{Developer's guide} % % First I must apologize for this developer's guide since some parts are not -% explained as good as possible. But note that you are in a pretty good shape: +% explained as well as possible. But note that you are in a pretty good shape: % this developer's guide exists! ^^A :-) -% You might want to peak into section \ref{dPackageExtensions} before reading +% You might want to peek into section \ref{dPackageExtensions} before reading % section \ref{dBasicConcepts}. % % @@ -5422,7 +5517,7 @@ % \part{Implementation} % % -% \CheckSum{11807} +% \CheckSum{12359} %^^A %^^A Don't index TeX-primitives. %^^A @@ -5646,7 +5741,8 @@ \fi} \edef\lst@RestoreCatcodes{% \noexpand\lccode`\noexpand\/`\noexpand\/% - \lst@RestoreCatcodes\"\^^I\^^M\~\^^@\relax} + \lst@RestoreCatcodes\"\^^I\^^M\~\^^@\relax + \catcode12\active} % \end{macrocode} % Now we are ready for % \begin{macrocode} @@ -6027,12 +6123,19 @@ % \end{macro} % % \begin{macro}{\lst@for} -% A for-loop with expansion of the loop-variable. +% A for-loop with expansion of the loop-variable. This was improved due to +% a suggestion by \lsthelper{Hendri~Adriaens}{2006/03/31}{speedup of +% \lst@for}. % \begin{macrocode} \def\lst@for#1\do#2{% - \def\lst@forbody##1{#2}% - \@for\lst@forvar:=#1\do - {\expandafter\lst@forbody\expandafter{\lst@forvar}}} + \def\lst@forbody##1{#2}% + \def\@tempa{#1}% + \ifx\@tempa\@empty\else\expandafter\lst@f@r#1,\@nil,\fi +} +\def\lst@f@r#1,{% + \def\@tempa{#1}% + \ifx\@tempa\@nnil\else\lst@forbody{#1}\expandafter\lst@f@r\fi +} % \end{macrocode} % \end{macro} % @@ -6050,7 +6153,7 @@ % \def\lst@MakeActive#1{\lccode`\~=`#1\lowercase{\def\lst@arg{~}}} % \end{texcode} % The |\lowercase| changes the ASCII code of |~| to the one of |#1| since we -% have said that |~| is the lower case version of |#1|. +% have said that |#1| is the lower case version of |~|. % Fortunately the |\lowercase| doesn't change the catcode, so we have an active % version of |#1|. % Note that |~| is usually active. @@ -7474,7 +7577,29 @@ % \end{macrocode} % \end{macro} % -% So far the column formats. Now we define macros to use them. +% \begin{macro}{\lst@column@spaceflexible} +% This column format only inserts lost space by stretching (invisible) +% existing spaces; it does not insert lost space between identifiers +% and other characters where the original does not have a space. It +% was suggested by \lsthelper{Andrei~Alexandrescu}{-}{2007-02-26}. +% \begin{macrocode} +\def\lst@column@spaceflexible{% + \lst@column@flexible + \def\lst@OutputLostSpace{% + \lst@ifwhitespace + \ifx\lst@outputspace\lst@visiblespace + \else + \lst@UseLostSpace + \fi + \else + \lst@ifnewline \lst@UseLostSpace\fi + \fi}% + \let\lst@leftinsert\@empty + \let\lst@rightinsert\@empty} +% \end{macrocode} +% \end{macro} +% +% Thus, we have the column formats. Now we define macros to use them. % % \begin{macro}{\lst@outputpos} % This macro sets the `output-box-positioning' parameter (the old key @@ -8072,11 +8197,14 @@ % \begin{macro}{\lst@ProcessSpace} % We look whether spaces fix the column alignment or not. In the latter case % we append a space; otherwise \ldots +% \lsthelper{Andrei~Alexandrescu}{-}{2007/02/27} tested the |spaceflexible| +% column setting and found a bug that resulted from |\lst@PrintToken| and +% |\lst@whitespacetrue| being out of order here. % \begin{macrocode} \def\lst@ProcessSpace{% \lst@ifkeepspaces - \lst@whitespacetrue \lst@PrintToken + \lst@whitespacetrue \lst@AppendOther\lst@outputspace \lst@PrintToken \else \ifnum\lst@newlines=\z@ @@ -8104,7 +8232,10 @@ % \begin{macro}{\lst@AppendSpecialSpace} % If there are at least two white spaces, we output preceding characters and % advance |\lst@lostspace| to avoid alignment problems. Otherwise we append -% a space to the current character string. +% a space to the current character string. Also, |\lst@whitespacetrue| has +% been moved after |\lst@PrintToken| so that the token-printer can correctly +% check whether it is printing whitespace or not; this was preventing the +% |spaceflexible| column setting from working correctly. % \begin{macrocode} \def\lst@AppendSpecialSpace{% \lst@ifwhitespace @@ -8113,8 +8244,8 @@ \global\advance\lst@pos\m@ne \lst@gobbledwhitespacetrue \else - \lst@whitespacetrue \lst@PrintToken + \lst@whitespacetrue \lst@AppendOther\lst@outputspace \lst@PrintToken \fi} @@ -8594,8 +8725,10 @@ % listings crossing pages ==> ~ in header, not space}. % % We can choose between three possibilities. +% \lsthelper{Donald~Arseneau}{2006/09/14}{cannot select output routine 1} +% noted a bug here in the |\ifcase| argument. % \begin{macrocode} -\lst@Key{useoutput}{2}{\edef\lst@useoutput{\ifcase#10 0\or 1\else 2\fi}} +\lst@Key{useoutput}{2}{\edef\lst@useoutput{\ifcase0#1 0\or 1\else 2\fi}} % \end{macrocode} % The first does not modify the existing output routine. % \begin{macrocode} @@ -8682,9 +8815,21 @@ \fi \advance\@tempcnta\@ne \repeat} -\def\lst@ScanChars{% +% \end{macrocode} +% As per a bug report by \lsthelper{Benjamin~Lings}{2004/10/15}% +% {\usepackage{xy,listings} yields: "Forbidden control sequence...."}, we +% deactivate |\outer| definition of |^^L| temporarily (inside and outside +% of |\lst@ScanChars|) and restore the catcode at end of package via the +% |\lst@RestoreCatcodes| command. +% \begin{macrocode} +\begingroup \catcode12=\active\let^^L\@empty +\gdef\lst@ScanChars{% + \let\lsts@ssL^^L% + \def^^L{\par}% \lst@GetChars\lst@RestoreOrigCatcodes\@ne {128}% + \let^^L\lsts@ssL \lst@GetChars\lst@RestoreOrigExtendedCatcodes{128}{256}} +\endgroup % \end{macrocode} % The scan can be issued by hand and at the beginning of a document. % \begin{macrocode} @@ -9290,7 +9435,7 @@ % \begin{macro}{\lst@stringtypes} % is the list of \ldots\space string types? % \begin{macrocode} -\gdef\lst@stringtypes{d,b,m,bd,db} +\gdef\lst@stringtypes{d,b,m,bd,db,s} % \end{macrocode} % \end{macro} % @@ -9417,24 +9562,6 @@ % \end{macrocode} % \end{macro}\end{macro} % -% \begin{macro}{\lst@StringDM@a} -% This delimiter type is designed for Ada. Here we enter string mode only -% if the last character has not been a letter and has not been a right -% parenthesis or right bracket. The test for the latter one has been added -% after bug report from \lsthelper{Christian~Kindinger}{2002/03/??} -% {]' starts a string in Matlab}. -% \begin{macrocode} -\gdef\lst@StringDM@a#1#2\@empty#3#4#5{% - \lst@CArg #2\relax\lst@DefDelimBE{}{}% - {\let\lst@next\@gobblethree - \lst@ifletter\else - \ifx\lst@lastother)\else \ifx\lst@lastother]\else - \let\lst@next\@empty - \fi \fi \fi - \lst@next}#3{#1}{#5}#4} -% \end{macrocode} -% \end{macro} -% % \begin{macro}{\lst@StringDM@m} % is for Matlab. We enter string mode only if the last character is not in % the following list of exceptional characters: letters, digits, period, @@ -9456,6 +9583,16 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\lst@StringDM@s} +% is for string-delimited strings, just as for comments. This is needed +% for Ruby, and possibly other languages. +% \begin{macrocode} +\gdef\lst@StringDM@s#1#2#3\@empty#4#5#6{% + \lst@CArg #2\relax\lst@DefDelimB{}{}{}#4{#1}{#6}% + \lst@CArg #3\relax\lst@DefDelimE{}{}{}#5{#1}} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\lstum@rbrace} % This has been used above. % \begin{macrocode} @@ -10047,7 +10184,9 @@ % fourth right before ending it. We use the same mechanism as for \TeX\ comment % lines. The |\lst@ifdropinput| test has been added after a bug report by % \lsthelper{Michael~Weber}{2002/03/26}{escape on lines < firstline corrupts -% output}. +% output}. The |\lst@newlines\z@| was added due to a bug report by +% \lsthelper{Frank~Atanassow}{2004/10/07}{space after mathescape is not +% preserved}. % \begin{macrocode} \gdef\lst@Escape#1#2#3#4{% \lst@CArgX #1\relax\lst@CDefX @@ -10068,7 +10207,7 @@ \lst@CArg #2\relax\lst@ActiveCDefX {}% {\lst@escapeend #4\lst@LeaveAllModes\lst@ReenterModes - \lst@whitespacefalse}% + \lst@newlines\z@ \lst@whitespacefalse}% {}% \fi #3\lst@escapebegin @@ -11053,17 +11192,22 @@ % \end{macrocode} % To make the backslash belong to the control sequence, it is merged with % the following token. This option was suggested by \lsthelper{Morten~H\o gholm} -% {2004/07/16}{defining new (colored) texcs}. +% {2004/07/16}{defining new (colored) texcs}. +% \lsthelper{Christian~Schneider}{-}{2006/09/08} pointed out that the original +% implementation was broken when the identifier was preceded by an ``other'' +% character. To fix this (and other bugs), we first output whatever is in the +% current token before merging. % \begin{macrocode} \let\lst@iftexcsincludebs\iffalse \lst@AddToHook{SelectCharTable} {\lst@iftexcsincludebs \ifx\@empty\lst@texcs\else \lst@DefSaveDef{`\\}\lsts@texcsbs - {\ifx\lst@lastother\lstum@backslash - \lsts@texcsbs\lst@XPrintToken - \else - \lst@Merge\lsts@texcsbs - \fi}% + {\lst@ifletter + \lst@Output + \else + \lst@OutputOther + \fi + \lst@Merge\lsts@texcsbs}% \fi \fi} % \end{macrocode} % \begin{macrocode} @@ -11357,6 +11501,7 @@ \lst@AddToHookExe{EmptyStyle} {\let\lst@basicstyle\@empty \let\lst@inputenc\@empty} +\lst@Key{multicols}{}{\@tempcnta=0#1\relax\def\lst@multicols{#1}} %</kernel> % \end{macrocode} % Michael Niedermair asked for a key like \keyname{inputencoding}. @@ -12056,9 +12201,13 @@ last&\let\lst@firstnumber\c@lstnumber }{\def\lst@firstnumber{#1\relax}}} \lst@AddToHook{PreSet}{\let\lst@advancenumber\z@} +% \end{macrocode} +% |\lst@firstnumber| now set to |\lst@lineno| instead of |\lst@firstline|, +% as per changes in |lstpatch.sty| from 1.3b pertaining to linerange markers. +% \begin{macrocode} \lst@AddToHook{PreInit} {\ifx\lst@firstnumber\@undefined - \let\lst@firstnumber\lst@firstline + \def\lst@firstnumber{\lst@lineno}% \fi} % \end{macrocode} % \end{lstkey} @@ -12115,15 +12264,15 @@ \lst@AddToHook{Init}{\def\@currentlabel{\thelstnumber}} % \end{macrocode} % The label number is initialized and we ensure correct line numbers for -% continued listings. +% continued listings. An apparently-extraneous advancement of the line +% number by \verb|-\lst@advancelstnum| when \texttt{firstnumber=last} is +% specified was removed, following a bug report by \lsthelper{Joachim~Breitner}% +% {2006/05/14}{failure to continue counting correctly}. % \begin{macrocode} \lst@AddToHook{InitVars} {\global\c@lstnumber\lst@firstnumber \global\advance\c@lstnumber\lst@advancenumber - \global\advance\c@lstnumber-\lst@advancelstnum - \ifx \lst@firstnumber\c@lstnumber - \global\advance\c@lstnumber-\lst@advancelstnum - \fi} + \global\advance\c@lstnumber-\lst@advancelstnum} \lst@AddToHook{ExitVars} {\global\advance\c@lstnumber\lst@advancelstnum} % \end{macrocode} @@ -12598,35 +12747,45 @@ {\def#6{N}}% \lst@IfSubstring #2\lst@frame{\edef#5{#5#4Y#6}}{}} % \end{macrocode} -% For text style listings all frames are deactivated -- added after a bug -% report by \lsthelper{Stephen~Reindl}{2002/06/04}{frames not deactivated -% for text style listings}. +% For text style listings all frames and the background color are +% deactivated -- added after bug reports by \lsthelper{Stephen~Reindl}% +% {2002/06/04}{frames not deactivated for text style listings} and +% \lsthelper{Thomas~ten~Cate}{2006/07/14}{inline listings get background +% color after a line break} % \begin{macrocode} \lst@AddToHook{TextStyle} {\let\lst@frame\@empty \let\lst@frametshape\@empty \let\lst@framershape\@empty \let\lst@framebshape\@empty - \let\lst@framelshape\@empty} + \let\lst@framelshape\@empty + \let\lst@bkgcolor\@empty} % \end{macrocode} % \end{lstkey} % \end{lstkey} % +% As per a bug report by \lsthelper{Ignacio~Fern\'andez~Galv\'an}{2006/07/26}% +% {Frame with background color has slight hole on left side}, the small section +% of background color to the left of the margin is now drawn before the left +% side of the frame is drawn, so that they overlap correctly in Acrobat. +% % \begin{macro}{\lst@frameMakeVBox} % \begin{macrocode} \gdef\lst@frameMakeBoxV#1#2#3{% \setbox#1\hbox{% \color@begingroup \lst@rulecolor + \ifx\lst@framelshape\@empty + \else + \llap{% + \lst@frameBlock\lst@fillcolor\lst@frametextsep{#2}{#3}% + \kern\lst@framexleftmargin}% + \fi \llap{\setbox\z@\hbox{\vrule\@width\z@\@height#2\@depth#3% \lst@frameL}% \rlap{\lst@frameBlock\lst@rulesepcolor{\wd\z@}% {\ht\z@}{\dp\z@}}% \box\z@ - \ifx\lst@framelshape\@empty - \kern\lst@frametextsep\relax - \else - \lst@frameBlock\lst@fillcolor\lst@frametextsep{#2}{#3}% - \fi + \kern\lst@frametextsep\relax \kern\lst@framexleftmargin}% \rlap{\kern-\lst@framexleftmargin \@tempdima\linewidth @@ -13120,10 +13279,25 @@ \lst@AddToHook{PreSet} {\let\lst@firstline\@ne \def\lst@lastline{9999999\relax}} % \end{macrocode} -% The following code is just copied from the current development version. +% \end{lstkey} +% \end{lstkey}\end{lstkey}\end{lstkey}\end{macro} +% The following code is just copied from the current development version, and +% from the |lstpatch.sty| file that Carsten left in version 1.3b for doing +% line ranges with numbers and range markers. +% +% First, the options that control the line-range handling. % \begin{macrocode} \lst@Key{linerange}\relax{\lstKV@OptArg[]{#1}{% \def\lst@interrange{##1}\def\lst@linerange{##2,}}} +\lst@Key{rangeprefix}\relax{\def\lst@rangebeginprefix{#1}% + \def\lst@rangeendprefix{#1}} +\lst@Key{rangesuffix}\relax{\def\lst@rangebeginsuffix{#1}% + \def\lst@rangeendsuffix{#1}} +\lst@Key{rangebeginprefix}{}{\def\lst@rangebeginprefix{#1}} +\lst@Key{rangebeginsuffix}{}{\def\lst@rangebeginsuffix{#1}} +\lst@Key{rangeendprefix}{}{\def\lst@rangeendprefix{#1}} +\lst@Key{rangeendsuffix}{}{\def\lst@rangeendsuffix{#1}} +\lst@Key{includerangemarker}{true}[t]{\lstKV@SetIf{#1}\lst@ifincluderangemarker} \lst@AddToHook{PreSet}{\def\lst@firstline{1\relax}% \let\lst@linerange\@empty} \lst@AddToHook{Init} @@ -13134,23 +13308,181 @@ \def\lst@GetLineInterval{\expandafter\lst@GLI\lst@linerange\@nil} \def\lst@GLI#1,#2\@nil{\def\lst@linerange{#2}\lst@GLI@#1--\@nil} \def\lst@GLI@#1-#2-#3\@nil{% - \ifx\@empty#1\@empty - \let\lst@firstline\@ne - \else - \def\lst@firstline{#1\relax}% + \lst@IfNumber{#1}% + {\ifx\@empty#1\@empty + \let\lst@firstline\@ne + \else + \def\lst@firstline{#1\relax}% + \fi + \ifx\@empty#3\@empty + \def\lst@lastline{9999999\relax}% + \else + \ifx\@empty#2\@empty + \let\lst@lastline\lst@firstline + \else + \def\lst@lastline{#2\relax}% + \fi + \fi}% +% \end{macrocode} +% If we've found a general marker, we set firstline and lastline to 9999999. +% This prevents (almost) anything from being printed for now. +% \begin{macrocode} + {\def\lst@firstline{9999999\relax}% + \let\lst@lastline\lst@firstline +% \end{macrocode} +% We add the prefixes and suffixes to the markers. +% \begin{macrocode} + \let\lst@rangebegin\lst@rangebeginprefix + \lst@AddTo\lst@rangebegin{#1}\lst@Extend\lst@rangebegin\lst@rangebeginsuffix + \ifx\@empty#3\@empty + \let\lst@rangeend\lst@rangeendprefix + \lst@AddTo\lst@rangeend{#1}\lst@Extend\lst@rangeend\lst@rangeendsuffix + \else + \ifx\@empty#2\@empty + \let\lst@rangeend\@empty + \else + \let\lst@rangeend\lst@rangeendprefix + \lst@AddTo\lst@rangeend{#2}\lst@Extend\lst@rangeend\lst@rangeendsuffix + \fi + \fi +% \end{macrocode} +% The following definition will be executed in the SelectCharTable hook +% and here right now if we are already processing a listing. +% \begin{macrocode} + \global\def\lst@DefRange{\expandafter\lst@CArgX\lst@rangebegin\relax\lst@DefRangeB}% + \ifnum\lst@mode=\lst@Pmode \expandafter\lst@DefRange \fi}} +% \end{macrocode} +% \lst@DefRange is not inserted via a hook anymore. Instead it is now called +% directly from \lst@SelectCharTable. This was necessary to get rid of an +% interference with the escape-to-LaTeX-feature. The bug was reported by +% \lsthelper{Michael~Bachmann}{2004/07/21}{Keine label-Referenzierung +% m\"oglich...}. Another chance is due to the same bug: \lst@DefRange is +% redefined globally when the begin of code is found, see below. The bug was +% reported by \lsthelper{Tobias~Rapp}{2004/04/06}{undetected end of range if +% listing crosses page break} \lsthelper{Markus~Luisser}{2004/08/13}{Bug mit +% 'linerangemarker' in umgebrochenen listings} +% \begin{macrocode} +\lst@AddToHookExe{DeInit}{\global\let\lst@DefRange\@empty} +% \end{macrocode} +% +% Actually defining the marker (via \lst@GLI@, \lst@DefRange, \lst@CArgX as +% seen above) is similar to \lst@DefDelimB---except that we unfold the first +% parameter and use different <execute>, <pre>, and <post> statements. +% \begin{macrocode} +\def\lst@DefRangeB#1#2{\lst@DefRangeB@#1#2} +\def\lst@DefRangeB@#1#2#3#4{% + \lst@CDef{#1{#2}{#3}}#4{}% + {\lst@ifincluderangemarker + \lst@LeaveMode + \let#1#4% + \lst@DefRangeEnd + \lst@InitLstNumber + \else + \@tempcnta\lst@lineno \advance\@tempcnta\@ne + \edef\lst@firstline{\the\@tempcnta\relax}% + \gdef\lst@OnceAtEOL{\let#1#4\lst@DefRangeEnd}% + \lst@InitLstNumber + \fi + \global\let\lst@DefRange\lst@DefRangeEnd + \lst@CArgEmpty}% + \@empty} +% \end{macrocode} +% +% Modify labels and define |\lst@InitLstNumber| used above. +% \lsthelper{Omair-Inam~Abdul-Matin}{2004/05/10}{experimental linerange +% feature does not work with firstnumber} +% \begin{macrocode} +\def\lstpatch@labels{% +\gdef\lst@SetFirstNumber{% + \ifx\lst@firstnumber\@undefined + \@tempcnta 0\csname\@lst no@\lst@intname\endcsname\relax + \ifnum\@tempcnta=\z@ \else + \lst@nololtrue + \advance\@tempcnta\lst@advancenumber + \edef\lst@firstnumber{\the\@tempcnta\relax}% + \fi + \fi}% +} +\def\lst@InitLstNumber{% + \global\c@lstnumber\lst@firstnumber + \global\advance\c@lstnumber\lst@advancenumber + \global\advance\c@lstnumber-\lst@advancelstnum + \ifx \lst@firstnumber\c@lstnumber + \global\advance\c@lstnumber-\lst@advancelstnum + \fi} +% \end{macrocode} +% +% The end-marker is defined if and only if it's not empty. The definition is +% similar to \lst@DefDelimE---with the above exceptions and except that we +% define the re-entry point \lst@DefRangeE@@ as it is defined in the new +% version of \lst@MProcessListing above. +% \begin{macrocode} +\def\lst@DefRangeEnd{% + \ifx\lst@rangeend\@empty\else + \expandafter\lst@CArgX\lst@rangeend\relax\lst@DefRangeE + \fi} +\def\lst@DefRangeE#1#2{\lst@DefRangeE@#1#2} +\def\lst@DefRangeE@#1#2#3#4{% + \lst@CDef{#1#2{#3}}#4{}% + {\let#1#4% + \edef\lst@lastline{\the\lst@lineno\relax}% + \lst@DefRangeE@@}% + \@empty} +\def\lst@DefRangeE@@#1\@empty{% + \lst@ifincluderangemarker + #1\lst@XPrintToken \fi - \ifx\@empty#2\@empty - \def\lst@lastline{9999999\relax}% + \lst@LeaveModeToPmode + \lst@BeginDropInput{\lst@Pmode}} +\def\lst@LeaveModeToPmode{% + \ifnum\lst@mode=\lst@Pmode + \expandafter\lsthk@EndGroup \else - \ifx -#2% - \let\lst@lastline\lst@firstline - \else - \def\lst@lastline{#2\relax}% - \fi + \expandafter\egroup\expandafter\lst@LeaveModeToPmode + \fi} +% \end{macrocode} +% +% Eventually we shouldn't forget to install \lst@OnceAtEOL, which must +% also be called in \lst@MSkipToFirst. +% \begin{macrocode} +\lst@AddToHook{EOL}{\lst@OnceAtEOL\global\let\lst@OnceAtEOL\@empty} +\gdef\lst@OnceAtEOL{}% Init +\def\lst@MSkipToFirst{% + \global\advance\lst@lineno\@ne + \ifnum \lst@lineno=\lst@firstline + \def\lst@next{\lst@LeaveMode \global\lst@newlines\z@ + \lst@OnceAtEOL \global\let\lst@OnceAtEOL\@empty + \lst@InitLstNumber % Added to work with modified \lsthk@PreInit. + \lsthk@InitVarsBOL + \lst@BOLGobble}% + \expandafter\lst@next + \fi} +\def\lst@SkipToFirst{% + \ifnum \lst@lineno<\lst@firstline + \def\lst@next{\lst@BeginDropInput\lst@Pmode + \lst@Let{13}\lst@MSkipToFirst + \lst@Let{10}\lst@MSkipToFirst}% + \expandafter\lst@next + \else + \expandafter\lst@BOLGobble \fi} % \end{macrocode} -% \end{lstkey} -% \end{lstkey}\end{lstkey}\end{lstkey}\end{macro} +% +% Finally the service macro \lst@IfNumber: +% \begin{macrocode} +\def\lst@IfNumber#1{% + \ifx\@empty#1\@empty + \let\lst@next\@firstoftwo + \else + \lst@IfNumber@#1\@nil + \fi + \lst@next} +\def\lst@IfNumber@#1#2\@nil{% + \let\lst@next\@secondoftwo + \ifnum`#1>47\relax \ifnum`#1>57\relax\else + \let\lst@next\@firstoftwo + \fi\fi} +% \end{macrocode} % % \begin{lstkey}{nolol} % is just a key here. We'll use it below, of course. @@ -13196,21 +13528,34 @@ % % \begin{macro}{\thelstlisting} % \begin{macro}{\lstlistingname} +% \begin{lstkey}{numberbychapter} % \ldots\space and how the caption numbers look like. I switched to % |\@ifundefined| (instead of |\ifx| |\@undefined|) after an error report from % \lsthelper{Denis~Girou}{1999/07/26}{incompatible if hyperref loaded before % listings}. +% +% This is set |\AtBeginDocument| so that the user can specify whether or not +% the counter should be reset at each chapter before the counter is defined, +% using the |numberbychapter| key. % \begin{macrocode} -\@ifundefined{thechapter} - {\newcounter{lstlisting} - \renewcommand\thelstlisting{\@arabic\c@lstlisting}} - {\newcounter{lstlisting}[chapter] - \renewcommand\thelstlisting - {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@lstlisting}} +\AtBeginDocument{ + \@ifundefined{thechapter}{\let\lst@ifnumberbychapter\iffalse}{} + \lst@ifnumberbychapter + \newcounter{lstlisting}[chapter] + \gdef\thelstlisting% + {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@lstlisting} + \else + \newcounter{lstlisting} + \gdef\thelstlisting{\@arabic\c@lstlisting} + \fi} % \end{macrocode} % \begin{macrocode} \lst@UserCommand\lstlistingname{Listing} % \end{macrocode} +% \begin{macrocode} +\lst@Key{numberbychapter}{true}[t]{\lstKV@SetIf{#1}\lst@ifnumberbychapter} +% \end{macrocode} +% \end{lstkey} % \end{macro} % \end{macro} % @@ -13302,6 +13647,11 @@ % pagebreaks between caption (or title) and a listing, we redefine the % primitive |\vskip| locally to insert |\nobreak|s. Note that we allow % pagebreaks in front of a `top-caption' and after a `bottom-caption'. +% Also, the |\ignorespaces| in the |\@makecaption| call is added to match +% what \LaTeX\ does in |\@caption|; the AMSbook class (and perhaps others) +% assume this is present and attempt to strip it off when testing for an +% empty caption, causing a bug noted by \lsthelper{Xiaobo~Peng}{2006/06/29}% +% {captions not shown with amsbook class}. % \begin{TODO} % This redefinition is a brute force method. Is there a better one? % \end{TODO} @@ -13314,7 +13664,7 @@ \par\@parboxrestore\normalsize\normalfont % \noindent (AS) \ifx #1t\allowbreak \fi \ifx\lst@title\@empty - \lst@makecaption\fnum@lstlisting\lst@caption % (AS) + \lst@makecaption\fnum@lstlisting{\ignorespaces \lst@caption} \else \lst@maketitle\lst@title % (AS) \fi @@ -13480,7 +13830,7 @@ % \end{lstkey} % % \begin{macro}{\lst@Init} -% Begin a float if requested. +% Begin a float or multicolumn environment if requested. % \begin{macrocode} \def\lst@Init#1{% \begingroup @@ -13488,6 +13838,10 @@ \edef\@tempa{\noexpand\lst@beginfloat{lstlisting}[\lst@float]}% \expandafter\@tempa \fi + \ifx\lst@multicols\@empty\else + \edef\lst@next{\noexpand\multicols{\lst@multicols}} + \expandafter\lst@next + \fi % \end{macrocode} % In restricted horizontal \TeX\ mode we switch to |\lst@boxtrue|. % In that case we make appropriate box(es) around the listing. @@ -13619,12 +13973,19 @@ \fi \fi % \end{macrocode} -% End the float if necessary. +% End the multicolumn environment and/or float if necessary. % \begin{macrocode} + \ifx\lst@multicols\@empty\else + \def\lst@next{\global\let\@checkend\@gobble + \endmulticols + \global\let\@checkend\lst@@checkend} + \expandafter\lst@next + \fi \ifx\lst@float\relax\else \expandafter\lst@endfloat \fi \endgroup} +\let\lst@@checkend\@checkend % \end{macrocode} % \end{macro} % @@ -13805,29 +14166,75 @@ % \end{macrocode} % For KOMA-script classes, we define it a la KOMA thanks to a bug report by % \lsthelper{Tino~Langer}{2003/11/01}{koma-script's listsleft option does not -% affect lol}. -% \begin{macrocode} -\@ifpackageloaded{scrlfile} -{\newcommand*\lol@heading{\float@listhead{\lstlistlistingname}} - \renewcommand*\lstlistoflistings{% - \begingroup% - \if@twocolumn - \@restonecoltrue\onecolumn - \else - \@restonecolfalse - \fi - \lol@heading% - \@parskipfalse\@parskip@indent% - \@starttoc{lol}% - \if@restonecol\twocolumn\fi - \endgroup}% -}{} +% affect lol}. \lsthelper{Markus~Kohm}{2006/08/12}{koma-script support is +% broken} suggested a much-improved version of this, which also works with +% the \packagename{float} package. The following few comments are from Markus. +% +% Make use of |\float@listhead| if defined (e.g. using float or KOMA-Script) +% \begin{macrocode} +\@ifundefined{float@listhead}{}{% + \renewcommand*{\lstlistoflistings}{% + \begingroup +% \end{macrocode} +% Switch to one-column mode if the switch for switching is available. +% \begin{macrocode} + \@ifundefined{@restonecoltrue}{}{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + }% + \float@listhead{\lstlistlistingname}% +% \end{macrocode} +% Set |\parskip| to 0pt (should be!), |\parindent| to 0pt (better but not always +% needed), |\parfillskip| to 0pt plus 1fil (should be!). +% \begin{macrocode} + \parskip\z@\parindent\z@\parfillskip \z@ \@plus 1fil% + \@starttoc{lol}% +% \end{macrocode} +% Switch back to twocolumn (see above). +% \begin{macrocode} + \@ifundefined{@restonecoltrue}{}{% + \if@restonecol\twocolumn\fi + }% + \endgroup + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\float@addtolists} +% The \packagename{float} package defines a generic way for packages to add +% things (such as chapter names) to all of the lists of floats other than the +% standard figure and table lists. Each package that defines a list of +% floats adds a command to |\float@addtolists|, and then packages (such as +% the KOMA-script document classes) which wish to add things to all lists of +% floats can then use it, without needing to be aware of all of the possible +% lists that could exist. Thanks to \lsthelper{Markus~Kohm}{-}{2007/02/25} +% for the suggestion. +% +% Unfortunately, \packagename{float} defines this with |\newcommand|; thus, +% to avoid conflict, we have to redefine it after \packagename{float} is +% loaded. |\AtBeginDocument| is the easiest way to do this. Again, thanks +% to Markus for the advice. +% \begin{macrocode} +\AtBeginDocument{% + \@ifundefined{float@addtolists}% + {\gdef\float@addtolists#1{\addtocontents{lol}{#1}}}% + {\let\orig@float@addtolists\float@addtolists + \gdef\float@addtolists#1{% + \addtocontents{lol}{#1}% + \orig@float@addtolists{#1}}}% +}% % \end{macrocode} % \end{macro} % % % \subsection{Inline listings}\label{iInlineListings} % +% \subsubsection{Processing inline listings} +% % \begin{macro}{\lstinline} % In addition to |\lsthk@PreSet|, we use |boxpos=b| and flexiblecolumns. % I've inserted |\leavevmode| after bug report from \lsthelper{Michael~Weber} @@ -13912,6 +14319,145 @@ % \end{macro} % % +% \subsubsection{Short inline listing environments} +% +% The implementation in this section is based on the \packagename{shortvrb} +% package, which is part of |doc.dtx| from the Standard \LaTeX\ documentation +% package, version 2006/02/02 v2.1d. Portions of it are thus copyright +% 1993--2006 by The \LaTeX3 Project and copyright 1989--1999 by Frank +% Mittelbach. +% +% \begin{macro}{\lstMakeShortInline} +% \begin{macro}{\lstMakeShortInline@} +% First, we supply an optional argument if it's omitted. +% \begin{macrocode} +\newcommand\lstMakeShortInline[1][]{% + \def\lst@shortinlinedef{\lstinline[#1]}% + \lstMakeShortInline@}% +\def\lstMakeShortInline@#1{% + \expandafter\ifx\csname lst@ShortInlineOldCatcode\string#1\endcsname\relax + \lst@shortlstinlineinfo{Made }{#1}% + \lst@add@special{#1}% +% \end{macrocode} +% The character's current catcode is stored in +% |\lst@ShortInlineOldCatcode\|\meta{c}. +% \begin{macrocode} + \expandafter + \xdef\csname lst@ShortInlineOldCatcode\string#1\endcsname{\the\catcode`#1}% +% \end{macrocode} +% The character is spliced into the definition using the same trick as +% used in |\verb| (for instance), having activated |~| in a group. +% \begin{macrocode} + \begingroup + \catcode`\~\active \lccode`\~`#1% + \lowercase{% +% \end{macrocode} +% The character's old meaning is recorded +% in |\lst@ShortInlineOldMeaning\|\meta{c} prior to assigning it a new one. +% \begin{macrocode} + \global\expandafter\let + \csname lst@ShortInlineOldMeaning\string#1\endcsname~% + \expandafter\gdef\expandafter~\expandafter{\lst@shortinlinedef#1}}% + \endgroup +% \end{macrocode} +% Finally the character is made active. +% \begin{macrocode} + \global\catcode`#1\active +% \end{macrocode} +% If we suspect that \meta{c} is already a short reference, we tell +% the user. Now he or she is responsible if anything goes wrong\,\dots +% (Change in \packagename{listings}: We give a proper error here.) +% \begin{macrocode} + \else + \PackageError{Listings}% + {\string\lstMakeShorterInline\ definitions cannot be nested}% + {Use \string\lstDeleteShortInline first.}% + {}% + \fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\lstDeleteShortInline} +% \begin{macrocode} +\def\lstDeleteShortInline#1{% + \expandafter\ifx\csname lst@ShortInlineOldCatcode\string#1\endcsname\relax + \PackageError{Listings}% + {#1 is not a short reference for \string\lstinline}% + {Use \string\lstMakeShortInline first.}% + {}% + \else + \lst@shortlstinlineinfo{Deleted }{#1 as}% + \lst@rem@special{#1}% + \global\catcode`#1\csname lst@ShortInlineOldCatcode\string#1\endcsname + \global \expandafter\let% + \csname lst@ShortInlineOldCatcode\string#1\endcsname \relax + \ifnum\catcode`#1=\active + \begingroup + \catcode`\~\active \lccode`\~`#1% + \lowercase{% + \global\expandafter\let\expandafter~% + \csname lst@ShortInlineOldMeaning\string#1\endcsname}% + \endgroup + \fi + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\lst@shortlstinlineinfo} +% \begin{macrocode} +\def\lst@shortlstinlineinfo#1#2{% + \PackageInfo{Listings}{% + #1\string#2 a short reference for \string\lstinline}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\lst@add@special} +% This helper macro adds its argument to the +% |\dospecials| macro which is conventionally used by verbatim macros +% to alter the catcodes of the currently active characters. We need +% to add |\do\|\meta{c} to the expansion of |\dospecials| after +% removing the character if it was already there to avoid multiple +% copies building up should |\lstMakeShortInline| not be balanced by +% |\lstDeleteShortInline| (in case anything that uses |\dospecials| +% cares about repetitions). +% \begin{macrocode} +\def\lst@add@special#1{% + \lst@rem@special{#1}% + \expandafter\gdef\expandafter\dospecials\expandafter + {\dospecials \do #1}% +% \end{macrocode} +% Similarly we have to add |\@makeother\|\meta{c} to |\@sanitize| +% (which is used in things like "\index" to re-catcode all special +% characters except braces). +% \begin{macrocode} + \expandafter\gdef\expandafter\@sanitize\expandafter + {\@sanitize \@makeother #1}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\lst@rem@special} +% The inverse of |\lst@add@special| is slightly trickier. |\do| is +% re-defined to expand to nothing if its argument is the character of +% interest, otherwise to expand simply to the argument. We can then +% re-define |\dospecials| to be the expansion of itself. The space +% after |=`##1| prevents an expansion to |\relax|! +% \begin{macrocode} +\def\lst@rem@special#1{% + \def\do##1{% + \ifnum`#1=`##1 \else \noexpand\do\noexpand##1\fi}% + \xdef\dospecials{\dospecials}% +% \end{macrocode} +% Fixing |\@sanitize| is the same except that we need to re-define +% |\@makeother| which obviously needs to be done in a group. +% \begin{macrocode} + \begingroup + \def\@makeother##1{% + \ifnum`#1=`##1 \else \noexpand\@makeother\noexpand##1\fi}% + \xdef\@sanitize{\@sanitize}% + \endgroup} +% \end{macrocode} +% \end{macro} +% +% % \subsection{The input command}\label{iTheInputCommand} % % \begin{macro}{\lst@MakePath} @@ -14186,7 +14732,7 @@ % \end{macro} % % -% \subsubsection{\cs{lstnewenvironment}} +% \subsubsection{Defining new environments} % % \begin{macro}{\lstnewenvironment} % Now comes the main command. We define undefined environments only. On the @@ -14421,6 +14967,9 @@ % \subsection{Required packages} % % Most of the `required' packages are optional. +% \lsthelper{Stephan~Hennig}{2006-09-25}{documentation incompatible with algorithmic} +% noted a bug where |\ifalgorithmic| conflicts with an update to |algorithmic.sty|, so +% this has been changed to |\ifalgorithmicpkg|. % \begin{macrocode} %<*doc> \let\lstdoc@currversion\fileversion @@ -14436,13 +14985,13 @@ {} {\ifnum\OpMode>\z@ \lst@true \fi} \lst@if \IfFileExists{hyperref.sty}{\hypertrue}{}\fi -\newif\ifalgorithmic \IfFileExists{algorithmic.sty}{\algorithmictrue}{} +\newif\ifalgorithmicpkg \IfFileExists{algorithmic.sty}{\algorithmicpkgtrue}{} \newif\iflgrind \IfFileExists{lgrind.sty}{\lgrindtrue}{} \iffancyvrb \RequirePackage{fancyvrb}\fi \ifhyper \RequirePackage[colorlinks]{hyperref}\else \def\href#1{\texttt}\fi \ifcolor \RequirePackage{color}\fi -\ifalgorithmic \RequirePackage{algorithmic}\fi +\ifalgorithmicpkg \RequirePackage{algorithmic}\fi \iflgrind \RequirePackage{lgrind}\fi \RequirePackage{nameref} \RequirePackage{url} @@ -14637,7 +15186,7 @@ \def\PrintAspectName#1{} \def\SpecialMainAspectIndex#1{% \@bsphack - \index{aspects:\levelchar\protect\aspectname{#1}\encapchar main}% + \index{aspects:\levelchar\protect\aspectname{#1}}% \@esphack} % \end{macrocode} % \end{macro}\end{macro}\end{environment} @@ -14651,7 +15200,7 @@ \def\PrintKeyName#1{\strut\keyname{#1}\ } \def\SpecialMainKeyIndex#1{% \@bsphack - \index{keys\levelchar\protect\keyname{#1}\encapchar main}% + \index{keys\levelchar\protect\keyname{#1}}% \@esphack} % \end{macrocode} % \end{macro}\end{macro}\end{environment} @@ -14760,9 +15309,13 @@ % \begin{macrocode} \def\lstref#1{\emph{\ref{#1} \nameref{#1}}} % \end{macrocode} -% Moreover we adjust the table of contents. +% Moreover we adjust the table of contents. The |\phantomsection| before +% adding the contents line provides \packagename{hyperref} with an appropriate +% destination for the contents line link, thereby ensuring that the contents +% line is at the right level in the PDF bookmark tree. % \begin{macrocode} -\def\@part[#1]#2{\addcontentsline{toc}{part}{#1}% +\def\@part[#1]#2{\ifhyper\phantomsection\fi + \addcontentsline{toc}{part}{#1}% {\parindent\z@ \raggedright \interlinepenalty\@M \normalfont \huge \bfseries #2\markboth{}{}\par}% \nobreak\vskip 3ex\@afterheading} @@ -14791,13 +15344,13 @@ \keyname{#1}} \newcommand\ekeyname[1]{% \@bsphack - \lstkeyindex{#1}{\encapchar usage}% - \lstaspectindex{#1}{\encapchar usage}% + \lstkeyindex{#1}{}% + \lstaspectindex{#1}{}% \@esphack} \newcommand\rkeyname[1]{% \@bsphack - \lstkeyindex{#1}{\encapchar main}% - \lstaspectindex{#1}{\encapchar main}% + \lstkeyindex{#1}{}% + \lstaspectindex{#1}{}% \@esphack{\rstyle\keyname{#1}}} % \end{macrocode} % \begin{macrocode} @@ -14807,7 +15360,7 @@ \@esphack\texttt{\string#1}} \newcommand\rcmdname[1]{% \@bsphack - \lstaspectindex{#1}{\encapchar main}% + \lstaspectindex{#1}{}% \@esphack\texttt{\rstyle\string#1}} % \end{macrocode} % One of the two yet unknown `index'-macros is empty, the other looks up @@ -15220,7 +15773,7 @@ % \end{macrocode} % \begin{macrocode} \lst@Key{stringspaces}\relax[t]{\lstKV@SetIf{#1}\lst@ifshowstringspaces} -\lst@Key{visisblespaces}\relax[t]{\lstKV@SetIf{#1}\lst@ifshowspaces} +\lst@Key{visiblespaces}\relax[t]{\lstKV@SetIf{#1}\lst@ifshowspaces} \lst@Key{visibletabs}\relax[t]{\lstKV@SetIf{#1}\lst@ifshowtabs} % \end{macrocode} % @@ -15949,6 +16502,11 @@ % \item bugfix-release with two new keys and new section \ref{rArbitraryLinerangeMarkers} % \item[1.3] 2004/09/07 % \item another bugfix-release with LPPL-1.3-compliance +% \item[1.4] 2007/02/26 +% \item many bugfixes, and new maintainership +% \item several new and updated language definitions +% \item many small documentation improvements +% \item new keys, multicharacter string delimiters, short inline listings, and more. % \end{itemize} % \endgroup % diff --git a/Master/texmf-dist/source/latex/listings/listings-1.3.ins b/Master/texmf-dist/source/latex/listings/listings.ins index 97fd6526d9f..6b1805f229c 100644 --- a/Master/texmf-dist/source/latex/listings/listings-1.3.ins +++ b/Master/texmf-dist/source/latex/listings/listings.ins @@ -24,11 +24,11 @@ % generate base package % \generate{ - \file{listings.sty}{\from{listings-1.3.dtx}{kernel}} - \file{lstmisc.sty}{\from{listings-1.3.dtx}{misc,0.21}} - \file{lstdoc.sty}{\from{listings-1.3.dtx}{doc}} - \file{lstdrvrs.ins}{\from{lstdrvrs-1.3.dtx}{install}} - \file{listings.cfg}{\from{lstdrvrs-1.3.dtx}{config}} + \file{listings.sty}{\from{listings.dtx}{kernel}} + \file{lstmisc.sty}{\from{listings.dtx}{misc,0.21}} + \file{lstdoc.sty}{\from{listings.dtx}{doc}} + \file{lstdrvrs.ins}{\from{lstdrvrs.dtx}{install}} + \file{listings.cfg}{\from{lstdrvrs.dtx}{config}} } % diff --git a/Master/texmf-dist/source/latex/listings/lstdrvrs-1.3.dtx b/Master/texmf-dist/source/latex/listings/lstdrvrs.dtx index 442c9581521..fbee3980ec5 100644 --- a/Master/texmf-dist/source/latex/listings/lstdrvrs-1.3.dtx +++ b/Master/texmf-dist/source/latex/listings/lstdrvrs.dtx @@ -5,7 +5,7 @@ \EnableCrossrefs \CodelineIndex \begin{document} - \DocInput{lstdrvrs-1.3.dtx} + \DocInput{lstdrvrs.dtx} \end{document} %</driver> % \fi @@ -39,9 +39,9 @@ % \begingroup % \begin{macrocode} %% The listings package is copyright 1996--2004 Carsten Heinz, and -%% continued maintenance on the package is copyright 2006 Brooks Moses. -%% The drivers are copyright 1997/1998/1999/2000/2001/2002/2003/2004 any -%% individual author listed in this file. +%% continued maintenance on the package is copyright 2006--2007 Brooks Moses. +%% The drivers are copyright 1997/1998/1999/2000/2001/2002/2003/2004/2006/ +%% 2007 any individual author listed in this file. %% %% This file is distributed under the terms of the LaTeX Project Public %% License from CTAN archives in directory macros/latex/base/lppl.txt. @@ -70,9 +70,9 @@ \generate{ - \file{lstlang1.sty}{\from{lstdrvrs-1.3.dtx}{lang1}} - \file{lstlang2.sty}{\from{lstdrvrs-1.3.dtx}{lang2}} - \file{lstlang3.sty}{\from{lstdrvrs-1.3.dtx}{lang3}} + \file{lstlang1.sty}{\from{lstdrvrs.dtx}{lang1}} + \file{lstlang2.sty}{\from{lstdrvrs.dtx}{lang2}} + \file{lstlang3.sty}{\from{lstdrvrs.dtx}{lang3}} } @@ -101,15 +101,16 @@ \def\lstlanguagefiles {lstlang0.sty,lstlang1.sty,lstlang2.sty,lstlang3.sty} \lstset{defaultdialect=[R/3 6.10]ABAP, - defaultdialect=[95]Ada, + defaultdialect=[2005]Ada, defaultdialect=[68]Algol, defaultdialect=[gnu]Awk, defaultdialect=[ANSI]C, defaultdialect=[light]Caml, defaultdialect=[1985]Cobol, + defaultdialect=[WinXP]command.com, defaultdialect=[ISO]C++, defaultdialect=[95]Fortran, - defaultdialect=[3.0]Mathematica, + defaultdialect=[5.2]Mathematica, defaultdialect=[OMG]OCL, defaultdialect=[Standard]Pascal, defaultdialect=[67]Simula, @@ -217,7 +218,7 @@ transfer-dynpro,translate,type,unpack,update,user-command,% using,value,when,where,while,window,with,workfile,write,},% morecomment=[l]",% - morecomment=[f][0]*,% + morecomment=[f][commentstyle][0]*,% morestring=[d]'% }[keywords,comments,strings,procnames] % \end{macrocode} @@ -282,6 +283,13 @@ %% %% Ada 95 definition (c) Torsten Neuer %% +%% Ada 2005 definition (c) 2006 Santiago Urue\~{n}a Pascual +%% <Santiago.Uruena@upm.es> +%% +\lst@definelanguage[2005]{Ada}[95]{Ada}% + {morekeywords={interface,overriding,synchronized}}% +% \end{macrocode} +% \begin{macrocode} \lst@definelanguage[95]{Ada}[83]{Ada}% {morekeywords={abstract,aliased,protected,requeue,tagged,until}}% % \end{macrocode} @@ -357,6 +365,29 @@ % % \subsection{Assembler} % +% Credits go to \lstthanks{Michael~Franke}{-}{2006/05/13}. +% \begingroup +% \begin{macrocode} +%<*lang3> +%% +%% Motorola 68K definition (c) 2006 Michael Franke +%% +\lst@definelanguage[Motorola68k]{Assembler}% + {morekeywords={ABCD,ADD,% +ADDA,ADDI,ADDQ,ADDX,AND,ANDI,ASL,ASR,BCC,BLS,BCS,BLT,BEQ,BMI,BF,BNE,BGE,BPL,% +BGT,BT,BHI,BVC,BLE,BVS,BCHG,BCLR,BRA,BSET,BSR,BTST,CHK,CLR,CMP,CMPA,CMPI,CMPM,% +DBCC,DBLS,DBCS,DBLT,DBEQ,DBMI,DBF,DBNE,DBGE,DBPL,DBGT,DBT,DBHI,DBVC,DBLE,DBVS,DIVS,% +DIVU,EOR,EORI,EXG,EXT,ILLEGAL,JMP,JSR,LEA,LINK,LSL,LSR,MOVE,MOVEA,MOVEM,MOVEP,MOVEQ,% +MULS,MULU,NBCD,NEG,NEGX,NOP,NOT,OR,ORI,PEA,RESET,ROL,ROR,ROXL,ROXR,RTE,RTR,RTS,SBCD,% +SCC,SLS,SCS,SLT,SEQ,SMI,SF,SNE,SGE,SPL,SGT,ST,SHI,SVC,SLE,SVS,STOP,SUB,SUBA,SUBI,SUBQ,% +SUBX,SWAP,TAS,TRAP,TRAPV,TST,UNLK},% + sensitive=false,% + morecomment=[l]*,% + morecomment=[l];% + }[keywords,comments,strings] +%</lang3> +% \end{macrocode} +% % Credits go to \lstthanks{Andrew~Zabolotny}{zap@cobra.ru}{2002/07/05}. % \begingroup % \begin{macrocode} @@ -840,6 +871,62 @@ % \endgroup % % +% \subsection{Common Intermediate Language} +% +% This langauge definition for CIL (Common Intermediate Language, part +% of Microsoft's .NET interface) was provided by +% \lsthelper{Olaf~Conradi}{-}{2006/08/23}. +% +% \begingroup +% \begin{macrocode} +%<*lang3> +% \end{macrocode} +% \begin{macrocode} +\lstdefinelanguage{CIL}% + {morekeywords=[1]{assembly,beforefieldinit,class,default,cdecl,cil,corflags,% + culture,custom,data,entrypoint,fastcall,field,file,% + hidebysig,hash,il,imagebase,locals,managed,marshall,% + maxstack,mresource,method,module,namespace,publickey,% + stdcall,subsystem,thiscall,unmanaged,vararg,ver,vtfixup,% + % types + bool,char,float32,float64,int,int8,int16,int32,% + int64,method,native,object,string,modopt,modreq,pinned,% + typedref,valuetype,unsigned,void,% + % defining types + abstract,ansi,auto,autochar,beforefieldinit,boxed,class,% + explicit,extends,implements,interface,famandassem,family,% + famorassem,inherits,nested,override,pack,private,property,% + public,rtspecialname,sealed,sequential,serializable,size,% + specialname,static,unicode,% + % postfix + algorithm,alignment,extern,init,from,nometadata,with},% + morekeywords=[2]{add,and,arglist,beq,bge,bgt,ble,blt,bne,br,break,brfalse,% + brtrue,call,calli,ceq,cgt,ckfinite,clt,conv,cpblk,div,% + dup,endfilter,endfinally,initblk,jmp,ldarg,ldarga,ldc,% + ldftn,ldind,ldloc,ldloca,ldnull,leave,localloc,mul,neg,% + nop,not,or,pop,rem,ret,shl,shr,starg,stind,stloc,sub,% + switch,xor,% + % prefix + tail,unaligned,volatile,% + % postfix + un,s,ovf,% + % object + box,callvirt,castclass,cpobj,cctor,ctor,initobj,isinst,% + ldelem,ldelema,ldfld,ldflda,ldlen,ldobj,ldsfld,ldsflda,% + ldstr,ldtoken,ldvirtftn,mkrefany,newarr,newobj,refanytype,% + refanyval,rethrow,sizeof,stelem,stfld,stobj,stsfld,throw,% + unbox},% + sensitive=true,% + morecomment=[l]{//},% + morestring=[b]"% +}[keywords,comments,strings]% +% \end{macrocode} +% \begin{macrocode} +%</lang3> +% \end{macrocode} +% \endgroup +% +% % \subsection{Cobol} % % Keywords are not marked if their names are broken by EOL, for example DEBUG- @@ -958,6 +1045,167 @@ % \endgroup % % +% \subsection{COMMAND.COM Batch Files} +% +% This definition for DOS and Windows batch files is from +% \lstthanks{Stephan Hennig}{-}{2006/10/11}. +% +% \begingroup +% \begin{macrocode} +%<*lang3> +% \end{macrocode} +% \begin{macrocode} +\lst@definelanguage[WinXP]{command.com}% + {morekeywords={assoc,at,attrib,bootcfg,break,cacls,call,cd,chcp,chdir,% + chkdsk,chkntfs,cls,cmd,cmdextversion,color,comp,compact,convert,copy,% + date,defined,del,dir,diskcomp,diskcopy,do,doskey,echo,else,endlocal,% + erase,errorlevel,exist,exit,fc,find,findstr,for,format,ftype,goto,% + graftabl,help,if,in,label,md,mkdir,mode,more,move,not,off,path,% + pause,popd,print,prompt,pushd,rd,recover,ren,rename,replace,rmdir,% + set,setlocal,shift,sort,start,subst,time,title,tree,type,ver,% + verify,vol,xcopy},% + sensitive=false,% + alsoother={@},% + alsoletter={\%~:-/},% + morecomment=[l]{rem},% + morecomment=[l]{reM},% + morecomment=[l]{rEm},% + morecomment=[l]{rEM},% + morecomment=[l]{Rem},% + morecomment=[l]{ReM},% + morecomment=[l]{REm},% + morecomment=[l]{REM},% + morestring=[d]"% +}[keywords,comments,strings]% +% \end{macrocode} +% \begin{macrocode} +%</lang3> +% \end{macrocode} +% \endgroup +% +% +% \subsection{Comsol Multiphysics} +% +% Comsol Multiphysics (Prior to version 3.2 known as Femlab) can be used +% standalone or as an extension to MatLab. This definition is due to +% \lstthanks{Martin~Heller}{-}{2006/05/10}. +% +% Unfortunately, there is a conflict in that Comsol is case-insensitive, +% whereas Matlab is case-sensitive; \textsf{listings} does not +% currently support different case-sensitivities in the same listing. +% +% \begingroup +% \begin{macrocode} +%<*lang3> +% \end{macrocode} +% \begin{macrocode} +\lst@definelanguage{Comsol}% + {morekeywords={% + adaption,arc1,arc2,arrayr,assemble,asseminit,beziercurve2,block2,% + block3,bsplinecurve2,bsplinecurve3,bsplinesurf3,bypassplot,cardg,% + ccoeffgroup,chamfer,checkgeom,circ1,circ2,coeff2cell,comsol,% + cone2,cone3,Contents,createhexes,createprisms,createquads,csgbl2,% + csgbl3,csgcmpbz,csgimplbz,csginitaux,csginitnr,csgproputil,% + csgrbconv,csgunique3,csguniquep,csgversion,csgvvovl,curve2,% + curve3,cylinder2,cylinder3,dat2str,defastget,display,drawgetobj,% + drawreobj,drawsetobj,dst,duplicate,dxflayers,dxfread,dxfwrite,% + econe2,econe3,eigloop,elcconstr,elcplbnd,elcplextr,elcplproj,% + elcplscalar,elempty,elemreobj,eleqc,eleqw,elevate,elgeom,ellip1,% + ellip2,ellipsoid2,ellipsoid3,ellipsoidgen_fl23,elmat,elovar,% + elpconstr,elshape,elvar,elvarm,embed,extrude,face3,faceprim3,% + fastsetop,fem2jxfem,femblocksu,femdiff,femeig,femexport,femgui,% + femimport,femiter,femlab,femlin,femmesh,femmeshexp,femnlin,% + femplot,femsfun,femsim,femsimlowlevel,femsimserver,femsol,% + femsolver,femstate,femstruct,femtime,femwave,festyle,fieldnames,% + fillet,fl1d,fl2d,fl3d,flaction,flafun,flappconvert,flappobj,% + flaxisequal,flbase,flbinary,flc1hs,flc2hs,flcanpnt,flcell2draw,% + flclear,flcolorbar,flcompact,flconeplot,flcontour2mesh,% + flcontour2meshaux,flconvreact,flconvreact1d,flconvreact2d,% + flconvreact3d,flcyl,fldc1hs,fldc2hs,fldegree,fldegreer3,% + fldegreet3,fldimvarsget,fldisp,fldraw2cell,fldrawnow,fldsmhs,% + fldsmsign,flevalmat,flexch,flexchprop,flfastgeom,flform,flgc,% + flgcbo,flgdconv,flgeom2cellstr,flgeomadj,flgeomarcize,flgeomec,% + flgeomed,flgeomepol,flgeomes,flgeomfc,flgeomfd,flgeomfdp,% + flgeomff1,flgeomff2,flgeomfn,flgeomfs,flgeomgetlocalsys,% + flgeominit,flgeominitprop,flgeomitransform,flgeomloft,flgeommesh,% + flgeomnbs,flgeomnes,flgeomnmr,flgeomnv,flgeompsinv,flgeomrmsing,% + flgeomrotp,flgeomsd,flgeomsdim,flgeomse,flgeomsf2,flgeomspm,% + flgeomtransform,flgeomud,flgeomvtx,flgetdraw,flheat,flheat1d,% + flheat2d,flheat3d,flhelmholtz,flhelmholtz1d,flhelmholtz2d,% + flhelmholtz3d,flim2curve,flinterp1,fliscont,flismember,% + flisnumeric,fljaction,fllaplace,fllaplace1d,fllaplace2d,% + fllaplace3d,flload,flloadfl,flloadmatfile,flloadmfile,% + fllobj2cellstr,flmakeevalstr,flmapsoljac,flmat2str,flmatch,% + flmesh2spline,flmesh2splineaux,flml65setup,flngdof,flnull,% + flnullorth,flpde,flpdeac,flpdec,flpdec1d,flpdec2d,flpdec3d,% + flpdedc,flpdedc2d,flpdedc3d,flpdedf,flpdedf1d,flpdedf2d,% + flpdedf3d,flpdees,flpdees2d,flpdees3d,flpdeg,flpdeg1d,flpdeg2d,% + flpdeg3d,flpdeht,flpdeht1d,flpdeht2d,flpdeht3d,flpdems,flpdems2d,% + flpdems3d,flpdens,flpdens2d,flpdens3d,flpdepn,flpdeps,flpdesm3d,% + flpdew,flpdew1d,flpdew2d,flpdew3d,flpdewb,flpdewb1d,flpdewb2d,% + flpdewb3d,flpdewc,flpdewc1d,flpdewc2d,flpdewc3d,flpdewe,% + flpdewe3d,flpdewp,flpdewp2d,flpdewp3d,flplot,flpoisson,% + flpoisson1d,flpoisson2d,flpoisson3d,flpric2,flpric3,flreobj,% + flreport,flresolvepath,flsave,flschrodinger,flschrodinger1d,% + flschrodinger2d,flschrodinger3d,flsde,flsdp,flsdt,flsetalpha,% + flsetdraw,flsmhs,flsmsign,flspnull,fltherm_cond1,fltrg,flversion,% + flversions,flverver,flwave,flwave1d,flwave2d,flwave3d,% + flwriteghist,formstr,gdsread,gencyl2,gencyl3,genextrude,% + genextrudeaux,geom,geom0,geom0get,geom1,geom1get,geom2,geom2get,% + geom3,geom3get,geom3j2m,geom3m2j,geomaddlblmargin,geomanalyze,% + geomarrayr,geomassign,geomcoerce,geomcomp,geomconnect,geomcopy,% + geomcsg,geomdel,geomedit,geomexport,geomfile,geomget,% + geomgetlabels,geomgetwrkpln,geomimport,geominfo,geominfoaux,% + geomlblplot,geomload,geomnumparse,geomobject,geomparse,geomplot,% + geomplot1,geomplot2,geomplot3,geomposition,geomproputil,% + geomreconstruct,geomreobj,geomserver,geomspline,geomsurf,% + geomupdate,get,getfemgeom,getisocurve,getjptr,getmesh,getsdim,% + getvmatrixexch,handlesolnumstr,helix1,helix2,helix3,hexahedron2,% + hexahedron3,histfrommat,idst,igesread,importplotdata,isempty,% + isfield,isfunc,isscript,javaclass,jproputil,jptr2geom,jptrgeom1,% + jptrgeom1_fl23,jptrgeom2,jptrgeom2_fl23,jptrgeom3,jptrgeom3_fl23,% + keiter,line1,line2,loadobj,loft,matlabinterpdata,mesh2geom,% + meshassign,meshcaseadd,meshcasedel,meshcaseutil,meshcheck,% + meshembed,meshenrich,meshenrich1,meshenrich2,meshenrich3,% + meshexport,meshextend,meshextrude,meshget,meshimport,meshinit,% + meshintegrate,meshmap,meshoptim,meshparse,meshplot,meshplot1,% + meshplot2,meshplot3,meshplotproputil,meshpoi,meshproputil,% + meshptplot,meshqual,meshrefine,meshrevolve,meshsmooth,% + meshsmooth2,meshsweep,meshvolume,minus,mirror,mkreflparams,% + mmsolve,modetype,move,moveglobalfields,mphproputil,mtimes,% + multiphysics,mypostinterp,notscript,onlyelsconstr,outassign,% + paramgeom,pde2draw,pde2equ,pde2fem,pde2geom,pdeblxpd,plus,point1,% + point2,point3,poisson,poly1,poly2,postanim,postapplysettings,% + postarrow,postarrowbnd,postcolorbar,postcont,postcontdomind,% + postcoord,postcopyprop,postcrossplot,postdistrprops,posteval,% + postflow,postfnd,postgeomplot,postgetfem,postgetstylecolor,% + postglobaleval,postglobalplot,postgp,postinit,postint,postinterp,% + postiso,postlin,postmakecontcol,postmax,postmaxmin,postmin,% + postmkcontbar,postmknormexpr,postmovie,postnewplot,% + postoldmaxminprops,postpd2pm,postplot,postplotconstants,% + postpm2pd,postprinc,postprincbnd,postprocgui,postproputil,% + postslice,postsurf,posttet,posttitle,print2file,pyramid2,% + pyramid3,rect1,rect2,restorefields,revolve,rmfield,rotate,% + rotmatrix,scale,serialize,set,setmesh,sh2str,sharg_2_5,shbub,% + shdisc,shdiv,shherm,shlag,shvec,simplecoerce,simreobj,slblocks,% + solassign,solid0,solid1,solid2,solid3,solidprim3,solproputil,% + solsize,solveraddcases,sphere2,sphere3,spiceimport,splineaux,% + split,splittoprim,square1,square2,stlread,submode,submodes,% + subsasgn,subsref,tangent,taucs,tetrahedron2,tetrahedron3,% + tobsplines,torus2,torus3,transform,update,updateassoc,% + updateassocinfo,updatefem,updateguistruct,updateobj,vrmlread,% + xmeshinfo,xmeshinit},% + sensitive=false,% + morecomment=[l]\%,% + morestring=[m]'% + }[keywords,comments,strings]% +% \end{macrocode} +% \begin{macrocode} +%</lang3> +% \end{macrocode} +% \endgroup +% +% % \subsection{bash, csh, and sh} % % csh is from \lstthanks{Kai~Below}{below@tu-harburg.de}{1998/09/21}, @@ -1252,32 +1500,35 @@ OUT,INTENT,INTERFACE,IOLENGTH,KIND,LEN,MODULE,NAME,NAMELIST,NMT,% NULLIFY,ONLY,OPERATOR,OPTIONAL,OUT,PAD,POINTER,POSITION,PRIVATE,% PUBLIC,READWRITE,RECURSIVE,RESULT,SELECT,SEQUENCE,SIZE,STAT,% - TARGET,USE,WHERE,WHILE,BLOCKDATA,DOUBLEPRECISION,ELSEIF,% - ENDBLOCKDATA,ENDDO,ENDFILE,ENDFUNCTION,ENDIF,ENDINTERFACE,% + TARGET,USE,WHERE,WHILE,BLOCKDATA,DOUBLEPRECISION,% + ENDBLOCKDATA,ENDFILE,ENDFUNCTION,ENDINTERFACE,% ENDMODULE,ENDPROGRAM,ENDSELECT,ENDSUBROUTINE,ENDTYPE,ENDWHERE,% - GOTO,INOUT,SELECTCASE},% + INOUT,SELECTCASE},% deletecomment=[f],% no fixed comment line: 1998 Magne Rudshaug morecomment=[l]!% }% % \end{macrocode} % As proposed by \lsthelper{J\"orn Wilms}{wilms@rocinante.colorado.edu} % {1997/07/07}{Fortran with \lstsensitivefalse} keywords are \emph{not} case -% sensitive. +% sensitive. Also, note that Fortran 77 (and fixed-format source in later +% versions) allows space in keywords; thus, this list contains some of the +% more common variants (e.g., `GO TO' and `GOTO'). % \begin{macrocode} \lst@definelanguage[77]{Fortran}% {morekeywords={ACCESS,ASSIGN,BACKSPACE,BLANK,BLOCK,CALL,CHARACTER,% CLOSE,COMMON,COMPLEX,CONTINUE,DATA,DIMENSION,DIRECT,DO,DOUBLE,% - ELSE,END,ENTRY,EOF,EQUIVALENCE,ERR,EXIST,EXTERNAL,FILE,FMT,FORM,% - FORMAT,FORMATTED,FUNCTION,GO,TO,IF,IMPLICIT,INQUIRE,INTEGER,% - INTRINSIC,IOSTAT,LOGICAL,NAMED,NEXTREC,NUMBER,OPEN,OPENED,% - PARAMETER,PAUSE,PRECISION,PRINT,PROGRAM,READ,REAL,REC,RECL,% - RETURN,REWIND,SEQUENTIAL,STATUS,STOP,SUBROUTINE,THEN,TYPE,% - UNFORMATTED,UNIT,WRITE,SAVE},% - sensitive=f,%% not Fortran standard %% + ELSE,ELSEIF,END,ENDIF,ENDDO,ENTRY,EOF,EQUIVALENCE,ERR,EXIST,EXTERNAL,% + FILE,FMT,FORM,FORMAT,FORMATTED,FUNCTION,GO,TO,GOTO,IF,IMPLICIT,% + INQUIRE,INTEGER,INTRINSIC,IOSTAT,LOGICAL,NAMED,NEXTREC,NUMBER,% + OPEN,OPENED,PARAMETER,PAUSE,PRECISION,PRINT,PROGRAM,READ,REAL,% + REC,RECL,RETURN,REWIND,SEQUENTIAL,STATUS,STOP,SUBROUTINE,THEN,% + TYPE,UNFORMATTED,UNIT,WRITE,SAVE},% + sensitive=f,%% not Fortran-77 standard, but allowed in Fortran-95 %% morecomment=[f]*,% morecomment=[f]C,% morecomment=[f]c,% - morestring=[d]"% + morestring=[d]",%% not Fortran-77 standard, but allowed in Fortran-95 %% + morestring=[d]'% }[keywords,comments,strings]% % \end{macrocode} % \begin{macrocode} @@ -1802,6 +2053,204 @@ % \endgroup % % +% \subsection{Lingo} +% +% Thanks to \lstthanks{Mark Schade}{-}{2006/07/26} for this language definition. +% \begingroup +% \begin{macrocode} +%<*lang3> +% \end{macrocode} +% \begin{macrocode} +\lst@definelanguage{Lingo} + {morekeywords={abort,after,and,before,do,down,halt,me,new,not,of,% + on,or,otherwise,pass,put,result,return,set,tell,the,then,to,with,% + repeat,while,case,if,else,true,false,global,property,\_global,\_key,% + \_mouse,\_movie,\_player,\_sound,\_system,abbr,abbrev,abbreviated,abs,% + actionsenabled,activateapplication,activatewindow,active3drenderer,% + activecastlib,activewindow,actorlist,add,addat,addbackdrop,addcamera,% + addchild,addmodifier,addoverlay,addprop,addtoworld,addvertex,alert,% + alerthook,alignment,allowcustomcaching,allowgraphicmenu,allowsavelocal,% + allowtransportcontrol,allowvolumecontrol,allowzooming,alphathreshold,% + ambient,ambientcolor,ancestor,angle,anglebetween,animationenabled,% + antialias,antialiasthreshold,append,applicationname,applicationpath,% + appminimize,atan,attenuation,attributevalue,auto,autoblend,automask,% + autotab,axisangle,back,backcolor,backdrop,backgroundcolor,backspace,% + beep,beepon,beginrecording,beginsprite,beveldepth,beveltype,bgcolor,% + bias,bitand,bitmap,bitmapsizes,bitnot,bitor,bitrate,bitspersample,% + bitxor,blend,blendconstant,blendconstantlist,blendfactor,blendfunction,% + blendfunctionlist,blendlevel,blendrange,blendsource,blendsourcelist,% + blendtime,bone,bonesplayer,border,both,bottom,bottomcap,bottomradius,% + bottomspacing,boundary,boundingsphere,box,boxdropshadow,boxtype,% + breakconnection,breakloop,brightness,broadcastprops,browsername,% + buffersize,build,buttonsenabled,buttonstyle,buttontype,bytesstreamed,% + boolean,cachedocverify,cachesize,call,callancestor,camera,cameracount,% + cameraposition,camerarotation,cancelidleload,castlib,castlibnum,% + castmemberlist,center,centerregpoint,centerstage,changearea,channelcount,% + char,characterset,charpostoloc,chars,charspacing,chartonum,% + checkboxaccess,checkboxtype,checkmark,checknetmessages,child,chunksize,% + clearatrender,clearcache,clearerror,clearframe,clearglobals,clearvalue,% + clickloc,clickmode,clickon,clone,clonedeep,clonemodelfromcastmember,% + clonemotionfromcastmember,close,closed,closewindow,closexlib,collision,% + collisiondata,collisionnormal,color,world,colorbuffer,colorbufferdepth,% + colordepth,colorlist,colorrange,colors,colorsteps,commanddown,comments,% + compressed,connecttonetserver,constrainh,constraint,constrainv,,% + continue,controldown,controller,copypixels,copyrightinfo,copyto,% + copytoclipboard,cos,count,cpuhogticks,creaseangle,creases,[contains],% + createfolder,createmask,creatematte,creationdate,creator,crop,cross,% + crossproduct,cuepassed,cuepointnames,cuepointtimes,currentloopstate,% + currentspritenum,currenttime,cursor,cursorsize,curve,cylinder,ate,day,% + deactivateapplication,deactivatewindow,debug,debugplaybackenabled,% + decaymode,defaultrect,defaultrectmode,delay,delete,deleteall,deleteat,% + deletecamera,deletefolder,deleteframe,deletegroup,deletelight,% + deletemodel,deletemodelresource,deletemotion,deleteone,deleteprop,% + deleteshader,deletetexture,deletevertex,density,depth,depthbufferdepth,% + desktoprectlist,diffuse,diffusecolor,diffuselightmap,% + digitalvideotimescale,digitalvideotype,direction,directionalcolor,% + directionalpreset,directtostage,disableimagingtransformation,displayface,% + displaymode,distanceto,distribution,dither,done,doneparsing,dot,% + dotproduct,doubleclick,downloadnetthing,drag,draw,drawrect,dropshadow,% + duplicate,duplicateframe,duration,editable,editshortcutsenabled,% + elapsedtime,emissive,emitter,empty,emulatemultibuttonmouse,enabled,% + enablehotspot,end,endangle,endcolor,endframe,endrecording,endsprite,% + endtime,enter,enterframe,environment,erase,error,eventpassmode,% + exchange,exists,exit,exitframe,exitlock,exp,externalevent,% + externalparamcount,externalparamname,externalparamvalue,extractalpha,% + extrude3d,face,fadein,fadeout,fadeto,far,field,fieldofview,filename,% + fill,fillcolor,fillcycles,filldirection,filled,fillmode,filloffset,% + fillscale,findempty,findlabel,findpos,findposnear,finishidleload,% + firstindent,fixedlinespace,fixedrate,fixstagesize,flashrect,flashtostage,% + flat,fliph,flipv,float,floatp,floatprecision,flush,flushinputevents,% + fog,folderchar,font,fontsize,fontstyle,forecolor,forget,frame,% + framecount,framelabel,framepalette,framerate,frameready,framescript,% + framesound1,framesound2,framestohms,frametempo,frametransition,freeblock,% + freebytes,fromcastmember,fromimageobject,front,frontwindow,% + generatenormals,getaprop,getat,getbehaviordescription,getbehaviortooltip,% + getboneid,geterror,geterrorstring,gethardwareinfo,gethotspotrect,getlast,% + getlatestnetid,getnetaddresscookie,getneterrorstring,getnetmessage,% + getnetoutgoingbytes,getnettext,getnormalized,getnthfilenameinfolder,% + getnumberwaitingnetmessages,getone,getpeerconnectionlist,getpixel,% + getplaylist,getpos,getpref,getprop,getpropat,getpropertydescriptionlist,% + getrendererservices,getstreamstatus,gettemppath,getworldtransform,globals,% + glossmap,go,gotoframe,gotonetmovie,gotonetpage,gradienttype,gravity,% + group,handler,handlers,height,heightvertices,high,highlightpercentage,% + highlightstrength,hilite,hither,hittest,hmstoframes,hold,hotspot,html,% + hyperlink,hyperlinkclicked,hyperlinkrange,hyperlinks,hyperlinkstate,% + id3tags,identity,idle,idlehandlerperiod,idleloaddone,idleloadmode,% + idleloadperiod,idleloadtag,idlereadchunksize,ilk,image,imagecompression,% + imageenabled,imagequality,immovable,importfileinto,inflate,ink,inker,% + inlineimeenabled,insertbackdrop,insertframe,insertoverlay,inside,% + installmenu,instance,integer,integerp,interface,interpolate,% + interpolateto,intersect,index,interval,inverse,invert,invertmask,% + isbusy,isinworld,isoktoattach,ispastcuepoint,item,itemdelimiter,kerning,% + kerningthreshold,key,keyboardfocussprite,keycode,keydown,keydownscript,% + keyframeplayer,keypressed,keyup,keyupscript,label,labellist,last,% + lastchannel,lastclick,lastevent,lastframe,lastkey,lastroll,left,% + leftindent,length,lengthvertices,level,lifetime,light,line,linearlist,% + linecolor,linecount,linedirection,lineheight,lineoffset,linepostolocv,% + linesize,linkas,linked,list,listp,loaded,loadfile,loc,loch,locked,% + locktranslation,loctocharpos,locv,locvtolinepos,locz,lod,log,long,% + loop,loopcount,loopendtime,loopsremaining,loopstarttime,machinetype,% + magnitude,map,mapImageToStage,mapmembertostage,mapstagetomember,margin,% + marker,markerlist,mask,max,maxinteger,maxspeed,mci,media,mediaready,% + member,membernum,members,memorysize,menu,mesh,meshdeform,milliseconds,% + min,minspeed,modal,mode,model,modela,modelb,modelresource,% + modelsunderloc,modelsunderray,modelunderloc,modified,modifiedby,% + modifieddate,modifier,modifiers,month,mostrecentcuepoint,motion,% + mousechar,mousedown,mousedownscript,mouseenter,mouseh,mouseitem,% + mouseleave,mouselevel,mouseline,mouseloc,mousemember,mouseoverbutton,% + mouseup,mouseupoutside,mouseupscript,mousev,mousewithin,mouseword,move,% + moveablesprite,movetoback,movetofront,movevertex,movevertexhandle,% + movewindow,movie,movieaboutinfo,moviecopyrightinfo,moviefilefreesize,% + moviefilesize,moviefileversion,movieimagecompression,movieimagequality,% + moviename,moviepath,movierate,movietime,moviextralist,mpeglayer,% + multiply,multisound,name,near,nearfiltering,neighbor,netabort,netdone,% + neterror,netlastmoddate,netmime,netpresent,netstatus,nettextresult,% + netthrottleticks,newcamera,newcurve,newgroup,newlight,newmesh,newmodel,% + newmodelresource,newmotion,newshader,newtexture,next,none,normalize,% + normallist,normals,nothing,notify,nudge,number,numchannels,% + numparticles,numsegments,numtochar,objectp,offset,open,openresfile,% + openwindow,openxlib,optiondown,organizationname,originalfont,originh,% + originmode,originpoint,originv,orthoheight,overlay,pageheight,palette,% + palettemapping,paletteref,paletteindex,pan,paragraph,param,paramcount,% + parent,parsestring,particle,pasteclipboardinto,path,pathname,% + pathstrength,pattern,pause,pausedatstart,pausestate,percentplayed,% + percentstreamed,period,perpendicularto,persistent,pi,picture,picturep,% + plane,platform,play,playbackmode,playfile,playing,playlist,playnext,% + playrate,point,pointat,pointatorientation,pointinhyperlink,% + pointofcontact,pointtochar,pointtoitem,pointtoline,pointtoparagraph,% + pointtoword,position,positionreset,posterframe,postnettext,power,% + preferred3drenderer,preload,preloadbuffer,preloadeventabort,preloadmember,% + preloadmode,preloadmovie,preloadnetthing,preloadram,preloadtime,% + premultiply,prepareframe,preparemovie,prerotate,prescale,pretranslate,% + previous,primitives,printfrom,productversion,projection,projectionangle,% + propList,proxyserver,pttohotspotid,puppet,puppetpalette,puppetsound,% + puppetsprite,puppettempo,puppettransition,purgepriority,% + qtregisteraccesskey,qtunregisteraccesskey,quad,quality,queue,quit,quote,% + radius,ramneeded,random,randomseed,randomvector,rateshift,rawnew,read,% + readvalue,recordfont,rect,ref,reflectionmap,reflectivity,region,% + registerforevent,registerscript,regpoint,regpointvertex,removebackdrop,% + removefromworld,removelast,removemodifier,removeoverlay,rename,renderer,% + rendererdevicelist,renderformat,renderstyle,resetworld,resizewindow,% + resolution,resolve,resolvea,resolveb,resource,restart,resume,% + reverttoworlddefaults,rewind,rgb,rgba4444,rgba5550,rgba5551,rgba5650,% + rgba8880,rgba8888,right,rightindent,rightmousedown,rightmouseup,% + rollover,romanlingo,rootlock,rootnode,rotate,rotation,rotationreset,% + rtf,runmode,runpropertydialog,safeplayer,samplecount,samplerate,% + samplesize,save,savedlocal,savemovie,scale,scalemode,score,scorecolor,% + scoreselection,script,scriptexecutionstyle,scriptinstancelist,scriptlist,% + scriptnum,scriptsenabled,scripttext,scripttype,scrollbyline,scrollbypage,% + scrolltop,sds,searchcurrentfolder,searchpath,searchpaths,seconds,% + selectedtext,selection,selend,selstart,sendallsprites,sendevent,% + sendnetmessage,sendsprite,serialnumber,setalpha,setaprop,setat,% + setcollisioncallback,setflashproperty,setnetbufferlimits,% + setnetmessagehandler,setpixel,setplaylist,setpref,setprop,setscriptlist,% + settrackenabled,setvariable,shader,shaderlist,shadowpercentage,% + shadowstrength,shapetype,shiftdown,shininess,shockwave3d,short,% + showglobals,showlocals,showprops,showresfile,showxlib,shutdown,% + silhouettes,sin,size,sizerange,skew,sleep,smoothness,sort,sound,% + soundbusy,soundchannel,sounddevice,sounddevicelist,soundenabled,% + soundkeepdevice,soundlevel,soundmixmedia,source,sourcerect,space,% + specular,specularcolor,specularlightmap,sphere,spotangle,spotdecay,% + sprite,spritenum,spritespacetoworldspace,sqrt,stage,stagebottom,% + stagecolor,stageleft,stageright,stagetoflash,stagetop,standard,% + startangle,startframe,startmovie,starttime,starttimer,state,static,% + status,stepframe,stilldown,stop,stopevent,stopmovie,stoptime,stream,% + streammode,streamname,streamsize,streamstatus,string,stringp,% + strokecolor,strokewidth,style,subdivision,sweep,swing,switchcolordepth,% + symbol,symbolp,systemdate,tab,tabcount,tabs,tan,target,% + tellstreamstatus,tension,text,texture,texturecoordinatelist,% + texturecoordinates,texturelayer,texturelist,texturemember,texturemode,% + texturemodelist,texturerenderformat,texturerepeat,texturerepeatlist,% + texturetransform,texturetransformlist,texturetype,thumbnail,ticks,tilt,% + time,timeout,timeouthandler,timeoutkeydown,timeoutlapsed,timeoutlength,% + timeoutlist,timeoutmouse,timeoutplay,timeoutscript,timer,timescale,% + title,titlevisible,toon,top,topcap,topradius,topspacing,trace,% + traceload,tracelogfile,trackcount,trackenabled,tracknextkeytime,% + tracknextsampletime,trackpreviouskeytime,trackprevioussampletime,% + trackstarttime,trackstoptime,tracktext,tracktype,trails,transform,% + transitiontype,translate,triggercallback,trimwhitespace,tunneldepth,% + tweened,tweenmode,type,[transparent],union,unload,unloadmember,% + unloadmovie,unregisterallevents,update,updateframe,updatelock,% + updatemovieenabled,updatestage,url,usealpha,usediffusewithtexture,% + usefastquads,usehypertextstyles,uselineoffset,userdata,username,value,% + vector,version,vertex,vertexlist,vertices,video,videoforwindowspresent,% + viewh,viewpoint,viewscale,viewv,visibility,visible,void,voidp,volume,% + volumeinfo,wait,waitfornetconnection,warpmode,width,widthvertices,wind,% + window,windowlist,windowpresent,windowtype,word,wordwrap,world,% + worldposition,worldspacetospritespace,worldtransform,wraptransform,% + wraptransformlist,write,writevalue,,xaxis,xtra,xtralist,xtras,,yaxis,% + year,yon,zaxis,zoombox,zoomwindow,repeat,Conditional,Boolean,TypeDef,% + Statement,Operator,String,Comment,Identifier,Special,x,y,z} + sensitive=false, + morecomment=[l]{--}, + morestring=[b]", + }[keywords,comments,strings]% +% \begin{macrocode} +%</lang3> +% \end{macrocode} +% \endgroup +% +% % \subsection{Lisp, AutoLisp} % % Most data are from @@ -2169,12 +2618,329 @@ % \subsection{Mathematica} % % \lstthanks{Michael Wiese}{wiese@itwm.uni-kl.de}{1999/02/25} typed in all the -% keywords! +% keywords for the 1.0 and 3.0 versions. +% \lstthanks{Oliver~Ruebenkoenig}{-}{2006/07/17} wrote a script to generate +% the lists for the 5.2 version. % \begingroup % \begin{macrocode} %<*lang1> % \end{macrocode} % \begin{macrocode} +\lst@definelanguage[5.2]{Mathematica}[3.0]{Mathematica}%% + {morekeywords={Above,AbsoluteOptions,AbsoluteTiming,AccountingForm,% + AccuracyGoal,Active,ActiveItem,AddOnHelpPath,% + AdjustmentBox,AdjustmentBoxOptions,After,AiryAiPrime,% + AlgebraicRulesData,Algebraics,Alias,AlignmentMarker,% + AllowInlineCells,AllowScriptLevelChange,Analytic,AnimationCycleOffset,% + AnimationCycleRepetitions,AnimationDirection,AnimationDisplayTime,ApartSquareFree,% + AppellF1,ArgumentCountQ,ArrayDepth,ArrayPlot,% + ArrayQ,ArrayRules,AspectRatioFixed,Assuming,% + Assumptions,AutoDelete,AutoEvaluateEvents,AutoGeneratedPackage,% + AutoIndent,AutoIndentSpacings,AutoItalicWords,AutoloadPath,% + AutoOpenNotebooks,AutoOpenPalettes,AutoScroll,AutoSpacing,% + AutoStyleOptions,Axis,BackgroundTasksSettings,Backsubstitution,% + Backward,Baseline,Before,BeginDialogPacket,% + BeginFrontEndInteractionPacket,Below,BezoutMatrix,BinaryFormat,% + BinaryGet,BinaryRead,BinaryReadList,BinaryWrite,% + BitAnd,BitNot,BitOr,BitXor,% + Black,BlankForm,Blue,Boole,% + Booleans,Bottom,Bounds,Box,% + BoxBaselineShift,BoxData,BoxDimensions,BoxFormFormatTypes,% + BoxFrame,BoxMargins,BoxRegion,Brown,% + Buchberger,Button,ButtonBox,ButtonBoxOptions,% + ButtonCell,ButtonContents,ButtonData,ButtonEvaluator,% + ButtonExpandable,ButtonFrame,ButtonFunction,ButtonMargins,% + ButtonMinHeight,ButtonNote,ButtonNotebook,ButtonSource,% + ButtonStyle,ButtonStyleMenuListing,ByteOrdering,CallPacket,% + CarmichaelLambda,Cell,CellAutoOverwrite,CellBaseline,% + CellBoundingBox,CellBracketOptions,CellContents,CellDingbat,% + CellEditDuplicate,CellElementsBoundingBox,CellElementSpacings,CellEvaluationDuplicate,% + CellFrame,CellFrameColor,CellFrameLabelMargins,CellFrameLabels,% + CellFrameMargins,CellGroup,CellGroupData,CellGrouping,% + CellGroupingRules,CellHorizontalScrolling,CellLabel,CellLabelAutoDelete,% + CellLabelMargins,CellLabelPositioning,CellMargins,CellObject,% + CellOpen,CellPasswords,CellPrint,CellSize,% + CellStyle,CellTags,CellularAutomaton,Center,% + CharacterEncoding,CharacterEncodingsPath,CharacteristicPolynomial,CharacterRange,% + CheckAll,CholeskyDecomposition,Clip,ClipboardNotebook,% + Closed,ClosingAutoSave,CoefficientArrays,CoefficientDomain,% + CofactorExpansion,ColonForm,ColorFunctionScaling,ColorRules,% + ColorSelectorSettings,Column,ColumnAlignments,ColumnLines,% + ColumnsEqual,ColumnSpacings,ColumnWidths,CommonDefaultFormatTypes,% + CompileOptimizations,CompletionsListPacket,Complexes,ComplexityFunction,% + Compose,ComposeSeries,ConfigurationPath,ConjugateTranspose,% + Connect,ConsoleMessage,ConsoleMessagePacket,ConsolePrint,% + ContentsBoundingBox,ContextToFileName,ContinuedFraction,ConversionOptions,% + ConversionRules,ConvertToBitmapPacket,ConvertToPostScript,ConvertToPostScriptPacket,% + Copyable,CoshIntegral,CounterAssignments,CounterBox,% + CounterBoxOptions,CounterEvaluator,CounterFunction,CounterIncrements,% + CounterStyle,CounterStyleMenuListing,CreatePalettePacket,Cross,% + CurrentlySpeakingPacket,Cyan,CylindricalDecomposition,DampingFactor,% + DataRange,Debug,DebugTag,Decimal,% + DedekindEta,DefaultDuplicateCellStyle,DefaultFontProperties,DefaultFormatType,% + DefaultFormatTypeForStyle,DefaultInlineFormatType,DefaultInputFormatType, + DefaultNaturalLanguage,% + DefaultNewCellStyle,DefaultNewInlineCellStyle,DefaultNotebook,DefaultOutputFormatType,% + DefaultStyleDefinitions,DefaultTextFormatType,DefaultTextInlineFormatType,DefaultValues,% + DefineExternal,DegreeLexicographic,DegreeReverseLexicographic,Deletable,% + DeleteContents,DeletionWarning,DelimiterFlashTime,DelimiterMatching,% + Delimiters,DependentVariables,DiacriticalPositioning,DialogLevel,% + DifferenceOrder,DigitCharacter,DigitCount,DiracDelta,% + Direction,DirectoryName,DisableConsolePrintPacket,DiscreteDelta,% + DisplayAnimation,DisplayEndPacket,DisplayFlushImagePacket,DisplayForm,% + DisplayPacket,DisplayRules,DisplaySetSizePacket,DisplayString,% + DivisionFreeRowReduction,DOSTextFormat,DoubleExponential,DoublyInfinite,% + Down,DragAndDrop,DrawHighlighted,DualLinearProgramming,% + DumpGet,DumpSave,Edit,Editable,% + EditButtonSettings,EditCellTagsSettings,EditDefinition,EditIn,% + Element,EliminationOrder,EllipticExpPrime,EllipticNomeQ,% + EllipticReducedHalfPeriods,EllipticThetaPrime,Empty,EnableConsolePrintPacket,% + Encoding,EndAdd,EndDialogPacket,EndFrontEndInteractionPacket,% + EndOfLine,EndOfString,Enter,EnterExpressionPacket,% + EnterTextPacket,EqualColumns,EqualRows,EquatedTo,% + Erfi,ErrorBox,ErrorBoxOptions,ErrorNorm,% + ErrorPacket,ErrorsDialogSettings,Evaluatable,EvaluatePacket,% + EvaluationCell,EvaluationCompletionAction,EvaluationMonitor,EvaluationNotebook,% + Evaluator,EvaluatorNames,EventEvaluator,ExactNumberQ,% + ExactRootIsolation,Except,ExcludedForms,Exists,% + ExitDialog,ExponentPosition,ExponentStep,Export,% + ExportAutoReplacements,ExportPacket,ExportString,ExpressionPacket,% + ExpToTrig,Extension,ExternalCall,ExternalDataCharacterEncoding,% + Extract,Fail,FEDisableConsolePrintPacket,FEEnableConsolePrintPacket,% + Fibonacci,File,FileFormat,FileInformation,% + FileName,FileNameDialogSettings,FindFit,FindInstance,% + FindMaximum,FindSettings,FitAll,FlushPrintOutputPacket,% + Font,FontColor,FontFamily,FontName,% + FontPostScriptName,FontProperties,FontReencoding,FontSize,% + FontSlant,FontSubstitutions,FontTracking,FontVariations,% + FontWeight,ForAll,FormatRules,FormatTypeAutoConvert,% + FormatValues,FormBox,FormBoxOptions,Forward,% + ForwardBackward,FourierCosTransform,FourierParameters,FourierSinTransform,% + FourierTransform,FractionalPart,FractionBox,FractionBoxOptions,% + FractionLine,FrameBox,FrameBoxOptions,FresnelC,% + FresnelS,FromContinuedFraction,FromDigits,FrontEndExecute,% + FrontEndObject,FrontEndStackSize,FrontEndToken,FrontEndTokenExecute,% + FrontEndVersion,Full,FullAxes,FullSimplify,% + FunctionExpand,FunctionInterpolation,GaussKronrod,GaussPoints,% + GenerateBitmapCaches,GenerateConditions,GeneratedCell,GeneratedParameters,% + Generic,GetBoundingBoxSizePacket,GetContext,GetFileName,% + GetFrontEndOptionsDataPacket,GetLinebreakInformationPacket,% + GetMenusPacket,GetPageBreakInformationPacket,% + Glaisher,GlobalPreferences,GlobalSession,Gradient,% + GraphicsData,GraphicsGrouping,Gray,Green,% + Grid,GridBaseline,GridBox,GridBoxOptions,% + GridCreationSettings,GridDefaultElement,GridFrame,GridFrameMargins,% + GroupPageBreakWithin,HarmonicNumber,Hash,HashTable,% + HeadCompose,HelpBrowserLookup,HelpBrowserNotebook,HelpBrowserSettings,% + HessenbergDecomposition,Hessian,HoldAllComplete,HoldComplete,% + HoldPattern,Horizontal,HorizontalForm,HorizontalScrollPosition,% + HTMLSave,Hypergeometric0F1Regularized,Hypergeometric1F1Regularized,% + Hypergeometric2F1Regularized,% + HypergeometricPFQ,HypergeometricPFQRegularized,HyperlinkCreationSettings,Hyphenation,% + HyphenationOptions,IgnoreCase,ImageCache,ImageCacheValid,% + ImageMargins,ImageOffset,ImageRangeCache,ImageRegion,% + ImageResolution,ImageRotated,ImageSize,Import,% + ImportAutoReplacements,ImportString,IncludeFileExtension,IncludeSingularTerm,% + IndentingNewlineSpacings,IndentMaxFraction,IndexCreationOptions,Inequality,% + InexactNumberQ,InexactNumbers,Inherited,InitializationCell,% + InitializationCellEvaluation,InitializationCellWarning,% + InlineCounterAssignments,InlineCounterIncrements,% + InlineRules,InputAliases,InputAutoFormat,InputAutoReplacements,% + InputGrouping,InputNamePacket,InputNotebook,InputPacket,% + InputSettings,InputStringPacket,InputToBoxFormPacket,InputToInputForm,% + InputToStandardForm,InsertionPointObject,IntegerExponent,IntegerPart,% + Integers,Interactive,Interlaced,InterpolationOrder,% + InterpolationPoints,InterpolationPrecision,InterpretationBox,% + InterpretationBoxOptions,% + InterpretTemplate,InterruptSettings,Interval,IntervalIntersection,% + IntervalMemberQ,IntervalUnion,InverseBetaRegularized,InverseEllipticNomeQ,% + InverseErf,InverseErfc,InverseFourierCosTransform, + InverseFourierSinTransform,% + InverseFourierTransform,InverseGammaRegularized,InverseJacobiCD,% + InverseJacobiCN,% + InverseJacobiCS,InverseJacobiDC,InverseJacobiDN,InverseJacobiDS,% + InverseJacobiNC,InverseJacobiND,InverseJacobiNS,InverseJacobiSC,% + InverseJacobiSD,InverseLaplaceTransform,InverseWeierstrassP,InverseZTransform,% + Jacobian,JacobiCD,JacobiCN,JacobiCS,% + JacobiDC,JacobiDN,JacobiDS,JacobiNC,% + JacobiND,JacobiNS,JacobiSC,JacobiSD,% + JordanDecomposition,K,Khinchin,KleinInvariantJ,% + KroneckerDelta,Language,LanguageCategory,LaplaceTransform,% + Larger,Launch,LayoutInformation,Left,% + LetterCharacter,Lexicographic,LicenseID,LimitsPositioning,% + LimitsPositioningTokens,LinearSolveFunction,LinebreakAdjustments,LineBreakWithin,% + LineForm,LineIndent,LineSpacing,LineWrapParts,% + LinkActivate,LinkClose,LinkConnect,LinkConnectedQ,% + LinkCreate,LinkError,LinkFlush,LinkHost,% + LinkInterrupt,LinkLaunch,LinkMode,LinkObject,% + LinkOpen,LinkOptions,LinkPatterns,LinkProtocol,% + LinkRead,LinkReadHeld,LinkReadyQ,Links,% + LinkWrite,LinkWriteHeld,ListConvolve,ListCorrelate,% + Listen,ListInterpolation,ListQ,LiteralSearch,% + LongestMatch,LongForm,Loopback,LUBackSubstitution,% + LUDecomposition,MachineID,MachineName,MachinePrecision,% + MacintoshSystemPageSetup,Magenta,Magnification,MakeBoxes,% + MakeExpression,MakeRules,Manual,MatchLocalNameQ,% + MathematicaNotation,MathieuC,MathieuCharacteristicA,MathieuCharacteristicB,% + MathieuCharacteristicExponent,MathieuCPrime,MathieuS,MathieuSPrime,% + MathMLForm,MathMLText,MatrixRank,Maximize,% + MaxIterations,MaxPlotPoints,MaxPoints,MaxRecursion,% + MaxStepFraction,MaxSteps,MaxStepSize,Mean,% + Median,MeijerG,MenuPacket,MessageOptions,% + MessagePacket,MessagesNotebook,MetaCharacters,Method,% + MethodOptions,Minimize,MinRecursion,MinSize,% + Mode,ModularLambda,MonomialOrder,MonteCarlo,% + Most,MousePointerNote,MultiDimensional,MultilaunchWarning,% + MultilineFunction,MultiplicativeOrder,Multiplicity,Nand,% + NeedCurrentFrontEndPackagePacket,NeedCurrentFrontEndSymbolsPacket,% + NestedScriptRules,NestWhile,% + NestWhileList,NevilleThetaC,NevilleThetaD,NevilleThetaN,% + NevilleThetaS,Newton,Next,NHoldAll,% + NHoldFirst,NHoldRest,NMaximize,NMinimize,% + NonAssociative,NonPositive,Nor,Norm,% + NormalGrouping,NormalSelection,NormFunction,Notebook,% + NotebookApply,NotebookAutoSave,NotebookClose,NotebookConvert,% + NotebookConvertSettings,NotebookCreate,NotebookCreateReturnObject,NotebookDefault,% + NotebookDelete,NotebookDirectory,NotebookFind,NotebookFindReturnObject,% + NotebookGet,NotebookGetLayoutInformationPacket,NotebookGetMisspellingsPacket,% + NotebookInformation,% + NotebookLocate,NotebookObject,NotebookOpen,NotebookOpenReturnObject,% + NotebookPath,NotebookPrint,NotebookPut,NotebookPutReturnObject,% + NotebookRead,NotebookResetGeneratedCells,Notebooks,NotebookSave,% + NotebookSaveAs,NotebookSelection,NotebookSetupLayoutInformationPacket,% + NotebooksMenu,% + NotebookWrite,NotElement,NProductExtraFactors,NProductFactors,% + NRoots,NSumExtraTerms,NSumTerms,NumberMarks,% + NumberMultiplier,NumberString,NumericFunction,NumericQ,% + NValues,Offset,OLEData,OneStepRowReduction,% + Open,OpenFunctionInspectorPacket,OpenSpecialOptions,OptimizationLevel,% + OptionInspectorSettings,OptionQ,OptionsPacket,OptionValueBox,% + OptionValueBoxOptions,Orange,Ordering,Oscillatory,% + OutputAutoOverwrite,OutputFormData,OutputGrouping,OutputMathEditExpression,% + OutputNamePacket,OutputToOutputForm,OutputToStandardForm,Over,% + Overflow,Overlaps,Overscript,OverscriptBox,% + OverscriptBoxOptions,OwnValues,PadLeft,PadRight,% + PageBreakAbove,PageBreakBelow,PageBreakWithin,PageFooterLines,% + PageFooters,PageHeaderLines,PageHeaders,PalettePath,% + PaperWidth,ParagraphIndent,ParagraphSpacing,ParameterVariables,% + ParentConnect,ParentForm,Parenthesize,PasteBoxFormInlineCells,% + Path,PatternTest,PeriodicInterpolation,Pick,% + Piecewise,PiecewiseExpand,Pink,Pivoting,% + PixelConstrained,Placeholder,Plain,Plot3Matrix,% + PointForm,PolynomialForm,PolynomialReduce,Polynomials,% + PowerModList,Precedence,PreferencesPath,PreserveStyleSheet,% + Previous,PrimaryPlaceholder,Primes,PrincipalValue,% + PrintAction,PrintingCopies,PrintingOptions,PrintingPageRange,% + PrintingStartingPageNumber,PrintingStyleEnvironment,PrintPrecision,% + PrivateCellOptions,% + PrivateEvaluationOptions,PrivateFontOptions,PrivateNotebookOptions,PrivatePaths,% + ProductLog,PromptForm,Purple,Quantile,% + QuasiMonteCarlo,QuasiNewton,RadicalBox,RadicalBoxOptions,% + RandomSeed,RationalFunctions,Rationals,RawData,% + RawMedium,RealBlockForm,Reals,Reap,% + Red,Refine,Refresh,RegularExpression,% + Reinstall,Release,Removed,RenderingOptions,% + RepeatedString,ReplaceList,Rescale,ResetMenusPacket,% + Resolve,ResumePacket,ReturnExpressionPacket,ReturnInputFormPacket,% + ReturnPacket,ReturnTextPacket,Right,Root,% + RootReduce,RootSum,Row,RowAlignments,% + RowBox,RowLines,RowMinHeight,RowsEqual,% + RowSpacings,RSolve,RuleCondition,RuleForm,% + RulerUnits,Saveable,SaveAutoDelete,ScreenRectangle,% + ScreenStyleEnvironment,ScriptBaselineShifts,ScriptLevel,ScriptMinSize,% + ScriptRules,ScriptSizeMultipliers,ScrollingOptions,ScrollPosition,% + Second,SectionGrouping,Selectable,SelectedNotebook,% + Selection,SelectionAnimate,SelectionCell,SelectionCellCreateCell,% + SelectionCellDefaultStyle,SelectionCellParentStyle,SelectionCreateCell,% + SelectionDuplicateCell,% + SelectionEvaluate,SelectionEvaluateCreateCell,SelectionMove,SelectionSetStyle,% + SelectionStrategy,SendFontInformationToKernel,SequenceHold,SequenceLimit,% + SeriesCoefficient,SetBoxFormNamesPacket,SetEvaluationNotebook,% + SetFileLoadingContext,% + SetNotebookStatusLine,SetOptionsPacket,SetSelectedNotebook,% + SetSpeechParametersPacket,% + SetValue,ShortestMatch,ShowAutoStyles,ShowCellBracket,% + ShowCellLabel,ShowCellTags,ShowClosedCellArea,ShowContents,% + ShowCursorTracker,ShowGroupOpenCloseIcon,ShowPageBreaks,ShowSelection,% + ShowShortBoxForm,ShowSpecialCharacters,ShowStringCharacters,% + ShrinkWrapBoundingBox,% + SingleLetterItalics,SingularityDepth,SingularValueDecomposition,% + SingularValueList,% + SinhIntegral,Smaller,Socket,SolveDelayed,% + SoundAndGraphics,Sow,Space,SpaceForm,% + SpanAdjustments,SpanCharacterRounding,SpanLineThickness,SpanMaxSize,% + SpanMinSize,SpanningCharacters,SpanSymmetric,Sparse,% + SparseArray,SpeakTextPacket,SpellingDictionaries,SpellingDictionariesPath,% + SpellingOptions,SpellingSuggestionsPacket,Spherical,Split,% + SqrtBox,SqrtBoxOptions,StandardDeviation,StandardForm,% + StartingStepSize,StartOfLine,StartOfString,StartupSound,% + StepMonitor,StieltjesGamma,StoppingTest,StringCases,% + StringCount,StringExpression,StringFreeQ,StringQ,% + StringReplaceList,StringReplacePart,StringSplit,StripBoxes,% + StripWrapperBoxes,StructuredSelection,StruveH,StruveL,% + StyleBox,StyleBoxAutoDelete,StyleBoxOptions,StyleData,% + StyleDefinitions,StyleForm,StyleMenuListing,StyleNameDialogSettings,% + StylePrint,StyleSheetPath,Subresultants,SubscriptBox,% + SubscriptBoxOptions,Subsets,Subsuperscript,SubsuperscriptBox,% + SubsuperscriptBoxOptions,SubtractFrom,SubValues,SugarCube,% + SuperscriptBox,SuperscriptBoxOptions,SuspendPacket,SylvesterMatrix,% + SymbolName,Syntax,SyntaxForm,SyntaxPacket,% + SystemException,SystemHelpPath,SystemStub,Tab,% + TabFilling,TabSpacings,TagBox,TagBoxOptions,% + TaggingRules,TagStyle,TargetFunctions,TemporaryVariable,% + TensorQ,TeXSave,TextAlignment,TextBoundingBox,% + TextData,TextJustification,TextLine,TextPacket,% + TextParagraph,TextRendering,TextStyle,ThisLink,% + TimeConstraint,TimeVariable,TitleGrouping,ToBoxes,% + ToColor,ToFileName,Toggle,ToggleFalse,% + Tolerance,TooBig,Top,ToRadicals,% + Total,Tr,TraceAction,TraceInternal,% + TraceLevel,TraditionalForm,TraditionalFunctionNotation,TraditionalNotation,% + TraditionalOrder,TransformationFunctions,TransparentColor,Trapezoidal,% + TrigExpand,TrigFactor,TrigFactorList,TrigReduce,% + TrigToExp,Tuples,UnAlias,Underflow,% + Underoverscript,UnderoverscriptBox,UnderoverscriptBoxOptions,Underscript,% + UnderscriptBox,UnderscriptBoxOptions,UndocumentedTestFEParserPacket,% + UndocumentedTestGetSelectionPacket,% + UnitStep,Up,URL,Using,% + V2Get,Value,ValueBox,ValueBoxOptions,% + ValueForm,Variance,Verbatim,Verbose,% + VerboseConvertToPostScriptPacket,VerifyConvergence,VerifySolutions,Version,% + VersionNumber,Vertical,VerticalForm,ViewPointSelectorSettings,% + Visible,VisibleCell,WeierstrassHalfPeriods,WeierstrassInvariants,% + WeierstrassSigma,WeierstrassZeta,White,Whitespace,% + WhitespaceCharacter,WindowClickSelect,WindowElements,WindowFloating,% + WindowFrame,WindowFrameElements,WindowMargins,WindowMovable,% + WindowSize,WindowTitle,WindowToolbars,WindowWidth,% + WordBoundary,WordCharacter,WynnDegree,XMLElement},% + morendkeywords={$,$AddOnsDirectory,$AnimationDisplayFunction,% + $AnimationFunction,% + $Assumptions,$BaseDirectory,$BoxForms,$ByteOrdering,% + $CharacterEncoding,$ConditionHold,$CurrentLink,$DefaultPath,% + $ExportEncodings,$ExportFormats,$FormatType,$FrontEnd,% + $HistoryLength,$HomeDirectory,$ImportEncodings,$ImportFormats,% + $InitialDirectory,$InstallationDate,$InstallationDirectory,% + $InterfaceEnvironment,% + $LaunchDirectory,$LicenseExpirationDate,$LicenseID,$LicenseProcesses,% + $LicenseServer,$MachineDomain,$MaxExtraPrecision,$MaxLicenseProcesses,% + $MaxNumber,$MaxPiecewiseCases,$MaxPrecision,$MaxRootDegree,% + $MinNumber,$MinPrecision,$NetworkLicense,$NumberMarks,% + $Off,$OutputForms,$ParentLink,$ParentProcessID,% + $PasswordFile,$PathnameSeparator,$PreferencesDirectory,$PrintForms,% + $PrintLiteral,$ProcessID,$ProcessorType,$ProductInformation,% + $ProgramName,$PSDirectDisplay,$RandomState,$RasterFunction,% + $RootDirectory,$SetParentLink,$SoundDisplay,$SuppressInputFormHeads,% + $SystemCharacterEncoding,$SystemID,$TemporaryPrefix,$TextStyle,% + $TopDirectory,$TraceOff,$TraceOn,$TracePattern,% + $TracePostAction,$TracePreAction,$UserAddOnsDirectory,$UserBaseDirectory,% + $UserName,Constant,Flat,HoldAll,% + HoldAllComplete,HoldFirst,HoldRest,Listable,% + Locked,NHoldAll,NHoldFirst,NHoldRest,% + NumericFunction,OneIdentity,Orderless,Protected,% + ReadProtected,SequenceHold},% + }% +% \end{macrocode} +% \begin{macrocode} %% %% Mathematica definitions (c) 1999 Michael Wiese %% @@ -2228,7 +2994,7 @@ TraceOriginal,TracePrint,TraceScan,Trig,Unevaluated,Uninstall,% UnsameQ,UpperCaseQ,UpValues,ViewCenter,ViewVertical,With,Word,% WordSearch,WordSeparators},% - morendkeywords={Stub,Temporary,$Aborted,$BatchInput,$BatchOutput,% + morendkeywords={Stub,Temporary,$Aborted,$BatchInput,$BatchOutput,% $CreationDate,$DefaultFont,$DumpDates,$DumpSupported,$Failed,% $Input,$Inspector,$IterationLimit,$Language,$Letters,$Linked,% $LinkSupported,$MachineEpsilon,$MachineID,$MachineName,% @@ -2271,7 +3037,7 @@ FormatType,FortranForm,Fourier,FreeQ,FullDefinition,FullForm,% Function,Gamma,GCD,GegenbauerC,General,Get,Goto,Graphics,% Graphics3D,GrayLevel,Greater,GreaterEqual,Head,HermiteH,% - HiddenSurface,Hold,HoldForm,Hypergeometric0F1, Hypergeometric1F1,% + HiddenSurface,Hold,HoldForm,Hypergeometric0F1,Hypergeometric1F1,% Hypergeometric2F1,HypergeometricU,Identity,IdentityMatrix,If,Im,% Implies,In,Increment,Indent,Infix,Information,Inner,Input,% InputForm,InputString,Insert,Integer,IntegerQ,Integrate,% @@ -2782,13 +3548,14 @@ %<*lang1> % \end{macrocode} % As you can read below the definition is due to \lstthanks{Ulrich~G.~Wortmann} -% {uliw@erdw.ethz.ch}{2002/02/18}{}. +% {uliw@erdw.ethz.ch}{2002/02/18}{}. Additions due to \lstthanks{Sebastian~% +% Schubert}{-}{2006/05/11}. % \begin{macrocode} %% %% Octave definition (c) 2001,2002 Ulrich G. Wortmann %% \lst@definelanguage{Octave}% - {morekeywords={gt,lt,gt,lt,amp,abs,acos,acosh,acot,acoth,acsc,acsch,% + {morekeywords={gt,lt,amp,abs,acos,acosh,acot,acoth,acsc,acsch,% all,angle,ans,any,asec,asech,asin,asinh,atan,atan2,atanh,auread,% auwrite,axes,axis,balance,bar,bessel,besselk,bessely,beta,% betainc,betaln,blanks,bone,break,brighten,capture,cart2pol,% @@ -2855,10 +3622,11 @@ whatsnew,which,while,white,whitebg,who,whos,wilkinson,wk1read,% stderr,stdout,plot,set,endif,wk1write,xlabel,xor,ylabel,zeros,% zlabel,zoom,endwhile,endfunction,printf,case,switch,otherwise,% - system,lsode,endfor},% - sensitive=f,% + system,lsode,endfor,error,ones,oneplot,__gnuplot_set__,do,until},% + sensitive=t,% morecomment=[l]\#,% morecomment=[l]\#\#,% + morecomment=[l]\%,% morestring=[m]',% morestring=[m]"% }[keywords,comments,strings]% @@ -3760,6 +4528,79 @@ % \endgroup % % +% \subsection{PostScript} +% +% Herbert Voss provided the following definition, written by +% \lstthanks{Christophe~Jorssen}{}{2004/09/17} provided the following definition. +% +% \begingroup +% \begin{macrocode} +%<*lang3> +% \end{macrocode} +% \begin{macrocode} +%% +%% PostScript language definition (c) 2005 Christophe Jorssen. +%% +\lst@definelanguage{PostScript}{% + morekeywords={abs,add,aload,anchorsearch,and,arc,arcn,arct,arcto,array,ashow, + astore,atan,awidthshow,begin,bind,bitshift,bytesavailable,cachestatus, + ceiling,charpath,clear,cleartomark,cleardictstack,clip,clippath,closefile, + closepath,colorimage,concat,concatmatrix,condition,copy,copypage,cos,count, + countdictstack,countexecstack,counttomark,cshow,currentblackgeneration, + currentcacheparams,currentcmykcolor,currentcolor,currentcolorrendering, + currentcolorscreen,currentcolorspace,currentcolortransfer,currentcontext, + currentdash,currentdevparams,currentdict,currentfile,currentflat,currentfont, + currentglobal,currentgray,currentgstate,currenthalftone,currenthalftonephase, + currenthsbcolor,currentlinecap,currentlinejoin,currentlinewidth,currentmatrix, + currentmiterlimit,currentobjectformat,currentpacking,currentpagedevice, + currentpoint,currentrgbcolor,currentscreen,currentshared,currentstrokeadjust, + currentsystemparams,currenttransfer,currentundercolorremoval,currentuserparams, + curveto,cvi,cvlit,cvn,cvr,cvrs,cvs,cvx,def,defaultmatrix,definefont, + defineresource,defineusername,defineuserobject,deletefile,detach,deviceinfo, + dict,dictstack,div,dtransform,dup, + echo,eexec,end,eoclip,eofill,eoviewclip,eq,erasepage,errordict,exch,exec, + execform,execstack,execuserobject,executeonly,executive,exit, + exp,false,file,filenameforall,fileposition,fill,filter,findencoding,findfont, + findresource,flattenpath,floor,flush,flushfile,FontDirectory,for,forall,fork,ge, + get,getinterval,globaldict,GlobalFontDirectory,glyphshow,grestore,grestoreall, + gsave,gstate,gt,identmatrix,idiv,idtransform,if,ifelse,image, + imagemask,index,ineofill,infill,initclip,initgraphics,initmatrix,initviewclip, + instroke,internaldict,inueofill,inufill,inustroke, + invertmatrix,ISOLatin1Encoding,itransform,join,kshow, + known,languagelevel,le,length,lineto,ln,load,lock,log,loop,lt, + makefont,makepattern,mark,matrix,maxlength,mod,monitor,moveto,mul,ne,neg, + newpath,noaccess,not,notify,null,nulldevice,or,packedarray, + pathbbox,pathforall,pop,print,printobject,product,prompt,pstack,put,putinterval, + quit,rand,rcurveto,read,readhexstring,readline,readonly,readstring, + realtime,rectclip,rectfill,rectstroke,rectviewclip,renamefile,repeat,resetfile, + resourceforall,resourcestatus,restore,reversepath,revision,rlineto,rmoveto,roll, + rootfont,rotate,round,rrand,run,save,scale,scalefont,scheck,search,selectfont, + serialnumber,setbbox,setblackgeneration,setcachedevice,setcachedevice2, + setcachelimit,setcacheparams,setcharwidth,setcmykcolor,setcolor, + setcolorrendering,setcolorscreen,setcolorspace,setcolortransfer,setdash, + setdevparams,setfileposition,setflat,setfont,setglobal,setgray,setgstate, + sethalftone,sethalftonephase,sethsbcolor,setlinecap,setlinejoin,setlinewidth, + setmatrix,setmiterlimit,setobjectformat,setoverprint,setpacking,setpagedevice, + setpattern,setrgbcolor,setscreen,setshared,setstrokeadjust,setsystemparams, + settransfer,setucacheparams,setundercolorremoval,setuserparams,setvmthreshold, + shareddict,show,showpage,sin,sqrt,srand,stack, + StandardEncoding,start,startjob,status,statusdict,stop,stopped,store,string, + stringwidth,stroke,strokepath,sub,systemdict,transform, + translate,true,truncate,type,token,uappend,ucache,ucachestatus, + ueofill,ufill,undef, + upath,userdict,UserObjects, + usertime,ustroke,ustrokepath,version,viewclip,viewclippath,vmreclaim, + vmstatus,wait,wcheck,where,widthshow,write,writehexstring,writeobject, + writestring,wtranslation,xcheck,xor,xshow,xyshow,yield,yshow}, + sensitive, + morecomment=[l]\%}[keywords,comments] +% \end{macrocode} +% \begin{macrocode} +%</lang3> +% \end{macrocode} +% \endgroup +% +% % \subsection{POV-Ray} % % \lstthanks{Berthold~H\"ollmann}{bhoel@starship.python.net}{1999/04/15} sent @@ -3904,11 +4745,157 @@ % \endgroup % % +% \subsection{PSTricks} +% +% PSTricks is a \TeX\ macro package bundle. +% \lstthanks{Herbert~Voss}{}{2004/09/17} provided the following definition. +% +% \begingroup +% \begin{macrocode} +%<*lang3> +% \end{macrocode} +% \begin{macrocode} +%% +%% PSTricks definition (c) 2006 Herbert Voss +%% +\lst@definelanguage{PSTricks}% + {morekeywords={% + begin,end,definecolor,multido,% + KillGlue,DontKillGlue,pslbrace,bsrbrace,psscalebox,psset,pstVerb,pstverb,% + pst@def,,psframebox,psclip,endclip,endpspicture,psframe, +%% pspicture,% + multirput,multips,Rput,rput,uput,cput,lput,% + newrgbcolor,newgray,newcmykcolor, +%% +%% pstricks-add + psStep,psgraph,psbrace,psPrintValue, +%% +%% pst-plot + psvlabel,pshlabel,psplot,psline,pscustom,pscurve,psccurve,% + readdata,savedata,fileplot,dataplot,listplot,% + psecurce,psgraph,parametricplot,% + psellipse,psaxes,ncline,nccurve,psbezier,parabola,% + qdisk,qline,clipbox,endpsclip,% + psgrid,pscircle,pscirclebox,psdiabox,pstribox,% + newpsfontdot,psdot,psdots,% + pspolygon,psdiamond,psoval,pstriangle,% + psarc,psarcn,psellipticarc,psellipticarcn,pswedge,psellipticwedge, + pcline,pcdiag,pcdiagg,pccurve,pccurve,pcecurve,% + scalebox,scaleboxto,psmathboxtrue,everypsbox,psverbboxtrue,overlaybox,% + psoverlay,putoverlaybox,% + newpsstyle,newpsobject,% + moveto,newpath,closepath,stroke,fill,gsave,grestore,msave,mrestore,translate,scale,% + swapaxes,rotate,openshadow,closedshadow,movepath,lineto,rlineto,curveto,rcurveto,% + code,dim,coor,rcoor,file,arrows,setcolor,% + rotateleft,rotateright,rotatedown,% +%% +%% pst-node + nput,naput,nbput,ncput,% + ncarc,ncbox,ncangle,ncangles,ncloop,ncdiag,ncdiagg,ncarcbox,ncbar,% + cnodeput,nccircle,% + pnode,rnode,Rnode,Cnode,cnode,fnode,% + circlenode,ovalnode,trinode,dianode,% + psmatrix,endpsmatrix,psspan,% +%% +%% pst-tree + pstree,Tcircle,TCircle,Ttri,Tn,TC,Tc,Tfan,TR,Tr,Tdia,Toval,Tdot,Tp,Tf,% + skiplevel,skiplevels,endskiplevels,tspace,tlput,% +%% +%% pst-text + pscharpath,pstextpath, +%% +%% pst-barcode + psbarcode, +%% +%% pst-coil + psboxfill,pscoil,psCoil,pszigzag,nccoil, + psshadow,pstilt,psTilt,ThreeDput, +%% +%% pst-gr3d + PstGridThreeDNodeProcessor,% +%% +%% pst-vue3d + PstGridThreeD, + AxesThreeD,LineThreeD,DieThreeD,FrameThreeD,SphereCircleThreeD,SphereMeridienThreeD, + QuadrillageThreeD,TetraedreThreeD,PyramideThreeD,ConeThreeD,CylindreThreeD, + DodecahedronThreeD,ConeThreeD,SphereThreeD,SphereInverseThreeD,DemiSphereThreeD, + SphereCreuseThreeD,SphereCircledThreeD,PortionSphereThreeD,pNodeThreeD,CubeThreeD,% +%% +%% pst-3dplot + pstThreeDCoor,pstThreeDDot,pstThreeDTriangle,pstThreeDCircle,pstPlanePut,% + pstThreeDBox,pstThreeDEllipse,pstThreeDLine,pstThreeDPut,% + pstThreeDNode,pstThreeDSquare,psplotThreeD,parametricplotThreeD,fileplotThreeD,% + dataplotThreeD,pstScalePoints,% +%% +%% pst-circ + resistor,battery,Ucc,Icc,capacitor,coil,diode,Zener,LED,lamp,switch,wire,tension, + circledipole,multidipole,OA,transistor,Tswitch,potentiometer,transformer, + optoCoupler,logic, +%% +%% pst-eucl + pstTriangle,pstMediatorAB,pstInterLL,pstMiddleAB,pstProjection,pstCircleOA,pstLineAB,% +%% +%% pst-func + psBessel,psPolynomial,psFourier,psGaussI,psGauss,psSi,pssi,psCi,psci,% +%% +%% pst-infixplot + psPlot, +%% +%% pst-ob3d + PstDie,PstCube, +%% +%% pst-poly + PstPolygon,pspolygonbox, +%% +%% pst-bar + psbarchart,readpsbardata,psbarscale,newpsbarstyle,% +%% +%% pst-lens + PstLens,% +%% +%% pst-geo + WorldMap,WorldMapII,WorldMapThreeD,WorldMapThreeDII,pnodeMap,MapPut,% +%% +%% pst-autoseg + asr,firstnode,merge,massoc,labelmerge,% +%% +%% gastex + node,imark,fmark,rmark,drawqbpedge,drawedge,drawloop,% +%% +%% pst-labo + Distillation,Ballon, +%% +%% pst-optic + lens,Transform,% +%% +%% pst-light3d + PstLightThreeDText,% +%% +%% calendrier + Calendrier,% +%% +%% pst-osci + Oscillo% + },% + sensitive,% + alsoother={0123456789$_},% + morecomment=[l]\% % + }[keywords,comments]% +% \end{macrocode} +% \begin{macrocode} +%</lang3> +% \end{macrocode} +% \endgroup +% +% % \subsection{Python} % % \lstthanks{Michael~Weber}{mweber@informatik.hu-berlin.de}{1998/12/21} sent me % the definition. He got data from \textsc{Mark Lutz}: \textbf{Programming % Python}; O'Reilly 1996; ISBN 1-56592-197-6. +% \lstthanks{Stephen Kelly}{-}{2007/01/14} reported some problems that indicated +% that the comment definitions needed to be moved after the string definitions +% to work correctly. % \begingroup % \begin{macrocode} %<*lang1> @@ -3923,10 +4910,10 @@ or,pass,print,raise,return,try,while},% sensitive=true,% morecomment=[l]\#,% - morecomment=[s]{'''}{'''},% used for documentation text - morecomment=[s]{"""}{"""},% added by Philipp Matthias Hahn morestring=[b]',% - morestring=[b]"% + morestring=[b]",% + morecomment=[s]{'''}{'''},% used for documentation text + morecomment=[s]{"""}{"""}% added by Philipp Matthias Hahn }% % \end{macrocode} % \lsthelper{Philipp Matthias Hahn}{pmhahn@titan.lahn.de}{2002/04/18}{} @@ -4161,10 +5148,17 @@ literate=% % % \subsection{Ruby} % -% \lstthanks{Christian~Kaiser}{chk@combit.net}{2003/02/05} provided this +% \lstthanks{Christian~Kaiser}{chk@combit.net}{2003/02/05} provided the initial % definition. \lstthanks{Xavier~Noria}{fxn@hashref.com}{2004/01/11} replaced % the keywords with the keywords from the at the time of writing current -% stable Ruby version. +% stable Ruby version. An erroneous string delimiter was removed following +% a bug reported on comp.text.tex on 2006/09/01. +% +% Ruby supports string delimiters of the form \verb|%q!...!|, where \verb|!| +% can be any character, or can be matched braces or parentheses or brackets. +% The included string definitions include most of the common variants, but are +% of course not comprehensive. +% % \begingroup % \begin{macrocode} %<*lang2> @@ -4181,7 +5175,18 @@ literate=% morecomment=[s]{=BEGIN}{=END},% morestring=[b]',% morestring=[b]",% - morestring=[b]/% + morestring=[s]{\%q/}{/},% + morestring=[s]{\%q!}{!},% + morestring=[s]{\%q\{}{\}},% + morestring=[s]{\%q(}{)},% + morestring=[s]{\%q[}{]},% + morestring=[s]{\%q-}{-},% + morestring=[s]{\%Q/}{/},% + morestring=[s]{\%Q!}{!},% + morestring=[s]{\%Q\{}{\}},% + morestring=[s]{\%Q(}{)},% + morestring=[s]{\%Q[}{]},% + morestring=[s]{\%Q-}{-}% }[keywords,comments,strings]% % \begin{macrocode} %</lang2> @@ -4443,6 +5448,37 @@ literate=% % \endgroup % % +% \subsection{SPARQL} +% +% This definition for the SPARQL query language (SPARQL Protocol and RDF +% Query Language, \url{http://www.w3.org/TR/rdf-sparql-query/}) was provided +% by \lstthanks{Christoph~Kiefer}{-}{2006/10/24}. +% +% \begingroup +% \begin{macrocode} +%<*lang3> +% \end{macrocode} +% \begin{macrocode} +%% +%% SPARQL definition (c) 2006 Christoph Kiefer +%% +\lst@definelanguage{SPARQL}% + {morekeywords={BASE,PREFIX,SELECT,DISTINCT,CONSTRUCT,DESCRIBE,ASK,% + FROM,NAMED,WHERE,ORDER,BY,ASC,DESC,LIMIT,OFFSET,OPTIONAL,% + GRAPH,UNION,FILTER,a,STR,LANG,LANGMATCHES,DATATYPE,BOUND,% + isIRI,isURI,isBLANK,isLITERAL,REGEX,true,false},% + sensitive=false,% + morecomment=[l]\#,% + morestring=[d]',% + morestring=[d]"% + }[keywords,comments,strings]% +% \end{macrocode} +% \begin{macrocode} +%</lang3> +% \end{macrocode} +% \endgroup +% +% % \subsection{SQL} % % Data come from \lstthanks{Christian~Haul} @@ -4617,13 +5653,10 @@ literate=% hypot,log,log10,pow,sin,sinh,sqrt,tan,tanh,abs,double,int,round% },% morestring=[d]",% - MoreSelectCharTable=% - \lst@CArgX\#\relax\lst@DefDelimB{}{}% - {\ifx\lst@lastother\lstum@backslash - \expandafter\@gobblethree - \fi}% - \lst@BeginComment\lst@commentmode - {{\lst@commentstyle}\lst@Lmodetrue}% + morecomment=[f]\#,% + morecomment=[l]{;\#},% + morecomment=[l]{[\#},% + morecomment=[l]{\{\#}% }[keywords,comments,strings]% % \end{macrocode} % And after receiving a bug report from \lsthelper{Vitaly A. Repin} diff --git a/Master/texmf-dist/source/latex/listings/lstdrvrs.ins b/Master/texmf-dist/source/latex/listings/lstdrvrs.ins index df3df1859a5..2c6126919e2 100644 --- a/Master/texmf-dist/source/latex/listings/lstdrvrs.ins +++ b/Master/texmf-dist/source/latex/listings/lstdrvrs.ins @@ -4,12 +4,12 @@ %% %% The original source files were: %% -%% lstdrvrs-1.3.dtx (with options: `install') +%% lstdrvrs.dtx (with options: `install') %% %% The listings package is copyright 1996--2004 Carsten Heinz, and -%% continued maintenance on the package is copyright 2006 Brooks Moses. -%% The drivers are copyright 1997/1998/1999/2000/2001/2002/2003/2004 any -%% individual author listed in this file. +%% continued maintenance on the package is copyright 2006--2007 Brooks Moses. +%% The drivers are copyright 1997/1998/1999/2000/2001/2002/2003/2004/2006/ +%% 2007 any individual author listed in this file. %% %% This file is distributed under the terms of the LaTeX Project Public %% License from CTAN archives in directory macros/latex/base/lppl.txt. @@ -31,9 +31,9 @@ } \generate{ - \file{lstlang1.sty}{\from{lstdrvrs-1.3.dtx}{lang1}} - \file{lstlang2.sty}{\from{lstdrvrs-1.3.dtx}{lang2}} - \file{lstlang3.sty}{\from{lstdrvrs-1.3.dtx}{lang3}} + \file{lstlang1.sty}{\from{lstdrvrs.dtx}{lang1}} + \file{lstlang2.sty}{\from{lstdrvrs.dtx}{lang2}} + \file{lstlang3.sty}{\from{lstdrvrs.dtx}{lang3}} } \ifToplevel{ |