mirror of
https://github.com/benjamin-weiss/hsrmbeamertheme.git
synced 2024-06-27 07:55:13 +02:00
994 lines
37 KiB
TeX
994 lines
37 KiB
TeX
%%
|
|
%% This is file `minted.sty',
|
|
%% generated with the docstrip utility.
|
|
%%
|
|
%% The original source files were:
|
|
%%
|
|
%% minted.dtx (with options: `package')
|
|
%% Copyright 2013--2014 Geoffrey M. Poore
|
|
%% Copyright 2010--2011 Konrad Rudolph
|
|
%%
|
|
%% This work may be distributed and/or modified under the
|
|
%% conditions of the LaTeX Project Public License, either version 1.3
|
|
%% of this license or (at your option) any later version.
|
|
%% The latest version of this license is in
|
|
%% http://www.latex-project.org/lppl.txt
|
|
%% and version 1.3 or later is part of all distributions of LaTeX
|
|
%% version 2005/12/01 or later.
|
|
%%
|
|
%% Additionally, the project may be distributed under the terms of the new BSD
|
|
%% license.
|
|
%%
|
|
%% This work has the LPPL maintenance status `maintained'.
|
|
%%
|
|
%% The Current Maintainer of this work is Geoffrey Poore.
|
|
%%
|
|
%% This work consists of the files minted.dtx and minted.ins
|
|
%% and the derived file minted.sty.
|
|
\NeedsTeXFormat{LaTeX2e}
|
|
\ProvidesPackage{minted}[2013/12/21 v2.0-alpha3 ]
|
|
\RequirePackage{keyval}
|
|
\RequirePackage{kvoptions}
|
|
\RequirePackage{fancyvrb}
|
|
\RequirePackage{float}
|
|
\RequirePackage{ifthen}
|
|
\RequirePackage{calc}
|
|
\RequirePackage{ifplatform}
|
|
\RequirePackage{pdftexcmds}
|
|
\RequirePackage{etoolbox}
|
|
\RequirePackage{xstring}
|
|
\RequirePackage{lineno}
|
|
\AtBeginDocument{\@ifpackageloaded{color}{}{\RequirePackage{xcolor}}}
|
|
\DeclareVoidOption{chapter}{\def\minted@float@within{chapter}}
|
|
\DeclareVoidOption{section}{\def\minted@float@within{section}}
|
|
\newboolean{minted@cache}
|
|
\DeclareVoidOption{cache}{%
|
|
\minted@cachetrue
|
|
\AtEndOfPackage{\ProvideDirectory{\minted@outputdir\minted@cachedir}}%
|
|
}
|
|
\StrSubstitute{\jobname}{ }{_}[\minted@jobname]
|
|
\StrSubstitute{\minted@jobname}{"}{}[\minted@jobname]
|
|
\StrSubstitute{\minted@jobname}{*}{-}[\minted@jobname]
|
|
\newcommand{\minted@cachedir}{.minted-\minted@jobname}
|
|
\let\minted@cachedir@windows\minted@cachedir
|
|
\define@key{minted}{cachedir}{%
|
|
\@namedef{minted@cachedir}{#1}%
|
|
\StrSubstitute{\minted@cachedir}{/}{\@backslashchar}[\minted@cachedir@windows]}
|
|
\let\minted@outputdir\@empty
|
|
\let\minted@outputdir@windows\@empty
|
|
\define@key{minted}{outputdir}{%
|
|
\@namedef{minted@outputdir}{#1/}%
|
|
\StrSubstitute{\minted@outputdir}{/}%
|
|
{\@backslashchar}[\minted@outputdir@windows]}
|
|
\newboolean{minted@langlinenos}
|
|
\DeclareVoidOption{langlinenos}{\minted@langlinenostrue}
|
|
\DeclareBoolOption{draft}
|
|
\ProcessKeyvalOptions*
|
|
\newcommand{\minted@infile}{\jobname.out.pyg}
|
|
\newcommand{\minted@cachefiles}{}
|
|
\newcommand{\minted@addcachefile}[1]{%
|
|
\expandafter\gdef\expandafter\minted@cachefiles\expandafter{%
|
|
\minted@cachefiles,#1}%
|
|
\expandafter\gdef\csname minted@current@#1\endcsname{}%
|
|
}
|
|
\newcommand{\minted@savecachefiles}{%
|
|
\immediate\write\@mainaux{%
|
|
\string\gdef\string\minted@oldcachefiles\string{%
|
|
\minted@cachefiles\string}}%
|
|
}
|
|
\newcommand{\minted@cleancache}{%
|
|
\ifthenelse{\boolean{minted@cache}}{%
|
|
\ifcsname minted@oldcachefiles\endcsname
|
|
\def\do##1{%
|
|
\ifthenelse{\equal{##1}{}}{}{%
|
|
\ifcsname minted@current@##1\endcsname\else
|
|
\DeleteFile[\minted@outputdir\minted@cachedir]{##1}%
|
|
\fi
|
|
}%
|
|
}%
|
|
\expandafter\docsvlist\expandafter{\minted@oldcachefiles}%
|
|
\else
|
|
\fi
|
|
}{}%
|
|
}
|
|
\ifthenelse{\boolean{minted@cache}}%
|
|
{\AtEndDocument{%
|
|
\ifthenelse{\boolean{minted@draft}}%
|
|
{\ifcsname minted@oldcachefiles\endcsname
|
|
\let\minted@cachefiles\minted@oldcachefiles
|
|
\minted@savecachefiles
|
|
\fi}%
|
|
{\minted@savecachefiles
|
|
\minted@cleancache}}%
|
|
}%
|
|
{}%
|
|
\ifwindows
|
|
\providecommand{\DeleteFile}[2][]{%
|
|
\ifthenelse{\equal{#1}{}}%
|
|
{\IfFileExists{#2}{\immediate\write18{del "#2"}}{}}%
|
|
{\IfFileExists{#1/#2}{%
|
|
\StrSubstitute{#1}{/}{\@backslashchar}[\minted@windir]
|
|
\immediate\write18{del "\minted@windir\@backslashchar #2"}}{}}}
|
|
\else
|
|
\providecommand{\DeleteFile}[2][]{%
|
|
\ifthenelse{\equal{#1}{}}%
|
|
{\IfFileExists{#2}{\immediate\write18{rm "#2"}}{}}%
|
|
{\IfFileExists{#1/#2}{\immediate\write18{rm "#1/#2"}}{}}}
|
|
\fi
|
|
\ifwindows
|
|
\newcommand{\ProvideDirectory}[1]{%
|
|
\StrSubstitute{#1}{/}{\@backslashchar}[\minted@windir]
|
|
\immediate\write18{if not exist "\minted@windir" mkdir "\minted@windir"}}
|
|
\else
|
|
\newcommand{\ProvideDirectory}[1]{%
|
|
\immediate\write18{mkdir -p "#1"}}
|
|
\fi
|
|
\newboolean{AppExists}
|
|
\newread\minted@appexistsfile
|
|
\newcommand{\TestAppExists}[1]{
|
|
\ifwindows
|
|
\DeleteFile{\jobname.aex}
|
|
\immediate\write18{for \string^\@percentchar i in (#1.exe #1.bat #1.cmd)
|
|
do set >\jobname.aex <nul: /p
|
|
x=\string^\@percentchar \string~$PATH:i>>\jobname.aex}
|
|
%$ <- balance syntax highlighting
|
|
\immediate\openin\minted@appexistsfile\jobname.aex
|
|
\expandafter\def\expandafter\@tmp@cr\expandafter{\the\endlinechar}
|
|
\endlinechar=-1\relax
|
|
\readline\minted@appexistsfile to \minted@apppathifexists
|
|
\endlinechar=\@tmp@cr
|
|
\ifthenelse{\equal{\minted@apppathifexists}{}}
|
|
{\AppExistsfalse}
|
|
{\AppExiststrue}
|
|
\immediate\closein\minted@appexistsfile
|
|
\DeleteFile{\jobname.aex}
|
|
\immediate\typeout{file deleted}
|
|
\else
|
|
\immediate\write18{which #1 && touch \jobname.aex}
|
|
\IfFileExists{\jobname.aex}
|
|
{\AppExiststrue
|
|
\DeleteFile{\jobname.aex}}
|
|
{\AppExistsfalse}
|
|
\fi
|
|
}
|
|
\newcommand{\minted@optg}{}
|
|
\let\minted@lang\@empty
|
|
\newcommand{\minted@optlang}{}
|
|
\newcommand{\minted@optcmd}{}
|
|
\newcommand{\minted@checklang}{%
|
|
\ifcsname minted@optlang\minted@lang\endcsname\else
|
|
\expandafter\def\csname minted@optlang\minted@lang\endcsname{}%
|
|
\fi
|
|
\ifcsname minted@optlang\minted@lang @extra\endcsname\else
|
|
\expandafter\def\csname minted@optlang\minted@lang @extra\endcsname{}%
|
|
\fi
|
|
}
|
|
\newcommand{\minted@resetoptcmd}{%
|
|
\@namedef{minted@optcmd@extra}{}%
|
|
\let\minted@optcmd@autogobble\relax}
|
|
\newcommand{\minted@getoptg}[1]{%
|
|
\expandafter\detokenize%
|
|
\expandafter\expandafter\expandafter{\csname minted@optg@#1\endcsname}}
|
|
\newcommand{\minted@getoptlang}[1]{%
|
|
\expandafter\detokenize\expandafter\expandafter\expandafter{%
|
|
\csname minted@optlang\minted@lang @#1\endcsname}}
|
|
\newcommand{\minted@getoptcmd}[1]{%
|
|
\expandafter\detokenize%
|
|
\expandafter\expandafter\expandafter{\csname minted@optcmd@#1\endcsname}}
|
|
\newcommand{\minted@regoptg}[1]{%
|
|
\ifcsname minted@optg@#1@reg\endcsname\else
|
|
\expandafter\let\csname minted@optg@#1@reg\endcsname\@empty
|
|
\expandafter\def\expandafter\minted@optg\expandafter{%
|
|
\minted@optg\space\minted@getoptg{#1}}%
|
|
\fi
|
|
}
|
|
\newcommand{\minted@regoptlang}[1]{%
|
|
\ifcsname minted@optlang\minted@lang @#1@reg\endcsname\else
|
|
\ifcsname minted@optlang\minted@lang\endcsname\else
|
|
\expandafter\def\csname minted@optlang\minted@lang\endcsname{}%
|
|
\fi
|
|
\expandafter\let\csname minted@optlang\minted@lang @#1@reg\endcsname\@empty
|
|
\expandafter\let\expandafter\minted@optlang%
|
|
\csname minted@optlang\minted@lang\endcsname
|
|
\expandafter\def\expandafter\minted@optlang\expandafter{%
|
|
\minted@optlang\space\minted@getoptlang{#1}}%
|
|
\expandafter\let\csname minted@optlang\minted@lang\endcsname\minted@optlang
|
|
\let\minted@optlang\@empty
|
|
\fi
|
|
}
|
|
\newcommand{\minted@regoptcmd}[1]{%
|
|
\ifcsname minted@optcmd@#1@reg\endcsname\else
|
|
\expandafter\let\csname minted@optcmd@#1@reg\endcsname\@empty
|
|
\expandafter\def\expandafter\minted@optcmd\expandafter{%
|
|
\minted@optcmd\space\minted@getoptcmd{#1}}%
|
|
\expandafter\def\expandafter\minted@resetoptcmd\expandafter{%
|
|
\minted@resetoptcmd
|
|
\@namedef{minted@optcmd@#1}{}}%
|
|
\fi
|
|
}
|
|
\newcommand{\minted@define@opt}[4][]{%
|
|
\ifthenelse{\equal{#1}{}}%
|
|
{\define@key{minted@optg}{#2}{\@namedef{minted@optg@#2}{#3=#4}%
|
|
\@namedef{minted@optg@#2@val}{#4}%
|
|
\minted@regoptg{#2}}%
|
|
\define@key{minted@optlang}{#2}{%
|
|
\@namedef{minted@optlang\minted@lang @#2}{#3=#4}%
|
|
\@namedef{minted@optlang\minted@lang @#2@val}{#4}%
|
|
\minted@regoptlang{#2}}%
|
|
\define@key{minted@optcmd}{#2}{\@namedef{minted@optcmd@#2}{#3=#4}%
|
|
\@namedef{minted@optcmd@#2@val}{#4}%
|
|
\minted@regoptcmd{#2}}}%
|
|
{\define@key{minted@optg}{#2}[#1]{\@namedef{minted@optg@#2}{#3=#4}%
|
|
\@namedef{minted@optg@#2@val}{#4}%
|
|
\minted@regoptg{#2}}%
|
|
\define@key{minted@optlang}{#2}[#1]{%
|
|
\@namedef{minted@optlang\minted@lang @#2}{#3=#4}%
|
|
\@namedef{minted@optlang\minted@lang @#2@val}{#4}%
|
|
\minted@regoptlang{#2}}%
|
|
\define@key{minted@optcmd}{#2}[#1]{\@namedef{minted@optcmd@#2}{#3=#4}%
|
|
\@namedef{minted@optcmd@#2@val}{#4}%
|
|
\minted@regoptcmd{#2}}}%
|
|
}
|
|
\newcommand{\minted@namexdef}[1]{\expandafter\xdef\csname #1\endcsname}
|
|
\edef\minted@hashchar{\string#}
|
|
\edef\minted@lbracechar{\string{}
|
|
\edef\minted@rbracechar{\string}}
|
|
\edef\minted@dollarchar{\string$}
|
|
\edef\minted@ampchar{\string&}
|
|
\edef\minted@uscorechar{\string_}
|
|
\newcommand{\minted@bechar}{%
|
|
\begingroup
|
|
\let\#\minted@hashchar
|
|
\let\%\@percentchar
|
|
\let\{\minted@lbracechar
|
|
\let\}\minted@rbracechar
|
|
\let\$\minted@dollarchar
|
|
\let\&\minted@ampchar
|
|
\let\_\minted@uscorechar
|
|
}
|
|
\newcommand{\minted@eechar}{\endgroup}
|
|
\newcommand{\minted@define@opt@escchar}[4][]{%
|
|
\ifthenelse{\equal{#1}{}}%
|
|
{\define@key{minted@optg}{#2}{\minted@bechar%
|
|
\minted@namexdef{minted@optg@#2}{#3=#4}%
|
|
\minted@eechar%
|
|
\@namedef{minted@optg@#2@val}{#4}%
|
|
\minted@regoptg{#2}}%
|
|
\define@key{minted@optlang}{#2}{%
|
|
\minted@bechar%
|
|
\minted@namexdef{minted@optlang\minted@lang @#2}{#3=#4}%
|
|
\minted@eechar%
|
|
\@namedef{minted@optlang\minted@lang @#2@val}{#4}%
|
|
\minted@regoptlang{#2}}%
|
|
\define@key{minted@optcmd}{#2}{\minted@bechar%
|
|
\minted@namexdef{minted@optcmd@#2}{#3=#4}%
|
|
\minted@eechar%
|
|
\@namedef{minted@optcmd@#2@val}{#4}%
|
|
\minted@regoptcmd{#2}}}%
|
|
{\define@key{minted@optg}{#2}[#1]{\minted@bechar%
|
|
\minted@namexdef{minted@optg@#2}{#3=#4}%
|
|
\minted@eechar%
|
|
\@namedef{minted@optg@#2@val}{#4}%
|
|
\minted@regoptg{#2}}%
|
|
\define@key{minted@optlang}{#2}[#1]{%
|
|
\minted@bechar%
|
|
\minted@namexdef{minted@optlang\minted@lang @#2}{#3=#4}%
|
|
\minted@eechar%
|
|
\@namedef{minted@optlang\minted@lang @#2@val}{#4}%
|
|
\minted@regoptlang{#2}}%
|
|
\define@key{minted@optcmd}{#2}[#1]{\minted@bechar%
|
|
\minted@namexdef{minted@optcmd@#2}{#3=#4}%
|
|
\minted@eechar%
|
|
\@namedef{minted@optcmd@#2@val}{#4}%
|
|
\minted@regoptcmd{#2}}}%
|
|
}
|
|
\newcommand{\minted@define@optstyle}{%
|
|
\define@key{minted@optg}{style}{%
|
|
\@namedef{minted@optg@style}{-P style=##1 -P commandprefix=PYG##1}%
|
|
\minted@regoptg{style}\minted@regstyle{##1}}%
|
|
\define@key{minted@optlang}{style}{%
|
|
\@namedef{minted@optlang\minted@lang @style}%
|
|
{-P style=##1 -P commandprefix=PYG##1}%
|
|
\minted@regoptlang{style}\minted@regstyle{##1}}%
|
|
\define@key{minted@optcmd}{style}{%
|
|
\@namedef{minted@optcmd@style}{-P style=##1 -P commandprefix=PYG##1}%
|
|
\minted@regoptcmd{style}\minted@regstyle{##1}}%
|
|
}
|
|
\newcommand{\minted@patchZsq}[1]{%
|
|
\ifx\upquote@cmtt\minted@undefined\else
|
|
\ifx\encodingdefault\upquote@OTone
|
|
\ifx\ttdefault\upquote@cmtt
|
|
\expandafter\ifdefstring\expandafter{\csname PYG#1Zsq\endcsname}{\char`\'}%
|
|
{\expandafter\gdef\csname PYG#1Zsq\endcsname{\char13 }}{}%
|
|
\else
|
|
\expandafter\ifdefstring\expandafter{\csname PYG#1Zsq\endcsname}{\char`\'}%
|
|
{\expandafter\gdef\csname PYG#1Zsq\endcsname{\textquotesingle}}{}%
|
|
\fi
|
|
\else
|
|
\expandafter\ifdefstring\expandafter{\csname PYG#1Zsq\endcsname}{\char`\'}%
|
|
{\expandafter\gdef\csname PYG#1Zsq\endcsname{\textquotesingle}}{}%
|
|
\fi
|
|
\fi
|
|
}
|
|
\newcommand{\minted@regstyle}[1]{%
|
|
\ifcsname minted@stylereg@#1\endcsname\else
|
|
\expandafter\global\expandafter%
|
|
\let\csname minted@stylereg@#1\endcsname\@empty
|
|
\ifthenelse{\boolean{minted@cache}}%
|
|
{\IfFileExists{\minted@outputdir\minted@cachedir/#1.pygstyle}{}{%
|
|
\ifwindows
|
|
\immediate\write18{\MintedPygmentize\space -S #1 -f latex
|
|
-P commandprefix=PYG#1
|
|
> "\minted@outputdir@windows\minted@cachedir@windows\@backslashchar#1.pygstyle"}%
|
|
\else
|
|
\immediate\write18{\MintedPygmentize\space -S #1 -f latex
|
|
-P commandprefix=PYG#1
|
|
> "\minted@outputdir\minted@cachedir/#1.pygstyle"}%
|
|
\fi
|
|
}%
|
|
\begingroup
|
|
\let\def\gdef
|
|
\endlinechar=-1\relax
|
|
\input{\minted@outputdir\minted@cachedir/#1.pygstyle}%
|
|
\endgroup
|
|
\minted@addcachefile{#1.pygstyle}}%
|
|
{\ifwindows
|
|
\immediate\write18{\MintedPygmentize\space -S #1 -f latex
|
|
-P commandprefix=PYG#1 > "\minted@outputdir@windows\jobname.out.pyg"}%
|
|
\else
|
|
\immediate\write18{\MintedPygmentize\space -S #1 -f latex
|
|
-P commandprefix=PYG#1 > "\minted@outputdir\jobname.out.pyg"}%
|
|
\fi
|
|
\begingroup
|
|
\let\def\gdef
|
|
\endlinechar=-1\relax
|
|
\input{\minted@outputdir\jobname.out.pyg}%
|
|
\endgroup}%
|
|
\ifx\@onlypreamble\@notprerr
|
|
\minted@patchZsq{#1}%
|
|
\else
|
|
\minted@patchZsq{#1}%
|
|
\AtBeginDocument{\minted@patchZsq{#1}}%
|
|
\fi
|
|
\fi
|
|
}
|
|
\ifthenelse{\boolean{minted@draft}}{\renewcommand{\minted@regstyle}[1]{}}{}
|
|
\newcommand{\minted@define@switch}[3][]{
|
|
\define@booleankey{minted@optg}{#2}
|
|
{\@namedef{minted@optg@#2}{#3}\minted@regoptg{#2}}
|
|
{\@namedef{minted@optg@#2}{#1}\minted@regoptg{#2}}
|
|
\define@booleankey{minted@optlang}{#2}
|
|
{\@namedef{minted@optlang\minted@lang @#2}{#3}\minted@regoptlang{#2}}
|
|
{\@namedef{minted@optlang\minted@lang @#2}{#1}\minted@regoptlang{#2}}
|
|
\define@booleankey{minted@optcmd}{#2}
|
|
{\@namedef{minted@optcmd@#2}{#3}\minted@regoptcmd{#2}}
|
|
{\@namedef{minted@optcmd@#2}{#1}\minted@regoptcmd{#2}}
|
|
}
|
|
\newcommand{\minted@define@extra}[1]{
|
|
\define@key{minted@optg}{#1}{%
|
|
\expandafter\def\expandafter\minted@optg@extra\expandafter{%
|
|
\minted@optg@extra,#1=##1}}
|
|
\@namedef{minted@optg@extra}{}
|
|
\define@key{minted@optlang}{#1}{%
|
|
\ifcsname minted@optlang\minted@lang @extra\endcsname\else
|
|
\expandafter\def\csname minted@optlang\minted@lang @extra\endcsname{}%
|
|
\fi
|
|
\expandafter\let\expandafter\minted@optlang@extra%
|
|
\csname minted@optlang\minted@lang @extra \endcsname
|
|
\expandafter\def\expandafter\minted@optlang@extra\expandafter{%
|
|
\minted@optlang@extra,#1=##1}%
|
|
\expandafter\let\csname minted@optlang\minted@lang @extra\endcsname%
|
|
\minted@optlang@extra
|
|
\let\minted@optlang@extra\@empty}%
|
|
\@namedef{minted@optlang@extra}{}
|
|
\define@key{minted@optcmd}{#1}{%
|
|
\expandafter\def\expandafter\minted@optcmd@extra\expandafter{%
|
|
\minted@optcmd@extra,#1=##1}}
|
|
\@namedef{minted@optcmd@extra}{}
|
|
}
|
|
\newcommand{\minted@define@extra@switch}[1]{
|
|
\define@booleankey{minted@optg}{#1}
|
|
{\expandafter\def\expandafter\minted@optg@extra\expandafter{%
|
|
\minted@optg@extra,#1}}
|
|
{\expandafter\def\expandafter\minted@optg@extra\expandafter{%
|
|
\minted@optg@extra,#1=false}}
|
|
\define@booleankey{minted@optlang}{#1}
|
|
{%
|
|
\ifcsname minted@optlang\minted@lang @extra\endcsname\else
|
|
\expandafter\def\csname minted@optlang\minted@lang @extra\endcsname{}%
|
|
\fi
|
|
\expandafter\let\expandafter\minted@optlang@extra%
|
|
\csname minted@optlang\minted@lang @extra\endcsname
|
|
\expandafter\def\expandafter\minted@optlang@extra\expandafter{%
|
|
\minted@optlang@extra,#1}%
|
|
\expandafter\let\csname minted@optlang\minted@lang @extra\endcsname%
|
|
\minted@optlang@extra
|
|
\let\minted@optlang@extra\@empty}
|
|
{%
|
|
\ifcsname minted@optlang\minted@lang @extra\endcsname\else
|
|
\expandafter\def\csname minted@optlang\minted@lang @extra\endcsname{}%
|
|
\fi
|
|
\expandafter\let\expandafter\minted@optlang@extra%
|
|
\csname minted@optlang\minted@lang @extra\endcsname
|
|
\expandafter\def\expandafter\minted@optlang@extra\expandafter{%
|
|
\minted@optlang@extra,#1=false}%
|
|
\expandafter\let\csname minted@optlang\minted@lang @extra\endcsname%
|
|
\minted@optlang@extra
|
|
\let\minted@optlang@extra\@empty}
|
|
\define@booleankey{minted@optcmd}{#1}
|
|
{\expandafter\def\expandafter\minted@optcmd@extra\expandafter{%
|
|
\minted@optcmd@extra,#1}}
|
|
{\expandafter\def\expandafter\minted@optcmd@extra\expandafter{%
|
|
\minted@optcmd@extra,#1=false}}
|
|
}
|
|
\minted@define@opt{encoding}{-P encoding}{#1}
|
|
\minted@define@opt{outencoding}{-P outencoding}{#1}
|
|
\minted@define@opt@escchar{escapeinside}{-O escapeinside}{"#1"}
|
|
\minted@define@opt{stripnl}{-P stripnl}{#1}
|
|
\minted@define@switch{python3}{-P python3=True}
|
|
\minted@define@switch[-P funcnamehighlighting=False]%
|
|
{funcnamehighlighting}{-P funcnamehighlighting}
|
|
\minted@define@switch{startinline}{-P startinline}
|
|
\ifthenelse{\boolean{minted@draft}}%
|
|
{\minted@define@extra{gobble}}%
|
|
{\minted@define@opt{gobble}{-F gobble:n}{#1}}
|
|
\minted@define@opt{codetagify}{-F codetagify:codetags}{#1}
|
|
\minted@define@opt{keywordcase}{-F keywordcase:case}{#1}
|
|
\minted@define@switch{texcl}{-P texcomments}
|
|
\minted@define@switch{texcomments}{-P texcomments}
|
|
\minted@define@switch{mathescape}{-P mathescape}
|
|
\ifthenelse{\boolean{minted@draft}}%
|
|
{\define@booleankey{FV}{linenos}{\@nameuse{FV@Numbers@left}}{}%
|
|
\minted@define@extra@switch{linenos}}%
|
|
{\minted@define@switch{linenos}{-P linenos}}
|
|
\minted@define@optstyle
|
|
\minted@define@extra{frame}
|
|
\minted@define@extra{framesep}
|
|
\minted@define@extra{framerule}
|
|
\minted@define@extra{rulecolor}
|
|
\minted@define@extra{numbersep}
|
|
\minted@define@extra{numbers}
|
|
\minted@define@extra{firstnumber}
|
|
\minted@define@extra{stepnumber}
|
|
\minted@define@extra{firstline}
|
|
\minted@define@extra{lastline}
|
|
\minted@define@extra{baselinestretch}
|
|
\minted@define@extra{xleftmargin}
|
|
\minted@define@extra{xrightmargin}
|
|
\minted@define@extra{fillcolor}
|
|
\minted@define@extra{tabsize}
|
|
\minted@define@extra{fontfamily}
|
|
\minted@define@extra{fontsize}
|
|
\minted@define@extra{fontshape}
|
|
\minted@define@extra{fontseries}
|
|
\minted@define@extra{formatcom}
|
|
\minted@define@extra{label}
|
|
\minted@define@extra@switch{numberblanklines}
|
|
\minted@define@extra@switch{showspaces}
|
|
\minted@define@extra@switch{resetmargins}
|
|
\minted@define@extra@switch{samepage}
|
|
\minted@define@extra@switch{showtabs}
|
|
\minted@define@extra@switch{obeytabs}
|
|
\minted@define@extra@switch{breaklines}
|
|
\minted@define@extra{breakindent}
|
|
\minted@define@extra@switch{breakautoindent}
|
|
\minted@define@extra{breaksymbol}
|
|
\minted@define@extra{breaksymbolsep}
|
|
\minted@define@extra{breaksymbolindent}
|
|
\let\minted@optcmd@bgcolor\@empty
|
|
\define@key{minted@optcmd}{bgcolor}{\@namedef{minted@optcmd@bgcolor}{#1}}
|
|
\newcommand{\minted@encoding}{%
|
|
\ifcsname minted@optcmd@encoding@val\endcsname
|
|
\csname minted@optcmd@encoding@val\endcsname
|
|
\else
|
|
\ifcsname minted@optlang\minted@lang @encoding@val\endcsname
|
|
\csname minted@optlang\minted@lang @encoding@val\endcsname
|
|
\else
|
|
\ifcsname minted@optg@encoding@val\endcsname
|
|
\csname minted@optg@encoding@val\endcsname
|
|
\else
|
|
UTF8%
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}
|
|
\define@booleankey{minted@optg}{autogobble}
|
|
{\expandafter\let\csname minted@optg@autogobble\endcsname\@empty}
|
|
{\expandafter\let\csname minted@optg@autogobble\endcsname\relax}
|
|
\define@booleankey{minted@optlang}{autogobble}
|
|
{\expandafter\let\csname minted@optlang\minted@lang @autogobble\endcsname\@empty}
|
|
{\expandafter\let\csname minted@optlang\minted@lang @autogobble\endcsname\relax}
|
|
\define@booleankey{minted@optcmd}{autogobble}
|
|
{\expandafter\let\csname minted@optcmd@autogobble\endcsname\@empty}
|
|
{\expandafter\let\csname minted@optcmd@autogobble\endcsname\relax}
|
|
\newboolean{minted@autogobble}
|
|
\newcommand{\minted@set@autogobble}{%
|
|
\ifcsname minted@optg@autogobble\endcsname\else
|
|
\expandafter\let\csname minted@optg@autogobble\endcsname\relax
|
|
\fi
|
|
\ifcsname minted@optlang\minted@lang @autogobble\endcsname\else
|
|
\expandafter\let\csname minted@optlang\minted@lang @autogobble\endcsname\relax
|
|
\fi
|
|
\ifcsname minted@optcmd@autogobble\endcsname\else
|
|
\expandafter\let\csname minted@optcmd@autogobble\endcsname\relax
|
|
\fi
|
|
\expandafter\ifx\csname minted@optcmd@autogobble\endcsname\@empty
|
|
\setboolean{minted@autogobble}{true}%
|
|
\else
|
|
\expandafter\ifx\csname minted@optlang\minted@lang @autogobble\endcsname\@empty
|
|
\setboolean{minted@autogobble}{true}%
|
|
\else
|
|
\expandafter\ifx\csname minted@optg@autogobble\endcsname\@empty
|
|
\setboolean{minted@autogobble}{true}%
|
|
\else
|
|
\setboolean{minted@autogobble}{false}%
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}
|
|
\let\FV@ListProcessLine@Orig\FV@ListProcessLine
|
|
\define@booleankey{FV}{breaklines}%
|
|
{\let\FV@ListProcessLine\FV@ListProcessLine@Break}%
|
|
{\let\FV@ListProcessLine\FV@ListProcessLine@Orig}
|
|
\newdimen\FV@BreakIndent
|
|
\define@key{FV}{breakindent}{\FV@BreakIndent=#1}
|
|
\fvset{breakindent=0pt}
|
|
\newboolean{FV@BreakAutoIndent}
|
|
\define@booleankey{FV}{breakautoindent}%
|
|
{\FV@BreakAutoIndenttrue}{\FV@BreakAutoIndentfalse}
|
|
\fvset{breakautoindent=true}
|
|
\define@key{FV}{breaksymbol}{\def\FancyVerbBreakSymbol{#1}}
|
|
\fvset{breaksymbol=\ensuremath{\hookrightarrow}}
|
|
\newdimen\FV@BreakSymbolSep
|
|
\define@key{FV}{breaksymbolsep}{\FV@BreakSymbolSep=#1}
|
|
\fvset{breaksymbolsep=10pt}
|
|
\newdimen\FV@BreakSymbolIndent
|
|
\settowidth{\FV@BreakSymbolIndent}{\ttfamily xxxx}
|
|
\define@key{FV}{breaksymbolindent}{\FV@BreakSymbolIndent=#1}
|
|
\newsavebox{\FV@LineBox}
|
|
\newsavebox{\FV@IndentBox}
|
|
\newsavebox{\FV@LinenoBox}
|
|
\let\FV@LineIndentChars\@empty
|
|
\def\FV@GetNextChar{\let\FV@NextChar=}
|
|
\def\FV@CleanRemainingChars#1\FV@Undefined{}
|
|
\def\FV@GetLineIndent{\afterassignment\FV@CheckChar\FV@GetNextChar}
|
|
\def\FV@CheckChar{%
|
|
\ifx\FV@NextChar\FV@Undefined
|
|
\let\FV@Next=\relax
|
|
\else
|
|
\expandafter\ifx\FV@NextChar\FV@Space
|
|
\g@addto@macro{\FV@LineIndentChars}{\FV@Space}%
|
|
\let\FV@Next=\FV@GetLineIndent
|
|
\else
|
|
\expandafter\ifx\FV@NextChar\FV@Tab
|
|
\g@addto@macro{\FV@LineIndentChars}{\FV@Tab}%
|
|
\let\FV@Next=\FV@GetLineIndent
|
|
\else
|
|
\let\FV@Next=\FV@CleanRemainingChars
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\FV@Next
|
|
}
|
|
\newcommand{\FancyVerbFormatBreakSymbol}{%
|
|
\ifnum\value{linenumber}=1\relax\else\FancyVerbBreakSymbol\fi}%
|
|
\AtBeginEnvironment{Verbatim}{\lineskip=0pt\xdef\FV@theprevdepth{0pt}}
|
|
\def\FV@ListProcessLine@Break#1{%
|
|
\hbox to \hsize{%
|
|
\kern\leftmargin
|
|
\hbox to \linewidth{%
|
|
\sbox{\FV@LineBox}{\FancyVerbFormatLine{#1}}%
|
|
\ifdim\wd\FV@LineBox>\linewidth
|
|
\let\FV@theprevdepth@temp\FV@theprevdepth
|
|
\savebox{\FV@LineBox}{%
|
|
\begingroup
|
|
\vbox{\hsize=\linewidth
|
|
\raggedright
|
|
\prevdepth\FV@theprevdepth
|
|
\leftlinenumbers*
|
|
\setcounter{linenumber}{1}%
|
|
\let\thelinenumber\FancyVerbFormatBreakSymbol
|
|
\begin{internallinenumbers}%
|
|
\linenumbersep=\FV@BreakSymbolSep
|
|
\advance\hsize by -\FV@BreakIndent
|
|
\advance\linewidth by -\FV@BreakIndent
|
|
\noindent\hspace*{-\FV@BreakIndent}%
|
|
\ifdefempty{\FancyVerbBreakSymbol}{}{%
|
|
\advance\hsize by -\FV@BreakSymbolIndent
|
|
\advance\linewidth by -\FV@BreakSymbolIndent
|
|
\hspace*{-\FV@BreakSymbolIndent}}%
|
|
\ifthenelse{\boolean{FV@BreakAutoIndent}}%
|
|
{\let\FV@LineIndentChars\@empty
|
|
\FV@GetLineIndent#1\FV@Undefined
|
|
\savebox{\FV@IndentBox}{\FV@LineIndentChars}%
|
|
\advance\hsize by -\wd\FV@IndentBox
|
|
\advance\linewidth by -\wd\FV@IndentBox
|
|
\hspace*{-\wd\FV@IndentBox}%
|
|
}{}%
|
|
\FancyVerbFormatLine{#1}%
|
|
\end{internallinenumbers}%
|
|
\par\xdef\FV@theprevdepth{\the\prevdepth}}%
|
|
\endgroup
|
|
}%
|
|
\savebox{\FV@LinenoBox}{\FV@LeftListNumber}%
|
|
\vbox to\ht\FV@LineBox{%
|
|
\prevdepth\FV@theprevdepth@temp\FV@LeftListNumber\vfill}%
|
|
\FV@LeftListFrame
|
|
\null\hfill\usebox{\FV@LineBox}\hss
|
|
\FV@RightListFrame
|
|
\vbox to\ht\FV@LineBox{%
|
|
\prevdepth\FV@theprevdepth@temp\FV@RightListNumber\vfill}%
|
|
\else
|
|
\FV@LeftListNumber
|
|
\FV@LeftListFrame
|
|
\vbox{\hsize=\linewidth
|
|
\prevdepth\FV@theprevdepth
|
|
\noindent\FancyVerbFormatLine{#1}%
|
|
\par\xdef\FV@theprevdepth{\the\prevdepth}}\hss
|
|
\FV@RightListFrame
|
|
\FV@RightListNumber
|
|
\fi}%
|
|
\hss}}
|
|
\newsavebox{\minted@bgbox}
|
|
\newenvironment{minted@colorbg}[1]{
|
|
%\setlength{\fboxsep}{-\fboxrule}
|
|
\def\minted@bgcol{#1}
|
|
\noindent
|
|
\begin{lrbox}{\minted@bgbox}
|
|
\begin{minipage}{\linewidth-2\fboxsep}}
|
|
{\end{minipage}
|
|
\end{lrbox}%
|
|
\colorbox{\minted@bgcol}{\usebox{\minted@bgbox}}}
|
|
\newwrite\minted@code
|
|
\newcommand{\minted@savecode}[1]{
|
|
\immediate\openout\minted@code\jobname.pyg\relax
|
|
\immediate\write\minted@code{\expandafter\detokenize\expandafter{#1}}%
|
|
\immediate\closeout\minted@code}
|
|
\newcommand{\minted@write@detok}[1]{%
|
|
\immediate\write\FV@OutFile{\detokenize{#1}}}
|
|
\newcommand{\minted@FVB@VerbatimOut}[1]{%
|
|
\@bsphack
|
|
\begingroup
|
|
\FV@UseKeyValues
|
|
\FV@DefineWhiteSpace
|
|
\def\FV@Space{\space}%
|
|
\FV@DefineTabOut
|
|
\let\FV@ProcessLine\minted@write@detok
|
|
\immediate\openout\FV@OutFile #1\relax
|
|
\let\FV@FontScanPrep\relax
|
|
\let\@noligs\relax
|
|
\FV@Scan}
|
|
\newcommand{\MintedPygmentize}{pygmentize}
|
|
\newcommand{\minted@pygmentize}[2][\jobname.pyg]{%
|
|
\minted@checklang
|
|
\minted@set@autogobble
|
|
\ifthenelse{\boolean{minted@autogobble}}%
|
|
{\def\minted@codefile{\jobname.pyg}}%
|
|
{\def\minted@codefile{#1}}%
|
|
\def\minted@cmd{\MintedPygmentize\space -l #2
|
|
-f latex -F tokenmerge
|
|
\minted@optg \space \csname minted@optlang\minted@lang\endcsname
|
|
\space \minted@optcmd \space -P "verboptions=\minted@getoptg{extra}%
|
|
\minted@getoptlang{extra}\minted@getoptcmd{extra}"
|
|
-o "\minted@outputdir\minted@infile" \space
|
|
"\minted@outputdir\minted@codefile"}%
|
|
% For debugging, uncomment: %%%%
|
|
% \immediate\typeout{\minted@cmd}%
|
|
% %%%%
|
|
\ifthenelse{\boolean{minted@cache}}%
|
|
{%
|
|
\ifx\XeTeXinterchartoks\minted@undefined
|
|
\ifthenelse{\boolean{minted@autogobble}}%
|
|
{\edef\minted@hash{\pdf@filemdfivesum{#1}%
|
|
\pdf@mdfivesum{\minted@cmd autogobble}}}%
|
|
{\edef\minted@hash{\pdf@filemdfivesum{#1}%
|
|
\pdf@mdfivesum{\minted@cmd}}}%
|
|
\else
|
|
\immediate\openout\minted@code\jobname.mintedcmd\relax
|
|
\immediate\write\minted@code{\minted@cmd}%
|
|
\ifthenelse{\boolean{minted@autogobble}}%
|
|
{\immediate\write\minted@code{autogobble}}{}%
|
|
\immediate\closeout\minted@code
|
|
%Cheating a little here by using ASCII codes to write `{` and `}`
|
|
%in the Python code
|
|
\def\minted@hashcmd{%
|
|
\detokenize{python -c "import hashlib;
|
|
hasher = hashlib.sha1();
|
|
f = open(\"}\minted@outputdir\jobname.mintedcmd\detokenize{\", \"rb\");
|
|
hasher.update(f.read());
|
|
f.close();
|
|
f = open(\"}\minted@outputdir#1\detokenize{\", \"rb\");
|
|
hasher.update(f.read());
|
|
f.close();
|
|
f = open(\"}\minted@outputdir\jobname.mintedmd5\detokenize{\", \"w\");
|
|
macro = \"\\edef\\minted@hash\" + chr(123) + hasher.hexdigest() + chr(125) + \"\";
|
|
f.write(\"\\makeatletter\" + macro + \"\\makeatother\\endinput\n\");
|
|
f.close();"}}%
|
|
\immediate\write18{\minted@hashcmd}%
|
|
\input{\minted@outputdir\jobname.mintedmd5}%
|
|
\fi
|
|
\ifwindows
|
|
\edef\minted@infile{%
|
|
\minted@cachedir@windows\@backslashchar\minted@hash.pygtex}%
|
|
\else
|
|
\edef\minted@infile{%
|
|
\minted@cachedir/\minted@hash.pygtex}%
|
|
\fi
|
|
\IfFileExists{\minted@cachedir/\minted@hash.pygtex}{}{%
|
|
\ifthenelse{\boolean{minted@autogobble}}{%
|
|
%Need a version of open() that supports encoding under Python 2
|
|
\edef\minted@autogobblecmd{%
|
|
\detokenize{python -c "import sys;
|
|
import textwrap;
|
|
from io import open;
|
|
f = open(\"}\minted@outputdir#1\detokenize{\", \"r\", encoding=\"}\minted@encoding\detokenize{\");
|
|
t = f.read();
|
|
f.close();
|
|
f = open(\"}\minted@outputdir\jobname.pyg\detokenize{\", \"w\", encoding=\"}\minted@encoding\detokenize{\");
|
|
f.write(textwrap.dedent(t));
|
|
f.close();"}%
|
|
}%
|
|
\immediate\write18{\minted@autogobblecmd}}{}%
|
|
\immediate\write18{\minted@cmd}}%
|
|
\expandafter\minted@addcachefile\expandafter{\minted@hash.pygtex}%
|
|
\minted@inputpyg}%
|
|
{%
|
|
\ifthenelse{\boolean{minted@autogobble}}{%
|
|
%Need a version of open() that supports encoding under Python 2
|
|
\edef\minted@autogobblecmd{%
|
|
\detokenize{python -c "import sys;
|
|
import textwrap;
|
|
from io import open;
|
|
f = open(\"}\minted@outputdir#1\detokenize{\", \"r\", encoding=\"}\minted@encoding\detokenize{\");
|
|
t = f.read();
|
|
f.close();
|
|
f = open(\"}\minted@outputdir\jobname.pyg\detokenize{\", \"w\", encoding=\"}\minted@encoding\detokenize{\");
|
|
f.write(textwrap.dedent(t));
|
|
f.close();"}%
|
|
}%
|
|
\immediate\write18{\minted@autogobblecmd}}{}%
|
|
\immediate\write18{\minted@cmd}%
|
|
\minted@inputpyg}%
|
|
}
|
|
\newcommand{\minted@inputpyg}{%
|
|
\ifthenelse{\equal{\minted@optcmd@bgcolor}{}}%
|
|
{}%
|
|
{\begin{minted@colorbg}{\minted@optcmd@bgcolor}}%
|
|
\input{\minted@outputdir\minted@infile}%
|
|
\ifthenelse{\equal{\minted@optcmd@bgcolor}{}}%
|
|
{}%
|
|
{\end{minted@colorbg}}%
|
|
}
|
|
\newcounter{minted@FancyVerbLineTemp}
|
|
\newcommand{\minted@langlinenoson}{%
|
|
\ifcsname c@minted@lang\minted@lang\endcsname\else
|
|
\newcounter{minted@lang\minted@lang}%
|
|
\fi
|
|
\setcounter{minted@FancyVerbLineTemp}{\value{FancyVerbLine}}%
|
|
\setcounter{FancyVerbLine}{\value{minted@lang\minted@lang}}%
|
|
}
|
|
\newcommand{\minted@langlinenosoff}{%
|
|
\setcounter{minted@lang\minted@lang}{\value{FancyVerbLine}}%
|
|
\setcounter{FancyVerbLine}{\value{minted@FancyVerbLineTemp}}%
|
|
}
|
|
\ifthenelse{\boolean{minted@langlinenos}}{}{%
|
|
\let\minted@langlinenoson\relax
|
|
\let\minted@langlinenosoff\relax
|
|
}
|
|
\newcommand{\setminted}[2][]{%
|
|
\ifthenelse{\equal{#1}{}}%
|
|
{\setkeys{minted@optg}{#2}}%
|
|
{\def\minted@lang{#1}\setkeys{minted@optlang}{#2}}%
|
|
}
|
|
\newcommand{\usemintedstyle}[2][]{\setminted[#1]{style=#2}}
|
|
\newrobustcmd{\mintinline}[2][]{%
|
|
\minted@resetoptcmd
|
|
\setkeys{minted@optcmd}{#1}%
|
|
\def\minted@lang{#2}%
|
|
\begingroup
|
|
\let\do\@makeother\dospecials
|
|
\catcode`\{=1
|
|
\catcode`\}=2
|
|
\catcode`\^^I=\active
|
|
\@ifnextchar\bgroup
|
|
{\minted@inline@iii}%
|
|
{\catcode`\{=12\catcode`\}=12
|
|
\minted@inline@i}}
|
|
\def\minted@inline@i#1{%
|
|
\endgroup
|
|
\def\minted@inline@ii##1#1{%
|
|
\minted@inline@iii{##1}}%
|
|
\begingroup
|
|
\let\do\@makeother\dospecials
|
|
\minted@inline@ii}
|
|
\ifthenelse{\boolean{minted@draft}}%
|
|
{\newcommand{\minted@inline@iii}[1]{%
|
|
\endgroup
|
|
\def\minted@argretok{%
|
|
\begingroup
|
|
\everyeof{\noexpand}%
|
|
\endlinechar-1\relax
|
|
\let\do\@makeother\dospecials
|
|
\catcode`\ =\active
|
|
\catcode`\^^I=\active
|
|
\scantokens{#1}%
|
|
\endgroup}%
|
|
\begingroup
|
|
\expandafter\fvset\expandafter{\minted@optg@extra}%
|
|
\minted@checklang
|
|
\expandafter\let\expandafter\minted@optlang@extra\csname minted@optlang\minted@lang @extra\endcsname
|
|
\expandafter\fvset\expandafter{\minted@optlang@extra}%
|
|
\expandafter\fvset\expandafter{\minted@optcmd@extra}%
|
|
\FV@BeginVBox
|
|
\frenchspacing
|
|
\FV@SetupFont
|
|
\FV@DefineWhiteSpace
|
|
\FancyVerbDefineActive
|
|
\FancyVerbFormatCom
|
|
\FV@ObeyTabsInit
|
|
\hbox{\FancyVerbFormatLine{\minted@argretok}}%
|
|
\FV@EndVBox
|
|
\endgroup}}%
|
|
{\newcommand{\minted@inline@iii}[1]{%
|
|
\endgroup
|
|
\immediate\openout\minted@code\jobname.pyg\relax
|
|
\immediate\write\minted@code{\detokenize{#1}}%
|
|
\immediate\closeout\minted@code
|
|
\begingroup
|
|
\RecustomVerbatimEnvironment{Verbatim}{BVerbatim}{}%
|
|
\minted@pygmentize{\minted@lang}%
|
|
\endgroup}}
|
|
\ifthenelse{\boolean{minted@draft}}%
|
|
{\newcommand{\mint}[3][]{%
|
|
\def\minted@lang{#2}%
|
|
\DefineShortVerb{#3}%
|
|
\minted@resetoptcmd
|
|
\setkeys{minted@optcmd}{#1}%
|
|
\minted@langlinenoson
|
|
\begingroup
|
|
\expandafter\fvset\expandafter{\minted@optg@extra}%
|
|
\minted@checklang
|
|
\expandafter\let\expandafter\minted@optlang@extra\csname minted@optlang\minted@lang @extra\endcsname
|
|
\expandafter\fvset\expandafter{\minted@optlang@extra}%
|
|
\expandafter\fvset\expandafter{\minted@optcmd@extra}%
|
|
\SaveVerb[aftersave={%
|
|
\UndefineShortVerb{#3}%
|
|
\let\FV@Line\FV@SV@minted@verb
|
|
\FV@VerbatimBegin\FV@PreProcessLine\FV@VerbatimEnd
|
|
\endgroup
|
|
\UndefineShortVerb{#3}%
|
|
\minted@langlinenosoff
|
|
\@doendpe\global\@ignorefalse\ignorespaces}]{minted@verb}#3}}%
|
|
{\newcommand{\mint}[3][]{%
|
|
\def\minted@lang{#2}%
|
|
\DefineShortVerb{#3}%
|
|
\minted@resetoptcmd
|
|
\setkeys{minted@optcmd}{#1}%
|
|
\SaveVerb[aftersave={%
|
|
\UndefineShortVerb{#3}%
|
|
\minted@langlinenoson
|
|
\minted@savecode{\FV@SV@minted@verb}%
|
|
\minted@pygmentize{#2}%
|
|
\minted@langlinenosoff}]{minted@verb}#3}}
|
|
\ifthenelse{\boolean{minted@draft}}%
|
|
{\newenvironment{minted}[2][]
|
|
{\VerbatimEnvironment
|
|
\let\FVB@VerbatimOut\minted@FVB@VerbatimOut
|
|
\def\minted@lang{#2}%
|
|
\minted@resetoptcmd
|
|
\setkeys{minted@optcmd}{#1}%
|
|
\expandafter\fvset\expandafter{\minted@optg@extra}%
|
|
\minted@checklang
|
|
\expandafter\let\expandafter\minted@optlang@extra\csname minted@optlang\minted@lang @extra\endcsname
|
|
\expandafter\fvset\expandafter{\minted@optlang@extra}%
|
|
\expandafter\fvset\expandafter{\minted@optcmd@extra}%
|
|
\minted@langlinenoson
|
|
\begin{Verbatim}}%
|
|
{\end{Verbatim}%
|
|
\minted@langlinenosoff}}%
|
|
{\newenvironment{minted}[2][]
|
|
{\VerbatimEnvironment
|
|
\let\FVB@VerbatimOut\minted@FVB@VerbatimOut
|
|
\def\minted@lang{#2}%
|
|
\minted@resetoptcmd
|
|
\setkeys{minted@optcmd}{#1}%
|
|
\begin{VerbatimOut}[codes={\catcode`\^^I=12}]{\jobname.pyg}}%
|
|
{\end{VerbatimOut}%
|
|
\minted@langlinenoson
|
|
\minted@pygmentize{\minted@lang}%
|
|
\minted@langlinenosoff}}
|
|
\ifthenelse{\boolean{minted@draft}}%
|
|
{\newcommand{\inputminted}[3][]{%
|
|
\def\minted@lang{#2}%
|
|
\minted@resetoptcmd
|
|
\setkeys{minted@optcmd}{#1}%
|
|
\begingroup
|
|
\expandafter\fvset\expandafter{\minted@optg@extra}%
|
|
\minted@checklang
|
|
\expandafter\let\expandafter\minted@optlang@extra\csname minted@optlang\minted@lang @extra\endcsname
|
|
\expandafter\fvset\expandafter{\minted@optlang@extra}%
|
|
\expandafter\fvset\expandafter{\minted@optcmd@extra}%
|
|
\VerbatimInput{#3}%
|
|
\endgroup}}%
|
|
{\newcommand{\inputminted}[3][]{%
|
|
\def\minted@lang{#2}%
|
|
\minted@resetoptcmd
|
|
\setkeys{minted@optcmd}{#1}%
|
|
\minted@pygmentize[#3]{#2}}}
|
|
\newcommand{\newminted}[3][]{
|
|
\ifthenelse{\equal{#1}{}}
|
|
{\def\minted@envname{#2code}}
|
|
{\def\minted@envname{#1}}
|
|
\newenvironment{\minted@envname}
|
|
{\VerbatimEnvironment
|
|
\begin{minted}[#3]{#2}}
|
|
{\end{minted}}
|
|
\newenvironment{\minted@envname *}[1]
|
|
{\VerbatimEnvironment\begin{minted}[#3,##1]{#2}}
|
|
{\end{minted}}}
|
|
\newcommand{\newmint}[3][]{
|
|
\ifthenelse{\equal{#1}{}}
|
|
{\def\minted@shortname{#2}}
|
|
{\def\minted@shortname{#1}}
|
|
\expandafter\newcommand\csname\minted@shortname\endcsname[2][]{
|
|
\mint[#3,##1]{#2}##2}}
|
|
\newcommand{\newmintedfile}[3][]{
|
|
\ifthenelse{\equal{#1}{}}
|
|
{\def\minted@shortname{#2file}}
|
|
{\def\minted@shortname{#1}}
|
|
\expandafter\newcommand\csname\minted@shortname\endcsname[2][]{
|
|
\inputminted[#3,##1]{#2}{##2}}}
|
|
\newcommand{\newmintinline}[3][]{%
|
|
\ifthenelse{\equal{#1}{}}%
|
|
{\def\minted@shortname{#2inline}}%
|
|
{\def\minted@shortname{#1}}%
|
|
\expandafter\newrobustcmd\csname\minted@shortname\endcsname{%
|
|
\begingroup
|
|
\let\do\@makeother\dospecials
|
|
\catcode`\{=1
|
|
\catcode`\}=2
|
|
\@ifnextchar[{\endgroup\minted@inliner[#3][#2]}%
|
|
{\endgroup\minted@inliner[#3][#2][]}}%
|
|
\def\minted@inliner[##1][##2][##3]{\mintinline[##1,##3]{##2}}%
|
|
}
|
|
\@ifundefined{minted@float@within}
|
|
{\newfloat{listing}{h}{lol}}
|
|
{\newfloat{listing}{h}{lol}[\minted@float@within]}
|
|
\newcommand{\listingscaption}{Listing}
|
|
\floatname{listing}{\listingscaption}
|
|
\newcommand{\listoflistingscaption}{List of listings}
|
|
\providecommand{\listoflistings}{\listof{listing}{\listoflistingscaption}}
|
|
\AtEndOfPackage{%
|
|
\ifthenelse{\boolean{minted@draft}}{}{%
|
|
\ifnum\pdf@shellescape=1\relax\else
|
|
\PackageError{minted}%
|
|
{You must invoke LaTeX with the
|
|
-shell-escape flag}%
|
|
{Pass the -shell-escape flag to LaTeX. Refer to the minted.sty
|
|
documentation for more information.}%
|
|
\fi
|
|
\TestAppExists{pygmentize}
|
|
\ifAppExists\else
|
|
\PackageError{minted}%
|
|
{You must have `pygmentize' installed
|
|
to use this package}%
|
|
{Refer to the installation instructions in the minted
|
|
documentation for more information.}%
|
|
\fi
|
|
\setminted{style=default}%
|
|
}%
|
|
}
|
|
\AtEndDocument{
|
|
\ifx\XeTeXinterchartoks\minted@undefined
|
|
\else
|
|
\DeleteFile[\minted@outputdir]{\jobname.mintedcmd}%
|
|
\DeleteFile[\minted@outputdir]{\jobname.mintedmd5}%
|
|
\fi
|
|
\DeleteFile[\minted@outputdir]{\jobname.pyg}%
|
|
\DeleteFile[\minted@outputdir]{\jobname.out.pyg}%
|
|
}
|
|
%% \Finale
|
|
\endinput
|
|
%%
|
|
%% End of file `minted.sty'.
|