์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ markdown2pdf ์†”๋ฃจ์…˜ Linux

๋จธ๋ฆฌ๋ง

๋งˆํฌ๋‹ค์šด์€ ๊ฐ„๋‹จํ•œ ์ดํƒค๋ฆญ์ฒด์™€ ๋ณผ๋“œ์ฒด ์„œ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์งง์€ ๊ธฐ์‚ฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋ฉฐ ๋•Œ๋กœ๋Š” ์ƒ๋‹นํžˆ ๋งŽ์€ ํ…์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Markdown์€ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ๊ธฐ์‚ฌ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ์—๋„ ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋•Œ๋•Œ๋กœ ๋‹น์‹ ์€ ์†์‹ค์—†์ด ํƒฌ๋ฒ„๋ฆฐ๊ณผ ์ถค์„ ์ถ”๊ณ  ๊ทœ์น™์ ์ด๊ณ  ์ž˜ ๊ตฌ์„ฑ๋œ PDF ํŒŒ์ผ๋กœ ์ถ”์›”ํ•˜๊ณ  ๋ณ€ํ™˜ ์ค‘์— ๋ฌธ์ œ๊ฐ€ ์—†๋„๋กํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋Ÿฌ์‹œ์•„์–ด๋กœ ์“ธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์†Œ์Šค ์ฝ”๋“œ์˜ ์ฃผ์„, ๋„ˆ๋ฌด ๊ธด ์ค„์€ ์ „์†ก๋˜์ง€ ์•Š์ง€๋งŒ ์ž˜๋ฆผ ๋ฐ ๊ธฐํƒ€ ์‚ฌ์†Œํ•œ ๋ฌธ์ œ. ์ง€์นจ์„ ํ†ตํ•ด ๋ณ€ํ™˜๊ธฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. md2pdf ์ž‘๋™ ๋ฐฉ์‹์„ ์‹ค์ œ๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ์ฑ„. ์–ด๋А ์ •๋„ ์ž๋™ ์„ค์น˜๋ฅผ ์œ„ํ•œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์•„๋ž˜์˜ ํ•ด๋‹น ์„น์…˜์— ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณ€ํ™˜์„ ์œ„ํ•œ ๋‚ด ์ƒ˜ํ”Œ TeX ํ…œํ”Œ๋ฆฟ์€ Microsoft ๊ธ€๊ผด ์ง€์›์„ ํฌํ•จํ•˜๋Š” PSCyr ๊ธ€๊ผด ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํƒ€์ž„์ฆˆ ์ƒˆ๋กœ์šด ๋กœ๋งˆ์ด๊ฒƒ๋“ค์€ GOST์—์„œ ์š”๊ตฌํ•˜๋Š” ํ•™์œ„ ์š”๊ฑด์ž…๋‹ˆ๋‹ค. GOST์— ์ต์ˆ™ํ•˜์‹œ๋‹ค๋ฉด ํ•„์š”์— ๋งž๊ฒŒ ํ…œํ”Œ๋ฆฟ์„ ์ˆ˜์ •ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ ์ง€์นจ์— ๋”ฐ๋ผ ๋จผ์ € TexLive์—์„œ PSCyr์„ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •์€ ๋ฐฐํฌํŒ์—์„œ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. Linux Mint Mate ์‚ฌ์šฉ์ž๋ผ๋ฉด ํ•ด๋‹น ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ TexLive ํŒจํ‚ค์ง€ ํด๋”๋ฅผ ๊ตฌ๊ธ€์—์„œ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฐฐํฌํŒ์˜ ๊ฒฝ์šฐ ํ•ด๋‹น ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ TexLive ํŒจํ‚ค์ง€ ํด๋”๋ฅผ ๊ฒ€์ƒ‰ํ•ด ๋ณด์„ธ์š”.

TexLive ์„ค์น˜

๋ฌผ๋ก  ์ด ํŒจํ‚ค์ง€์˜ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐœ์ธ์ ์œผ๋กœ ๋‚˜๋Š” ์†”์งํžˆ ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ์ž‘์—… ์„ค์น˜๋ฅผ ์ฐพ๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๊ฒŒ์œผ๋ฅด๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ์ „์ฒด TexLive ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๊ฒƒ์€์ด๋ผ๊ณ  texlive ์ „์ฒด ๋ฌด๊ฒŒ๋Š” 2GB๊ฐ€ ์กฐ๊ธˆ ๋„˜์Šต๋‹ˆ๋‹ค. ์ด ์‚ฌ์‹ค์„ ๋ช…์‹ฌํ•˜์‹ญ์‹œ์˜ค. ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

user@hostname:~$ sudo apt install texlive-full -y

์ถฉ๋ถ„ํžˆ ๊ธด ์„ค์น˜๊ฐ€ ๋๋‚˜๋ฉด ๋‹ค์Œ ํ•ญ๋ชฉ์œผ๋กœ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Pandoc ๋ณ€ํ™˜๊ธฐ ์„ค์น˜

Pandoc โ€” ํŒจํ‚ค์ง€ LinuxPandoc์€ ์—ฌ๋Ÿฌ ํ…์ŠคํŠธ ํ˜•์‹์„ ๋‹ค๋ฅธ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ํฅ๋ฏธ๋กœ์šด ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋‹ˆ ์˜จ๋ผ์ธ์—์„œ ์‚ดํŽด๋ณด์„ธ์š”. ์šฐ๋ฆฌ๋Š” Markdown ํŒŒ์ผ์„ PDF๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ๋งŒ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Pandoc์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ์„ค์น˜ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์น˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

user@hostname:~$ dpkg -s pandoc

์ถœ๋ ฅ์— ์„ค์น˜๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ํ‘œ์‹œ๋˜๋ฉด ๋‹ค์Œ์„ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.

user@hostname:~$ sudo apt install pandoc -y

TexLive์šฉ PSCyr ํŒจํ‚ค์ง€ ์„ค์น˜

๋จผ์ € PSCyr๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ์ด ํŽ˜์ด์ง€์—์„œ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งํฌ, ๊ธฐ์‚ฌ๋ฅผ ์ฝ์„ ๋•Œ ์–ด๋–ค ์ด์œ ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ ˆ๋งํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. Google์— "PsCyr texlive ์„ค์น˜"์™€ ๊ฐ™์€ ๊ฒƒ์„ ์ž…๋ ฅํ•˜์—ฌ ์„ค์น˜ ์ง€์นจ๊ณผ ํ•จ๊ป˜ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค. ์•„์นด์ด๋ธŒ๋ฅผ ํ™ˆ ํด๋”์— ํ’€์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฏ€๋กœ ์•„์นด์ด๋ธŒ์— ํฌํ•จ๋œ ํด๋”์˜ ๊ฒฝ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ~/PSCyr. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ„ฐ๋ฏธ๋„๋กœ ์ด๋™ํ•˜์—ฌ ๋‹ค์Œ ๋ช…๋ น์„ ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

user@hostname:~$ cd
user@hostname:~$ mkdir ./PSCyr/fonts/map ./PSCyr/fonts/enc
user@hostname:~$ cp ./PSCyr/dvips/pscyr/*.map ./PSCyr/fonts/map/
user@hostname:~$ cp ./PSCyr/dvips/pscyr/*.enc ./PSCyr/fonts/enc/
user@hostname:~$ echo "fadr6t AdvertisementPSCyr "T2AEncoding ReEncodeFont"" > ./PSCyr/fonts/map/pscyr.map

๋‹ค์Œ์œผ๋กœ ๋กœ์ปฌ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์žˆ๋Š” ์œ„์น˜๋ฅผ ์ฐพ์œผ์‹ญ์‹œ์˜ค. texmf. ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

user@hostname:~$ kpsewhich -expand-var='$TEXMFLOCAL'

์ด ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. /usr/local/share/texmf/, ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

user@hostname:~$ sudo cp -R ./PSCyr/* /usr/local/share/texmf/

๊ธ€์Ž„, ์•„๋‹ˆ๋ฉด ํด๋”์— ๋ณต์‚ฌํ•˜๋Š” ๋ช…๋ น์„ ๊ท€์ฐฎ๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. texmf ๊ทธ๋…€๊ฐ€ ์–ด๋””์— ์žˆ๋“ :

user@hostname:~$ sudo cp -R ./PSCyr/* $(kpsewhich -expand-var='$TEXMFLOCAL')

PSCyr ๊ธ€๊ผด ์„ค์น˜, TexLive์— ์—ฐ๊ฒฐ:

user@hostname:~$ sudo texhash
user@hostname:~$ updmap --enable Map=pscyr.map
user@hostname:~$ sudo mktexlsr

md2pdf ๋ณ€ํ™˜์„ ์œ„ํ•œ LaTeX ํ…œํ”Œ๋ฆฟ

์ด ํ…œํ”Œ๋ฆฟ์ด ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ์ •ํ™•ํžˆ ์„ค๋ช…ํ•˜์ง€ ์•Š๊ณ  ๋งŽ์€ ์„ค๋ช… ์—†์ด ์Šคํฌ์ผ๋Ÿฌ ์•„๋ž˜์— ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ๋งŽ์€ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ํ…์ŠคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ• ์ธก๋ฉด์—์„œ ์ž˜ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค๊ณ  ๋งํ•˜๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ๋“ค์—ฌ ์“ฐ๊ธฐ ํฌ๊ธฐ, ์ค„ ๊ฐ„๊ฒฉ, ์„น์…˜ ๋ฐ ํ•˜์œ„ ์„น์…˜์˜ ๋ฒˆํ˜ธ ๋งค๊ธฐ๊ธฐ ๋ถ€์กฑ์— ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ธํ„ฐ๋„ท์—์„œ "๋ผํ…์Šค์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ• ..."์ด๋ผ๋Š” ์งˆ๋ฌธ์„ Google์— ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹น์‹ ์˜ ํ•„์š”. ๋ช…ํ™•ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์˜๊ฒฌ์„ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค. 4 ๋…„ ์ „ ๋‚ด ์„ค์ •์„ ์กฐ์‚ฌํ•˜๊ณ  ํ…œํ”Œ๋ฆฟ์˜ ์–ด๋–ค ์ค„์ด ๋ฌด์—‡์„ ๋‹ด๋‹นํ•˜๋Š”์ง€ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ ๋™์•ˆ ๋‚˜๋Š” ๋‚ด PC์—์„œ ์–ด๋–ป๊ฒŒ ํ–ˆ๋Š”์ง€ ์ ์–ด๋‘˜ ๊ฒƒ์ด๊ณ , ๋‹น์‹ ์€ ์ž์œ ๋กญ๊ฒŒ ๋ฐ˜๋ณตํ•˜๊ฑฐ๋‚˜ ์Šค์Šค๋กœ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ ํ…œํ”Œ๋ฆฟ.tex ์นดํƒˆ๋กœ๊ทธ์— /usr/๊ณต์œ /texlive/:

user@hostname:~$ sudo touch /usr/share/texlive/template.tex

์ฝ๊ธฐ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜์‹ญ์‹œ์˜ค.

user@hostname:~$ sudo chmod 444 /usr/share/texlive/template.tex

๋ฃจํŠธ ์•„๋ž˜์—์„œ ์—ด๊ณ  ์•„๋ž˜ ์Šคํฌ์ผ๋Ÿฌ ์•„๋ž˜์— ์ˆจ๊ฒจ์ง„ ๋‚ด์šฉ์„ ๋ถ™์—ฌ ๋„ฃ์œผ์‹ญ์‹œ์˜ค.

user@hostname:~$ sudo nano /usr/share/texlive/template.tex

ํ…œํ”Œ๋ฆฟ ๋‚ด์šฉ /usr/share/texlive/template.tex

documentclass[oneside,final,14pt]{extreport}
usepackage{extsizes}
usepackage{pscyr}
renewcommand{rmdefault}{ftm}
usepackage[T2A]{fontenc}
usepackage[utf8]{inputenc}
usepackage{amsmath}
usepackage{mathtext}
usepackage{multirow}
usepackage{listings}
usepackage{ucs}
usepackage{hhline}
usepackage{tabularx}
usepackage{booktabs}
usepackage{longtable}
usepackage{titlesec}
usepackage{hyperref}
usepackage{graphicx}
usepackage{setspace}
usepackage[center,it,labelsep=period]{caption}
usepackage[english,russian,ukrainian]{babel}
usepackage{vmargin}
newcommand{specialcell}[2][c]{%
    begin{tabular}[#1]{@{}c@{}}#2end{tabular}}
setpapersize{A4}
setmarginsrb {1cm}{1cm}{1cm}{1cm}{0pt}{0mm}{0pt}{13mm}
usepackage{indentfirst}
setlengthparindent{1cm}
renewcommand{baselinestretch}{1}
renewcommandthechapter{}
renewcommandthesection{}
renewcommandthesubsection{}
renewcommandthesubsubsection{}
titleformat
{chapter} % command
{bfseriesnormalsizecentering} % format
{thechapter} % label
{0.5ex} % sep
{
    centering
}
[
vspace{-1.5ex}
] % after-code
titleformat
{section}
[block]
{normalfontbfseries}
{thesection}{0.5em}{}
sloppy
letoldenumerateenumerate
renewcommand{enumerate}{
  oldenumerate
  setlength{itemsep}{1pt}
  setlength{parskip}{0pt}
  setlength{parsep}{0pt}
}
letolditemizeitemize
renewcommand{itemize}{
  olditemize
  setlength{itemsep}{1pt}
  setlength{parskip}{0pt}
  setlength{parsep}{0pt}
}
providecommand{tightlist}{%
  setlength{itemsep}{0pt}setlength{parskip}{0pt}}

titlespacing{subsubsection}{parindent}{3mm}{3mm}
titlespacing{subsection}{parindent}{3mm}{3mm}
usepackage{color}

lstset{
    basicstyle=footnotesizettfamily,
    inputencoding=utf8,
    extendedchars=true,
    showspaces=false,
    keepspaces=true
    showstringspaces=false,
    showtabs=false,
    tabsize=4,
    captionpos=b,
    breaklines=true,
    breakatwhitespace=true,
    breakautoindent=true,
    linewidth=textwidth
}

begin{document}
$if(title)$
maketitle
$endif$
$if(abstract)$
begin{abstract}
$abstract$
end{abstract}
$endif$

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

$endfor$
$if(toc)$
{
$if(colorlinks)$
hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$black$endif$}
$endif$
setcounter{tocdepth}{$toc-depth$}
tableofcontents
}
$endif$
$if(lot)$
listoftables
$endif$
$if(lof)$
listoffigures
$endif$
$body$

$if(natbib)$
$if(bibliography)$
$if(biblio-title)$
$if(book-class)$
renewcommandbibname{$biblio-title$}
$else$
renewcommandrefname{$biblio-title$}
$endif$
$endif$
bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$}

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

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

$endfor$
end{document}

ํŒŒ์ผ์„ ์ €์žฅํ•˜์„ธ์š” /usr/share/texlive/template.tex Makrdown ํŒŒ์ผ์„ PDF๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ๋™์ผํ•œ ํด๋”์— ์ ‘๋‘์‚ฌ๊ฐ€ .pdf์ธ Markdown ํŒŒ์ผ์ด๋ผ๋Š” ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ณ€ํ™˜ ํ›„ ํŒŒ์ผ๋ช….md ํด๋”์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ๋ช….md.pdf. ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ˜ธ์ถœํ•˜์ž md2pdf ๊ทธ๋ฆฌ๊ณ  ๊ธธ์„ ๊ฐ€๋‹ค / usr / bin. ๋ช…๋ น์„ ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

user@hostname:~$ cd
user@hostname:~$ touch md2pdf
user@hostname:~$ echo "#!/bin/bash" > md2pdf
user@hostname:~$ echo "pandoc --output=$1.pdf --from=markdown_github --latex-engine=pdflatex --listings --template=/usr/share/texlive/template.tex $1" >> md2pdf
user@hostname:~$ sudo cp md2pdf /usr/bin/
user@hostname:~$ sudo chmod 111 /usr/bin/md2pdf

๋„ค ๋ฒˆ์งธ ์ค„์—๋Š” ์‹ค์ œ๋กœ ๋ณ€ํ™˜ ๋ช…๋ น์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ด๋‹ค --from=markdown_github. ๋งˆํฌ๋‹ค์šด์˜ ๊นƒํ—ˆ๋ธŒ ๋ฒ„์ „์€ ๊ธฐ์กด ๋งˆํฌ๋‹ค์šด๊ณผ ์—ญํ˜ธํ™˜์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ๊ธฐ์— ๊ธ€์„ ์“ด๋‹ค๋ฉด ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. MD ํŒŒ์ผ์ด ํŠน์ • Markdown ๋ฐฉ์–ธ์œผ๋กœ ์ž‘์„ฑ๋œ ๊ฒฝ์šฐ Pandoc ์„ค๋ช…์„œ(man pandoc), ๊ตฌํ˜„์ด ์ง€์›๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์กฐ์ •ํ•˜์‹ญ์‹œ์˜ค. /usr/bin/md2pdf ํ•„์š”ํ•˜๋‹ค๋ฉด.

๋‹ค์†Œ๊ฐ„ ์ž๋™ ์„ค์น˜๋ฅผ ์œ„ํ•œ ์Šคํฌ๋ฆฝํŠธ

๋งŒ์•ฝ ์•„๋ฌด๊ฒƒ๋„ ์„ค์ •ํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด, Ubuntu๋ฐฐํฌ ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ, ์Šคํฌ์ผ๋Ÿฌ ์•„๋ž˜์— ๋‚ด์šฉ์„ ์ˆจ๊ธด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๊ฒƒ์ด ์ž๋™์œผ๋กœ ์„ค์น˜๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹จ, ์œ„ ์Šคํฌ์ผ๋Ÿฌ ์•„๋ž˜์— ์žˆ๋Š” TeX ํ…œํ”Œ๋ฆฟ์„ ํ•„์š”ํ•œ ๊ณณ์— ๋ณต์‚ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์„ธ์š”.

user@hostname:~$ cd
user@hostname:~$ touch installmd2pdf.sh

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ ๋‚ด์šฉ์œผ๋กœ ์ฑ„์›๋‹ˆ๋‹ค.

$HOME/installmd2pdf.sh ์Šคํฌ๋ฆฝํŠธ์˜ ๋‚ด์šฉ

#!/bin/bash
cd /tmp
sudo apt install texlive-full pandoc -y
wget http://blog.harrix.org/wp-content/uploads/2013/02/PSCyr.zip
unzip -qq PSCyr.zip
cd
mkdir ./PSCyr/fonts/map ./PSCyr/fonts/enc
cp ./PSCyr/dvips/pscyr/*.map ./PSCyr/fonts/map/
cp ./PSCyr/dvips/pscyr/*.enc ./PSCyr/fonts/enc/
echo "fadr6t AdvertisementPSCyr "T2AEncoding ReEncodeFont"" > ./PSCyr/fonts/map/pscyr.map
sudo cp -R ./PSCyr/* $(kpsewhich -expand-var='$TEXMFLOCAL')
sudo texhash
updmap --enable Map=pscyr.map
sudo mktexlsr
sudo touch /usr/share/texlive/template.tex
touch md2pdf
echo "#!/bin/bash" > md2pdf
echo "pandoc --output=$1.pdf --from=markdown_github --latex-engine=pdflatex --listings --template=/usr/share/texlive/template.tex $1" >> md2pdf
sudo cp md2pdf /usr/bin/
sudo chmod 111 /usr/bin/md2pdf

๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

user@hostname:~$ sudo bash $HOME/installmd2pdf.sh

์žŠ์ง€ ๋งˆ๋ผ /usr/share/texlive/template.tex " ์„น์…˜์— ํ‘œ์‹œ๋œ ๋Œ€๋กœ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.md2pdf ๋ณ€ํ™˜์„ ์œ„ํ•œ LaTeX ํ…œํ”Œ๋ฆฟ" ์ฝ˜ํ…์ธ .

md2pdf ์‚ฌ์šฉ

Markdown ํŒŒ์ผ(some_file.md) ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

user@hostname:~$ md2pdf some_file.md

๊ฒฐ๊ณผ์ ์œผ๋กœ ํด๋”์— ํŒŒ์ผ์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. some_file.md.pdf.

๊ฒฐ๋ก 

์„ค๋ช…๋œ ๋ฐฉ๋ฒ•์„ ๊ธฐ๋ฐ˜์œผ๋กœ PDF ํŒŒ์ผ์˜ ๋ชจ๋“  ์Šคํƒ€์ผ์„ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Pandoc์—์„œ ์ง€์›ํ•˜๋Š” md ๋Œ€์‹  ๋‹ค๋ฅธ ํ˜•์‹์„ ๋ณ€ํ™˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ธ์  ๊ฐ€ ์ด ์ง€์นจ์ด 3๋ช… ๋ฐ˜์—๊ฒŒ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๊ฐํžˆ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

DDoS ๋ณดํ˜ธ, VPS VDS ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ์•ˆ์ •์ ์ธ ํ˜ธ์ŠคํŒ… ๊ตฌ์ž… ๐Ÿ”ฅ DDoS ๊ณต๊ฒฉ ๋ฐฉ์ง€ ๊ธฐ๋Šฅ์ด ํƒ‘์žฌ๋œ ์•ˆ์ •์ ์ธ ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…, VPS ๋ฐ VDS ์„œ๋ฒ„๋ฅผ ๊ตฌ๋งคํ•˜์„ธ์š” | ProHoster