texlive[75967] Master: enumsub (4aug25)

commits+karl at tug.org commits+karl at tug.org
Mon Aug 4 21:42:42 CEST 2025


Revision: 75967
          https://tug.org/svn/texlive?view=revision&revision=75967
Author:   karl
Date:     2025-08-04 21:42:41 +0200 (Mon, 04 Aug 2025)
Log Message:
-----------
enumsub (4aug25)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/enumsub/
    trunk/Master/texmf-dist/doc/latex/enumsub/MANIFEST.txt
    trunk/Master/texmf-dist/doc/latex/enumsub/README.md
    trunk/Master/texmf-dist/doc/latex/enumsub/enumsub-example.pdf
    trunk/Master/texmf-dist/doc/latex/enumsub/enumsub-example.tex
    trunk/Master/texmf-dist/doc/latex/enumsub/enumsub.pdf
    trunk/Master/texmf-dist/source/latex/enumsub/
    trunk/Master/texmf-dist/source/latex/enumsub/enumsub.dtx
    trunk/Master/texmf-dist/source/latex/enumsub/enumsub.ins
    trunk/Master/texmf-dist/tex/latex/enumsub/
    trunk/Master/texmf-dist/tex/latex/enumsub/enumsub.sty
    trunk/Master/tlpkg/tlpsrc/enumsub.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/enumsub/MANIFEST.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/enumsub/MANIFEST.txt	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/enumsub/MANIFEST.txt	2025-08-04 19:42:41 UTC (rev 75967)
@@ -0,0 +1,71 @@
+# CTAN Submission Manifest for enumsub
+
+## Package Information
+- **Name:** enumsub
+- **Version:** 1.0
+- **Date:** 2025-08-04
+- **License:** LPPL 1.3c
+- **Maintainer:** Srikanth Mohankumar <srbsmohankumar at gmail.com>
+
+## Summary
+Aligned inline sublists for enumitem - solves alignment inconsistencies between enumitem and tasks packages.
+
+## Description
+The enumsub package provides seamless integration between enumitem and inline sublists with perfect alignment and automatic numbering. It addresses the common problem of alignment inconsistencies when trying to combine enumitem and tasks packages by offering a tabular-based solution with automatic counter management.
+
+## Files Included
+
+### Source Files
+- `enumsub.dtx` - Documented LaTeX source file
+- `enumsub.ins` - Installation script
+
+### Derived Files
+- `enumsub.sty` - Package file (generated from enumsub.dtx)
+- `enumsub.pdf` - Package documentation (generated from enumsub.dtx)
+
+### Documentation and Examples
+- `README.md` - Package overview and quick start guide
+- `enumsub-example.tex` - Complete example document
+- `enumsub-example.pdf` - Compiled example output
+- `MANIFEST.txt` - This file
+
+### Installation Instructions
+1. Run `latex enumsub.ins` to generate `enumsub.sty`
+2. Place `enumsub.sty` in your TeX tree
+3. Run `texhash` if using TeX Live
+4. Compile `enumsub.dtx` with `pdflatex` to generate documentation
+
+## Keywords
+enumitem, lists, alignment, inline, sublists, enumeration, tasks, tabular, automatic numbering
+
+## CTAN Directory Structure
+```
+enumsub/
+├── enumsub.dtx
+├── enumsub.ins
+├── README.md
+├── enumsub-example.tex
+└── MANIFEST.txt
+```
+
+## Dependencies
+- LaTeX2e (2020/10/01 or later)
+- enumitem
+- xparse
+- array
+- etoolbox
+
+## Compatibility
+- All standard document classes
+- Compatible with babel, polyglossia, hyperref, beamer
+- Tested with TeX Live 2023 and MiKTeX
+
+## Change Log
+### Version 1.0 (2025-08-04)
+- Initial release
+- Core \enumsub functionality
+- Package options for numbering styles (roman, alpha, arabic)
+- Customizable spacing commands
+- Multiple command aliases
+- Automatic counter reset
+- Comprehensive documentation and examples
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/enumsub/MANIFEST.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/enumsub/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/enumsub/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/enumsub/README.md	2025-08-04 19:42:41 UTC (rev 75967)
@@ -0,0 +1,165 @@
+# enumsub - Aligned inline sublists for enumitem
+
+## Overview
+
+The `enumsub` package provides seamless integration between `enumitem` and inline sublists with perfect alignment and automatic numbering. It solves the common alignment inconsistencies that occur when trying to combine `enumitem` and `tasks` packages.
+
+## Features
+
+- Perfect alignment of inline sub-items with dynamic label styling
+- Multiple numbering schemes (Roman, alphabetic, Arabic)
+- Customizable spacing and dimensions
+- Easy-to-use semicolon-separated syntax
+- Non-breaking inline layout with consistent spacing
+- Multiple convenience aliases
+- Automatic counter reset at each `\item`
+
+## Quick Start
+
+```latex
+\documentclass{article}
+\usepackage[roman]{enumsub}  % Options: roman, alpha, arabic
+
+\begin{document}
+\begin{enumerate}
+  \item Main question
+  \begin{enumerate}
+    \item \enumsub{yes; no; maybe}
+    \item \enumsub{option A; option B}
+  \end{enumerate}
+\end{enumerate}
+\end{document}
+```
+
+## Installation
+
+### Manual Installation
+1. Download `enumsub.dtx` and `enumsub.ins`
+2. Run: `latex enumsub.ins`
+3. Move `enumsub.sty` to your LaTeX tree
+4. Run: `texhash` (if using TeX Live)
+
+### Generate Documentation
+```bash
+pdflatex enumsub.dtx
+makeindex -s gind.ist enumsub.idx
+makeindex -s gglo.ist -o enumsub.gls enumsub.glo
+pdflatex enumsub.dtx
+pdflatex enumsub.dtx
+```
+
+## Package Options
+
+| Option   | Description                    | Example Output |
+|----------|--------------------------------|----------------|
+| `roman`  | Roman numerals (default)      | (i), (ii), (iii) |
+| `alpha`  | Alphabetic numbering           | (a), (b), (c) |
+| `arabic` | Arabic numerals                | (1), (2), (3) |
+
+## Commands
+
+### Main Command
+- `\enumsub{item1; item2; item3}` - Creates aligned inline sublists
+
+### Aliases
+- `\subparts{...}` - Same as `\enumsub`
+- `\AutoSubpartsAligned{...}` - Same as `\enumsub`
+- `\inlineparts{...}` - Same as `\enumsub`
+
+### Customization
+- `\setenumsublabelwidth{width}` - Adjust label column width
+- `\setenumsubitemwidth{width}` - Adjust item column width
+
+### Predefined Styles
+- `mainq` - Main question style
+- `subq` - Sub-question style
+
+## Examples
+
+### Basic Usage
+```latex
+\begin{enumerate}[label=\textbf{\arabic*.}]
+  \item What is your favorite color?
+  \begin{enumerate}[label=\textbf{(\alph*)}]
+    \item \enumsub{red; blue; green}
+    \item \enumsub{yellow; purple}
+  \end{enumerate}
+\end{enumerate}
+```
+
+### With Different Numbering
+```latex
+\usepackage[alpha]{enumsub}
+% Now \enumsub produces (a), (b), (c) instead of (i), (ii), (iii)
+```
+
+### Custom Spacing
+```latex
+\setenumsublabelwidth{3em}
+\setenumsubitemwidth{2cm}
+\enumsub{longer option 1; longer option 2}
+```
+
+
+## Problem Solved
+
+This package specifically addresses the alignment issues when combining `enumitem` and `tasks`:
+
+**Before (misaligned):**
+```
+1. Question
+   (a) option 1    option 2
+       ↑ misaligned with enumitem labels
+```
+
+**After (perfectly aligned):**
+```
+1. Question
+   (a) (i) option 1    (ii) option 2
+       ↑ perfect alignment maintained
+```
+
+## Requirements
+
+- LaTeX2e (2020/10/01 or later)
+- `enumitem` package
+- `xparse` package
+- `array` package
+- `etoolbox` package
+
+## Compatibility
+
+- Works with all standard document classes
+- Compatible with `babel` and `polyglossia`
+- Works with `hyperref`
+- Compatible with `beamer`
+
+## Changelog
+
+### Version 1.0 (2025-08-04)
+- Initial release
+- Basic `\enumsub` functionality
+- Package options for numbering styles
+- Customizable spacing
+- Multiple command aliases
+
+## 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.
+
+## Support
+
+- **Issues:** [GitHub Issues](https://github.com/srikanth-mk/enumsub-tex/issues)
+- **Email:** srbsmohankumar at gmail.com
+
+## Contributing
+
+Contributions are welcome! Please:
+1. Fork the repository
+2. Create a feature branch
+3. Submit a pull request
+
+## Acknowledgments
+
+This package was inspired by questions on TeX StackExchange about alignment issues between `enumitem` and `tasks` packages. Special thanks to the LaTeX community for identifying this common problem.
+[Stack Exchange Issue](https://tex.stackexchange.com/questions/749213/aligning-the-labels-from-enumerate-and-task)
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/enumsub/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/enumsub/enumsub-example.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/enumsub/enumsub-example.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/enumsub/enumsub-example.pdf	2025-08-04 19:42:04 UTC (rev 75966)
+++ trunk/Master/texmf-dist/doc/latex/enumsub/enumsub-example.pdf	2025-08-04 19:42:41 UTC (rev 75967)

Property changes on: trunk/Master/texmf-dist/doc/latex/enumsub/enumsub-example.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/enumsub/enumsub-example.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/enumsub/enumsub-example.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/enumsub/enumsub-example.tex	2025-08-04 19:42:41 UTC (rev 75967)
@@ -0,0 +1,206 @@
+\documentclass[11pt]{article}
+\usepackage[a4paper, margin=1in]{geometry}
+\usepackage[roman]{enumsub}  % Try also: [alpha] or [arabic]
+\usepackage{amsmath}
+\usepackage{xcolor}
+
+% Title and metadata
+\title{The \texttt{enumsub} Package\\Examples and Demonstrations}
+\author{Srikanth Mohankumar}
+\date{\today}
+
+\begin{document}
+
+\maketitle
+
+\section{Introduction}
+
+This document demonstrates the capabilities of the \texttt{enumsub} package, 
+which provides aligned inline sublists that integrate seamlessly with 
+\texttt{enumitem}.
+
+\section{Basic Examples}
+
+\subsection{Simple Multiple Choice Questions}
+
+Here's a typical multiple choice setup:
+
+\begin{enumerate}[mainq]
+  \item What is the capital of France?
+  \begin{enumerate}[subq]
+    \item \enumsub{London; Paris; Berlin; Madrid}
+  \end{enumerate}
+  
+  \item Which of these are programming languages?
+  \begin{enumerate}[subq]
+    \item \enumsub{Python; JavaScript}
+    \item \enumsub{HTML; CSS}
+    \item \enumsub{C++; Java; Ruby}
+  \end{enumerate}
+  
+  \item True or false questions:
+  \begin{enumerate}[subq]
+    \item The Earth is flat. \enumsub{True; False}
+    \item LaTeX is awesome. \enumsub{True; False}
+    \item 2 + 2 = 5. \enumsub{True; False}
+  \end{enumerate}
+\end{enumerate}
+
+\section{Different Numbering Styles}
+
+\subsection{Current Style (Roman)}
+With the \texttt{roman} option, sublists use Roman numerals:
+
+\setenumsublabelwidth{3em}
+\setenumsubitemwidth{3cm}
+\begin{enumerate}[label=\textbf{\arabic*.}]
+  \item Choose the correct answer:
+  \begin{enumerate}[label=\textbf{(\alph*)}]
+    \item \enumsub{Option A; Option B{\quad}; Option C}
+  \end{enumerate}
+\end{enumerate}
+
+% Note: To see different styles, compile with [alpha] or [arabic] options
+
+\section{Customization Examples}
+
+\subsection{Custom Spacing}
+
+Let's adjust the spacing for longer options:
+
+\setenumsublabelwidth{2em}
+\setenumsubitemwidth{6cm}
+
+\begin{enumerate}[mainq]
+  \item Which programming paradigm do you prefer?
+  \begin{enumerate}[subq]
+    \item \enumsub{Object-Oriented Programming; Functional Programming}
+    \item \enumsub{Procedural Programming; Logic Programming}
+  \end{enumerate}
+\end{enumerate}
+
+% Reset to default spacing
+\setenumsublabelwidth{2.2em}
+\setenumsubitemwidth{1.5cm}
+
+\section{Alternative Command Names}
+
+The package provides several aliases for convenience:
+
+\begin{enumerate}[mainq]
+  \item Using \texttt{\textbackslash subparts}:
+  \begin{enumerate}[subq]
+    \item \subparts{yes; no; maybe}
+  \end{enumerate}
+  
+  \item Using \texttt{\textbackslash AutoSubpartsAligned}:
+  \begin{enumerate}[subq]
+    \item \AutoSubpartsAligned{agree; disagree; neutral}
+  \end{enumerate}
+  
+  % Modified spacing
+  \setenumsubitemwidth{2cm}
+  \item Using \texttt{\textbackslash inlineparts}:
+  \begin{enumerate}[subq]
+    \item \inlineparts{always; sometimes; never}
+  \end{enumerate}
+\end{enumerate}
+
+\section{Complex Questionnaire Example}
+
+Here's a more realistic questionnaire:
+
+% Reset to default spacing
+\setenumsublabelwidth{2.2em}
+\setenumsubitemwidth{1.5cm}
+
+\begin{enumerate}[mainq]
+  \item How often do you use LaTeX?
+  \begin{enumerate}[subq]
+    \item \enumsub{Daily; Weekly; Monthly; Rarely; Never}
+  \end{enumerate}
+
+  % Modified spacing
+\setenumsublabelwidth{2.2em}
+\setenumsubitemwidth{3cm}
+  
+  \item What type of documents do you create with LaTeX? (Select all that apply)
+  \begin{enumerate}[subq]
+    \item \enumsub{Academic papers; Books}
+    \item \enumsub{Presentations; Letters}
+    \item \enumsub{Reports; Theses}
+  \end{enumerate}
+  
+  \item Rate your LaTeX expertise:
+  \begin{enumerate}[subq]
+    \item \enumsub{Beginner; Intermediate; Advanced; Expert}
+  \end{enumerate}
+  
+  \item Which LaTeX editor do you prefer?
+  \begin{enumerate}[subq]
+    \item \enumsub{TeXstudio; Overleaf; TeXworks}
+    \item \enumsub{Vim/Emacs; VS Code; Other}
+  \end{enumerate}
+\end{enumerate}
+
+\section{Mathematical Content}
+
+The package works well with mathematical expressions:
+
+\begin{enumerate}[mainq]
+  \item What is $\int_0^1 x^2 \, dx$?
+  \begin{enumerate}[subq]
+    \item \enumsub{$\frac{1}{3}$; $\frac{1}{2}$; $1$; $\frac{2}{3}$}
+  \end{enumerate}
+  
+  \item Which of these are prime numbers?
+  \begin{enumerate}[subq]
+    \item \enumsub{$2$; $3$; $4$}
+    \item \enumsub{$5$; $6$; $7$}
+  \end{enumerate}
+\end{enumerate}
+
+\section{Comparison with Standard Methods}
+
+\subsection{Without enumsub (misaligned)}
+
+This is how it looks without proper alignment:
+
+\begin{enumerate}[label=\textbf{\arabic*.}]
+  \item Question without enumsub:
+  \begin{enumerate}[label=\textbf{(\alph*)}]
+    \item (i) Option 1 \quad (ii) Option 2 \quad (iii) Option 3
+    % ↑ This creates spacing issues and alignment problems
+  \end{enumerate}
+\end{enumerate}
+
+\subsection{With enumsub (perfectly aligned)}
+
+\begin{enumerate}[label=\textbf{\arabic*.}]
+  \item Same question with enumsub:
+  \begin{enumerate}[label=\textbf{(\alph*)}]
+    \item \enumsub{Option 1; Option 2; Option 3}
+    % ↑ Perfect alignment maintained
+  \end{enumerate}
+\end{enumerate}
+
+\section{Tips and Best Practices}
+
+\begin{itemize}
+  \item Keep option text concise for best alignment
+  \item Use consistent spacing throughout your document
+  \item The semicolon separator makes editing easy
+  \item Counters automatically reset at each \texttt{\textbackslash item}
+  \item Works well with \texttt{hyperref} for clickable links
+\end{itemize}
+
+\section{Package Information}
+
+\begin{itemize}
+  \item \textbf{Package:} enumsub v1.0
+  \item \textbf{Author:} Srikanth Mohankumar
+  \item \textbf{License:} LPPL 1.3c
+  \item \textbf{Dependencies:} enumitem, xparse, array, etoolbox
+\end{itemize}
+
+\end{document}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/enumsub/enumsub-example.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/enumsub/enumsub.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/enumsub/enumsub.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/enumsub/enumsub.pdf	2025-08-04 19:42:04 UTC (rev 75966)
+++ trunk/Master/texmf-dist/doc/latex/enumsub/enumsub.pdf	2025-08-04 19:42:41 UTC (rev 75967)

Property changes on: trunk/Master/texmf-dist/doc/latex/enumsub/enumsub.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/enumsub/enumsub.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/enumsub/enumsub.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/enumsub/enumsub.dtx	2025-08-04 19:42:41 UTC (rev 75967)
@@ -0,0 +1,275 @@
+% \iffalse meta-comment
+%
+% enumsub.dtx
+% Copyright (C) 2025 by Srikanth Mohankumar <srbsmohankumar at gmail.com>
+%
+% 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
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% 
+% The Current Maintainer of this work is Srikanth Mohankumar.
+%
+% This work consists of the files enumsub.dtx and enumsub.ins
+% and the derived file enumsub.sty.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{enumsub.dtx}
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+%<package>\ProvidesPackage{enumsub}
+%<*package>
+    [2025/08/04 v1.0 Aligned inline sublists for enumitem]
+%</package>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{enumsub}
+\usepackage[numbered]{hypdoc}
+\usepackage{xspace}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+  \DocInput{enumsub.dtx}
+  \PrintChanges
+  \PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{0}
+%
+% \CharacterTable
+%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%   Digits        \0\1\2\3\4\5\6\7\8\9
+%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%   Dollar        \$     Percent       \%     Ampersand     \&
+%   Acute accent  \'     Left paren    \(     Right paren   \)
+%   Asterisk      \*     Plus          \+     Comma         \,
+%   Minus         \-     Point         \.     Solidus       \/
+%   Colon         \:     Semicolon     \;     Less than     \<
+%   Equals        \=     Greater than  \>     Question mark \?
+%   Commercial at \@     Left bracket  \[     Backslash     \\
+%   Right bracket \]     Circumflex    \^     Underscore    \_
+%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%   Right brace   \}     Tilde         \~}
+%
+%
+% \changes{v1.0}{2025/08/04}{Initial version}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+% 
+%
+% \providecommand*{\url}{\texttt}
+% \GetFileInfo{enumsub.dtx}
+% \title{The \textsf{enumsub} package}
+% \author{Srikanth Mohankumar \\ \url{srbsmohankumar at gmail.com}}
+% \date{\fileversion~from \filedate}
+%
+% \maketitle
+%
+% \section{Introduction}
+%
+% The \textsf{enumsub} package provides seamless integration between 
+% \textsf{enumitem} and inline sublists with perfect alignment and 
+% automatic numbering. It solves the common alignment inconsistencies 
+% that occur when trying to combine \textsf{enumitem} and \textsf{tasks} 
+% packages.
+%
+% The package offers:
+% \begin{itemize}
+% \item Perfect alignment of inline sub-items with dynamic label styling
+% \item Multiple numbering schemes (Roman, alphabetic, Arabic)
+% \item Customizable spacing and dimensions
+% \item Easy-to-use semicolon-separated syntax
+% \item Non-breaking inline layout with consistent spacing
+% \end{itemize}
+%
+% \section{Usage}
+%
+% \subsection{Basic Usage}
+%
+% The main command is \cs{enumsub}, which takes semicolon-separated 
+% items and displays them inline with automatic numbering:
+%
+% \begin{verbatim}
+% \begin{enumerate}
+%   \item 
+%   \begin{enumerate}
+%     \item \enumsub{yes; no; maybe}
+%     \item \enumsub{option A; option B}
+%   \end{enumerate}
+% \end{enumerate}
+% \end{verbatim}
+%
+% \subsection{Package Options}
+%
+% The package supports three numbering styles:
+% \begin{itemize}
+% \item \texttt{roman} (default): Uses Roman numerals (i), (ii), (iii)
+% \item \texttt{alpha}: Uses alphabetic numbering (a), (b), (c)
+% \item \texttt{arabic}: Uses Arabic numerals (1), (2), (3)
+% \end{itemize}
+%
+% Load the package with: \verb|\usepackage[roman]{enumsub}|
+%
+% \subsection{Customization}
+%
+% You can adjust the spacing using:
+% \begin{itemize}
+% \item \cs{setenumsublabelwidth}\marg{width} -- Width of the label column
+% \item \cs{setenumsubitemwidth}\marg{width} -- Width of each item column
+% \end{itemize}
+%
+% \section{Examples}
+%
+% \begin{enumerate}[label=\textbf{\arabic*.}]
+%   \item This is a main question.
+%   \begin{enumerate}[label=\textbf{(\alph*)}]
+%     \item \enumsub{yes; no}
+%     \item \enumsub{definitely; maybe; never}
+%   \end{enumerate}
+% \end{enumerate}
+%
+% \section{Implementation}
+%
+% \StopEventually{}
+%
+% \section{Implementation}
+%
+%    \begin{macrocode}
+%<*package>
+%    \end{macrocode}
+%
+% Load required packages:
+%    \begin{macrocode}
+\RequirePackage{enumitem}
+\RequirePackage{xparse}
+\RequirePackage{array}
+\RequirePackage{etoolbox}
+%    \end{macrocode}
+%
+% \begin{macro}{\if at enumsub@roman}
+% \begin{macro}{\if at enumsub@alpha}
+% \begin{macro}{\if at enumsub@arabic}
+% Package options for numbering styles:
+%    \begin{macrocode}
+\newif\if at enumsub@roman
+\newif\if at enumsub@alpha
+\newif\if at enumsub@arabic
+\@enumsub at romantrue
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Declare and process options:
+%    \begin{macrocode}
+\DeclareOption{roman}{\@enumsub at romantrue\@enumsub at alphafalse\@enumsub at arabicfalse}
+\DeclareOption{alpha}{\@enumsub at alphatrue\@enumsub at romanfalse\@enumsub at arabicfalse}
+\DeclareOption{arabic}{\@enumsub at arabictrue\@enumsub at romanfalse\@enumsub at alphafalse}
+\ProcessOptions\relax
+%    \end{macrocode}
+%
+% \begin{macro}{\enumsub at labelwidth}
+% \begin{macro}{\enumsub at itemwidth}
+% Customizable dimensions:
+%    \begin{macrocode}
+\newdimen\enumsub at labelwidth
+\newdimen\enumsub at itemwidth
+\enumsub at labelwidth=2.2em
+\enumsub at itemwidth=1.5cm
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\setenumsublabelwidth}
+% \begin{macro}{\setenumsubitemwidth}
+% User commands to adjust spacing:
+%    \begin{macrocode}
+\newcommand{\setenumsublabelwidth}[1]{\enumsub at labelwidth=#1}
+\newcommand{\setenumsubitemwidth}[1]{\enumsub at itemwidth=#1}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\c at enumsub@counter}
+% Subpart counter that resets at each \cs{item}:
+%    \begin{macrocode}
+\newcounter{enumsub at counter}
+\pretocmd{\item}{\setcounter{enumsub at counter}{0}}{}{}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\enumsub at getlabel}
+% Determine label format based on options:
+%    \begin{macrocode}
+\newcommand{\enumsub at getlabel}{%
+  \if at enumsub@roman%
+    \textbf{(\roman{enumsub at counter})}%
+  \else\if at enumsub@alpha%
+    \textbf{(\alph{enumsub at counter})}%
+  \else\if at enumsub@arabic%
+    \textbf{(\arabic{enumsub at counter})}%
+  \fi\fi\fi%
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\enumsub}
+% Core macro for aligned subparts:
+%    \begin{macrocode}
+\NewDocumentCommand{\enumsub}{>{\SplitList{;}}m}{%
+  \begin{tabular}{@{}*{10}{ll}@{}}%
+    \ProcessList{#1}{\enumsub at renderitem}%
+  \end{tabular}%
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\enumsub at renderitem}
+% Render individual subpart:
+%    \begin{macrocode}
+\newcommand{\enumsub at renderitem}[1]{%
+  \stepcounter{enumsub at counter}%
+  \makebox[\enumsub at labelwidth][l]{\enumsub at getlabel} & 
+  \makebox[\enumsub at itemwidth][l]{#1}%
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% Alternative command names for convenience:
+%    \begin{macrocode}
+\let\AutoSubpartsAligned\enumsub
+\let\subparts\enumsub
+\let\inlineparts\enumsub
+%    \end{macrocode}
+%
+% Predefined list styles:
+%    \begin{macrocode}
+\SetEnumitemKey{mainq}{label=\textbf{\arabic*.},% 
+                       leftmargin=2em,% 
+                       itemsep=0.2em,% 
+                       topsep=0.5em}
+\SetEnumitemKey{subq}{label=\textbf{(\alph*)},%
+                      leftmargin=2.8em,%
+                      itemsep=0.2em,%
+                      topsep=0.3em}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</package>
+%    \end{macrocode}
+%
+% \Finale
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/source/latex/enumsub/enumsub.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/enumsub/enumsub.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/enumsub/enumsub.ins	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/enumsub/enumsub.ins	2025-08-04 19:42:41 UTC (rev 75967)
@@ -0,0 +1,78 @@
+%% 
+%% This is file `enumsub.ins',
+%% generated with the docstrip utility.
+%% 
+%% The original source files were:
+%% 
+%% enumsub.dtx  (with options: `install')
+%% 
+%% This is a generated file.
+%% 
+%% enumsub -- Aligned inline sublists for enumitem
+%% 
+%% Copyright (C) 2025 by Srikanth Mohankumar <srbsmohankumar at gmail.com>
+%% 
+%% 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
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008 or later.
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Srikanth Mohankumar.
+%% 
+%% This work consists of the files enumsub.dtx and enumsub.ins
+%% and the derived file enumsub.sty.
+%% 
+
+\input docstrip.tex
+\keepsilent
+
+\usedir{tex/latex/enumsub}
+
+\preamble
+
+This is a generated file.
+
+enumsub -- Aligned inline sublists for enumitem
+
+Copyright (C) 2025 by Srikanth Mohankumar <srbsmohankumar at gmail.com>
+
+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
+  http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Srikanth Mohankumar.
+
+This work consists of the files enumsub.dtx and enumsub.ins
+and the derived file enumsub.sty.
+
+\endpreamble
+
+\generate{\file{enumsub.sty}{\from{enumsub.dtx}{package}}}
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{*                                                           *}
+\Msg{* To finish the installation you have to move the          *}
+\Msg{* following file into a directory searched by TeX:         *}
+\Msg{*                                                           *}
+\Msg{*     enumsub.sty                                           *}
+\Msg{*                                                           *}
+\Msg{* To produce the documentation run the file enumsub.dtx    *}
+\Msg{* through LaTeX.                                            *}
+\Msg{*                                                           *}
+\Msg{* Happy TeXing!                                             *}
+\Msg{*                                                           *}
+\Msg{*************************************************************}
+
+\endbatchfile
\ No newline at end of file

Added: trunk/Master/texmf-dist/tex/latex/enumsub/enumsub.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/enumsub/enumsub.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/enumsub/enumsub.sty	2025-08-04 19:42:41 UTC (rev 75967)
@@ -0,0 +1,85 @@
+%%
+%% This is file `enumsub.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% enumsub.dtx  (with options: `package')
+%% 
+%% This is a generated file.
+%% 
+%% enumsub -- Aligned inline sublists for enumitem
+%% 
+%% Copyright (C) 2025 by Srikanth Mohankumar <srbsmohankumar at gmail.com>
+%% 
+%% 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
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008 or later.
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Srikanth Mohankumar.
+%% 
+%% This work consists of the files enumsub.dtx and enumsub.ins
+%% and the derived file enumsub.sty.
+%% 
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesPackage{enumsub}
+    [2025/08/04 v1.0 Aligned inline sublists for enumitem]
+\RequirePackage{enumitem}
+\RequirePackage{xparse}
+\RequirePackage{array}
+\RequirePackage{etoolbox}
+\newif\if at enumsub@roman
+\newif\if at enumsub@alpha
+\newif\if at enumsub@arabic
+\@enumsub at romantrue
+\DeclareOption{roman}{\@enumsub at romantrue\@enumsub at alphafalse\@enumsub at arabicfalse}
+\DeclareOption{alpha}{\@enumsub at alphatrue\@enumsub at romanfalse\@enumsub at arabicfalse}
+\DeclareOption{arabic}{\@enumsub at arabictrue\@enumsub at romanfalse\@enumsub at alphafalse}
+\ProcessOptions\relax
+\newdimen\enumsub at labelwidth
+\newdimen\enumsub at itemwidth
+\enumsub at labelwidth=2.2em
+\enumsub at itemwidth=1.5cm
+\newcommand{\setenumsublabelwidth}[1]{\enumsub at labelwidth=#1}
+\newcommand{\setenumsubitemwidth}[1]{\enumsub at itemwidth=#1}
+\newcounter{enumsub at counter}
+\pretocmd{\item}{\setcounter{enumsub at counter}{0}}{}{}
+\newcommand{\enumsub at getlabel}{%
+  \if at enumsub@roman%
+    \textbf{(\roman{enumsub at counter})}%
+  \else\if at enumsub@alpha%
+    \textbf{(\alph{enumsub at counter})}%
+  \else\if at enumsub@arabic%
+    \textbf{(\arabic{enumsub at counter})}%
+  \fi\fi\fi%
+}
+\NewDocumentCommand{\enumsub}{>{\SplitList{;}}m}{%
+  \begin{tabular}{@{}*{10}{ll}@{}}%
+    \ProcessList{#1}{\enumsub at renderitem}%
+  \end{tabular}%
+}
+\newcommand{\enumsub at renderitem}[1]{%
+  \stepcounter{enumsub at counter}%
+  \makebox[\enumsub at labelwidth][l]{\enumsub at getlabel} &
+  \makebox[\enumsub at itemwidth][l]{#1}%
+}
+\let\AutoSubpartsAligned\enumsub
+\let\subparts\enumsub
+\let\inlineparts\enumsub
+\SetEnumitemKey{mainq}{label=\textbf{\arabic*.},%
+                       leftmargin=2em,%
+                       itemsep=0.2em,%
+                       topsep=0.5em}
+\SetEnumitemKey{subq}{label=\textbf{(\alph*)},%
+                      leftmargin=2.8em,%
+                      itemsep=0.2em,%
+                      topsep=0.3em}
+\endinput
+%%
+%% End of file `enumsub.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/enumsub/enumsub.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2025-08-04 19:42:04 UTC (rev 75966)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2025-08-04 19:42:41 UTC (rev 75967)
@@ -314,7 +314,8 @@
     enctex encxvlna endfloat endheads endiagram
     endnotes endnotes-hy endnotesj endofproofwd
     engpron engrec engtlc enigma enotez ensps-colorscheme
-    enumext enumitem enumitem-zref envbig enverb environ envlab eolang eoldef
+    enumext enumitem enumitem-zref enumsub
+    envbig enverb environ envlab eolang eoldef
     epcqrcode epigrafica epigram epigraph epigraph-keys epiolmec eplain
     epsdice epsf epsf-dvipdfmx epsincl epslatex-fr
     epspdfconversion epstopdf epstopdf-pkg

Modified: trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2025-08-04 19:42:04 UTC (rev 75966)
+++ trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2025-08-04 19:42:41 UTC (rev 75967)
@@ -467,6 +467,7 @@
 depend enumext
 depend enumitem
 depend enumitem-zref
+depend enumsub
 depend envbig
 depend enverb
 depend environ

Added: trunk/Master/tlpkg/tlpsrc/enumsub.tlpsrc
===================================================================


More information about the tex-live-commits mailing list.