12 июля 2021

πŸ›  БлоТноструктурныС аналитичСскиС ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ с Python ΠΈ LaTeX

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ-матСматичСского обСспСчСния ΠΈ спСциалист ΠΏΠΎ числСнному Π°Π½Π°Π»ΠΈΠ·Ρƒ прочности ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΈ Π½Π΅Ρ„Ρ‚Π΅Π³Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡˆΠΈΠ½ΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡ; ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ с ΠΎΠΏΠΎΡ€ΠΎΠΉ Π½Π° числСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ машинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅; ΠΊ.Ρ‚.Π½. ΠΏΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ "Π”ΠΈΠ½Π°ΠΌΠΈΠΊΠ° ΠΈ ΠΏΡ€ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ машин, ΠΏΡ€ΠΈΠ±ΠΎΡ€ΠΎΠ² ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Ρ‹"
Π’ руководствС ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассматриваСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Python-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ прСдставлСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Streamlit ΠΈ систСмы ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ вёрстки LaTeX для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ слоТных аналитичСских ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² с матСматичСскими, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌΠΈ ΠΈ графичСскими вставками.
πŸ›  БлоТноструктурныС аналитичСскиС ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ с Python ΠΈ LaTeX

ЭкосистСма LaTeX. Быстрый старт

  • TeX (произносится ΠΊΠ°ΠΊ Β«Ρ‚Π΅Ρ…Β») – систСма ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ вСрстки, прСдназначСнная для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Π½Π°ΡƒΡ‡Π½ΠΎ-тСхничСских ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² высокого полиграфичСского качСства.
  • LaTeX (произносится Β«Π»Π°Ρ‚Π΅Ρ…Β») – это, строго говоря, Π½Π°Π±ΠΎΡ€ макросов Π½Π° языкС Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ TeX, Π½ΠΎ Π² зависимости ΠΎΡ‚ контСкста ΠΏΠΎΠ΄ LaTeX ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΌΠ°ΠΊΡ€ΠΎΠΏΠ°ΠΊΠ΅Ρ‚, ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ систСма ΠΈΠ»ΠΈ язык, слуТащий для Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. LaTeX 2e – Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ полная, ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ вСрсия LaTeX.
  • MikTΠ΅X – свободно распространяСмая рСализация TeX ΠΏΠΎΠ΄ основныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы – Windows, macOS, Linux (Ubuntu, Debian, CentOS ΠΈ ΠΏΡ€.) – Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°Ρ Π² сСбя практичСски всС Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ.

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ MikTΠ΅X ΠΏΠΎΠ΄ Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ инструкциям Π½Π° страницС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ с систСмой ΠΌΠΎΠΆΠ½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π±Π΅Π· установки дистрибутива, просто запустив Docker-ΠΎΠ±Ρ€Π°Π·:

miktex_install.sh
        $ docker pull miktex/miktex
$ docker volume create --name miktex
$ docker run -it \
  -v miktex:/miktex/.miktex \
  -v $(pwd):/miktex/work \
  miktex/miktex \
  pdflatex main.tex
    

Π—Π΄Π΅ΡΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ docker pull Π² локальноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² скачиваСтся Docker-ΠΎΠ±Ρ€Π°Π· miktex/miktex. Π—Π°Ρ‚Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ docker volume Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС хоста создаСтся дирСктория miktex/. ПослСдним шагом с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ docker run остаСтся Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Docker Π½Π° Π±Π°Π·Π΅ ΠΎΠ±Ρ€Π°Π·Π° miktex/miktex. Π€Π»Π°Π³ -it создаСт сСанс ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌ устройствС, Π° Ρ„Π»Π°Π³ -v ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы хоста Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ компилятор (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС PDFLaTeX) ΠΈ собствСнно tex-Ρ„Π°ΠΉΠ» (Ρ€Π°Π·ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, Π½Π° основании ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ создан pdf-Ρ„Π°ΠΉΠ»).

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ MikTEX ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ TeX Live – это Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ свободно распространяСмый ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ дистрибутив TeX. Для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы MacOS X ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ спСциализированным Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ MacTeX.

ΠžΠΏΠΎΡ€Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ LaTeX (tex-Ρ„Π°ΠΉΠ») прСдставляСт собой ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкстовый Ρ„Π°ΠΉΠ» с Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ. Для рСдактирования Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ тСкстовым Unix-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ Vim, Π½ΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ TeXstudio (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС основныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы). Однако TeXstudio Π½Π΅ СдинствСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Π’ΠΎΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнныС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹: TeXmaker, Kile, TeXCenter.

LaTeX состоит ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° страницС CTAN (The Comprehensive TeX Archive Network). CTAN – Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡΡ‚Π΅ΠΊΠ°ΡŽΡ‚ΡΡ всС сколько-Π½ΠΈΠ±ΡƒΠ΄ΡŒ стоящиС Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ TeX.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ рСпозитория содСрТит Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ (с описаниСм зависимостСй, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈ контСкстом использования, дСталями Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€.), исходныС Ρ„Π°ΠΉΠ»Ρ‹, описаниС синтаксичСских особСнностСй, ΠΌΠ°ΠΊΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ быстро ΠΏΠΎΠ½ΡΡ‚ΡŒ устройство ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ порядок Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌ. Π‘ ΠΎΠ±Ρ‰Π΅ΠΉ структурой ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² CTAN ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° для оформлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° listings.

Π˜Ρ‚Π°ΠΊ, для запуска ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈΠ· настоящСго руководства потрСбуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ дистрибутив TeX (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, MikTΠ΅X) ΠΈ LaTeX-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, TeXstudio).

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ LaTeX

Π’ тСкстовых процСссорах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π°Π±ΠΎΡ€Π° тСкста Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° экранС дисплСя Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π½Π° Π±ΡƒΠΌΠ°Π³Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ концСпция Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ проСктирования (WYSIWYG – What You See Is What You Get). Π’ LaTeX ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ концСпция логичСского проСктирования, ΠΊΠΎΠ³Π΄Π° внСшний Π²ΠΈΠ΄ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° становится понятСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС компиляции.

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° опрСдСляСтся инструкциями, описанными Π½Π° языкС Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ TeX ΠΈΠ»ΠΈ LaTeX. ΠœΠ΅ΠΆΠ΄Ρƒ этими языками слоТно провСсти Ρ‡Π΅Ρ‚ΠΊΡƒΡŽ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ. Π‘Π°ΠΌ LaTeX написан Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… TeX ΠΈ Π² LaTeX-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ практичСскиС Π»ΡŽΠ±Ρ‹Π΅ TeX-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ LaTeX это высокоуровнСвая «синтаксичСски-сахарная» ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ° для Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ языка TeX. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, TeX Π² основном примСняСтся ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ классов ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ LaTeX – для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим ΠΎΠ±Ρ‰ΠΈΠΉ синтаксис языка LaTeX ΠΈ познакомимся с Π±Π°Π·ΠΎΠ²ΠΎΠΉ структурой tex-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

  • LaTeX-Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ \documentclass, Π·Π°Π΄Π°ΡŽΡ‰Π΅ΠΉ ΡΡ‚ΠΈΠ»ΡŒ оформлСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, \documentclass{article}. АргумСнт ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ article ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ Π² соотвСтствии с Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ оформлСния статСй. ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ (с Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ) любой элСмСнт ΠΌΠ°ΠΊΠ΅Ρ‚Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.
  • Команда \documentclass ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ классы, доступныС Β«ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ»: book (для оформлСния ΠΊΠ½ΠΈΠ³), report (для оформлСния ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² – Π½Π΅Ρ‡Ρ‚ΠΎ срСднСС ΠΌΠ΅ΠΆΠ΄Ρƒ book ΠΈ article), proc (для оформлСния Ρ‚Ρ€ΡƒΠ΄ΠΎΠ² ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΉ) ΠΈ letter (для Π΄Π΅Π»ΠΎΠ²Ρ‹Ρ… писСм со слоТной структурой).
  • ПослС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ \documentclass ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, относящиСся ΠΊΠΎ всСму Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ. Π”Π°Π»Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ окруТСния\begin{document} … \end{document} (условимся Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€Π½Ρ‹ΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ) указываСтся Ρ‚Π΅Π»ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ слоТныС конструкции Π²ΠΈΠ΄Π° \begin{} … \end{}.
  • Π§Π°ΡΡ‚ΡŒ tex-Ρ„Π°ΠΉΠ»Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ \documentclass ΠΈ \begin{document} … \end{document} Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€Π΅Π°ΠΌΠ±ΡƒΠ»ΠΎΠΉ. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ послС Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ скобки окруТСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° \end{document} LaTeX ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ Π½Π°ΠΈΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ шаблон Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

base_example.tex
        \documentclass{article}
% ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΡ€Π΅Π°ΠΌΠ±ΡƒΠ»Ρ‹
\begin{document} % Ρ‚Π΅Π»ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°: Π½Π°Ρ‡Π°Π»ΠΎ
% тСкст
\end{document} % Ρ‚Π΅Π»ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°: ΠΊΠΎΠ½Π΅Ρ†
% ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² этой части Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ сборкС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°
    

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ страницы ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ настройки tex-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ ΠΈ Π² ΠΏΡ€Π΅Π°ΠΌΠ±ΡƒΠ»Π΅, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° инструкций становится ΠΌΠ½ΠΎΠ³ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ вынСсти ΠΈΡ… Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ стилСвой Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ *.sty. ПозТС стилСвой Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ \usepackage{}, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ этого Ρ„Π°ΠΉΠ»Π°.

Π‘Π°ΠΌ стилСвой Ρ„Π°ΠΉΠ» содСрТит ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² \RequirePackage{}, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ \newcommand{}, псСвдонимы матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² \DeclareMathOperator ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ элСмСнты кастомизации:

style_template.sty
        % Π½Π°Ρ‡Π°Π»ΠΎ стилСвого Ρ„Π°ΠΉΠ»Π°
\RequirePackage[english,russian]{babel}
\RequirePackage[utf8]{inputenc}
\RequirePackage{amsmath, amsfonts, amssymb, latexsym}
\RequirePackage[
	left=2cm,
	right=2cm,
	top=2cm,
	bottom=2cm
		]{geometry}
... 
\newcommand{\str}[1]{cΡ‚Ρ€.~\pageref{#1}}
\newcommand{\strbook}[1]{стр.~{#1}}
...
\DeclareMathOperator*{\argmin}{arg\,min}
\DeclareMathOperator*{\argmax}{arg\,max}
\DeclareMathOperator*{\sign}{sign}
\DeclareMathOperator*{\const}{const}
...
    

Π‘ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ стилСвым Ρ„Π°ΠΉΠ»ΠΎΠΌ tex-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

base_example_with_usepackage.tex
        \documentclass{article}
\usepackage{style_template} % ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ стилСвой Ρ„Π°ΠΉΠ» style_template.sty, располоТСнный Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ tex-Ρ„Π°ΠΉΠ»
\begin{document}
% тСкст
\end{document}
    

АргумСнт ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ \usepackage ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя стилСвого Ρ„Π°ΠΉΠ»Π°, Π½ΠΎ ΠΈ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ Π½Π΅Π³ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ корня ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π±Π΅Π· указания Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π°).

Π”Π°Π»Π΅Π΅ прСдполагаСтся, Ρ‡Ρ‚ΠΎ всС настройки ΠΌΠ°ΠΊΠ΅Ρ‚Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° описаны Π² стилСвом Ρ„Π°ΠΉΠ»Π΅ style_template.sty, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ располоТСн Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ tex-Ρ„Π°ΠΉΠ».

К соТалСнию, Π² настоящСм руководствС Π½Π΅Ρ‚ возмоТности Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС элСмСнты ΠΈ тонкости ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ LaTeX-Ρ„Π°ΠΉΠ»ΠΎΠ², Π½ΠΎ Π² github-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ доступСн ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ рассматриваСмого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° с пояснСниями, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΠΏΠΎΡ€Π½Ρ‹ΠΉ стилСвой Ρ„Π°ΠΉΠ», Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅ΠΉ ΠΈ содСрТащий Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ настройки ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ слоТноструктурных аналитичСских ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ².

Π Π°Π·ΠΎΠ±Ρ€Π°Π²ΡˆΠΈΡΡŒ с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ структурными элСмСнтами tex-Ρ„Π°ΠΉΠ»Π°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ части ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ наполнСнию Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

НабСрСм Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€Π½ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки:

simple_onepage_template.tex
        ...
\begin{document}

\title{АналитичСский ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΏΠΎ ...} % Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΡ‚Ρ‡Π΅Ρ‚Π°
\author{\itshape Иванов И.И.} % Π°Π²Ρ‚ΠΎΡ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹
\date{} % просим LaTeX Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Ρ‚Ρƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚
        % использован наш Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ оформлСния Π΄Π°Ρ‚Ρ‹, описанный Π² стилСвом Ρ„Π°ΠΉΠ»Π΅
\maketitle % создаСт Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ

\thispagestyle{fancy} % Π·Π°Π΄Π°Π΅Ρ‚ ΡΡ‚ΠΈΠ»ΡŒ страницы

Π’ этой части ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ ΠΊ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρƒ. \TeX -- это ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ систСма ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ вСрстки, прСдназначСнная для Π½Π°Π±ΠΎΡ€Π° ...

\tableofcontents % создаСт ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅

\section{ΠŸΡ€ΠΈΠΌΠ΅Ρ€ многострочной Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹}
    Для Π½Π°Π±ΠΎΡ€Π° слоТных многострочных Ρ„ΠΎΡ€ΠΌΡƒΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ окруТСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ \texttt{multline}
	\begin{multline}
		F_{\zeta}(z)=P[\,\zeta\leqslant z\,] = \int\!\!\!\int_{x/y\leqslant z}f_X(x;n)f_Y(y;m)\,dxdy =\\ \dfrac{1}{2^{(n+m)/2}\Gamma(n/2)\Gamma(m/2)}\int\!\!\!\int_{x/y\leqslant z}x^{n/2-1}y^{m/2-1}\exp\left( -\frac{x}{2} \right) \exp\left( -\frac{y}{2} \right) \,\mathrm{d}x \, \mathrm{d}y.
	\end{multline}

\section{ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠ³ΠΎ размСщСния Ρ„ΠΎΡ€ΠΌΡƒΠ»}

НСсколько Ρ„ΠΎΡ€ΠΌΡƒΠ» ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ окруТСния \texttt{gather}
\begin{gather}
	\sum_{j \in \mathbf{N}} b_{ij} \hat{y}_{j} = \sum_{j \in \mathbf{N}} b_{ij}^\lambda \hat{y}_j + (b_{ii} - \lambda_i)\hat{y}_i \hat{y},\notag \\
	\det \mathbf{K}(t=1, t_1, \ldots, t_n) = \sum_{I \in \mathbf{n} } (-1)^{|I|} \prod_{i \in I} t_i \prod_{j \in I} (D_j + \lambda_j t_j) \det \mathbf{A}^{(\lambda)} (\, \overline{I} | \overline{I} \,) = 0,\tag{$a$} \\
	\mathbb{F} = \sum_{i=1}^{\left[ \frac{n}{2}\right] } \binom{ x_{i,i+1}^{i^2}}{ \left[ \frac{i+3}{3} \right]} {{\sqrt{\mu(i)^\frac{3}{2} (i^2-1)}} \over\displaystyle {\sqrt[3]{\rho(i)-2} + \sqrt[3]{\rho(i)-1}} }, \tag{$b$}
\end{gather}

\section{ΠŸΡ€ΠΎΡΡ‚Π°Ρ однострочная Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°}

Π’Π΅ΠΎΡ€Π΅ΠΌΠ° Π₯ΠΈΠ½Ρ‡ΠΈΠ½Π°-Π’ΠΈΠ½Π΅Ρ€Π° ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΡΠΏΠ΅ΠΊΡ‚Ρ€Π°Π»ΡŒΠ½Π°Ρ ΠΏΠ»ΠΎΡ‚Π½ΠΎΡΡ‚ΡŒ мощности стационарного Π² ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ смыслС случайного процСсса прСдставляСт собой ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π€ΡƒΡ€ΡŒΠ΅ ΠΎΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ автокоррСляционной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
\begin{equation*} % Π±Π΅Π· Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ
    S_{xx}(f) = \int\limits_{-\infty}^{\infty}  \, r_{xx} (\tau) e^{-j 2 \pi f \tau} \mathrm{d} \tau,\ \text{Π³Π΄Π΅}\ r_{xx}(\tau) = \mathbb{E}[\,x(t) \, x^{*}(t - \tau)\,].
\end{equation*}

\end{document}
    

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ компилятор PDFLaTeX Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ имя tex-Ρ„Π°ΠΉΠ»Π°. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ компиляции ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° рисункС Π½ΠΈΠΆΠ΅.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ компиляции Ρ„Π°ΠΉΠ»Π° <code class="inline-code">analyt_report_template.tex</code>
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ компиляции Ρ„Π°ΠΉΠ»Π° analyt_report_template.tex

Рассмотрим Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΊΠΎΠ΄ Ρ„Π°ΠΉΠ»Π° analyt_report_template.tex.

  • Π’ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… строках Ρ„Π°ΠΉΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ \title ΠΈ \author ΠΌΡ‹ объявляСм Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° ΠΈ имя Π°Π²Ρ‚ΠΎΡ€Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ соотвСтствСнно, Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ \maketitleсоздаСм Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ.
  • Π—Π°Ρ‚Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ \date, Π²Ρ‹Π·Π²Π°Π½Π½ΠΎΠΉ Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², подавляСм Π²Ρ‹Π²ΠΎΠ΄ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΈ. Π—Π΄Π΅ΡΡŒ для привязки ΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ низкоуровнСвая командная вставка Π² стилСвом Ρ„Π°ΠΉΠ»Π΅ style_template.sty (этот Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° приводится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для справки, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ прилоТСния Π½Π΅Ρ‚ нСобходимости Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π² стилСвой Ρ„Π°ΠΉΠ» измСнСния Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ):
fragment_style_template.sty
        ... 
\def\@maketitle{
    \begin{flushright}
	\footnotesize\itshape
	Π”Π°Ρ‚Π° послСднСй сборки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°:\\ \today\ Π² \currenttime
    \end{flushright}

    \begin{center}
	\let \footnote \thanks
	\begin{spacing}{1.5}
	    {\Large\bfseries\@title}
	\end{spacing}\vskip 1mm

	{\normalsize
	    \begin{tabular}[t]{l}
		\@author
	    \end{tabular}\par	
	}
    \end{center}
    \par
    \vskip 1.5em
}
...
    

Команда \thispagestyle Π·Π°Π΄Π°Π΅Ρ‚ ΡΡ‚ΠΈΠ»ΡŒ страницы, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° \tableofcontents создаСт ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ \section ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ уровня (с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ класса Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°). Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ступСни ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ \subsection.

LaTeX ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ для оформлСния матСматичСских конструкций ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ слоТности, ΠΎΠ΄Π½Π°ΠΊΠΎ здСсь ΠΌΡ‹ ограничимся рассмотрСниСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Ρ€Π΅Ρ… Ρ‚ΠΈΠΏΠΎΠ² окруТСния: equation, multline ΠΈ gather.

Как Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ понятно ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ рисунка, equation ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для однострочных Ρ„ΠΎΡ€ΠΌΡƒΠ», multline – для многострочных, Π° gather – для Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠ³ΠΎ размСщСния Ρ„ΠΎΡ€ΠΌΡƒΠ». Π—Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ° послС ΠΈΠΌΠ΅Π½ΠΈ окруТСния ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ LaTeX Π½Π΅ станСт ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Π° Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°ΠΌ, попавшим Π² это ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ Ρ„ΠΎΡ€ΠΌΡƒΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ LaTeX-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с названиями созвучными Π½Π°Π±ΠΈΡ€Π°Π΅ΠΌΠΎΠΌΡƒ элСмСнту, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ Π·Π½Π°ΠΊ суммы с Π½ΠΈΠΆΠ½ΠΈΠΌ lowindex ΠΈ Π²Π΅Ρ€Ρ…Π½ΠΈΠΌ upindex индСксом ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° \sum_{lowindex}^{upindex}, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ символ большой ΠΎΠΌΠ΅Π³ΠΈ – \Omega, Π° для вставки символа Π³Π°ΠΌΠΌΠ° потрСбуСтся \gamma ΠΈ Ρ‚.Π΄.

Для быстрого поиска Π½ΡƒΠΆΠ½Ρ‹Ρ… матСматичСских LaTeX-ΠΊΠΎΠΌΠ°Π½Π΄, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов, ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² оформлСния псСвдокода ΠΈ ΠΏΡ€. ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌ, Π½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ сборником ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΈΠ½Π° Π’ΠΎΡ€ΠΎΠ½Ρ†ΠΎΠ²Π° Β«LaTeX 2e Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…Β».

ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ систСмой LaTeX ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚:

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Python-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Streamlit

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Streamlit – это простая, лаконичная ΠΈ Π² Ρ‚ΠΎΠΆΠ΅ врСмя ΠΎΡ‡Π΅Π½ΡŒ мощная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для прототипирования Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ с графичСским интСрфСйсом. Streamlit Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ всСх основных элСмСнтов стСка, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ΅ Π·Ρ€Π΅Π½ΠΈΠ΅, машинноС ΠΈ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅.

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΡ€ΠΎΡ‰Π΅ всСго с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² pip: pip install streamlit.

ЗапускаСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ streamlit run:

streamlit_run.sh
        $ streamlit run streamlit_simple_example.py

  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8502 # <-- 
  Network URL: http://192.168.1.247:8502
    

ПослС запуска сцСнария Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ (http://localhost:8502) откроСтся Π²ΠΊΠ»Π°Π΄ΠΊΠ° с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π—Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния ΠΌΠΎΠΆΠ½ΠΎ, Π·Π°ΠΊΡ€Ρ‹Π² Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ Π½Π°Π±Ρ€Π°Π² Ctrl+C Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅.

Π’ Streamlit Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшой Π½Π°Π±ΠΎΡ€ Β«Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… срСдств», Π½ΠΎ всС элСмСнты ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Ρ‹ ΠΈ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Β«Π³ΠΈΠ±ΠΊΠΎΠΌΡƒ динамичСскому ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡƒΒ».

ΠΠ°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ со Streamlit ΠΌΠΎΠΆΠ½ΠΎ с Π²Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ руководства, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описываСт всС возмоТности Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Markdown-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ, Π°ΡƒΠ΄ΠΈΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ графичСскиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (Bokeh, Altair, Plotly ΠΈ Π΄Ρ€.), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΌΠ½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

НиТС приводится ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Streamlit для построСния Π΄Π²ΡƒΡ… ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² (Π½Π° Π±Π°Π·Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Plotly) гауссовских процСссов с автокоррСляционной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

streamlit_simple_example.py
        import streamlit as st
import math
import pandas as pd
from pandas import Series
import plotly.graph_objects as go
import numpy as np
import numpy.random as rnd

title_app = "ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Streamlit"
# Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΎΡΡŒ имя прилоТСния, Π° Π½Π΅ имя Ρ„Π°ΠΉΠ»Π°
st.set_page_config(
    layout="wide",
    page_title=title_app,
    initial_sidebar_state="expanded",
)


def gauss_with_exp_acf_gen(
    *,
    sigma: float = 2,
    w_star: float = 1.25,
    delta_t: float = 0.05,
    N: int = 1000,
) -> np.array:
    """
    ОписаниС
    --------
    Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄ΠΈΡΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ
    стационарного гауссовского ПБП
    с КЀ ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°

    ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹
    ---------
    sigma : стандартноС ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ПБП.
    w_star : ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ ПБП.
    delta_t : шаг ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.
    N : число отсчСтов ПБП.

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚
    ----------
    xi : массив элСмСнтов ПБП с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ КЀ
    """
    gamma_star = w_star * delta_t
    rho = math.exp(-gamma_star)
    b1 = rho
    a0 = sigma * math.sqrt(1 - rho ** 2)

    xi = np.zeros(N)
    xi[0] = rnd.rand()
    x = rnd.randn(N)

    for n in range(1, N):
        xi[n] = a0 * x[n] + b1 * xi[n - 1]

    return xi


def main(N: int = 100):
    timestmp = np.arange(N)
    # Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ряд β„–1
    time_series_1 = gauss_with_exp_acf_gen(sigma=5, w_star=1.25, N=N)
    # Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ряд β„–2
    time_series_2 = gauss_with_exp_acf_gen(sigma=6.5, w_star=1.75, N=N)

    fig = go.Figure()

    fig.add_trace(
        go.Scatter(
            x=timestmp,
            y=time_series_1,
            name="Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ряд (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-1)",
            opacity=0.8,
            mode="lines",
            line=dict(
                color="#E84A5F",
            ),
        )
    )

    fig.add_trace(
        go.Scatter(
            x=timestmp,
            y=Series(time_series_1).rolling(window=7).mean(),
            name="Π‘ΠΊΠΎΠ»ΡŒΠ·ΡΡ‰Π΅Π΅ срСднСС (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-1)",
            mode="lines",
            opacity=0.6,
            line=dict(
                color="#FF847C",
            ),
        )
    )

    fig.add_trace(
        go.Scatter(
            x=timestmp,
            y=time_series_2,
            name="Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ряд (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-2)",
            mode="lines",
            opacity=0.8,
            line=dict(
                color="#5E63B6",
            ),
        )
    )

    fig.add_trace(
        go.Scatter(
            x=timestmp,
            y=Series(time_series_2).rolling(window=7).mean(),
            name="Π‘ΠΊΠΎΠ»ΡŒΠ·ΡΡ‰Π΅Π΅ срСднСС (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-2)",
            mode="lines",
            opacity=0.6,
            line=dict(
                color="#6EB6FF",
            ),
        )
    )

    fig.update_layout(
        title=dict(
            # text="<i>Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ряд</i>",
            font=dict(
                family="Arial",
                size=18,
                color="#07689F",
            ),
        ),
        xaxis_title=dict(
            text="<i>ВрСмСнная ΠΌΠ΅Ρ‚ΠΊΠ°</i>",
            font=dict(
                family="Arial",
                size=13,
                color="#537791",
            ),
        ),
        yaxis_title=dict(
            text="<i>ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ простоя, час</i>",
            font=dict(
                family="Arial",
                size=13,
                color="#537791",
            ),
        ),
        xaxis=dict(
            showline=True,
        ),
        yaxis=dict(
            showline=True,
        ),
        autosize=False,
        showlegend=True,
        margin=dict(
            autoexpand=False,
            l=70,
            r=10,
            t=50,
        ),
        legend=dict(
            orientation="v",
            yanchor="bottom",
            y=0.01,
            xanchor="right",
            x=0.99,
            font=dict(family="Arial", size=12, color="black"),
        ),
        plot_bgcolor="white",
    )

    st.plotly_chart(fig, use_container_width=True)


if __name__ == "__main__":
    main(N=350)
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Streamlit ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ:

  • функция st.set_page_config(), которая пСрСопрСдСляСт имя Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° – отобраТаСтся Π½Π΅ имя Ρ„Π°ΠΉΠ»Π°, Π° имя прилоТСния;
  • функция st.plotly_chart(), которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ сконфигурированный Plotly-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΅Π³ΠΎ Π² ΠΎΠΊΠ½ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сцСнария <code class="inline-code">streamlit_simple_example.py</code>
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сцСнария streamlit_simple_example.py

ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ элСмСнты сцСнария streamlit_simple_example.py ΠΈΠ³Ρ€Π°ΡŽΡ‚ лишь Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€-шаблон аналитичСского ΠΎΡ‚Ρ‡Π΅Ρ‚Π°

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ΡΡ Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Streamlit (Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹ΠΉ интСрфСйс прилоТСния) ΠΈ LaTeX-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ (ΠΎΠΏΠΎΡ€Π½Ρ‹ΠΉ tex-Ρ„Π°ΠΉΠ»), Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Π½Π° Ρ‚Π΅ΠΌΡƒ Β«ΠžΡ†Π΅Π½ΠΊΠ° усталостной долговСчности силовых элСмСнтов транспортных машин ΠΏΠΎΠ΄ воздСйствиСм стационарных гауссовских процСссов с автокоррСляционной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ-косинусного сСмСйства».

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ прСдставляСт собой Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ шаблон, Ρ‚.Π΅. содСрТит ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ окруТСния для оформлСния матСматичСских Ρ„ΠΎΡ€ΠΌΡƒΠ», ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… вставок, графичСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вострСбованныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ взят Π·Π° основу для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ слоТных Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ обсуТдаСмого Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈΠ· github-рСпозитория, сСйчас ΠΆΠ΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎ остановимся Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π½ΡŽΠ°Π½ΡΠ°Ρ….

Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Streamlit Ρ„Π°ΠΉΠ» Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Pandas), Π½ΠΎ сам Streamlit Π½Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

downloader_for_streamlit.py
        def text_downloader(multiline: str) -> NoReturn:
    """
    ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ LaTeX-шаблон Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² Π²ΠΈΠ΄Π΅ многострочной строки ΠΈ
    создаСт Π½Π° страницС ссылку для скачивания шаблона
    """
    OUTPUT_TEX_FILENAME = "base_template_for_latex.tex"
    
    b64 = base64.b64encode(multiline.encode()).decode()
    # создаСт ссылку для скачивания Ρ„Π°ΠΉΠ»Π°
    href = (f'<a href="data:file/txt;base64,{b64}" '
            f'download="{OUTPUT_TEX_FILENAME}">Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ...</a>')
    st.markdown(href, unsafe_allow_html=True)
    

Ѐункция Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ тСкстовый Ρ„Π°ΠΉΠ», ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ Π² Π²ΠΈΠ΄Π΅ строки, ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стандарта base64 ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Ρ‚Π΅Π³-ссылку ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ markdown. Π’ ΠΈΡ‚ΠΎΠ³Π΅ Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ, ΠΊΠ»ΠΈΠΊΠ½ΡƒΠ² Π½Π° ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ ссылку.

ΠŸΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ тСкстового шаблона для Python (latex_template_for_python.txt) – ΠΏΠΎ сути Ρ„Π°ΠΉΠ» прСдставляСт собой каркас Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° с Π·Π°Π³Π»ΡƒΡˆΠΊΠ°ΠΌΠΈ ΠΏΠΎΠ΄ ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΡΡ†ΠΈΡŽ – Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ синтаксичСских особСнностях LaTeX. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² контСкстС строковой интСрполяции Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ «мСсто подстановки», Π° Π² контСкстС LaTeX – ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Python ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Β«ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π»Β» строку слСдуСт Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки, относящиСся ΠΊ синтаксису LaTeX, ΡƒΠ΄Π²ΠΎΠΈΡ‚ΡŒ.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получится тСкстовый Ρ„Π°ΠΉΠ» Π²ΠΈΠ΄Π°:

fragment_latex_template_for_python.txt
        \documentclass[
    11pt,
    a4paper,
    utf8,
]{{article}}

\usepackage{{style_template}}

\begin{{document}}
...
Усталостная Π΄ΠΎΠ»Π³ΠΎΠ²Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ \eqref{{eq:miles}} составляСт $ Y_{{NB}} = {Y_NB:.2f} $, сСк.

\section{{ΠžΡ†Π΅Π½ΠΊΠ° усталостной долговСчности ΠΏΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ P.H. Wirsching ΠΈ C.L.~Light}}
...
    

НиТС Π½Π° рисунках приводится ΠΎΠ±Ρ‰ΠΈΠΉ Π²ΠΈΠ΄ прилоТСния.

Бтартовая страница прилоТСния
Бтартовая страница прилоТСния

Π‘ΠΊΠ°Ρ‡Π°Π² ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ tex-Ρ„Π°ΠΉΠ» Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, останСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ компилятор (Π΄Π²Π°ΠΆΠ΄Ρ‹!).

pdflatex_start.sh
        # для сборки каркаса
$ pdflatex base_template_for_latex.tex
# для вычислСния ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ссылок Π½Π° страницы, Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ ΠΈ ΠΏΡ€.
$ pdflatex base_template_for_latex.tex

    

ПослС сборки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ создан pdf-Ρ„Π°ΠΉΠ».

Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ LaTeX-шаблона
Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ LaTeX-шаблона
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ <code class="inline-code">pdflatex base_template_for_latex.tex</code>. Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ собранного аналитичСского ΠΎΡ‚Ρ‡Π΅Ρ‚Π°
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ pdflatex base_template_for_latex.tex. Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ собранного аналитичСского ΠΎΡ‚Ρ‡Π΅Ρ‚Π°

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° свободной ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Streamlit, достаточно ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° Deploy this app Π² ΠΏΡ€Π°Π²ΠΎΠΉ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ прилоТСния, ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ Π½Π° рисункС. Однако ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Streamlit ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ заявку Π½Π° допуск ΠΊ рСсурсам (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° заявки Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ нСсколько Π΄Π½Π΅ΠΉ).

Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ прилоТСния Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Streamlit
Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ прилоТСния Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Streamlit

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ развСртывания Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ доступно ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΠΎ ссылкС, ΠΊΠ°ΠΊ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС.

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

Из руководства Π²Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ:

  • Ρ‡Ρ‚ΠΎ собой прСдставляСт систСма ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ вёрстки LaTeX, Π³Π΄Π΅ Π½Π°ΠΉΡ‚ΠΈ Π΅Π΅ дистрибутивы ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с систСмой;
  • ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π³ΠΈΠ±ΠΊΠΈΠ΅, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ языка Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ TeX/LaTeX;
  • ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Streamlit;
  • ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ связки Β«LaTeX + StreamlitΒ»;
  • ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΊΠ°ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Streamlit.

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ источники:

БвязныС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Proglib:

ΠœΠ•Π ΠžΠŸΠ Π˜Π―Π’Π˜Π―

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Π’ΠΠšΠΠΠ‘Π˜Π˜

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ вакансию
Senior Java Developer
Москва, ΠΏΠΎ ΠΈΡ‚ΠΎΠ³Π°ΠΌ собСсСдования
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π‘#
ΠΎΡ‚ 200000 RUB Π΄ΠΎ 400000 RUB

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•