Linux အတွက် အရင်းအမြစ်ကုဒ်ပါသော အဆင်သင့်လုပ်ထားသော markdown2pdf ဖြေရှင်းချက်

စကားချီး

Markdown သည် ရိုးရှင်းသော စာလုံးစောင်းနှင့် ရဲရင့်သောဖော်မတ်ဖြင့် ဆောင်းပါးတိုများကို ရေးရန် ကောင်းမွန်သောနည်းလမ်းဖြစ်ပြီး တစ်ခါတစ်ရံတွင် စာသားအများအပြားပါရှိသည်။ Markdown သည် source code ပါ၀င်သော ဆောင်းပါးများရေးသားရာတွင်လည်း ကောင်းမွန်ပါသည်။ သို့သော် တစ်ခါတစ်ရံတွင် သင်သည် ပုံမှန်ပုံစံကောင်း PDF ဖိုင်အဖြစ်သို့ ကျော်တက်သွားစေရန် ပတ်သာနှင့် ကခုန်ကာ မပျက်မကွက် ကခုန်ချင်သည်၊ သို့မှသာ ဘာသာပြောင်းစဉ်တွင် ပြဿနာမရှိစေရန်၊ ဥပမာ၊ ကျွန်ုပ်တွင် ရုရှားဘာသာဖြင့် ရေးသား၍မရပါ။ အရင်းအမြစ်ကုဒ်၏ မှတ်ချက်များ၊ ရှည်လျားလွန်းသော လိုင်းများကို မလွှဲပြောင်းသော်လည်း ဖြတ်တောက်ခြင်းနှင့် အခြားအသေးအဖွဲပြဿနာများ။ ညွှန်ကြားချက်သည် သင့်အား converter ကို လျင်မြန်စွာ သတ်မှတ်နိုင်စေမည်ဖြစ်သည်။ md2pdf ဘယ်လိုအလုပ်လုပ်တယ်ဆိုတာကို တကယ်နားမလည်ဘဲ။ အလိုအလျောက် တပ်ဆင်မှုအတွက် script ကို သင့်လျော်သောကဏ္ဍတွင် အောက်တွင် ဖော်ပြထားသည်။

ပြောင်းလဲခြင်းအတွက် ကျွန်ုပ်၏နမူနာ TeX နမူနာပုံစံသည် Microsoft ဖောင့်များအတွက် ပံ့ပိုးမှုပါဝင်သည့် PSCyr ဖောင့်ပက်ကေ့ကို အသုံးပြုပါသည်။ Times New Roman. GOST အရ ဒီပလိုမာအတွက် လိုအပ်ချက်တွေ ရှိတယ်။ သင်မည်သို့သိပါက၊ သင်သည်သင်၏လိုအပ်ချက်များနှင့်ကိုက်ညီသောပုံစံကိုမွမ်းမံနိုင်သည်။ ကျွန်ုပ်၏ကိုယ်ပိုင်ညွှန်ကြားချက်တွင်၊ သင်သည် TexLive ရှိ PSCyr ဆက်တင်ဖြင့် ဦးစွာလှည့်စားရပေမည်။ စနစ်ထည့်သွင်းခြင်းအား Linux Mint Mate ဖြန့်ဖြူးမှုတွင် လုပ်ဆောင်ပြီးဖြစ်ပြီး၊ အခြားဖြန့်ဝေမှုများအတွက် သင့်စနစ်အတွက် စံ TexLive ပက်ကေ့ဂျ်ဖိုင်တွဲများကို google မှ လုပ်ဆောင်ရပါမည်။

TexLive ကို ထည့်သွင်းခြင်း။

ဟုတ်ပါတယ်၊ သင်သည် ဤပက်ကေ့ခ်ျ၏ လိုအပ်သော အစိတ်အပိုင်းများကိုသာ ထည့်သွင်းနိုင်သည်။ ဒါပေမယ့် ကိုယ်ရေးကိုယ်တာအရတော့ အနည်းဆုံး လိုအပ်တဲ့ အလုပ်လုပ်တဲ့ တပ်ဆင်မှုကို ရှာဖို့ အရမ်းပျင်းတယ်။ အရာအားလုံးအလုပ်လုပ်ကြောင်းသေချာစေရန် TexLive ပက်ကေ့ဂျ်တစ်ခုလုံးကို ထည့်သွင်းပါ။ အဲ့ဒါကိုခေါ်တယ် စာသားအပြည့်အစုံ အလေးချိန် 2 ဂစ်ဂါဘိုက်ထက် အနည်းငယ်ပို၍ ဤအချက်ကို သတိပြုပါ။ ကျွန်ုပ်တို့သည် အမိန့်ကို လုပ်ဆောင်သည်-

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

လုံလောက်သော ကြာမြင့်စွာ ထည့်သွင်းပြီးနောက်၊ သင်သည် နောက်တစ်ခုသို့ ဆက်သွားနိုင်သည်။

Pandoc Converter ကို ထည့်သွင်းခြင်း။

Pandoc သည် အချို့သော စာသားဖော်မတ်များကို အခြားသို့ ပြောင်းနိုင်စေမည့် Linux အထုပ်တစ်ခုဖြစ်သည်။ ၎င်းတွင် သင်အင်တာနက်ပေါ်တွင် သင့်ကိုယ်သင် ရှာဖွေနိုင်သည့် စိတ်ဝင်စားစရာ အင်္ဂါရပ်များစွာ ပါရှိသည်။ Markdown ဖိုင်ကို PDF အဖြစ်ပြောင်းရန် ဖြစ်နိုင်ခြေကိုသာ ကျွန်ုပ်တို့ စိတ်ဝင်စားပါသည်။ Pandoc ကို ထည့်သွင်းထားခြင်း ရှိ၊ မရှိ စစ်ဆေးပြီး မဟုတ်ပါက ၎င်းကို ထည့်သွင်းပါ။ ဥပမာ ဤကဲ့သို့သော

user@hostname:~$ dpkg -s pandoc

အထွက်တွင် မတပ်ဆင်ရသေးဟု ဆိုပါက၊ ထည့်သွင်းပါ။

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

TexLive အတွက် PSCyr ပက်ကေ့ဂျ်ကို ထည့်သွင်းခြင်း။

ပထမဦးစွာသင် PSCyr ကိုဒေါင်းလုဒ်လုပ်ရန်လိုအပ်သည်။ လောလောဆယ်တော့ ဒီမှာပဲ ရနိုင်ပါသေးတယ်။ link ကိုဆောင်းပါးကိုဖတ်နေစဉ်တွင် အကြောင်းတစ်ခုခုကြောင့် မရရှိနိုင်ပါက စိတ်ပျက်မနေပါနှင့်၊ Google တွင် “Installing PsCyr texlive” ကဲ့သို့ တစ်ခုခုကို ရိုက်ထည့်ခြင်းဖြင့် ၎င်းကို ထည့်သွင်းရန် ညွှန်ကြားချက်များနှင့်အတူ ၎င်းကို ရှာဖွေရန် လွယ်ကူပါသည်။ ရနိုင်လျှင် သင့်အတွက် ပိုလွယ်ကူသည်၊ ဒေါင်းလုဒ်လုပ်ပါ၊ သင်သည် မော်ကွန်းတိုက်ကို သင့်ပင်မဖိုင်တွဲသို့ ထုပ်ပိုးပြီးပြီဟု ကျွန်ုပ်တို့ ယူဆမည်ဖြစ်ပြီး၊ ထို့ကြောင့် မော်ကွန်းတိုက်တွင်ပါရှိသော ဖိုင်တွဲဆီသို့ လမ်းကြောင်းသည် ပုံသဏ္ဌာန်တူပါသည်။ ~/PSCyr. ထို့နောက် Terminal သို့သွား၍ အောက်ပါ command များကို အစဉ်လိုက်လုပ်ဆောင်ပါ။

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

ထို့နောက် local directory တည်နေရာကို ရှာဖွေပါ။ texmf. ကျွန်ုပ်တို့သည် အမိန့်ကို လုပ်ဆောင်သည်-

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

ဖြစ်နိုင်ချေများသောအားဖြင့် သင့်တွင် ဤလမ်းညွှန်ရှိသည် - /usr/local/share/texmf/ပြီးမှ၊

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

ကောင်းပြီ၊ သို့မဟုတ် သင်သည် ဖိုင်တွဲတစ်ခုသို့ ကူးယူမည့် command ကို နှောက်ယှက်ပြီး မလုပ်ဆောင်နိုင်ပါ။ 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 နမူနာ

ဤတမ်းပလိတ်ကို မည်သို့ပြင်ဆင်ထားသည်ကို ကျွန်ုပ်အတိအကျဖော်ပြမည်မဟုတ်ပါ၊ များစွာသောရှင်းလင်းချက်မရှိဘဲ spoiler အောက်တွင် ရိုးရိုးရှင်းရှင်းပေးပါမည်။ အနည်းဆုံး အရင်းအမြစ်ကုဒ်များစွာဖြင့် စာသားများကို ကိုင်တွယ်ပုံနှင့်ပတ်သက်၍ ကောင်းစွာဖွဲ့စည်းထားသည်ဟု ဆိုရလောက်အောင်ပင်။ အင်တင်းအရွယ်အစား၊ မျဉ်းအကွာအဝေး၊ အပိုင်းများနှင့် အပိုင်းခွဲများကို နံပါတ်တပ်ခြင်း မရှိခြင်းတို့ကို မကျေနပ်ပါက၊ ကျွန်ုပ်၏အမြင်အရ အင်တာနက်ပေါ်ရှိ “Latex တွင် ၎င်းကို မည်သို့ပြုလုပ်ရမည်နည်း။ ပြီးရင် မင်းရဲ့လိုအပ်ချက်။ ရှင်းရှင်းလင်းလင်းမဟုတ်ပါက၊ မှတ်ချက်များတွင်ရေးပါ၊ ကျွန်ုပ်သည် လွန်ခဲ့သော 4 နှစ်က ကျွန်ုပ်၏ကိုယ်ပိုင်ဆက်တင်များကို စူးစမ်းလေ့လာပြီး မည်သည့်ပုံစံ၏စာကြောင်းသည် မည်သည့်အရာအတွက် တာဝန်ရှိကြောင်း ဖော်ပြပါမည်။ ဤအတောအတွင်း၊ ကျွန်ုပ်သည် ကျွန်ုပ်၏ PC တွင် ၎င်းကို မည်သို့လုပ်ဆောင်ခဲ့သည်ကို ချရေးပြီး ၎င်းကို သင်ကိုယ်တိုင် လွတ်လပ်စွာ ပြန်လုပ်ရန် သို့မဟုတ် ပြင်ဆင်နိုင်သည်။

ဖိုင်တစ်ခုဖန်တီးပါ။ template.tex catalog ထဲမှာ /usr/share/texlive/:

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

၎င်းကိုဖတ်ရန်ခွင့်ပြုချက်များပေးပါ။

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

၎င်းကို root အောက်တွင်ဖွင့်ပြီး အောက်ဖော်ပြပါ spoiler အောက်တွင် ဝှက်ထားသော အကြောင်းအရာများကို ၎င်းထဲသို့ paste လုပ်ပါ။

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 သို့ ပြောင်းပေးမည့် script ကိုရေးပါ၊ ၎င်းသည် ပြောင်းလဲပြီးနောက်တွင် Markdown ဖိုင်ဟုခေါ်သော ဖိုင်ကို တူညီသောဖိုင်တွဲတစ်ခုတွင် ဖန်တီးပြီး၊ ဆိုလိုသည်မှာ ပြောင်းလဲပြီးနောက်၊ ဖိုင်အမည်.md folder ပေါ်လာပါလိမ့်မယ်။ ဖိုင်အမည်.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

4th line တွင် အမှန်တကယ် ပြောင်းလဲခြင်း command ပါရှိသည်။ အာရုံစိုက်ပါ။ --from=markdown_github. Markdown ၏ GitHub ဗားရှင်းသည် မူရင်း Markdown နှင့် နောက်ပြန်သဟဇာတဖြစ်နေသောကြောင့် သင့်စာသားကို ၎င်းတွင်ရေးထားမည်ဆိုပါက သင်စိုးရိမ်စရာမလိုပါ။ သင်၏ MD ဖိုင်ကို သီးခြား Markdown ဒေသိယစကားဖြင့် ရေးထားပါက Pandoc လက်စွဲစာအုပ်ကို ဖတ်ပါ (man pandoc) သင်၏ အကောင်အထည်ဖော်မှုကို ၎င်းက ထောက်ခံကြောင်း သေချာစေပြီး ညှိပါ။ /usr/bin/md2pdf လိုအပ်ခဲ့လျှင်။

အလိုအလျောက် ထည့်သွင်းမှုအတွက် Script

အကယ်၍ သင်သည် မည်သည့်အရာကိုမျှ မသတ်မှတ်လိုပါ၊ သင့်တွင် Ubuntu ကဲ့သို့ ဖြန့်ဝေမှုတစ်ခုရှိလျှင်၊ သင်သည် spoiler အောက်တွင် ဝှက်ထားသော အကြောင်းအရာများနှင့်အတူ script တစ်ခုကို ဖန်တီးနိုင်ပြီး အရာအားလုံးသည် သူ့အလိုလို ထည့်သွင်းလာလိမ့်မည် ဖြစ်နိုင်သည်၊ တစ်ခုတည်းသော အရာမှာ၊ ကော်ပီ၊ အပေါ်က spoiler အောက်မှာ တင်ထားတဲ့ TeX template ကို သင်ကိုယ်တိုင် လိုအပ်တဲ့နေရာမှာ။ Terminal ကိုဖွင့်ပြီး run:

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

ထို့နောက် အောက်ပါအကြောင်းအရာဖြင့် ဖြည့်စွက်ပါ။

$HOME/installmd2pdf.sh script ၏ အကြောင်းအရာများ

#!/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

၎င်းကို command ဖြင့် run ပါ။

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

အဲဒါကိုမမေ့ပါနဲ့ /usr/share/texlive/template.tex ကဏ္ဍတွင် ဖော်ပြထားသည့်အတိုင်း ဖြည့်စွက်ရမည်၊md2pdf ပြောင်းလဲခြင်းအတွက် LaTeX နမူနာ» အကြောင်းအရာ။

md2pdf ကိုအသုံးပြုခြင်း။

Markdown ဖိုင်ဖြင့် ဖိုင်တွဲကိုဖွင့်ပါ (some_file.md) Terminal တွင် command ကို run ပါ။

user@hostname:~$ md2pdf some_file.md

ရလဒ်အနေဖြင့်၊ ဖိုင်တွဲတစ်ခုပေါ်လာလိမ့်မည်။ some_file.md.pdf.

ကောက်ချက်

ဖော်ပြထားသောနည်းလမ်းကိုအခြေခံ၍ သင်သည်မည်သည့် PDF ဖိုင်များ၏ပုံစံကိုမဆိုတည်ဆောက်နိုင်ပြီး၊ Pandoc မှပံ့ပိုးပေးသည့်မည်သည့် md အစား အခြားဖော်မတ်များကိုလည်း သင်ပြောင်းလဲနိုင်သည်။ ဒီညွှန်ကြားချက်ဟာ တစ်နေ့မှာ လူ ၃ နှစ်ခွဲအတွက် အသုံးဝင်မယ်လို့ မျှော်လင့်ပါတယ်။

source: www.habr.com

မှတ်ချက် Add