我想用 LaTeX 做课堂笔记,但我大量使用项目符号列表,而 LaTeX 中的 itemize 宏对于课堂笔记来说太耗时了。但如果我能教 LaTeX 如何帮我做这件事,那就太好了!(在开发办公室很烦人……)
如果我在 LaTeX 中输入常规段落,则每个新行都会被标记。会有一个命令来表示项目符号段落之外的项目。最后,像 这样的命令\up
会\down
在列表中提升/降级其后的所有文本行。
一个例子:
\title{this would be the title of a slide}
this is a line of text
this is another line of text
\up
this is a subpoint
another
\down
last line
要得到:
这将是幻灯片的标题
- 这是一行文本
- 这是另一行文字
- 这是一个子要点
- 其他
- 最后一行
在下面的评论中,Werner 对此进行了更具体的描述。我想“避免\item
对每个段落都使用,而是让段落分隔符“相当于” \item
,同时\up
启动一个新itemize
环境,然后\down
关闭它。”\title
然后关闭全部 itemize
环境(我希望自动加粗但不一定与问题相关)。
答案1
我确信有软件包可以实现这个功能,但是可能它太简单了,无法形成专门的软件包来实现这个功能。
这是一个简单的解决方案,可能需要扩展才能真正有用。
\documentclass{article}
\makeatletter
\newcommand\startitems
{%
\begingroup
\parindent\z@
\@itemdepth\@ne
\@totalleftmargin\csname leftmargin\romannumeral\the\@itemdepth\endcsname
\leftskip\@totalleftmargin
\everypar
{%
\llap{%
\makebox[\labelsep][l]
{%
\csname labelitem\romannumeral\the\@itemdepth\endcsname
}
}%
}%
\obeylines
}
\newcommand\stopitems
{%
\bottom
\par\endgroup
}
\newcommand\up
{%
\par
\begingroup
\advance\@itemdepth\@ne
\advance\@totalleftmargin\csname leftmargin\romannumeral\the\@itemdepth\endcsname
\leftskip\@totalleftmargin
}
\newcommand\down{\par\endgroup}
\newcommand\bottom
{%
\ifnum\@itemdepth>\@ne
\down\bottom
\fi
}
\makeatother
\begin{document}
\section*{title}
\startitems
this is a line of text
this is another line of text
\up
this is a subpoint
another
\up
sub-sub point
\bottom
back to first level
\stopitems
\noindent Normal text
\end{document}
必须有一些方法来封装列表效果,所以我添加了\startitems
\stopitems
。
答案2
您可能需要熟悉以下之一轻量级标记语言。 我最喜欢的是txt2tags。这是您的 MWE 的样子txt转tgs。
How to type LaTeX using txt2tgs
Predrag Punosevac
4/20/2012
= This would be the title of a slide =
- this is a line of text
- this is another line of text
- this is subpoint
- another
- last line
现在使用以下命令处理文档
txt2tags -t tex myfilename.txt
pdflatex myfilename.tex
得到以下输出
看来你还需要某种文本演示程序。我非常推荐跨太平洋伙伴关系。它非常适合计算机科学演示。听起来可能有点讽刺,但我用过跨太平洋伙伴关系为初学者提供 TeX 的入门知识。