четвер, 31 грудня 2009 р.

Формули в HTML


У цьому році минуло 20 років з того часу, як вийшла третя версія TeX. З того часу ця система фактично не змінювалася — тільки виправлялися помилки, наближуючи версію до числа π. Попри свій солідний вік, TeX досі дає користувачеві кращий інструментарій для роботи з текстом ніж HTML разом із JavaScript! Я не перестаю дивуватися тому, що всі розширення HTML стосуються чого завгодно — медія, форм, стилів — тільки не тексту! І якщо віднедавна стало можливим вставляти слова з переносами в HTML, то формули й досі вставляють старим дідівським способом — картинками...

Для вставки картинок формул є два способи: зберігати відповідні картинки і вставляти їх вручну, або ж запитувати їх динамічно за допомогою JavaScript. У першому випадку можна бути абсолютно впевненим, що після -надцятої формули вам це остогидне. У другому втрачаються усі переваги простого тексту — формулу не можна передати на канал RSS тощо. Я вже не кажу про залежність від сервера, де ці картинки зберігаються, або генеруються. Особисто я неодноразово бачив документи HTML з формулами, замість яких лишилися тільки порожні квадратики, оскільки картинки більше не завантажуються...

Нормальні оглядачі зараз підтримують формат MathML, але він досі не є частиною стандарту HTML (що було б найкращим варіантом) і тому вмикається якось хитромудро навіть там, де його реалізовано. Але від такої реалізації користі мало: його, знову ж таки, неможливо передати на канал і, до того ж, не можливо скопіювати у WYSIWYG редактор для HTML.

Для того, щоб HTML перестав гальмувати розвиток наукової блоґосфери, по-моєму, життєво необхідно дати раду з формулами. Google мене тут знову розчарував — вони теж вирішили не морочитися і вставляти картинки! Але я вважаю, що сучасний стандарт HTML зі стилями дозволяє повноцінно відображати всі формули за допомогою чистого HTML+CSS. Для цього я почав писати конвертер, але, на жаль, не маю достатньо вільного часу, а головне — не знаю HTML на такому рівні, щоб зробити відображення формул красивим і повністю незалежним від оглядача Internet Explorer.

Схоже, що новий проєкт MathJax розв'язує цю проблему краще. Формули відображуються майже так само, як у TeX, причому в усіх оглядачах. На жаль, зараз все реалізовано через класи, а отже, при копіюванні формули кудись, де ці класи невідомі, наприклад у GMail або в канал, форматування автоматично порушується. Сподіваюся, вони незабаром про це здогадаються, і зроблять так, як у мене — з можливістю копіювати і редагувати формули в будь-якому редакторі. Мій конвертер поки що на дуже ранній стадії і багато чого там нема, проте прості формули виглядають, по-моєму, цілком пристойно.

8 коментарів:

  1. Виникла проблема з введенням назв робіт, які містять формули (знаки корінь, сума...), у репозитарій. Чи не знаєш часом - є якісь універсальні правила запису формул і раптом зокрема для репозитаріїв? (як приміром заносять тут)

    ВідповістиВидалити
  2. Ну, так і за­но­сять, на­скіль­ки я знаю. Зі встав­кою у ви­гля­ді фор­мул TeX.

    ВідповістиВидалити
  3. Дякую за відповідь.

    1. А для чого використовують "$" у попередньому прикладі?

    2. Тобто, можна цю таблицю спокійно використовувати?

    3. З області фантастики, але часом на траплялось якогось "регламентуючого документу" щодо цього?

    ВідповістиВидалити
  4. 1. Ко­ли встав­ля­ють фор­му­лу в TeX, її об­гор­та­ють сим­во­ла­ми $. Це озна­ка то­го, що це фор­му­ла і її тре­ба транс­лю­ва­ти в ма­те­ма­тич­но­му ре­жи­мі.

    2. Так.

    3. Чо­го не знаю, то­го не знаю. :)

    ВідповістиВидалити
  5. А можливо ще знаєш, як записати формули органічної хімії?

    ВідповістиВидалити
  6. Питання знімається. Їх можна ж записати по різному.

    ВідповістиВидалити
  7. http://alexeev.org/gmailtex.html - щодо формул у Gmail. Є такий додаток, працює на разі не дуже добре, але ідея, на мою думку, хороша.

    ВідповістиВидалити
  8. Я про цей до­да­ток знаю, але він теж встав­ляє кар­тин­ки за­мість фор­мул.

    ВідповістиВидалити