# Small wrapper for easylist using \item like syntax and a new environment

I'm trying to create a new environment for using the package easylist so that some users that are not used to LaTeX can easily make use of it. Right now the environment and its custom commands are defined like this:

\usepackage[at]{easylist}
\ListProperties(Style*=,Numbers=a,FinalMark={.})

\newenvironment{objectives}
{
\newcommand{\spobj}{@}
\newcommand{\goal}{@@}
\newcommand{\ind}{@@@}
\begin{easylist}
}
{
\end{easylist}
}


This works:

\begin{objectives}
@ Objective 1
@@ Goal 1
@@@ Indicator 1
@@@ Indicator 2
@@@ Indicator 3
@@ Goal 2
@@@ Indicator 1
@@@ Indicator 2
\end{objectives}


And the result looks like this:

I want to use the specific commands for adding the amount of @ needed like this:

\begin{objectives}
\spobj Objective 1
\goal Goal 1
\ind Indicator 1
\ind Indicator 2
\ind Indicator 3
\goal Goal 2
\ind Indicator 1
\ind Indicator 2
\end{objectives}


And the result looks like this:

I don't know the right way to achieve this. Maybe the problem is somewhere in between the time LaTeX translates the commands, or the command doesn't know it is inside a easylist environment.

Can someone tell me how to do this the right way? Maybe point me in the right direction..

Thanks

You have to make @ an active character with \Activate and switch off this feature with \Deactivate later on. This can be either done by using the \spobj etc. commands outside of objectives or wrap \Activate\newenvironment{objectives}...\end{objectives}\Deactivate

In addition, the @ etc. characters must be followed by a space character (as stated in the documentation) in order to show the numbers/labels (which is most likely wanted for an enumeration)

In my point of view, easylist is a strange package, which nice features however, but difficult to understand.

\documentclass{article}

\usepackage[at]{easylist}
\ListProperties(Style*=,Numbers=a,FinalMark={.})

\Activate
\newcommand{\spobj}{@ } % Explicit space after @ needed!!!!!
\newcommand{\goal}{@@ }
\newcommand{\ind}{@@@ }
\Deactivate

\newenvironment{objectives}
{%
\begin{easylist}
}
{
\end{easylist}
}

\begin{document}

\begin{objectives}
\spobj Objective 1

\goal Goal 1

\ind Indicator 1

\ind Indicator 2

\ind Indicator 3

\goal Goal 2

\ind Indicator 1

\ind Indicator 2
\end{objectives}

\end{document}