LaTeXでAlloy

http://alloy.mit.edu/community/node/506
に、LaTeXAlloyのリストを表示するサンプルがあったので試す。

\documentclass{jarticle}
\usepackage{amsmath}
\usepackage{listings,jlisting}
\lstdefinelanguage{Alloy}
{morekeywords={abstract, all, and, as, assert, but, check, disj, else,
    exactly, extends, fact, for, fun, iden, if, iff, implies, in, Int,
    int, let, lone, module, no, none, not, one, open, or, part, pred,
    run, seq, set, sig, some, sum, then, univ},
  sensitive=true,
  morecomment=[l][\small\itshape]{--},
  morecomment=[l][\small\itshape]{//},
  morecomment=[s][\small\itshape]{/*}{*/},
  % basicstyle=\sffamily,
  tabsize=2,
  columns=fullflexible,
  literate=
  {->}{{$\to$}}1
  {^}{{$\mspace{-3mu}\hat{\quad}\mspace{-3mu}$}}1
  {<}{$<$ }2
  {>}{$>$ }2
  {>=}{$\geq$}2
  {=<}{$\leq$ }2
  {<:}{{$<\mspace{-3mu}:$}}2
  {:>}{{$:\mspace{-3mu}>$}}2
  {=>}{{$\Rightarrow$ }}2
  {+}{$+$ }2
  {++}{{$+\mspace{-8mu}+$ }}2
  {\~}{{$\mspace{-3mu}\tilde{\quad}\mspace{-3mu}$}}1
  {!=}{$\neq$ }2
  {*}{${}^{\ast}$}1
  {.}{$\cdot$}1
  {\#}{$\#$}1
}
\begin{document}
\lstset{language=Alloy}

\begin{lstlisting}[numbers=left, numberstyle={\tiny\oldstylenums}, name=aName]
/* ユーザ */
sig User {}
/* ロール */
sig Role {}
/* 権限 */
sig Permission {}

run {}
\end{lstlisting}
\end{document}

記号の位置調整にmspaceが使われているのでamsmathが必要、ってとこで躓いていた。