协作编辑LaTeX文档的提示

时间:2009-02-12 02:43:16

标签: svn latex collaboration

我的默认设置是将tex源放在subversion存储库中,并在更改其他人的内容时将注释作为源中的注释插入彼此。这一切都感觉非常不理想,特别是当存在颠覆冲突时,所有它告诉你的是“这个巨大段落的这两个版本都存在冲突。”

我想出了一些技巧,但我确信那里有更好的想法(或者我的想法的更好版本)。

有关代码的协作,请参阅此问题:

How do you collaborate with other coders in real time?

(其中一些答案也适用于LaTeX文档上的协作。)

2 个答案:

答案 0 :(得分:11)

始终以换行符结束每个句子。 从不重新格式化段落。这些规则不仅可以最大限度地减少虚假冲突,还可以使协作编辑的论文更容易修改。

对于作者评论,我使用边缘评论:

\long\def\authornote#1{%
        \leavevmode\unskip\raisebox{-3.5pt}{\rlap{$\scriptstyle\diamond$}}%
        \marginpar{\raggedright\hbadness=10000
        \def\baselinestretch{0.8}\tiny
        \it #1\par}}
\newcommand{\simon}[1]{\authornote{SLPJ: #1}}
\newcommand{\norman}[1]{\authornote{NR: #1}}
\newcommand{\john}[1]{\authornote{JD: #1}}

我们把这些放在边缘,因为我们经常准备一份严格的长度限制的纸张,我们希望边际注释不要改变纸张的长度。然后通过

关闭边缘音符
\long\def\authornote#1{\relax}

我还发明了nbibtex工具(现在在Debian中!),这样你就可以使用你的共同作者的不同.bib文件,而不必同意任意的BibTeX键。 nbibtex的工作方式与BibTeX类似,只是它使用来自作者,标题和其他字段的关键词。每个作者的BibTeX文件都可以不同,但​​如果论文在那里,nbibtex会找到它。

答案 1 :(得分:8)

为了缓解无助的颠覆冲突问题,您可以在句子末尾采用换行符约定。 (这也可以更容易地重新排列或注释,或者在上添加句子。)

至于文本源中对彼此的评论,我发现最好将它们显示在pdf文档中,但能够将它们关闭以用于最终版本。我使用宏“kibitz”。要使用它,请将以下内容放在文档的顶部:

\newcount\Comments  % 0 suppresses notes to selves in text
\Comments=1   % TODO: set to 0 for final version

\documentclass{article}   % or whatever your documentclass

% for comments
\usepackage{color}
\definecolor{darkgreen}{rgb}{0,0.5,0}
\definecolor{purple}{rgb}{1,0,1}
% \kibitz{color}{comment} inserts a colored comment in the text
\newcommand{\kibitz}[2]{\ifnum\Comments=1\textcolor{#1}{#2}\fi}
% add yourself here:
\newcommand{\alice}[1]{\kibitz{red}      {[ALC: #1]}}
\newcommand{\bob}[1]  {\kibitz{purple}   {[BOB: #1]}}
\newcommand{\carol}[1]{\kibitz{cyan}     {[CAR: #1]}}
\newcommand{\deb}[1]  {\kibitz{darkgreen}{[DEB: #1]}}
\newcommand{\evan}[1] {\kibitz{blue}     {[EVN: #1]}}

然后,爱丽丝可以粘贴\alice{Bob must've added the previous sentence which is obviously false.}之类的内容,并且只要Comments设置为1,它就会在pdf中显示为红色。