Isixazululo esenziwe ngomumo se-markdown2pdf esinekhodi yomthombo ye-Linux

Isibikezelo

I-Markdown iyindlela enhle yokubhala indatshana emfushane, futhi kwesinye isikhathi umbhalo omningi, onokufometha okulula okumalukeke nokugqamile. I-Markdown nayo ilungele ukubhala izindatshana ezinekhodi yomthombo efakiwe. Kodwa ngezinye izikhathi ufuna ukulahlekelwa, ukudansa ngethamborini ukuze ulifinyelele libe ifayela le-PDF elivamile, elakhiwe kahle, futhi ukuze kungabikho izinkinga ngesikhathi sokuguqulwa, okuyinto, ngokwesibonelo, enganginayo - awukwazi ukubhala ngesiRashiya ukuphawula kwekhodi yomthombo, imigqa emide kakhulu ayidluliswa, kodwa inqanyuliwe kanye nezinye izinkinga ezincane. Umyalelo uzokuvumela ukuthi usethe ngokushesha isiguquli md2pdf ngaphandle kokuqonda ngempela ukuthi isebenza kanjani. Umbhalo wokufaka okuzenzakalelayo okungaphezulu noma okuncane kungezansi esigabeni esifanele.

Isifanekiso sami sesampula se-TeX sokuguqulwa sisebenzisa iphakheji yefonti ye-PSCyr, ehlanganisa ukusekelwa kwamafonti e-Microsoft, okungukuthi Times New Roman. Kwakukhona izidingo ezinjalo zediploma ngokusho kweGOST. Uma wazi ukuthi kanjani, ungasishintsha isifanekiso ukuze sihambisane nezidingo zakho. Ngemiyalo yami, kuzodingeka uqale uzikhohlise ngesilungiselelo se-PSCyr ku-TexLive. Ukusetha kwenziwa ekusabalaliseni kwe-Linux Mint Mate, kokunye ukusatshalaliswa okungase kudingeke ukuthi usebenzise i-google amafolda ephakheji e-TexLive ajwayelekile ohlelo lwakho.

Ifaka i-TexLive

Yiqiniso, ungafaka kuphela izingxenye ezidingekayo zale phakheji. Kodwa ngokwami, ngangivilapha kakhulu ukubheka ukufakwa kokusebenza okudingekile. Ukuqinisekisa ukuthi yonke into iyasebenza, faka yonke iphakheji ye-TexLive. Kubizwa i-textlive-igcwele futhi inesisindo esingaphezudlwana kuka-2 gigabytes, gcina leli qiniso engqondweni. Senza umyalo:

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

Ngemva kokufaka isikhathi eside ngokwanele, ungadlulela entweni elandelayo.

Ukufaka i-Pandoc Converter

I-Pandoc iyiphakheji ye-Linux ekuvumela ukuthi uguqule amafomethi athile wombhalo uwayise kwabanye. Inezici eziningi ezithakazelisayo ongazithola ku-inthanethi. Sinentshisekelo kuphela ekuguquleni ifayela lokumaka libe yi-PDF. Hlola ukuthi i-Pandoc ifakiwe futhi uma kungenjalo, yifake. Ngokwesibonelo kanje:

user@hostname:~$ dpkg -s pandoc

Uma okukhiphayo kuthi akufakiwe, faka:

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

Ifaka iphakheji ye-PSCyr ye-TexLive

Okokuqala udinga ukulanda i-PSCyr. Okwamanje isatholakala kulokhu isixhumanisi, uma ngesikhathi sokufunda lesi sihloko singatholakali ngesizathu esithile, ungaphelelwa ithemba, kulula ukuyithola kanye nemiyalelo yokufaka ngokubhala into efana nokuthi "Ukufaka i-PsCyr texlive" ku-Google. Uma itholakala, khona-ke kulula kuwe, landa futhi sizothatha ngokuthi ukhiphe ingobo yomlando kufolda yakho yasekhaya futhi ngaleyo ndlela indlela eya kufolda equkethwe kungobo yomlando ibukeka sengathi ~/PSCyr. Bese uye ku-Terminal bese ukhipha imiyalo elandelayo ngokulandelana:

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, thola lapho uhla lwemibhalo lwendawo lukhona umbhalo. Senza umyalo:

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

Kungenzeka ukuthi unalo lolu hlu lwemibhalo - /usr/local/share/textmf/, bese senza:

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

Hhayi-ke, noma awukwazi ukuzihlupha futhi usebenzise umyalo ozokopishela kufolda umbhalo noma ngabe ukuphi:

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

Amafonti e-PSCyr afakiwe, xhuma ku-TexLive:

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

Isifanekiso se-LaTeX sokuguqulwa kwe-md2pdf

Ngeke ngichaze kahle ukuthi lesi sifanekiso simiswe kanjani, futhi ngizomane ngisinike ngaphansi kwe-spoiler ngaphandle kwencazelo eminingi. Kwanele ukusho ukuthi ilungiselelwe kahle, okungenani ngokwendlela ephatha ngayo imibhalo enekhodi yomthombo eminingi. Uma ungenelisekile ngosayizi wama-indenti, ukuhlukaniswa kwemigqa, ukuntuleka kwezinombolo zezigaba nezigatshana, ngakho-ke ngokubona kwami ​​kulula kakhulu uku-google umbuzo ku-intanethi "ukwenza kanjani ku-Latex ..." futhi ke isidingo sakho. Uma kungacacile nhlobo, bhala kumazwana, ngizozama ukungena kuzilungiselelo zami eminyakeni engu-4 edlule futhi ngichaze ukuthi yimuphi umugqa wesifanekiso onesibopho salokho. Okwamanje, ngizobhala phansi ukuthi ngikwenze kanjani ku-PC yami, futhi ukhululekile ukuphinda noma ukuzilungisela yona.

Dala ifayela isifanekiso.tex kukhathalogi /usr/share/texlive/:

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

Inikeze izimvume zokufunda:

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

yivule ngaphansi kwempande bese unamathisela okuqukethwe kufihlwe ngaphansi kwe-spoiler ngezansi kuyo:

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

Okuqukethwe kwesifanekiso /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}

Ilondoloza ifayela /usr/share/texlive/template.tex bese ubhala umbhalo ozoguqula ifayela le-Makrdown libe yi-PDF, udale kufolda efanayo ifayela elibizwa ngokuthi ifayela le-Markdown elinesiqalo esithi .pdf, okungukuthi, ngemva kokuguqulwa. filename.md izovela kufolda. igama lefayela.md.pdf. Masibize umbhalo md2pdf futhi afake indlela / usr / bin. Ake sikhiphe imiyalo ngokulandelana:

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

Umugqa wesi-4 empeleni uqukethe umyalo wokuguqula. qaphela --kusuka=markdown_github. Inguqulo ye-GitHub ye-Markdown ibuyela emuva iyahambisana ne-Markdown yoqobo, ngakho-ke uma umbhalo wakho ubhalwe kuyo, akumele ukhathazeke. Uma ifayela lakho le-MD libhalwe ngolimi oluthile lwe-Markdown, funda imanuwali ye-Pandoc (man pandoc), qiniseka ukuthi ukusebenzisa kwakho kusekelwa yikho, futhi ulungise /usr/bin/md2pdf uma kunesidingo.

Iskripthi sokufakwa okuzenzakalelayo okungaphezulu noma okuncane

Uma ungafuni ukulungisa noma yini nhlobo, futhi unokusabalalisa okufana no-Ubuntu, ungazama ukudala iskripthi esinokuqukethwe okufihliwe ngaphansi kwe-spoiler, futhi cishe yonke into izozifaka yona, into kuphela, ikhophi. ithempulethi ye-TeX ethunyelwe ngaphansi kwe-spoiler ngenhla lapho kudingeka khona ngokwabo. Vula iTheminali bese uqalisa:

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

Bese uyigcwalisa ngokuqukethwe okulandelayo:

Okuqukethwe kweskripthi 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

Yisebenzise ngomyalo:

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

Ungakukhohlwa lokho /usr/share/texlive/template.tex kufanele igcwaliswe njengoba kukhonjisiwe esigabeni "Isifanekiso se-LaTeX sokuguqulwa kwe-md2pdfΒ»okuqukethwe.

Isebenzisa i-md2pdf

Vele uvule ifolda ngefayela le-Markdown (some_file.md) ku-Terminal bese ugijima umyalo:

user@hostname:~$ md2pdf some_file.md

Ngenxa yalokho, ifayela lizovela kufolda some_file.md.pdf.

isiphetho

Ngokusekelwe endleleni echazwe, ungakha noma yisiphi isitayela samafayela e-PDF, ungakwazi futhi ukuguqula amanye amafomethi esikhundleni se-md, noma yikuphi okusekelwa yi-Pandoc. Ngiyethemba ukuthi ngolunye usuku lo myalelo uzoba usizo kubantu abangu-3 nengxenye.

Source: www.habr.com

Engeza amazwana