Расчеты на прочность в LibreOffice и выбор текстового редактора

    Проблемы оформления расчетов и что такое iMath


    Наверное, многие, кто учился в техническом ВУЗе, сначала делали вычисления своих курсовых в Mathcad (или другом математическом пакете), а затем старательно набирали эти же формулы в MS Word с подстановкой чисел. Потом забыли про это.


    Когда меня взяли конструктором по расчетам на прочность — пришлось вспомнить.



    Нет, современные технологии МКЭ используются (SolidWorks, Ansys), но формулы с методиками по ГОСТ никто не отменял. Тут принципы не изменились, хотя со времен защиты моего диплома прошло более 10 лет. Люди сначала набирают формулы, уже набранные в Mathcad, а потом руками подставляют каждое число в формулу и записывают результат.


    $\boxed{d=\sqrt{8F_2i\overπτ_2}=\sqrt{8 · 200 · 5\over3.14 · 900}=1.68}\text{мм}$


    Зачем писать цифры после формулы, если результат считает компьютер?

    Это спорное мнение, такие записи действительно иногда помогают найти ошибку. Просто нонсенс делать это руками. Люди пытались решить эту проблему с разных сторон: существуют TechEditor, CalcPad, NormCad. Но не о них речь, на практике применяю только 2 решения:


    1. Оформление прямо в Mathcad и распечатка как есть.


    2. Оформление в LibreOffice Writer с плагином iMath — он считает и подставляет числа.



    Подход 1 применим не для всех документов:


    • рамки ГОСТ, таблицы, автонумерацию рисунков, ссылок в Mathcad не особо реализуешь;


    • для "оформленных" расчетов требуют подставлять числа и перечислять переменные с пояснением после формулы:


      $$display$$ \boxed{d=\sqrt{8F_2i\over πτ_2}=\sqrt{8 · 200 · 5\over3.14 · 900}=1.68}\text{мм,}\\ \begin{align} \text{где } & \boxed{F_2=200}\text{Н - рабочее усилие на пружине;}\\ & \boxed{i=5}\text{ - индекс пружины;}\\ & \boxed{τ_2=900}\text{МПа - допускаемое напряжение сдвига.} \end{align} $$display$$


      если подставить значения можно в старом Mathcad 15, то с присвоением значений после формулы — проблемы что в Mathcad 15, что в Mathcad Prime;


    • общее ограничение оформительских возможностей, например, нельзя вывести значение переменной без её имени и знака равенства.



    Подход 2 тоже ограничен возможностями iMath, и иногда приходится копипастить таблицы из Mathcad в LibreOffice Writer, но не приходится хотя бы каждую цифру руками набирать в каждой формуле.


    Зачем нужен text expander при наборе формул iMath


    Простой пример (серым показан исходный текст):


    $$display$$ \boxed{ \color{gray}{\text{%ii @nospace\{%DELTA x\}@ EQDEF nospace\{%DELTA x\}=10}}\\ \Delta x=10 } $$display$$


    Многовато для переменной из двух символов. Но решается проблема просто, т.к. iMath поддерживает Юникод и существуют программы, раскрывающие сниппеты не только в Вашем любимом текстовом редакторе, но вообще везде. С их помощью можно набирать греческие буквы просто и без мышки.


    Назначим сниппеты по аналогии с Mathcad, где это делается так: D, Ctrl+G → Δ, у нас будет так: DG → Δ. Тогда и читать исходник формулы станет проще:


    $$display$$ \boxed{ \color{gray}{\text{%ii @Δx@ EQDEF Δx=10}}\\ \Delta x=10 } $$display$$


    Из бесплатных программ остановился на этих, они решают проблему:


    • aText (некоторые функции платные, пока без них приемлемо) Windows7+/MacOS
      Здесь лежат греческие буквы и другие сниппеты для оформления расчетной документации, загружаются через File→Открыть и надо выбрать csv в диалоге, перед загрузкой можно удалить Default Group и Examples
    • espanso Windows8+/MacOS/Linux

    Причем здесь текстовый редактор


    Проблема №1. Чтобы отобразить переменные после формулы, нужно просто присвоить их скрытно перед формулой и затем отобразить после формулы их значения (серым показан исходный текст)


    $$display$$ \boxed{\small\color{silver}{ \text{%%ii @F_2@ EQDEF* F_2=200}\\ \text{%%ii @i_{}@ EQDEF* i_{}=5}\\ \text{%%ii @τ_2@ EQDEF* τ_2=900} }} \boxed{ \small\color{silver}{ \text{%%ii @d@ EQDEF d=sqrt{{8 · F_2 · i_{}}over{%pi · τ_2}}}\\ \text{%%ii TEXT =sqrt\{\{8 · _ii_VAL(F_2)_ii_ · _ii_VAL(i_\{\})_ii_\}}\\ \text{over\{_ii_VAL(%pi)_ii_ · _ii_VAL(τ_2)_ii_\}\}=_ii_VAL(d)_ii_} }\\ d=\sqrt{8F_2i\overπτ_2}=\sqrt{8 · 200 · 5\over3.142 · 900}=1.682 }\text{мм,}\\ \begin{align} \text{где } & \boxed{\small\color{silver}{\text{%%ii PRINTVAL F_2}}\\F_2=200}\text{Н - рабочее усилие на пружине;}\\ & \boxed{\small\color{silver}{\text{%%ii PRINTVAL i_{}}}\\i=5}\text{ - индекс пружины;}\\ & \boxed{\small\color{silver}{\text{%%ii PRINTVAL τ_2}}\\τ_2=900}\text{МПа - допускаемое напряжение сдвига.} \end{align} $$display$$


    В чем проблема? А в подстановке значений. Здесь пришлось скопипастить d=sqrt{{8 · F_2 · i_{}}over{%pi · τ_2}}}, немного изменить до вида =sqrt{{8 · F_2 · i_{}}over{%pi · τ_2}}}=d и обернуть каждую переменную в _ii_VAL()_ii_. На практике это быстрее чем вместо оборачивания выискивать значения и вписывать их. Но работа лишняя.


    Автоматизировать эту подстановку в iMath проблематично, но можно зайти с другого конца — сделать эти правки с помощью макросов в текстовом редакторе.


    Проблема №2. Вместе со сгенерированным текстом исходник формулы довольно тяжело воспринимается


    %%ii @d@ EQDEF d=sqrt{{8 · F_2 · i_{}}over{%pi · τ_2}}
    d=sqrt{{8 · F_2 · i_{}}over{%pi · τ_2}} %%gg
    %%ii TEXT =sqrt{{8 · _ii_VAL(F_2)_ii_ · _ii_VAL(i_{})_ii_}over{_ii_VAL(%pi)_ii_ · _ii_VAL(τ_2)_ii_}}=_ii_VAL(d)_ii_
    =sqrt{{8 · 200 · 5}over{3,142 · 900}}=1,682 %%gg

    Лечится подсветкой сгенерированного отдельным цветом, опять же в текстовом редакторе.


    Проблема №3. Часто приходится искать пропавшую скобочку. Во встроенном редакторе формул подсветку парных скобок никак не добавят. Тоже решается использованием внешнего редактора.


    Разработчик iMath, Jan Rheinlaender, пошел мне навстречу и добавил редактирование формул из внешнего редактора. Дело за малым — выбрать его и настроить.


    Требования к редактору такие:


    • бесплатность;
    • макросы;
    • множественное редактирование (потребуется для использования в макросах, и просто удобно);
    • подсветка пользовательского синтаксиса;
    • подсветка парных скобок;
    • удобство редактирования английского текста вперемешку с русским, чтобы набирать такое, например:
      Q_д=0.785 · D_сп^2 · p
    • кроссплатформенность (желательно);
    • сохранение без подтверждений при закрывании (желательно).

    Сравнение текстовых редакторов


    Sublime Text


    Этот редактор выглядит привлекательнее остальных. Формально он не бесплатный, но напоминает об этом даже не каждый день и ничем больше не досаждает.


    Смотрим, можно ли настроить подсветку своего синтаксиса. Да, у него есть возможность описать его в yaml. Пишем файл подстветки, результат выглядит отлично:



    Теперь записываем макросы: Ctrl+Q, Ctr+F, пишем регулярку для выделения переменной, выделяем, переводим курсор влево, пишем _ii_VAL(, выделяем регуляркой опять, переводим курсор вправо, пишем )_ii_, нажимаем Ctrl+Q. Проверяем что получилось — запускаем макрос с помощью Ctrl+Shift+Q. И ничего. Не выделяется оно, и люди жалуются с 2009. Да...


    Ладно, разберёмся позже. Попробуем пока настроить Sublime, чтобы он сохранял файл без подтверждений и выходил по одной кнопке. И тут снова проблема — в Sublime нельзя назначить 2 действия на один шоткат. Окей, ставим плагин для поддержки назначения нескольких действий, но сохранить без подтверждений и закрыть редактор все равно не получается. Не проблема — у нас же есть макросы! Нажимаем Ctrl+Q, запись пошла, нажимаем Ctrl+S — сохранились, теперь выходим...



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


    Vim


    Настроить его можно, но каково набирать русские подписи к переменным. Везде описываются решения с langmap и keymap, но они не достаточны. В статье Vim и переключение раскладок: о наболевшем рекомендуется плагин, который переключает раскладку. Можно найти еще одно вроде бы рабочее решение.


    Однако даже при решении проблемы с русской раскладкой остается вопрос: сколько инженеров использует vim в своей работе? Его даже из программистов только часть использует. Откладываем vim в сторону и ищем дальше.


    [W]indows [L]inux [M]acOS WLM WLM W__ WLM W__ W__ WLM WLM
    поиск регулярками + + + + + + + +
    замена внутри выделения + + + + + + + +
    подстановки (\0, \1, ...) + +⁸ + + + + + +
    ✎ добавить курсор мышью + + + - + + ?
    ✎ добавить выделение совпадения ^D ^⇧D - ^⇧D - - ^⇧D⁴ +⁰
    ✎ выделить все совпадения ⌥F3 Ø - - - ^⇧␠ - ?
    ✎ выделить все совпадения из диалога поиска ⌥⏎ ⌥E - - - - - ?
    ✎ добавить курсор строкой ниже ^⌥↓⁵ ⌥⇧↓ -⁶ -⁶ - -⁶ -⁶ +⁰
    ⬤ макрос редактирования текста + +⁰ + - +⁰ - + +
    ⬤ запись поиска - +⁰ + - - - + +
    подсветка парных скобок +⁷ + + +⁰ + + +
    возможность определить сложный синтаксис + + ± ? ? ? + ±
    удобство работы с русским текстом + + + + + ±⁴ ±⁰
    поддержка плагинов + + + ± + - + +
    менеджер плагинов + + + - + - -
    палитра команд ^⇧P ^⇧P ^M⁰³ - - - ^⇧E⁴ -

    Клавиши (для Windows): ^ — Ctrl, ⇧ — Shift, ⌥ — Alt, ␠ — Space, ⏎ — Enter, ←↑↓→ — стрелки, Ø — не назначено
    ⁰ — делается плагинами
    ¹ — требует настройки
    ² — по умолчанию русский текст не отображается, нужно активировать code.page=65001 в файле настроек
    ³ — шоткат NppMenuSearch конфликтует с пометками, нужно перенастраивать
    ⁴ — шоткаты, содержацие буквы, работают только в английской раскладке
    ⁵ — конфликтует с шоткатом переворачивания экрана
    ⁶ — есть шоткат ⌥⇧↓, но на самом деле он выполняет прямоугольное выделение
    ⁷ — без настройки нижнее подчеркивание не очень заметно
    ⁸ — используются обозначения $1-$9, а не \1-\9


    Что тут можно обобщить? Удивляют 2 вещи: невозможность записи поиска в макросах Sublime и невозможность (или я плохо искал?) подстановки при поиске с заменой в CudaText. Тем не менее, выбора в общем-то и нет.


    Logo Название Версия Дата Текстовый компонент Решение
    Sublime Text 3.2.2 01.10.19 Cвой (на Skia) ✘ Нужные макросы не записать
    CudaText 1.118.2.0 29.12.20 Свой Подходит
    Notepad++ 7.9.2 01.01.21 Scientilla ✘ Слабые возможности редактирования текста
    SciTE 4.4.6 01.12.20 Scientilla ✘ Макросов вообще не нашел
    AkelPad 4.9.8 18.07.16 Scientilla ✘ Нужные макросы не записать
    Notepad3 5.20.915.1 15.09.20 Scientilla ✘ Блокнот я им заменил, но нужные макросы не записать
    Textadept 11.0 01.12.20 Scientilla / Curses ✘ Шоткаты на русской раскладке не работают
    Vim 8.2 10.12.20 ? ✘ Сколько инженеров его знает?

    CudaText


    Итак, берем CudaText. Он поставляется как portable zip-архив. В wiki что-то пишут про не portable версию, но инсталлятора я не нашел. Хорошо это или плохо? Устанавливающаяся версия кажется понятнее — все настройки лежат в %APPDATA% и их можно хранить в репозитории. А здесь? Окей, положим весь редактор в репозиторий, 25Мб — это не так много, зато на другой машине не надо будет устанавливать — запустил из репозитория и голову не забиваешь. Надо сказать, что настройки хоть и хранятся в той же папке, что и редактор, при заливке в нее новой версии не перетираются, неудобство только в том что нужно руками распаковать новую версию. Первый запуск:



    Эстетически выглядит норм, но как-то не контрастно всё. Ладно, это настроим. Так, убираем все что нам не нужно для набора формул. Включаем подсветку парных скобок и перенос по словам. Также убираем поведение с последней строкой вверху экрана при прокрутке до упора (непривычно), автозакрытие скобок (польза спорная, а записи макросов иногда мешает). Statusbar оставляем, чтобы видеть, когда включен режим записи макроса.


    Выбираем Options → Settings default/user, пишем:


    {
      "wrap_mode" : 1,
      "wrap_indented" : false,
      "ui_statusbar_show" : true,
      "ui_sidebar_show" : true,
      "find_hidden_buttons": "c",
      "bracket_highlight" : true,
      "ui_toolbar_show" : false,
      "ui_theme" : "white",
      "ui_theme_syntax" : "white",
      "ui_font_name" : "default",
      "ui_font_size" : 9,
      "font_name" : "Lucida Console",
      "font_size" : 10,
      "ui_title_path" : true,
      "ui_menu_show" : false,
      "ui_tab_show" : false,
      "gutter_show" : false,
      "gutter_fold" : false,
      "show_last_line_on_top" : false,
      "log_sessions" : false,
      "py_init_log" : false,
      "auto_close_brackets": ""
    }

    Теперь команды меню доступны только по кнопке ' ⋮ ' слева вверху и через меню Ctrl+Shift+P (как в Sublime). Текущая вкладка, крестика которой теперь не видно, закрывается по Ctrl+W.


    Нужно выбрать тему поконтрастнее.



    Но тратить время на это не придётся — светлая контрастная тема одна — white (вторая слева).


    Из оригинального: если увеличить высоту окна, слева появится кнопка 'δ', которая показывает список специальных символов:



    Но нам это не нужно — мы используем aText для набора греческих и математических символов.


    Теперь надо установить плагины: Auto_Save и Macros. Устанавливаются они как в Sublime: Plugins → Addons Manager → Install..., или через Ctrl+Shift+P и наборе чего-то типа plugin:Install+Enter. Через некоторое время появится список доступных плагинов:



    Тут все понятно. Надо только обратить внимание, что плагины разбиты по категориям, и для фильтрации можно набирать название этой категории с ':', например, 'theme:' — для просмотра всех неустановленных тем. И еще: установленные плагины не отображаются в списке, для них есть пункт меню Plugins → Addons Manager → Remove add-on...


    Сначала повесим шоткаты на команды макроса (из коробки таких шоткатов нет). Если в Sublime это делалось правкой конфига через Preferences→Key Bindings, то здесь это делается оригинально:


    • надо нажать Ctrl+Shift+P, выбрать требуемую команду, например 'macros: start recording'
    • нажать F9
    • в появившемся окне нажать кнопку "Set"
    • нажать комбинацию клавиш
    • нажать ОК

    Назначаем Ctrl+Q для "macros: start recording" и Ctrl+Shift+Q для "macros: stop recording".


    Эти настройки сохраняются в файле settings/keys:


    ...
    "2810" : {
        "name" : "macros: start recording",
        "s1" : [ "Ctrl+Q" ]
      }
    ...

    Но можно ли дописывать шоткаты прямо в файле и назначать произвольные цифровые айдишники — не ясно.


    Основная задача — записать макрос iMath:explain EQDEF, который будет копировать выражение, ставить переменную в конце после '=', оборачивать переменные в _ii_VAL( и )_ii_ и еще будет переименовывать @метку@. Задача большая, поэтому разобъем её на более мелкие. Здесь приведу запись только одной. Итак, записываем макрос, который обернет переменные в _ii_VAL( и )_ii_:


    • Ctrl+Q — запись пошла.
    • Вначале надо подписать всем ключевым словам @@ впереди, чтобы не обернуть их нечаянно. CudaText — это единственный редактор без поддержки замены с подстановками вместо групп совпадения типа \0, \1, ..., поэтому будем пользоваться мультивыделением. Жмем Ctrl+F, пишем регулярку \b(abs|acute|aleph|alignb...widetilde|widevec|wp|yellow)\b, жмем Alt+E, Esc — теперь у нас выделены все ключевые слова, жмем ←, вписываем @@.
    • Выделяем строки, начинающиеся на %%ii TEXT, с помощью регулярки (?<=^%%ii\s+TEXT).*$.
    • Выделяем внутри выделения числа и переменные с помощью регулярки (?<=[^%@'"])(\d+\.\d+|%\w+_\{[^{}]*\}|%\w+|\b\w+_\{[^{}]*\}|\b\w+)(?!.*%%gg$).
    • С прыжками курсора влево-вправо возиться лениво — ну что ж, затрем буфер обмена, Ctrl+X.
    • Пишем _ii_VAL(, Ctrl+V, )_ii_.
    • Удаляем @@ простой заменой по всему документу.
    • Ctlr+Shift+Q — закончили запись, назначаем имя imath:_ii_VAL()_ii_ all.
    • Теперь он появился в списке команд — назначаем шоткат по той же схеме: Ctrl+Shift+P, выбрать макрос imath:_ii_VAL()_ii_ all (не нажимая Enter), F9, назначаем Ctrl+Shift+V.

    Макрос можно править (что я и делал), он лежит в settings/macros.json. Примерно такими же хитрыми манипуляциями записываем остальное. При записи макроса можно вызывать другой макрос.


    Теперь настроим Auto_Save. Ctrl+Shift+P → ищем plugin:Auto Save: config, правим конфиг:


    [op]
    save_interval=30
    save_before_closing_tab=1
    on_deactivate=0

    Теперь Cudа будет сохранять файлы ничего не спрашивая, таким образом правка формулы в CudaText будет происходить по той же логике, что и правка в LibreOffice Math. Ещё я назначил "file:quit program" шоткат F3 (у меня и в iMath редактор вызывается по F3) — чтобы открыть/закрыть двумя нажатиями одной кнопки.


    Осталось настроить подсветку синтаксиса. Wiki говорит, что чтобы создать свой лексер, нужно установить SynWrite и потом, видимо, удалить и забыть про него. Действуем по этой инструкции:


    1. Устанавливаем SynWrite.
    2. Options → Customize lexers library..., копируем какой-нибудь простой язык или добавляем новый с именем eqn.
    3. View → Lexer → Выбираем свой новый лексер.
    4. Options → Customize lexer...
    5. Накидываем стили из других языков с помощью кнопки "Import Items" (красная стрелка с листом бумаги):

    6. Добавляем правила:

    7. Копируем файлы eqn.lcf и eqn.cuda-lexmap из SynWrite\Data\lexlib в cudatext\Data\lexlib.
    8. Перезапускаем редактор, вставляем тестовый текст, нажимаем Ctrl+Shift+P, eqn, Enter. Появляется окно:


    Выбираем подходящие по смыслу стили и нажимаем ОК, лексер заработал:


    Вот и все. Теперь заниматься оформительской писаниной стало гораздо легче! Настройки можно взять здесь (нужно распаковать в папку, в которую распаковали редактор).



    Заключение


    Конечно, я пропустил много популярных редакторов (те же Atom и Visual Studio Code). Но все равно странно — казалось, подойдет любой продвинутый, а подошел только один, причём в других не хватало простых вещей. Хотелось поделиться обнаружением этого редактора. Еще хотел поделиться способом оформления расчетной документации (или курсовых) с помощью iMath (плагин еще тот по стабильности и эргономичности, но другого нет).


    Страница скачивания LibreOffice — тестировал на 7.0, но и 6.4 должен работать
    Страница скачивания iMath — скачивать нужно iMath-2.3.1~beta2.oxt
    Обсуждение фичи iMath "open in external editor" на sourceforge.net — про настройку iMath
    Документация по iMath
    Страница скачивания CudaText
    Настройки CudaText для работы с iMath (нужно распаковать в папку, в которую распаковали редактор)
    CudaText на github.com
    CudaText на sourceforge.net — здесь только плагины
    Настройки aText для набора греческих символов и не только — открываются по Ctrl+O из aText

    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 22

      0
      Вопрос немного в сторону.
      Чем привлек Notepad3 как замена штатного блокнота?
      Сам пользовался AkelPad раньше долгое время, только на десятке он плохо выглядит, перешел на Notepad++, а он избыточен для блокнота все-таки.
        0
        Посмотреть madeditmod?
          0
          И чем madeditmod заслуживает внимания?
          Текстовых редакторов очень много, могу и сам минимум десяток только по памяти набросать )
          Вот посмотрел, для начала кто сколько для памяти занимает:
          image
          0

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

            0
            На scientilla пробовал SkiTE, уже и не вспомню почему вернулся на Notepad++.
            В AkelPad замена тоже галочкой, только у меня он с ClearType не задружился.
            Блокнот вроде и нехитрое дело, только используется много и часто, а потому может начать раздражать, например своей задумчивостью.
          0
          В статье упомянут vim, но не упомянут emacs… Ну ладно. Что значит «добавить курсор мышью», «выделить все совпадения из диалога поиска»?

          «добавить выделение совпадения», «выделить все совпадения» :set hlsearch «добавить курсор строкой ниже» Ctrl + V, ↓
            0
            Emacs просто не знаю — пытался давно освоить — на второй день стало жалко свои пальцы и эксперимент прекратил.

            «добавить выделение совпадения», «выделить все совпадения» — это всё про множественное редактирование (не путать с прямоугольным выделением, впервые появилось, пожалуй, в sublime, в scientilla добавили недавно), означает добавление новых курсоров на каждое выделение

            :set hlsearch — это просто подсветка выделений, не совсем то. Вообще в vim есть плагин для мультикурсоров и скорее всего он может все что я пометил ?, просто пользовался им давно — устанавливать и проверять лениво. Хотя, в vim даже отсутствие мультикурсоров не так критично, как в других редакторах, там другие способы редактирования достаточно мощные
            0

            Несколько лет назад столкнулся с этой задачей на учебе и тоже пришлось строить велосипеды. В моем случае пришел к следующей модели велосипеда на костыльно-паровой тяге:


            1. Текст документа пишется в markdown, в тексте допустимо использовать особый постановочный синтаксис для математики или голый tex
            2. Документ отдается на обработку самописной приблуде, которая ищет "свой" синтаксис и теги в документе, делает подстановку переменных, формул и прочего счастья, отдает результаты в maxima для расчета, получает ответ, запоминает, может его дополнительно "раскрасить", делает полное выражение a=b+c=2+3=5 [метров в сосиску] и вставляет обратно.
            3. Получившийся документ отдается в pandoc который делает из него pdf через latex (предпочтительный вариант) либо ворд с формулами.

            Недостатки такого подхода понятны, но есть и преимущества:


            • можно делать "алиасы" для переменных и писать везде просто S а не \sum\xi_{провКуб}^{Лего-ЛСА} а дальше все само подставится красиво
            • можно округлять до нужного количества значащих как глобально так и отдельно
            • единицы измерения переменных один раз указываются и потом подставляются в конец каждого выражения с ними
            • можно вставлять значения переменных в таблицы или просто текст
            • единое и гостовое форматирование документа благодаря latex или приемлемое но страшное благодаря стилям ворда если нужно в нем (пандок умеет брать файл со стилями)
            • и самое главное: расчет ведет "взрослая" система компьютерной алгебры, которая умеет в символьные вычисления, то есть если на каком-либо этапе у нас a=b+c и b не известно, то выражение m=a+2 будет корректно "посчитано" в b+1+2. А если в дальнейших расчетах b будет прояснено то начнет учитываться.

            Ну и конечно написание такого инструмента это весьма забавный процесс, куда веселее чем руками писать сотни формул (хотя быстрее или нет в конечном итоге это вопрос спорный, но нам же лучше два дня потерять зато потом за два часа долететь :)

              0
              Прикольно. А есть посмотреть где это чудо? Если не далеко запрятано — чисто из любопытства, потому что если я такое на работе устрою — коллеги будут слегка обескуражены :)
              0
              многие, кто учился в техническом ВУЗе, сначала делали вычисления своих курсовых в Mathcad (или другом математическом пакете), а затем старательно набирали эти же формулы в MS Word с подстановкой чисел

              Mathcad, MS Word. У нас настолько всё плохо в технических вузах? (Я сам в педагогическоми учился, так что действительно не знаю.)

                0
                Думаете «у них» лучше? Тут не понятно как лучше. То что я описал — это было в 2007 году. Но и сейчас на работе так. Разрешить вставку кода на mathcad в приложения в тот же диплом, без расписывания порядка расчета? — Не знаю, логика расчета должна же быть объяснена.
                  0
                  Думаете «у них» лучше?

                  Точно не знаю. Я думал, что «у нас» лучше. Лучше — это когда слова Mathcad и MS Word воспринимаются как шутка и страшный сон. К описанной вами проблеме это ортогонально.

                0
                Notepad++ в любых репах Linux на видном месте лежит. А в статье его записали, как будто он не доступен на Linux. А вообще, что только люди не придумают, лишь бы LaTex не учить.
                  0
                  Под wine все-таки, он там стабильно работает?
                  +1
                  Да уж. С одной стороны радует применение LibreOffice в реал лайф, а с другой — не радует костыль в виде внешнего текстового редактора. По хорошему это всё должно бы входить в функционал расширения (но это мечты конечно). Жаль не могу лайк за статью поставить, карма плохая=)
                    0
                    Жаль не могу лайк за статью поставить, карма плохая=)
                    Уже стала лучше ;-)
                    Согласен с Вашим мнением. Дополню: касается не только LibreOffice, но и Microsoft Word.
                    0
                    После прекращения разработки AkelPad (очень жаль) задумался о его замене.

                    Перепробовал кучу редакторов, в т.ч. довольно долго изучал SublimeText.
                    Но в результате остановился на, кмк, незаслуженно малоизвестном EmEditor:

                    1. Написан на чистом С++ (быстродействие!).
                    2. Поддержка больших файлов, всех кодировок, мультикурсоров, вертикального выделения текста.
                    3. Встроенный HEX редактор.
                    4. Куча других возможностей и гибкие настройки.
                    5. Можно писать свои макросы и плагины, programmers friendly.
                    6. Приятный классический интерфейс, хорошая документация, минимум багов.
                    7. Made in Japan ;-)

                    Рекомендую! (нет, я не работаю в этой компании; просто с удовольствием делюсь ссылкой на продукт, который, по моему мнению, этого явно достоин)
                      0
                      Немного не понимаю если честно, зачем нужен текстовый редактор.
                      Можно же и в самом LibreOffice сделать плагин для подстановки значений.
                      Причем результат будет сразу обсчитываться, внешним плагином, который будет и являтся расчетной программой. Такой подход гораздо удобнее.
                      С учетом того что для расчетов используется в основном Python, то данную программу можно будет сделать в виде дополнительной пары функций которые просто добавлять в тело основного расчета.
                        0
                        Здесь речь про решение проблемы хоть как-нибудь и малой кровью. Я даже плагин к текстовому редактору не пишу — использую макросы.

                        С другой стороны — использовать текстовый редактор удобнее чем встроенный LibreOffice Math. Его разработчики ведь до сих пор считают, что подсветка парных скобок, не говоря о подсветке синтаксиса — это лишнее. Плагин, позволяющий удобно редактировать текст быстро не напишешь.

                        И нет уверенности что все так просто, в iMath же сторонняя математическая библиотека используется. Автор одно время говорил, что там чуть ли не дублирущий парсер нужно писать для корректной обработки (а не как у меня, в 90% работает, в 5% минимальные правки, 5% — много правок руками)
                          0
                          >LibreOffice Math. Его разработчики ведь до сих пор считают, что подсветка парных скобок, не говоря о подсветке синтаксиса — это лишнее.

                          Вы не правы, разработчики ЛО так не считают. Их просто мало в целом, а самым грамотным и активным платят деньги заказчики за что-то свое.
                        0
                        Вы не смотрели в сторону SMath Studio. Бесплатный. С множеством плагинов. При желании можно самому описать. Авторы даже исходники предлагают для самодопиливания. Но, возможно я не нашел, но там тоже беда с оформлением по госту(когда после формулы подставляются цифры). Я писал им на форуме об этом, но видать у них приоритеты другие. Возможно если будут писать много людей об этом то они реализуют данную возможность, и пакет станет ещё более продвинутым.
                          0
                          Смотрел, но каких-то достоинств кроме бесплатности по сравнению с MathCad не нашел. Еще достоинством может быть, как Вы говорите, допиливание исходников. Но я не готов что-то серьёзно и долго допиливать, и если допиливать — то тот же iMath(но он сложный) или sourceforge.net/projects/comppad (он проще, но не имеет достаточно функций и не поддерживается, кондидат на «допиливание»)

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

                          Самое читаемое