priekÅ”vÄrds
Markdown ir lielisks veids, kÄ uzrakstÄ«t Ä«su rakstu un dažreiz diezgan daudz teksta, izmantojot vienkÄrÅ”u slÄ«prakstu un treknrakstu. Markdown ir piemÄrots arÄ« rakstu rakstÄ«Å”anai ar iekļautu pirmkodu. Bet dažreiz gribas nezaudÄt, dejot ar tamburÄ«nu, lai to apdzÄ«tu par parastu, labi noformÄtu PDF failu, un lai konvertÄÅ”anas laikÄ nerastos problÄmas, kas, piemÄram, man bija - krieviski rakstÄ«t nevar. pirmkoda komentÄri, pÄrÄk garas rindas netiek pÄrsÅ«tÄ«tas, bet izgrieztas un citas nelielas problÄmas. Instrukcija ļaus Ätri iestatÄ«t pÄrveidotÄju md2pdf Ä«sti nesaprotot, kÄ tas darbojas. VairÄk vai mazÄk automÄtiskas instalÄÅ”anas skripts ir norÄdÄ«ts zemÄk attiecÄ«gajÄ sadaļÄ.
Mana parauga TeX veidne konvertÄÅ”anai izmanto PSCyr fontu pakotni, kas ietver atbalstu Microsoft fontiem, proti Times New Roman. Å Ädas prasÄ«bas diplomam bija saskaÅÄ ar GOST. Ja zinÄt, kÄ to izdarÄ«t, varat modificÄt veidni atbilstoÅ”i savÄm vajadzÄ«bÄm. ManÄs instrukcijÄs jums vispirms bÅ«s jÄmÄnÄs ar PSCyr iestatÄ«jumu pakalpojumÄ TexLive. IestatÄ«Å”ana tiek veikta Linux Mint Mate izplatÄ«Å”anÄ, citiem izplatÄ«jumiem, iespÄjams, bÅ«s jÄmeklÄ Google standarta TexLive pakotÅu mapes savai sistÄmai.
TexLive instalÄÅ”ana
Protams, jÅ«s varat instalÄt tikai nepiecieÅ”amÄs Ŕīs pakotnes daļas. Bet personÄ«gi man, atklÄti sakot, bija pÄrÄk slinks, lai meklÄtu minimÄli nepiecieÅ”amo darba instalÄciju. Lai pÄrliecinÄtos, ka viss darbojas, instalÄjiet visu TexLive pakotni. Tas tiek saukts texlive-pilns un sver nedaudz vairÄk par 2 gigabaitiem, paturiet Å”o faktu prÄtÄ. MÄs izpildÄm komandu:
user@hostname:~$ sudo apt install texlive-full -y
PÄc pietiekami ilgas instalÄÅ”anas varat pÄriet uz nÄkamo vienumu.
Pandoc Converter instalÄÅ”ana
Pandoc ir Linux pakotne, kas ļauj konvertÄt dažus teksta formÄtus citos. Tam ir daudz interesantu funkciju, kuras varat atrast internetÄ. MÅ«s interesÄ tikai iespÄja konvertÄt atzÄ«mes failu uz PDF. PÄrbaudiet, vai Pandoc ir instalÄts, un, ja nÄ, instalÄjiet to. PiemÄram, Å”Ädi:
user@hostname:~$ dpkg -s pandoc
Ja izvade saka, ka tÄ nav instalÄta, instalÄjiet:
user@hostname:~$ sudo apt install pandoc -y
PSCyr pakotnes instalÄÅ”ana pakalpojumam TexLive
Vispirms jums ir nepiecieÅ”ams lejupielÄdÄt PSCyr. PagaidÄm tas joprojÄm ir pieejams Å”eit
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
PÄc tam uzziniet, kur atrodas vietÄjais direktorijs tekstmf. MÄs izpildÄm komandu:
user@hostname:~$ kpsewhich -expand-var='$TEXMFLOCAL'
VisticamÄk, jums ir Å”is direktorijs - /usr/local/share/texmf/, un tad mÄs darÄm:
user@hostname:~$ sudo cp -R ./PSCyr/* /usr/local/share/texmf/
Nu, vai arÄ« jÅ«s nevarat apnikt un palaist komandu, kas tiks kopÄta mapÄ tekstmf lai kur viÅa atrastos:
user@hostname:~$ sudo cp -R ./PSCyr/* $(kpsewhich -expand-var='$TEXMFLOCAL')
InstalÄti PSCyr fonti, izveidojiet savienojumu ar TexLive:
user@hostname:~$ sudo texhash
user@hostname:~$ updmap --enable Map=pscyr.map
user@hostname:~$ sudo mktexlsr
LaTeX veidne md2pdf konvertÄÅ”anai
Es neaprakstÄ«Å”u, kÄ tieÅ”i Ŕī veidne ir konfigurÄta, un vienkÄrÅ”i norÄdÄ«Å”u to zem spoilera bez Ä«paÅ”iem paskaidrojumiem. Pietiek pateikt, ka tas ir labi konfigurÄts, vismaz attiecÄ«bÄ uz to, kÄ tas apstrÄdÄ tekstus ar lielu avota kodu. Ja jÅ«s neapmierina atkÄpju lielums, atstarpes starp rindÄm, sadaļu un apakÅ”sadaļu numerÄcijas trÅ«kums, tad, manuprÄt, ir diezgan viegli google meklÄt internetÄ jautÄjumu ākÄ to izdarÄ«t lateksÄ ...ā un tad tava vajadzÄ«ba. Ja vispÄr nav skaidrs, rakstiet komentÄros, es mÄÄ£inÄÅ”u iedziļinÄties savos iestatÄ«jumos pirms 4 gadiem un aprakstÄ«t, kura veidnes rinda par ko ir atbildÄ«ga. TikmÄr es pierakstÄ«Å”u, kÄ es to izdarÄ«ju savÄ datorÄ, un jÅ«s varat to atkÄrtot vai pÄrveidot pats.
Izveidojiet failu veidne.tex katalogÄ /usr/share/texlive/:
user@hostname:~$ sudo touch /usr/share/texlive/template.tex
Dodiet tai lasīŔanas atļaujas:
user@hostname:~$ sudo chmod 444 /usr/share/texlive/template.tex
atveriet to zem saknes un ielÄ«mÄjiet tajÄ saturu, kas paslÄpts zem spoilera:
user@hostname:~$ sudo nano /usr/share/texlive/template.tex
Veidnes saturs /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}
Faila saglabÄÅ”ana /usr/share/texlive/template.tex un uzrakstiet skriptu, kas konvertÄs Makrdown failu uz PDF, tajÄ paÅ”Ä mapÄ izveidojot failu Markdown failu ar prefiksu .pdf, tas ir, pÄc konvertÄÅ”anas faila nosaukums.md parÄdÄ«sies mapÄ. faila nosaukums.md.pdf. Sauksim skriptu md2pdf un likts ceÄ¼Ä / usr / bin. IzpildÄ«sim komandas pÄc kÄrtas:
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. rindÄ faktiski ir konvertÄÅ”anas komanda. pievÄrs uzmanÄ«bu --from=markdown_github. Markdown GitHub versija ir saderÄ«ga ar sÄkotnÄjo Markdown, tÄdÄļ, ja tajÄ ir rakstÄ«ts jÅ«su teksts, jums nav jÄuztraucas. Ja jÅ«su MD fails ir rakstÄ«ts noteiktÄ Markdown dialektÄ, izlasiet Pandoc rokasgrÄmatu (man pandoc
), pÄrliecinieties, vai tas atbalsta jÅ«su ievieÅ”anu, un pielÄgojiet to /usr/bin/md2pdf ja nepiecieÅ”ams.
Skripts vairÄk vai mazÄk automÄtiskai instalÄÅ”anai
Ja jÅ«s Ä«sti nevÄlaties vispÄr neko konfigurÄt un jums ir Ubuntu lÄ«dzÄ«ga izplatÄ«Å”ana, varat mÄÄ£inÄt izveidot skriptu ar saturu, kas paslÄpts zem spoilera, un visticamÄk viss instalÄsies pats no sevis, vienÄ«gais ir kopÄt TeX veidni, kas ievietota zem spoilera, kur jums ir nepiecieÅ”ams. Atveriet terminÄli un palaidiet:
user@hostname:~$ cd
user@hostname:~$ touch installmd2pdf.sh
PÄc tam aizpildiet to ar Å”Ädu saturu:
$HOME/installmd2pdf.sh skripta saturs
#!/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
Palaidiet to ar komandu:
user@hostname:~$ sudo bash $HOME/installmd2pdf.sh
Neaizmirstiet to /usr/share/texlive/template.tex jÄaizpilda, kÄ norÄdÄ«ts sadaÄ¼Ä "LaTeX veidne md2pdf konvertÄÅ”anaiĀ» saturs.
Izmantojot md2pdf
VienkÄrÅ”i atveriet mapi ar Markdown failu (some_file.md) terminÄlÄ« un palaidiet komandu:
user@hostname:~$ md2pdf some_file.md
RezultÄtÄ mapÄ parÄdÄ«sies fails some_file.md.pdf.
SecinÄjums
Pamatojoties uz aprakstÄ«to metodi, varat izveidot jebkura stila PDF failus, varat arÄ« konvertÄt citus formÄtus, nevis md, jebkurus, kurus atbalsta Pandoc. UzdroÅ”inos cerÄt, ka kÄdu dienu Ŕī instrukcija noderÄs 3 ar pusi cilvÄkiem.
Avots: www.habr.com