730796ee31
Previously the LaTeX writer created invalid LaTeX when `--listings` was specified and a code span occured inside emphasis or another construction. This is because the characters `%{}\` must be escaped in lstinline when the listinline occurs in another command, otherwise they must not be escaped. To deal with this, adoping Michael Kofler's suggestion, we always wrap lstinline in a dummy command `\passthrough`, now defined in the default template if `--listings` is specified. This way we can consistently escape the special characters. Closes #1629.
85 lines
2.3 KiB
Text
85 lines
2.3 KiB
Text
\documentclass[]{article}
|
|
\usepackage{lmodern}
|
|
\usepackage{amssymb,amsmath}
|
|
\usepackage{ifxetex,ifluatex}
|
|
\usepackage{fixltx2e} % provides \textsubscript
|
|
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage[utf8]{inputenc}
|
|
\else % if luatex or xelatex
|
|
\usepackage{unicode-math}
|
|
\defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
|
|
\fi
|
|
% use upquote if available, for straight quotes in verbatim environments
|
|
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
|
|
% use microtype if available
|
|
\IfFileExists{microtype.sty}{%
|
|
\usepackage[]{microtype}
|
|
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
|
|
}{}
|
|
\PassOptionsToPackage{hyphens}{url} % url is loaded by hyperref
|
|
\usepackage[unicode=true]{hyperref}
|
|
\hypersetup{
|
|
pdfborder={0 0 0},
|
|
breaklinks=true}
|
|
\urlstyle{same} % don't use monospace font for urls
|
|
\usepackage{listings}
|
|
\newcommand{\passthrough}[1]{#1}
|
|
\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
|
|
\IfFileExists{parskip.sty}{%
|
|
\usepackage{parskip}
|
|
}{% else
|
|
\setlength{\parindent}{0pt}
|
|
\setlength{\parskip}{6pt plus 2pt minus 1pt}
|
|
}
|
|
\setlength{\emergencystretch}{3em} % prevent overfull lines
|
|
\providecommand{\tightlist}{%
|
|
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
|
|
\setcounter{secnumdepth}{0}
|
|
% Redefines (sub)paragraphs to behave more like sections
|
|
\ifx\paragraph\undefined\else
|
|
\let\oldparagraph\paragraph
|
|
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
|
|
\fi
|
|
\ifx\subparagraph\undefined\else
|
|
\let\oldsubparagraph\subparagraph
|
|
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
|
|
\fi
|
|
|
|
% set default figure placement to htbp
|
|
\makeatletter
|
|
\def\fps@figure{htbp}
|
|
\makeatother
|
|
|
|
|
|
\date{}
|
|
|
|
\begin{document}
|
|
|
|
\hypertarget{lhs-test}{%
|
|
\section{lhs test}\label{lhs-test}}
|
|
|
|
\texttt{unsplit} is an arrow that takes a pair of values and combines them to
|
|
return a single value:
|
|
|
|
\begin{code}
|
|
unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d
|
|
unsplit = arr . uncurry
|
|
-- arr (\op (x,y) -> x `op` y)
|
|
\end{code}
|
|
|
|
\texttt{(***)} combines two arrows into a new arrow by running the two arrows on a
|
|
pair of values (one arrow on the first item of the pair and one arrow on the
|
|
second item of the pair).
|
|
|
|
\begin{verbatim}
|
|
f *** g = first f >>> second g
|
|
\end{verbatim}
|
|
|
|
Block quote:
|
|
|
|
\begin{quote}
|
|
foo bar
|
|
\end{quote}
|
|
|
|
\end{document}
|