لينڪس لاءِ سورس ڪوڊ سان گڏ تيار ٿيل markdown2pdf حل

اڳوڻي

مارڪ ڊائون هڪ مختصر مضمون لکڻ جو هڪ بهترين طريقو آهي، ۽ ڪڏهن ڪڏهن ڪافي متن، سادو اٽالڪ ۽ بولڊ فارميٽنگ سان. مارڪ ڊائون پڻ سٺو آهي آرٽيڪل لکڻ لاءِ سورس ڪوڊ شامل آهن. پر ڪڏهن ڪڏهن توهان چاهيو ٿا ته بغير ڪنهن نقصان جي، هڪ دان سان گڏ ڊانس ڪريو ان کي هڪ باقاعده، چڱي طرح ٺهيل PDF فائل ۾، ۽ انهي ڪري ته تبديلي جي دوران ڪو به مسئلو نه آهي، مثال طور، مون وٽ هو - توهان روسي ۾ لکي نٿا سگهو. ماخذ ڪوڊ جا رايا، تمام ڊگھي لائينون منتقل نه ڪيون ويون آھن، پر ڪٽي ۽ ٻيا ننڍا مسئلا. هدايتون توهان کي جلدي ڪنورٽر کي ترتيب ڏيڻ جي اجازت ڏيندو md2pdf بغير حقيقت کي سمجھڻ کان سواء اهو ڪيئن ڪم ڪري ٿو. وڌيڪ يا گهٽ خودڪار تنصيب لاءِ اسڪرپٽ هيٺ ڏنل آهي مناسب حصي ۾.

تبديلي لاءِ منهنجو نمونو TeX ٽيمپليٽ PSCyr فونٽ پيڪيج استعمال ڪري ٿو، جنهن ۾ Microsoft فونٽس لاءِ سپورٽ شامل آهي، يعني ٽائم نيو رومن. GOST جي مطابق ڊپلوما لاء اهڙيون گهرجون هيون. جيڪڏھن توھان ڄاڻو ٿا ته ڪيئن، توھان پنھنجي ضرورتن مطابق ٽيمپليٽ کي تبديل ڪري سگھو ٿا. منهنجي پنهنجي هدايتن ۾، توهان کي پهريون ڀيرو بيوقوف ڪرڻو پوندو PSCyr سيٽنگ سان TexLive ۾. سيٽ اپ ڪيو ويو آهي لينڪس مائيٽ ميٽ ورهائڻ ۾، ٻين تقسيم لاء توهان کي گوگل ڪرڻو پوندو معياري TexLive پيڪيج فولڊر توهان جي سسٽم لاء.

TexLive انسٽال ڪرڻ

يقينا، توهان صرف هن پيڪيج جا ضروري حصا انسٽال ڪري سگهو ٿا. پر ذاتي طور تي، مان گهٽ ۾ گهٽ ضروري ڪم ڪندڙ تنصيب کي ڳولڻ لاء بلڪل سست هو. پڪ ڪرڻ لاءِ ته هر شي ڪم ڪري ٿي، پوري TexLive پيڪيج انسٽال ڪريو. ان کي سڏيو ويندو آهي ٽيڪسي سان ڀريل ۽ 2 گيگا بائيٽ کان ٿورو وڌيڪ وزن، هن حقيقت کي ذهن ۾ رکو. اسان حڪم جاري ڪريون ٿا:

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

ڪافي ڊگھي تنصيب کان پوء، توھان اڳتي وڌائي سگھوٿا ايندڙ شيون.

Pandoc ڪنورٽر کي انسٽال ڪرڻ

Pandoc هڪ لينڪس پيڪيج آهي جيڪو توهان کي ڪجهه ٽيڪسٽ فارميٽ کي ٻين ڏانهن تبديل ڪرڻ جي اجازت ڏئي ٿو. ان ۾ ڪيتريون ئي دلچسپ خاصيتون آھن جيڪي توھان پاڻ کي انٽرنيٽ تي ڳولي سگھو ٿا. اسان صرف هڪ مارڪ ڊائون فائل کي PDF ۾ تبديل ڪرڻ جي امڪان ۾ دلچسپي رکون ٿا. چيڪ ڪريو ته Pandoc انسٽال ٿيل آهي ۽ جيڪڏهن نه، ان کي انسٽال ڪريو. مثال طور هن طرح:

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 ۽ هڪ اسڪرپٽ لکو جيڪو Makrdown فائل کي PDF ۾ تبديل ڪري ڇڏيندو، ساڳئي فولڊر ۾ هڪ فائل ٺاهيندي جنهن کي Markdown فائل سڏيو ويندو آهي پريفڪس .pdf سان، يعني ڪنورشن کان پوءِ. filename.md فولڊر ۾ ظاهر ٿيندو. filename.md.pdf. اچو ته اسڪرپٽ کي سڏين md2pdf ۽ رستي ۾ رکو / آئري / بن. اچو ته حڪمن کي ترتيب ڏيو:

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. Markdown جو GitHub ورجن اصل Markdown سان پسمانده مطابقت رکي ٿو، تنهنڪري جيڪڏهن توهان جو متن ان ۾ لکيل آهي، توهان کي پريشان ٿيڻ جي ضرورت ناهي. جيڪڏهن توهان جي ايم ڊي فائل هڪ مخصوص مارڪ ڊائون ڊائلڪٽ ۾ لکيل آهي، ته پوءِ پڙهو Pandoc Manual (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 استعمال ڪندي

صرف مارڪ ڊائون فائل سان فولڊر کوليو (some_file.md) ٽرمينل ۾ ۽ حڪم هلائڻ:

user@hostname:~$ md2pdf some_file.md

نتيجي طور، فولڊر ۾ هڪ فائيل ظاهر ٿيندو some_file.md.pdf.

ٿڪل

بيان ڪيل طريقي جي بنياد تي، توهان پي ڊي ايف فائلن جي ڪنهن به انداز کي ٺاهي سگهو ٿا، توهان پڻ تبديل ڪري سگهو ٿا ٻين فارميٽ ۾ ايم ڊي جي بدران، Pandoc طرفان سپورٽ ڪيل ڪنهن به. مون کي اميد آهي ته هڪ ڏينهن هي هدايتون 3 ۽ اڌ ماڻهن لاء مفيد ثابت ٿيندي.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو