# styleitems — TikZ-based decorative list labels with independent auto-numbering

**Version:** 1.0  
**Date:** 2025-08-13  
**Author:** Faris Hameed 
**Email:** classsec81@gmail.com
**License:** LaTeX Project Public License (LPPL) v1.3c or later  


## Description

`styleitems` provides a fully self-contained, independent auto-numbering system
with TikZ-drawn decorative list labels.  Unlike packages such as `enumitem`, each list manages its own counter
through an internal stack mechanism, ensuring that nested lists never
interfere with each other.

Available label shapes:

- **Basic shapes:** Circle, Square, Rectangle, Diamond, Triangle, Pentagon,
  Hexagon, Octagon, Star (5-point), Star (12-point)
- **Callouts:** Ellipse Callout (left/right), Cloud Callout (left/right)
- **Arrows:** Right, Left, Up, Down

Every shape comes in two flavours:
- **Vertical** (`*List` environments, using `\MSAutoLine{}`)
- **Inline** (`*Inline` environments, using `\MSAutoInline{}`)

---

## Requirements

- `tikz` (with libraries: `shapes.geometric`, `shapes.misc`,
  `shapes.callouts`, `shapes.arrows`)
- `xcolor` (options: `svgnames`, `dvipsnames`, `x11names`)
- `xparse`
- `etoolbox`
- `bidicontour` (option: `outline`)
- `graphicx`

---

### Manual installation

Copy `styleitems.sty` into a directory searched by TeX, e.g.:

TEXMFHOME/tex/latex/styleitems/

Then update the file database if needed (e.g. `texhash`).

---

## Quick start

```latex
\usepackage{styleitems}

% Vertical list
\begin{AutoCircleList}[blue][arabic]
  \MSAutoLine{First item}
  \MSAutoLine{Second item}
\end{AutoCircleList}

% Nested lists — counters are fully independent
\begin{AutoCircleList}[blue][arabic]
  \MSAutoLine{Outer item one}
  \begin{AutoStarList}[Gold][aralph]
    \MSAutoLine{Inner item one}
    \MSAutoLine{Inner item two}
  \end{AutoStarList}
  \MSAutoLine{Outer item two}   % correctly shows 2, not 3
\end{AutoCircleList}

% Inline list
\begin{AutoHexInline}[ForestGreen][roman]
  \MSAutoInline{Alpha}
  \MSAutoInline{Beta}
  \MSAutoInline{Gamma}
\end{AutoHexInline}
```

### Environment signature

Most environments accept four optional arguments:

```
\begin{Auto<Shape>List}[color][style][rotate][scale]
```

Callout environments add a direction argument:

```
\begin{AutoEllipseCalloutList}[color][style][direction][rotate][scale]
```

### Numbering styles

| Key          | Output example                |
|--------------|-------------------------------|
| `arabic`     | 1, 2, 3, …                    |
| `indic`      | ١, ٢, ٣, … (Indic)    |
| `alph`       | a, b, c, …                    |
| `Alph`       | A, B, C, …                    |
| `roman`      | i, ii, iii, …                 |
| `Roman`      | I, II, III, …                 |
| `aralph`     | أ, ب, ت, … (Hijai order)     |
| `aralphabjad`| أ, ب, ج, … (Abjad order)     |

---

## License

This work may be distributed and/or modified under the conditions of the
LaTeX Project Public License, either version 1.3c of this license or (at your
option) any later version.  The latest version of this license is in:

  https://www.latex-project.org/lppl.txt

This work has the LPPL maintenance status "maintained".  
The Current Maintainer of this work is Faris Hameed.

## Repository

If you find a bug or want to contribute, please contact the author via email.