texlive[49462] Master/texmf-dist: lstfiracode (20dec18)

commits+karl at tug.org commits+karl at tug.org
Fri Dec 21 00:33:18 CET 2018


Revision: 49462
          http://tug.org/svn/texlive?view=revision&revision=49462
Author:   karl
Date:     2018-12-21 00:33:18 +0100 (Fri, 21 Dec 2018)
Log Message:
-----------
lstfiracode (20dec18)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/lstfiracode/lstfiracode.pdf
    trunk/Master/texmf-dist/doc/latex/lstfiracode/lstfiracode.tex
    trunk/Master/texmf-dist/tex/latex/lstfiracode/lstfiracode.sty

Modified: trunk/Master/texmf-dist/doc/latex/lstfiracode/lstfiracode.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/lstfiracode/lstfiracode.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lstfiracode/lstfiracode.tex	2018-12-20 23:33:07 UTC (rev 49461)
+++ trunk/Master/texmf-dist/doc/latex/lstfiracode/lstfiracode.tex	2018-12-20 23:33:18 UTC (rev 49462)
@@ -26,12 +26,12 @@
 \lstset{
   language=C++,
   style=FiraCodeStyle,
-  basicstyle=\small\ttfamily,
+  basicstyle=\ttfamily,
   commentstyle=\color{orange}
 }
 \makeatletter
 \lstnewenvironment{LaTeXlisting}{%
-  \DeactivateVerbatimLigatures
+  \RestoreVerbatimBehavior
   \lst at CCPutMacro
     \lst at ProcessOther {"2D}{\lst at ttfamily{-{}}{-{}}}
     \@empty\z@\@empty
@@ -38,7 +38,7 @@
   \lstset{
     style={},
     literate={},
-    language=[LaTeX]{TeX},
+    language=[LaTeX]TeX,
     basicstyle=\small\LMMono,
     basewidth=0.525em,
     commentstyle=\itshape
@@ -61,9 +61,13 @@
 \DeclareRobustCommand\dash{%
   \unskip\nobreak\thinspace\textemdash\thinspace\ignorespaces
 }
+\newcommand\versionhistory[3]{%
+  % #1: version number, #2: date, #3: description
+  \item[#1]#3\hfill#2%
+}
 \title{The \texttt{lstfiracode} package}
 \author{Ruixi~Zhang\thanks{\href{mailto:\myemail}{\nolinkurl{\myemail}}.}}
-\date{2018/12/16\enskip v0.1a}
+\date{2018/12/20\enskip v0.1b}
 
 \begin{document}
 
@@ -86,15 +90,16 @@
 of \verb|\lstset|, which can be tedious.
 
 The \verb|lstfiracode| package defines a ready-to-use \verb|listings| style,
-\verb|FiraCodeStyle|, which pre-specifies 137 ligatures
-(note that Fira Code v1.206 has 146 ligatures in total).
-You may \emph{append} the 9 remaining ligatures to the \verb|FiraCodeStyle|
+\verb|FiraCodeStyle|, which pre-specifies 125 ligatures
+(note that Fira Code v1.206 has 130 ligatures in total).
+You may \emph{append} the remaining 5 ligatures to the \verb|FiraCodeStyle|
 literate list via a new key \verb|moreliterate|, without unintentionally
 erasing all existing ligatures via \verb|literate|.
 
 The \verb|lstfiracode| package also provides a package option,
-\verb|verbatim|, along with two switches,
-\verb|\ActivateVerbatimLigatures| and \verb|\DeactivateVerbatimLigatures|,
+\verb|verbatim|, along with three switches
+\verb|\ActivateVerbatimLigatures|, \verb|\DeactivateVerbatimLigatures|
+and \verb|\RestoreVerbatimBehavior|
 to support source code listings using Fira Code
 in the \verb|verbatim| environment.
 
@@ -111,12 +116,12 @@
     \usepackage{fontspec}
     \setmonofont{FiraCode-Regular.otf}[
       BoldFont=FiraCode-Bold.otf,
-      Ligatures=Common,      % Enable the liga feature
-      Contextuals=Alternate  % Enable the calt feature
+      Ligatures=Common,      % Activate the liga feature
+      Contextuals=Alternate  % Activate the calt feature
     ]
     \usepackage{xcolor}
     \usepackage{listings}
-    \usepackage[verbatim]{lstfiracode} % Enable ligatures in verbatim
+    \usepackage[verbatim]{lstfiracode} % Activate ligatures in verbatim
     \lstset{
       language=C++,
       style=FiraCodeStyle,   % Use predefined FiraCodeStyle
@@ -138,13 +143,9 @@
 \end{LaTeXlisting}
 which produces the following \verb|verbatim| (observe the {\LMMono<-},
 the {\LMMono www} and the {\LMMono>>=} ligatures):
-\begingroup
-\fontsize{10}{12}\selectfont
 \begin{verbatim}
     A<-www>>=B
-\end{verbatim}%
-\endgroup
-\noindent
+\end{verbatim}
 and the following \verb|lstlisting| (observe the {\LMMono++}
 and the {\LMMono<<} ligatures):
 \begin{lstlisting}
@@ -159,21 +160,21 @@
 
 \subsection{Package option and user commands}
 
-The \verb|lstfiracode| package provides one package option and two user
+The \verb|lstfiracode| package provides one package option and three user
 commands, described below.
 
-You may load the \verb|lstfiracode| package with the option \verb|verbatim|
-or, equivalently, \verb|verbatim=true|. This enables the support to use
-Fira Code ligatures in the \verb|verbatim| environment.
+You may load the \verb|lstfiracode| package with the option \verb|verbatim|,
+or equivalently \verb|verbatim=true|. This activates all Fira Code ligatures
+in the \verb|verbatim| environment.
 \begin{LaTeXlisting}
-    % Enable Fira Code ligatures support in verbatim
+    % Activate Fira Code ligatures in verbatim
     \usepackage[verbatim]{lstfiracode}
     % is the same as
     \usepackage[verbatim=true]{lstfiracode}
 \end{LaTeXlisting}
-Loading the package without any option (the default) or, equivalently, with
-the option \verb|verbatim=false| leaves the handling of the \verb|verbatim|
-environment unaltered.
+Loading the package without any option (the default), or equivalently with
+the option \verb|verbatim=false|, \emph{does not alter} how the
+\verb|verbatim| environment is handled.
 \begin{LaTeXlisting}
     % Leave verbatim unaltered
     \usepackage{lstfiracode}
@@ -181,15 +182,51 @@
     \usepackage[verbatim=false]{lstfiracode}
 \end{LaTeXlisting}
 
-You may change your mind in the middle of your document, so there are two
-switches for such purpose:
+You may change your mind in the middle of your document, so there are
+three switches for such purpose:
 \begin{description}
 \item[\texttt{\textbackslash ActivateVerbatimLigatures}]
-enables Fira Code ligatures support in \verb|verbatim|.
+Activate all Fira Code ligatures in \verb|verbatim|. This is executed
+automatically with the package option \verb|verbatim=true|.
 \item[\texttt{\textbackslash DeactivateVerbatimLigatures}]
-leaves the handling of \verb|verbatim| unaltered.
+Suppress \emph{almost all} Fira Code ligatures in \verb|verbatim|.
+Currently, it cannot break the {\LMMono\#\{} and the {\LMMono|\}} ligatures.
+\item[\texttt{\textbackslash RestoreVerbatimBehavior}]
+Restore how \verb|verbatim| is originally handled by \LaTeX.
 \end{description}
-These two switches act \emph{locally}.
+These switches can overwrite each other and they act \emph{locally}.
+For instance, the following three \verb|verbatim| environments
+\begin{LaTeXlisting}
+    \begingroup
+    \ActivateVerbatimLigatures
+    \begin{verbatim}
+    A<-www>>=B % Fira Code ligatures activated
+    \end{verbatim}
+    \DeactivateVerbatimLigatures
+    \begin{verbatim}
+    A<-www>>=B % Fira Code ligatures deactivated
+    \end{verbatim}
+    \RestoreVerbatimBehavior
+    \begin{verbatim}
+    A<-www>>=B % Hmm...
+    \end{verbatim}
+    \endgroup
+\end{LaTeXlisting}
+produce, respectively,
+\begingroup
+\ActivateVerbatimLigatures
+\begin{verbatim}
+    A<-www>>=B % Fira Code ligatures activated
+\end{verbatim}
+\DeactivateVerbatimLigatures
+\begin{verbatim}
+    A<-www>>=B % Fira Code ligatures deactivated
+\end{verbatim}
+\RestoreVerbatimBehavior
+\begin{verbatim}
+    A<-www>>=B % Hmm...
+\end{verbatim}
+\endgroup
 
 \subsection{The \texttt{FiraCodeStyle} listings style}
 
@@ -196,8 +233,7 @@
 The ligatures of Fira Code are treated as literate programming by the
 \verb|lstfiracode| package. These ligatures are specified via the
 \verb|literate| key in defining \verb|FiraCodeStyle|.
-
-The definition of \verb|FiraCodeStyle| looks like this
+The definition of \verb|FiraCodeStyle| looks like this:
 \begin{LaTeXlisting}
     \lstdefinestyle{FiraCodeStyle}{
       basewidth=0.6em,
@@ -206,18 +242,19 @@
         ...  % All other necessary ligatures in Fira Code
     }
 \end{LaTeXlisting}
-Thus, the \verb|FiraCodeStyle| specifies \verb|basewidth| explicitly and
-lists \emph{almost} all literate replacements.
+
+Thus, \verb|FiraCodeStyle| specifies \verb|basewidth| explicitly and
+lists \emph{almost all} literate replacements.
 \emph{It does not contain any font changing commands because users may load
 Fira Code according to their preferences.}
 In the case that \verb|\ttfamily| corresponds to Fira Code,
-be sure to specify \verb|basicstyle=\ttfamily| in addition to
-\verb|style=FiraCodeStyle|.
+be sure to specify \verb|basicstyle=\ttfamily| \emph{in addition to}
+\verb|style=FiraCodeStyle|, i.e.,
 \begin{LaTeXlisting}
     \usepackage{listings}
     \usepackage{lstfiracode}
     % Assume that you have set Fira Code via \setmonofont
-    % Then don't forget to also specify basicstyle
+    % Then remember to also specify basicstyle
     \lstset{style=FiraCodeStyle,basicstyle=\ttfamily}
 \end{LaTeXlisting}
 
@@ -224,34 +261,33 @@
 \subsection{The missing ligatures and the new key \texttt{moreliterate}}
 
 You may notice that some ligatures in Fira Code are still missing. Well,
-there are 9 such ligatures\dash strictly speaking, they \emph{are} listed
-as literate replacements in the definition of \verb|FiraCodeStyle|, but are
-simply commented out:
+there are 5 such ligatures\dash strictly speaking, they \emph{are} listed
+as literate replacements in the definition of \verb|FiraCodeStyle|,
+but are simply commented out:
 \begin{center}
 \LMMono
-\begin{tabular}{p{2.1em} p{2.1em} p{2.1em}}
+\begin{tabular}{c c c c c}
 \toprule
-\multicolumn{3}{c}{\rmfamily ``Missing'' ligatures} \\
+\multicolumn{5}{c}{\rmfamily The ``missing'' ligatures} \\
 \midrule
-  /*  & \{- & -\} \\
-  /** & ;;  & ;;; \\
-{}*/  & //  & /// \\
+/* & */ & // & /// & ;; \\
 \bottomrule
 \end{tabular}
 \end{center}
 These particular combinations of characters usually indicate comment mode.
 If they were to be implemented as literate replacements, they would break
-how the \verb|listings| package handles syntax highlighting.
+how the \verb|listings| package handles comment highlighting.
 
 Nevertheless, you can still \emph{append} these ligatures to the
 \verb|FiraCodeStyle| literate list.
-\emph{You cannot write}
+Say, you want to activate the {\LMMono;;} ligature in your
+{\LMMono C++} code. \emph{But you cannot simply write}
 {\LMMono\textbackslash lstset\{style=FiraCodeStyle,%
-literate=\{/*\}\{\{/*\}\}2\}}
+literate=\{;;\}\{\{;;\}\}2\}}
 \emph{because this will erase all predefined ligatures, leaving only the}
-{\LMMono/*} \emph{ligature}.
-Instead, the \verb|lstfiracode| package provides a new key\dash
-\verb|moreliterate|\dash for this purpose:
+{\LMMono;;} \emph{ligature}.
+Instead, you should use the new key\dash
+\verb|moreliterate|\dash to add more literate replacements:
 \begin{LaTeXlisting}
     % Let's add more ligatures
     \lstset{
@@ -260,7 +296,7 @@
       basicstyle=\ttfamily,
       moreliterate=
         {;;}{{;;}}2
-        {;;;}{{;;;}}3
+        {///}{{///}}3
     }
 \end{LaTeXlisting}
 
@@ -271,4 +307,19 @@
 \url{https://github.com/RuixiZhang42/lstfiracode/issues}.
 Pull requests are welcome.
 
+\section*{Version history}
+
+\begin{description}
+\versionhistory{v0.1b}{2018/12/20}{%
+  Updated \texttt{FiraCodeStyle} literate list.
+  Added \texttt{\textbackslash RestoreVerbatimBehavior}.
+  Re-implemented
+    \texttt{\textbackslash Activate}/%
+    \texttt{\textbackslash DeactivateVerbatimLigatures}.%
+}
+\versionhistory{v0.1a}{2018/12/16}{%
+  Initial release.%
+}
+\end{description}
+
 \end{document}
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/lstfiracode/lstfiracode.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lstfiracode/lstfiracode.sty	2018-12-20 23:33:07 UTC (rev 49461)
+++ trunk/Master/texmf-dist/tex/latex/lstfiracode/lstfiracode.sty	2018-12-20 23:33:18 UTC (rev 49462)
@@ -20,7 +20,7 @@
 %
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{lstfiracode}[%
-  2018/12/16 v0.1a LaTeX listings support for Fira Code]
+  2018/12/20 v0.1b Use Fira Code font for listings]
 
 \RequirePackage{kvoptions}
 \RequirePackage{listings}
@@ -39,11 +39,19 @@
 
 \let\lstfiracode at verbatim@nolig at list\verbatim at nolig@list
 \newcommand*\ActivateVerbatimLigatures{%
-  \renewcommand*\verbatim at nolig@list{}%
+  \def\verbatim at nolig@list{\do\`\do\,\do\'}%
 }
 \newcommand*\DeactivateVerbatimLigatures{%
-  \renewcommand*\verbatim at nolig@list{\lstfiracode at verbatim@nolig at list}%
+  \expandafter\def\expandafter\verbatim at nolig@list\expandafter{%
+    \lstfiracode at verbatim@nolig at list
+    \do\w\do\*\do\/\do\:\do\=\do\!\do\~\do\[%
+    \do\#\do\(\do\?\do\_\do\.\do\;\do\&\do\|%
+    \do\+\do\$\do\@\do\%\do\]% Do "7B and "7D, how?
+  }%
 }
+\newcommand*\RestoreVerbatimBehavior{%
+  \let\verbatim at nolig@list\lstfiracode at verbatim@nolig at list
+}
 
 \iflstfiracode at verbatim
   \ActivateVerbatimLigatures
@@ -64,21 +72,21 @@
     {www}{{www}}3
     {**}{{**}}2
     {***}{{***}}3
-    {**/}{{**/}}3
+%    {**/}{{**/}}3 % Removed in Fira Code v1.206
     {*>}{{*>}}2
-%    {*/}{{*/}}2
-    {\\\\}{{\textbackslash\textbackslash}}2
-    {\\\\\\}{{\textbackslash\textbackslash\textbackslash}}3
-%    {\{-}{{\{-}}2
-    {[]}{{[]}}2
+%    {*/}{{*/}}2 % Interferes with comment highlighting
+%    {\\\\}{{\textbackslash\textbackslash}}2 % Removed in Fira Code v1.206
+%    {\\\\\\}{{\textbackslash\textbackslash\textbackslash}}3 % Removed in Fira Code v1.206
+%    {\{-}{{\{-}}2 % Removed in Fira Code v1.206
+%    {[]}{{[]}}2 % Removed in Fira Code v1.206
     {::}{{::}}2
     {:::}{{:::}}3
     {:=}{{:=}}2
     {!!}{{!!}}2
-    {!!!}{{!!!}}3
+%    {!!!}{{!!!}}3 % Removed in Fira Code v1.206
     {!=}{{!=}}2
     {!==}{{!==}}3
-%    {-\}}{{-\}}}2
+%    {-\}}{{-\}}}2 % Removed in Fira Code v1.206
     {--}{{--}}2
     {---}{{---}}3
     {-->}{{-->}}3
@@ -103,20 +111,20 @@
     {...}{{...}}3
     {?=}{{?=}}2
     {??}{{??}}2
-    {???}{{???}}3
-%    {;;}{{;;}}2
-%    {;;;}{{;;;}}3
-%    {/*}{{/*}}2
-%    {/**}{{/**}}3
+%    {???}{{???}}3 % Removed in Fira Code v1.206
+%    {;;}{{;;}}2 % Interferes with comment highlighting
+%    {;;;}{{;;;}}3 % Removed in Fira Code v1.206
+%    {/*}{{/*}}2 % Interferes with comment highlighting
+%    {/**}{{/**}}3 % Removed in Fira Code v1.206
     {/=}{{/=}}2
     {/==}{{/==}}3
     {/>}{{/>}}2
-%    {//}{{//}}2
-%    {///}{{///}}3
+%    {//}{{//}}2 % Interferes with comment highlighting
+%    {///}{{///}}3 % Interferes with comment highlighting
     {\&\&}{{\&\&}}2
-    {\&\&\&}{{\&\&\&}}3
+%    {\&\&\&}{{\&\&\&}}3 % Removed in Fira Code v1.206
     {||}{{||}}2
-    {|||}{{|||}}3
+%    {|||}{{|||}}3 % Removed in Fira Code v1.206
     {||=}{{||=}}3
     {|=}{{|=}}2
     {|>}{{|>}}2
@@ -130,9 +138,9 @@
     {==>}{{==>}}3
     {=>}{{=>}}2
     {=>>}{{=>>}}3
-    {=<}{{=<}}2
+%    {=<}{{=<}}2 % Removed in Fira Code v1.206
     {=<<}{{=<<}}3
-    {=~}{{=\textasciitilde}}2
+%    {=~}{{=\textasciitilde}}2 % Removed in Fira Code v1.206
     {=/=}{{=/=}}3
     {>-}{{>-}}2
     {>=}{{>=}}2
@@ -171,9 +179,9 @@
     {~>}{{\textasciitilde>}}2
     {~~}{{\textasciitilde\textasciitilde}}2
     {~~>}{{\textasciitilde\textasciitilde>}}3
-    {~~~}{{\textasciitilde\textasciitilde\textasciitilde}}3
+%    {~~~}{{\textasciitilde\textasciitilde\textasciitilde}}3 % Removed in Fira Code v1.206
     {\%\%}{{\%\%}}2
-    {\%\%\%}{{\%\%\%}}3
+%    {\%\%\%}{{\%\%\%}}3 % Removed in Fira Code v1.206
     {<==>}{{<==>}}4
     {<||}{{<||}}3
     {<|||}{{<|||}}4



More information about the tex-live-commits mailing list