LINUX.ORG.RU
ФорумTalks

Ищу редактор/IDE для написания LaTeX-текстов со специальными требованиями

 


1

3

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

В этом и вопрос - назревает задача создания довольно объемного документа в LaTeX, и я возвращаюсь к извечной проблеме: а как его, собственно, писать? Какие есть приложения.

Требования:

  1. Проверка орфографии и желательно пунктуации, на уровне не хуже hunspell + LO Writer. Желательно лучше.

  2. Возможность произвольного выделения кусков текста цветами, шрифтами В ИСХОДНИКЕ документа. Еще раз, внимание - в исходнике, а не в итоговом документе! В итоговом, конечно же LaTeX позволяет оформить как угодно. Надо в исходнике, чтобы я это видел в процессе набора, и чтобы это не было связано с LaTeX разметкой, ибо выделять будет надо намного больше и намного разнообразнее, чем предполагается в сверстанном документе!

  3. Подцветка макросов LaTeX в исходнике.

  4. Возможность корректного открытия файлов с расширением .tex, и чтобы при этом независимо от файла сохранялось форматирование исходника по пункту 2. Я понимаю, что на 146% такого нет нигде и это невозможно. Но а вдруг.

  5. Компромиссный вариант предыдущего - сохранение в rich text формат, с возможностью экспорта в plain text перед сборкой LaTeX.

  6. Весь текст исходника должен вводиться в хотя бы 3 синхронизированных параллельных колонки. Зачем. В первой колонке - номер фрагмента текста. Во второй - набираемый текст, который станет потом входным для LaTeX. В третьей - опорный текст, который выдернут откуда-то, и на основе которого я пишу свой текст. Перед сборкой LaTeX, экспортируется содержимое второй колонки как plain text.

Вопрос - какие, хотя бы общие подходы можно применить для организации такого Workflow?

Обычные LaTeX IDE ничего не могут, бесполезны. Продвинутые plain text редакторы не могут в rich text (пункт 2). Колонки (пункт 5) возможно, из plain text редакторов потянет Emacs. Гипотетически.

Rich text редакторы (LO Writer) могут почти все, кроме подцветки (пункт 3). Остальное реализуется макросами, в принципе.

Пока я склоняюсь к выбору LO Writer для этого, с экспортом в чистый LaTeX исходник макросами.

Может что-то есть получше?

В talks, чтобы не злить вас

★★★★★

Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от ptah_alexs

Ну вот, я допилил, и ЛОРовцы в этом треде мне в этом хорошо помогли, указали куда смотреть.

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

Всмысле, я начинаю жрать Emacs. Пока решения лучше не нашел для этой задачи.

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

По нему вопрос, поддерживает ли он XeLaTex или LuaTeX, именно их а не LaTeX, и почему при попытке импорта моего XeLaTeX исходника в LyX, получаются сплошные кракозябры?

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

Основной вопрос треда решен, поэтому обсудим маркдаун плотнее.

Вот например, если мне надо не как в вопросе треда, а именно в итоговом документе выделить кусок текста розовым цветом, как это сделать?

В LaTeX как то так, да?

\myprecioussuperpupercoloredtextcreationmacros{...}

А в макрдауне?

<span style="color

Это прикол что ли, зачем такая система, в которой элементарные вещи делаются притягиванием совершенно другого чужеродного языка разметки + языка стилей из браузера? Да вы рофлите.

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

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

Ты ещё спроси, как в марудауне в таблице объединить две ячейки в столбце

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

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

SyntaxError
()

Возможность произвольного выделения кусков текста цветами, шрифтами В ИСХОДНИКЕ документа.

это вопросы к условному TMemo выбранного Вами редактора, уже давно решено через компоненты в серьёзных IDE.
и хранению метаданных, например: [Line:stCh:endCh,BgColor,FgColor] и т.д.
где хранить метаданные? самое очевидное - в комментах к коду, но выглядит грязно.
можно отдельным файлом для каждого исходника, но теряется переносимость между разработчиками.

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

Наверное, но вопрос - что такое TMemo и в каких IDE такая возможность есть? Я не использую плотно тяжелые IDE, раскрашивать код не пробовал и не видел такого.

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

что такое TMemo

частный вариант от fpc/lcl/lazarus для семантики «Элемент интерфейса позволяющий отображать и изменять текст».
есть ещё RichText[Field/Edit/Memo]-формата компоненты, но чтобы сохранить - надо в около-rtf сохранять, что не каждый компилятор поймёт.

в каких IDE такая возможность есть?

так Вы спросите в интересующих Вас IDE(почта/issues/форум), так проще будет.

p.s.: не в обиду, но рисовать прямо в коде это какое-то детство/деменция, кмк. для этого есть UML/ER решения.
ну или в синтаксе/подсветке отметить комменты с тегами как нравится, чтобы не теряться в коде, что-то вроде

/* _ATTENTION_HIGH_ : вот тут не понятно, надо подумать как получше реализовать. */

etwrq ★★★★★
()
Последнее исправление: etwrq (всего исправлений: 1)
Ответ на: комментарий от etwrq

Речь о LaTeX. Я не могу понять, почему все воспринимают это как «в коде, рисовать в коде». Я же не предлагаю рисовать в исходниках C++! Ну серьезно, это латех! Система верстки, а не система программирования. Я пишу текст, страниц на 200, на русском языке, для чтения человеками. Почему я там не могу выделять цветами. Я не понимаю.

Складывается впечатление, что тут у всех профдеформация программиста. Как еще расценить предложение использовать UML для по сути книжки на русском языке. Я ничего не понимаю.

James_Holden ★★★★★
() автор топика
Последнее исправление: James_Holden (всего исправлений: 1)
Ответ на: комментарий от etwrq

Вот вы лично, учились же в университете, писали конспекты, выделяли в них маркером. Ну может вы лично и не выделяли, но были студенты(ки), которые выделяли. То есть выходит, у этих отличниц, которые в конспекте маркером малюют - деменция, потому что они должны были средствами UML сначала проект конспекта разработать? Это же какой-то бред.

Что я предлагаю необычного, объясните мне пожалуйста. Выделение цветами в рукописях, это крайне распространенная всеобщая практика, даже если это делается не на компьютере. А на компьютере почему я не могу выделять?

Что с людьми не так

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

Система верстки, а не система программирования.

Из .tex получается же целевые .ps/.pdf(например)?
зачем в .tex что-то «малевать»? как отнесётся к этому интерпретатор?

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

максимум на полях помечал.
это либо визуалы, либо «зубрилы», имхо.

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

как отнесётся к этому интерпретатор?

В том и вопрос треда, чтобы малевать никак не влияя на интерпретатор.

В итоге, я остановился на полузаброшенном пакете для Emacs - ov-highlight, который я немного подпилил. Все выделения он сохраняет в виде base64 строки в конце документа, потом восстанавливает при открытии. Я сделал, чтобы эта строка оформлялась как комментарий, поэтому на интерпретатор оно вообще не влияет.

Работает все отлично, единственная проблема, что нельзя редактировать файл за пределами Emacs, так как это сломает привязку выделения к местам, которые выделены.

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

Я же не предлагаю рисовать в исходниках C++!

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

ugoday ★★★★★
()

Смари, какая мысль пришла в голову, пока я читал твою вводную.
Я бы задробил весь исходник по отдельным документам, тестовым файликам, тут же держал бы список источников, черновики, заметки, весь сопутствующий хлам.
По мере кристаллизации текста подчищал бы, сокращал бы объемы творческого беспорядка.
Когда клочки текста были бы стабилизированы, я бы объединял их с другими кусками, и так постепенно вытанцовывался бы итоговый документ (книга, или что там у тебя). Который уже и верстать есть смысл.
(А то получается борьба за впихивание невпихуемого какая-то)
А для работы с небольшими кускам текста есть дофига чего.

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

Ну так реально, профдеформация.

C++ - это искусственный машинный язык, поэтому задача размалевывать C++ прекрасно решается автоматикой, LSP обеспечивает семантическую подцветку практически в любом редакторе с поддержкой LSP. Поэтому руками там что-то выделять необходимости нет, там другая специфика и действительно, нужны комментарии, весь акцент на них.

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

James_Holden ★★★★★
() автор топика
Последнее исправление: James_Holden (всего исправлений: 1)
Ответ на: комментарий от olelookoe

Да какая разница какие куски. Типа, маленькие куски можно раскрашивать руками, а большие нет? Конечно же нет. Или можно любые, или нельзя любые.

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

Синтакстическая разметка TeXa и C++ прекрасно решается компьютерными средствами которое десятилетие. Но вы же не этого хотите, вы добавляете какие-то свои смысловые слои, метаинформацию поверх исходника. Так что если вам этого хочется в одном, то почему и в другом нет?

P.S. Повторюсь, Дональ Кнут для этого грамотное программирование изобрёл, и лучше ничего пока не придумано.

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

Синтакстическая разметка TeXa

Ну как же ты не монимаешь! Мне не нужна «синтаксическая разметка теха» в данном вопросе. Она и так работает в любом редакторе. Мне нужна синтаксическая разметка русского языка, исходя из состояния информации в моем головном мозгу в данный момент. Как ты это собираешься решать «компьютерными средствами»? Назови хотя бы одно решение, которое автоматически подсвечивает русский язык исходя из субъективного отношения человека, пишущего русский текст к этому конкретному предложению в этот конкретный момент времени. Такое есть? Да, есть - называется «руки из плеч».

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

Дональ Кнут для этого грамотное программирование

Программисты, ну какие вы смешные, честно! Молот во всем видит наковальню, воистину! Я НЕ занимаюсь программированием в этом вопросе. Как ты не понимаешь! Причем тут к лешему грамотное программирование! Я пишу на русском языке текст, никак не связанный с вашим долбанным программированием! Прикинь!

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

Так я о том и говорю. Если вам это нужно в ЛаТеХе, то почему не в С++? Разница-то в чём? Почему вы не хотите раскрашивать С++ «исходя из состояния информации в моем головном мозгу в данный момент», а для ЛаТеХа хотите? В этом основной затык, вы зачем-то по разному относитель к логически эквивалентным вещам.

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

Прежде чем спорить, ознакомились бы с предметом обсуждения. Грамотное программирование не про кодинг, а про различные способы представления информации для компьютера и человека. Т.е. ровно то, чего вы пытаетесь достичь своими раскрасками.

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

Понятно, это бесполезно. Программизм головного мозга.

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

Типа, маленькие куски можно раскрашивать руками, а большие нет?

Типа я и без всякого раскрашивания могу положить нужный мне кусок текста в папочку «синяя» (или «красная» или «какая-то лажа») и дорабатывать как мне нравится. А когда у тебя текст сплошняком, в котором «тут красное»-«там синее»-«здесь рыбу заворачивали», то с этим уже хз что делать.
На мой взгляд.
Но у каждого свой воркфлоу, свое вдохновение, свои музы и свои любимые напитки, поэтому я ни на чем не настаиваю (разве что на апельсиновых корочках), просто мыслями делюсь.

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

Каждое предложение будешь в папочку класть? Ты что, рофлишь?

Один не понимает, чем русский язык отличается от C++, это же одно и то же. Другой предлагает по предложениям файлы нарезать. Или по словам.

Это какой-то шизариум уже. Вы просто жутко объелись конфет.

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

Вы просто жутко объелись конфет.

От сладкого диабэт.

Вы просто жутко объелись конфет.

Тебе обязательно дерево на спички дезинтегрировать, на дрова низзя никак?
Почему на предложения-то, а не на абзацы?
К примеру я с абзацами работаю чаще, чем с отдельными предложениями, или даже с главами целиком. Предложения нафиг нужно выделять, если оно в составе обозримого текста. Но! Еще раз произнесу - на вкус и цвет.

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

могу положить нужный мне кусок текста в папочку «синяя» (или «красная» или «какая-то лажа») и дорабатывать как мне нравится

А собирать это все назад ты как будешь?

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

Каждый абзац в отдельный файл? Серьёзно?

Ну смари, обычно я дроблю как мне нравится, не механически «на абзацы» или «по главам», а как мне прям щас удобно. Может это будет 1 абзац а может 10.
Левая пятка зачесалась - абзацы объединил. Правая пятка зачесалась - раздробил.
Так и живу по велению пятки.
Сколько в результате получается фрагментов это совершенно пофигу. Цель в том чтобы прямо сейчас было удобно.

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

А собирать это все назад ты как будешь?

В какой-то момент кусок текста достаточно допилен для того, чтобы объединять его с другими кусками текста.
Мелкие куски сливаются в крупные (и допиливаются), крупные - в еще более крупные … и так до тех пор, пока не сольются в первый том «война и мир».
Намылить, смыть, повторить.

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

Мелкие куски сливаются в крупные

Сами собой подпрыгивают и сливаются? Или как в терминаторе 2,после того как его в жидком азоте заморозили?

Я и спрашиваю, как именно технически они «сливаются». Руками что ли. Это даже не смешно.

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

как именно технически они «сливаются».

Ты же пишешь слова не в рандомном порядке, правда?
То же касается и предложений, и абзацев, и глав.
Иногда происходит и переупоряочивание, конечно. Ключевое слово - «иногда». То есть редко.
«Ручки, ножки, огуречик.» С этого все начинается. Дальше каждое слово превращается в отдельное законченное предложение, предложение в абзац, абзац - серию абзацев, затем в главу. Главы - в книгу.
Слияние практически всегда - это почти механическая процедура. Где-то отдельно хранится представление о том, что зачем идет. Это может быть отдельный файл со ссылками на (зап )части, а может быть несложное правило именования частей, типа «0100 - про Фому.тхт», «0200 - про Ерёму.тхт», «0300 - про королей и капусту.тхт», етц.
Второй вариант мне больше нравится, он гораздо более юзабельный. И, к тому же, в смысле слияния - гораздо более автоматизируемый. На мой взгляд.

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

Понятно, тогда вопрос - а в чем сакральный смысл делать именно так? Я абзац могу и внутри файла со многими абзацами править.

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

Я абзац могу и внутри файла со многими абзацами править.

Конечно.
Но я не знаю как у тебя, а у меня много сопутствующего хлама - ссылочки, цитатки, черновые записи, отметочки и прочая собачья чушь, которая к абзацу, над которым я работаю, имеет прямое отношение, поэтому далеко ее утаскивать мне не нравится, нужно чтобы все это лежало поближе. А с другой стороны - все это очень мешает и в ногах путается, когда я работаю над другими фрагментами текста. Поэтому слепить все это один большой кусок текста - нет, неудобно. Вот когда над куском текста работу закончил, вот тогда вставляй его куда хошь, он уже причесан, пригляден и отполирован, никому не мешает и нитки из него не торчат. А когда из каждой заплатки нитки - то это не костюм, а безобразие. Лично мне так неудобно.
Но вкусы у всех разные, я понимаю. Поэтому не отрицаю что кому-то может быть удобно работать сразу с большим документом, в котором видно сразу все и сразу.
Мне тоже бывает нужно взглянуть на документ с орлиной высоты, обозрев все и сразу.
Поскольку склеивание - дешевая процедура, то я могу это делать по 100 раз на дню. Склеил - почитал - разобрал.

olelookoe ★★★★
()

и вообще не понимаю, зачем тебе какой-то редактор. нейронка пишет в latex нативно со всеми формулами и layout держит. для чего делать preview? ИИ делает ауторинг файла, генерирует pdf - я его смотрю и проверяю. зачем ещё какой-то инструмент. объясните. или в вашей вселенной ИИ ещё не завезли?

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

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

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

нейронка пишет в latex нативно

А в вашей вселенной уже кандидатские диссертации полностью генерируют нейронками? Вы что, с ума сошли??

Что это вообще было

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

вообще-то ответ был на пассаж про markdown и его проблемы

none
()
Ответ на: комментарий от James_Holden

Latex вёрстка полностью генерируется нейронкой. для этого не нужно никакого редактора, чтобы вручную там что-то ковырять.

  • метаданные хранятся в yaml (любые метаданные, включая переменные если такие есть для самого контента,и настройки страницы, если такое нужно)
  • текст хранится в Markdown/Asciidoc + формулы как вставки (как это делает Mistral - в latex формате прямо в markdown - и не важно что там какой-то рендерер слетит в вашем простортщике. это всё уже не важно, как пел илья лагутенко

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

я ещё пишу так, что правила тестируемы и проверяемы. так что когда агент что-то генерирует, то он запускает тесты, так что его генерация не противоречива.

да. можно писать дисертации. и даже генерировать CAD чертежи. само собой их нужно импотрировать в проф. софт типа TFLEX или Компас-3Д.

это не отменяет работы над контентом самой диссертиции.. просто практически полностью исплючает необходимость в ручном редактировании.

ещё важный момент - делать все страницы в отдельных файлах. и потом всю книгу собирать импортом страниц. тогда каждую отдельную страницу удобно редактировать вручную и менять форматы (a3, a4, a2, …)

none
()
Ответ на: комментарий от James_Holden

А вот я что-то не припомню, что вы говорили о цели всего этого поиска. Кандидатскую писать собрались? Ну что же, дело хорошее, поздравляю!

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

Хорошо, но я уже не раз тут задаю простой вопрос. Зачем мне писать в каких-то маркдаунах и потом это конвертировать нейронкой (я так и не понял причем здесь нейронка, если это делается фиксированным алгоритмом простым легко), если я сразу пишу в LaTeX и не имею с этим ни малейших проблем?

Вопрос - с какого перепоя кому-то может понадобится «генерировать LaTeX верстку нейронкой»? Кто-то не понимает, что заголовок надо завернуть в \caption и ему нужна для этого нейронка? Какую верстку нейронка должна тут делать и как? Это какое-то сумасшествие.

да. можно писать дисертации

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

и даже генерировать CAD чертежи

Интересно, когда берется задача уровня детского сада, и поясняют что ДАЖЕ ЕЕ можно решать. А кто бы мог подумать, что чертежи можно генерировать. Это делалось уже лет 40 без нейронок.

ещё важный момент - делать все страницы в отдельных файлах. и потом всю книгу собирать импортом страниц. тогда каждую отдельную страницу удобно редактировать вручную и менять форматы

Вы просто жутко объелись конфет. С ума сошли что ли

Лол, все страницы с отдельных файлах. В какой психушке так будут работать.

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

Зачем мне писать в каких-то маркдаунах и потом это конвертировать нейронкой (я так и не понял причем здесь нейронка, если это делается фиксированным алгоритмом простым легко), если я сразу пишу в LaTeX и не имею с этим ни малейших проблем?

Щас так модно, ну.
А ещё увлекательный процесс проверки каждый раз, потому что нечёткий алгоритм даёт отличную возможность в одном из десяти раз получить на выходе бредятину вместо ожидаемого результата.

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

Задача - попеременно мигать светодиодами. Деды делали мультивибратор на двух транзисторах. Молодежь - Raspberry Pi 5 и скрипт на питоне.

А вообще, в журнале Радио за 70 год, есть схема умной розетки, срабатывающей на хлопок. Собирается в корпусе розетки. СССР, 70-й год, у людей нет даже микросхем. Только транзисторы. А теперь даем такую задачу промт-инженерам.

James_Holden ★★★★★
() автор топика
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)