Π“ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ 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. Пока Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ½ доступСн ΠΏΠΎ этой ссылкС, Ссли Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ прочтСния ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΎΠ½Π° ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π½Π΅ доступна, Π½Π΅ ΠΎΡ‚Ρ‡Π°ΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ, Π΅Π³ΠΎ нСслоТно Π½Π°ΠΉΡ‚ΠΈ вмСстС с инструкциСй ΠΏΠΎ установкС, Π½Π°Π±Ρ€Π°Π² Π² Π“ΡƒΠ³Π»Π΅ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ «Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° 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Ρ…Π»Π΅Ρ‚Π½Π΅ΠΉ давности Π² Ρ€Π°ΡΠΏΠΈΡΠ°Ρ‚ΡŒ, какая строчка шаблона Π·Π° Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚. Пока ΠΆΠ΅, я Ρ€Π°ΡΠΏΠΈΡˆΡƒ ΠΊΠ°ΠΊ сдСлал я Ρƒ сСбя Π½Π° ПК, Π° Π²Ρ‹ Π²ΠΎΠ»ΡŒΠ½Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ сСбя.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» 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,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}

БохраняСм Ρ„Π°ΠΉΠ» /usr/share/texlive/template.tex ΠΈ пишСм скрипт ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Makrdown Ρ„Π°ΠΉΠ» Π² 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