单字符列表——用更少的输入做更多的事情

单字符列表——用更少的输入做更多的事情

在 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}

结果:

在此处输入图片描述

相关内容