Yokonzeka yopangidwa ndi markdown2pdf yankho yokhala ndi magwero a Linux

Maulosi

Markdown ndi njira yabwino kwambiri yolembera nkhani yaifupi, ndipo nthawi zina imakhala ndi zolemba zambiri, zokhala ndi mawu osavuta komanso olimba mtima. Markdown ndiyabwinonso polemba zolemba zomwe zili ndi ma source code ophatikizidwa. Koma nthawi zina mumafuna kuvina mopanda malire, kuvina ndi maseche kuti mutenge fayilo ya PDF yokhazikika, yopangidwa bwino, komanso kuti pasakhale zovuta pakutembenuka, zomwe, mwachitsanzo, ndinali nazo - simungathe kulemba mu Chirasha. ndemanga za kachidindo kochokera, mizere yayitali kwambiri samasamutsidwa, koma kudula ndi mavuto ena ang'onoang'ono. Malangizo amakulolani kuti muyike mwachangu chosinthira md2pdf osamvetsetsa momwe zimagwirira ntchito. Zolemba zoyika mochulukira kapena zochepa zili pansipa mugawo loyenera.

Template yanga ya TeX yosinthira imagwiritsa ntchito phukusi la PSCyr, lomwe limaphatikizapo kuthandizira mafonti a Microsoft, omwe ndi Times New Roman. Panali zofunika zimenezi diploma malinga ndi GOST. Ngati mukudziwa, mutha kusintha template kuti igwirizane ndi zosowa zanu. M'malangizo anga, muyenera kupusitsidwa kaye ndi PSCyr mu TexLive. Kukonzekera kumachitidwa pakugawa kwa Linux Mint Mate, pazogawa zina mungafunike google mafoda amtundu wa TexLive pamakina anu.

Kukhazikitsa TexLive

Inde, mutha kukhazikitsa magawo ofunikira a phukusili. Koma panokha, ndinali waulesi kwambiri kuyang'ana unsembe osachepera zofunika ntchito. Kuti muwonetsetse kuti zonse zikuyenda, yikani phukusi lonse la TexLive. Amatchedwa textlive-yodzaza ndipo imalemera pang'ono kuposa 2 gigabytes, sungani izi m'maganizo. Timapanga lamulo:

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

Pambuyo pa unsembe wautali mokwanira, mukhoza kupita ku chinthu china.

Kukhazikitsa Pandoc Converter

Pandoc ndi phukusi la Linux lomwe limakupatsani mwayi wosinthira mafayilo ena kukhala ena. Ili ndi zinthu zambiri zosangalatsa zomwe mungapeze nokha pa intaneti. Timangoganizira za kuthekera kosintha fayilo kukhala PDF. Onani ngati Pandoc yakhazikitsidwa ndipo ngati sichoncho, yikani. Mwachitsanzo monga chonchi:

user@hostname:~$ dpkg -s pandoc

Ngati zomwe zatuluka zikunena kuti sizinayikidwe, yikani:

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

Kuyika phukusi la PSCyr la TexLive

Choyamba muyenera kukopera PSCyr. Pakali pano ikupezekabe pa izi kugwirizana, ngati panthawi yowerenga nkhaniyi sichipezeka pazifukwa zina, musataye mtima, n'zosavuta kuzipeza pamodzi ndi malangizo oyikapo polemba chinachake monga "Kuyika PsCyr texlive" mu Google. Ngati ilipo, ndiye kuti ndizosavuta kwa inu, tsitsani ndipo tiganiza kuti mwatulutsa zosungidwa mufoda yanu yakunyumba ndipo njira yopita ku chikwatu chomwe chili munkhokwe ikuwoneka ngati. ~/PSCyr. Kenako pitani ku Terminal ndikuchita malamulo otsatirawa motsatizana:

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

Kenako, fufuzani kumene chikwatu chapafupi chili textmf. Timapanga lamulo:

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

Mwinamwake muli ndi bukhuli - /usr/local/share/textmf/, ndipo timachita:

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

Chabwino, kapena simungavutike ndikuyendetsa lamulo lomwe lingakopere ku chikwatu textmf kulikonse komwe ali:

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

Mafonti a PSCyr adayikidwa, kulumikizana ndi TexLive:

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

LaTeX template yosinthira md2pdf

Sindidzafotokozera momwe template iyi imapangidwira, ndipo ndingoyipereka pansi pa wowononga popanda kufotokoza zambiri. Zokwanira kunena kuti zimakonzedwa bwino, makamaka momwe zimakhalira ndi malemba omwe ali ndi code source code. Ngati simukukhutitsidwa ndi kukula kwa ma indents, kusiyana kwa mizere, kusowa kwa chiwerengero cha zigawo ndi zigawo, ndiye kuti ndizosavuta google funso pa intaneti "momwe mungachitire mu Latex ..." ndi ndiye chosowa chanu. Ngati sizikumveka bwino, lembani m'mawu, ndiyesera kuyang'ana momwe ndingakhazikitsire zaka 4 zapitazo ndikufotokozera kuti ndi mzere uti wa template womwe uli ndi udindo pa zomwe. Pakalipano, ndilemba momwe ndinachitira pa PC yanga, ndipo ndinu omasuka kubwereza kapena kusintha nokha.

Pangani fayilo template.tex mu katalogu /usr/share/textlive/:

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

Perekani chilolezo chowerenga:

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

tsegulani pansi pa muzu ndikuyika zomwe zabisika pansi pa wowononga pansipa:

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

Zithunzi za /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}

Kusunga fayilo /usr/share/texlive/template.tex ndikulemba script yomwe idzasinthe fayilo ya Makrdown kukhala PDF, ndikupanga mufoda yomweyo fayilo yotchedwa Markdown file ndi prefix .pdf, ndiko kuti, pambuyo pa kutembenuka. filename.md idzawoneka mufoda. filename.md.pdf. Tiyeni tiyimbe script md2pdf ndi kuika panjira / usr / bin. Tiyeni tipange malamulo motsatizana:

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

Mzere wa 4 uli ndi lamulo la kutembenuka. tcherani khutu kwa --kuchokera=markdown_github. Mtundu wa GitHub wa Markdown ndi wobwerera m'mbuyo umagwirizana ndi Markdown yoyambirira, chifukwa chake ngati mawu anu adalembedwamo, simuyenera kuda nkhawa. Ngati fayilo yanu ya MD yalembedwa m'chilankhulo china cha Markdown, ndiye werengani buku la Pandoc (man pandoc), onetsetsani kuti kukhazikitsa kwanu kumathandizidwa ndi izo, ndikusintha /usr/bin/md2pdf ngati kuli kofunikira.

Script kuti muyike mochulukira kapena pang'ono

Ngati simukufuna kukonza kalikonse, ndipo muli ndi kugawa ngati Ubuntu, mutha kuyesa kupanga script ndi zomwe zili zobisika pansi pa owononga, ndipo mwina chilichonse chidzadziyika chokha, chinthu chokhacho, kukopera. template ya TeX yotumizidwa pansi pa wowononga pamwamba pomwe mukufunikira. Tsegulani Terminal ndikuyendetsa:

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

Kenako lembani ndi izi:

Zomwe zili mu $HOME/installmd2pdf.sh script

#!/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

Yendetsani ndi lamulo:

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

Osayiwala zimenezo /usr/share/texlive/template.tex ziyenera kudzazidwa monga momwe zasonyezedwera mu gawoli "LaTeX template yosinthira md2pdfΒ»zinthu.

Kugwiritsa ntchito md2pdf

Ingotsegulani chikwatucho ndi fayilo ya Markdown (some_file.md) mu Terminal ndikuyendetsa lamulo:

user@hostname:~$ md2pdf some_file.md

Zotsatira zake, fayilo idzawonekera mufoda some_file.md.pdf.

Pomaliza

Kutengera njira yofotokozedwayo, mutha kupanga mawonekedwe aliwonse amtundu wa PDF, mutha kusinthanso mawonekedwe ena m'malo mwa md, iliyonse yothandizidwa ndi Pandoc. Ndikuyembekeza kuti tsiku lina malangizowa adzakhala othandiza kwa anthu atatu ndi theka.

Source: www.habr.com

Kuwonjezera ndemanga