Fuasgladh markdown2pdf deiseil le còd stòr airson Linux

Facal-toisich

Tha Markdown na dhòigh math air artaigil goirid a sgrìobhadh, agus uaireannan tòrr teacsa, le cruth sìmplidh clò eadailteach agus trom. Tha Markdown cuideachd math airson artaigilean a sgrìobhadh le còd stòr air a thoirt a-steach. Ach uaireannan bidh thu airson gun call, dannsa le tambourine gus a dhol seachad air ann am faidhle PDF cunbhalach, air a dheagh chruthachadh, agus gus nach bi duilgheadasan sam bith ann aig àm tionndaidh, a bha, mar eisimpleir, agam - chan urrainn dhut sgrìobhadh ann an Ruisis ann an beachdan a 'chòd stòr, chan eil loidhnichean ro fhada air an gluasad, ach gearradh agus duilgheadasan beaga eile. Leigidh an stiùireadh leat an inneal-tionndaidh a stèidheachadh gu sgiobalta md2 faidhle pdf gun tuigse dha-rìribh mar a tha e ag obair. Tha an sgriobt airson stàladh fèin-ghluasadach nas lugha no nas lugha gu h-ìosal anns an earrainn iomchaidh.

Bidh an teamplaid sampall TeX agam airson tionndadh a’ cleachdadh pasgan cruth PSCyr, a tha a’ toirt a-steach taic airson clòthan Microsoft, is e sin Amasan New Roman. Bha riatanasan mar sin ann airson dioplòma a rèir GOST. Ma tha fios agad ciamar, faodaidh tu an teamplaid atharrachadh gus freagairt air na feumalachdan agad. Anns an stiùireadh agam fhìn, feumaidh tu an-toiseach a bhith ag ionndrainn an t-suidheachaidh PSCyr ann an TexLive. Tha an suidheachadh air a dhèanamh ann an cuairteachadh Linux Mint Mate, airson sgaoilidhean eile is dòcha gum feum thu google na pasganan pacaid àbhaisteach TexLive airson an t-siostam agad.

TexLive a stàladh

Gu dearbh, chan urrainn dhut ach na pàirtean riatanach den phasgan seo a stàladh. Ach gu pearsanta, bha mi gu fìrinneach ro leisg a bhith a’ coimhead airson an stàladh obrach as lugha a bha riatanach. Gus dèanamh cinnteach gu bheil a h-uile càil ag obair, stàlaich am pasgan TexLive gu lèir. Canar texlive-làn agus cuideam beagan a bharrachd air 2 gigabytes, cumaibh an fhìrinn seo ann an cuimhne. Bidh sinn a 'coileanadh an òrdugh:

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

Às deidh stàladh fada gu leòr, faodaidh tu a dhol air adhart chun ath rud.

Stàladh an Pandoc Converter

Is e pasgan Linux a th’ ann am Pandoc a leigeas leat cuid de chruthan teacsa a thionndadh gu cruthan eile. Tha tòrr fheartan inntinneach ann a gheibh thu fhèin air an eadar-lìn. Chan eil ùidh againn ach ann a bhith comasach air faidhle comharrachaidh atharrachadh gu PDF. Dèan cinnteach a bheil Pandoc air a chuir a-steach agus mura h-eil, stàlaich e. Mar eisimpleir mar seo:

user@hostname:~$ dpkg -s pandoc

Ma tha an toradh ag ràdh nach eil e air a stàladh, stàlaich:

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

A’ stàladh a’ phacaid PSCyr airson TexLive

An toiseach feumaidh tu PSCyr a luchdachadh sìos. Airson a-nis tha e fhathast ri fhaighinn aig an ìre seo cheangal, mura h-eil e ri fhaighinn aig àm leughaidh an artaigil airson adhbhar air choireigin, na bi eu-dòchas, tha e furasta a lorg còmhla ris an stiùireadh stàlaidh le bhith a’ taipeadh rudeigin mar “Stàladh PsCyr texlive” ann an Google. Ma tha e ri fhaighinn, bidh e nas fhasa dhut, luchdaich sìos agus gabhaidh sinn ris gu bheil thu air an tasglann a dhì-phapadh a-steach don phasgan dachaigh agad agus mar sin tha coltas air an t-slighe chun phasgan a tha san tasglann ~/PSCyr. An uairsin rachaibh chun Terminal agus cuir an gnìomh na h-òrdughan a leanas ann an òrdugh:

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

An uairsin, faigh a-mach càite a bheil an eòlaire ionadail suidhichte teacsam. Bidh sinn a 'coileanadh an òrdugh:

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

Is coltaiche gu bheil an t-eòlaire seo agad - /usr/ionadail/share/texmf/, agus an uairsin nì sinn:

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

Uill, no chan urrainn dhut dragh a chuir air agus ruith àithne a nì leth-bhreac gu pasgan teacsam ge bith càite a bheil i:

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

Cruthan PSCyr air an stàladh, ceangail ri TexLive:

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

Teamplaid LaTeX airson tionndadh md2pdf

Cha toir mi cunntas mionaideach air mar a tha an teamplaid seo air a rèiteachadh, agus bheir mi dìreach e fon spoiler gun mòran mìneachaidh. Gu leòr a ràdh gu bheil e air a dheagh rèiteachadh, co-dhiù a thaobh mar a làimhsicheas e teacsaichean le tòrr còd stòr. Mura h-eil thu riaraichte le meud indents, farsaingeachd loidhne, dìth àireamhachadh earrannan agus fo-roinnean, nam bheachd-sa tha e gu math furasta a ’cheist a chuir air an eadar-lìn“ mar a nì thu ann an Latex ... ”agus an uairsin do fheum. Mura h-eil e soilleir idir, sgrìobh na beachdan, feuchaidh mi ri sgrùdadh a dhèanamh air na roghainnean agam fhèin 4 bliadhna air ais agus innse dè an loidhne den teamplaid a tha an urra ri dè. Anns an eadar-ama, sgrìobhaidh mi sìos mar a rinn mi e air mo PC, agus faodaidh tu ath-aithris no atharrachadh dhut fhèin.

Cruthaich faidhle teamplaid.tex anns a ’chatalog /usr/share/texlive/:

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

Thoir cead leughaidh dha:

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

fosgail e fon fhreumh agus cuir a-steach an stuth a tha falaichte fon spoiler gu h-ìosal ann:

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

Susbaint teamplaid /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}

Sàbhail faidhle /usr/share/texlive/template.tex agus sgrìobh sgriobt a thionndaidheas am faidhle Makrdown gu PDF, a’ cruthachadh anns an aon phasgan faidhle ris an canar am faidhle Markdown leis an ro-leasachan .pdf, is e sin, às deidh an tionndadh ainm faidhle.md nochdaidh e sa phasgan. ainm an fhaidhle.md.pdf. Canaidh sinn an sgriobt md2 faidhle pdf agus cuir air an t-slighe / usr / bin. Dèanamaid na h-òrdughan ann an òrdugh:

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

Anns an 4mh loidhne gu dearbh tha an àithne tionndaidh. thoir an aire --bho=markdown_github. Tha an dreach GitHub de Markdown air ais co-chòrdail ris an Markdown tùsail, mar sin ma tha an teacsa agad sgrìobhte ann, cha leig thu leas a bhith draghail. Ma tha am faidhle MD agad sgrìobhte ann an dualchainnt sònraichte Markdown, leugh an leabhar-làimhe Pandoc (man pandoc), dèan cinnteach gu bheil do bhuileachadh a’ faighinn taic bhuaithe, agus tweak /usr/bin/md2pdf ma tha sin riatanach.

Sgriobt airson barrachd no nas lugha de stàladh fèin-ghluasadach

Mura h-eil thu dha-rìribh ag iarraidh rud sam bith a rèiteachadh, agus gu bheil cuairteachadh coltach ri Ubuntu agad, faodaidh tu feuchainn ri sgriobt a chruthachadh leis an t-susbaint falaichte fon spoiler, agus is coltaiche gun stàlaich a h-uile càil e fhèin, is e an aon rud, dèan lethbhreac an teamplaid TeX air a phostadh fon spoiler gu h-àrd far a bheil feum agad air iad fhèin. Fosgail Terminal agus ruith:

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

An uairsin lìon e leis an t-susbaint a leanas:

Na tha anns an sgriobt $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

Ruith e leis an àithne:

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

Na dìochuimhnich sin /usr/share/texlive/template.tex feumar a lìonadh a-steach mar a tha air a chomharrachadh san earrann "Teamplaid LaTeX airson tionndadh md2pdf» susbaint.

Le bhith a ' cleachdadh md2 pdf

Dìreach fosgail am pasgan leis an fhaidhle Markdown (cuid_faidhle.md) anns an Terminal agus ruith an àithne:

user@hostname:~$ md2pdf some_file.md

Mar thoradh air an sin, nochdaidh faidhle sa phasgan cuid_faidhle.md.pdf.

co-dhùnadh

Stèidhichte air an dòigh a chaidh a mhìneachadh, faodaidh tu stoidhle sam bith de fhaidhlichean PDF a thogail, faodaidh tu cuideachd cruthan eile a thionndadh an àite md, gin le taic bho Pandoc. Tha mi an dòchas a bhith an dòchas gum bi an stiùireadh seo feumail do 3 gu leth neach aon latha.

Source: www.habr.com

Cuir beachd ann