ʻO ka hopena markdown2pdf i mākaukau me ka code kumu no Linux

Kauwehe

ʻO Markdown kahi ala maikaʻi loa e kākau ai i kahi ʻatikala pōkole, a i kekahi manawa he nui nā kikokikona, me ka hōʻano kikoʻī maʻalahi a wiwo ʻole. Maikaʻi ʻo Markdown no ke kākau ʻana i nā ʻatikala me nā code kumu. Akā, i kekahi manawa 'oe makemake e loselessly, hula me ka pahu kani e loaʻa iā ia i loko o ka maʻamau, maikaʻi-hana PDF waihona, a no laila,ʻaʻohe pilikia i ka wā o ka huli ana, ka mea, no ka laʻana, ua loaʻa iaʻu - 'aʻole hiki iāʻoe ke kākau i ka'ōlelo Lūkini ma ʻAʻole hoʻololi ʻia nā ʻōlelo o ke kumu kumu, nā laina lōʻihi loa, akā ʻoki a me nā pilikia liʻiliʻi ʻē aʻe. E ʻae ke aʻo iā ʻoe e hoʻonohonoho koke i ka mea hoʻololi md2pdf me ka maopopo ole i ka hana ana. Aia ma lalo ka ʻatikala no kahi hoʻonohonoho ʻokoʻa a ʻoi aku paha ma ka ʻāpana kūpono.

Hoʻohana kaʻu kumu hoʻohālike TeX no ka hoʻololi ʻana i ka pūʻolo kikokikona PSCyr, me ke kākoʻo ʻana i nā font Microsoft, ʻo ia hoʻi Hōʻike Hou Roman. Aia nā koi no kahi diploma e like me GOST. Inā ʻike ʻoe pehea, hiki iā ʻoe ke hoʻololi i ka template e kūpono i kāu mau pono. Ma kaʻu mau ʻōlelo ponoʻī, pono ʻoe e hoʻopunipuni mua me ka hoʻonohonoho PSCyr ma TexLive. Hana ʻia ka hoʻonohonoho ʻana ma ka hāʻawi ʻana i ka Linux Mint Mate, no nā hoʻohele ʻē aʻe e pono ai ʻoe e google i nā waihona waihona TexLive maʻamau no kāu ʻōnaehana.

Ke hoʻokomo nei iā TexLive

ʻOiaʻiʻo, hiki iā ʻoe ke hoʻokomo i nā ʻāpana pono o kēia pūʻolo. Akā ʻo wau iho, ua palaualelo loa wau e ʻimi i ka liʻiliʻi e pono ai ka hoʻonohonoho hana. No ka hōʻoia i ka holo ʻana o nā mea a pau, e hoʻokomo i ka pūʻolo TexLive holoʻokoʻa. Ua kapa ʻia textlive-piha a ʻoi aku ke kaumaha ma mua o 2 gigabytes, e hoʻomanaʻo i kēia ʻoiaʻiʻo. Hoʻokō mākou i ke kauoha:

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

Ma hope o kahi hoʻonohonoho lōʻihi, hiki iā ʻoe ke hoʻomau i ka mea aʻe.

Ke kau nei i ka Pandoc Converter

ʻO Pandoc kahi pūʻolo Linux e hiki ai iā ʻoe ke hoʻololi i kekahi mau kikokikona i nā mea ʻē aʻe. He nui nā hiʻohiʻona hoihoi e hiki iā ʻoe ke loaʻa iā ʻoe iho ma ka Pūnaewele. Makemake wale mākou i ka hiki ke hoʻololi i kahi faila markdown i PDF. E nānā inā hoʻokomo ʻia ʻo Pandoc a inā ʻaʻole, e hoʻokomo. No ka laʻana penei:

user@hostname:~$ dpkg -s pandoc

Inā ʻōlelo ka huahana ʻaʻole i hoʻokomo ʻia, e hoʻokomo:

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

Ke hoʻokomo nei i ka pūʻolo PSCyr no TexLive

Pono mua ʻoe e hoʻoiho i ka PSCyr. I kēia manawa aia nō ia ma kēia loulou, inā i ka manawa o ka heluhelu ʻana i ka ʻatikala ʻaʻole i loaʻa no kekahi kumu, mai hopohopo, maʻalahi ka loaʻa ʻana me nā ʻōkuhi hoʻonohonoho ma ke kaomi ʻana i kahi mea e like me "Installing PsCyr texlive" ma Google. Inā loaʻa, a laila ʻoi aku ka maʻalahi iā ʻoe, e hoʻoiho a manaʻo mākou ua wehe ʻoe i ka waihona i loko o kāu waihona home a pēlā ke ala i ka waihona i loko o ka waihona. ~/PSCyr. A laila e hele i ka Terminal a hoʻokō i kēia mau kauoha ma ke kaʻina:

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

A laila, e ʻimi i kahi o ka papa kuhikuhi kūloko texmf. Hoʻokō mākou i ke kauoha:

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

Loaʻa paha iā ʻoe kēia papa kuhikuhi - /usr/local/share/texmf/, a laila hana mākou:

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

ʻAe, a i ʻole hiki iā ʻoe ke hoʻopilikia a holo i kahi kauoha e kope i kahi waihona texmf ma kona wahi e noho ai:

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

Hoʻokomo ʻia nā font PSCyr, pili iā TexLive:

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

LaTeX template no ka hoohuli md2pdf

ʻAʻole wau e wehewehe pololei i ke ʻano o ka hoʻonohonoho ʻana o kēia template, a e hāʻawi wale aku au ma lalo o ka mea hao wale me ka wehewehe ʻole. Ua lawa ia i ka ʻōlelo ʻana ua hoʻonohonoho maikaʻi ʻia, ma ka liʻiliʻi ma ke ʻano o ka lawelawe ʻana i nā kikokikona me ka nui o nā code kumu. Inā ʻaʻole ʻoluʻolu ʻoe i ka nui o nā indents, spacing laina, ka nele o ka helu ʻana i nā ʻāpana a me nā ʻāpana, a laila i koʻu manaʻo he mea maʻalahi loa ka google i ka nīnau ma ka Pūnaewele "pehea e hana ai ma Latex ..." a a laila kou pono. Inā ʻaʻole maopopo loa, e kākau i loko o nā ʻōlelo, e hoʻāʻo wau e ʻimi i kaʻu mau hoʻonohonoho ponoʻī 4 mau makahiki i hala aku nei a wehewehe i ka laina o ka template ke kuleana no ka mea. I kēia manawa, e kākau wau pehea wau i hana ai ma kaʻu PC, a ua noa ʻoe e hana hou a hoʻololi paha iā ʻoe iho.

Hana i kahi faila template.tex i ka papa kuhikuhi /usr/share/texlive/:

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

Hāʻawi i nā ʻae heluhelu:

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

wehe ia ma lalo o ke kumu a hoʻopili i nā mea i hūnā ʻia ma lalo o ka mea hao ma lalo.

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

Maʻiʻo template /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}

Ke mālama nei i ka faila /usr/share/texlive/template.tex a kākau i kahi palapala e hoʻohuli i ka faila Makrdown i PDF, e hana ana i loko o ka waihona like i kahi faila i kapa ʻia ʻo Markdown file me ka prefix .pdf, ʻo ia hoʻi, ma hope o ka hoʻololi ʻana. filename.md e ʻike ʻia ma ka waihona. filename.md.pdf. E kāhea kākou i ka palapala md2pdf a kau ma ke ala / usr / ʻōpala. E hoʻokō kākou i nā kauoha ma ke kaʻina:

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

Aia ka laina 4 i ke kauoha hoʻololi. e malama pono --from=markdown_github. ʻO ka ʻaoʻao GitHub o Markdown ua kūpono i hope me ka Markdown kumu, no laila inā kākau ʻia kāu kikokikona i loko, ʻaʻole pono ʻoe e hopohopo. Inā kākau ʻia kāu faila MD ma kahi dialect Markdown kikoʻī, a laila heluhelu i ka manual Pandoc (man pandoc), e hōʻoia i kāu hoʻokō ʻana i kākoʻo ʻia e ia, a tweak /usr/bin/md2pdf inā pono.

Palapala no ka hoʻokomo ʻakomi a ʻoi aʻe paha

Inā ʻaʻole ʻoe makemake e hoʻonohonoho i kekahi mea a pau, a loaʻa iā ʻoe kahi ʻāpana like ʻo Ubuntu, hiki iā ʻoe ke hoʻāʻo e hana i kahi palapala me nā mea i hūnā ʻia ma lalo o ka mea hao, a ʻoi aku paha nā mea āpau e hoʻokomo iā ia iho, ʻo ka mea wale nō, kope. ka template TeX i kau ʻia ma lalo o ka mea hao ma luna a i kahi āu e pono ai. E wehe i ka Terminal a holo:

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

A laila e hoʻopiha iā ia me kēia maʻiʻo:

Nā mea i loko o ka palapala $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

E holo me ke kauoha:

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

Mai poina i kēlā /usr/share/texlive/template.tex pono e hoʻopiha ʻia e like me ka mea i hōʻike ʻia ma ka ʻāpana "LaTeX template no ka hoohuli md2pdf» maʻiʻo.

Ke hoʻohana nei i ka md2pdf

E wehe wale i ka waihona me ka faila Markdown (some_file.md) i ka Terminal a holo i ke kauoha:

user@hostname:~$ md2pdf some_file.md

ʻO ka hopena, e ʻike ʻia kahi faila ma ka waihona some_file.md.pdf.

hopena

Ma muli o ke ʻano i wehewehe ʻia, hiki iā ʻoe ke kūkulu i kekahi ʻano o nā faila PDF, hiki iā ʻoe ke hoʻololi i nā palapala ʻē aʻe ma mua o ka md, nā mea i kākoʻo ʻia e Pandoc. ʻAʻa wau e manaʻolana i kekahi lā e pono ai kēia aʻo ʻana i nā kānaka 3 a me ka hapa.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka