“干什么又有什么代码遇上麻烦了仔细点检查多读文档”

“别这样啊!我这次真的是在尝试没人做过的事啦!”

“这——么厉害?来,说说看。”

“不是说 LaTeX 里现在可以用 markdown 了吗?我就想啊,我们写 Beamer 演示幻灯片时,那许许多多的 \begin{itemize}\item... 总是很繁复,这下应该可以用 markdown 了吧。”

\documentclass{beamer}
\usepackage{ctex}
\usepackage[footnotes,definitionLists,hashEnumerators,smartEllipses,tightLists=false,hybrid]{markdown}

\begin{document}
\begin{markdown}
\begin{frame}
\frametitle{简介}

* 首先要说的是……
* 再来呢……
    - 不要忽略……
    - 更要记得……

\end{frame}
\end{markdown}
\end{document}

“很好的想法,的确快速、简练多了。不过这没什么问题呀。” “接下来的才是重点!你看,那个 \begin{frame}\frametitle{...}\end{frame} 也是够烦了的吧。再说做 Beamer 幻灯片时也很少会用到 \subsubsection,所以我就想用 markdown 对应的 ### 来取代 \begin{frame}\frametitle,再用 ----(横线)什么的来取代 \end{frame} 好了:

\markdownSetup{rendererPrototypes={
   headingThree = {\begin{frame}\frametitle{#1}},
   horizontalRule = {\end{frame}}
}}

\begin{markdown}

### 简介

* 首先要说的是……
* 再来呢……
    - 不要忽略……
    - 更要记得……

----

\end{markdown}

可是就一直报错:

Runaway argument?
\frametitle {简介} blablablah
File ended while scanning use of \frame.

究竟是哪里出了错啊?!” “唉……是 beamer 的 frame 啊……唉,花轮子同学,这也怪不得你啊,只能说你还太年轻了啊…

…” “这种诡异的说法是什么意思啦!说清楚!” “Beamer 的 frame 环境定义是比较复杂的,所以每一个 \begin{frame} 都会马上寻找代码里的下一个 \end{frame},而这个 \end{frame} 不可以隐藏在其它的宏里边。” “……所以?” “老老实实地把 \end{frame} 打出来吧。### 简介 那个倒是没问题,可以保留。”

\begin{markdown}

### 简介

* 首先要说的是……
* 再来呢……
    - 不要忽略……
    - 更要记得……

\end{frame}

\end{markdown}

“这不就不对称了吗,强迫症表示很不能忍!” “就这一个,没办法啊。那个 ---- 你倒是可以拿去做其它用途,嗯,配合 #### 来做 block 怎么样?”

\markdownSetup{rendererPrototypes={
  headingThree = {\begin{frame}\frametitle{#1}},
  headingFour = {\begin{block}{#1}},
  horizontalRule = {\end{block}}
}}

\begin{document}

\begin{markdown}

### 简介

* 首先要说的是……
* 再来呢……
    - 不要忽略……
    - 更要记得……

#### 小提醒

注意这个

----

* 继续……

\end{frame}

\end{markdown}

markdown-beamer-ctex-1
markdown-beamer-ctex-1

“啊,对啊,这就在 beamerposter 里派上用场了啊,轻松多了!这一下就让 \item 飞,让 markdown 飞!”(参考附件)

markdown-poster-1
markdown-poster-1

(作者提示:当然有别的方案可以用,看看 pandoc 和 wikibeamer 吧。)样例下载:more-markdown

点赞(4)

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部