Parathënie
Markdown Ă«shtĂ« njĂ« mĂ«nyrĂ« e shkĂ«lqyer pĂ«r tĂ« shkruar njĂ« artikull tĂ« vogĂ«l, dhe ndonjĂ«herĂ« edhe njĂ« tekst mjaft tĂ« gjerĂ«, me formatting tĂ« thjeshtĂ« si italik dhe bold. Po ashtu, Markdown Ă«shtĂ« i mirĂ« pĂ«r shkruarjen e artikujve qĂ« pĂ«rfshijnĂ« kodin burimor. Por ndonjĂ«herĂ« dĂ«shiron ta konvertosh atĂ« nĂ« njĂ« skedar PDF tĂ« zakonshĂ«m dhe tĂ« bukur pa humbje, pa probleme gjatĂ« konvertimit, siç ndodhi me mua â nuk mund tĂ« shkruaj nĂ« rusisht nĂ« komentet e kodit burimor, rreshtat e gjatĂ« nuk ndahen, por priten dhe probleme tĂ« tjera tĂ« vogla. UdhĂ«zimi do tĂ« lejojĂ« tĂ« konfigurosh shpejt konvertuesin. md2pdf pa u shqetĂ«suar shumĂ« se si funksionon. Skripti pĂ«r njĂ« instalim mĂ« automatik mĂ« poshtĂ« nĂ« seksionin pĂ«rkatĂ«s.
Shembulli im i shabllonit TeX për konvertim përdor paketën e fonteve PSCyr, e cila përfshin mbështetje për fontet Microsoft, sidomos Times New Roman. Këto ishin kërkesat për diplomën sipas standardeve GOST. Nëse dini, mund ta modifikoni modelin sipas nevojave tuaja. Në udhëzimin tim, do të duhet të bëni disa konfigurime me PSCyr në TexLive. Konfigurimi bëhet në distribucionin Linux Mint Mate; për distribuzione të tjera, ndoshta do të duhet të kërkoni për dosjet standart të paketës TexLive për sistemin tuaj.
Instalimi i TexLive
Natyrisht, mund të instaloni vetëm pjesët e nevojshme të këtij pakete. Por personalisht, mu duk e mërzitshme të kërkoja instalimin minimalisht të nevojshëm për punë. Për të siguruar që gjithçka të funksionojë saktësisht, instaloni të gjithë paketën TexLive. Ajo quhet texlive-full dhe peshon pak më shumë se 2 gigabajt, mbani mend këtë fakt. Ekzekutoni komandën:
user@hostname:~$ sudo apt install texlive-full -yPas një instalimi mjaft të gjatë, mund të kaloni te pika tjetër.
Instalimi i konvertuesit Pandoc
Pandoc â njĂ« paketĂ« Linux qĂ« mundĂ«son konvertimin e disa formateve tĂ« tekstit nĂ« formate tĂ« tjera. Ka shumĂ« mundĂ«si interesante, me tĂ« cilat mund tĂ« informoheni vetĂ« nĂ« internet. Ne jemi tĂ« interesuar vetĂ«m pĂ«r mundĂ«sinĂ« e kalimit tĂ« njĂ« skedari markdown nĂ« PDF. Le tĂ« verifikojmĂ« nĂ«se Pandoc Ă«shtĂ« i instaluar dhe nĂ«se nuk Ă«shtĂ«, ta instalojmĂ« atĂ«. PĂ«r shembull kĂ«shtu:
user@hostname:~$ dpkg -s pandocNĂ«se nĂ« daljen Ă«shtĂ« shkruar se nuk Ă«shtĂ« i instaluar â instalojmĂ«:
user@hostname:~$ sudo apt install pandoc -yInstalimi i paketës PSCyr për TexLive
Për të filluar, duhet të shkarkoni PSCyr. Aktualisht, ai është ende i disponueshëm në këtë , nëse kur i lexoni këto rreshta ajo për një arsye të caktuar nuk është e disponueshme, mos u shqetësoni, nuk është e vështirë ta gjeni atë së bashku me udhëzimin për instalim, duke kërkuar në Google diçka si "Instalimi i PsCyr texlive". Nëse është e disponueshme, atëherë ju është më e lehtë, shkarkoni dhe le të supozojmë se keni nxjerrë arkivin në dosjen tuaj të shtëpisë dhe kështu rruga për dosjen që ndodhet në arkiv duket si ~/PSCyr. Tani hyni në Terminal dhe ekzekutoni komandat një pas një:
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.mapMë pas do të mësojmë se ku ndodhet katalogu lokal texmf. Ekzekutojmë komandën:
user@hostname:~$ kpsewhich -expand-var='$TEXMFLOCAL'ShumĂ« mund tĂ« jetĂ« qĂ« ky katalog juaj Ă«shtĂ« â /usr/local/share/texmf/, dhe atĂ«herĂ« ne ekzekutojmĂ«:
user@hostname:~$ sudo cp -R ./PSCyr/* /usr/local/share/texmf/Ose mund të mos e komplikoni dhe të ekzekutoni komandën që do të kopjojë në dosjen texmf pavarësisht se ku ndodhet ajo:
user@hostname:~$ sudo cp -R ./PSCyr/* $(kpsewhich -expand-var='$TEXMFLOCAL')Fontet PSCyr janë instaluar, i lidhim në TexLive:
user@hostname:~$ sudo texhash
user@hostname:~$ updmap --enable Map=pscyr.map
user@hostname:~$ sudo mktexlsrModeli LaTeX për konvertimin md2pdf
Nuk do ta përshkruaj se si është konfigurimi i këtij modeli, dhe do ta ofroj atë nën spoler pa shumë shpjegime. Mjafton të themi se është konfiguruar mirë, të paktën sa i përket përpunimit të teksteve me shumë kod burimi. Nëse nuk jeni të kënaqur me madhësitë e tërheqjes, intervalet midis rreshtave, mungesën e numrave të seksioneve dhe nënseksioneve, mendoj se është mjaft e lehtë të kërkoni në internet pyetjen "si të bëj në LaTeX..." dhe pastaj do të jetë nevoja juaj. Nëse është krejtësisht e paqartë, shkruani në komentet, do të përpiqem të kujtoj konfigurimet e mia 4-vjeçare dhe të shpjegoj çfarë ka çdo rresht i modelit. Deri atëherë, do ta shpjegoj si kam bërë unë në PC-në time, dhe ju jeni të lirë ta përsërisni ose ta modifikoni për veten tuaj.
Krijoni skedarin template.tex në katalog /usr/share/texlive/:
user@hostname:~$ sudo touch /usr/share/texlive/template.texCaktoni të drejtat e leximit:
user@hostname:~$ sudo chmod 444 /usr/share/texlive/template.texhapeni me rrënjën dhe ngjisni në të përmbajtjen e fshihet nën spolerin më poshtë:
user@hostname:~$ sudo nano /usr/share/texlive/template.texPërmbajtja e modelit /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}Ruajmë skedarin /usr/share/texlive/template.tex dhe shkruajmë një skript që do të konvertojë skedarin Markdown në PDF, duke krijuar në të njëjtin direktor skedarin me emrin e skedarit Markdown me prefix .pdf, domethënë pas konvertimit filename.md në direktor do të shfaqet filename.md.pdf. Do ta quajmë skriptin md2pdf dhe do ta vendosim në rrugën /usr/bin. Do të ekzekutojmë komandat një pas një:
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/md2pdfNĂ« rreshtin e 4-tĂ«, nĂ« fakt, Ă«shtĂ« e nxjerrĂ« komanda e konvertimit. Vini re nĂ« âfrom=markdown_github. Versioni GitHub i Markdown Ă«shtĂ« plotĂ«sisht i pĂ«rshtatshĂ«m me Markdown origjinal, kĂ«shtu qĂ« nĂ«se teksti juaj Ă«shtĂ« shkruar me tĂ«, nuk duhet tĂ« shqetĂ«soheni. NĂ«se, nga ana tjetĂ«r, skedari juaj MD Ă«shtĂ« shkruar nĂ« njĂ« dialekt specifik tĂ« Markdown, atĂ«herĂ« shkarkoni manualin pĂ«r Pandoc (man pandoc), sigurohuni se implementimi juaj mbĂ«shtetet nga ai, dhe modifikoni /usr/bin/md2pdf nĂ«se Ă«shtĂ« e nevojshme.
Skripti për një instalim më-më pak automatik
Nëse nuk keni shumë dëshirë të konfiguroni diçka fare dhe keni një distribucion të ngjashëm me Ubuntu, mund të provoni të krijoni një skritp me përmbajtjen e fshehur nën spoiler, dhe në të gjitha mundësitë gjithçka do të instalohet automatikisht. E vetmja gjë, duhet të kopjoni TeX-templates, të publikuara më lart, në vendin e duhur. Hapni Terminalin dhe ekzekutoni:
user@hostname:~$ cd
user@hostname:~$ touch installmd2pdf.shMë pas, plotësoni atë me përmbajtjen e tillë:
Përmbajtja e skritpit $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/md2pdfEksploroni atë me komandën:
user@hostname:~$ sudo bash $HOME/installmd2pdf.shMos harroni se /usr/share/texlive/template.tex duhet të plotësoni me përmbajtjen e treguar në seksionin "Modeli LaTeX për konvertimin md2pdf".
Përdorimi i md2pdf
Thjesht hapni dosjen me skedarin Markdown (some_file.md) në Terminal dhe ekzekutoni komandën:
user@hostname:~$ md2pdf some_file.mdSi rezultat, në dosje do të shfaqet një skedar some_file.md.pdf.
Përfundimi
Baza e metodĂ«s sĂ« pĂ«rshkruar mund tĂ« ndĂ«rtohet sipas çdo stili tĂ« skedave PDF, gjithashtu mund tĂ« konvertoni nĂ« vend tĂ« md formate tĂ« tjera, tĂ« gjitha tĂ« mbĂ«shtetura nga Pandoc. Shpresoj qĂ« njĂ« ditĂ« kjo udhĂ«zues do tâu vlejĂ« 3.5 njerĂ«zve.
Burimi: habr.com
