Eessõna
Markdown on suurepärane viis lühikese ja mõnikord üsna suure teksti kirjutamiseks lihtsa kaldkirjas ja paksus vormingus. Markdown sobib hästi ka lähtekoodiga artiklite kirjutamiseks. Kuid mõnikord tahad kaotamatult tantsida tamburiiniga, et see tavaliseks, hästi vormistatud PDF-failiks ületada ja et teisendamisel ei tekiks probleeme, mis näiteks mul oli - vene keeles ei saa kirjutada lähtekoodi kommentaare, liiga pikki ridu üle ei kanta, vaid lõigatud ja muud väiksemad probleemid. Juhend võimaldab teil muunduri kiiresti seadistada md2pdf saamata aru, kuidas see tegelikult töötab. Enam-vähem automaatse installi skript on allpool vastavas jaotises.
Minu teisendamiseks mõeldud TeX-i näidismall kasutab PSCyr fondipaketti, mis sisaldab Microsofti fontide tuge, nimelt Times New Roman. Diplomile olid sellised nõuded vastavalt GOST-ile. Kui teate, kuidas, saate malli vastavalt oma vajadustele muuta. Minu juhistes peate esmalt TexLive'i PSCyr seadistustega lolli tegema. Seadistamine toimub Linux Mint Mate distributsioonis, teiste distributsioonide jaoks peate võib-olla otsima oma süsteemi standardseid TexLive'i paketi kaustu.
TexLive'i installimine
Loomulikult saate installida ainult selle paketi vajalikud osad. Kuid isiklikult olin ausalt öeldes liiga laisk, et otsida minimaalselt vajalikku töötavat paigaldust. Et kõik toimiks, installige kogu TexLive'i pakett. Seda nimetatakse texlive-täis ja kaalub veidi rohkem kui 2 gigabaiti, pidage seda asjaolu meeles. Täidame käsu:
user@hostname:~$ sudo apt install texlive-full -y
Pärast piisavalt pikka installimist saate jätkata järgmise üksuse juurde.
Pandoci muunduri installimine
Pandoc on Linuxi pakett, mis võimaldab teil mõnda tekstivormingut teisendada. Sellel on palju huvitavaid funktsioone, mille leiate Internetist. Oleme huvitatud ainult võimalusest teisendada allahindlusfail PDF-iks. Kontrollige, kas Pandoc on installitud ja kui mitte, installige see. Näiteks nii:
user@hostname:~$ dpkg -s pandoc
Kui väljund ütleb, et see pole installitud, installige:
user@hostname:~$ sudo apt install pandoc -y
PSCyr paketi installimine TexLive'i jaoks
Kõigepealt peate alla laadima PSCyr. Praegu on see siin veel saadaval
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
Järgmisena uurige, kus asub kohalik kataloog texmf. Täidame käsu:
user@hostname:~$ kpsewhich -expand-var='$TEXMFLOCAL'
Tõenäoliselt on teil see kataloog - /usr/local/share/texmf/ja siis teeme:
user@hostname:~$ sudo cp -R ./PSCyr/* /usr/local/share/texmf/
Noh, või te ei saa viitsida ja käivitada käsk, mis kopeerib kausta texmf kus iganes ta on:
user@hostname:~$ sudo cp -R ./PSCyr/* $(kpsewhich -expand-var='$TEXMFLOCAL')
Installitud PSCyr-fondid, ühendage TexLive'iga:
user@hostname:~$ sudo texhash
user@hostname:~$ updmap --enable Map=pscyr.map
user@hostname:~$ sudo mktexlsr
LaTeX-i mall md2pdf-i teisendamiseks
Ma ei kirjelda täpselt, kuidas see mall on konfigureeritud, ja annan selle lihtsalt spoileri alla ilma suurema selgituseta. Piisab, kui öelda, et see on hästi konfigureeritud, vähemalt selles osas, kuidas ta käsitleb palju lähtekoodi sisaldavaid tekste. Kui teid ei rahulda taande suurus, reavahe, jaotiste ja alajaotiste nummerdamatus, siis minu meelest on Internetist üsna lihtne googeldada küsimus “kuidas seda teha lateksis ...” ja siis sinu vajadus. Kui see pole üldse selge, kirjutage kommentaaridesse, proovin süveneda enda 4 aasta tagustesse seadistustesse ja kirjeldada, milline malli rida mille eest vastutab. Seniks panen kirja, kuidas ma seda oma arvutis tegin ja võite seda ise korrata või muuta.
Looge fail mall.tex kataloogis /usr/share/texlive/:
user@hostname:~$ sudo touch /usr/share/texlive/template.tex
Andke sellele lugemisõigus:
user@hostname:~$ sudo chmod 444 /usr/share/texlive/template.tex
avage see juure all ja kleepige sellesse alloleva spoileri alla peidetud sisu:
user@hostname:~$ sudo nano /usr/share/texlive/template.tex
Malli 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}
Faili salvestamine /usr/share/texlive/template.tex ja kirjutage skript, mis teisendab Makrdowni faili PDF-iks, luues samas kaustas faili nimega Markdown fail eesliitega .pdf, st pärast teisendamist failinimi.md kuvatakse kaustas. failinimi.md.pdf. Kutsume skripti md2pdf ja pane teele / usr / bin. Täitkem käsud järjekorras:
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
4. rida sisaldab tegelikult teisenduskäsku. pööra tähelepanu --from=markdown_github. Markdowni GitHubi versioon ühildub tagasi originaalse Markdowniga, nii et kui teie tekst on sellesse kirjutatud, ei pea te muretsema. Kui teie MD-fail on kirjutatud kindlas Markdowni dialektis, lugege Pandoci juhendit (man pandoc
), veenduge, et see teie rakendamist toetaks, ja kohandage /usr/bin/md2pdf kui vajalik.
Skript enam-vähem automaatseks installimiseks
Kui te ei soovi üldse midagi seadistada ja teil on Ubuntu-laadne distributsioon, võite proovida luua skripti, mille sisu on peidetud spoileri alla ja tõenäoliselt installitakse kõik ise, ainus asi on kopeerida ülaloleva spoileri alla postitatud TeX-i mall sinna, kuhu vajate. Avage terminal ja käivitage:
user@hostname:~$ cd
user@hostname:~$ touch installmd2pdf.sh
Seejärel täitke see järgmise sisuga:
Skripti $HOME/installmd2pdf.sh sisu
#!/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
Käivitage see käsuga:
user@hostname:~$ sudo bash $HOME/installmd2pdf.sh
Ära seda unusta /usr/share/texlive/template.tex tuleb täita vastavalt jaotisele "LaTeX-i mall md2pdf-i teisendamiseks" sisu.
Kasutades md2pdf
Lihtsalt avage kaust Markdowni failiga (mingi_fail.md) terminalis ja käivitage käsk:
user@hostname:~$ md2pdf some_file.md
Selle tulemusena ilmub kausta fail mingi_fail.md.pdf.
Järeldus
Kirjeldatud meetodi põhjal saate koostada mis tahes stiilis PDF-faile, samuti saate md asemel teisendada muid vorminguid, mis tahes Pandoci toetatud vorminguid. Julgen loota, et ühel päeval on see õpetus kasulik 3 ja poolele inimesele.
Allikas: www.habr.com