muqaddima
Markdown - oddiy kursiv va qalin formatlash bilan qisqa maqola va ba'zan juda ko'p matn yozishning ajoyib usuli. Markdown manba kodi bilan maqolalar yozish uchun ham yaxshi. Ammo ba'zida siz bema'nilik bilan raqsga tushishni xohlaysiz, uni oddiy, yaxshi shakllangan PDF-faylga o'tkazish uchun daf bilan raqsga tushishni xohlaysiz va konvertatsiya paytida hech qanday muammo bo'lmasligi uchun, masalan, menda bor edi - siz rus tilida yoza olmaysiz. manba kodining sharhlari, juda uzun qatorlar o'tkazilmaydi, lekin kesilgan va boshqa kichik muammolar. Ko'rsatma sizga konvertorni tezda sozlash imkonini beradi md2pdf u qanday ishlashini tushunmasdan. Ko'proq yoki kamroq avtomatik o'rnatish uchun skript tegishli bo'limda quyida keltirilgan.
Konvertatsiya qilish uchun mening namunaviy TeX shablonim PSCyr shrift paketidan foydalanadi, u Microsoft shriftlarini qo'llab-quvvatlaydi, xususan Times New Roman. GOST bo'yicha diplom uchun bunday talablar mavjud edi. Agar qanday qilishni bilsangiz, shablonni ehtiyojlaringizga mos ravishda o'zgartirishingiz mumkin. Mening ko'rsatmalarimga ko'ra, siz avval TexLive-da PSCyr sozlamalari bilan aldashingiz kerak bo'ladi. O'rnatish Linux Mint Mate distributivida amalga oshiriladi, boshqa tarqatishlar uchun tizimingiz uchun standart TexLive paket papkalarini Google orqali qidirishingiz kerak bo'lishi mumkin.
TexLive o'rnatilmoqda
Albatta, siz ushbu paketning faqat kerakli qismlarini o'rnatishingiz mumkin. Lekin shaxsan men minimal zarur ish o'rnatishni izlashga dangasa bo'ldim. Hammasi ishlayotganiga ishonch hosil qilish uchun butun TexLive paketini o'rnating. U deyiladi texlive-to'liq va og'irligi 2 gigabaytdan bir oz ko'proq, bu haqiqatni yodda tuting. Biz buyruqni bajaramiz:
user@hostname:~$ sudo apt install texlive-full -y
Etarlicha uzoq o'rnatishdan so'ng, keyingi elementga o'tishingiz mumkin.
Pandoc konvertorini o'rnatish
Pandoc - bu ba'zi matn formatlarini boshqalarga aylantirish imkonini beruvchi Linux paketidir. U Internetda o'zingizni topishingiz mumkin bo'lgan juda ko'p qiziqarli xususiyatlarga ega. Biz faqat markdown faylini PDF-ga aylantirish imkoniyati bilan qiziqamiz. Pandoc o'rnatilgan yoki yo'qligini tekshiring, agar bo'lmasa, uni o'rnating. Masalan, shunday:
user@hostname:~$ dpkg -s pandoc
Agar chiqish o'rnatilmaganligini aytsa, o'rnating:
user@hostname:~$ sudo apt install pandoc -y
TexLive uchun PSCyr paketini o'rnatish
Avval PSCyr-ni yuklab olishingiz kerak. Hozircha u shu yerda mavjud
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
Keyinchalik, mahalliy katalog qaerda joylashganligini bilib oling texmf. Biz buyruqni bajaramiz:
user@hostname:~$ kpsewhich -expand-var='$TEXMFLOCAL'
Katta ehtimol bilan sizda ushbu katalog mavjud - /usr/local/share/texmf/, va keyin biz:
user@hostname:~$ sudo cp -R ./PSCyr/* /usr/local/share/texmf/
Xo'sh, yoki siz bezovta qila olmaysiz va papkaga nusxa ko'chiradigan buyruqni bajara olmaysiz texmf u qayerda bo'lmasin:
user@hostname:~$ sudo cp -R ./PSCyr/* $(kpsewhich -expand-var='$TEXMFLOCAL')
PSCyr shriftlari o'rnatilgan, TexLive-ga ulaning:
user@hostname:~$ sudo texhash
user@hostname:~$ updmap --enable Map=pscyr.map
user@hostname:~$ sudo mktexlsr
Md2pdf konvertatsiya qilish uchun LaTeX shabloni
Men ushbu shablon qanday sozlanganligini aniq tasvirlamayman va uni spoyler ostida ko'p tushuntirishsiz beraman. Hech bo'lmaganda juda ko'p manba kodi bo'lgan matnlarni qanday boshqarishi nuqtai nazaridan, yaxshi tuzilganligini aytish kifoya. Agar siz chekinishlar o'lchami, qatorlar oralig'i, bo'limlar va bo'limlarning raqamlanmaganligidan qoniqmasangiz, menimcha, Internetda "Lateksda qanday qilish kerak ..." degan savolni google-da topish juda oson va keyin sizning ehtiyojingiz. Agar bu umuman tushunarli bo'lmasa, sharhlarda yozing, men 4 yil oldin o'z sozlamalarimni o'rganishga harakat qilaman va shablonning qaysi qatori nima uchun javobgar ekanligini tasvirlab beraman. Ayni paytda, men buni shaxsiy kompyuterimda qanday qilganimni yozaman va siz buni o'zingiz uchun takrorlashingiz yoki o'zgartirishingiz mumkin.
Fayl yarating template.tex katalogda /usr/share/texlive/:
user@hostname:~$ sudo touch /usr/share/texlive/template.tex
Unga o'qishga ruxsat bering:
user@hostname:~$ sudo chmod 444 /usr/share/texlive/template.tex
uni ildiz ostida oching va unga quyidagi spoyler ostida yashiringan tarkibni joylashtiring:
user@hostname:~$ sudo nano /usr/share/texlive/template.tex
Shablon tarkibi /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}
Faylni saqlash /usr/share/texlive/template.tex va Makrdown faylini PDF-ga o'zgartiradigan skriptni yozing, xuddi shu papkada .pdf prefiksi bilan Markdown fayli deb nomlangan faylni yarating, ya'ni konversiyadan keyin. filename.md papkada paydo bo'ladi. fayl nomi.md.pdf. Keling, skriptni chaqiraylik md2pdf va yo'lga qo'ying / usr / bin. Buyruqlarni ketma-ket bajaramiz:
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-qatorda aslida aylantirish buyrug'i mavjud. e'tibor bering --from=markdown_github. Markdown-ning GitHub versiyasi asl Markdown bilan orqaga qarab mos keladi, shuning uchun agar matn unda yozilgan bo'lsa, tashvishlanishingizga hojat yo'q. Agar MD faylingiz ma'lum bir Markdown lahjasida yozilgan bo'lsa, Pandoc qo'llanmasini o'qing (man pandoc
), uni amalga oshirishingiz qo'llab-quvvatlanishiga ishonch hosil qiling va o'zgartiring /usr/bin/md2pdf zarur bo'lsa.
Ko'proq yoki kamroq avtomatik o'rnatish uchun skript
Agar siz haqiqatan ham hech narsani sozlashni xohlamasangiz va sizda Ubuntu-ga o'xshash tarqatish bo'lsa, siz spoyler ostida yashirin tarkibga ega skript yaratishga urinib ko'rishingiz mumkin va hamma narsa o'zini o'zi o'rnatishi mumkin, yagona narsa - nusxalash. TeX shablonini kerak bo'lganda yuqoridagi spoyler ostida joylashtiriladi. Terminalni oching va ishga tushiring:
user@hostname:~$ cd
user@hostname:~$ touch installmd2pdf.sh
Keyin uni quyidagi tarkib bilan to'ldiring:
$HOME/installmd2pdf.sh skriptining mazmuni
#!/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
Buyruq bilan ishga tushiring:
user@hostname:~$ sudo bash $HOME/installmd2pdf.sh
Buni unutmang /usr/share/texlive/template.tex bo'limida ko'rsatilganidek to'ldirilishi kerak "Md2pdf konvertatsiya qilish uchun LaTeX shabloniΒ» mazmuni.
Md2pdf dan foydalanish
Faqat Markdown fayli bilan jildni oching (some_file.md) Terminalda va buyruqni bajaring:
user@hostname:~$ md2pdf some_file.md
Natijada, papkada fayl paydo bo'ladi some_file.md.pdf.
xulosa
Ta'riflangan usulga asoslanib, siz PDF-fayllarning istalgan uslubini yaratishingiz mumkin, shuningdek, Pandoc tomonidan qo'llab-quvvatlanadigan md o'rniga boshqa formatlarni ham o'zgartirishingiz mumkin. Bir kun kelib bu ko'rsatma 3 yarim kishiga foydali bo'ladi deb umid qilishga jur'at etaman.
Manba: www.habr.com