د لینکس لپاره د سرچینې کوډ سره چمتو شوي markdown2pdf حل

وړاندیز

مارک ډاون د لنډې مقالې لیکلو عالي لاره ده ، او ځینې وختونه خورا ډیر متن ، د ساده ایټالیک او بولډ فارمیټینګ سره. مارک ډاون د سرچینې کوډ سره د مقالو لیکلو لپاره هم ښه دی. مګر ځینې وختونه تاسو غواړئ بې له لاسه ورکړئ ، د تیمبورین سره نڅا وکړئ ترڅو دا په منظم ، ښه جوړ شوي پی ډی ایف فایل کې راوباسي ، او د دې لپاره چې د تبادلې پرمهال کومه ستونزه شتون ونلري ، کوم چې د مثال په توګه ما درلود - تاسو نشئ کولی په روسی ژبه ولیکئ. د سرچینې کوډ نظرونه، ډیرې اوږدې کرښې نه لیږدول کیږي، مګر کټ او نورې کوچنۍ ستونزې. لارښوونه به تاسو ته اجازه درکړي چې ژر تر ژره کنورټر تنظیم کړئ md2pdf پرته له دې چې واقعیا پوه شي چې دا څنګه کار کوي. د لږ یا لږ اتوماتیک نصب کولو سکریپټ لاندې په مناسبه برخه کې دی.

د تبادلې لپاره زما نمونه TeX ټیمپلیټ د PSCyr فونټ کڅوړه کاروي، چې د مایکروسافټ فونټونو لپاره ملاتړ پکې شامل دی، یعنې ټایمز نوي رومن. د GOST له مخې د ډیپلوم لپاره ورته اړتیاوې وې. که تاسو پوهیږئ چې څنګه، تاسو کولی شئ د خپلو اړتیاو سره سم ټیمپلیټ بدل کړئ. زما په خپلو لارښوونو کې، تاسو باید لومړی په TexLive کې د PSCyr ترتیب سره شاوخوا احمق کړئ. تنظیم د لینکس مینټ میټ توزیع کې ترسره شوی ، د نورو توزیعونو لپاره تاسو ممکن د خپل سیسټم لپاره د معیاري TexLive کڅوړې فولډرې ګوګل وکړئ.

د TexLive نصب کول

البته، تاسو کولی شئ د دې کڅوړې یوازې اړین برخې نصب کړئ. مګر په شخصي توګه، زه په ښکاره ډول ډیر سست وم چې د لږترلږه اړین کاري نصب په لټه کې وم. د دې لپاره چې ډاډ ترلاسه کړئ چې هرڅه کار کوي، د TexLive ټول بسته نصب کړئ. دې ته وایې له متن څخه ډک او د 2 ګیګابایټ څخه لږ وزن لري، دا حقیقت په ذهن کې وساتئ. موږ کمانډ اجرا کوو:

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

د کافي اوږد نصبولو وروسته ، تاسو کولی شئ راتلونکي توکي ته لاړشئ.

د پانډوک کنورټر نصب کول

پانډوک د لینکس کڅوړه ده چې تاسو ته اجازه درکوي ځینې متن فارمیټونه نورو ته واړوئ. دا ډیری په زړه پوري ځانګړتیاوې لري چې تاسو یې په انټرنیټ کې موندلی شئ. موږ یوازې د مارک ډاون فایل PDF ته د بدلولو امکان سره علاقه لرو. وګورئ چې پانډوک نصب شوی او که نه، دا نصب کړئ. د مثال په توګه:

user@hostname:~$ dpkg -s pandoc

که محصول وايي چې دا نصب شوی نه دی، نصب کړئ:

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

د TexLive لپاره د PSCyr کڅوړه نصب کول

لومړی تاسو اړتیا لرئ PSCyr ډاونلوډ کړئ. د اوس لپاره دا لاهم پدې کې شتون لري مخونه، که د مقالې لوستلو په وخت کې دا د کوم دلیل لپاره شتون نلري ، مایوسه مه کوئ ، دا په ګوګل کې د "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 ټیمپلیټ

زه به دقیقا تشریح نه کړم چې دا ټیمپلیټ څنګه تنظیم شوی ، او په ساده ډول به یې د ډیر وضاحت پرته د سپیلر لاندې ورکړم. دا د ویلو لپاره کافي ده چې دا ښه تنظیم شوی ، لږترلږه پدې شرایطو کې چې دا د ډیری سرچینې کوډ سره متنونه څنګه اداره کوي. که تاسو د شاخصونو اندازې ، د کرښې فاصلو ، د برخو او فرعي برخو شمیرې نشتوالي څخه راضي نه یاست ، نو زما په نظر دا خورا اسانه دی چې په انټرنیټ کې د ګوګل پوښتنې ته "په لیټیکس کې دا څنګه وکړو ..." او بیا ستاسو اړتیا. که دا په بشپړ ډول روښانه نه وي، په نظرونو کې ولیکئ، زه به هڅه وکړم چې 4 کاله دمخه زما خپل ترتیباتو ته لاړ شم او تشریح کړم چې د ټیمپلیټ کومه کرښه د څه لپاره مسؤل ده. په ورته وخت کې ، زه به دا ولیکم چې څنګه ما دا په خپل کمپیوټر کې ترسره کړ ، او تاسو وړیا یاست چې دا د ځان لپاره تکرار یا ترمیم کړئ.

یو فایل جوړ کړئ template.tex په کتالګو کې /usr/share/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 او یو سکریپټ ولیکئ چې د مکرډون فایل به پی ډی ایف ته واړوي ، په ورته فولډر کې یو فایل رامینځته کوي چې د مارک ډاون فایل په نوم یادیږي د مخکیني .pdf سره ، دا د تبادلې وروسته. filename.md په فولډر کې به ښکاره شي. د فایل نوم.md.pdf. راځئ چې سکریپټ غږ کړو md2pdf او په لاره واچوه / usr / بن. راځئ چې حکمونه په ترتیب سره اجرا کړو:

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. د مارک ډاون د GitHub نسخه د اصلي مارک ډاون سره شاته مطابقت لري ، نو که ستاسو متن پدې کې لیکل شوی وي ، تاسو اندیښنه نلرئ. که ستاسو د MD فایل په ځانګړي مارک ډاون ډیلي کې لیکل شوی وي ، نو د پانډوک لارښود ولولئ (man pandoc)، ډاډ ترلاسه کړئ چې ستاسو پلي کول د دې لخوا ملاتړ کیږي، او ټیک کړئ /usr/bin/md2pdf که اړتیا وي.

د ډیر یا لږ اتوماتیک نصب لپاره سکریپټ

که تاسو واقعیا نه غواړئ هیڅ شی تنظیم کړئ ، او تاسو د اوبنټو په څیر توزیع لرئ ، تاسو کولی شئ د سپیلر لاندې پټ شوي مینځپانګو سره سکریپټ رامینځته کولو هڅه وکړئ ، او ډیری احتمال هرڅه به پخپله نصب شي ، یوازینی شی دا دی ، کاپي د 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 کارول

یوازې د مارک ډاون فایل سره فولډر خلاص کړئ (some_file.md) په ټرمینل کې او کمانډ پرمخ وړئ:

user@hostname:~$ md2pdf some_file.md

د پایلې په توګه، یو فایل به په فولډر کې ښکاره شي some_file.md.pdf.

پایلې

د بیان شوي میتود پراساس ، تاسو کولی شئ د PDF فایلونو هر ډول سټایل رامینځته کړئ ، تاسو کولی شئ د md پرځای نور فارمیټونه هم بدل کړئ ، کوم چې د پانډاک لخوا ملاتړ شوی. زه امید لرم چې یوه ورځ به دا لارښوونه د 3 نیمو خلکو لپاره ګټوره وي.

سرچینه: www.habr.com

Add a comment