EessÔna
Markdown on suurepĂ€rane viis lĂŒhikese artikli kirjutamiseks, aga mĂ”nikord ka piisavalt mahuka teksti koostamiseks lihtsa vormindamisega, mis sisaldab kaldkirja ja rasvaseid fonte. Markdown sobib ka artiklite kirjutamiseks koos allikakoodiga. Kuid vahel on soov ilma kaotusteta ning keerutamiseta see tavapĂ€rasesse, hĂ€sti vormindatud PDF-faili ĂŒle kanda, et vĂ€ltida konversiooniga seotud probleeme, nagu olid mul â kommentaarides allikakoodis ei saa vene keeles kirjutada, liiga pikad read ei murru, vaid lĂ”igatakse Ă€ra, ja muid vĂ€ikseid probleeme. Juhend vĂ”imaldab kiirelt seadistada konverteri md2pdf mitte eriti sĂŒvenedes, kuidas see töötab. Skript enam-vĂ€hem automaatseks installimiseks on allolevas vastavas osas.
Minu nĂ€ide TeX-i malli konversiooniks kasutab PSCyr pakkumist, mis sisaldab Microsofti fontide tuge, sealhulgas Times New Roman. Sellised nĂ”uded diplomile GOST-i jĂ€rgi olid. Kui oskate, vĂ”ite mallid oma vajadustele kohandada. Minu juhendis tuleb esmalt tegutseda PSCyr seadistamisega TexLive'is. Seadistamine toimub Linux Mint Mate'i distributsioonis, teiste distributsioonide puhul tuleb vĂ”ib-olla googeldada TexLive'i paketi standardkaustasid teie sĂŒsteemi jaoks.
TexLive'i installimine
Muidugi on vÔimalik installida ainult vajalikud osad sellest paketist. Kuid isiklikult mul lihtsalt ei olnud meelt otsida minimaalset vajalikku tööinstallatsiooni. Et kÔik töö kindlalt toimiks, installime kogu TexLive'i pakketi. See nimetatakse texlive-full ja kaalub veidi rohkem kui 2 gigabaiti, pidage seda silmas. TÀidame kÀsu:
user@hostname:~$ sudo apt install texlive-full -yPÀrast piisavalt pikka installimist saame minna jÀrgmisesse punkti.
Pandoc'i konverteri installimine
Pandoc â Linuxi paket, mis vĂ”imaldab teisendada teatud tekstivormingud teistesse. Sellel on palju huvitavaid funktsioone, millega saate ise veebis tutvuda. Meid huvitab vaid markdown-faili teisendamine PDF-iks. Kontrollime, kas Pandoc on juba 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 -yPaketi PSCyr installimine TexLive'ile
Esmalt tuleb alla laadida PSCyr. Praegu on see endiselt saadaval sellelt , kui artikli lugemise hetkel see mingil pÔhjusel ei ole saadaval, Àrge heitke meelt, selle leidmine koos installatsioonijuhendiga ei ole keeruline, lihtsalt otsige Googlest midagi sellist nagu «PsCyr texlive installimine». Kui see on saadaval, on teil lihtsam, laadige alla ja eeldame, et olete arhivi oma kodukausta vÀlja pakkunud, seega nÀeb tee kausta, mis sisaldab arhivit, vÀlja nagu ~/PSCyr. Siis avame Terminali ja jÀrgemööda tÀidame 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.mapJÀtkame uurimist, kus asub kohalik 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 lihtsalt tÀita kÀsu, mis kopeerib sinna, texmf kus iganes see ka poleks:
user@hostname:~$ sudo cp -R ./PSCyr/* $(kpsewhich -expand-var='$TEXMFLOCAL')PSCyr font on paigaldatud, ĂŒ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 toon selle lihtsalt spoilerite alla koos vĂ€heste selgitustega. Piisab, kui öelda, et see on hĂ€sti seadistatud, vĂ€hemalt kuidas see töötleb tekste, kus on palju algkoodi. Kui teid ei rahulda vahede suurus, rea kĂ”rgused, jaotiste ja alajaotiste numbri puudumine, siis minu arvates on piisavalt lihtne otsida internetist kĂŒsimust "kuidas Latexis teha..." ja edasi teie vajadus. Kui on tĂ€iesti arusaamatu, kirjutage kommentaaridesse, pĂŒĂŒan sĂŒveneda oma nelja aasta tagustesse seadistustesse ja selgitada, milline mallireaktsiooni rida mille jaoks vastutab. Praegu kirjeldan, kuidas tegin seda oma arvutis, ja te vĂ”ite vabalt korrata vĂ”i kohandada seda enda jaoks.
Loome faili template.tex kaustas /usr/share/texlive/:
user@hostname:~$ sudo touch /usr/share/texlive/template.texAnname sellele lugemisÔigused:
user@hostname:~$ sudo chmod 444 /usr/share/texlive/template.texAva root Ôigustes ja kleebi sinna sisu, mis on peidetud allpool spoileris:
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-ks, luues samasse kausta faili, mille nimi algab Markdown failiga ja millel on lÔppu .pdf, st pÀrast konversiooni filename.md kaustas ilmub filename.md.pdf. Nimetame skripti md2pdf ja paneme selle teele /usr/bin. Sooritame jÀrgnevalt 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/md2pdf4. reatel on toodud konversioonikĂ€su. Pange tĂ€hele âfrom=markdown_github. GitHub'i Markdowni versioon on tagasisuunas ĂŒhilduv originaalse Markdowniga, seega kui teie tekst on kirjutatud sellel, ei ole pĂ”hjust muretseda. Kui teie MD-fail on kirjutatud spetsiifilises Markdowni murdes, siis lugege Pandoc'i kĂ€siraamatut (man pandoc), veenduge, et teie elluviimine on toetatud, ja vajadusel kohandage /usr/bin/md2pdf .
Skript suhteliselt automaatseks paigaldamiseks
Kui te ei soovi ĂŒldse seadistustega vaeva nĂ€ha ja kasutate Ubuntu-laadset distributsiooni, vĂ”ite proovida luua skripti, mille sisu on peidetud spoilerisse, ja tĂ”enĂ€oliselt paigaldatakse kĂ”ik automaatselt. Ainult TeX-mall, mis on ĂŒlalpool spoileris, peate ise vajalikku kohta kopeerima. Avage Terminal ja kĂ€ivitage:
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Àivitage see kÀsklusega:
user@hostname:~$ sudo bash $HOME/installmd2pdf.shĂrge unustage, et /usr/share/texlive/template.tex tuleb tĂ€ita peatĂŒkis âLaTeX mall md2pdf konverteerimiseksâ mĂ€rgitud sisuga.
md2pdf kasutamine
Lihtsalt avage Markdown-faili kaust (some_file.md) Terminalis ja kÀivitage kÀsk:
user@hostname:~$ md2pdf some_file.mdTulemusena ilmub kausta fail some_file.md.pdf.
KokkuvÔte
Kirjeldatud meetodil on vÔimalik luua igasuguseid PDF-failide stiile, samuti saab teisendada muid formaate, mis on Pandoci poolt toetatud. Loodan, et see juhend on kord kolmel ja poolel inimesele kasulik.
Allikas: habr.com
