LINUX.ORG.RU

Прошу помощи в написании установочных скриптов

 , ,


0

5

Будучи студентом, вкушал разнообразные «прелести» такого поделия, как маткад. Сидеть на винде не хотелось, а установить актуальную версию под вайном было проблемой. Собственно свободных систем компьютерной алгебры существует достаточно, но все они направлены на собственно рассчеты и преобразования, а не на описание решения задачи. И это правильно. Это в духе Unixway. Делай одну вещь, но делай её хорошо. Но хотелось совместить приятное с полезным, как и namezys здесь. В поисках мечты обнаружил инструмент для использования maxima внутри latex тут. Идея мне очень понравилась. Но мне не очень нравится maxima - в ней нет развитой системы типов, да и интегрирует она хуже, чем axiom. Посему я наклепал свой велосипед. Заинтересованных прошу помочь мне написать для него установочные скрипты.

★★★★★

ну вот зачем нужно смешивать логику с представлением?

а на самом деле дело интересное..

qnikst ★★★★★
()

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

r2d2
()
Ответ на: комментарий от qnikst

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

feofan ★★★★★
() автор топика
Ответ на: комментарий от feofan

имхо правильно он говорит, надо или использовать document mode в CAS, ЯП или делать то, что я описал выше, встраивание ЯП в латех имеет смысл только для более упрощённой генерации документа.

qnikst ★★★★★
()
Ответ на: комментарий от feofan

Если что-то можно сделать, это не значит, что это нужно делать.

r2d2
()
Ответ на: комментарий от feofan

\input{./files/formula_1}

если хочется пописать велосипеды, то можно собирать всё в файл вида

index:
latex stuff...
....

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

\begin{equation}\label{foo}
   \use_file{index_foo}
\end{equation}

qnikst ★★★★★
()
Ответ на: комментарий от qnikst

хотя это не велосипед, это полезная штука, сам бы такой пользовался.

qnikst ★★★★★
()
Ответ на: комментарий от feofan

Проект признаю сырым, тему помечаю как решенную.

feofan ★★★★★
() автор топика
Ответ на: комментарий от feofan

ещё плюс к этой идее, то, что на arxiv ты такой latex файл не зальёшь, так, что возможно даже имеет больший смысл препроцессор латех файла, который определенные вхождения строк будет заменять на данные из внешних файлов. (хотя я честно не помню можно ли туда файлы пачкой заливать)

qnikst ★★★★★
()
Ответ на: комментарий от feofan

Глупость написал. Можно будет сделать без -shell-escape, если сначала распарсить tex файл внешним скриптом и сгенерить файлы для инклюда, и только потом собирать.

feofan ★★★★★
() автор топика

Также хотелось бы увидеть уважаемого Evgueni по вопросу вывода графиков в файл с помощью axiom или его форков.

feofan ★★★★★
() автор топика
Ответ на: комментарий от feofan

не разбираюсь в лицензиях на таком уровне.

qnikst ★★★★★
()
Ответ на: комментарий от anonymous

Он не решает задач вывода рассчетов на печать в типографском качестве в соответствии со стандартами (ГОСТ, например), а привязка к latex может это позволить

feofan ★★★★★
() автор топика
Ответ на: комментарий от HunOL

Для Sage есть соответствующий стиль. Но мне сам Sage не нравится - огромный комбайн. Это не unixway. Sage напоминает мне Франкенштейна. Хотя считает он, безусловно, хорошо. Но это не повод запахивать все зависимости в один огромный пакет.

feofan ★★★★★
() автор топика
Ответ на: комментарий от feofan

Я к сожалению в этом вопросе не спец. Я думаю, что если с английским проблемы, чтобы задать вопрос на форуме, то спроси Андрея Грозина. E-mail можно найти по ссылке: http://www.inp.nsk.su/structure/people.ru/show_people.ru.shtml?%E7%D2%CF%DA%C...

Evgueni ★★★★★
()
Ответ на: комментарий от Evgueni

Спасибо, уже нашел решение.

feofan ★★★★★
() автор топика
Ответ на: комментарий от qnikst

Для упрощения поддержки данных и результатов расчётов в актуальном состоянии. Представь себе, что у тебя некая величина описывается в тексте отчёта в паре мест, там же она представлена в таблице результатов и на графике. Потом ты замечаешь опечатку в файле с исходными данными и исправляешь её. Теперь тебе нужно:

1. Пересчитать значение для исправленных данных.

2. Если оно используетя в дальнейших расчётах, пересчитать все зависимые величины.

3. Найти все вхождения этих данных в отчёте, включая таблицы и графики и исправить их.

4. На всякий случай всё ещё раз десять раз проверить.

5. Ответить на письмо из головной организации: почему в разделе 3.2.4 Kjc=102.7, а оно же в таблице 7.2.3 равняется 103.8.

6. Подумать как бы сделать так, чтобы исключить саму возможность подобного рода ошибок.

7. Вспомнить о грамотном программировании.

8. ????

9. Выгода.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

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

qnikst ★★★★★
()

О, хорошая мысля: можно и Octave таким же способом «прикрутить» к латеху.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от ugoday

Вспомнил, как переписывал ТЗ: везде поизменял цифры, а картинку перерисовать забыл (а там старые значения были обозначены).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Пока делается не так

Это было актуальное замечание. У меня выхлоп axiom включался в latex минуя файлы при компиляции. Точнее была пара промежуточных файлов. Но если сделать так, как сказал qnikst, то потом результат расчетов можно будет собрать на машине, где не установлены эти скрипты и/или axiom.

feofan ★★★★★
() автор топика
Ответ на: комментарий от Eddy_Em

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

feofan ★★★★★
() автор топика
Ответ на: комментарий от Eddy_Em

это излишнее переусложнение, тем более котлеты и мух лучше держать отдельно. Вариант объединения латеха с кодом логичен только внутри CAS, но не наоборот, если CAS поддерживает это, да и то это скорее для презентационных примеров.

qnikst ★★★★★
()
Ответ на: комментарий от qnikst

Когда перепишу - кастану тебя в тред. Годные советы даешь.

feofan ★★★★★
() автор топика
Ответ на: комментарий от qnikst

не вижу

в расчётах и в тексте используются одни и те же данные.

как вариант со спагетти кодом

откуда ты нафантазировал спагетти код?

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

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

в расчётах и в тексте используются одни и те же данные.

а в предложенным мной прям такие разные данные, что диву даёшься ;)

ты случаем не php-шник? Вариант пох потому, что каша из кода и представления мешает адекватному восприятию и редактированию файла. Как я отметил, термин спагетти тут не совсем подходит, но думать над более точным термином описывающим данный подход мне лень.

я правильно понимаю, что ты в состоянии объяснить, чем предложенный мной вариант малофункциональный, т.е. какой из use-case варианта предложенного тобой не покрывается.

qnikst ★★★★★
()
Ответ на: комментарий от qnikst

а в предложенным мной прям такие разные данные, что диву даёшься ;)

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

Вариант пох потому, что каша из кода и представления мешает адекватному восприятию и редактированию файла.

Именно, что пох. :-) Ты сейчас думаешь в контексте программирования, а это большая ошибка. Правильно думать об этом, как о написании статьи.

В общем, мне проще показать как это сделано правильно в схожим инструменте.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

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

т.е. вводить make сложно?! офигеть.. на самом деле, чтобы велосипед был удобным нужна поддержка удобной загрузки данных из внешних файлов в латех, ну и генерилка make файла.

Ты сейчас думаешь в контексте программирования, а это большая ошибка. Правильно думать об этом, как о написании статьи.

Ну вобще-то я представляю, как бы выглядели мои статьи и workflow при таком подходе, и если честно, то мне не понравилось. Написание статьи представляет из себя две независимые части 1). получение результатов, 2). собственно написание статьи. В предложенном варианте они смешаны в одно и это плохо и будет работать только для простых демонстративных примеров.

qnikst ★★★★★
()
Ответ на: комментарий от qnikst

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

Написание статьи представляет из себя две независимые части

Только в теории.

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

Как раз для простых примеров это не особо и надо, бо можно внимательно всё десять раз проверить и спать спокойно. Грамотное программирование выигрывает там, где никаких сил для ручного контроля не хватит.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

Только в теории.

черт.. я только в теории занимался написанием статей и исследованиями, печалька..

Как раз для простых примеров это не особо и надо, бо можно внимательно всё десять раз проверить и спать спокойно. Грамотное программирование выигрывает там, где никаких сил для ручного контроля не хватит.

не согласен, правда дальше спорить где это уместно, а где нет мне лень. Кратко я считаю, что если внутри CAS файл представлен латех документом с возможностью писать код в этой CAS, то это хорошо, но это нельзя считать латех документом. Встраивание внешних языков в латех - это плохо.

qnikst ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.