文档章节

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

mingle
 mingle
发布于 2015/08/22 10:20
字数 616
阅读 732
收藏 2

环境所使用的插件有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
粉丝 10
博文 135
码字总数 20037
作品 0
朝阳
程序员
私信 提问
在命令行使用 Pandoc 进行文件转换

这篇指南介绍如何使用 Pandoc 将文档转换为多种不同的格式。 Pandoc 是一个命令行工具,用于将文件从一种标记语言转换为另一种标记语言。标记语言使用标签来标记文档的各个部分。常用的标记语...

作者: Kiko Fernandez-reyes
前天
0
0
用 Pandoc 生成一篇调研论文

学习如何用 Markdown 管理章节引用、图像、表格以及更多。 这篇文章对于使用 Markdown 语法做一篇调研论文进行了一个深度体验。覆盖了如何创建和引用章节、图像(用 Markdown 和 LaTeX)和参...

作者: Kiko Fernandez-reyes
11/01
0
0
在命令行使用 Pandoc 进行文件转换 | Linux 中国

有用的原文链接 请访问文末的“原文链接”获得可点击的文内链接、全尺寸原图和相关文章。 致谢 编译自 |  https://opensource.com/article/18/9/intro-pandoc  作者 | Kiko Fernandez-...

Linux中国
昨天
0
0
从 Word 到 Docbook, 最后用 Pandoc, 让程序员爱上写文档

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

震秦
2015/05/17
0
0
Pandoc 2.4 版本发布,标记格式转换工具

Pandoc 是一个用于从一种标记格式转换为另一种的 Haskell 库,同时也是一个使用该库的命令行工具。 与大多数将 Markdown 转换为 HTML 的工具(使用正则表达式替换)不同,Pandoc 具有模块化设...

王练
11/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

new Date() 在Safari下的 Invalid Date问题

问题复现 var timeStr = '2018-11-11 00:00:00';var time = new Date(timeStr);// error: Invalid Date... 在safari浏览器下,time为Invalid Date, 导致后面代码执行错误; 其他浏览器诸...

会写代码的husky
16分钟前
2
0
0009-如何升级Cloudera Manager和CDH

1.文档编写目的 本文档讲述如何升级Cloudera Manager和CDH,通过本文档,您将学习到以下知识: 1.如何对Cloudera Manager进行停机升级 2.如何对CDH进行停机升级 3.如何在不影响集群作业的情况...

Hadoop实操
26分钟前
1
0
vue2中引用 better-scroll的方法

文章主要介绍了vue2中引用better-scroll和使用 better-scroll的方法,使用时有三个要点及注意事项在文中给大家详细介绍 ,需要的朋友可以参考下 使用时有三个要点: 一:html部分 <div class...

前端攻城老湿
36分钟前
1
0
浅谈教你如何掌握Linux系统

linux能做什么?相信绝大数人都有这样的疑问。可以玩吃鸡吗?可以玩lol吗? 如果你是以娱乐的名义来评价linux的可用性,对不起,linux可能不适合你,因为linux是一个工具,他是教你聪明的,不...

linuxprobe16
43分钟前
1
0
java中线程池的生命周期

线程池生命周期包括: RUNNING:接收新的任务并处理队列中的任务 SHUTDOWN:不接收新的任务,但是处理队列中的任务 STOP:不接收新的任务,不处理队列中的任务,同时中断处理中的任务 TIDYING:所...

小刀爱编程
50分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部