Xalka markdown2pdf oo diyaarsan oo leh koodhka isha ee Linux

Horudhac

Markdown waa hab fiican oo lagu qoro maqaal gaaban, iyo mararka qaarkood qoraal aad u badan, oo leh farta fudud iyo qaabaynta geesinimada leh. Markdown sidoo kale waxay ku fiican tahay qorista maqaallada oo ay ku jiraan koodka isha. Laakiin mararka qaarkood aad rabto in aad lumiso, qoob la daf ah si ay u dhaafaan galay caadiga ah, file PDF si fiican u qaabaysan, iyo si aanay wax dhibaato ah inta lagu guda jiro beddelka, taas oo, tusaale ahaan, waxaan lahaa - ma qori kartaa in Ruush faallooyinka koodhka isha, khadadka aadka u dheer lama wareejiyo, laakiin la gooyo iyo dhibaatooyin kale oo yaryar. Tilmaamku wuxuu kuu oggolaanayaa inaad si degdeg ah u dejiso beddelaha md2pdf iyada oo aan si dhab ah loo fahmin sida ay u shaqeyso. Qoraalka loogu talagalay rakibaad toos ah ama ka yar ayaa hoos ku yaal qaybta ku habboon.

Tusaalaha Tusaalaha TeX ee qaab beddelka waxa uu isticmaalaa xirmada farta ee PSCyr, oo ay ku jirto taageerada farta Microsoft, kuwaas oo ah Times New Roman. Waxaa jiray shuruudahan oo kale oo loogu talagalay shahaado sida waafaqsan GOST. Haddii aad taqaan sida, waxaad wax ka beddeli kartaa qaab-dhismeedka si uu ugu habboonaado baahiyahaaga. Tilmaamaha aniga ii gaar ah, waa inaad marka hore ku khiyaanaysaa goobta PSCyr ee TexLive. Habaynta waxaa lagu sameeyaa qaybinta Linux Mint Mate, qaybinta kale waxaa laga yaabaa inaad google gasho galka xirmada caadiga ah ee TexLive ee nidaamkaaga.

Ku rakibida TexLive

Dabcan, waxaad ku rakibi kartaa oo kaliya qaybaha lagama maarmaanka ah ee xirmadan. Laakin shaqsi ahaan, run ahaantii aad ayaan uga caajisay inaan raadiyo rakibaadda ugu yar ee lagama maarmaanka u ah shaqada. Si aad u hubiso in wax walba ay shaqeeyaan, ku rakib xirmada TexLive oo dhan. Waxaa la yiraahdaa textlive-buuxa oo miisaankiisu in yar ka badan yahay 2 gigabytes, xaqiiqadan maskaxda ku hay. Waxaan fulinaa amarka:

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

Rakibaadda dheer ka dib, waxaad u sii gudbi kartaa shayga xiga.

Ku rakibida Converter Pandoc

Pandoc waa xirmo Linux ah oo kuu ogolaanaya inaad u beddesho qaababka qoraalka qaar kuwa kale. Waxay leedahay astaamo badan oo xiiso leh oo aad naftaada ka heli karto internetka. Waxaan daneyneynaa kaliya suurtagalnimada in faylka calaamadeynta loo beddelo PDF. Hubi haddii Pandoc la rakibay iyo haddii kale, ku rakib. Tusaale ahaan sidan:

user@hostname:~$ dpkg -s pandoc

Haddii wax soo saarka uu sheego in aan la rakibin, rakib:

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

Ku rakibida xirmada PSCyr ee TexLive

Marka hore waxaad u baahan tahay inaad soo dejiso PSCyr. Hadda ilaa hadda waa laga heli karaa kan link, Haddii wakhtiga akhrinta maqaalka aan la heli karin sabab qaar ka mid ah, ha quusan, way fududahay in la helo iyada oo la socota tilmaamaha rakibaadda adoo ku qoraya wax sida "Installing PsCyr textlive" ee Google. Haddii la heli karo, markaa way kuu fududahay, soo dejiso waxaanan u qaadanaynaa inaad ka furtay kaydka galka gurigaaga oo markaa dariiqa galka ku jira kaydku u ekaado. ~/PSCyr. Kadib tag Terminal-ka oo ku dhaqan amarrada soo socda si isku xigta:

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

Marka xigta, ogow meesha uu ku yaal tusaha deegaanka texf. Waxaan fulinaa amarka:

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

Waxay u badan tahay inaad haysato hagahan - /usr/maxalli/wadaag/texmf/, ka dibna waxaan sameynaa:

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

Hagaag, ama ma dhibi kartid oo ma maamuli kartid amar koobi doona faylka texf meel kasta oo ay joogto:

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

Farta PSCyr waa la rakibay, ku xidh TexLive:

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

Qaabka LaTeX ee beddelka md2pdf

Ma sifayn doono sida saxda ah ee template this loo habeeyey, oo si fudud ku siin doonaa hoos kharribayaasha iyada oo aan sharraxaad badan. Waxaa ku filan in la sheego in si fiican loo habeeyey, ugu yaraan marka la eego sida ay u maareyso qoraallada leh koodka isha badan. Haddii aadan ku qanacsanayn cabbirka jeexjeexyada, kala dheereynta laynka, la'aanta nambarada qaybaha iyo qaybaha hoose, markaa fikradeyda way fududahay in la geliyo su'aasha internetka "sida loo sameeyo Latex ..." iyo markaas baahidaada. Haddii aysan gabi ahaanba caddayn, ku qor faallooyinka, waxaan isku dayi doonaa in aan dhex galo goobahayga 4 sano ka hor oo aan sharaxo xariiqda template ayaa ka masuul ah waxa. Dhanka kale, waxaan ku qori doonaa sida aan ugu sameeyay PC-ga, adiguna xor ayaad u tahay inaad adigu naftaada wax ka beddesho.

Samee fayl template.tex buugga ku yaal /usr/la wadaag/texlive/:

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

Sii ogolaanshaha akhriska:

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

ku fur xididka hoostiisa oo ku dheji waxa ku hoos qarsoon qaswadaha hoostiisa ku dheji:

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

Nashqada qaabaysan /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}

Kaydinta faylka /usr/share/texlive/template.tex oo qor qoraal u rogi doona feylka Makrdown PDF, adigoo isla galkaas ku abuuraya faylal la yiraahdo Markdown file oo wata horgale .pdf, yacni, beddelka ka dib. filename.md ka soo bixi doona galka filename.md.pdf. Aan soo wacno qoraalka md2pdf oo jidka soo dhig / usr / bin. Aan u fulino amarrada si isku xigta:

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

Sadarka 4aad waxa ku jira amarka beddelka. fiiro gaar ah u yeelo --laga bilaabo=markdown_github. Nooca GitHub ee Markdown gadaal buu la jaan qaadayaa Markdown-kii asalka ahaa, markaa haddii qoraalkaagu ku qoran yahay, uma baahnid inaad ka walwasho. Haddii faylkaaga MD uu ku qoran yahay lahjad gaar ah oo Markdown ah, ka dib akhri buug-gacmeedka Pandoc (man pandoc), Hubi in hirgelintaaga lagu taageerayo, oo wax ka beddel /usr/bin/md2pdf haddii loo baahdo.

Qoraal si toos ah ama in ka yar loo rakibo

Haddii aadan runtii rabin inaad wax uun habayso, oo aad leedahay qaybinta Ubuntu oo kale ah, waxaad isku dayi kartaa inaad abuurto qoraal ay ku jiraan waxyaabaha ku qarsoon qaswadaha, oo ay u badan tahay in wax walba is rakibi doonaan, waxa kaliya ayaa ah, koobi Qaabka TeX ee lagu dhejiyay qaswadayaasha sare halka ay lagama maarmaanka u tahay naftooda. Fur Terminal oo orod:

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

Kadibna ku buuxi nuxurka soo socda:

Waxa ku jira qoraalka $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

Ku socodsii amarka:

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

Ha iloobin taas /usr/share/texlive/template.tex waa in la buuxiyaa sida ku cad qaybta "Qaabka LaTeX ee beddelka md2pdfΒ» nuxurka.

Isticmaalka md2pdf

Kaliya ku fur galka faylka Markdown-ka (qaar_file.md) gudaha Terminalka oo socodsii amarka:

user@hostname:~$ md2pdf some_file.md

Natiijo ahaan, fayl ayaa ka soo muuqan doona galka qaar_file.md.pdf.

gunaanad

Iyada oo ku saleysan habka lagu sharraxay, waxaad dhisi kartaa qaab kasta oo faylasha PDF ah, waxaad sidoo kale u rogi kartaa qaabab kale beddelkii md, mid kasta oo ay taageerto Pandoc. Waxaan ku dhiirranahay inaan rajaynayo in maalin maalmaha ka mid ah tilmaamahani uu waxtar u yeelan doono 3 qof iyo badh.

Source: www.habr.com

Add a comment