Isisombululo esenziweyo se-markdown2pdf esinekhowudi yomthombo weLinux

I ngcaciso

I-Markdown yeyona ndlela ilungileyo yokubhala inqaku elifutshane, kwaye ngamanye amaxesha uninzi lokubhaliweyo, kunye nokufomatha okulula okukekeleyo kunye nesibindi. I-Markdown ikwalungile ekubhaleni amanqaku anekhowudi yomthombo ebandakanyiweyo. Kodwa ngamanye amaxesha ufuna ukulahlekelwa, ukudanisa ngentambula ukuze ufikelele kwifayile yePDF eqhelekileyo, eyenziwe kakuhle, kwaye kungabikho ngxaki ngexesha lokuguqulwa, oko, umzekelo, bendinayo - awukwazi ukubhala ngesiRashiya Izimvo zekhowudi yemvelaphi, imigca emide kakhulu ayigqithiselwanga, kodwa isikiwe kunye nezinye iingxaki ezincinci. Umyalelo uya kukuvumela ukuba ulungise ngokukhawuleza isiguquli md2pdf ngaphandle kokuqonda ngokwenene ukuba isebenza njani. Iscript sofakelo oluzenzekelayo olungaphezulu okanye olungaphantsi lungezantsi kwicandelo elifanelekileyo.

Isampulu yam yetemplate yeTeX yoguqulelo isebenzisa iphakheji yefonti yePSCyr, equka inkxaso yeefonti zikaMicrosoft, ezizezi. Ixesha elitsha roman. Kwakukho iimfuno ezinjalo zediploma ngokweGOST. Ukuba uyayazi indlela, ungayilungisa itemplate ukuze ihambelane neemfuno zakho. Kwimiyalelo yam, kuya kufuneka uqale uqhathe malunga noseto lwe-PSCyr kwi-TexLive. Ucwangciso lwenziwe kunikezelo lweLinux Mint Mate, kwezinye izinikezelo ungafuneka uGoogle ukumgangatho osezantsi weTexLive weefolda zempahla yesixokelelwano sakho.

Ifakela iTexLive

Ngokuqinisekileyo, unokufaka kuphela iindawo eziyimfuneko zale phakheji. Kodwa ngokobuqu, ndandisonqena ukukhangela ubuncinci bofakelo oluyimfuneko. Ukuqinisekisa ukuba yonke into iyasebenza, faka yonke iphakheji yeTexLive. Ibizwa ngokuba i-textlive-egcweleyo kwaye inobunzima obungaphezulu kwe-2 gigabytes, gcina le nyaniso engqondweni. Senza umyalelo:

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

Emva kofakelo olude ngokwaneleyo, ungaqhubeka uye kwinto elandelayo.

Ukufakela iPandoc Converter

I-Pandoc yiphakheji ye-Linux ekuvumela ukuba uguqule ezinye iifomati zokubhaliweyo kwabanye. Inezinto ezininzi ezinomdla onokuzifumana kwi-Intanethi. Sinomdla kuphela ekuguquleni ifayile ye-markdown kwi-PDF. Khangela ukuba iPandoc ifakiwe kwaye ukuba akunjalo, yifake. Umzekelo ngolu hlobo:

user@hostname:~$ dpkg -s pandoc

Ukuba imveliso ithi ayifakwanga, faka:

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

Ukuhlohla iphakheji ye-PSCyr ye-TexLive

Okokuqala kufuneka ukhuphele i-PSCyr. Okwangoku isafumaneka ngoku unxibelelwano, ukuba ngexesha lokufunda inqaku alifumaneki ngenxa yesizathu esithile, musa ukuphelelwa lithemba, kulula ukuyifumana kunye nemiyalelo yokufakela ngokubhala into ethi "Ukufaka i-PsCyr texlive" kwiGoogle. Ukuba iyafumaneka, ngoko kulula kuwe, khuphela kwaye siya kucinga ukuba ukhuphe ugcino kwifolda yakho yasekhaya kwaye ke indlela eya kwifolda equlethwe kwindawo yokugcina ijongeka ngathi. ~/PSCyr. Emva koko yiya kwiSitena kwaye wenze le miyalelo ilandelayo ngokulandelelana:

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

Okulandelayo, fumanisa apho uvimba weefayili wasekhaya ukhoyo textmf. Senza umyalelo:

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

Okunokwenzeka ukuba unalo olu luhlu - /usr/local/share/textmf/, kwaye emva koko senza:

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

Kulungile, okanye awukwazi ukuzikhathaza kwaye usebenzise umyalelo oya kukhuphela kwisiqulathi seefayili textmf naphi na apho akhoyo:

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

Iifonti ze-PSCyr zifakiwe, qhagamshela kwi-TexLive:

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

Itemplate yeLaTeX yokuguqulwa kwemd2pdf

Andiyi kuchaza ngokuthe ngqo indlela le template eqwalaselwe ngayo, kwaye ndiya kuyinika ngokulula phantsi kombhubhisi ngaphandle kwengcaciso eninzi. Kwanele ukuthetha ukuba iqwalaselwe kakuhle, ubuncinci malunga nendlela yokusingatha iitekisi kunye nekhowudi eninzi yomthombo. Ukuba awanelisekanga bubungakanani be-idents, izithuba zomgca, ukunqongophala kwamanani amacandelo kunye namacandelwana, ngoko ke ngokombono wam kulula kakhulu ukubuza umbuzo kwi-Intanethi "uyenza njani kwiLatex ..." kwaye emva koko imfuno yakho. Ukuba ayicacanga nakancinci, bhala kwiinkcazo, ndiya kuzama ukukhangela kwizicwangciso zam kwiminyaka eyi-4 edlulileyo kwaye ndichaze ukuba yeyiphi umgca wethemplate ojongene nantoni. Okwangoku, ndiza kubhala phantsi indlela endiyenze ngayo kwi-PC yam, kwaye ukhululekile ukuyiphinda okanye ukuyiguqulela ngokwakho.

Yenza ifayile template.tex kwikhathalogu /usr/share/texlive/:

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

Nika iimvume zokufunda:

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

yivule phantsi kweengcambu kwaye uncamathisele imixholo efihliweyo phantsi kombhuqi ongezantsi kuyo:

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

Umxholo wetemplate /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}

Ukugcina ifayile /usr/share/texlive/template.tex kwaye ubhale iscript esizakuguqula i Makrdown ifayile kwiPDF, ukwenza kulawulo olufanayo ifayile ebizwa ngokuba yiMarkdown ifayile enesiqalo .pdf, oko kukuthi, emva koguqulelo. Igama lefayile.md izakuvela kwisiqulathi seefayili. Igama lefayile.md.pdf. Masibize iskripthi md2pdf wabeka indlela / usr / bin. Masenze imiyalelo ngokulandelelana:

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

Umgca we-4 ngokwenene uqulethe umyalelo wokuguqula. naka u --ukusuka=markdown_github. Inguqulelo yeGitHub yeMarkdown ibuyela ngasemva iyahambelana neMarkdown yoqobo, ke ukuba isicatshulwa sakho sibhaliwe kuyo, akufuneki ube nexhala. Ukuba ifayile yakho ye-MD ibhalwe ngolwimi oluthile lwe-Markdown, ngoko funda incwadi ye-Pandoc (man pandoc), qiniseka ukuba ukuphunyezwa kwakho kuxhaswa yiyo, kwaye ulungise /usr/bin/md2pdf ukuba kuyafuneka.

Ushicilelo lofakelo oluzenzekelayo ngakumbi okanye olungaphantsi

Ukuba awufuni nyani ukuqwalasela nantoni na, kwaye une-Ubuntu-efana nokuhanjiswa, ungazama ukwenza iskripthi ngemixholo efihliweyo phantsi komchithi, kwaye kusenokwenzeka ukuba yonke into iya kuzifaka ngokwayo, ekuphela kwento, khuphela. ithempleyithi yeTeX ithunyelwe phantsi kombhobhozi ongentla apho uzifuna khona. Vula iTheminali kwaye uqhube:

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

Emva koko yigcwalise ngomxholo olandelayo:

Imixholo yeskripthi se-$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

Yiqhube ngomyalelo:

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

Ungakulibali oko /usr/share/texlive/template.tex mayizaliswe njengoko kubonisiwe kwicandelo "Itemplate yeLaTeX yokuguqulwa kwemd2pdfΒ»umxholo.

Ukusebenzisa i-md2pdf

Vula nje incwadi eneenkcukacha ngefayile yeMarkdown (enye_ifayile.md) kwiTheminali kwaye usebenzise umyalelo:

user@hostname:~$ md2pdf some_file.md

Ngenxa yoko, ifayile iya kuvela kwifolda enye_ifayile.md.pdf.

isiphelo

Ngokusekwe kwindlela echaziweyo, unokwakha naluphi na uhlobo lweefayile zePDF, unokuguqula ezinye iifomati endaweni ye-md, nayiphi na inkxaso exhaswa yiPandoc. Ndiyathemba ukuba ngenye imini lo myalelo uya kuba luncedo kubantu aba-3 kunye nesiqingatha.

umthombo: www.habr.com

Yongeza izimvo