Совместная работа над документами LaTeX
Для того, чтобы взять под контроль процесс правок при совместной работе, перво-наперво нужно выбрать систему контроля ревизий - пусть это будет Subversion, хотя может быть и Git, и Mercurial, и подставьте_сюда_вашу_любимую_VCS. На мой взгляд, централизованные системы здесь предпочтительнее (всегда знаешь, где последняя ревизия), но это лишь моё личное скромное мнение.
Как бы там ни было, без системы контроля версий обойтись в этом процессе будет невозможно. О том, как быстро и просто установить SVN, уже написано. Использовать Subversion тоже совсем несложно, но, как и ранее, работать можно с любой VCS - я лишь привожу это в качестве примера.
Более того, отследить ревизию документа при обсуждении печатных версий также проще с использованием систем контроля версий: в LaTeX можно вставлять результаты выполнения скриптов. Например, для того, чтобы в печатный вариант документа вставлялась информация о ревизии документа, можно использовать несложный скрипт на Python.
Правки и комментарии в документах LaTeX
Приведу свои результаты проб и ошибок в деле коллективной работы над латеховскими документами. Вот тут, кстати, начинаешь немного тосковать по Word и OpenOffice.Writer, в которых есть встроенные средства для коллективной работы (правки, исправления, пометки, заметки на полях). Некое подобие этого я реализовал в LaTeX и с некоторым успехом применял для правок дипломов у своих студентов.
1. Дробление документов
С одним большим документом работать просто невозможно и жутко неудобно - так что главы дипломов, отчётов и крупных монографий лучше разделить на файлы и вставлять директивой \input. Это облегчит работу и системе контроля версий при обновлении рабочих копий - чтобы правки были неперекрывающиеся.
2. Зачёркивания и пометки цветом
Чтобы иметь возможность зачеркивать слова в LaTeX, включаем в преамбуле документа пакет ulem:
\usepackage{ulem}И далее в тексте для зачёркивания используем команду \sout{чтобы зачёркивать текст}.
И далее в тексте для зачёркивания используем командуАльтернатива пакету ulem - пакет soul, где для зачёркивания используется команда \st{зачеркнуть это}.чтобы зачёркивать текст.
Рядом обычно пишется вопрос или предложение фразы для соавтора - это лучше помечать цветом (при этом лучше сразу договориться, какой цвет выберет каждый соавтор, чтобы потом с ума не сойти). Для выделения цветом в LaTeX можно использовать пакет xcolor, который подключаем в преамбуле:
\usepackage{xcolor}И далее помечаем в тексте слова \textcolor{red}{красным шрифтом}:
И далее помечаем в тексте слова красным шрифтомУдобно, когда нужно обратить внимание соавтора на выдающийся ляп :-)
3. Заметки на полях и комментарии в LaTeX
Иногда хочется выразить своё мнение или особо обратить внимания соавтора на что-то - в этом случае стоит использовать заметки на полях. Для этого есть стандартная команда
\marginpar{Замечание соавтору сбоку на полях.}и этот текст появится сбоку на полях, для лучшей видимости.
Но иногда комментарий длинный или хочется втянуть соавтора в письменную дискуссию - тогда нам придёт на помощь небольшой трюк. Можно определить команду комментирования, и тот текст, который будет в комментарии, не будет виден в откомпилированном документе, но в коде присутствовать будет. Для этого в преамбуле определяем новую команду так:
\newcommand{\comment}[1]{}и в тексте можно дать волю своим полемическим способностям\comment{, потому как этот текст всё равно не будет виден в откомпилированном LaTeX-документе}.
и в тексте можно дать волю своим полемическим способностям.Эти в общем-то нехитрые приёмы, часть из которых со временем выветривается из моей просторной головы, помогают поддерживать адекватный уровень совместной работы.
Буду рад, если многоуважаемые и ценимые мною товарищи комментаторы насыпят и отгрузят свои приёмы совместной правки LaTeX-документов в открытые на всю ширь комментарии.
Ссылки по теме
http://sovety.blogspot.com/2007/07/latex.html
http://en.wikibooks.org/wiki/LaTeX/Formatting#Emphasizing_Text
http://www.tex.raleigh.ru/doku.php/faq/typesetting
Собственно так и осуществляю контроль всех текстов (программы и диплом) на своих компьютерах после одного случая неудачной синхронизации с ноута который угробил неделю работы :(
ОтветитьУдалитьЖаль ваша статья раньше не вышла :D
я хоть и работаю в "одиночестве" но использую Bazaar для контроля версий проекта (группы документов) и в целом удобно. :) для подстраховки еще Dropbox. А за остальное спасибо за подсказки по комментариям.
ОтветитьУдалитьВсё-таки "системы управления версиями", а не "контроля" их. Не надо закреплять ошибку двоечника-переводчика, который перевёл слово "control" "как слышится". Хватит с нас такого же типа выражения "национальная идентичность" :-)
ОтветитьУдалитьkostix я прошу прощения за "управление" и "контроль", так же я не "троль", на всякий случай.:)
ОтветитьУдалитьПро использование цвета, зачёркивания, заметок на полях итп. для общения соавторов. Я упорно не понимаю, зачем это нужно. Во всех актуальных VCS есть команды diff и blame. Первая показывает, что изменилось, вторая - кто какую строку написал. Если не хочется править собственно текст, всегда можно добавить комментарий (% Перепиши это!).
ОтветитьУдалитьа еще есть \usepackage{rcs}
ОтветитьУдалитьи программа latexdiff (включающая latexdiff-cvs, latexdiff-rcs, latexdiff-svn)
Странно, что про распределённые vcs не написал. Mercurial - наше всё, ящитаю.
ОтветитьУдалить@Михаил
ОтветитьУдалитьСобственно так и осуществляю контроль всех текстов (программы и диплом)
Здесь немного не об этом - я просто обобщил здесь свои находки по совместной правке документов. А я сейчас с SVN переполз на Mercurial. К новому году выдам пост, сейчас работы много.
@Федір Гонца
я хоть и работаю в "одиночестве" но использую Bazaar для контроля версий
Всё равно, что использовать. Главное, чтобы была хотя бы одна копия где-то ещё. Google code хорошо для этого подходит.
для подстраховки еще Dropbox.
А это для чего? Можно поподробнее?
@kostix, 07.06.2010 1:55:00
Всё-таки "системы управления версиями", а не "контроля" их.
На мой вкус, так как раз контроля.
В следующий раз напишу управления :-)
@Portnov
Про использование цвета, зачёркивания, заметок на полях итп. для общения соавторов. Я упорно не понимаю, зачем это нужно.
Потому, что часто соавторы в компьютерах откровенные дятлы. :-)
Ну и например где-то в тексте хочется соавтору обратить внимание на что-то и попросить переделать фразу.
Во всех актуальных VCS есть команды diff и blame.
Это не вариант вообще. Вы будете долго искать в абзаце (а у меня динамический перенос строк), где и что изменилось. Выделить цветом - самое оно.
вторая - кто какую строку написал.
Ситуация ещё хуже: например, я использую VCS, а кто-то нет и не хочет.
всегда можно добавить комментарий (% Перепиши это!).
Проходили мы это. Не работает - на комментарии часто не обращаешь внимания и работаешь с текстом в DVI. Надо чтоб было видно, отсюда и заморочки с цветом.
@syslog
а еще есть \usepackage{rcs}
О, надо будет посмотреть. Спасибо!
@Анонимный
Странно, что про распределённые vcs не написал. Mercurial - наше всё, ящитаю.
Пост не о том, но про меркуриал это да, оно моё всё теперь (почти переполз на него). Про меркуриал пост будет не раньше декабря, так что потерпите, товарищи :-)
(ответ носит шуточный тон)
ОтветитьУдалить@virens - вобщем-то любой из "облачных" сервисов (Dropbox, UbuntuOne, SpiderOak, самокупленый у "облака") спасает от преждевременных летальных исходов :)... Был случай, записал файлы на диск (usb-backup) и неблагополучно уронил его на бетонный пол, после чего он уже не читался. Если бы не символьная ссылка из рабочего каталога в каталог любого вышеозначенного сервиса, то 5 лет напряженной научной работы испарились вместе с диском. После этого я как "религиозный параноик" начал делать бекапы во все возможные места (не забывая о класике "hard copy", если позволяет сам характер материала). Так же один раз спасла система контроля версий в самом Dropbox. Самое замечательное в этих сервисах или в настроенных бекапах где угодно - это то, что оно само, делает за тебя твою работу, честно и постоянно, даже если ты забыл сделать commit.
К сожалению сервера личного не имею, да и привязка к одной location не спасает Вас от наводнения или "опа, соседи затопили" :)
p.s.... странно, я не считал себя параноиком, перечитал и понял, надо завести бекап основных органов. Так же никто случайно не знает как "забекапить" деньги? :)
Для вставки номера ревизий в svn учть такая вещь как keyword. Для mercurial есть одноименное расширение.
ОтветитьУдалитьДля всяких todo вставляю в код такую вещь: @todo: Исправь это. Затем скриптом с коммнадой "grep -ni "@todo" `find . -name "*.tex"`" Ищу все todo.
P.S. использую git.
Когда-то написал такое: http://ro-che.info/docs/dvcs-for-math.html
ОтветитьУдалитьТема мне уже давно не интересна, статья сейчас представляет разве что историческую ценность :) но в конце есть дельные ссылки по теме. (Добавил ссылку и на эту статью.)
@Федір Гонца
ОтветитьУдалить@virens - вобщем-то любой из "облачных" сервисов (Dropbox, UbuntuOne, SpiderOak, самокупленый у "облака") спасает от преждевременных летальных исходов
Аааа, понял. А то сижу в своей глухой деревне и ничего про такое не слышал. Спасибо!
К сожалению сервера личного не имею, да и привязка к одной location не спасает Вас от наводнения
Поэтому я многое стараюсь загрузить в Интернет. И записки в блог в том числе - уж гугловцы-то бекапы делают, правда? :-)
@Сергей Любимов
Для вставки номера ревизий в svn учть такая вещь как keyword. Для mercurial есть одноименное расширение.
Глянем, спасибо.
Для всяких todo вставляю в код такую вещь: @todo:
Не, не айс. Надо соавтору написать, что он где-то неправ и чтоб он это увидел. У меня соавторы такие, что на клавиатуре одним пальцем тексты набирают, а вы им про греп :-)
Roman Cheplyaka, 08.06.2010 0:25:00
Когда-то написал такое
Некоторыми ссылками я оттуда пользовался, кстати.
Тема мне уже давно не интересна
Знания лишними не бывают - никогда не знаешь, когда пригодятся.
Добавил ссылку и на эту статью.
Спасибо.
>> Во всех актуальных VCS есть команды diff и blame.
ОтветитьУдалить> Это не вариант вообще. Вы будете долго искать в абзаце (а у меня динамический перенос строк), где и что изменилось. Выделить цветом - самое оно.
git diff --color-words :) (скриншотик)
А ты, virens, не смог-таки избежать традиционного авторского ляпа:
отследить ревизию документа при обсуждении печатных версий так же проще
Слушай, а может, ну их, все эти копирайты и ссылки на автора? Ты же и так бессознательно каждую статью метишь не очень заметным знаком :)
@Blogger Minoru
ОтветитьУдалитьО, редактора в тред! :-)
git diff --color-words :) (скриншотик)
Гит не пройдёт. А скриншотик зачётный.
А ты, virens, не смог-таки избежать традиционного авторского ляпа
Таки настаиваю на авторской орфографии.:-)
Слушай, а может, ну их, все эти копирайты и ссылки на автора?
Нифига. Буду идти до конца и таки анально карать :-)
Хотя я уже устал бороться со всякой школотой, которая тупо копипастит мои статьи и фигачит по умолчанию "автор - Пупкин".
Ты же и так бессознательно каждую статью метишь не очень заметным знаком
Про ссылку на автора? А ты думаешь, её многие видят!? Кстати, Minoru, набери в гугле "Записки дебианщика" и погугли в районе 5-6 ссылки. У меня тут ещё один двойник объявился - я даже потроллил немного в комментариях. А ты говоришь, лицензию сними...
Последний абзац моего комментария — это шутка по поводу «так же». Типа, зачем ставить копирайты, если эта ошибочка и так явно указывает, что автор статьи — ты? :)
ОтветитьУдалитьА касательно блога-двойника — что-то я ничего выдающегося не нашёл. Может, ты мне ссылочку скинешь, а?
Сейчас ещё раз поглядел на скриншот, который запостил ранее — да-а-а, omploader очень красиво прикололся. Короче, розовенькая надпись — это не мой прикол, это таки хостинг веселится. Вот по этой ссылке должно отображаться нормально (на крайняк есть инфо-страничка)
ОтветитьУдалитьПакет pdfcomment не пробовал? в TeXLive есть 2009 (за другие не знаю)
ОтветитьУдалить(матерясь на отправку комментов в блогпосте)
ОтветитьУдалитьпакет pdfcomment не пробовал?
Ну и... АдобеАкробатРиадер в своей платной иеркорнации умеет вставлять аннотации в документ, об этом писал Евгений Балдин, когда рассказывал, как у него происходила работа с корретором при подготовке книги "LaTeX - Компьютерная типография". Окулар есть и для винды уже, он может тоже аннотации делать, но сохраняет их во вне, но может (Экспорт) делать "архив" самой PDF и мета-данных, к сожалению непортабельно и работает только в Окулар (на какой платформе - без разницы)
@Minoru
ОтветитьУдалитьПоследний абзац моего комментария — это шутка по поводу «так же». Типа, зачем ставить копирайты, если эта ошибочка и так явно указывает, что автор статьи — ты?
Ого, как ты тонко меня троллить начал :-) Но да, я от этой ошибки всё отвязаться не могу...
А касательно блога-двойника — что-то я ничего выдающегося не нашёл.
Это на тебя негуглёж напал? :-) debiannotes точка ру.
Сейчас ещё раз поглядел на скриншот, который запостил ранее — да-а-а, omploader очень красиво прикололся.
На момент просмотра мной, ещё раз прикололся, так что хорош спамить, а то уже тут набежали мерзавцы со своей виагрой и увеличенными членами...
@h4tr3d
Пакет pdfcomment не пробовал?
Хто это?
в TeXLive есть 2009 (за другие не знаю)
Ну так то ж свежак...
(матерясь на отправку комментов в блогпосте)
Не надо. Ко мне нагрянули спамеры, это я от них комменты на проверку закрыл.
Ну и... АдобеАкробатРиадер в своей платной иеркорнации
Ну здрааааааааавстуйте.... :-)
Платный адобридер, да?
умеет вставлять аннотации в документ
Я знаю, пользовался этим, когда статью в Optics Communications отправлял. Удобно.
Окулар есть и для винды уже
Одын мынус: по крайней мере в Ленни оно тащит за собой всё КДЕ, а так же предлагает рекомендованные зависимости в виде pulseaudio и xine-ui (что курят мейнтейнеры!?). Что не радует.
На pdfcomment гляну, спасибо.
>> А касательно блога-двойника — что-то я ничего выдающегося не нашёл.
ОтветитьУдалить> Это на тебя негуглёж напал? :-) debiannotes точка ру.
Сейчас ещё раз погуглил — на первой странице все ссылки уже фиолетовым подсвечены (посещались, тобишь), кроме одной. Не знаю даже, что и сказать…
Странно, что двойник вроде как собственные статьи пишет — хотя многие заголовки почему-то смутно знакомы…
И да, ещё раз извиняюсь за omploader — это они, оказывается, так с хотлинкингом борются. Не смешно и обидно :(
Кстати, по поводу комментаторов-продавцов: а можно как-то заблокировать конкретному пользователю доступ к комментировнанию? А то меня тоже достают потихоньку. Вроде погуглил — ничего не нашёл, но ты же видишь, я сейчас чуток не в ладах с гуглом :)
И все общение через скомпилированный ps/pdf? Неужели так оказалось удобнее, чем, скажем комменты+багтрекер? Я, например, заметил, что смотрю на результат компиляции в последнюю очередь, преимущественно с кодом работаю.
ОтветитьУдалить@Minoru
ОтветитьУдалитьСейчас ещё раз погуглил — на первой странице все ссылки уже фиолетовым подсвечены (посещались, тобишь), кроме одной.
Да ладно, со всеми бывает :-)
Странно, что двойник вроде как собственные статьи пишет
Вроде как. И там в названии многоточие. То есть как кроссовки Абибас и бытовая техника Borsh (Борщ).
И да, ещё раз извиняюсь за omploader — это они, оказывается, так с хотлинкингом борются.
Use google picasa, Luke! :-)
Кстати, по поводу комментаторов-продавцов: а можно как-то заблокировать конкретному пользователю доступ к комментировнанию?
Нет, нельзя. Стукануть в гугл на спам в блогах можно (кстати, закрывают быстро). Мой путь борьбы - предпросмотр комментариев. Да, это не так здорово. Первые 3-4 дня комменты к последнему посту открыты.
Вроде погуглил — ничего не нашёл
Народ тут кстати нагуглил Discuss - это сервис на другом ресурсе, который можно прикрутить к блоггеру. Мне эта идея конкретно не нравится (и она, увы, начала расползаться по блогам): тормозное оно, и часто не удаётся отправить комменты вообще. И потом, картинки на одном сервере, комменты на другом, блог на третьем... Если что-то накроется, поедет весь блог. Пусть лучше оно всё на гугле варится - если уж там что поломается, так уж глобально :-)
@Mr. Cat
И все общение через скомпилированный ps/pdf? Неужели так оказалось удобнее, чем, скажем комменты+багтрекер?
Кэт, ты вообще о чём? Какой багтрекер!? Эти гаврики в МИФИ до сих пор кое-где используют дискеты, набивают отступы в вордовых документах пробелами и корячатся с набором формул в виде символов шрифта Symbol. А как они рисуют диаграммы - это просто мажор в миноре. Да что там говорить - ты просто на сайт МИФИ зайди и пройдись по кафедральным сайтам по ссылкам. После этого приходи обратно и поделись впечатлениями :-)
Я там со своим Дебианом, ЛаТеХом и SVNом смотрелся, как Алиса Селезнёва с миилафоном - гостья из будущего. Причём судя по всему, из очень отдалённого.
Я, например, заметил, что смотрю на результат компиляции в последнюю очередь, преимущественно с кодом работаю.
Ясное дело, я тоже так работаю, но народ требовал PDF (хотя бы) и чтоб там было видно, где и что я правил.
по пунктам:
ОтветитьУдалить1 отлично
2 отлично
3 использую \begin{comment}texttext\end{comment}
Можно отметить не самое оптимальное использование VCS, но это видимо связано с организацией работы в целом.
Да, я за mercurial.
u995.livejournal.com
Миш, кат куда-то делся. Или его и не было?..
ОтветитьУдалить> На мой взгляд, централизованные системы здесь предпочтительнее (всегда знаешь, где последняя ревизия)
ОтветитьУдалитьпацтулом. зачет! к чему только лень не приводит))
@Анонимный
ОтветитьУдалить3 использую \begin{comment}texttext\end{comment}
Условия задачи другие БЫЛИ: я один латехник среди вордодятлов и они ничего кроме вёрда и пидиэфа не переваривают.
Можно отметить не самое оптимальное использование VCS
А в чём неоптимальность?
Да, я за mercurial.
Это да, но он не всегда удобен. Я всё жду, пока кого-то осенит гениальная мысль научить kdesvn понимать hg-репы. То, что сейчас есть из графики для просмотра репозитория - это просто убогость какая-то.
@Minoru,
Миш, кат куда-то делся. Или его и не было?..
Лениво. Всё равно один пост отображается...
@Анонимный,
> На мой взгляд, централизованные системы здесь предпочтительнее (всегда знаешь, где последняя ревизия)
пацтулом. зачет! к чему только лень не приводит))
А это как вам будет удобнее. DVCS хорошо применять там, где про них слышал хотя бы кто-нибудь кроме автора. А в России, как обычно, полная дремучесть в технологиях сложнее кувалды, тем более в информационных.
Прошу прощения за небольшое опоздание... :) Есть еще один интересный пакет: todonotes. Позволяет добавлять комментарии в стиле Word, и немного больше (например, создавать список тех самых комментариев). К сожалению, нет встроенных функций, ориентированных на нескольких редакторов, но их можно доопределить самостоятельно.
ОтветитьУдалитьОтносительно неплохой вариант это gitlab (можно свою инсталляцию, можно gitlab.com), каждый участник может вносить правки в форке, а потом отправлять на ревизию автору.
ОтветитьУдалитьОднако не хватает возможности произвольно комментировать как это легко делается во всяких вордах, я даже им хотелку такую написал
http://feedback.gitlab.com/forums/176466-general/suggestions/9441417-comment-to-any-part-word-line-paragraph-of-any-t
можно голосовать, авось добавят