MichaelHatherly / CommonMark.jl

A CommonMark-compliant Markdown parser for Julia.
Other
84 stars 11 forks source link

Lists (again), conversion to LaTeX #23

Closed tlienart closed 3 years ago

tlienart commented 3 years ago

Input string:

s = """
**Unordered**

* item a
* item b
* item c

**Ordered**

1. item a
1. item b
1. item c

**Nested**

* item a
  * subitem a.a
    * subsubitem a.a
  * subitem a.b
* item b

**Mixed nesting**

* item a
  * subitem a.a
    1. subsubitem a.a
    1. subsubitem a.b
  * subitem a.b
* item b
"""

LaTeX output

CommonMark.latex(p(s))
\textbf{Unordered}\par
\begin{itemize}
\setlength{\itemsep}{0pt}
\setlength{\parskip}{0pt}
\item
item a\par
\item
item b\par
\item
item c\par
\end{itemize}
\textbf{Ordered}\par
\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\setcounter{enumi}{1}
\setlength{\itemsep}{0pt}
\setlength{\parskip}{0pt}
\item
item a\par
\item
item b\par
\item
item c\par
\end{enumerate}
\textbf{Nested} (nesting must be sufficiently indented)\par
\begin{itemize}
\setlength{\itemsep}{0pt}
\setlength{\parskip}{0pt}
\item
item a\par
\begin{itemize}
\setlength{\itemsep}{0pt}
\setlength{\parskip}{0pt}
\item
subitem a.a\par
\begin{itemize}
\setlength{\itemsep}{0pt}
\setlength{\parskip}{0pt}
\item
subsubitem a.a\par
\end{itemize}
\item
subitem a.b\par
\end{itemize}
\item
item b\par
\end{itemize}
\textbf{Mixed nesting}\par
\begin{itemize}
\setlength{\itemsep}{0pt}
\setlength{\parskip}{0pt}
\item
item a\par
\begin{itemize}
\setlength{\itemsep}{0pt}
\setlength{\parskip}{0pt}
\item
subitem a.a\par
\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\setcounter{enumi}{1}
\setlength{\itemsep}{0pt}
\setlength{\parskip}{0pt}
\item
subsubitem a.a\par
\item
subsubitem a.b\par
\end{enumerate}
\item
subitem a.b\par
\end{itemize}
\item
item b\par
\end{itemize}

Here's a screenshot using lualatex:

Screenshot 2021-07-14 at 22 41 25

Edit: long story short, the counter is wrong. It should be 0 (I think), PR #24

Thanks!

tlienart commented 3 years ago

bar the spacing (which might be something else entirely), it looks like using \setcounter{enumi}{0} fixes the counter issue.

That seems like the correct behaviour as per

https://tex.stackexchange.com/questions/142/how-can-i-make-an-enumerate-list-start-at-something-other-than-1

PR incoming.

MichaelHatherly commented 3 years ago

Closed by #24.