Pull to refresh

Команда GitHub представила нативную поддержку математических выражений в md-файлах

Reading time2 min
Views4.3K

В блоге GitHub сообщили, что математические формулы и выражения — важная часть обмена информацией между разработчиками, инженерами и учеными. Поэтому теперь в GitHub появилась нативная функция для простой записи выражений в Markdown.

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments13

Typst — современная альтернатива LaTeX

Level of difficultyMedium
Reading time7 min
Views13K


Языки разметки хорошо подходят для создания и редактирования структурированных документов. Они лучше автоматизированы и гибки, чем аналоги с WYSIWYG. Здесь контент отделён от представления, задаётся текст и его структура, далее на основе выбранного шаблона форматируется документ. Подобную систему компьютерной вёрстки TEX (TeX) разработал Дональд Кнут в 1978 году, окончательный релиз оформился в 1979-м. Системы на основе TeX до сих пор являются актуальными в этой области и продолжают развиваться. Вот несколько примеров.
Читать дальше →
Total votes 45: ↑41 and ↓4+37
Comments20

Верстальная программа TeX: какие изменения сделаны в 2021 году

Level of difficultyMedium
Reading time2 min
Views4.6K

Пишут, что ПО развивается — и только TEX Дональда Кнута завершён и остановлен. Однако в 2021 году TEX обновился. Посмотрим, что изменилось в программе, которая считается образцовой и примерной.

Читать далее
Total votes 19: ↑17 and ↓2+15
Comments62

TeX в SVG: опенсорс-решение в помощь веб-разработчикам образовательных проектов

Reading time4 min
Views8.8K

Привет! Меня зовут Костя Мамаев, я занимаюсь фронтенд-разработкой в поиске Яндекса. Некоторое время назад мы вместе с другими ребятами из команды помогали образовательным проектам компании. Среди прочего пришлось решить, казалось бы, простую задачку: отображать на экране и распечатывать на бумаге формулы, закодированные в популярном формате TeX. Звучит, как дело пяти минут, но в результате трёх подходов к снаряду появился полноценный микросервис для серверного рендеринга формул в svg и png. В статье расскажу, зачем мы пошли этим путём и почему ни один из существующих проектов не подошёл «из коробки».

Результаты нашей работы могут быть полезны и другим разработчикам, помогающим школьникам и учителям, поэтому готовый микросервис ждёт вас на гитхабе Яндекса. По ссылке весь джентльменский набор: Docker-контейнер, документация, открытый код.

Подробнее про три подхода к снаряду
Total votes 58: ↑56 and ↓2+54
Comments23

84 года Дональду Кнуту

Reading time4 min
Views8.5K


На его книгах обучилось не одно поколение программистов, в том числе, и в нашей стране. Созданная им в 70-х годах прошлого века система набора текста TeX до сих пор активно используется по всему миру для верстки высококачественных документов, таких как исследовательские работы, технические руководства и учебники. Его называют пионером в области компьютерных технологий, особенно в сфере языков программирования, а также «отцом анализа алгоритмов». Речь идет о почетном профессоре Стэнфордского университета Дональде Эрвине Кнуте, известном ученом, математике и авторе популярной технической литературы.
Читать дальше →
Total votes 71: ↑70 and ↓1+69
Comments24

Теория чисел in TeX-way

Reading time4 min
Views5.3K
Теория чисел и TeXДемонстрируем некоторые особенности написания TeX-макросов, встраивая в TeX калькулятор теоретико-числовых функций.

Постановка задачи


Время от времени мне приходится набирать очередной текст, сопровождаемый примерами вычисления теоретико-числовых функций: функция Эйлера φ, функция делителей τ, функция Кармайкла λ. Раньше это делалось так: запускаем любимый калькулятор (мой выбор — PARI/GP), в нем все считаем и копируем выкладки в ТеХ. Изменились исходные данные — снова в калькулятор и обратно. Много возни, много шансов забыть заменить какой-то промежуточный результат. Да и просто мышкой махать надоедает. Хочется автоматизировать этот процесс хотя бы для самых распространенных функций, чтобы можно было написать
$\phi(1001)=\Phi(1001)$
и получить на печати
\phi(1001)=720

Читать дальше →
Total votes 66: ↑65 and ↓1+64
Comments16

Анонсирована разработка шрифтов STIX версии 2.0.0, направленная на улучшение их текстовой составляющей

Reading time7 min
Views6.9K
image

Создание так называемых «текстовых» шрифтов является одним из сложнейших, тончайших и благороднейших искусств. Действительно, во всех ситуациях они призваны не только простимулировать чувство уважения к набранному тексту, но и учесть множество мелких и не очень технических и тактических нюансов, связанных с традициями того или иного языка. Кроме этого, в зависимости от конкретной сферы использования задачи перед таким шрифтом ставятся поистине грандиозные: если это вузовский или даже школьный учебник, то – всячески поддерживать в пытливом уме читателя огонёк интереса к науке, не стесняясь овевать его элементами «академического духа», но не подавая признаков сухости и не допуская ни малейшей «эстетической перегрузки»; если документ, имеющий юридическую силу, – чётко выдерживать атмосферу строгости и нейтральности, не допуская жёсткости и колючести; в художественном или публицистическом произведении – способствовать максимально быстрому и скользяще лёгкому чтению с минимальным застреванием взгляда на непривычных деталях шрифтового рисунка; наконец, в научной работе, словаре или энциклопедии – кроме всего прочего, обеспечить авторов всем необходимым набором символов, позаботившись о предупреждении случаев нежелательного сходства (О+0, I+l+1, v+ʋ+ν+υ…). Последняя категория требует гигантских финансовых (так, уже к 2007 году, к стадии беты с довольно ограниченным набором символов, на создание шрифтов STIX было потрачено около миллиона долларов), организационных и человеческих ресурсов, и мегакорпорации типа Microsoft или Google в этом случае вынуждены идти на компромисс с точки зрения проработки рисунков: например, символ единицы в Segoe UI – основном шрифте Microsoft для интерфейсов и веб-документации – представлял собою такой ужас, что к выпуску Windows 8 был радикально изменён.

В советское время решения всех этих проблем возлагались на научно-исследовательские институты, разрабатывавшие отдельные, утверждаемые ГОСТами гарнитуры с непритязательными названиями (Школьная, Обыкновенная новая, Энциклопедическая, Литературная, Журнальная), а в современных реалиях на переднем краю фронта сражаются выдержанные в стиле «Таймс» творения под предводительством «Times New Roman» и STIX (всевозможные модификации незабвенного кнутовского Computer Modern, не очень подходящие для набора хоть чего-то, отличающегося от математических абстракций и квантовомеханических выкладок, не имеют никакого отношения к веб-дизайнерам: в прямом начертании они чрезмерно сухи, а в курсиве – по-старомодному тяжеловесны; что же касается Cambria, то… это отдельный разговор). Но если первый несвободен с лицензионной и зачастую откровенно небрежен с художественной и типографской точек зрения, то второй на данный момент времени олицетворяет главную надежду тех, кто стремится блюсти эстетическое качество текстов, относящихся к точным наукам.

И честно-то говоря, я, давно и с нетерпением следя за развитием проекта, думал, что должны пройти ещё лет пятьдесят, пока STIX, с недавних пор доступный как в веб-, так и в LaTeX-версии, дойдёт до того уровня оснащённости OpenType-фичами, на котором сейчас находится шрифт Times New Roman версии 6.80, но на минувшей неделе внезапно блеснул лучик надежды!
Читать дальше →
Total votes 29: ↑23 and ↓6+17
Comments10

(La)TeX на Хабрахабре

Reading time2 min
Views12K

Привет, хабр.


Вопрос о нативном отображении формул на хабре есть достаточно давно (сам я не так давно писал в техподдержку с этим вопросом, получил ответ, что в планах есть, но пока всё очень неопределённо), и сегодня (а, точнее, уже вчера) был поднят в комментариях к "Магия тензорной алгебры: Перезагрузка". А если заглянуть в хаб по LaTeX, то сразу же 2 последние статьи — на тему оформления формул в статьях хабра.



Самое интересное, что в принципе подключить поддержку TeX / LaTeX к любому сайту — дело пары минут и пары строк кода: достаточно подключить MathJax, ставшую уже почти что стандартной в задаче отображения формул в браузере.

Традиционно для формул на хабре используются картинки, однако всё вышесказанное наводит на вполне определённую мысль, что есть и другой вид костылей. С одной стороны, менее удобный, с другой — более.
Читать дальше →
Total votes 28: ↑24 and ↓4+20
Comments30

Математические обозначения: Прошлое и будущее

Reading time42 min
Views55K


Перевод поста Стивена Вольфрама (Stephen Wolfram) "Mathematical Notation: Past and Future (2000)".
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации

Содержание


Резюме
Введение
История
Компьютеры
Будущее
Примечания
Эмпирические законы для математических обозначений
Печатные обозначения против экранных
Письменные обозначения
Шрифты и символы
Поиск математических формул
Невизуальные обозначения
Доказательства
Отбор символов
Частотное распределение символов
Части речи в математической нотации
Стенограмма речи, представленной на секции «MathML и математика в сети» первой Международной Конференции MathML в 2000-м году.

Резюме


Большинство математических обозначений существуют уже более пятисот лет. Я рассмотрю, как они разрабатывались, что было в античные и средневековые времена, какие обозначения вводили Лейбниц, Эйлер, Пеано и другие, как они получили распространение в 19 и 20 веках. Будет рассмотрен вопрос о схожести математических обозначений с тем, что объединяет обычные человеческие языки. Я расскажу об основных принципах, которые были обнаружены для обычных человеческих языков, какие из них применяются в математических обозначениях и какие нет.

Согласно историческим тенденциям, математическая нотация, как и естественный язык, могла бы оказаться невероятно сложной для понимания компьютером. Но за последние пять лет мы внедрили в Mathematica возможности к пониманию чего-то очень близкого к стандартной математической нотации. Я расскажу о ключевых идеях, которые сделали это возможным, а также о тех особенностях в математических обозначениях, которые мы попутно обнаружили.

Большие математические выражения — в отличии от фрагментов обычного текста — часто представляют собой результаты вычислений и создаются автоматически. Я расскажу об обработке подобных выражений и о том, что мы предприняли для того, чтобы сделать их более понятными для людей.

Традиционная математическая нотация представляет математические объекты, а не математические процессы. Я расскажу о попытках разработать нотацию для алгоритмов, об опыте реализации этого в APL, Mathematica, в программах для автоматических доказательств и других системах.

Обычный язык состоит их строк текста; математическая нотация часто также содержит двумерные структуры. Будет обсуждён вопрос о применении в математической нотации более общих структур и как они соотносятся с пределом познавательных возможностей людей.

Сфера приложения конкретного естественного языка обычно ограничивает сферу мышления тех, кто его использует. Я рассмотрю то, как традиционная математическая нотация ограничивает возможности математики, а также то, на что могут быть похожи обобщения математики.
Читать дальше о математической нотации, её прошлом и будущем...
Total votes 52: ↑51 and ↓1+50
Comments9

Всякие штуки в MetaPost

Reading time8 min
Views15K
В чем рисовать векторные картинки? Для меня, как и для многих других, ответ довольно очевиден: скорее всего, в иллюстраторе. Ну или в инкскейпе. Так же я думал, когда мне заказали отрисовать штук восемьсот картинок для учебника физики. Ничего такого, просто черно-белые технические иллюстрации со всякими блоками, шарами, пружинами, линзами, машинками, тракторами и прочим подобным. Предполагалось, что верстаться книга будет в латехе, а мне были предоставлены вордовские файлы со вставленными картинками — то карандашными набросками, то сканами из других книг — и вроде бы рукопись в каком-то виде. В этом случае первая мысль — рисовать в инкскейпе — уступила фантазиям на тему «как бы это так все автоматизировать». Лучшим вариантом показался в тот момент почему-то MetaPost.



Читать дальше →
Total votes 102: ↑102 and ↓0+102
Comments18

Фетиш LaTeX (или Не пишите в LaTeX! Он только для вёрстки)

Reading time24 min
Views119K
Сейчас то время года, когда студенты выбирают себе классы для обучающих навыков. Один из навыков, который будет поощряться, — обучение LaTeX. Другие могут придти к использованию LaTeX по другим причинам: кто-то хочет сверстать книгу; кто-то слышал, что LaTeX может иметь отношение к журналу Digital Humanities; ну и так далее. Я написал это эссе в качестве предварительного введения в LaTeX. Оно не научит вас использовать редактор (я не имею квалификации для этого!), но я попытаюсь популярно объяснить тем, кто ещё не использует LaTeX, для чего именно он нужен. Это поможет им понять, стоит ли LaTeX усилий на его изучение (не говоря уже о том, чтобы просто заставить его работать). Почему такое большое эссе? Потому что многие из евангелистов превратили LaTeX в фетиш и распространяют дезинформацию о его истинных достоинствах. Хочу прояснить ситуацию.

1. Что такое LaTeX?


По словам официального сайта, LaTeX — это «высококачественная система набора и вёрстки» и «стандарт де-факто для обмена и публикации научных документов». С этим никто не спорит.
Читать дальше →
Total votes 55: ↑33 and ↓22+11
Comments71

Почему векторная графика 2D намного сложнее, чем 3D

Reading time13 min
Views20K
В последнее время появилось много фантастических исследований по 2D-рендерингу. Пётр Кобаличек и Фабиан Айзерман работают над Blend2D: это один из самых быстрых и точных CPU-растеризаторов на рынке, с инновационной техникой JIT. Патрик Уолтон из Mozilla изучил не один, а три разных подхода в Pathfinder, кульминацией чего стал Pathfinder v3. Раф Левиен построил вычислительный конвейер по технологии, описанной в научной статье Гана с коллегами о векторных текстурах (2014). Похоже, некое дальнейшее развитие получают поля расстояний со знаком: здесь независимо работают Адам Симмонс и Сара Фрискен.

Кто-то может спросить: а почему вокруг 2D так много шума? Это ведь не может быть намного сложнее, чем 3D, верно? 3D — совершенно другое измерение! Тут у нас на носу трассировка лучей в режиме реального времени с точным освещением, а вы не можете осилить невзрачную 2D-графику со сплошными цветами?

Для тех, кто не очень хорошо разбирается в деталях современного GPU, это вправду очень удивительно! Но в 2D-графике множество уникальных ограничений, которые чрезвычайно её усложняют. К тому же она не поддаётся параллелизации. Давайте прогуляемся по исторической дорожке, которая нас сюда привела.
Читать дальше →
Total votes 32: ↑25 and ↓7+18
Comments25

Довольно вычурные «Начала» Евклида в TeX-е

Reading time7 min
Views17K


«какая-то странная антикварная х██ня, написанная ирландским кулибиным в 1847 ну, хорошо, что и такая бывает, конечно» Миша Вербицкий

В 16-м году мне на глаза попались «Начала» Евклида в интерпретации Оливера Бирна. Фишка этой книги в том, что вместо буквенных обозначений навроде «треугольник ABC» там прямо в текст помещаются миниатюры частей построения, то есть, например, картинка с соответствующим треугольником. Насколько сделать такую книгу, как можно представить, было адовой работой в середине XIX века, настолько же легко, с правильными инструментами, это должно бы быть теперь. И, в общем, решил я в этом убедиться наверняка.
Читать дальше →
Total votes 136: ↑136 and ↓0+136
Comments47

Fancy Euclid's “Elements” in TeX

Reading time7 min
Views28K


In 2016, I came across Oliver Byrne's “The first six books of the Elements of Euclid.” The main feature of this book is that instead of ordinary letter designations such as “triangle ABC,” it employs inclusions of miniature pictures directly in the text, that is, for example, an image of a triangle. As difficult as it probably was in the XIX century, as easy, with the right tools, it should be to make such a book nowadays. And so I decided to find out by myself whether that's the case.
Read more →
Total votes 35: ↑34 and ↓1+33
Comments2

Various things in MetaPost

Reading time8 min
Views13K
What is the best tool to use for drawing vector pictures? For me and probably for many others, the answer is pretty obvious: Illustrator, or, maybe, Inkscape. At least that's what I thought when I was asked to draw about eight hundred diagrams for a physics textbook. Nothing exceptional, just a bunch of black and white illustrations with spheres, springs, pulleys, lenses and so on. By that time it was already known that the book was going to be made in LaTeX and I was given a number of MS Word documents with embedded images. Some of them were scanned pictures from other books, some were pencil drawings. Picturing days and nights of inkscaping this stuff made me feel dizzy, so soon I found myself fantasizing about a more automated solution. For some reason MetaPost became the focus of these fantasies.



Read more →
Total votes 16: ↑15 and ↓1+14
Comments0

Mathcha — внебрачный сын Word и Latex

Reading time4 min
Views11K


Некоторое время назад у меня возникла потребность писать несложные тексты, которые включали в себя математические рассуждения, формулы и вычисления. С помощью примеров и гайдов из интернета я смог освоить самые основы TeX и выполнять поставленные задачи. Но меня не покидала мысль о том, что я стреляю из пушки по воробьям, поэтому я очень обрадовался, когда один знакомый показал мне редактор Mathcha, который включал в себя возможности Word и TeX одновременно. Я считаю, что этот сервис слишком недооценён, и многим он понравится, поэтому я делаю обзор на него.


Дисклеймер: данный обзор основан на опыте работы автора с инструментом и не является рекламой сервиса Mathcha.io

Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments13

Домашняя страница Дональда Кнута

Reading time2 min
Views2.2K
Вчерашний комментарий Siddthartha к моему топику про архив Дейкстры навёл меня на мысль продолжить тему великих программистов и рассказать о домашней странице Дональда Кнута.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments8

Стилевой пакет DMVN

Reading time3 min
Views3.4K
Когда я увидел на главной странице топик про LaTeX в одноимённом блоге, я порадовался, что на Хабре освещается близкая мне тема (и немного опечалился, что не написал подобную статью сам ;)). За плечами имею некоторый опыт работы с TeX'ом в виде 300 свёрстанных страниц лекций по матану (три семестра), пары курсовых работ и кое-чего по мелочи. Накопленным опытом грех не поделиться — поэтому я и пишу этот материал.

Сегодня речь пойдёт о стилевом пакете, который здорово упрощает жизнь ТеХ-никам.

Читать дальше →
Total votes 40: ↑37 and ↓3+34
Comments25

Оптимизация векторной графики для LaTeX'a.

Reading time1 min
Views4.6K
Зачем нужна оптимизация: eps и pdf файлы сохраненные векторным редактором не всегда полностью совместимы с LaTeX'ом. Кроме того, уменьшение их размера положительно сказывается на размере документа и скорости работы просмотрщика dvi.

Кроме собственно векторного редактора, нам понадобятся eps2eps и epstopdf. Эти две утилиты существуют и в Windows, и в Linux, и в Mac OS. В Windows они есть в составе MiKTeX. В Linux и Mac OS, насколько мне известно, они так же приходят с TeX'ом.

Весь процесс выглядит следующим образом. Создаем изображение в редакторе и сохраняем в eps. Прогоняем его через eps2eps и уже этот оптимизированный файл — через epstopdf. Оптимизированные eps и pdf подаем LaTeX'у (на самом деле pdfTeX'у). Напомню, что при компиляции \includegraphics{your_image} в dvi — автоматически используется your_image.eps, в pdf — your_image.pdf.
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments0

TeX-like разметка на Javascript

Reading time2 min
Views2.4K
При написании console-like форума был задан вопрос: «какую разметку лучше использовать?». Среди вариантов были стандартный бб-код ([b]bold[/b]), вики-разметка(*bold*), или TeX-like разметка (\b{bold}). После недолгого совещания выбор был остановлен именно на TeX-like. Была написана небольшая библиотека, которая, по моему мнению, достаточно интересна, расширяема и гибка. Желающие посмотреть пример могут перейти по ссылке freecr.ru/TeX
Под хабракатом у меня исходный код под лицензией LGPL, объяснение возможностей, принципов и примеры написания плагинов.
Total votes 22: ↑20 and ↓2+18
Comments35
1