Consider I have the following commands:
\newcommand{\ListStartSimple}{\begin{itemize}[label={}, leftmargin=0.15in]}\newcommand{\ListStartLineSimple}{\begin{itemize}[label={}, leftmargin=0.38in]}\newcommand{\ListStartBullet}{\begin{itemize}[label=\textbullet, leftmargin=0.15in]}\newcommand{\ListStartLineBullet}{\begin{itemize}[label=\textbullet, leftmargin=0.38in]}\newcommand{\ListStartBulletTiny}{\begin{itemize}[label=\tiny\textbullet, leftmargin=0.15in]}\newcommand{\ListStartLineBulletTiny}{\begin{itemize}[label=\tiny\textbullet, leftmargin=0.38in]}\newcommand{\ListStartDash}{\begin{itemize}[label=\textendash, leftmargin=0.15in]}\newcommand{\ListStartLineDash}{\begin{itemize}[label=\textendash, leftmargin=0.38in]}\newcommand{\ListEnd}[1][-5]{\end{itemize}\vspace{#1pt}}
So in my Tex file, I can easily begin a list with my configurations.
\documentclass[a4paper,11pt]{article}\begin{document}\ListStartSimple \item This is a list \ListEnd\ListStartLineSimple \item This is a list \ListEnd\ListStartBullet \item This is a list \ListEnd\ListStartLineBullet \item This is a list \ListEnd\ListStartBulletTiny \item This is a list \ListEnd\ListStartLineBulletTiny \item This is a list \ListEnd\ListStartDash \item This is a list \ListEnd\ListStartLineDash \item This is a list \ListEnd\end{document}
Which gives me:
What do I need?
As you can see, these commands are redundant and could be easily summarized into one command. Instead of having different \newcommand
s, I prefer to have only one command with hasmargin, label, labelsize
parameters. So I can generate the exact above image with something similar to this:
\List \item This is a list \ListEnd\List[withmargin] \item This is a list \ListEnd\List[bullet] \item This is a list \ListEnd\List[withmargin,bullet] \item This is a list \ListEnd\List[bullet,tiny] \item This is a list \ListEnd\List[hasmargin,bullet,tiny] \item This is a list \ListEnd\List[dash] \item This is a list \ListEnd\List[hasmargin,dash] \item This is a list \ListEnd