textlint-plugin-latex2e
textlint-plugin-latex2e copied to clipboard
Improve parsing \item in itemize, enumerate environment
Abstract
ListItem
represents an item in the List
environment. However, itemize and enumerate environments are parsed as ListItem
nodes in Paragraph
, now.
Sample source
Sample of itemize environment: itemize.tex
\begin{itemize}
\item item1
\item item2
\end{itemize}
Sample of enumerate environment: enumerate.tex
\begin{enumerate}
\item item1
\item item2
\end{enumerate}
Current behavior
npx tex2tast -r itemize.tex
{
"type": "Document",
"raw": "\\begin{itemize}\n \\item item1\n \\item item2\n\\end{itemize}",
"children": [
{
"raw": "item1\n \\item item2",
"type": "Paragraph",
"children": [
{
"raw": "item1",
"type": "ListItem",
"children": [
{
"raw": "item1",
"type": "Str",
"value": "item1"
}
]
},
{
"raw": "\n \\item ",
"type": "Html",
"value": "\n \\item "
},
{
"raw": "item2",
"type": "ListItem",
"children": [
{
"raw": "item2",
"type": "Str",
"value": "item2"
}
]
}
]
}
]
}
npx tex2tast -r enumerate.tex
{
"type": "Document",
"raw": "\\begin{enumerate}\n \\item item1\n \\item item2\n\\end{enumerate}",
"children": [
{
"raw": "item1\n \\item item2",
"type": "Paragraph",
"children": [
{
"raw": "item1",
"type": "ListItem",
"children": [
{
"raw": "item1",
"type": "Str",
"value": "item1"
}
]
},
{
"raw": "\n \\item ",
"type": "Html",
"value": "\n \\item "
},
{
"raw": "item2",
"type": "ListItem",
"children": [
{
"raw": "item2",
"type": "Str",
"value": "item2"
}
]
}
]
}
]
}
Expected behavior
-
ListItem
must be inList
. -
\item
is a part ofLIstItem
. -
ListItem
's children must be parsed normally.
{
"type": "Document",
"raw": "\\begin{itemize}\n \\item item1\n \\item item2\n\\end{itemize}",
"children": [
{
"raw": "\\begin{itemize}\n \\item item1\n \\item item2\n\\end{itemize}",
"type": "List",
"children": [
{
"raw": "\n ",
"type": "Html",
"value": "\n "
},
{
"raw": "\\item item1",
"type": "ListItem",
"children": [
{
"raw": "item1",
"type": "Paragraph",
"children": [
{
"raw": "item1",
"type": "Str",
"value": "item1"
}
]
}
]
},
{
"raw": "\n ",
"type": "Html",
"value": "\n "
},
{
"raw": "\\item item2",
"type": "ListItem",
"children": [
{
"raw": "item2",
"type": "Paragraph",
"children": [
{
"raw": "item2",
"type": "Str",
"value": "item2"
}
]
}
]
},
{
"raw": "\n",
"type": "Html",
"value": "\n"
},
]
}
]
}