首页 > 其他分享 >Markdown转Beamer

Markdown转Beamer

时间:2024-12-25 16:58:07浏览次数:3  
标签:Markdown pandoc 主题 编译 Beamer md1

技术背景

在早期我写过一些文章介绍用RMarkdown写Beamer,还有相应的TinyTex配置。后来Xie Yihui大神发文离开了RMarkdown核心团队,想来中文社区的支持力度和活跃度可能会有所降低。于是干脆直接用pandoc,把普通的markdown文件编译成Latex Beamer PDF格式。

pandoc的安装

这里给的是Ubuntu Linux操作系统的pandoc安装方案:

$ apt install pandoc

安装完成后可以运行如下指令确认是否安装成功:

$ pandoc --help

以及查看版本:

$ pandoc --version
pandoc 1.19.2.4
Compiled with pandoc-types 1.17.0.5, texmath 0.9.4.4, skylighting 0.3.3.1
Default user data directory: /root/.pandoc
Copyright (C) 2006-2016 John MacFarlane
Web:  http://pandoc.org
This is free software; see the source for copying conditions.
There is no warranty, not even for merchantability or fitness
for a particular purpose.

安装pdflatex

系统里面没有pdflatex的话无法将latex文件编译成pdf文件,这里提供的是一个简略版安装:

$ apt install texlive texlive-xetex latex-cjk-all texmaker

安装完成后,随便做一个markdown文件测试下编译效果:

到这一步,基本上大部分的英文Markdown Beamer PDF构建就没什么问题了。

代码块和公式块

这个是比较常用的功能,相关的测试Markdown文件如下:

---
title: "Test Markdown"
author: "Dechin"
date: "`2022.03.29`"
output: 
  beamer_presentation: 
    theme: Dresden
    colortheme: seagull
---

# Title 1

## Slide 1/2

-   Bullet 1
-   Bullet 2
-   Bullet 3

## Slide 2/2

\```python
import numpy as np
print ('This is a python code block')
\```

# Title 2

## Slide 1/1

Test Equation input
$$
-i\hbar\frac{\partial}{\partial t}\left|\psi\right>=E\left|\psi\right>
$$

需要注意的是,案例中Python代码块前面的两个斜杆要去掉,这里放两个斜杆是为了防止跟博客园平台的Markdown语法冲突。使用Pandoc直接编译效果如下:

这个样式就表示编译成功。

主题和颜色主题

这个是跟此前的RMarkdown非常不同的一个地方,RMarkdown的语法中是在.rmd的Markdown文件中直接配置相关的theme和colortheme。但是在上面的章节中我们可以显然的看到这个主题和颜色主题配置没有被编译进去。在pandoc编译时,我们需要在命令行中配置相应的主题,例如这样编译:

$ pandoc -t beamer -o md1.pdf -V theme=Dresden md1.md

使用这种方法可以配置Dresden主题,也是我个人比较常用的一个主题,效果大概如下:

使用同样的-V可以进一步配置颜色主题:

$ pandoc -t beamer -o md1.pdf -V theme=Dresden -V colortheme=seagull md1.md

这里配置了一个灰色主题:

关于Beamer的更多主题,可以参考这个网站。关于pandoc相关主题的更多配置选项,可以参考其中文手册

中文内容

如果文档中有中文内容,可以先安装一个字体配置工具:

$ apt install fontconfig
Reading package lists... Done
Building dependency tree       
Reading state information... Done
fontconfig is already the newest version (2.12.6-0ubuntu2).
fontconfig set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 38 not upgraded.

查询本地有哪些中文字体:

$ fc-list :lang=zh
/usr/share/fonts/truetype/arphic-bkai00mp/bkai00mp.ttf: AR PL KaitiM Big5,文鼎PL中楷:style=Regular
/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf: Droid Sans Fallback:style=Regular
/usr/share/fonts/truetype/arphic-gkai00mp/gkai00mp.ttf: AR PL KaitiM GB,文鼎PL简中楷:style=Regular
/usr/share/fonts/truetype/arphic-gbsn00lp/gbsn00lp.ttf: AR PL SungtiL GB,文鼎PL简报宋:style=Regular
/usr/share/fonts/truetype/arphic-bsmi00lp/bsmi00lp.ttf: AR PL Mingti2L Big5,文鼎PL細上海宋:style=Regular

如果没有中文字体,可以考虑从Windows系统迁移一些字体过来,这里暂不做介绍。然后在编译的时候,加上一个--latex-engine=xelatex的选项(不加会编译报错),和字体配置选项(不加中文会被编译成空白),具体编译指令如下:

$ pandoc --latex-engine=xelatex -t beamer -o md1.pdf -V theme=Dresden -V colortheme=seagull -V mainfont='AR PL KaitiM GB' md1.md

生成的pdf效果如下:

这样就实现了中文内容的编译。

总结概要

通过使用pandoc,使得我们可以直接将普通的Markdown文件编译成一个Latex Beamer PDF格式的演示文稿文件。相比于RMarkdown有更强的灵活性和通用性,只是不能在生成文稿时运行相关代码,不过这点对于那些只需要一个“静态”演示文稿的人来说影响不大。

版权声明

本文首发链接为:https://www.cnblogs.com/dechinphy/p/pandoc.html

作者ID:DechinPhy

更多原著文章:https://www.cnblogs.com/dechinphy/

请博主喝咖啡:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

标签:Markdown,pandoc,主题,编译,Beamer,md1
From: https://www.cnblogs.com/dechinphy/p/18630783/pandoc

相关文章

  • Markdown_Crawler
    Markdown_Crawler摘自[懂AI](Markdown-Crawler:一款强大的网页爬虫与Markdown转换工具-懂AI)-Markdown-Crawler:一款强大的网页爬虫与Markdown转换工具-懂AI......
  • MarkDown学习
    MarkDown学习标题三级标题+空格几个#就是几级标题字体Helloworld!2边加2个*就是粗体helloworld!2边加一个是斜体加三个是粗斜体~~hello~~2二个波浪号是划横线引用走上人生巅峰分割线三个-三个*图片![截图](C:\Users\冯启权\Desktop\MarkDown学习\屏幕截图2024-......
  • CHM助手 >> 如何高效的制作比较专业的接口文档(Markdown格式)
    1CHM助手>>如何高效的制作接口文档1.1概述  用户如果书写代码的过程中使用了良好的注释,比如:doxygen规范,则有可能生成比较规范的接口文档。很多工具软件都支持编程扩展,比如:宏/脚本接口,那么,完善的接口文档将会给用户带来极大的便利,否则,软件的使用和推广都会受到较大......
  • Markdown学习
    标题一级标题:#+空格+要输入的内容二级标题:##+空格三级标题:###+空格字体Hello,world!Hello,world!Hello,world!Hello,world!引用大于号+空格,表示引用分割线三个#或者三个*,然后按空格图片!+[]+(),可以输入网络图片的地址(不受存储的影响),也可以输入本地图片......
  • MarkDown学习
    MarkDown学习标题三级标题字体二个*helloWord!一个*helloWord!三个星号helloWord!两个波浪线helloWord!引用一个>学习Java,走向人生巅峰分割线三个-三个星号图片!+[]+()超链接[]+()点击跳转列表有序1+.abc无序-+空格ab表格名字性别......
  • CHM助手 >> 使用Markdown工具写作手册
      1使用Markdown工具写作手册1.1概述为什么使用笔记软件写手册?Markdown语法简单,写作效率高格式丰富,功能强大支持代码着色,非常适合软件类手册支持导出html、pdf1.2使用方法1.2.1在VNote中写作手册页面  VNote的使用方法本文不详细介绍,但需要明确的是,......
  • Antdesign React之markdown文档渲染
    能够渲染代码块,样式可以让ai生成,使用前需要安装对应依赖markdownview.tsximportReactfrom'react';importReactMarkdownfrom'react-markdown';import{PrismasSyntaxHighlighter}from'react-syntax-highlighter';import{vscDarkPlus}from're......
  • Markdown学习
    Markdown学习字体格式加粗CTRL+B斜体CTRL+I斜体加粗下划线删除线引用开始新篇章分割线图片超链接点击跳转列表ABAB表格名字成绩张三999代码javeisverygood......
  • 移动端笔记应用,markdown应用选用
    要求不能有广告。作为使用频率较高的软件,有广告就是恶心人。支持markdown,包括且不限于代码块、标题、图片等格式。支持同步,至少拥有WebDav云同步,或者本地导入导出。全局搜索功能。以上功能必须免费,至少我不明白导入导出有什么好付费的。云同步这种付费理所当然。背景早......
  • Marp 入门与教程:让你一分钟爱上Markdown写PPT的乐趣
    Marp入门与教程一、什么是Marp?Marp是一个基于Markdown的开源幻灯片制作工具,可以轻松将Markdown文档转换为精美的幻灯片。其核心是Marpit框架,支持可定制主题、多种输出格式和动态功能。与LaTeX的Beamer比较:对比项MarpLaTeX(Beamer)易用性使用Markdown语......