文档章节

mac下利用Pandoc、LaTeX 转换markdown成html,pdf

mingle
 mingle
发布于 2015/08/22 10:20
字数 616
阅读 618
收藏 2
点赞 0
评论 0

环境所使用的插件有pandoc,tlmgr,fc-list

使用brew进行pandoc的安装,也可以去pandoc官网下载http://www.pandoc.org/installing.html

brew install pandoc

因为mac ox 系统生成pdf 需要找到对应的编码集 所有还需要去下载LaTeX,进行安装

使用tlmgr工具安装所有要的包先进行更新,如果提示所需要的字体没有找到安装

sudo tlmgr update --self
tlmgr install collection-fontsrecommended

安装fontconfig使用fc-list查看mac中可用的中文集,因为os x 10.8以后已经不安装x11

brew install fontconfig
fc-list :lang=zh-cn

字符集放在/Library/Fonts 下面已宋体为例 

/Library/Fonts/Songti.ttc: 宋体\-简,宋體\-簡,Songti SC:style=粗体,粗體,Bold

pandoc --latex-engine=xelatex -V mainfont='
Songti SC
' --template=./pandoc.template xxx.md -o xxx.pdf

下面是markdown转换的工具

安装make

创建shell文件名为md2pdf,可以指定使用字体集

#!/bin/sh
# Wrapper script around pandoc / markdown2pdf
# Provides templates to apply with pdf processing
# Copyright Claes Holmerson 2010, GPL licensed (see COPYING for details)
#Find this directory
# template_home=$(dirname $(readlink -f $0))
template_home=$(cd `dirname $0`; pwd)
paper=a4paper
hmargin=3cm
vmargin=3.5cm
fontsize=12pt
#fontsize=11pt
#fontsize=12pt
# mainfont=SimSun
# sansfont=Corbel
# monofont=Consolas
# mainfont="WenQuanYi Zen Hei Sharp"
# sansfont="WenQuanYi Zen Hei Sharp"
# monofont="WenQuanYi Zen Hei Mono"
language=english
#language=swedish
nohyphenation=false
columns=onecolumn
#columns=twocolumn
geometry=portrait
#geometry=landscape
alignment=flushleft
#alignment=flushright
#alignment=center
toc=3
pandoc --latex-engine=xelatex --template=$template_home/pandoc.template \
-V language=$language -V paper=$paper -V hmargin=$hmargin -V vmargin=$vmargin \
-V mainfont="$mainfont" -V sansfont="$sansfont" -V monofont="$monofont" \
-V geometry=$geometry -V alignment=$alignment -V columns=$columns \
-V fontsize=$fontsize -V nohyphenation=$nohyphenation \
-V toc=$toc \
$@

创建markdown.css

@font-face {
	font-family: "AR PL New Sung";
	src: url("/usr/share/fonts/TTF/odosung.ttc");
}

body {
    background-color: #fcfcfc;
    color: #3c3c3c;
}
a {
    color: #308bd8;
    text-decoration:none;
}
a:hover {
    text-decoration: underline;
}
p {
    margin:0 0 24px 0;
}
p:last-child {
    margin:0;
}
hr {
    width: 100%;
    margin: 1em auto;
    border: 0;
    color: #eee;
    background-color: #ccc;
    height: 1px;
    -webkit-box-shadow:0px 1px 0px rgba(255, 255, 255, 0.75);
}
blockquote {
    margin-left: 0;
    margin-right: auto;
    width: 96%;
    padding: 10px 10px;
    border-left: 3px solid #ddd;
    color: #777;
	background-color: #f2f2f2;
}
table {
    margin-left: 0;
    margin-right: auto;
    margin-bottom: 24px;
    border-bottom: 1px solid #ddd;
    border-right: 1px solid #ddd;
    border-spacing: 0;
}
table th {
    padding: 3px 10px;
    background-color: #eee;
    border-top: 1px solid #ddd;
    border-left: 1px solid #ddd;
}
table tr {
}
table td {
    padding: 3px 10px;
    border-top: 1px solid #ddd;
    border-left: 1px solid #ddd;
}
caption {
    font-size: 1.2em;
    font-weight: bold;
    margin-bottom: 5px;
}

@page {
  size: A4;
  margin: 1cm auto;
}
@media print {
    body {
        font-family: "Arial Black", Arial, sans-serif;
        -webkit-print-color-adjust: exact;
    }
    img, pre, blockquote, table, figure {
        page-break-inside: avoid;
    }
    .footnotes {
        page-break-before: always;
    }
    header.onlyprint, footer.onlyprint{
        display: none;
    }
}

/* fix pandoc default style */
code {
}
code > span.dt {
    text-decoration: none;
}

创建Makefile文件内容如下,如果你markdown 是分文件模块进行编译的可以使用cat进行合并 分别生成html,pdf

main :
# cat 00*.md > xxx.md
pandoc -f markdown_github-autolink_bare_uris -s --highlight-style espresso -t html5 -c "./markdown.css" -o xxx.html xxx.md
# cat 00*.md > xxx.md
./md2pdf xxx.md -o xxx.pdf

生成pdf

./md2pdf xxx.md -o xxx.pdf

生成html 和pdf

make


© 著作权归作者所有

共有 人打赏支持
mingle
粉丝 9
博文 133
码字总数 19692
作品 0
朝阳
程序员
从 Word 到 Docbook, 最后用 Pandoc, 让程序员爱上写文档

写文档一直是程序员非常讨厌的工作, 甚至和改需求一样令人厌烦. 在程序员眼里比写程序还难, 即便强制执行下来文档质量也很难让人满意. 相信大多数公司写文档都是用 Word, 笔者也是用了 Word...

震秦
2015/05/17
0
0
Md2All,让公众号完美显示Latex数学公式

当公众号遇上Latex 大家都知到,公众号连代码块都不支持,更不要说功能强大的Latex公式了。 那在Md2All之前,如果想在公众号上显示Latex公式应该怎么办呢? 最通常的做法就是在某个支持Latex...

颜家大少
06/26
0
0
Mac 10.8 下安装Sphinx并支持生成中文PDF

Mac 10.8 下安装Sphinx并支持生成中文PDF 最近一直在用Sphinx撰写文档,但是生成中文PDF时老是失败。今天在网上查了些资料,终于把它弄成功了。现记录如下。 需要用到的软件有: python 2.7...

羊八井
2013/10/21
0
0
怎样转换LaTeX与MathType之间的公式

现在越来越多的人选择使用MathType数学公式编辑器来编辑公式,有时在MathType公式之间要与LaTex公式之间相互转换。如果公式比较少时,可以直接利用MathType先编辑后进行转换,但是当公式很多...

MathType
2015/11/20
0
0
用gnuplot的epslatex终端画图插入Latex

由gnuplot的epslatex终端可以做出带有latex公式的图,可以很方便地插入latex文件中。 下述代码为一个gnuplot的epslatex终端画图的实例: # plot dthomegamset term epslatex standalone lin...

Lynn_AIR
2014/04/14
0
0
4 种基于 Markdown 的幻灯片生成器

这些简单的幻灯片创建工具可以无缝地使用 Markdown,可以让你的演示添加魅力。 假设你需要做一个演示presentation。在准备的过程中,你想到“我需要写几张幻灯片”。 你可能倾向于简洁的纯文...

11%
06/26
0
0
Adaboost、SVM、LDA、贝叶斯网络、谱聚类等几篇博客的LaTeX文件下载

Adaboost、SVM、LDA、贝叶斯网络、谱聚类等几篇博客的LaTeX文件下载 今年以前,在我自己的博客上写过一系列的机器学习系列文章,如下图所示: 随后,微博上有一些朋友帮忙制作了latex版本(非...

Airship
2015/02/05
0
0
苹果公司的幻灯片软件 Keynote 已支持 LaTeX 语法

据苹果的“支持页面”显示,macOS 上的办公套件 Pages, Numbers, Keynote 和 iBooks Author 已支持 LaTeX 和 MathML 语法。 iWork 和 iBooks Author 支持所有的 LaTeX 命令(可通过 blahtex ...

局长
06/17
0
0
使用 HTML 或 Pug 交互式创建 PDF 文档 - ReLaXed

ReLaXed 是一种使用 HTML 或 Pug( HTML 的简写)交互式创建 PDF 文档的工具。它允许使用 CSS 和 JavaScript 定义复杂的布局,同时使用接近 Markdown 或 LaTeX 的友好且简单的语法。 ReLaXe...

匿名
05/21
0
1
Latex中使用visio的矢量图(转载+修改)

我们知道,visio用来画流程图等专业图很方便,而Latex的专业排版效果是Word所不能比的,而Visio不支持导入eps和dvi格式的矢量图,而导出jpeg毕竟有质量损失,那么怎么才能在Latex中直接使用v...

Shawphy
2012/03/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

前端基础

1. get请求传参长度的误区 误区:我们经常说get请求参数的大小存在限制,而post请求的参数大小是无限制的。 实际上HTTP 协议从未规定 GET/POST 的请求长度限制是多少。对get请求参数的限制是...

wenxingjun
23分钟前
0
0
Android 复制和粘贴功能

做了一回搬运工,原文地址:https://blog.csdn.net/kennethyo/article/details/76602765 Android 复制和粘贴功能,需要调用系统服务ClipboardManager来实现。 ClipboardManager mClipboardM...

她叫我小渝
今天
0
0
拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)

工作准备 •一台SQLSERVER 2005/SQLSERVER 2008服务 •SQLSERVER jdbc驱动程序 •Java开发环境eclipse + jdk1.8 •java反编译工具JD-Core 反编译JDBC分析SQLSERVER客户端与服务器通信原理 SQ...

紅顏為君笑
今天
6
0
jQuery零基础入门——(六)修改DOM结构

《jQuery零基础入门》系列博文是在廖雪峰老师的博文基础上,可能补充了个人的理解和日常遇到的点,用我的理解表述出来,主干出处来自廖雪峰老师的技术分享。 在《零基础入门JavaScript》的时...

JandenMa
今天
0
0
linux mint 1.9 qq 安装

转: https://www.jianshu.com/p/cdc3d03c144d 1. 下载 qq 轻聊版,可在百度搜索后下载 QQ7.9Light.exe 2. 去wine的官网(https://wiki.winehq.org/Ubuntu) 安装 wine . 提醒网页可以切换成中...

Canaan_
今天
0
0
PHP后台运行命令并管理运行程序

php后台运行命令并管理后台运行程序 class ProcessModel{ private $pid; private $command; private $resultToFile = ''; public function __construct($cl=false){......

colin_86
今天
1
0
数据结构与算法4

在此程序中,HighArray类中的find()方法用数据项的值作为参数传递,它的返回值决定是否找到此数据项。 insert()方法向数组下一个空位置放置一个新的数据项。一个名为nElems的字段跟踪记录着...

沉迷于编程的小菜菜
今天
1
1
fiddler安装和基本使用以及代理设置

项目需求 由于开发过程中客户端和服务器数据交互非常频繁,有时候服务端需要知道客户端调用接口传了哪些参数过来,这个时候就需要一个工具可以监听这些接口请求参数,已经接口的响应的数据,这种...

银装素裹
今天
0
0
Python分析《我不是药神》豆瓣评论

读取 Mongo 中的短评数据,进行中文分词 对分词结果取 Top50 生成词云 生成词云效果 看来网上关于 我不是药神 vs 达拉斯 的争论很热啊。关于词频统计就这些,代码中也会完成一些其它的分析任...

猫咪编程
今天
0
0
虚拟机怎么安装vmware tools

https://blog.csdn.net/tjcwt2011/article/details/72638977

AndyZhouX
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部