3 % https://tex.stackexchange.com/questions/149056/how-can-i-define-additional-literate-replacements-without-deleting-existing-ones
5 \def\addToLiterate#1{\edef\lst@literate
{\unexpanded\expandafter{\lst@literate
}\unexpanded{#1}}}
6 \lst@Key
{moreliterate
}{}{\addToLiterate{#1}}
8 \definecolor{lstbg
}{gray
}{.95}
9 % General listings settings
13 breakatwhitespace=false,
18 escapeinside=
{[+
}{+
]},
% chktex 9
20 backgroundcolor=
\color{lstbg
},
24 showstringspaces=false,
31 \usepackage{preamble/lstlangclean
}
32 \usepackage{preamble/lstlanghaskell
}
33 \usepackage{preamble/lstlangarduino
}
41 \newcommand{\cinline}[1]{\lstinline[language=c,postbreak=
]|
#1|
}
42 \newcommand{\arduinoinline}[1]{\lstinline[language=
{[Arduino
]C++
},postbreak=
]|
#1|
}
43 \newcommand{\pythoninline}[1]{\lstinline[language=Python,postbreak=
]|
#1|
}
44 \newcommand{\cleaninline}[2][]{\lstinline[language=Clean,postbreak=,
#1]|
#2|
}
45 \newcommand{\cleaninputlisting}[2][]{\renewcommand*
{\lstlistingname}{Listing (
\gls{CLEAN
})
}\lstinputlisting[escapeinside=
{/*
}{*/
},language=Clean,
#1]{\subfix{#2}}}
46 \newcommand{\haskellinline}[1]{\lstinline[language=
{[Regular
]Haskell
},postbreak=
]|
#1|
}
47 \newcommand{\haskellinputlisting}[2][]{\renewcommand*
{\lstlistingname}{Listing (
\gls{HASKELL
})
}\lstinputlisting[language=
{[Regular
]Haskell
},
#1]{\subfix{#2}}}
48 \newcommand{\haskelllhstexinline}[1]{\lstinline[language=
{[Lhs2Tex
]Haskell
},postbreak=
]|
#1|
}
49 %For storing listings in footnotes
51 % Fix list of listings title
52 \renewcommand{\lstlistlistingname}{List of Listings
}
53 % Fix list of listings chapter separator
55 \let\my@chapter\@chapter
%
56 \renewcommand*
{\@chapter
}{%
57 \addtocontents{lol
}{\protect\addvspace{10pt
}}%
61 % Mark source code in the margin par
62 \newcommand{\srcmark}[1]{\marginpar[\footnotesize\emph{#1}]{\footnotesize\emph{#1}}}
64 \lstnewenvironment{lstPython
}[1][]
66 \lstset{language=Python,
#1}
67 \renewcommand*
{\lstlistingname}{Listing (
\gls{PYTHON
})
}
70 \lstnewenvironment{lstClean
}[1][]
72 \lstset{language=Clean,
#1}
73 \renewcommand*
{\lstlistingname}{Listing (
\gls{CLEAN
})
}
76 \lstnewenvironment{lstArduino
}[1][]
78 \lstset{language=
{[Arduino
]C++
},
#1}
79 \renewcommand*
{\lstlistingname}{Listing (
\gls{CPP
})
}
82 \lstnewenvironment{lstHaskell
}[1][]
84 \lstset{language=
{[Regular
]Haskell
},
#1}%
85 \renewcommand*
{\lstlistingname}{Listing (
\gls{HASKELL
})
}
88 \lstnewenvironment{lstHaskellLhstex
}[1][]
90 \lstset{language=
{[Lhs2Tex
]Haskell
},
#1}%
91 \renewcommand*
{\lstlistingname}{Listing (
\gls{HASKELL
})
}
96 \usepackage[algochapter,linesnumbered,lined,boxed
]{algorithm2e
}
97 % Fix the algorithm font
98 \renewcommand\AlCapFnt{\normalfont}
101 \patchcmd{\lsthk@SelectCharTable
}{%
102 \lst@ifbreaklines
\lst@Def
{`)
}{\lst@breakProcessOther)
}\fi