![单字符列表——用更少的输入做更多的事情](https://linux22.com/image/405257/%E5%8D%95%E5%AD%97%E7%AC%A6%E5%88%97%E8%A1%A8%E2%80%94%E2%80%94%E7%94%A8%E6%9B%B4%E5%B0%91%E7%9A%84%E8%BE%93%E5%85%A5%E5%81%9A%E6%9B%B4%E5%A4%9A%E7%9A%84%E4%BA%8B%E6%83%85.png)
在 Emacs 或 Markdown 的 Org 模式中我最喜欢的功能之一是,我可以通过执行以下操作来快速构建列表:
- Something
- Foo
- Bar
它会自动将其识别为实际的列表。
在 LaTeX 中,我经常发现自己必须输入:
\begin{itemize}
\item Something
\item Foo
\item Bar
\end{itemize}
不幸的是很多需要输入更多内容。这显然不是一个障碍,但它使得使用 LaTeX 添加/跟踪注释变得更加困难,同时仍然无法利用其提供的其他所有功能。
此外,如果我从另一个文档(例如 Org / markdown 或其他格式)复制列表,他们很可能也会使用-
(或类似的单身的您可以使用一个字符来指定列表中的每个项目。
简易列表
在 LaTeX 中是否有一种方法可以构建“类似 itemize”的“列表”,其中每个项目都用类似的单个字符定义(知道它要么放在一行的开头,要么仅在行首以空格开头)?
例如:
\begin{my_list}
- Something
- Foo
- Bar
\end{my_list}
如果它对其他人有帮助,通常 IDE 都有宏来帮助输入,这实际上是我的情况 - 我在 VSCode 中,所以我可以使用片段(〜IDE 宏)如bit
在乳胶车间将单词扩展bit
为 itemize 环境。然而这仍然需要我输入大量内容,我甚至无法转换(复制)现有列表(请参阅我报告的这个问题)。
换句话说,理论上 IDE 宏本身可以提供帮助,但如果可以在 LaTeX 中轻松做到这一点就更好了。
答案1
只是为了好玩。你要求的是 OpTeX 格式的默认格式:
\begitems
* Something
* Foo
* Bar
\enditems
上面答案中提到的功能easylist
实现如下OpTeX 技巧 0048
答案2
找到了解决这个问题的好办法,使用markdown
包。只要您不需要使用列表内的其他 LaTeX 命令,它就可以很好地工作。
以下是一个例子:
\documentclass{article}
\usepackage{markdown}
\usepackage{lipsum}
\begin{document}
\lipsum[66]
\begin{markdown}
Here is a Markdown list:
* Create a list by starting a line with `+`, `-`, or `*`
* Sub-lists are made by indenting 2 spaces:
- Marker character change forces new list start:
* Ac tristique libero volutpat at
+ Facilisis in pretium nisl aliquet
- Nulla volutpat aliquam velit
+ Very easy!
\end{markdown}
\lipsum[75]
\end{document}
答案3
正如评论中所述,该easylist
包可以在这里使用。该包还支持itemize
样式无编号列表。
梅威瑟:
\documentclass{article}
\usepackage[sharp]{easylist}
\begin{document}
Here is an Easylist list:
\begin{easylist}[itemize]
# Create a list by starting a line with \#
# Sub-lists are made by adding extra list symbols:
## Level two
## Indentation optional
## \LaTeX\ symbols possible: $\sum_\infty$
### Level 3
# Very easy!
\end{easylist}
\end{document}
结果: