markdown 转 pdf

Posted xiaoranone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown 转 pdf相关的知识,希望对你有一定的参考价值。

markdown转成pdf

  1. install pandoc (https://github.com/jgm/pandoc/releases/tag/2.7.2)

  2. If you want to create a PDF, you’ll need to have LaTeX installed. (See MacTeX on OS X, MiKTeX on Windows, or install the texlive package in linux.)

  3. 配置文件

\\documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$lang$,$endif$$if(papersize)$$papersize$,$endif$]$documentclass$
\\usepackagegeometry       % 設定邊界
\\geometry
  top=1in,
  inner=1in,
  outer=1in,
  bottom=1in,
  headheight=3ex,
  headsep=2ex

\\usepackage[T1]fontenc
\\usepackagelmodern
\\usepackageamssymb,amsmath
\\usepackageifxetex,ifluatex
\\usepackagefixltx2e % provides \\textsubscript
% use upquote if available, for straight quotes in verbatim environments
\\IfFileExistsupquote.sty\\usepackageupquote
\\ifnum 0\\ifxetex 1\\fi\\ifluatex 1\\fi=0 % if pdftex
  \\usepackage[utf8]inputenc
$if(euro)$
  \\usepackageeurosym
$endif$
\\else % if luatex or xelatex
  \\usepackagefontspec     % 允許設定字體
  \\usepackagexeCJK        % 分開設置中英文字型
  \\setCJKmainfontWenQuanYi Micro Hei  % 設定中文字型
  \\setmainfontUbuntu  % 設定英文字型
  \\setromanfontUbuntu     % 字型
  \\setmonofontUbuntu
  \\linespread1.2\\selectfont   % 行距
  \\XeTeXlinebreaklocale "zh"    % 針對中文自動換行
  \\XeTeXlinebreakskip = 0pt plus 1pt % 字與字之間加入0pt至1pt的間距,確保左右對整齊
  \\parindent 0em        % 段落縮進
  \\setlength\\parskip20pt    % 段落之間的距離
  \\ifxetex
    \\usepackagexltxtra,xunicode
  \\fi
  \\defaultfontfeaturesMapping=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
\\IfFileExistsmicrotype.sty\\usepackagemicrotype
$if(geometry)$
\\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]geometry
$endif$
$if(natbib)$
\\usepackagenatbib
\\bibliographystyleplainnat
$endif$
$if(biblatex)$
\\usepackagebiblatex
$if(biblio-files)$
\\bibliography$biblio-files$
$endif$
$endif$
$if(listings)$
\\usepackagelistings
$endif$
$if(lhs)$
\\lstnewenvironmentcode\\lstsetlanguage=Haskell,basicstyle=\\small\\ttfamily
$endif$
$if(highlighting-macros)$
$highlighting-macros$
$endif$
$if(verbatim-in-note)$
\\usepackagefancyvrb
$endif$
$if(tables)$
\\usepackagelongtable
$endif$
$if(graphics)$
\\usepackagegraphicx
% 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\\Gin@nat@width>\\linewidth\\linewidth
\\else\\Gin@nat@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
\\hypersetupbreaklinks=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
\\urlstylesame  % 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\\parindent0pt
%\\setlength\\parskip6pt plus 2pt minus 1pt
\\setlength\\emergencystretch3em  % prevent overfull lines

\\title\\huge 在OSX平台上的XeLaTeX中文測試 % 設置標題,使用巨大字體
\\authorxiaoran        % 設置作者
\\dateApril 2019        % 設置日期

\\newcommand\\tightlist%
  \\setlength\\itemsep0pt\\setlength\\parskip0pt
%\\usepackagetitling
%\\setlength\\droptitle-8em   % 將標題移動至頁面的上面

\\usepackagefancyhdr
\\usepackagelastpage
\\usepackagebooktabs
\\pagestylefancyplain

$if(numbersections)$
\\setcountersecnumdepth5
$else$
\\setcountersecnumdepth0
$endif$
$if(verbatim-in-note)$
\\VerbatimFootnotes % allows verbatim text in footnotes
$endif$
$if(lang)$
\\ifxetex
  \\usepackagepolyglossia
  \\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$

\\begindocument
$if(title)$
\\maketitle
$endif$

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

$endfor$
$if(toc)$

\\hypersetuplinkcolor=black
\\setcountertocdepth$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$
\\enddocument


将上述文件另存为template.tex,
mkdir -p ~/.pandoc/templates
pandoc -D latex > ~/.pandoc/templates/default.latex
mv template.tex ~/.pandoc/templates/

  1. run
    pandoc input.md -o output.md --engine=xelatex --template=template.tex

: 选择自己电脑上有的字体,修改对应的自己的字体
\\setCJKmainfontWenQuanYi Micro Hei % 設定中文字型
\\setmainfontUbuntu % 設定英文字型

以上是关于markdown 转 pdf的主要内容,如果未能解决你的问题,请参考以下文章

PDF转Markdown文件

PDF转Markdown文件

markdown 转 pdf

markdown 转 pdf

如何将pdf转为markdown

免费在线markdown转pdf