Π“ΠΎΡ‚ΠΎΠ²ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ markdown2pdf с ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ Π·Π° Linux

ΠŸΡ€Π΅Π΄Π³ΠΎΠ²ΠΎΡ€

Markdown Π΅ прСкрасСн Π½Π°Ρ‡ΠΈΠ½ Π·Π° написванС Π½Π° ΠΊΡ€Π°Ρ‚ΠΊΠ° статия, Π° понякога ΠΈ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ обСмист тСкст, с нСслоТСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠ°Ρ‚ΠΎ курсив ΠΈ ΡƒΠ΄Π΅Π±Π΅Π»Π΅Π½ ΡˆΡ€ΠΈΡ„Ρ‚. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Markdown Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π·Π° писанС Π½Π° статии, Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‰ΠΈ ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄. Но понякога искамС Π±Π΅Π· Π·Π°Π³ΡƒΠ±ΠΈ, ΠΈ Π±Π΅Π· услоТнСния Π΄Π° Π³ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°ΠΌΠ΅ Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½, Π΄ΠΎΠ±Ρ€Π΅ ΠΎΡ„ΠΎΡ€ΠΌΠ΅Π½ PDF Ρ„Π°ΠΉΠ», ΠΈ Π·Π° Π΄Π° няма ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡ€ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ, ΠΊΠ°ΠΊΠ²ΠΈΡ‚ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠΌΠ°Ρ… Π°Π· β€” Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС пишС Π½Π° руски Π² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅ Π½Π° изходния ΠΊΠΎΠ΄, Ρ‚Π²ΡŠΡ€Π΄Π΅ Π΄ΡŠΠ»Π³ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π½Π΅ сС прСнасят, Π° сС отрязват ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Π΄Ρ€Π΅Π±Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡΡ‚Π° Ρ‰Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π±ΡŠΡ€Π·ΠΎ Π΄Π° настроитС ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΎΡ€Π° md2pdf Π½Π΅ особСно Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ. Π‘ΠΊΡ€ΠΈΠΏΡ‚ Π·Π° ΠΏΠΎ-Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½Π° инсталация ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ Ρ€Π°Π·Π΄Π΅Π».

ΠœΠΎΡΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ TeX шаблон Π·Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ²Π΅ PSCyr, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Microsoft ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ²Π΅, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Times New Roman. Π’Π°ΠΊΠΈΠ²Π° бяха изискванията Π·Π° Π΄ΠΈΠΏΠ»ΠΎΠΌΠ°Ρ‚Π° ΠΏΠΎ Π“ΠžΠ‘Π’. Ако ΠΌΠΎΠΆΠ΅Ρ‚Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ‚Π΅ шаблона спорСд Π²Π°ΡˆΠΈΡ‚Π΅ Π½ΡƒΠΆΠ΄ΠΈ. Π’ моята инструкция Ρ‰Π΅ сС Π½Π°Π»ΠΎΠΆΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° сС ΠΏΠΎΠΌΠΎΡ€ΠΎΡ‡ΠΈΡ‚Π΅ с настройката Π½Π° PSCyr Π² TexLive. Настройката сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π² дистрибуцията Linux Mint Mate, Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ дистрибуции, ΠΌΠΎΠΆΠ΅ Π±ΠΈ, Ρ‰Π΅ трябва Π΄Π° ΠΏΠΎΡ‚ΡŠΡ€ΡΠΈΡ‚Π΅ стандартнитС ΠΏΠ°ΠΏΠΊΠΈ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° TexLive Π·Π° Π²Π°ΡˆΠ°Ρ‚Π° систСма.

Π˜Π½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ Π½Π° TexLive

Π Π°Π·Π±ΠΈΡ€Π° сС, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° инсталиратС само Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ части ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚. Но Π»ΠΈΡ‡Π½Π°Ρ‚Π° ΠΌΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π΅, Ρ‡Π΅ ΠΌΠ΅ ΠΌΡŠΡ€Π·Π΅ΡˆΠ΅ Π΄Π° Ρ‚ΡŠΡ€ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰Π° инсталация. Π—Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ всичко Π±Π΅Π·ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ, инсталирамС цСлия ΠΏΠ°ΠΊΠ΅Ρ‚ TexLive. НСговото ΠΈΠΌΠ΅ Π΅ texlive-full ΠΈ Ρ‚Π΅ΠΆΠΈ ΠΌΠ°Π»ΠΊΠΎ Π½Π°Π΄ 2 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚Π°, ΠΈΠΌΠ°ΠΉΡ‚Π΅ Ρ‚ΠΎΠ²Π° Π² ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄. ИзпълнявамС ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°:

user@hostname:~$ sudo apt install texlive-full -y

Π‘Π»Π΅Π΄ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ дълга инсталация ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ към слСдващия ΠΏΡƒΠ½ΠΊΡ‚.

Π˜Π½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ Π½Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΎΡ€Π° Pandoc

Pandoc β€” ΠΏΠ°ΠΊΠ΅Ρ‚ Π·Π° Linux, ΠΊΠΎΠΉΡ‚ΠΎ позволява ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° някои тСкстови Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈ. Π’ Π½Π΅Π³ΠΎ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ интСрСсни Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ, с ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС Π·Π°ΠΏΠΎΠ·Π½Π°Π΅Ρ‚Π΅ сами Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. Нас Π½ΠΈ интСрСсува само Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° markdown Ρ„Π°ΠΉΠ» Π² PDF. НСка ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π΄Π°Π»ΠΈ Pandoc Π΅ инсталиран ΠΈ Π°ΠΊΠΎ Π½Π΅ Π΅, Π΄Π° Π³ΠΎ инсталирамС. НапримСр Ρ‚Π°ΠΊΠ°:

user@hostname:~$ dpkg -s pandoc

Ако Π² ΠΈΠ·Ρ…ΠΎΠ΄Π° пишС, Ρ‡Π΅ Π½Π΅ Π΅ инсталиран β€” инсталирамС:

user@hostname:~$ sudo apt install pandoc -y

Π˜Π½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° PSCyr Π·Π° TexLive

ΠŸΡŠΡ€Π²ΠΎ трябва Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΠΌ PSCyr. ВсС ΠΎΡ‰Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π°, Π°ΠΊΠΎ ΠΏΠΎ някаква ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° статията Π½Π΅ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅, Π½Π΅ сС ΠΎΡ‚Ρ‡Π°ΠΉΠ²Π°ΠΉΡ‚Π΅, Π½Π΅ Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° я Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π·Π°Π΅Π΄Π½ΠΎ с инструкциитС Π·Π° инсталиранС, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π² Google Π½Π΅Ρ‰ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° β€žΠ˜Π½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ Π½Π° PsCyr texliveβ€œ. Ако Π΅ Π½Π°Π»ΠΈΡ‡Π½Π°, Π΅ ΠΏΠΎ-лСсно Π·Π° вас, ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Ρ‚Π΅ я ΠΈ Π΄Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Π΅ стС Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π°Π»ΠΈ Π°Ρ€Ρ…ΠΈΠ²Π° Π² Π΄ΠΎΠΌΠ°ΡˆΠ½Π°Ρ‚Π° си ΠΏΠ°ΠΏΠΊΠ°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΏΡŠΡ‚ΡΡ‚ към ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π°, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰Π° сС Π² Π°Ρ€Ρ…ΠΈΠ²Π°, ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°Ρ‚ΠΎ ~\/PSCyr. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΎΡ‚ΠΈΠ²Π°ΠΌΠ΅ Π² Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈ послСдоватСлно изпълнявамС ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅:

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

Π‘Π»Π΅Π΄Π²Π°Ρ‰Π°Ρ‚Π° ΡΡ‚ΡŠΠΏΠΊΠ° Π΅ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ къдС сС Π½Π°ΠΌΠΈΡ€Π° локалният ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ texmf. ИзпълнявамС ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°:

user@hostname:~$ kpsewhich -expand-var='$TEXMFLOCAL'

ВСроятно Ρ‚ΠΎΠ·ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΡ€ΠΈ вас Π΅ β€” /usr/local/share/texmf/, ΠΈ слСд Ρ‚ΠΎΠ²Π° изпълнявамС:

user@hostname:~$ sudo cp -R .\/PSCyr\/* \/usr\/local\/share\/texmf\/

Или ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π΅ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌΠ΅ ΠΈ Π΄Π° изпълним ΠΊΠΎΠΌΠ°Π½Π΄Π°, която Π΄Π° ΠΊΠΎΠΏΠΈΡ€Π° Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° texmf Π±Π΅Π· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ къдС Π΅ тя:

user@hostname:~$ sudo cp -R .\/PSCyr\/* $(kpsewhich -expand-var='$TEXMFLOCAL')

Π¨Ρ€ΠΈΡ„Ρ‚ΠΎΠ²Π΅Ρ‚Π΅ PSCyr са инсталирани, ΡΠ²ΡŠΡ€Π·Π²Π°ΠΌΠ΅ Π³ΠΈ Π² TexLive:

user@hostname:~$ sudo texhash
user@hostname:~$ updmap --enable Map=pscyr.map
user@hostname:~$ sudo mktexlsr

LaTeX шаблон Π·Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ md2pdf

Няма Π΄Π° описвам ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‡Π½ΠΎ Π΅ настроСн Ρ‚ΠΎΠ·ΠΈ шаблон ΠΈ просто Ρ‰Π΅ Π³ΠΎ прСдоставя ΠΏΠΎΠ΄ спойлСра Π±Π΅Π· особСни обяснСния. Π”ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΅ Π΄Π° сС ΠΊΠ°ΠΆΠ΅, Ρ‡Π΅ Π΅ настроСн доста Π΄ΠΎΠ±Ρ€Π΅, ΠΏΠΎΠ½Π΅ Ρ‰ΠΎ сС отнася Π΄ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° тСкстовС с мноТСство ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄. Ако Π½Π΅ стС Π΄ΠΎΠ²ΠΎΠ»Π½ΠΈ ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π° ΠΎΡ‚ΡΡ‚ΡŠΠΏΠΈΡ‚Π΅, мСТдустрочнитС ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΈ, ΠΎΡ‚ΡΡŠΡΡ‚Π²ΠΈΠ΅Ρ‚ΠΎ Π½Π° номСрация Π½Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΈ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅, Π½Π° ΠΌΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅, Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ лСсно Π΄Π° сС Π½Π°ΠΌΠ΅Ρ€ΠΈ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, ΠΊΠ°Ρ‚ΠΎ Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ Π²ΡŠΠΏΡ€ΠΎΡ β€žΠΊΠ°ΠΊ Π² LaTeX Π΄Π° Π½Π°ΠΏΡ€Π°Π²Ρβ€¦β€œ ΠΈ слСд Ρ‚ΠΎΠ²Π° Π²Π°ΡˆΠ°Ρ‚Π° нСобходимост. Ако Π½Π΅Ρ‰ΠΎ Π½Π΅ Π΅ ясно, ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅, Ρ‰Π΅ сС ΠΎΠΏΠΈΡ‚Π°ΠΌ Π΄Π° сС Π·Π°Π΄ΡŠΠ»Π±ΠΎΡ‡Π° Π² собствСнитС си настройки ΠΎΡ‚ΠΏΡ€Π΅Π΄ΠΈ 4 Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΈ Π΄Π° опиша коя Ρ€Π΅Π΄ΠΈΡ†Π° ΠΎΡ‚ шаблона Π·Π° ΠΊΠ°ΠΊΠ²ΠΎ отговаря. ДосСга Ρ‰Π΅ опиша ΠΊΠ°ΠΊ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ… Π°Π· Π½Π° своя PC, Π° Π²ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ‚Π΅ ΠΏΠΎ свой вкус.

Π‘ΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» template.tex Π² дирСкторията /usr/share/texlive/:

user@hostname:~$ sudo touch \/usr\/share\/texlive\/template.tex

Π—Π°Π΄Π°Π²Π°ΠΌΠ΅ ΠΌΡƒ ΠΏΡ€Π°Π²Π° Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅:

user@hostname:~$ sudo chmod 444 \/usr\/share\/texlive\/template.tex

ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ΄ Ρ€ΡƒΡ‚ ΠΈ вмъквамС Π² Π½Π΅Π³ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ, скрито ΠΏΠΎΠ΄ спойлСра ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ:

user@hostname:~$ sudo nano \/usr\/share\/texlive\/template.tex

Π‘ΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° шаблона \/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,bulgarian,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}

Π—Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ Ρ„Π°ΠΉΠ»Π° /usr/share/texlive/template.tex ΠΈ пишСм скрипт, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π° Markdown Ρ„Π°ΠΉΠ» Π² PDF, създавайки Π² ΡΡŠΡ‰Π°Ρ‚Π° ΠΏΠ°ΠΏΠΊΠ° Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Markdown Ρ„Π°ΠΉΠ»Π° с приставка .pdf, тоСст слСд ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ filename.md Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° Ρ‰Π΅ сС появи filename.md.pdf. Π‘ΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚ Ρ‰Π΅ Π½Π°Ρ€Π΅Ρ‡Π΅ΠΌ md2pdf ΠΈ Ρ‰Π΅ Π³ΠΎ поставим ΠΏΠΎ ΠΏΡŠΡ‚Ρ /usr/bin. Π©Π΅ изпълним послСдоватСлно ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅:

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-Ρ‚Π° Ρ€Π΅Π΄ΠΈΡ†Π° Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π΅ посочСна ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Π·Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅. ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° β€”from=markdown_github. GitHub вСрсия Markdown Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠ° с оригиналния Markdown, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π°ΠΊΠΎ Ρ‚Π΅ΠΊΡΡ‚ΡŠΡ‚ Π²ΠΈ Π΅ написан Π½Π° Π½Π΅Π³ΠΎ, Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС Ρ‚Ρ€Π΅Π²ΠΎΠΆΠΈΡ‚Π΅. Ако Π²Π°ΡˆΠΈΡΡ‚ MD Ρ„Π°ΠΉΠ» Π΅ написан Π½Π° спСцифичСн Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ Π½Π° Markdown, ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎΡ‚ΠΎ Π·Π° Pandoc (man pandoc), ΡƒΠ²Π΅Ρ€Π΅Ρ‚Π΅ сС, Ρ‡Π΅ Π²Π°ΡˆΠ°Ρ‚Π° рСализация Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°, ΠΈ Π³ΠΎ ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°ΠΉΡ‚Π΅ /usr/bin/md2pdf ΠΏΡ€ΠΈ нСобходимост.

Π‘ΠΊΡ€ΠΈΠΏΡ‚ Π·Π° относитСлно Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½Π° инсталация

Ако Π½Π΅ Π²ΠΈ сС иска Π΄Π° настройватС Π½Π΅Ρ‰ΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ, ΠΈ ΠΈΠΌΠ°Ρ‚Π΅ дистрибуция с Ubuntu-ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΎΠΏΠΈΡ‚Π°Ρ‚Π΅ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ скрипт с ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ, скрито ΠΏΠΎΠ΄ спойлСр, ΠΈ вСроятно всичко Ρ‰Π΅ сС инсталира само, СдинствСното, ΠΊΠΎΠ΅Ρ‚ΠΎ трябва Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π΅ Π΄Π° ΠΊΠΎΠΏΠΈΡ€Π°Ρ‚Π΅ TeX шаблона, ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ ΠΏΠΎΠ΄ спойлСра ΠΏΠΎ-Π³ΠΎΡ€Π΅, Π½Π° Π½ΡƒΠΆΠ½ΠΎΡ‚ΠΎ място. ΠžΡ‚Π²ΠΎΡ€Π΅Ρ‚Π΅ Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅:

user@hostname:~$ cd
user@hostname:~$ touch installmd2pdf.sh

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π·Π°ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅ Π½Π΅Π³ΠΎ със слСдното ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅:

Π‘ΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ Π½Π° скрипта $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/md2pdf

Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ Π³ΠΎ с ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°:

user@hostname:~$ sudo bash $HOME/installmd2pdf.sh

НС забравяйтС, Ρ‡Π΅ /usr/share/texlive/template.tex трябва Π΄Π° Π·Π°ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅ указанията Π² Ρ€Π°Π·Π΄Π΅Π» β€žLaTeX шаблон Π·Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ md2pdfβ€œ с посочСното ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅.

ИзползванС на md2pdf

ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΎΡ‚Π²ΠΎΡ€Π΅Ρ‚Π΅ ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° с Markdown Ρ„Π°ΠΉΠ» (some_file.md) Π² Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°:

user@hostname:~$ md2pdf some_file.md

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° Ρ‰Π΅ сС появи Ρ„Π°ΠΉΠ» some_file.md.pdf.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

На основата Π½Π° описания ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅ Π΄Π° сС създадС ΠΊΠ°ΠΊΡŠΠ²Ρ‚ΠΎ ΠΈ Π΄Π° Π΅ стил Π½Π° PDF Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Ρ‚Π΅ вмСсто md ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ, всякакви ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈ ΠΎΡ‚ Pandoc. Надявам сС, Ρ‡Π΅ вСднъТ Ρ‚ΠΎΠ²Π° Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ Ρ‰Π΅ бъдС ΠΎΡ‚ ΠΏΠΎΠ»Π·Π° Π·Π° 3 ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π΄ΡƒΡˆΠΈ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster