Ненависти псто

Писал сегодня некоторое «пояснение» к написанному мной куску программы. Пришлось немного «разъяснить» примененную в программе аппроксимацию, для чего в ворде (!), пусть даже 2007-м, была с трудом напечатана такая формула:

formula-word

Для того, чтобы напечатать эту формулу, мне понадобилось пять (!) минут — в основном ушедших на тыканье мышкой в панельку с «компонентами» формулы. Посчитайте, сколько времени займет печать такой строчки в TeX:

$$B = B_{11} \frac{x-x_2}{x_1-x_2} \frac{y-y_2}{y_1-y_2} + B_{21} \frac{x-x_2}{x_1-x_2} \frac{y-y_1}{y_2-y_1} + B_{12} \frac{x-x_1}{x_2-x_1} \frac{y-y_2}{y_1-y_2} + B_{22} \frac{x-x_1}{x_2-x_1} \frac{y-y_1}{y_2-y_1}$$

А теперь давайте обозначим дроби \frac{x-x_2}{x_1-x_2} и \frac{y-y_2}{y_1-y_2}, например, греческими буквами хи и кси. В TeX-е:

$$B = B_{11} \chi \xi + B_{21} \chi (1 - \xi) + B_{12} (1 - \chi) \xi + B_{22} (1 - \chi) (1 - \xi)$$

В ворде… В ворде предстоит долгое тыканье в меню вставки символа. Почему-то из всего греческого алфавита в «быстром доступе» находится 13 букв. Хорошо хоть, что тэта и эпсилон — в двух начертаниях. Выбор букв меня тоже удивляет.

В общем, даже это можно стерпеть. Раздражает другое. При перемещении слева направо по формуле типа x-x2 совершенно нелогично перемещается курсор. В общем-то, логика в этом есть, и я, как программист, ее понимаю. Формула просто-напросто разбита на подформулы, примерно так:

formula-tree

При нажатии курсорных клавиш происходит обход этого дерева. Фокус последовательно перемещается от левого x ко всей формуле, затем к «подформуле» из правого x и двойки, затем к правому x, затем к двойке. Если мне хочется нажать Delete, когда курсор стоит перед правым x, то удаляется не правый x, а вся подформула целиком.

Замечу, что если использовать «старые» средства ворда и сделать подчеркивание «шрифтовыми» средствами — subscript и superscript долгое время были в ворде чуть ли не единственными нормальными инструментами для ввода чего-то, похожего на формулы, то курсор будет перемещаться более логично, строго слева направо.

Мораль? Не надо в WYSIWYG-редакторе смешивать программное представление элементов с «графическим». Вопрос на засыпку: курсор стоит в последней строке таблицы, таблица представлена в памяти одномерным массивом (думаю, все представляют такой «метод» адресации — a[m*N+n]). Куда должен переместиться курсор при нажатии клавиши «вниз»?

Неправильный ответ — какая нам разница, в какой клетке какой строки стоит курсор? Просто инкрементируем индекс активной ячейки, как и в прочих случаях.

Правильный ответ один: никуда не должен перемещаться.

Правильный ответ два: в первую ячейку того же столбца таблицы.

Правильный ответ три: курсор должен переместиться наружу таблицы.

Не знаю, почему разработчики и тестировщики пользовательского интерфейса в Word 2007 не углядели страшной нелогичности в редакторе формул. Еще хуже — если такое поведение было прописано в спецификации. В любом случае, в систему для набора математических текстов Word не превратился.

Конечно, порадовала (наконец-то!) удобная система стилей и заголовков. Из малозаметного пункта на перегруженной опциями панели предыдущих версий Word стили превратились в едва ли не самый заметный элемент на «ленте». Я всегда подкалывал [info]vanchez, когда тот колупался в майкрософтском редакторе с его слабыми (если не пользоваться пресловутыми стилями) возможностями по созданию всяческих оглавлений, демонстрируя ему замечательные возможности LaTeX. А ведь возможности по созданию «логической» структуры документа были еще в Word 6.0 (кто помнит такую древность?), да и в руководстве Microsoft Press по Word 7.0 были описаны.

Причина незнания народа о том, что Word имеет функции текстового процессора, наверное, в том, что каждое руководство по Word начинается с базовых и необходимых функций, обрастает огромным количеством скриншотов, а затем, где-то на середине, его просто бросают читать. А вот любая книга по LaTeX скриншотов лишена полностью, и почти все успевают дочитать до описания команды \chapter.

Кстати, а кто до сегодняшнего дня знал о возможностях ворда по оформлению содержания? А кто пользовался?

Ненависти псто: 6 комментариев

  1. Мне тоже в ворде редактор формул не нравился — мышкой тыкать долго и неудобно, но если часто им пользоваться, можно запомнить, по каким сочетаниям клавиш можно вствать дорбь, к примеру. Сейчас пользуюсь OpenOffice, сделал в нем курсач, волне удобно — можно или той же мышкой пощёлкать, или вручную записать эту формулу:
    B=B_11{{x-x_2}over{x_1-x_2}{{y-y_2}over{y_1-y_2}}} + B_21{{x-x_1}over{x_2-x_1}{{y-y_2}over{y_1-y_2}}}
    + B_12{{x-x_2}over{x_1-x_2}{{y-y_1}over{y_2-y_1}}} + B_22{{x-x_1}over{x_2-x_1}{{y-y_1}over{y_2-y_1}}}
    Те же греческие хи и кси записываются в виде:
    %chi %xi

  2. Вот что тебе надо было в ворде печатать:

    B = B_11 (1-x_2)/(x_1-x_2 ) (y-y_2)/(y_1-y_2 ) + B_21 (x-x_2)/(x_2-x_1 ) (y-y_2)/(y_2-y_1 ) + B_12 (x-x_2)/(x_1-x_2) (y-y_1)/(y_2-y_1) + B_22 (x-x_1)/(x_2-x_1) (y-y_1)/(y_1-y_1)

    Ни одного движения мышью, и на десятки процентов короче твоего tex.

    Да, и если ты в ворде напечатаешь \pi \phi \xi получишь как раз вожделенные πϕξ.

    1. HTML склеил два пробела в один, если скопируешь из камента — получится неправильно.

      На формулах шо ты «написал» путём использования GUI инструментов, нажми правой кнопкой и выбери «linear», сразу поймёшь как след.раз писать аналогичные формулы.

    2. > на десятки процентов

      Если быть совсем точным, то на 32/215, что примерно равно 15%.

      К способам ввода претензий особо нет, хотя до TeXа кое-где — как до Китая пешком. Как, например, различить в Ворде $\int\limits_a^b$ и $\int_a^b$ (у одного пределы интегрирования — сверху и снизу, у другого — сбоку)? А как ввести знак интеграла с клавиатуры? \int не катит (а более редко используемые \iint и \iiint почему-то есть).

  3. Не знаю насчет ТЕХ, я его не осилил. Но вот маткадовский редактор рвет вордовский как тузик тряпку. Зная его хоткеи твою же формулу я нарисовал бы в нем секунд за 30. А потом оттуда скопипастил бы в ворд (он как картинко при этом воткнется)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *