Автор Гілка: Думки вголос, прошу не бити ;)  (Прочитано 2151 раз)

Відсутній Сергій Лисовенко

  • Літератор
  • ******
  • дописів: 1489
  • Карма: +0/-0
Off-topic:
Цей пост може бути виставлений зна-а-а-чно пізніше, ніж набраний:
Інтернету зараз нема під рукою.

Сиджу зараз за бадягою і набираю одного страшного документа, страшний він
не за своєю суттю --- просто я його страшно набираю: пишу про одне, а думки
рояться про інше.
Ось вилупився на таке "художество":
\begin{equation*}
R_g = \left\{
\begin{array}{l@{\textrm{\ коли\ }}l}
 \infty                                       & r < r_{min}\\
 \frac{\partial\sqrt{\sum(g_0(r_i)-g(r_i))^2}}
      {\partial r}
                                              & r_{min} < r < r_c\\
 0                                            & r > r_c
  \end{array}
  \right.
\end{equation*}
і аж перелякався, що для того, щоб хоч якось уявляти не, що малось на
увазі --- треба випендрюватись з пробілами, що вже говорити про виявуляння
помилок "на око". Більше того, тут ми бачим не тільки те, що майєм на
увазі, а й просто маєм: максимум що може змінитись --- розмір шрифта, адже
LaTeX не переносить формули (у випадку даного рівняння тут ні про яке
пренесення й мови бути не може, адже тут сидить її величність таблиця).
Звичайно LyX непогано обходить цю проблему: показує формули у їх
"нормалдьному", а не кодованому вигляді, втім, помилки можна вишукувати і в
результуючому dvi-файлі, а не в сирцях ;)

І тут дивлюсь на очевидного велосипеда: xml існує дідько зна відколи
(одразу після потопу --- появи W3C), будь-який документ являє
собою по суті базу даних (вже не тільки OOo використовує xml для
збереження своїх документів, а й M$ за-iso-шкала свою "open" версію). Тож
стало цікаво, чи не користується якись редактор з підходом "що маю на
увазі -- те маю і перед носом" xml-ем для розмітки своїх документів? (як
на зло нема LyX-івських файлів під рукаю, аби перевірити)
Адже такий підхід спрощує парсіння документів (звісно ж тому, що вже й так
є готова ліба і не треба вигадувати свого самоката і воювати з яками,
бізонами, буйволами та телятами чи що там ще в тій Асканії водиться...),
дозволяє туди понапихати до біса додаткових даних, наприклад, інформацію
про розрахунок значень комірок, при цьому самі значення комірок теж можуть
бути вказані :) тобто, парсер, що перетворює те, що маєм на увазі в те, що
маєм буде використовувати значення комірок і не цікавтитсь як саме вони
отримані, а розраховувати значення комірок буде сам редактор або якась іще
додаткова утиліта (це вже пішло збочення :D ).

Ну ідея, здається, проглядається десь така: хочеться щось типу
джентельменського офісного набору в стилі WYSIWYM з усіма перевагами офісу
(редагувати текст без використання vim, хоча якщо справа зав'язується на
принциповому використанні vim - простіше тоді використовувати LaTeX).

Звичайно, сучасні "маютещопередносом" офіси наловчились клепати собі зміст,
мають якусь пародію на перехресні посилання, навіть, літературні бази даних
чіпляються  (на злорадське щастя їм іноді проблемно відкривати власні
документи :D ).



Ги... подумав про те, як краще позначати структурні елементи тексту напр.
<section name="A baba galamaga" label="abbgal">...</section> чи
<section name="A baba galamaga" label="abbgal"/> --- більше схложе на
LaTeX-івську розмітку, виявилось: як не крути, а перший варіант більше
"рулить" в плані зручності згортання коду. Мдя... не даремно ж SGML і досі
подає ознаки життя ;)
Чув дзвін і не можу визначити його місце положення про те, що гамерикоси
успішно використовували SGML для підготовки публікацій (про успішне
використання його для підготовки технічної документації до програмного
забезпечення відомо навіть коню Прживальського). То аж самому цікавзабезпечення відомо навіть коню Прживальського). То аж самому цікавзабезпечення відомо навіть коню Прживальського). То аж самому цікаво стало
поглянути на редактора SGML текстів.
Цікаво було б порівняти можливосі SGML та LaTeX...
Здається, SGML не вміє формули малювати хоча не розумію чому...
Вікі ж вміє ;)
могло б бути щось типу
<math>
R<sub>g</sub>=<larggebrakets left="{">
<array latexmode="l@{<textrm> коли </textrm>}l">
<tr><td><infty/></td><td>r&lt;r<sub>min</sub></td></tr>
<tr>
 <td>
  <frac>
   <top>
    <partial/>
    <sqrt>
     <sum/>g<sub>0</sub>(r<sub>i</sub>)-g(r<sub>i</sub>))<sup>2</sup>
    </sqrt>
   </top>
   <bottom><partial/>r</bottom>
  </frac>
 </td>
 <td>r<sub>min</sub>&lt;r&lt;r<sub>c</sub></td>
</tr>
<tr><td>0</td><td>r&gt;r<sub>c</sub></td></tr>
</array>
</largebrakets>
</math>
ху... мало руки не повсихали, поки накалякав :'(
здається, простіше гадюку схрестити з їжаком, ніж TeX з xml
Щоправда, редагувалка може підсовувати користувачу формули в більш зручному
вигляді, ніж в такому збоченому ;) та ще й вибір дати користувачу: в якій
формі хоче текст редагувати: як в ООо, як в TeX чи ще ячкось, а от
зберігати --- приблизно як вищенаведено. Чи може теги штибу <infty/>,
<partial/> замінити на &infty; , &partial; типу ж символи, а не команди...

Було б цікаво обговорити мову (точніше, спосіб xml розмітки), яка дозволяє
зберігати тостобіса типів текстової інформації (таблиці, формули, мавлюнки,
які в принципі можна було б і в SVG форматі зберігати --- типу eps для
LaTeX) особливо версткою можна не перейматись, хіба врахувати той печальний
факт, що таблиці іноді можуть не вміщуватись в сторінку і тому їм треба
вказувати деяку додаткову інформацію (заголовки для другої та подальших
сторінок), бути якомога універсальнішою. Ширини полів, якась конкретика що
до шрифтів нас зі зрозумілих причин не цікавить: зерно окремо від полови
(трохи промахнувся подааючи тег <textrm> трохи вище, та й з "ареєм"
там якось не дуже елегантно ;) ).

На думку щойно спало кілька цікавих "конвенцій": в математичному режимі
числа задаються унітарно --- для всіх мов ціла й дробова частина
розділяються крапкою, експонента позначається E або e (ну зовсім як в
будь-якій мові програмування) як там їх подавати  в результуючому варіанті
визначає версталка чимось типу байбеля (пакет національних установок)
(наприклад, в режимі української мови при перетворенні в документ LaTeX
4.19e3 зпише як 4{,}19\cdot10^{3} ), в призначеннях формул коміркам теж
щоб ніякої локалізації (задовбав переклад формул в офісі: ну як можна
універсальність ставити жертвою примарних "переваг"?). Таблиця з
розраховуваними значеннями буде мати десь такий вигляд:
<table celltype="math">
<tr>
<td>10<!-- комірка 0:0 --></td><td><calc>cell(0,0)+2</calc>12</td>
</tr>
<tr>
<td>4</td><td><calc>sqrt(cell(0,1))</calc>2</td>
</tr>
тут тег <calc> використовується лише редактором, щоб розрахувати значення
залежних комірок, версталка його ігнорує --- вона використовує лише
значення, яке розрахував редактор і вписав, звісно ще можна втулити
інфомацію що до того з якою точністю подавати значення комірок і зробити
так, щоб редактор міг отримувати точніші значення, ніж видавати нагора :).
Те,  що мусить буди можливість під'єднувати додаткові файли й так ясно
само-собою.
Для роботи з великою купою однотипної інформації нехай буде тег <card> ---
наприклад, "карточка" для кожного слова в словнику.



Їжака схрещують з гадюкою для отримання живого мотка колючого дроту (та ще
й отруйного). Схрещеня xml з TeX має на меті схрестити gedit з gnumeric ;)
Чудо-юдо має містити в собі одночасно звичайний текст, малювати математичні
формули, само перераховувати таблиці (де потрібно) ще було б непогано, якби
воно рамками відображало ступінь вкладеності інформації (розділ / частина /
пункт / пункт / підпункт), в бічній панелі висіло щось типу змісту... (як приємно
помріяти, і як неприємно стикатись з технічними труднощами ;D )

Тобто хочеться такого редактора, який показує дійсно те, що автор має на
увазі (не плутати з "думати" за автора), був легеньким і з мінімальною
ймовірністю гупання (сегфолту)
Flame:
Згадалось, як мене колись підколов старий (десь 1999 року випуску)
gnumeric: засегфолтився коли я зробив всю роботу і не встиг зберегти файла
то --- була лаба з довбаної колоїдки.
Можливо хтось вже про таке чув --- кажіть, щоб /me не мучився ;)
Якщо ж подібного софту відкрите суспільство ще не сотворило (не про LyX
мова) --- обговорімо цю ідею --- раптом щось та й вийде.
Якщо Лінукс написали студенти - нехай вони під ним і навчаються.

Відсутній piktor

  • Видавець
  • *******
  • дописів: 3396
  • Карма: +0/-0
Re: Думки вголос, прошу не бити ;)
« Відповідей #1 : 2009-05-13 23:40:54 »
Чисто "графоманський" допис.  ;) Думок-же у вас, Сергію.
Всим, хто тоне й не знає,
За що вхопитись,
Хто вже з останніх
Вибився сил:
Попереджаю - я не колода,
Попереджаю - я крокодил.

Відсутній Сергій Лисовенко

  • Літератор
  • ******
  • дописів: 1489
  • Карма: +0/-0
Re: Думки вголос, прошу не бити ;)
« Відповідей #2 : 2009-05-14 00:44:41 »
Та просто "розробку" не хотів загиджувати: вирішив спочатку розумних людей спитати чи взагалі воно треба, чи існуючі ресурси таке й без мене роблять.
Якщо Лінукс написали студенти - нехай вони під ним і навчаються.

Відсутній noddeat

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +0/-0
Re: Думки вголос, прошу не бити ;)
« Відповідей #3 : 2009-05-14 02:01:22 »
пан знається на збоченнях. ну і навіщо робити з TeX-а xml?

редактор WYSIWYM є, він називається LyX :)
У нього свій власний формат (подивіться всередину), який схожий на LaTEX.

не знаю, чи є конвертер LaTEX <-> xml, але нащо він? Більш актуальною є конверсія LaTEX <-> HTML+jpg (для формул), що дозволятиме, наприклад, публікувати латехові документи на вебі.
Filenames are infinite in length, where infinity is set to to 255 characters. Peter Collinson, "The Unix File System"

Відсутній Сергій Лисовенко

  • Літератор
  • ******
  • дописів: 1489
  • Карма: +0/-0
Re: Думки вголос, прошу не бити ;)
« Відповідей #4 : 2009-05-14 10:19:18 »
Можливо хтось вже про таке чув --- кажіть, щоб /me не мучився ;)
Якщо ж подібного софту відкрите суспільство ще не сотворило (не про LyX
мова) --- обговорімо цю ідею --- раптом щось та й вийде.
Читати мої графоманські дописи уважніше треба --- раптом щось та й розумне зморозю ;)

Знайшов ненароком LyX-івського файла --- дійсно розмітка TeX-оподібна. Значить не xml --- тобто моя ідея має деяку новизну :) от і вирішив поговорити про актуальність ;)
Flame:
За ВАК-івськими вимогами про актуальність тре торочити цілу сторінку автореферату, навіть якщо її можна пояснити в 2-3 реченнях  :o
Головне не "какчество" а "калікчество" (с) Райкін (сценка про сантехніка)
Якщо Лінукс написали студенти - нехай вони під ним і навчаються.

Відсутній Сергій Лисовенко

  • Літератор
  • ******
  • дописів: 1489
  • Карма: +0/-0
Re: Думки вголос, прошу не бити ;)
« Відповідей #5 : 2009-05-14 10:35:12 »
не знаю, чи є конвертер LaTEX <-> xml, але нащо він? Більш актуальною є конверсія LaTEX <-> HTML+jpg (для формул), що дозволятиме, наприклад, публікувати латехові документи на вебі.
Мова йде лише про конвертор xml -> LaTeX :)
Пояснюю ще раз: іноді ми маємо на увазі більше, ніж повинно сплисти на папері і те, що ми маєм на увазі може містити в собі те, що може обробити комп'ютер, але верстки воно не стосується (хоч і тут ЛаТеХ може свого коника викинути, але то вже занадто сильно старатись треба ;) --- це я про розрахунки прямо в документі). Наприклад маємо числа високої точності, а подати хочемо з меншою точністю -- записуємо з максимально наявною точністю і кажемо з якою виводити якщо щось дурне згодом стукне в голову - точність виведення можемо змінити (напр. застосувати зміни до стовпців таблиць). Тобто, в xml документі зберігаємо не лише дані, необхідні для верстки, а й для інших програм (власне, для самого ж редактора) завдяки чудодійним властивостям xml версталка про наявність сторонніх даних і знати не буде :)
Якщо Лінукс написали студенти - нехай вони під ним і навчаються.

Відсутній Олександр Барановський

  • Графоман
  • ****
  • дописів: 366
  • Карма: +0/-0
Re: Думки вголос, прошу не бити ;)
« Відповідей #6 : 2009-05-18 23:15:11 »
не знаю, чи є конвертер LaTEX <-> xml, але нащо він? Більш актуальною є конверсія LaTEX <-> HTML+jpg (для формул), що дозволятиме, наприклад, публікувати латехові документи на вебі.
Мова йде лише про конвертор xml -> LaTeX :)
Справді, навіщо? І чи є сенс говорити про конвертер взагалі? Це кардинально різні речі, на мій погляд. XML — це засіб для зберігання (і обробки) інформації. TeX — засіб для набору і верстки текстів. Теоретично, XML-файл можна засобами XML перетворити у що завгодно: інший XML або, наприклад, TeX. Написали XSLT-перетворення і поїхали... Але практично... Треба ж мати ті перетворення.

Якщо питання в тому, щоб зробити з XML-файла читабельний і друкабельний файл, то треба TeX, звичайно. Є така штука як xmltex. XML-парсер, написаний мовою TeX.

Інший спосіб: TeXML. Перетворює XML-файл в інший XML (зі спеціальною TeXML-розміткою), а потім TeXML-процесор перетворює TeXML-файл в TeX-файл. Не дуже давня стаття в TUGboat про це.

Пояснюю ще раз: іноді ми маємо на увазі більше, ніж повинно сплисти на папері і те, що ми маєм на увазі може містити в собі те, що може обробити комп'ютер, але верстки воно не стосується (хоч і тут ЛаТеХ може свого коника викинути, але то вже занадто сильно старатись треба ;) --- це я про розрахунки прямо в документі). Наприклад маємо числа високої точності, а подати хочемо з меншою точністю -- записуємо з максимально наявною точністю і кажемо з якою виводити якщо щось дурне згодом стукне в голову - точність виведення можемо змінити (напр. застосувати зміни до стовпців таблиць). Тобто, в xml документі зберігаємо не лише дані, необхідні для верстки, а й для інших програм (власне, для самого ж редактора) завдяки чудодійним властивостям xml версталка про наявність сторонніх даних і знати не буде :)
Метаінформацію можна спокійно, без ніяких чудодійних властивостей зберігати у TeX-файлах. Наприклад, у TeX-коментарях. Те, що для TeX — ніщо, для пре- або пост-процесора — інформація. Або навіть за допомогою звичайних команд (La)TeX. Наприклад, команда
\chapter[Короткий заголовок]{Дуже довгий заголовок розділу}не тільки форматує заголовок розділу, а й передає інформацію у зміст (тобто ви не побачите слів Короткий заголовок на місці цієї команди). Теоретично, можна робити щось таке:
\chapter<Якась дурниця, якої ніхто не прочитає>[Короткий заголовок]{Дуже довгий заголовок розділу}На місці написано щось, у зміст потрапить інше, а третє не з'явиться ніде в PDF, але інформація у цьому файлі зберігається.

Саме за таким принципом...
Цитата
Наприклад маємо числа високої точності, а подати хочемо з меншою точністю...
Команда \np з пакета numprint зробить це. Я сам не пробував (у нашій науці це не потрібно). Але зовсім недавно читав про це у статті
Massimo Guiggiani and Lapo Mori, Suggestions on how not to mishandle mathematical formulæ, TUGboat 29:2, 2008

Треба така програма, щоб і показувала, і рахувала, і верстала, і танцювала?.. У-у-у... Бачив здалеку Scientific WorkPlace. І візуальний TeX-редактор, і система компутерної алгебри, все разом.

Mathematica дозволяє робити спеціальні вставки в TeX-документ. Потім вона опрацьовує той файл, обчислює вставки, видає інший файл, у якому ті вставки замінені на результати обчислень.

Але це все власницьке програмне забезпечення... Я думаю, з вільним це робити ще простіше. Але я не маю відповідної інформації. Теоретично, за допомогою \write18 будь-яку програму можна прив'язати до TeX-компілятора і попросити робити якусь роботу (наприклад, обчислення).

Було б цікаво обговорити мову (точніше, спосіб xml розмітки), яка дозволяє зберігати тостобіса типів текстової інформації (таблиці, формули, мавлюнки,
які в принципі можна було б і в SVG форматі зберігати --- типу eps для LaTeX) ... бути якомога універсальнішою.
Наскільки універсальною? XML (або, якщо хочете, SGML). Але чим універсальніше, тим важче застосовувати до конкретних задач. Щоб робити щось розумне і практично прийнятне, треба себе обмежувати. Скажімо, мова розмітки для певного типу документів. Є такий проект TEI (Text Encoding Initiative), який розробляє розмітку для текстів у сфері гуманітарних, соціальних наук і лінгвістики. Інший приклад: вище згадана TeXML — це мова розмітки TeX-файлів.

...Чудо-юдо має містити в собі одночасно звичайний текст, малювати математичні формули, само перераховувати таблиці (де потрібно) ще було б непогано, якби воно рамками відображало ступінь вкладеності інформації (розділ / частина / пункт / пункт / підпункт), в бічній панелі висіло щось типу змісту... (як приємно помріяти, і як неприємно стикатись з технічними труднощами ;D )
Emacs. Не знаю, як у нього з рахуванням (просто не пробував). Але відображати зміст, формули і т.д. можна. І при цьому це ще й просто текстовий редактор. І не треба мучити їжаків, це такі добрі тваринки. :-) Для чого щось придумувати, якщо можна використовувати улюблені програми і попросити їх працювати разом.

\begin{equation*}
R_g = \left\{
...
і аж перелякався, що для того, щоб хоч якось уявляти не, що малось на увазі --- треба випендрюватись з пробілами, що вже говорити про виявуляння помилок "на око".
А якщо написати ось так:
\begin{equation*}
R_g =
\begin{cases}
  \infty                        & \text{коли $r < r_\mathrm{min}$}\\
  \dfrac{\partial\sqrt{\sum(g_0(r_i)-g(r_i))^2}}
        {\partial r}
                              & \text{коли $r_\mathrm{min} < r < r_\mathrm{c}$}\\
  0                              & \text{коли $r > r_\mathrm{c}$}
\end{cases}
\end{equation*}
Я замінив array на cases. Здається, так легше для розуміння коду. Звичайно, картинку трохи псує те, що треба кожного разу писати коли... І \mathrm не дуже вписується... Я додав \mathrm, бо ті шматочки мають писатися прямим, якщо тільки то не є фізичні величини чи добуток трьох величин. А вони не є? І ще додав \dfrac. Але це дрібниці, нашого питання не стосується. Головне — cases.

...Більш актуальною є конверсія LaTEX <-> HTML+jpg (для формул), що дозволятиме, наприклад, публікувати латехові документи на вебі.
Не зрозумів, чи це було запитання, чи просто загальне зауваження про актуальність?.. Хіба TeX4ht не годиться для цього?
У своїх заявках дехто з науковців описував, якими корисними будуть їхні заплановані дослідження для національних інтересів, тоді як насправді ними рухала щира наукова допитливість і бажання написати пару статей.
Станіслав М. Улям, «Пригоди математика»

Відсутній Campana

  • Письменник
  • *****
  • дописів: 795
  • Карма: +0/-0
  • Проходив мимо
Re: Думки вголос, прошу не бити ;)
« Відповідей #7 : 2009-05-20 02:46:41 »
А в ODT всього цього немає?

Відсутній Сергій Лисовенко

  • Літератор
  • ******
  • дописів: 1489
  • Карма: +0/-0
Re: Думки вголос, прошу не бити ;)
« Відповідей #8 : 2009-05-21 12:55:50 »

Якщо питання в тому, щоб зробити з XML-файла читабельний і друкабельний файл, то треба TeX, звичайно. Є така штука як xmltex. XML-парсер, написаний мовою TeX.

Інший спосіб: TeXML. Перетворює XML-файл в інший XML (зі спеціальною TeXML-розміткою), а потім TeXML-процесор перетворює TeXML-файл в TeX-файл. Не дуже давня стаття в TUGboat про це.

Ги, таки дійсно в мене одні велосипеди в голові   ;D Добре, хоч розробляти нічого не почав --- в мене й без того зараз голова чавунна   :(
« Змінено: 2009-05-21 12:56:59 від serg_ik »
Якщо Лінукс написали студенти - нехай вони під ним і навчаються.