\documentclass[a4paper]{article}

\usepackage{fontspec}

\usepackage{polyglossia}
    \setmainlanguage{english}

\usepackage{listings}
    \lstset{basicstyle=\ttfamily}

\usepackage{phonrule}
\usepackage{gb4e}

\title{The \texttt{phonrule} package (v1.3.2)}
\author{Stefano Coretta \\ \texttt{stefano.coretta \textit{at} postgrad.manchester.ac.uk}}

\reversemarginpar

\begin{document}
\maketitle

\section{Purpose}
This package provides macros for typesetting phonological rules like those in \textit{Sound Pattern of English} (Chomsky, Noam \& Morris Halle. 1968.\textit{The sound pattern of English}. New York, Evanston, and London: Harper \& Row).

\section{Usage}

\begin{quote}
\begin{lstlisting}
\phon{〈input〉}{〈output〉}
\end{lstlisting}
\end{quote}

The command \verb+\phon+ has two arguments: the first one is the input of the rule and the second is its output.
Here is an example with the code and the result it produces:

\begin{exe}
\ex \verb+\phon{z}{r}+
\ex \phon{z}{r}
\end{exe}

\begin{quote}
\begin{lstlisting}
\phonc{〈input〉}{〈output〉}{〈context〉}
\end{lstlisting}
\end{quote}

\verb+\phonc+ adds a third argument for the context:

\begin{exe}
\ex \verb+\phonc{a}{ə}{[–stressed]}+
\ex \phonc{a}{ə}{[–stressed]}
\end{exe}

The commands \verb+\phonl+, \verb+\phonr+ and \verb+\phonb+ add a place holder line and put the context, respectively, on the left (l), on the right (r) and on both sides (b):

\begin{exe}
\ex
    \begin{xlist}
    \ex \verb+\phonl{k}{c}{i}+
    \ex \phonl{k}{tʃ}{i}
    \end{xlist}
\ex
    \begin{xlist}
    \ex \verb+\phonr{t}{ts}{u}+
    \ex \phonr{t}{ts}{u}
    \end{xlist}
\ex
    \begin{xlist}
    \ex \verb+\phonb{s}{z}{V}{V}+
    \ex \phonb{s}{z}{V}{V}
    \end{xlist}
\end{exe}

The \verb+\oneof+ command provides the possibility to compile several contexts, one per line, embraced by a left curly bracket.

\begin{exe}
\ex
\begin{lstlisting}
\phonc{t}{ts}{
    \oneof{
    \phold i \\
    \phold u}
    }
\end{lstlisting}
\ex \phonc{t}{ts}{
    \oneof{
    \phold i \\
    \phold u}
    }
\end{exe}

The \verb+\phonfeat+ command allows you to insert feature specifications.
The possible values are \texttt{[c]} for centre (the default), \texttt{[l]} for left-aligned, and \texttt{[r]} for right-aligned. 

\begin{exe}
\ex
\begin{lstlisting}
\phonc{t}{ts}{\phold
    \phonfeat[l]{
        −consonantal \\
        +high \\
        +front}
    }
\end{lstlisting}
\ex \phonc{t}{ts}{\phold
    \phonfeat[l]{
        −consonantal \\
        +high \\
        +front}
    }
\end{exe}

\verb+\phold+ typesets a place holder line. You can nest \verb|oneof| and \verb|phonfeat| commands for complex rules.
The \verb|oneof| command accepts an optional argument which tells the alignment of the context.

\begin{exe}
\ex
\begin{lstlisting}
\phonc{x}{y}{\oneof[l]{
    \phold z \\
    \phonfeat{
        +feature x \\
        −feature y
    } \phold
    }}
\end{lstlisting}
\ex \phonc{x}{y}{\oneof{
    \phold z \\
    \phonfeat{
        +feature x \\
        −feature y
    } \phold
    }}
\end{exe}

You can use \verb|\env|, \verb|\envl|, \verb|\envr|, \verb|\envb| for rules with more than one output: these commands typeset only the different outputs with their respective environments.
The possible values are \texttt{[c]} for centre (the default), \texttt{[l]} for left-aligned, and \texttt{[r]} for right-aligned.
The following example shows the use of the optional argument with \texttt{[l]}.
The \verb|\env|, \verb|\envl|, \verb|\envr|, \verb|\envb| have a starred version to be used when an optional argument is set in \verb|\oneof|.

\begin{exe}
\ex
\begin{lstlisting}
\phon{x}{\oneof[l]{
    \envr*{w}{z} \\
    \envl*{v}{\phonfeat{
        +feature x \\
        −feature y
    }}}}
\end{lstlisting}
\ex \phon{x}{\oneof[l]{
    \envr*{w}{z} \\
    \envl*{v}{\phonfeat{
        +feature x \\
        −feature y
    }}}}
\end{exe}

\section{Change log}

\subsection*{v1.3.2 - 2017-04-16}
\subsubsection*{Added}
\begin{itemize}
    \item optional argument for text alignment in \verb+\phonfeat+ command
\end{itemize}

\subsection*{v1.3.1 - 2017-01-02}
\subsubsection*{Added}
\begin{itemize}
    \item needs \TeX{} format \LaTeX2e
\end{itemize}
\subsubsection*{Removed}
\begin{itemize}
    \item \verb+\makeatletter+
    \item unused definition
\end{itemize}

\subsection*{v1.3.0 - 2016-12-26}
\subsubsection*{Added}
\begin{itemize}
    \item optional argument for text alignment in \verb+\oneof+ command
    \item starred version of the \verb+\env+ command family for use with optional argument in \verb+\oneof+
\end{itemize}
\subsubsection*{Changed}
\begin{itemize}
    \item definition of \verb+\phon+ command family
    \item header of \texttt{phonrule.sty}
    \item extension of README, now \texttt{.md}
\end{itemize}
\subsubsection*{Removed}
\begin{itemize}
    \item package \texttt{ragged2e}
\end{itemize}

\subsection*{v1.2.0}
\subsubsection*{Added}
\begin{itemize}
\item \texttt{ragged2e} package for \verb+\Centering+ command
\end{itemize}
\subsubsection*{Fixed}
\begin{itemize}
\item Fixed: now the content of the feature matrices is centred and not left aligned
\end{itemize}

\subsection*{v1.1.0}
\subsubsection*{Changed}
\begin{itemize}
\item definition of \verb+\phonfeat+ and \verb+\oneof+ with \verb+\pbox+ (requires package \texttt{pbox})
\subsubsection*{Fixed}
\item documentation typos
\end{itemize}

\subsection*{v1.0.0}
\subsubsection*{Added}
\begin{itemize}
\item new commands \verb|\env| for personalised outputs
\end{itemize}

\subsubsection*{Changed}
\begin{itemize}
\item definition of commands with \verb|\ensuremath|
\item environments to commands
\item place holder to 1.5ex length, -1.5pt vertical position
\item curly brackets to only left in \verb|\oneof| command
\end{itemize}




\end{document}