EessÔna
Markdown on suurepĂ€rane viis kirjutada vĂ€ikest artiklit ja vahel ka piisavalt mahukat teksti, kasutades lihtsat vormindamist nagu kaldkiri ja rasvane kiri. Samuti sobib Markdown hĂ€sti artiklite kirjutamiseks, kus sisaldub lĂ€htekood. Kuid mĂ”nikord tahaks selle ilma kaotusteta ja tantsimista tavalisse, hĂ€sti vormindatud PDFi failina ĂŒle kanda ja et poleks probleeme konverteerimisel, nagu nĂ€iteks mul oli - ei saanud kirjutada venekeelselt koodi kommentaarides, liiga pikad read ei murrdu, vaid katkestatakse ja muud pisiprobleemid. Juhend vĂ”imaldab kiiresti konverteri seadistada. md2pdf ilma eriti sisse minemata, kuidas see töötab. Skript automaatseks installimiseks on toodud allpool vastavas osas.
Minu TeX mall konverteerimiseks kasutab PSCyr fondipaketti, mis sisaldab Microsofti fondide tuge, nimelt Times New Roman. Sellised olid nĂ”udmised diplomi kohta vastavalt GOSTile. Kui oskate, vĂ”ite mallist oma vajaduste jaoks muuta. Minu juhendis tuleb eelnevalt natuke vaeva nĂ€ha PSCyr seadistamisega TexLives. Seadistamine toimub Linux Mint Mate jaotuses, teiste jaotuste puhul vĂ”ib olla vajalik otsida TexLive paketi standardseid kaustasid teie sĂŒsteemis.
TexLive installimine
Muidugi vĂ”ib installida ainult vajalikud osad sellest paketist. Kuid isiklikult oli mul avatud laiskust otsida minimaalset vajalikku töökeskkonda. Et kĂ”ik kindlasti toimiks, installime kogu TexLive paketi. Selle nimi on texlive-full ja kaalub veidi ĂŒle 2 gigabaiti, pidage seda meeles. TĂ€idame kĂ€su:
user@hostname:~$ sudo apt install texlive-full -yPÀrast piisavalt pikkade installimist saame liikuda jÀrgmise punkti juurde.
Pandoc konverteri installimine
Pandoc on Linuxi pakett, mis vÔimaldab teisendada teatud tekiformaate teistesse. Selles on palju huvitavaid vÔimalusi, millega saate ise internetis tutvuda. Meid huvitab vaid vÔimalus konverteerida markdown fail PDF-ks. Kontrollime, kas Pandoc on installitud, ja kui ei, siis installime selle. NÀiteks nii:
user@hostname:~$ dpkg -s pandocKui vÀljundis on kirjas, et ei ole installitud - installime:
user@hostname:~$ sudo apt install pandoc -yPSCyr paketi installimine TexLives
Esialgu tuleb alla laadida PSCyr. Praegu on see veel saadaval siit. , kui te loete seda artiklit ja see mingil pĂ”hjusel ei ole saadaval, Ă€rge meeleheidet laske, seda on lihtne leida koos installatsioonijuhisega, otsides Google'ist midagi sellist nagu âPsCyr texlive'i installimineâ. Kui see on saadaval, siis on teil lihtsam, laadige alla ja oletame, et olete arhivi lahti pakkunud oma kodukaustas, seega kaust, mis sisaldab arhivi, nĂ€eb vĂ€lja nagu ~\/PSCyr. Siis avame Terminali ja tĂ€idame jĂ€rjestikku kĂ€sud:
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.mapEdasi saame teada, kus asub lokaalne kataloog texmf. TÀidame kÀsu:
user@hostname:~$ kpsewhich -expand-var='$TEXMFLOCAL'TĂ”enĂ€oliselt on see kataloog teil â /usr/local/share/texmf/, ja siis tĂ€idame:
user@hostname:~$ sudo cp -R .\/PSCyr\/* \/usr\/local\/share\/texmf\/VĂ”i vĂ”ite ka mitte vaevuda ja tĂ€ita kĂ€sku, mis kopeerib selle kausta texmf kus iganes see nĂŒĂŒd on:
user@hostname:~$ sudo cp -R .\/PSCyr\/* $(kpsewhich -expand-var='$TEXMFLOCAL')PSCyr font on installitud, ĂŒhendame TexLive'iga:
user@hostname:~$ sudo texhash
user@hostname:~$ updmap --enable Map=pscyr.map
user@hostname:~$ sudo mktexlsrLaTeX mall md2pdf konverteerimiseks
Ma ei hakka kirjeldama, kuidas see mall tĂ€pselt seadistatud on, vaid lihtsalt toon selle vĂ€lja peidetud sisuna ning ei lisa erilisi selgitusi. Piisab, kui öelda, et see on ĂŒsna hĂ€sti seadistatud, vĂ€hemalt nii, kuidas see töötleb tekste, kus on palju allika koodi. Kui te ei ole rahul reavahede, vahemaa ja jaotuste numbrite puudumisega, siis minu arvates on seda piisavalt lihtne internetis otsida kĂŒsimusega âkuidas Latexis tehaâŠâ ja edasi vastavalt oma vajadustele. Kui on tĂ€iesti arusaamatu, kirjutage kommentaaridesse, pĂŒĂŒan meenutada oma nelja aasta taguseid seadistusi ning selgitada, milline malli rida mille eest vastutab. Seniks toon vĂ€lja, kuidas tegin mina oma arvutis, ja teie vĂ”ite kas korrata vĂ”i muuta seda vastavalt enda soovile.
Looge fail template.tex kaustas /usr/share/texlive/:
user@hostname:~$ sudo touch \/usr\/share\/texlive\/template.texAnname sellele lugemisÔiguse:
user@hostname:~$ sudo chmod 444 \/usr\/share\/texlive\/template.texavatakse root'iga ja sisestame sinna peidetud sisu alloleva spolleri all:
user@hostname:~$ sudo nano \/usr\/share\/texlive\/template.texMalli sisu \/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}Salvestame faili /usr/share/texlive/template.tex ja kirjutame skripti, mis konverteerib Markdown faili PDF-iks, luues samasse kausta faili, mille nimi on Markdown faili nimi koos '.pdf' lÔpuga, st pÀrast konversiooni filename.md kaustas ilmub filename.md.pdf. Nimetame skripti md2pdf ja paneme selle teele /usr/bin. TÀidame jÀrjestikku kÀsud:
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\/md2pdfNeljas rida sisaldab tegelikult konversioonikĂ€su. Pange tĂ€hele âfrom=markdown_githubGitHubi Markdowni versioon on tagasiĂŒhilduv originaalse Markdowniga, seega kui teie tekst on kirjutatud sellel, siis ei pea muretsema. Kui teie MD-fail on kirjutatud spetsiifilises Markdowni dialektis, siis tutvuge Pandoci juhendiga (man pandoc), veenduge, et teie rakendust toetatakse, ja tehke vajadusel muudatused. /usr/bin/md2pdf .
Skript enam-vÀhem automaatseks installimiseks
Kui te ei soovi ĂŒldse seadistamisega tegeleda ja teil on Ubuntu-tĂŒĂŒpi jaotamine, vĂ”ite proovida luua skripti, mille sisu on peidetud spoilerisse, ja tĂ”enĂ€oliselt installitakse kĂ”ik automaatselt, ainus asi, TeX-mall, mis on ĂŒles laaditud ĂŒlaltspoilerisse, tuleb teil ise Ă”igesse kohta kopeerida. Avage Terminal ja tĂ€itke:
user@hostname:~$ cd
user@hostname:~$ touch installmd2pdf.shSeejÀrel tÀitke see jÀrgmise sisuga:
Skripti sisu $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/md2pdfKÀitage seda kÀsuga:
user@hostname:~$ sudo bash $HOME/installmd2pdf.shĂrge unustage, et /usr/share/texlive/template.tex tuleb tĂ€ita sellel jaotisel âLaTeX mall md2pdf konverteerimiseksâ olevale sisule.
md2pdf kasutamine
Lihtsalt avage kaust, kus asub Markdowni fail (some_file.md), ja sisestage kÀsk:
user@hostname:~$ md2pdf some_file.mdTulemuseks peaks olema kaustas fail some_file.md.pdf.
KokkuvÔte
Kirjeldatud meetodi pÔhjal on vÔimalik luua igasuguseid PDF-failide stiile ning samuti saab teisendada muid formaate, mis on Pandoc'i poolt toetatud. Loodan, et see juhend on kunagi kasulik 3,5 inimesele.
Allikas: habr.com
