Добрый день, уважаемый читатель! Я недавно на Хабре, за это непродолжительное время опубликовал две статьи, и столкнулся со следующей проблемой: пользователи неоднократно писали в комментариях, что математические формулы во многих браузерах и различных устройствах отображаются некорректно, несмотря на то, что я добавлял их положенным образом через иконку с сигмой (в качестве разметки используется LaTex). Одному из пользователей пришлось даже зайти в мобильную версию Хабра в браузер Mozilla Firefox на iOS, чтобы прочесть формулы! Еще в первой своей статье я обещал решить эту проблему в скором времени. Сейчас оно пришло.

image
Рисунок 1. Слева то, что должно быть, а справа – то, что отображается.

Очевидно, что перед публикацией статьи, я проверяю ее в режиме предпросмотра. Но у меня Хабр работает очень стабильно, все выглядит так, как должно. Как же помочь дорогим читателям и подписчикам?

У меня возникло несколько идей по поводу того, как можно решить эту проблему.

Решение 1


image
Рисунок 2. Старый добрый способ

Конечно, это может показаться немного глупым, но проще всего – написать формулу на листе бумаги, сфотографировать/отсканировать, обрезать лишнее, и добавить в статью в качестве изображения.

Статья получится более винтажной и будет выглядеть необычно на фоне других статей. При том, не нужно учить верстку LaTex. Но проблема в том, что если формул очень много (у меня порой их количество доходило до 16!), это становится чрезвычайно времязатратно и геморройно.

Решение 2


Скачать и установить программу-транслятор, которая будет использовать полноценный синтаксис LaTex. Их великое множество: TexnicCenter, WinEdit, TextMate и т. д.

Это, несомненно, весьма неплохой вариант. Проблема в том, что не у каждого из нас есть время на изучение еще одной вёрстки. LaTex значительно отличается от той же привычной html. В большинстве программ поддерживается конвертация в pdf, так что потом Вам придется делать скриншот или конвертировать в png/jpg/gif и обрезать лишнее.

Решение 3


image
Рисунок 3. Пожалуй, наилучший вариант

Нет, это не реклама. Я рекомендую этот сайт, потому что сам буду пользоваться им в дальнейшем. На нем все «бесплатно, без регистрации и СМС». Разметка LaTex, но итоговые изображения можно загрузить на Ваше устройство в разичных форматах. Png или gif поддерживается любым браузером и вам не нужно будет учить все теги, структуру LaTex-документа и т. д, а также беспокоиться о корректности отображения формул. Использование на интуитивном уровне.

На этом все. Если Вы нашли какие-либо иные решения, я буду рад ознакомиться с ними в комментариях! Спасибо, что прочли до конца!

Комментарии (38)


  1. vilgeforce
    29.04.2019 15:32
    +5

    Латекс — это в магазинах для взрослых и в перчатках. То, о чем вы пишете — «латех».


    1. Ocelot
      29.04.2019 16:16
      +3

      Угадал первый комментарий по заголовку статьи.


      1. vilgeforce
        29.04.2019 16:17

        Я удивлен что именно мой — первый :-)


    1. Enthusiastic_programmer Автор
      30.04.2019 07:59

      Название статьи — точно не кликбейт!


      1. masai
        01.05.2019 16:03

        Тогда исправьте, пожалуйста, на официальный «латех», а лучше вообще «LaTeX». Чтоб не будоражить публику. :)


  1. rjhdby
    29.04.2019 17:54

    Вот спасибо! Как раз находился в поиске подобного сервиса


    1. Enthusiastic_programmer Автор
      30.04.2019 07:53

      Всегда пожалуйста!


  1. Keyten
    29.04.2019 18:55
    +2

    Долго-долго ждали латех на хабре, пилили разные свои решения, а в итоге пришли опять к картинкам.


    1. Refridgerator
      30.04.2019 06:21

      Ожидал увидеть вот это решение.


      1. rjhdby
        30.04.2019 08:16

        Это плохое решение, поскольку завязано на сторонний сайт, доступность которого не гарантирована.


        1. Refridgerator
          30.04.2019 08:29

          Исходный код открыт и формулы не протухнут, если вдруг что.


          1. rjhdby
            30.04.2019 09:14

            Не совсем понятно, как открытый код поможет когда этот сторонний сайт ляжет и во всех статьях, его использующих, формулы превратятся в тыкву.


            1. Refridgerator
              30.04.2019 09:20

              Открытый код поможет использовать свой собственный, а не сторонний, сайт.


              1. rjhdby
                30.04.2019 09:31

                И вместо небольшой вероятности массового былинного отказа получим фрагментарные, но зато частые отказики то тут то там.


                1. Refridgerator
                  30.04.2019 10:04

                  Ну если хоститься на домашнем компьютере — тогда да. И Хабр — это тоже сторонний сайт, если что.


            1. parpalak
              30.04.2019 15:13

              Не ляжет. Благодаря умной системе кеширования выдерживает не то что хабраэффект, а хакер-ньюз-эффект: https://news.ycombinator.com/item?id=10056464


              1. rjhdby
                30.04.2019 15:23

                Может не выдержать ромкомнадзора и случайного опоздания в оплате хостинга


        1. parpalak
          30.04.2019 15:10

          Хм, вы же чуть выше написали про другой сторонний сайт прямо противоположный по смыслу отзыв:


          Вот спасибо! Как раз находился в поиске подобного сервиса


          1. rjhdby
            30.04.2019 15:22

            Есть разница между созданием картинки с формулой на стороннем сайте и вставкой ее через хабрастораж и вставкой в статью ссылки на сторонний сайт, который «на лету» будет эту картинку генерировать


            1. parpalak
              30.04.2019 17:44

              Понял вашу позицию. Мы по-разному риски оцениваем.


    1. Enthusiastic_programmer Автор
      30.04.2019 07:58

      У Вас отличная статья! И ваше решение с использованием скрипта — чудесный вариант для продвинутых пользователей. Но есть обыкновенная лень или незнание JS. Мне кажется, лучше я, автор, сделаю картинки для пользователя, чем он будет испытывать дискомфорт от дополнительных телодвижений. Спасибо за Ваше решение!


  1. extempl
    29.04.2019 19:36
    +2

    Категория "вредные советы". Мы тут так долго добивались поддержки формул не для того, чтоб вставлять их впоследствии картинками. Правильное решение — обратиться в Техподдержку для выявления и решения проблемы.


  1. abcdsash
    30.04.2019 04:02

    в «пожалуй, наилучшем варианте» надо делать так, чтобы оно читалось
    а это означает, что перед стандартной функцией надо ставить "\", а аргумент брать в скобки.

    Иначе получается… ну вот то и получается, что там автор написал… все слитно и все наклонно и убого.

    Но тут выхожу я — весь в белом и с розочкой и учу писать более менее правильно:

    $
    \int\cos(x)\mathrm{d}x = \sin(x) + C
    $

    теперь — пояснять!
    там под интегралом есть еще \mathrm{} — это сделано, чтобы внутри формулы «dx» было написано с прямой d, потому что это не константа и не переменная в формуле (которые принято делать наклонными в латехе)

    и вот результат:

    image


    1. Enthusiastic_programmer Автор
      30.04.2019 08:01

      Здравствуйте! Теперь формула выглядит слишком прекрасно!


    1. parpalak
      30.04.2019 18:01

      Кстати, в русской типографской традиции дифференциал обозначается всё-таки курсивным d. Вот пример из ландавшица, издание 1963 года:



      1. abcdsash
        02.05.2019 00:44

        нет, d (знак дифференциала) в формулах всегда пишется прямым соголасно ГОСТ 54521-2011, так что не надо ссылаться на некие «русские типографские традиции» в то время, когда есть конкретный стандарт. Об этом говорится сразу почти в начале, под заголовком «3 Переменные, функции и операторы», второй абзац буквально.


        1. parpalak
          02.05.2019 11:13

          Ок, пишите дифференциал по стандарту, вас всё равно поймут.


          А вообще, и в этом стандарте, и в оригинальной версии ISO 80000-2:2009 написаны странные вещи. Никогда не видел, чтобы мнимая единица обозначалась прямой i, а не курсивной i. При этом на вашем же скриншоте ниже мнимая единица курсивная :)


          Интересно, что и в английской, и в русской википедии дифференциалы курсивные: https://en.wikipedia.org/wiki/Integral
          Хотя, казалось бы, в электронном издании внедрить стандарт проще всего.


        1. masai
          03.05.2019 17:08

          нет, d (знак дифференциала) в формулах всегда пишется прямым соголасно ГОСТ 54521-2011, так что не надо ссылаться на некие «русские типографские традиции» в то время, когда есть конкретный стандарт.

          Вы переоцениваете роль стандарта, который, (согласно ему же самому) описывает математическую нотацию в самих же стандартах.


          Кроме того, насчёт «всегда пишется» вы погорячились. Вот же примеры из конкретных книг. В большинстве хороших книг от крупных уважаемых издательств, что мне встречались, пишут не по стандарту. Значит не всегда пишется, не так ли?


          Получается как в анекдоте: «Все идут не в ногу, один я в ногу».


    1. masai
      01.05.2019 15:29
      +1

      В скобки аргумент-переменную брать не нужно, а dx как раз следует отбить пробелом (см., например, справочник Гиленсона):


      \int\cos x\, dx = \sin x + C


      Вот для сравнения формула из справочника Бронштейна и Семендяева:



      1. abcdsash
        02.05.2019 00:57

        ой ли? не надо выдумывать свои правила только насчет переменных не взятых в скобки и приводить в подтверждение этого весьма бездарный вариант типографики, судя по начертанию, к тому же и набранный в ворде для издания…
        Если есть какие то вопросы — ищите стандарт и следуйте ему.
        Цитата из стандарта (ГОСТ Р 54521-2011):

        Аргумент функции указывают в круглых скобках после символа функции без пробела между символом функции и первой круглой скобкой
        . Однозначность этой цитаты Вам, надеюсь, понятна? Далее в стандарте говорится, что в определенных случаях (в виде исключения для частных случаев) скобки могут быть опущены и ставится пробел. Если Вы понимаете русский язык, то увидите, что там есть «могут быть», то есть по сути «иногда допустимо». А вовсе те так как Вы утверждаете в своем посту, ссылаясь на некий справочник.

        Привожу тут как раз выдержку:



        не советуйте людям того, в чем не понимаете.


        1. Zenitchik
          02.05.2019 13:09

          Прошу прощения, написано: «Математические константы изображают без наклона (вертикально)» — а далее из трёх приведённых констант без наклона изображена только одна, а две — курсивом.


        1. masai
          02.05.2019 15:40

          ой ли? не надо выдумывать свои правила только насчет переменных не взятых в скобки

          Заметьте, что я их не выдумал, а сослался на справочник.


          приводить в подтверждение этого весьма бездарный вариант типографики, судя по начертанию, к тому же и набранный в ворде для издания

          Вы о картинке с формулой из 13-го издания справочника Бронштейна и Семендяева, изданного в 1986 году? Ну, учитывая, что Word появился в 1983 году, то, может, им и пользовались, не берусь судить. :) Я думаю, в издательстве «Наука» оценили бы Вашу ремарку про бездарную типографику. :)


          Ладно, вот пример посвежее (3-й том задачника Кудрявцева, издательство «Физматлит», 2003 год):



          Тут и скобок нет, и буква d курсивная, и dx отбито пробелом. Разумеется, в случаях, когда есть неоднозначность, скобки будут.


          Кстати, если Вы приведёте пример из книги какого-то крупного уважаемого издательства, где cos x будет со скобками, буду благодарен. Не отрицаю, что такие примеры есть, хоть я их не встречал.


          Цитата из стандарта (ГОСТ Р 54521-2011)

          Заметьте, что это не стандарт оформления научно-технической литературы и не стандарт для типографского оформления текстов.


          (в виде исключения для частных случаев)
          «могут быть», то есть по сути «иногда допустимо».

          Во-первых, если допустимо, то почему вы спорите? Вот же в самом стандарте пример синуса без скобок. Во-вторых, в стандарте ничего не сказано про «исключения» и «иногда».


          Но хорошо. Допустим, такова семантика. Примем, что «могут быть» предполагает некий условно-допустимый вариант, который не следует широко применять.


          А теперь открываем стандарт ГОСТ Р 54521-2011 и читаем раздел «Область применения»: «Рекомендуемые в стандарте символы и знаки предназначены главным образом для использования в стандартах, но могут быть использованы также и в других областях.»


          Выходит, следуя этой логике, положения этого стандарта за пределами оформления стандартов по сути лишь «иногда допустимы»?


          Вам, надеюсь, понятна?
          Если Вы понимаете русский язык
          не советуйте людям того, в чем не понимаете.

          Эти части, пожалуй, оставлю без комментариев.


  1. softhamster
    30.04.2019 07:53

    Но проблема в том, что если формул очень много (у меня порой их количество доходило до 16!)


    16! = 2.092279e+13. Извините, кто-то же должен был пошутить.


    1. Refridgerator
      30.04.2019 07:58

      20922789888000 тогда уж (а наблюдение и действительно забавное).


  1. Dr-Caligari
    01.05.2019 16:57

    Немного оффтопа
    Верните пост про большие яйца :) Или скиньте где еще его можно почитать, друзьям не успел скинуть.


    1. Enthusiastic_programmer Автор
      01.05.2019 17:19

      Добрый день! К сожалению, на Хабр пост не вернется. Но для Вас я загрузил его на Яндекс. Спасибо за Ваш интерес!


      1. Zenitchik
        01.05.2019 18:16

        Неплохое дополнение для Кеплеровых бочек.


        1. nad_oby
          02.05.2019 09:57

          Заинтересовался формулой для формы яйца, мне она показалась недостаточно точной.
          Как почти всегда кто-то уже провёл исследование.
          http://www.mathematische-basteleien.de/eggcurves.htm