From afcf9657fc327b8852f9a39feebb0fd00fb3a33c Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 23 Nov 2011 01:49:43 +0000 Subject: jvlisting 0.7 (18nov11) git-svn-id: svn://tug.org/texlive/trunk@24638 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/latex/jvlisting/jvlisting.dtx | 36 +++++++++++++++------- 1 file changed, 25 insertions(+), 11 deletions(-) (limited to 'Master/texmf-dist/source/latex/jvlisting') diff --git a/Master/texmf-dist/source/latex/jvlisting/jvlisting.dtx b/Master/texmf-dist/source/latex/jvlisting/jvlisting.dtx index d269491bb57..c1f038906a9 100644 --- a/Master/texmf-dist/source/latex/jvlisting/jvlisting.dtx +++ b/Master/texmf-dist/source/latex/jvlisting/jvlisting.dtx @@ -269,9 +269,16 @@ listings with additional line numbers can be defined as follows: \medbreak -\textbf{Example.} The following code defines a new -\verb|copylisting| environment which does not only typeset the source -code, but also saves a copy in an external file. +\textbf{Example.} The following code defines a new \verb|copylisting| +environment which does not only typeset the source code, but also +saves a copy in an external file. Here we need to be careful in case +the quote character \verb|`| can be present in the listing: by +default, \verb|\listingfont| makes \verb|`| an active character in +order to prevent problems with ligatures, but this fix causes damage +to the output of the \verb|\write| command. To work around this +problem, we can use \verb|\DisableLigatureFix| (defined by the +\verb|jvlisting| package for just this purpose) to temporarily disable +the ligature fix. % \iffalse % %<*examples|usage> @@ -279,8 +286,8 @@ code, but also saves a copy in an external file. % \begin{macrocode} \newwrite\outfile -\newcommand{\copytypeset}[1]{\immediate\write\outfile{#1}% - \ListingTypesetLine{#1}} +\newcommand{\copytypeset}[1]{\ListingTypesetLine{#1}% + {\DisableLigatureFix\immediate\write\outfile{#1}}} \NewListingEnvironment{copylisting}{1}{\prelistingskip}% {\immediate\openout\outfile=#1\listingfont}{\copytypeset}% {\immediate\closeout\outfile\postlistingskip} @@ -391,7 +398,7 @@ string. % for the package file. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{jvlisting}[2011/10/28 v0.6 Formatted Program Listings] +\ProvidesPackage{jvlisting}[2011/11/17 v0.7 Formatted Program Listings] % \end{macrocode} % \subsection{Processing the Lines of Input} @@ -499,14 +506,12 @@ string. % In order to allow for verbatim printing, the macro % \verb|jvl@fixparsing| switches off the special meaning of most % characters. Some care is needed to avoid problems with spaces and -% ligatures like \verb|?`|. +% hyphenation. % \begin{macrocode} {\catcode`\ =\active% \gdef\jvl@obeyspaces{\frenchspacing\catcode`\ =\active\let \space}} -{\catcode`\`=\active\gdef`{\relax\lq}} -\gdef\jvl@noligs{\catcode`\`=\active} \def\jvl@fixparsing{\let\do\@makeother\dospecials\catcode`\^^I=12 - \jvl@obeyspaces\jvl@noligs\hyphenchar\font\m@ne} + \jvl@obeyspaces\hyphenchar\font\m@ne} % \end{macrocode} % Since the \verb|\hyphenchar| setting is global, we save save the @@ -595,7 +600,16 @@ string. \newcount\prelistingpenalty \prelistingpenalty=100 \newcount\listingpenalty \listingpenalty=500 \newcount\postlistingpenalty \postlistingpenalty=-50 -\def\normallistingfont{\normalfont\ttfamily} +% \end{macrocode} +% Finally, we define the default font for use in listings. Some care +% is needed to avoid problems with ligatures like \verb|?`|. We break +% such ligatures by making \verb|`| and active character. For use in +% file listings we also provide \verb|\DisableLigatureFix| to +% (temporarily) disable this fix. +% \begin{macrocode} +{\catcode`\`=\active\gdef`{\relax\lq}% +\gdef\DisableLigatureFix{\def`{\lq}}} +\def\normallistingfont{\normalfont\ttfamily\catcode`\`=\active} % \end{macrocode} % \iffalse % -- cgit v1.2.3