pandoc 用markdown写毕业论文 markdown转pdf,docx

因为写论文的关系,需要排版又苦于没有一个好的office,这里说的是正版,因为还要发给老师查看的缘故。

安装pandoc

这是一个痛苦而又复杂的过程,当然也可以直接下载Pandoc

安装ghc

port安装ghc

sudo port install ghc

homebrew安装ghc
brew install ghc

编译cabal

Common Architecture for Building Applications and Libraries2
Cabal是Haskell用于构建应用程序和库的公共架构。
简单的来说它是haskell的包管理,和上面的port、brew 命令类似。

下载地址http://haskell.org/cabal/

解压后
    ghc --make Setup.hs
    ./Setup configure
    ./Setup build 
    sudo ./Setup install

安装cabal

安装之前我们需要更新
cabal update

安装pandoc
 cabal install pandoc

添加到PATH
export PATH=/Users/fdhuang/.cabal/bin:$PATH

markdown 转doc

pandoc iot.md -o iot.docx

markdown 转pdf

这里只针对于安装了mactex

openSUSE安装pandoc

     zypper install pandoc

Ubuntu安装pandoc

sudo aptitude install pandoc
当然也可以用apt-get

安装mactex

下载地址:
http://mirror.ctan.org/systems/mac/mactex/mactex-basic.pkg

markdown转pdf

不含中文时   
pandoc doc.pandoc doc.pdf

含有中文时的简单作法
pandoc --latex-engine=xelatex iot.md -o iot.pdf -V mainfont="SimSun"

markdown转pdf 含中文

     pandoc --template=template.tex --latex-engine=xelatex iot.md -o iot.pdf

也就是我们需要一个template.tex的模板用于构建,下载地址

https://raw.githubusercontent.com/tzengyuxio/pages/gh-pages/pandoc/pm-template.latex

或者可以参考这个

https://github.com/gmszone/iot-doc


详细可见下文,主要是因为tex对中文支持的缘故

		\documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$lang$,$endif$$if(papersize)$$papersize$,$endif$]{$documentclass$}
		\usepackage{geometry} 		% 設定邊界
		\geometry{
		  top=1in,
		  inner=1in,
		  outer=1in,
		  bottom=1in,
		  headheight=3ex,
		  headsep=2ex
		}
		\usepackage[T1]{fontenc}
		\usepackage{lmodern}
		\usepackage{amssymb,amsmath}
		\usepackage{ifxetex,ifluatex}
		\usepackage{fixltx2e} % provides \textsubscript
		% use upquote if available, for straight quotes in verbatim environments
		\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
		\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
		  \usepackage[utf8]{inputenc}
		$if(euro)$
		  \usepackage{eurosym}
		$endif$
		\else % if luatex or xelatex
		  \usepackage{fontspec} 	% 允許設定字體
		  \usepackage{xeCJK} 		% 分開設置中英文字型
		  \setCJKmainfont{STSong} 	% 設定中文字型
		  \setmainfont{Georgia} 	% 設定英文字型
		  \setromanfont{Georgia} 	% 字型
		  \setmonofont{Courier New}
		  \linespread{1.2}\selectfont 	% 行距
		  \XeTeXlinebreaklocale "zh" 	% 針對中文自動換行
		  \XeTeXlinebreakskip = 0pt plus 1pt % 字與字之間加入0pt至1pt的間距,確保左右對整齊
		  \parindent 0em 		% 段落縮進
		  \setlength{\parskip}{20pt} 	% 段落之間的距離
		  \ifxetex
		    \usepackage{xltxtra,xunicode}
		  \fi
		  \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
		  \newcommand{\euro}{€}
		$if(mainfont)$
		    \setmainfont{$mainfont$}
		$endif$
		$if(sansfont)$
		    \setsansfont{$sansfont$}
		$endif$
		$if(monofont)$
		    \setmonofont{$monofont$}
		$endif$
		$if(mathfont)$
		    \setmathfont{$mathfont$}
		$endif$
		\fi
		% use microtype if available
		\IfFileExists{microtype.sty}{\usepackage{microtype}}{}
		$if(geometry)$
		\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
		$endif$
		$if(natbib)$
		\usepackage{natbib}
		\bibliographystyle{plainnat}
		$endif$
		$if(biblatex)$
		\usepackage{biblatex}
		$if(biblio-files)$
		\bibliography{$biblio-files$}
		$endif$
		$endif$
		$if(listings)$
		\usepackage{listings}
		$endif$
		$if(lhs)$
		\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
		$endif$
		$if(highlighting-macros)$
		$highlighting-macros$
		$endif$
		$if(verbatim-in-note)$
		\usepackage{fancyvrb}
		$endif$
		$if(tables)$
		\usepackage{longtable}
		$endif$
		$if(graphics)$
		\usepackage{graphicx}
		% We will generate all images so they have a width \maxwidth. This means
		% that they will get their normal width if they fit onto the page, but
		% are scaled down if they would overflow the margins.
		\makeatletter
		\def\maxwidth{\ifdim\[email protected]@width>\linewidth\linewidth
		\else\[email protected]@width\fi}
		\makeatother
		\let\Oldincludegraphics\includegraphics
		\renewcommand{\includegraphics}[1]{\Oldincludegraphics[width=\maxwidth]{#1}}
		$endif$
		\ifxetex
		  \usepackage[setpagesize=false, % page size defined by xetex
		              unicode=false, % unicode breaks when used with xetex
		              xetex]{hyperref}
		\else
		  \usepackage[unicode=true]{hyperref}
		\fi
		\hypersetup{breaklinks=true,
		            bookmarks=true,
		            pdfauthor={$author-meta$},
		            pdftitle={$title-meta$},
		            colorlinks=true,
		            urlcolor=$if(urlcolor)$$urlcolor$$else$blue$endif$,
		            linkcolor=$if(linkcolor)$$linkcolor$$else$magenta$endif$,
		            pdfborder={0 0 0}}
		\urlstyle{same}  % don't use monospace font for urls
		$if(links-as-notes)$
		% Make links footnotes instead of hotlinks:
		\renewcommand{\href}[2]{#2\footnote{\url{#1}}}
		$endif$
		$if(strikeout)$
		\usepackage[normalem]{ulem}
		% avoid problems with \sout in headers with hyperref:
		\pdfstringdefDisableCommands{\renewcommand{\sout}{}}
		$endif$
		\setlength{\parindent}{0pt}
		%\setlength{\parskip}{6pt plus 2pt minus 1pt}
		\setlength{\emergencystretch}{3em}  % prevent overfull lines


		\title{\huge 在OSX平台上的XeLaTeX中文測試} % 設置標題,使用巨大字體
		\author{FoolEgg.com} 		% 設置作者
		\date{February 2013} 		% 設置日期
		\usepackage{titling}
		\setlength{\droptitle}{-8em} 	% 將標題移動至頁面的上面


		\usepackage{fancyhdr}
		\usepackage{lastpage}
		\pagestyle{fancyplain}


		$if(numbersections)$
		\setcounter{secnumdepth}{5}
		$else$
		\setcounter{secnumdepth}{0}
		$endif$
		$if(verbatim-in-note)$
		\VerbatimFootnotes % allows verbatim text in footnotes
		$endif$
		$if(lang)$
		\ifxetex
		  \usepackage{polyglossia}
		  \setmainlanguage{$mainlang$}
		\else
		  \usepackage[$lang$]{babel}
		\fi
		$endif$
		$for(header-includes)$
		$header-includes$
		$endfor$


		$if(title)$
		\title{$title$}
		$endif$
		\author{$for(author)$$author$$sep$ \and $endfor$}
		\date{$date$}


		\begin{document}
		$if(title)$
		\maketitle
		$endif$


		$for(include-before)$
		$include-before$


		$endfor$
		$if(toc)$
		{
		\hypersetup{linkcolor=black}
		\setcounter{tocdepth}{$toc-depth$}
		\tableofcontents
		}
		$endif$
		$body$


		$if(natbib)$
		$if(biblio-files)$
		$if(biblio-title)$
		$if(book-class)$
		\renewcommand\bibname{$biblio-title$}
		$else$
		\renewcommand\refname{$biblio-title$}
		$endif$
		$endif$
		\bibliography{$biblio-files$}


		$endif$
		$endif$
		$if(biblatex)$
		\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$


		$endif$
		$for(include-after)$
		$include-after$


		$endfor$
		\end{document}

也可以在这里获取一个

pandoc template pandoc 毕业设计模板


更多相关文章
  • 学习DIP第72天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro 开篇废话 今天写的博客有点多,因为这里的理论只是在 ...
  • 为人父母之后与没做爸妈之前的心态是截然不同的,这是靠想象无法体会的感受,只有当了爸妈才会真正长大,这是许多过来人的经验之谈.一旦有了孩子,就会把大部分精力都放在孩子身上,孩子的吃穿,孩子的安全,孩子的教育,无时无刻不牵动着爸妈的心,所以现代商人都认为孩子的钱最好赚. 母婴电商:从B2C到O2O到特卖 ...
  • 1. 前提条件 1.1 确保已经创建并启用用户的邮箱,关于如何创建用户请参考黄锦辉专栏 Office 365系列之五:创建新用户 http://stephen1991.blog.51cto.com/8959108/1597912 Office 365 系列之六:通过管理中心批量导入用户 http:/ ...
  • 易网科技讯 12月15日消息,美股周五下跌.投资者对联邦政府预算协议的达成缺乏信心,忽视了来自中美积极的经济数据.截至收盘,道琼斯工业平均指数跌35.71点,或0.27%,收报13,135.01点.标准普尔500指数跌5.87点,或0.41%,收报1,413.58点.纳斯达克综合指数跌20.83点, ...
  • 呐,就拿它置顶好了. 今天还是2015年5月30日么? 怎么样的一天呢 盛夏,平淡,没有云彩,没有你. 马上要出去旅行了呢,是个怎样的城市呢? 会不会还是都市的感觉,还是没有你的地方. 这些,, 都是我新博客的客人呢. 让我以礼相待,招待好再送走它们. 让我藏下五月,且拥有不减的回忆. 让我.让我 ...
  • 本节主要内容 (一)函数字面量(值函数) (二)匿名函数 (三)函数的简化 (四)函数参数 (四)闭包 函数字面量(值函数) 函数字面量(function literal),也称值函数(function values),指的是函数可以赋值给变量. 一般函数具有如下形式: 而函数字面量具有如下形式: ...
一周排行
  • 当我最开始写php的时候,总是担心这个问题:我在这儿new的一个class能加载到对应的类文件吗?毕竟一运行就报Fatal Error,什么**文件没找到,类无法实例化等等是一种很“低级”的错误,怕别人看了笑话.于是 ...
  • 已移到:http://www.iteblog.com/archives/155程序的问题:已知数组a[n],求数组b[n].要求:b[i]=a[0]*a[1]*--*a[n-1]/a[i],不能用除法. a.时间复杂 ...
  • 笔记本背包 卡包套装 U盘手表 ------------------------------------------------------ IT关键业务推动者社区邀请您加入IT关键业务推动者社区已于2010年12月 ...
  • 说明:本文来自老男孩linux运维实战培训-高级课程视频内容,本文内容为系列内容,更多分享信息见:http://oldboy.blog.51cto.com/2561410/1169084 1)视频实战讲解分享(全屏观 ...
  • wine的乱码是因为字体关联不正确造成的,在解决的时候需要修改注册表的键值,在ubuntu8.04中安装了wine如果显示的都是乱码可以通过修改注册表关联来解决. 注册表并不怎么陌生,但是想起来windows中繁琐的 ...
  • (1) 微型计算机中使用最普遍的字符编码是 A.EBCDIC码 B.国标码 C.BCD码 D.ASCII码 参考答案: D (2) OSI(开放系统互连)参考模型的最高层是 A.表示层 B.网络层 C.应用层 D.会 ...
  • 为了提高企业竞争力,不少软件企业为通过ISO或CMM(I)资质认证付出了巨大的代价,但有为数不少的企业却很少或没有看到这些资质认证给公司软件质量改进带来的明显效果,原因何在?有些人说是ISO或CMM(I)等质量体系不 ...
  • 第5 周上机任务 任务1:用VC++ 6.0,编辑.编译.运行第一个程序 实验内容:<C++程序设计题解与上机指导>第15 章15.1 节到15.3 节 实验目的:掌握简单C++程序的编辑.编译.连接和运 ...
  • 2015年9月9号,中国人民认可的卖肾日,苹果公司将会发布新一代iPhone,而iPhone 6是否会便宜呢?据称,iPhone 6将5折出售,本文将提供更多相关信息供大家了解 iPhone 6s最大的升级会是坚硬的 ...
  • Java培训.Android培训.iOS培训..Net培训.期待与您交流! - Java继承 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类.继承可以理解为一个对象从另一个对象获取属性的过程. ...