Created
May 4, 2012 03:36
-
-
Save katoy/2591809 to your computer and use it in GitHub Desktop.
pandoc-pdf: generate pdf using pandoc, markdonw is include kanji.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# usage: | |
# pandoc-pdf 1.md 1.pdf | |
# generater 1.md -> 1.pdf | |
# 1.md: utf-8 encoding | |
# | |
# How to make TEMPLATEFILE: | |
# $ pandoc -D latx > template-kanji.latex | |
# Edit templte-kanji.latex, add | |
# | |
# \setmainfont{IPAPMincho} | |
# \setsansfont{IPAPGothic} | |
# \setmonofont{IPAGothic} | |
# \XeTeXlinebreaklocale ``ja'' | |
# | |
TEMPLATE=/Users/youichikato/tools/template-kanji.latex | |
pandoc --template=$TEMPLATE --latex-engin=xelatex -o $2 $1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% \documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$lang$,$endif$]{$documentclass$} | |
\documentclass[14pt,a4j]{article} | |
\setlength{\textwidth}{17cm} | |
\setlength{\textheight}{24cm} | |
\setlength{\leftmargin}{-1cm} | |
\setlength{\topmargin}{-2cm} | |
\setlength{\oddsidemargin}{0cm} | |
\setlength{\evensidemargin}{0cm} | |
\usepackage{amssymb,amsmath} | |
\usepackage{ifxetex,ifluatex} | |
\ifxetex | |
\usepackage{fontspec,xltxtra,xunicode} | |
\defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase} | |
\newcommand{\euro}{€} | |
\setmainfont{IPAPMincho} | |
\setsansfont{IPAPGothic} | |
\setmonofont{IPAGothic} | |
\XeTeXlinebreaklocale ``ja'' | |
$if(mathfont)$ | |
\setmathfont{$mathfont$} | |
$endif$ | |
\else | |
\ifluatex | |
\usepackage{fontspec} | |
\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$ | |
\else | |
\usepackage[utf8]{inputenc} | |
$if(euro)$ | |
\usepackage{eurosym} | |
$endif$ | |
\fi | |
\fi | |
$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(fancy-enums)$ | |
% Redefine labelwidth for lists; otherwise, the enumerate package will cause | |
% markers to extend beyond the left margin. | |
\makeatletter\AtBeginDocument{% | |
\renewcommand{\@listi} | |
{\setlength{\labelwidth}{4em}} | |
}\makeatother | |
\usepackage{enumerate} | |
$endif$ | |
$if(tables)$ | |
\usepackage{ctable} | |
\usepackage{float} % provides the H option for float placement | |
$endif$ | |
$if(url)$ | |
\usepackage{url} | |
$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\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, | |
bookmarks=true, | |
pdfauthor={$author-meta$}, | |
pdftitle={$title-meta$}, | |
colorlinks=true, | |
linkcolor=blue]{hyperref} | |
\else | |
\usepackage[unicode=true, | |
bookmarks=true, | |
pdfauthor={$author-meta$}, | |
pdftitle={$title-meta$}, | |
colorlinks=true, | |
linkcolor=blue]{hyperref} | |
\fi | |
\hypersetup{breaklinks=true, pdfborder={0 0 0}} | |
$if(strikeout)$ | |
\usepackage[normalem]{ulem} | |
% avoid problems with \sout in headers with hyperref: | |
\pdfstringdefDisableCommands{\renewcommand{\sout}{}} | |
$endif$ | |
$if(subscript)$ | |
\newcommand{\textsubscr}[1]{\ensuremath{_{\scriptsize\textrm{#1}}}} | |
$endif$ | |
\setlength{\parindent}{0pt} | |
\setlength{\parskip}{6pt plus 2pt minus 1pt} | |
\setlength{\emergencystretch}{3em} % prevent overfull lines | |
$if(numbersections)$ | |
$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$ | |
$if(author)$ | |
\author{$for(author)$$author$$sep$ \and $endfor$} | |
$endif$ | |
$if(date)$ | |
\date{$date$} | |
$endif$ | |
\begin{document} | |
$if(title)$ | |
\maketitle | |
$endif$ | |
$for(include-before)$ | |
$include-before$ | |
$endfor$ | |
$if(toc)$ | |
\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} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
pandoc で 漢字を含む markdown ファイルから PDF を生成する方法を 示した。
漢字を含んでいる場合 単に $ pandoc -t foo.pdf, foo.md としたのでは、PDF は生成できない。
latex エンジンとして xelatex を使うこと、変換 template 中で漢字用のフォントを指定することが必要であった。
See