LINUX.ORG.RU

Latex: отслеживание изменений

 


2

3

Нельзя ли сделать так, чтобы изменения текста отображались как то по иному (смена цвета, шрифта и т.д.)? Поясню: пишем совместную работу. Я написал свой текст, отослал коллеге. Он вписал что-то свое, изменил где-то мой текст и прислал мне. Было бы здорово увидеть как-нибудь его изменения. Неудобно каждый раз отсылать описание изменений и в ответ долго выискивать где его изменения. Можно конечно помечать новый текст типа {\color}, но это неудобно, поскольку текст меняется много раз. Это наверное вопрос даже не про латех, а скорее к редактору текста, но все же может есть какое либо решение. Я пользовался Kile, TexMaker, в последнее время TeXStudio, там такой возможности нет.

(g)vimdiff your_file.tex his_file.tex

anonymous
()

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

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

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

http://tex.stackexchange.com/questions/112396/texstudio-texmaker-and-github

https://en.wikibooks.org/wiki/LaTeX/Collaborative_Writing_of_LaTeX_Documents

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

Поробовал выставить «Выполнять check-in при ручном сохранении» выдает ошибку Команда txs:///svn ci -m «txs auto checkin» «/home/path/to/tex/file» не определена . Система Linux Mint Mate 17.2. Видимо чего то доустановить надо, хотя в описании написано, что для линукса все по умолчанию работает. Доустановил subversion, ошибки не выдает, но непонятно что делает.

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

Подробнее пожалуйста. Что такое СКВ? И как его прикрутить. Мне бы хотелось чтоб после копиляции изменения были выделены цветом напримерю

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

Это не совсем то, что мне надо. Это просто сохранение истории версиий. Мне хотелось бы при компиляции сразу увидеть изменения. Попробую написать создателям Texstudio, в качестве пожелания. Мне кажется это не сложно реализовать (я не программист, поэтому кажется). Есть две версии файла, найти различия и при компиляции выделить их цветом.

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

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

Имхо, в исходниках это делать логичней (так и используют это почти все). Примеры в sharelatex-e не «вдохновили»?

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

СКВ — система контроля версий (vcs). Прикрутить достаточно просто: установите нужную (объясню на примере git), в папке с проектом выполните git init, потом — git add <нужный файл> и git commit. Смотреть изменения в исходнике можно через git diff. Подробнее тут: https://git-scm.com/.

после копиляции изменения были выделены цветом

Такого не знаю.

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

Впрочем, есть и другой подход

https://www.sharelatex.com/blog/2013/02/16/using-latexdiff-for-marking-change...

Как я и предполагал

I was hoping to find a feature in tex similar to “Track changes” found in Microsoft Word.

http://emeryblogger.com/2011/01/14/diff-your-latex-files-with-latexdiff/

http://tex.stackexchange.com/questions/36351/comparing-the-output-of-two-pdfs

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

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

Может быть перед компиляцией всё-таки?

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

http://imgur.com/GamsJy3

Это gitk, входит в состав git.

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

Посмотрел описание по вашей ссылке и нашел неплохое решение latexdiff old.tex new.tex > diff.tex & pdflatex diff.tex В получающемся файле после компиляции изменения выделены цветом, да еще и волной подчеркнуто. То что надо. Спасибо за совет. Попробую прикрутить в макросы TexStudio. Автору я тоже написал, может добавит кнопку. Больше 20 лет пользуюсь техом и не перестаю удивлятся.

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

Спасибо, только надо с git разбираться, а не хочется, описание огромное. Решение, как в предыдущем моем посте более подходящее.

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

только надо с git разбираться, а не хочется

«Что тут думать, трясти надо!»

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

Спасибо конечно, но я не привык запускать команды, не зная, что они там натворят. Читать все равно надо. Хотелось бы покороче, у вас совсем уж кратко :-).

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

Я использую систему контроля версий для своих текстов (раньше CVS, сейчас git) или ediff в emacs.

Evgueni ★★★★★
()

ТС тебя спасет GIT

MikeDM ★★★★★
()

я именно для этой задачи

- совместное редактирование, отправляю мужику пдф. Он туда в режиме комментариев вставляет свои куски или замечания. Не скажу, что это 100% правильное решение, но тем не менее как опция

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

Спасибо, начал уже, понимаю, что надо освоить. Вопрос остался вот какой - как используя git можно запустить latexdiff для сравнения каких то вариантов статьи? И, кстати, в линухе есть несколько вариантов latexdiff, latexdiff-fast, latexdiff-rcs, latexdiff-vc, latexdiff-cvs, latexdiff-git, latexdiff-svn. Видимо каждый для своей цели? Все хорошо в latexdif, но с bibtex-ом не работает. Есть совет обработать в начале файлы bbl и затем уже теховские, но это работает только с простыми стилями, а с refvex4.1 не работает. Нашел в инете Latexdiffcite, но не могу установить все ошибки лезут.

rustamych ★★★
() автор топика
Ответ на: я именно для этой задачи от sshestov

Я так делал одно время. Это подходит когда изменений мало. Если же реально текст сильно перерабатывается, то это не удобно. Видимо выход это git+latexdiff. Я еще написал разработчику TexStudio, может они чего придумают.

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

Все пакеты кроме latexdiff-git были стандартным средством отслеживания изменений. Просто как только возник GitHub и начал свое активное хождение по планете сам Git, тогда и запилили пакет latexdiff-git.

Я бы советовал именно его. Остальные морально устарели. Хотя это не значит, что их выкидывать. Просто они плохо в современные концепции VCS вписываются.

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

Никогда не использовал специализированные сверялки. Использовал всегда стандартный diff. В emacs сравнение с предыдущей версией ^x v =

Evgueni ★★★★★
()

rustamych ★  Я пользую линух уже лет 20 (с)

Ну да, помним. И как за эти 20 лет, так даже и не освоить ни любую СКВ, ни diff? :)

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

Никогда не отвечал на такие посты, но сейчас отвечу. Пользуюсь линухом с 95 или 96 года, не помню точно, сначала в Германии. Это была ужасная система. Работать было оч сложно, но можно, да и выхода не было. Я даже не помню как все это называлось. Помню там была совершенно садитсткая почтовая программа. Что бы что нибудь исправить надо было на клаве играть как на пианино. Затем были разные линухи, помню asplinux, fedora, debian, ubuntu, после появления Unity пересел на Mint Mate и оч доволен. В линуксе много чего есть, что мне совершенно не нужно, зачем это осваивать? Я физик, не программист, и мне эти СКВ и diffы были не нужны. Без них обходился прекрасно. Сейчас вот возникла нужда и люди типа Evgueni и bookman900 дают дельные советы и вот теперь можно и осилить. А вам, сударь, просто делать нечего.

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

Я физик, не программист, и мне эти СКВ и diffы были не нужны

А как ты софт пишешь прикладной? Я уже давным-давно пользуюсь СКВ: сначала на гуглокоде mercurial, потом завел еще mercurial репы на сосфорже, сейчас еще дублирую git'ом на гитхабе, гитлабе и битбакете.

Крайне советую.

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

latexdiff

Не всегда такие узкоспециальные вещи удобны. Мне, скажем, неудобно latexmk для сборки использовать: сложные вещи я либо рукописным makefile'ом собираю, либо баш-скрипт пишу. А простые тупо pdflatex file.tex нужное количество раз.

Но, как говорится, это все фломастеры.

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

И как за эти 20 лет, так даже и не освоить ни любую СКВ, ни diff? :)

Ты бы еще пользователя iPhone спросил о разработке под iOS. Он (ТС) пользователь-хомячек.

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

Использую постоянно Mathematica, и когда надо что-то большое и численное, то MatLab. Софт прикладной не пишу, нет задач для этого, языков программирования на серьезном уровне не знаю. Как-то подрабатывал в одной фирме, пришлось много писать под MatLab, но нужды в сохранении версий не было. Есть задача - открываю директорию и храню там файлы MatLab, связанные с проблемой. Надо выдать решение задачи, а не прогу. Затем LuckyBackup 5 раз в день делает копии в облако Copy и Mega. Вот и все. Программеры, кто потом из наших наработок писали софт в C или Pythonе, те постоянно говорили про git. Это им действительно нужно. У меня только сейчас возникла потребность сравнивать файлы, да и то теховские. Вот если бы прикрутили к Texstudio что нибудь типа latexdiff это было бы лучше. Git все-таки для создателей софта.

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

Texstudio

Если пользуешься этим IDE, то там есть встроенная поддержка SVN. Git для всех на самом деле. Если что-то будет представляться для просьбы о помощи — выше вероятность, что помогут, потому что Git де-факто стандарт в VCS.

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

расслабься, просто типичному пользователю линукса(по сути играющего в него как в конструктор) редко встречаются потребители с таким стажем.

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

Вообще не понимаю, как может физик строить модели и обрабатывать данные без знания сишечки! Матлаб же тормозной! Да и не годится матлаб для рутины. Как ты автоматизируешь обработку однообразных данных? Я тупо написал на сишке скриптик, запустил, оно работает. И работает намного быстрей октавы (матлаба у меня нет, т.к. не нужен он)!

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

... latexdiff, latexdiff-fast, latexdiff-rcs, latexdiff-vc, latexdiff-cvs, latexdiff-git, latexdiff-svn ...

Реально они тебе не нужны. Просмотр «снимков» (commit-ов) на web-сервисах типа github/bitbucket/... покрывает большинство потребностей. Тебе они кажется нужными, только из-за отсутствия опыта использования vcs в повседневной практике.

Я физик, не программист, и мне эти СКВ и diffы были не нужны.

Сделаю вывод, что всё таки ты пользуешься математическими пакетами, и так или иначе пишешь «программы».

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

Лично я, чаще пользуюсь Mercurial и bitbucket.org (как-то так исторически сложилось). Последний, предоставляет неограниченное количество участников в твоих проектах, если зарегистрироваться с электронным адресом университета (все эти сервисы так или иначе пытаются зарабатывать деньги). У меня уже в привычке создавать «хранилище» для latex документов, с которыми я буду работать больше пары дней. Это даёт:

  • возможность в одном месте держать предыдущие наработки (в особенности преамбулы);
  • легко работать в коллективе;
  • не думать как синхронизировать работу сделанную дома и на работе;
  • понимать когда и зачем вставил тот или иной абзац (если хорошо вести комментарии к снимкам);
  • посмотреть что сделано за большой промежуток времени;
  • год от года дополнять и править лекции и лабораторные, которые веду;
  • ставить небольшие задачи по тому, что надо сделать (опять же нужна культура их ведения в issues).

Так что на пару с коллегой смело регистрируйтесь на одном из предложенных сервисов и смело изучайте git. Это однозначно внесёт что-то новое, и главное у вас есть стимул: сверстать совместную статью.

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

Спасибо за комент, Список возможностей приличный и «Это однозначно внесёт что-то новое» вот это радует. Я уже начал понемногу изучать git, времени только свободного мало, но чувствую, что надо освоить. Для совместного дела мы обычно использовали dropbox, но приходится у каждого держать свою директорию с его вариантом работы. На bitbucket недавно зарегистрировался, смотрел commit-ы, там до пса информации, действительно нужна культура использования. «так или иначе пишешь «программы»» - для меня программирование, это когда используются языки программирования (C, Python, Java и т.д.), а в пакете Mathematica синтаксис очень упрощен для более простого использования. Синтаксис в MatLab немного посложнее, но не намного, и в нем есть встроенные очень мощные операции. Я видел коды которые пишут на основе наших простых матлабовских файликах, там без git-а сложно.

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

Mathematica/MatLab/Maple/... в своё время были лучшими инструментами, но теперь ситуация сильно изменилась, при этом кроме клонов (scilab/octave/maxima/...) появилось и много совершенно иных инструментов с открытым кодом. Тут стоит отметить такие вещи как:

  • numpy, scipy которые дали не только волну библиотек для математики на python, но и такой инструмент как IPython Notebook, а за тем и Jupyter.
  • Замечательный инструмент ROOT от CERN на базе безумного интерпретатора С++: CINT (и как его не назвать инструментом физика? :) )
  • Множество специализированных пакетов как, например, FEnICS, OpenFOAM, Quantum ESPRESSO, ..., ..., ..., ...
AlexVR ★★★★★
()
Ответ на: комментарий от AlexVR

Посоны, вы прежде чем гражданину давать

ЦУ типа «тебе, как физику, надо делать так-то...», напишите уж сначала свой индекс хирша, или там список публикаций. А то шапками размахались - у меня аж рожа от ударов красная. У вас своя работа, у него своя

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

Я более менее в курсе. Хочу только отметить, что ведущие пакеты по символьным вычислениям это конечно Mathematica и Maple. Я пробовал Maxima, IPython NoteBook, Scilab, Sage. Возможности не те. Я вначале пользовал Maple (не помню версию), в то время он влазил на 4 дискеты по 1.44Мб. Но после многочисленных ошибок перешел на Mathematica (начал с версии 5), о чем не жалею. Maxima был первый пакет символьных вычислений, стоил безумно дорого, потом стал бесплатным. Я пытался вставить его в учебный процесс, как бесплатный, у него есть неплохая оболочка wxmaxima, оч похожая на Mathematica, но потом универ купил лицензию на Mathematica и нужда отпала. У maxima есть свои герои, которые написали уже массу литературы о ней, я держу ее на компе и слежу за развитием. Для студенческого уровня вполне подходящий инструмент. Но повторюсь еще раз - по символьным вычислениям рулят два пакета Mathematica и Maple. Я пользую 9ю версию Mathematica. Десятка стала очень тяжелой - уже под 3Гб и стала глючить. Вольфрам включил ткм что то вроде искуственно интеллекта, что мне кажется излишлим. Идея такая - пишешь что ты хочешь сделать, а комп тебе отвечает какие операторы в пакете для этого есть. Мне лично это не нужно. По Mathematica оч много литературы, знай читай. По части чесленных вычислений тут действительно разнообразия много. Дополню ваш список еще одним - бесплатная оболочка anaconda для python. Недавно потыкал, неплохо сделано, оч похоже на matlab, который стоит оч дорого. О ROOT не слышал, но уверен, что вещь достойная, CERN ведь. Jupyter тоже не знаю, попробую, что за зверь :).

rustamych ★★★
() автор топика
Ответ на: Посоны, вы прежде чем гражданину давать от sshestov

напишите уж сначала свой индекс хирша

Не думаю, что здесь на ЛОРе есть кому этим можно похвастаться. Зато можно похвастаться, например, репами на гитхабе. Или статейкам в ЖЖшке...

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

Уточню: ты сейчас оправдываешь свою лень?

Я всегда думал, что быть ученым (тем более физиком) — постоянно осваивать что-то новое. Освоить гит — 15 минут твоего времени (минимальный уровень). При этом качество твоей работы вырастет. Ты же прямо говоришь: «Мне лень». У меня сразу возникают подозрения: «Точно ли он физик?»

Да, есть разница между «мне лень» и «никогда не нужно было». Это именно лень.

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

Гит - это просто же. Руководство занимает меньше шестисот страниц.

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

А точно вырастает?

А то лично для меня такой нехитрый в технологическом смысле инструмент как бумажка и ручка рулит и заруливает. И в данном случае (в случае ручки) дело вовсе не в лени

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

Прочитал начальную часть, много конечно интересного. Не нашел ответа на свой первоначальный вопрос. Как восстановить версию документов на определенный день? Или просто восстановить версию документов номер, скажем, 10. И как использовать latexdiff-git чтобы сравнить версии на определенные даты?

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

В день может быть много изменений. Я думаю проще вешать таги на нужные для сравнения версии в течении времени. Далее извлекается версия с нужным тагом и сравнивается с текущей. Это нужно делать не часто. Так что в крайнем случае можно и просто посмотреть log изменений, выбрать нужную для сравнению старую версию, тоже извлечь и сравнить с текущей.

Удобства таких действий обычно должны быть встроены в текстовый редактор. Это отдельная тема.

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.