[{"data":1,"prerenderedAt":1693},["ShallowReactive",2],{"navigation_docs":3,"-programming-collaborative-writing":351,"-programming-collaborative-writing-surround":1688},[4,31,45,83,109,147,197,215,253,291,329],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":30},"Getting Started","i-lucide-play","\u002Fgetting-started","01.getting-started",[10,14,18,22,26],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","01.getting-started\u002F01.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","01.getting-started\u002F02.installation",{"title":19,"path":20,"stem":21},"Installing Extra Packages","\u002Fgetting-started\u002Finstalling-extra-packages","01.getting-started\u002F03.installing-extra-packages",{"title":23,"path":24,"stem":25},"Basics","\u002Fgetting-started\u002Fbasics","01.getting-started\u002F04.basics",{"title":27,"path":28,"stem":29},"How to Get Help","\u002Fgetting-started\u002Fhow-to-get-help","01.getting-started\u002F05.how-to-get-help",false,{"title":32,"icon":33,"path":34,"stem":35,"children":36,"page":30},"AI Integration","i-lucide-bot","\u002Fai-integration","02.ai-integration",[37,41],{"title":38,"path":39,"stem":40},"Model Context Protocol (MCP)","\u002Fai-integration\u002Fmcp","02.ai-integration\u002F01.mcp",{"title":42,"path":43,"stem":44},"Agent Skills","\u002Fai-integration\u002Fskills","02.ai-integration\u002F02.skills",{"title":46,"icon":47,"path":48,"stem":49,"children":50,"page":30},"Document Fundamentals","i-lucide-file-text","\u002Fdocument-fundamentals","03.document-fundamentals",[51,55,59,63,67,71,75,79],{"title":52,"path":53,"stem":54},"Document Structure","\u002Fdocument-fundamentals\u002Fdocument-structure","03.document-fundamentals\u002F01.document-structure",{"title":56,"path":57,"stem":58},"Text Formatting","\u002Fdocument-fundamentals\u002Ftext-formatting","03.document-fundamentals\u002F02.text-formatting",{"title":60,"path":61,"stem":62},"Paragraph Formatting","\u002Fdocument-fundamentals\u002Fparagraph-formatting","03.document-fundamentals\u002F03.paragraph-formatting",{"title":64,"path":65,"stem":66},"Fonts","\u002Fdocument-fundamentals\u002Ffonts","03.document-fundamentals\u002F04.fonts",{"title":68,"path":69,"stem":70},"Colors","\u002Fdocument-fundamentals\u002Fcolors","03.document-fundamentals\u002F05.colors",{"title":72,"path":73,"stem":74},"List Structures","\u002Fdocument-fundamentals\u002Flist-structures","03.document-fundamentals\u002F06.list-structures",{"title":76,"path":77,"stem":78},"Special Characters","\u002Fdocument-fundamentals\u002Fspecial-characters","03.document-fundamentals\u002F07.special-characters",{"title":80,"path":81,"stem":82},"Internationalization","\u002Fdocument-fundamentals\u002Finternationalization","03.document-fundamentals\u002F08.internationalization",{"title":84,"icon":85,"path":86,"stem":87,"children":88,"page":30},"Page Design","i-lucide-layout","\u002Fpage-design","04.page-design",[89,93,97,101,105],{"title":90,"path":91,"stem":92},"Page Layout","\u002Fpage-design\u002Fpage-layout","04.page-design\u002F01.page-layout",{"title":94,"path":95,"stem":96},"Page Headers and Footers","\u002Fpage-design\u002Fcustomizing-page-headers-and-footers","04.page-design\u002F02.customizing-page-headers-and-footers",{"title":98,"path":99,"stem":100},"Title Creation","\u002Fpage-design\u002Ftitle-creation","04.page-design\u002F03.title-creation",{"title":102,"path":103,"stem":104},"Footnotes and Margin Notes","\u002Fpage-design\u002Ffootnotes-and-margin-notes","04.page-design\u002F04.footnotes-and-margin-notes",{"title":106,"path":107,"stem":108},"Rotations","\u002Fpage-design\u002Frotations","04.page-design\u002F05.rotations",{"title":110,"icon":111,"path":112,"stem":113,"children":114,"page":30},"Tables and Graphics","i-lucide-table","\u002Ftables-and-graphics","05.tables-and-graphics",[115,119,123,127,131,135,139,143],{"title":116,"path":117,"stem":118},"Tables","\u002Ftables-and-graphics\u002Ftables","05.tables-and-graphics\u002F01.tables",{"title":120,"path":121,"stem":122},"Floats, Figures and Captions","\u002Ftables-and-graphics\u002Ffloats-figures-and-captions","05.tables-and-graphics\u002F02.floats-figures-and-captions",{"title":124,"path":125,"stem":126},"Importing Graphics","\u002Ftables-and-graphics\u002Fimporting-graphics","05.tables-and-graphics\u002F03.importing-graphics",{"title":128,"path":129,"stem":130},"Introducing Procedural Graphics","\u002Ftables-and-graphics\u002Fintroducing-procedural-graphics","05.tables-and-graphics\u002F04.introducing-procedural-graphics",{"title":132,"path":133,"stem":134},"PGF\u002FTikZ","\u002Ftables-and-graphics\u002Fpgf-tikz","05.tables-and-graphics\u002F05.pgf-tikz",{"title":136,"path":137,"stem":138},"PSTricks","\u002Ftables-and-graphics\u002Fpstricks","05.tables-and-graphics\u002F06.pstricks",{"title":140,"path":141,"stem":142},"MetaPost","\u002Ftables-and-graphics\u002Fmetapost","05.tables-and-graphics\u002F07.metapost",{"title":144,"path":145,"stem":146},"Picture","\u002Ftables-and-graphics\u002Fpicture","05.tables-and-graphics\u002F08.picture",{"title":148,"icon":149,"path":150,"stem":151,"children":152,"page":30},"Technical Writing","i-lucide-flask-conical","\u002Ftechnical-writing","06.technical-writing",[153,157,161,165,169,173,177,181,185,189,193],{"title":154,"path":155,"stem":156},"Mathematics","\u002Ftechnical-writing\u002Fmathematics","06.technical-writing\u002F01.mathematics",{"title":158,"path":159,"stem":160},"Advanced Mathematics","\u002Ftechnical-writing\u002Fadvanced-mathematics","06.technical-writing\u002F02.advanced-mathematics",{"title":162,"path":163,"stem":164},"Theorems","\u002Ftechnical-writing\u002Ftheorems","06.technical-writing\u002F03.theorems",{"title":166,"path":167,"stem":168},"Algorithms","\u002Ftechnical-writing\u002Falgorithms","06.technical-writing\u002F04.algorithms",{"title":170,"path":171,"stem":172},"Source Code Listings","\u002Ftechnical-writing\u002Fsource-code-listings","06.technical-writing\u002F05.source-code-listings",{"title":174,"path":175,"stem":176},"Chemical Graphics","\u002Ftechnical-writing\u002Fchemical-graphics","06.technical-writing\u002F06.chemical-graphics",{"title":178,"path":179,"stem":180},"Linguistics","\u002Ftechnical-writing\u002Flinguistics","06.technical-writing\u002F07.linguistics",{"title":182,"path":183,"stem":184},"Bibliography Management","\u002Ftechnical-writing\u002Fbibliography-management","06.technical-writing\u002F08.bibliography-management",{"title":186,"path":187,"stem":188},"More Bibliographies","\u002Ftechnical-writing\u002Fmore-bibliographies","06.technical-writing\u002F09.more-bibliographies",{"title":190,"path":191,"stem":192},"Indexing","\u002Ftechnical-writing\u002Findices","06.technical-writing\u002F10.indices",{"title":194,"path":195,"stem":196},"Glossary","\u002Ftechnical-writing\u002Fglossary","06.technical-writing\u002F11.glossary",{"title":198,"icon":199,"path":200,"stem":201,"children":202,"page":30},"Cross-References and Links","i-lucide-link","\u002Fcross-references","07.cross-references",[203,207,211],{"title":204,"path":205,"stem":206},"Labels and Cross Referencing","\u002Fcross-references\u002Flabels-and-cross-referencing","07.cross-references\u002F01.labels-and-cross-referencing",{"title":208,"path":209,"stem":210},"Hyperlinks","\u002Fcross-references\u002Fhyperlinks","07.cross-references\u002F02.hyperlinks",{"title":212,"path":213,"stem":214},"Initials","\u002Fcross-references\u002Finitials","07.cross-references\u002F03.initials",{"title":216,"icon":217,"path":218,"stem":219,"children":220,"page":30},"Specialized Documents","i-lucide-file-badge","\u002Fspecialized-documents","08.specialized-documents",[221,225,229,233,237,241,245,249],{"title":222,"path":223,"stem":224},"Scientific Reports","\u002Fspecialized-documents\u002Fscientific-reports","08.specialized-documents\u002F01.scientific-reports",{"title":226,"path":227,"stem":228},"Letters","\u002Fspecialized-documents\u002Fletters","08.specialized-documents\u002F02.letters",{"title":230,"path":231,"stem":232},"Presentations","\u002Fspecialized-documents\u002Fpresentations","08.specialized-documents\u002F03.presentations",{"title":234,"path":235,"stem":236},"Teacher's Corner","\u002Fspecialized-documents\u002Fteachers-corner","08.specialized-documents\u002F04.teachers-corner",{"title":238,"path":239,"stem":240},"Curriculum Vitae","\u002Fspecialized-documents\u002Fcurriculum-vitae","08.specialized-documents\u002F05.curriculum-vitae",{"title":242,"path":243,"stem":244},"Academic Journals","\u002Fspecialized-documents\u002Facademic-journals","08.specialized-documents\u002F06.academic-journals",{"title":246,"path":247,"stem":248},"Xy-pic","\u002Fspecialized-documents\u002Fxy-pic","08.specialized-documents\u002F07.xy-pic",{"title":250,"path":251,"stem":252},"Creating 3D Graphics","\u002Fspecialized-documents\u002Fcreating-3d-graphics","08.specialized-documents\u002F08.creating-3d-graphics",{"title":254,"icon":255,"path":256,"stem":257,"children":258,"page":30},"Programming LaTeX","i-lucide-code","\u002Fprogramming","09.programming",[259,263,267,271,275,279,283,287],{"title":260,"path":261,"stem":262},"Macros","\u002Fprogramming\u002Fmacros","09.programming\u002F01.macros",{"title":264,"path":265,"stem":266},"Plain TeX","\u002Fprogramming\u002Fplain-tex","09.programming\u002F02.plain-tex",{"title":268,"path":269,"stem":270},"Creating Packages","\u002Fprogramming\u002Fcreating-packages","09.programming\u002F03.creating-packages",{"title":272,"path":273,"stem":274},"Creating Package Documentation","\u002Fprogramming\u002Fcreating-package-documentation","09.programming\u002F04.creating-package-documentation",{"title":276,"path":277,"stem":278},"Themes","\u002Fprogramming\u002Fthemes","09.programming\u002F05.themes",{"title":280,"path":281,"stem":282},"Modular Documents","\u002Fprogramming\u002Fmodular-documents","09.programming\u002F06.modular-documents",{"title":284,"path":285,"stem":286},"Collaborative Writing of LaTeX Documents","\u002Fprogramming\u002Fcollaborative-writing","09.programming\u002F07.collaborative-writing",{"title":288,"path":289,"stem":290},"Export To Other Formats","\u002Fprogramming\u002Fexport-to-other-formats","09.programming\u002F08.export-to-other-formats",{"title":292,"icon":293,"path":294,"stem":295,"children":296,"page":30},"Reference and Help","i-lucide-book-open","\u002Freference","10.reference",[297,301,305,309,313,317,321,325],{"title":298,"path":299,"stem":300},"FAQ","\u002Freference\u002Ffaq","10.reference\u002F01.faq",{"title":302,"path":303,"stem":304},"Tips and Tricks","\u002Freference\u002Ftips-and-tricks","10.reference\u002F02.tips-and-tricks",{"title":306,"path":307,"stem":308},"Errors and Warnings","\u002Freference\u002Ferrors-and-warnings","10.reference\u002F03.errors-and-warnings",{"title":310,"path":311,"stem":312},"Lengths","\u002Freference\u002Flengths","10.reference\u002F04.lengths",{"title":314,"path":315,"stem":316},"Counters","\u002Freference\u002Fcounters","10.reference\u002F05.counters",{"title":318,"path":319,"stem":320},"Boxes","\u002Freference\u002Fboxes","10.reference\u002F06.boxes",{"title":322,"path":323,"stem":324},"Rules and Struts","\u002Freference\u002Frules-and-struts","10.reference\u002F07.rules-and-struts",{"title":326,"path":327,"stem":328},"Command Glossary","\u002Freference\u002Fcommand-glossary","10.reference\u002F08.command-glossary",{"title":330,"icon":331,"path":332,"stem":333,"children":334,"page":30},"Appendices","i-lucide-bookmark","\u002Fappendices","11.appendices",[335,339,343,347],{"title":336,"path":337,"stem":338},"Package Reference","\u002Fappendices\u002Fpackage-reference","11.appendices\u002F01.package-reference",{"title":340,"path":341,"stem":342},"Sample LaTeX Documents","\u002Fappendices\u002Fsample-latex-documents","11.appendices\u002F02.sample-latex-documents",{"title":344,"path":345,"stem":346},"Links","\u002Fappendices\u002Flinks","11.appendices\u002F03.links",{"title":348,"path":349,"stem":350},"Authors","\u002Fappendices\u002Fauthors","11.appendices\u002F04.authors",{"id":352,"title":284,"body":353,"description":1682,"extension":1683,"links":1684,"meta":1685,"navigation":775,"path":285,"seo":1686,"stem":286,"__hash__":1687},"docs\u002F09.programming\u002F07.collaborative-writing.md",{"type":354,"value":355,"toc":1659},"minimark",[356,360,384,389,535,539,562,565,601,607,610,616,623,637,652,656,661,664,668,677,680,1059,1062,1066,1085,1138,1142,1145,1149,1153,1156,1160,1163,1171,1175,1178,1181,1201,1204,1208,1215,1219,1222,1225,1228,1237,1240,1244,1252,1271,1274,1283,1288,1302,1318,1342,1346,1349,1352,1355,1358,1361,1365,1368,1372,1378,1386,1394,1398,1401,1422,1426,1439,1442,1454,1458,1466,1470,1473,1507,1509,1536,1540,1543,1572,1585,1589,1592,1611,1615,1618,1648,1652,1655],[357,358,359],"p",{},"Collaborative writing of documents requires a strong synchronisation among authors. This guide describes various possible ways to organise the collaborative preparation of LaTeX documents.",[361,362,363,367,370,381],"ol",{},[364,365,366],"li",{},"First several methods are presented which are not based on a version control system.",[364,368,369],{},"Then several latex style files are discussed which are suited for collaboration.",[364,371,372,373,377,378,380],{},"This is followed by a solution which is based on the version control system ",[374,375,376],"em",{},"Subversion",". The guide describes how ",[374,379,376],{}," can be used together with several other software tools and LaTeX packages to organise the collaborative preparation of LaTeX documents.",[364,382,383],{},"Another approach is to use mercurial and bitbucket.",[385,386,388],"h2",{"id":387},"other-methods-not-version-control-based","Other Methods (not version control based)",[390,391,392,399,415,430,439,502,511,532],"ul",{},[364,393,394,395,398],{},"You can use one of the online solutions listed in the ",[396,397,15],"a",{"href":16}," chapter. Most of them have collaboration features.",[364,400,401,402,408,409,414],{},"Another option for collaboration is ",[396,403,407],{"href":404,"rel":405},"http:\u002F\u002Fwww.getdropbox.com\u002F",[406],"nofollow","Dropbox",". It has 2 GB free storage and versioning system. Works like SVN, but more automated and therefore especially useful for beginning LaTeX users. However, Dropbox is not a true versioning control system, and as such it does not allow you to roll the article back to previous versions. Web-based editor ",[396,410,413],{"href":411,"rel":412},"https:\u002F\u002Flatexbase.com\u002F",[406],"LaTeX Base"," supports syncing to Dropbox.",[364,416,417,418,423,424,429],{},"You can use an online collaborative tool built on top of a versioning control system, such as ",[396,419,422],{"href":420,"rel":421},"https:\u002F\u002Fauthorea.com\u002F",[406],"Authorea"," or ",[396,425,428],{"href":426,"rel":427},"https:\u002F\u002Fwww.sharelatex.com\u002F",[406],"ShareLaTeX",". Authorea performs most of the actions described in this document, but in the background (it is built on Git). It allows authors to enter LaTeX or Markdown via a GUI with mathematical notation, figures, d3.js plots, IPython notebooks, data, and tables. All content is rendered to HTML5. Authorea also features a commenting system and article-based chat to ease collaboration and review.",[364,431,432,433,438],{},"As the LaTeX system uses plain text, you can use synchronous collaborative editors like ",[396,434,437],{"href":435,"rel":436},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGobby",[406],"Gobby",". In Gobby you can write your documents in collaboration with anyone in real-time. It is strongly recommended that you use utf8 encoding (especially if there are users on multiple operating systems collaborating) and a stable network (typically wired networks).",[364,440,441,442,447,448,498,501],{},"An instance of ",[396,443,446],{"href":444,"rel":445},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FEtherPad",[406],"EtherPad",". To compile use the command:",[449,450,455],"pre",{"className":451,"code":452,"language":453,"meta":454,"style":454},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","wget -O filename.tex \"https:\u002F\u002Fetherpad.wikimedia.org\u002Fep\u002Fpad\u002Fexport\u002Fxxxx\u002Flatest?format=txt\" && (latex filename.tex)\n","bash","",[456,457,458],"code",{"__ignoreMap":454},[459,460,463,467,471,474,478,481,484,487,490,493,495],"span",{"class":461,"line":462},"line",1,[459,464,466],{"class":465},"sBMFI","wget",[459,468,470],{"class":469},"sfazB"," -O",[459,472,473],{"class":469}," filename.tex",[459,475,477],{"class":476},"sMK4o"," \"",[459,479,480],{"class":469},"https:\u002F\u002Fetherpad.wikimedia.org\u002Fep\u002Fpad\u002Fexport\u002Fxxxx\u002Flatest?format=txt",[459,482,483],{"class":476},"\"",[459,485,486],{"class":476}," &&",[459,488,489],{"class":476}," (",[459,491,492],{"class":465},"latex",[459,494,473],{"class":469},[459,496,497],{"class":476},")\n",[499,500],"br",{},"where 'xxxx' should be replaced by the pad number (something like 'z7rSrfrYcH').",[364,503,504,505,510],{},"With a dedicated Linux box with LaTeX & Dropbox it's possible to use Google docs and ",[396,506,509],{"href":507,"rel":508},"https:\u002F\u002Fgist.github.com\u002F1995648",[406],"some scripting"," to get automatically generated PDFs on Dropbox from updates on Google Docs.",[364,512,513,514,519,520,525,526,531],{},"You can use a ",[396,515,518],{"href":516,"rel":517},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDistributed_revision_control",[406],"distributed version control system"," such as ",[396,521,524],{"href":522,"rel":523},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FFossil_(software)",[406],"Fossil",", ",[396,527,530],{"href":528,"rel":529},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMercurial",[406],"Mercurial"," or Git. This is the definitive solution for users looking for control and advanced features like a branch and merge. The learning curve will be steeper than that for a web-based solution.",[364,533,534],{},"Syncthing is another opensource alternative to synchronizing files across machines.",[385,536,538],{"id":537},"visualizing-diffs-in-latex-latexdiff-and-changebar","Visualizing diffs in LaTeX: latexdiff and changebar",[357,540,541,542,547,548,553,554,557,558,561],{},"The tools ",[396,543,546],{"href":544,"rel":545},"http:\u002F\u002Fwww.ctan.org\u002Ftex-archive\u002Fsupport\u002Flatexdiff\u002F",[406],"latexdiff"," and ",[396,549,552],{"href":550,"rel":551},"http:\u002F\u002Fwww.ctan.org\u002Ftex-archive\u002Fmacros\u002Flatex\u002Fcontrib\u002Fchangebar\u002F",[406],"changebar"," can visualize differences of two LaTeX files inside a generated document. This makes it easier to see the impact of certain changes or discuss changes with people not custom to LaTeX. Changebar comes with a script ",[456,555,556],{},"chbar.sh"," which inserts a bar in the margin indicating parts that have changed. Latexdiff allows different styles of visualization. The default is that discarded text is marked as red and added text is marked as blue. It also supports a mode similar to Changebar which adds a bar in the margin. Latexdiff comes with a script ",[456,559,560],{},"latexrevise"," which can be used to accept or decline changes. It also has a wrapper script to support version control systems such as the discussed Subversion.",[357,563,564],{},"An example on how to use Latexdiff in the Terminal:",[449,566,568],{"className":451,"code":567,"language":453,"meta":454,"style":454},"latexdiff old.tex new.tex > diff.tex    # Files old.tex and new.tex are compared and the file visualizing the changes is written to diff.tex\npdflatex diff.tex                        # Create a PDF showing the changes\n",[456,569,570,590],{"__ignoreMap":454},[459,571,572,574,577,580,583,586],{"class":461,"line":462},[459,573,546],{"class":465},[459,575,576],{"class":469}," old.tex",[459,578,579],{"class":469}," new.tex",[459,581,582],{"class":476}," >",[459,584,585],{"class":469}," diff.tex",[459,587,589],{"class":588},"sHwdD","    # Files old.tex and new.tex are compared and the file visualizing the changes is written to diff.tex\n",[459,591,593,596,598],{"class":461,"line":592},2,[459,594,595],{"class":465},"pdflatex",[459,597,585],{"class":469},[459,599,600],{"class":588},"                        # Create a PDF showing the changes\n",[357,602,603,604],{},"If you use mercurial the syntax is as follows ",[456,605,606],{},"latexdiff-vc --hg test.tex -r revnumber",[357,608,609],{},"where revnumber is the (local) revnumber of the relevant changeset.",[357,611,612],{},[613,614,615],"strong",{},"Important advice:",[357,617,618,619,622],{},"Sometimes latexdiff runs into problems (the resulting latex code cannot be compiled). This can happen if there are major changes concerning mathematical equations. To deal with this difficulty latexdiff offers the option ",[456,620,621],{},"--math-markup",":",[361,624,625,631],{},[364,626,627,630],{},[456,628,629],{},"--math-markup=3"," very sensitive to changes in mathematical equations.",[364,632,633,636],{},[456,634,635],{},"--math-markup=0"," changes in mathematical equations are ignored. See the documentation for details.",[357,638,639,640,645,646,651],{},"The program ",[396,641,644],{"href":642,"rel":643},"http:\u002F\u002Fwww.qtrac.eu\u002Fdiffpdf.html",[406],"DiffPDF"," can be used to compare two existing PDFs visually. There is also a command line tool ",[396,647,650],{"href":648,"rel":649},"http:\u002F\u002Fwww.qtrac.eu\u002Fcomparepdf.html",[406],"comparepdf"," based on DiffPDF.",[385,653,655],{"id":654},"useful-latex-styles","Useful LaTeX styles",[657,658,660],"h3",{"id":659},"subfiles","Subfiles",[357,662,663],{},"In general for collaboration a modular approach is recommended since it minimizes the danger of conflicting edits. See the Modular Documents section for details; subfiles are recommended but not the only solution.",[657,665,667],{"id":666},"todonotes","Todonotes",[357,669,670,671,676],{},"The todonotes.sty allows you to insert todo-items, either as margins or inline and adds a (hyperref supported) list of todos at the beginning document. What makes this package special (compared say to the fixme.sty) is the fact that the margin todo items point with a line to the text in question. This feature is familiar from Libreoffice, MS Office etc., see the manual for details at ",[396,672,675],{"href":673,"rel":674},"https:\u002F\u002Fctan.org\u002Fpkg\u002Ftodonotes?lang=en",[406],"ctan.org\u002Fpkg\u002Ftodonotes",".",[357,678,679],{},"Here is an example:",[449,681,684],{"className":682,"code":683,"language":492,"meta":454,"style":454},"language-latex shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\\documentclass{article}\n\\usepackage[colorinlistoftodos, textwidth=3cm, shadow]{todonotes}\n\\newcounter{ubcomment}\n\\newcommand{\\ubcomment}[2][]{%\n\\refstepcounter{ubcomment}%\n{%\n\\todo[linecolor=black,backgroundcolor={green!40!},size=\\footnotesize]{%\n\\textbf{Fixme: UB [\\uppercase{#1}\\theubcomment]:}~#2}%\n} }\n\\newcommand{\\ubcommentinline}[2][]{%\n\\refstepcounter{ubcomment}%\n{%\n\\todo[linecolor=black,inline,backgroundcolor={green!40!},size=\\footnotesize]{%\n\\textbf{Fixme: UB [\\uppercase{#1}\\theubcomment]:}~#2}%\n} }\n\n\\newcommand{\\ubcommentmultiline}[2]{%\n\\refstepcounter{ubcomment}%\n{%\n\\todo[linecolor=black,inline,caption={\\textbf{ {Fixme: UB}\n    [\\theubcomment] #1} } ,backgroundcolor={green!40!},size=\\footnotesize]{%\n\\textbf{Fixme: UB [\\theubcomment]:}~#2}%\n} }\n\n% add support for todo in equations\n\\usepackage{marginnote}\n\\makeatletter\n\\renewcommand{\\@todonotes@drawMarginNoteWithLine}{%\n\\begin{tikzpicture}[remember picture, overlay, baseline=-0.75ex]%\n    \\node [coordinate] (inText) {};%\n\\end{tikzpicture}%\n\\marginnote[{% Draw note in left margin\n    \\@todonotes@drawMarginNote%\n    \\@todonotes@drawLineToLeftMargin%\n}]{% Draw note in right margin\n    \\@todonotes@drawMarginNote%\n    \\@todonotes@drawLineToRightMargin%\n}%\n}\n\\makeatother\n\n\\begin{document}\n\n\\listoftodos\n\nThis is one example \\ubcomment{Comment 1}\n\nNow more text and an inline comment: \\ubcommentinline{This is an\n  inline comment}.\n\nNow even more text and a comment with an enumerate list.\n\\ubcommentmultiline{Third comment}{\nthis is not true because\n\\begin{enumerate}\n  \\item Reason 1\n  \\item Reason 2\n\\end{enumerate}\n}\n\nFinally a comment inside a math environment.\n\\begin{equation}\n\\label{eq:todo-example:1}\n\\int f dx =0 \\ubcomment{are you sure this integral is zero???}\n\\end{equation}\n\\end{document}\n",[456,685,686,691,696,702,708,714,720,726,732,738,744,749,754,760,765,770,777,783,788,793,799,805,811,816,821,827,833,839,845,851,857,863,869,875,881,887,892,898,904,910,916,921,927,932,938,943,949,954,960,966,971,977,983,989,995,1001,1007,1013,1018,1023,1029,1035,1041,1047,1053],{"__ignoreMap":454},[459,687,688],{"class":461,"line":462},[459,689,690],{},"\\documentclass{article}\n",[459,692,693],{"class":461,"line":592},[459,694,695],{},"\\usepackage[colorinlistoftodos, textwidth=3cm, shadow]{todonotes}\n",[459,697,699],{"class":461,"line":698},3,[459,700,701],{},"\\newcounter{ubcomment}\n",[459,703,705],{"class":461,"line":704},4,[459,706,707],{},"\\newcommand{\\ubcomment}[2][]{%\n",[459,709,711],{"class":461,"line":710},5,[459,712,713],{},"\\refstepcounter{ubcomment}%\n",[459,715,717],{"class":461,"line":716},6,[459,718,719],{},"{%\n",[459,721,723],{"class":461,"line":722},7,[459,724,725],{},"\\todo[linecolor=black,backgroundcolor={green!40!},size=\\footnotesize]{%\n",[459,727,729],{"class":461,"line":728},8,[459,730,731],{},"\\textbf{Fixme: UB [\\uppercase{#1}\\theubcomment]:}~#2}%\n",[459,733,735],{"class":461,"line":734},9,[459,736,737],{},"} }\n",[459,739,741],{"class":461,"line":740},10,[459,742,743],{},"\\newcommand{\\ubcommentinline}[2][]{%\n",[459,745,747],{"class":461,"line":746},11,[459,748,713],{},[459,750,752],{"class":461,"line":751},12,[459,753,719],{},[459,755,757],{"class":461,"line":756},13,[459,758,759],{},"\\todo[linecolor=black,inline,backgroundcolor={green!40!},size=\\footnotesize]{%\n",[459,761,763],{"class":461,"line":762},14,[459,764,731],{},[459,766,768],{"class":461,"line":767},15,[459,769,737],{},[459,771,773],{"class":461,"line":772},16,[459,774,776],{"emptyLinePlaceholder":775},true,"\n",[459,778,780],{"class":461,"line":779},17,[459,781,782],{},"\\newcommand{\\ubcommentmultiline}[2]{%\n",[459,784,786],{"class":461,"line":785},18,[459,787,713],{},[459,789,791],{"class":461,"line":790},19,[459,792,719],{},[459,794,796],{"class":461,"line":795},20,[459,797,798],{},"\\todo[linecolor=black,inline,caption={\\textbf{ {Fixme: UB}\n",[459,800,802],{"class":461,"line":801},21,[459,803,804],{},"    [\\theubcomment] #1} } ,backgroundcolor={green!40!},size=\\footnotesize]{%\n",[459,806,808],{"class":461,"line":807},22,[459,809,810],{},"\\textbf{Fixme: UB [\\theubcomment]:}~#2}%\n",[459,812,814],{"class":461,"line":813},23,[459,815,737],{},[459,817,819],{"class":461,"line":818},24,[459,820,776],{"emptyLinePlaceholder":775},[459,822,824],{"class":461,"line":823},25,[459,825,826],{},"% add support for todo in equations\n",[459,828,830],{"class":461,"line":829},26,[459,831,832],{},"\\usepackage{marginnote}\n",[459,834,836],{"class":461,"line":835},27,[459,837,838],{},"\\makeatletter\n",[459,840,842],{"class":461,"line":841},28,[459,843,844],{},"\\renewcommand{\\@todonotes@drawMarginNoteWithLine}{%\n",[459,846,848],{"class":461,"line":847},29,[459,849,850],{},"\\begin{tikzpicture}[remember picture, overlay, baseline=-0.75ex]%\n",[459,852,854],{"class":461,"line":853},30,[459,855,856],{},"    \\node [coordinate] (inText) {};%\n",[459,858,860],{"class":461,"line":859},31,[459,861,862],{},"\\end{tikzpicture}%\n",[459,864,866],{"class":461,"line":865},32,[459,867,868],{},"\\marginnote[{% Draw note in left margin\n",[459,870,872],{"class":461,"line":871},33,[459,873,874],{},"    \\@todonotes@drawMarginNote%\n",[459,876,878],{"class":461,"line":877},34,[459,879,880],{},"    \\@todonotes@drawLineToLeftMargin%\n",[459,882,884],{"class":461,"line":883},35,[459,885,886],{},"}]{% Draw note in right margin\n",[459,888,890],{"class":461,"line":889},36,[459,891,874],{},[459,893,895],{"class":461,"line":894},37,[459,896,897],{},"    \\@todonotes@drawLineToRightMargin%\n",[459,899,901],{"class":461,"line":900},38,[459,902,903],{},"}%\n",[459,905,907],{"class":461,"line":906},39,[459,908,909],{},"}\n",[459,911,913],{"class":461,"line":912},40,[459,914,915],{},"\\makeatother\n",[459,917,919],{"class":461,"line":918},41,[459,920,776],{"emptyLinePlaceholder":775},[459,922,924],{"class":461,"line":923},42,[459,925,926],{},"\\begin{document}\n",[459,928,930],{"class":461,"line":929},43,[459,931,776],{"emptyLinePlaceholder":775},[459,933,935],{"class":461,"line":934},44,[459,936,937],{},"\\listoftodos\n",[459,939,941],{"class":461,"line":940},45,[459,942,776],{"emptyLinePlaceholder":775},[459,944,946],{"class":461,"line":945},46,[459,947,948],{},"This is one example \\ubcomment{Comment 1}\n",[459,950,952],{"class":461,"line":951},47,[459,953,776],{"emptyLinePlaceholder":775},[459,955,957],{"class":461,"line":956},48,[459,958,959],{},"Now more text and an inline comment: \\ubcommentinline{This is an\n",[459,961,963],{"class":461,"line":962},49,[459,964,965],{},"  inline comment}.\n",[459,967,969],{"class":461,"line":968},50,[459,970,776],{"emptyLinePlaceholder":775},[459,972,974],{"class":461,"line":973},51,[459,975,976],{},"Now even more text and a comment with an enumerate list.\n",[459,978,980],{"class":461,"line":979},52,[459,981,982],{},"\\ubcommentmultiline{Third comment}{\n",[459,984,986],{"class":461,"line":985},53,[459,987,988],{},"this is not true because\n",[459,990,992],{"class":461,"line":991},54,[459,993,994],{},"\\begin{enumerate}\n",[459,996,998],{"class":461,"line":997},55,[459,999,1000],{},"  \\item Reason 1\n",[459,1002,1004],{"class":461,"line":1003},56,[459,1005,1006],{},"  \\item Reason 2\n",[459,1008,1010],{"class":461,"line":1009},57,[459,1011,1012],{},"\\end{enumerate}\n",[459,1014,1016],{"class":461,"line":1015},58,[459,1017,909],{},[459,1019,1021],{"class":461,"line":1020},59,[459,1022,776],{"emptyLinePlaceholder":775},[459,1024,1026],{"class":461,"line":1025},60,[459,1027,1028],{},"Finally a comment inside a math environment.\n",[459,1030,1032],{"class":461,"line":1031},61,[459,1033,1034],{},"\\begin{equation}\n",[459,1036,1038],{"class":461,"line":1037},62,[459,1039,1040],{},"\\label{eq:todo-example:1}\n",[459,1042,1044],{"class":461,"line":1043},63,[459,1045,1046],{},"\\int f dx =0 \\ubcomment{are you sure this integral is zero???}\n",[459,1048,1050],{"class":461,"line":1049},64,[459,1051,1052],{},"\\end{equation}\n",[459,1054,1056],{"class":461,"line":1055},65,[459,1057,1058],{},"\\end{document}\n",[357,1060,1061],{},"Please note: you need to use pdflatex (xelatex also works) and run it various, that is three or four times.",[657,1063,1065],{"id":1064},"rcsinfo-and-rcs-multi","rcsinfo (and rcs-multi)",[357,1067,1068,1069,1074,1075,1080,1081,1084],{},"This package at ",[396,1070,1073],{"href":1071,"rel":1072},"https:\u002F\u002Fctan.org\u002Fpkg\u002Frcsinfo?lang=en",[406],"ctan.org\u002Fpkg\u002Frcsinfo"," (and rcs-multi at ",[396,1076,1079],{"href":1077,"rel":1078},"https:\u002F\u002Fctan.org\u002Fpkg\u002Frcs-multi",[406],"ctan.org\u002Fpkg\u002Frcs-multi",") in a similar way will insert automatically the current version, data, and owner of a file which is under version control of a system which is compatible with the syntax of ",[613,1082,1083],{},"RCS",", like CVS, subversion and mercurial. Here is an example:",[449,1086,1088],{"className":682,"code":1087,"language":492,"meta":454,"style":454},"\\documentclass[12pt]{article}\n\\usepackage[scrpage2]{rcsinfo}\n\\makeatletter \\def\\@rcsInfoFancyInfo{ {\\footnotesize%\n      \\emph{ \\fcolorbox{black}{green}{Rev: \\rcsInfoRevision,}\n        \\fcolorbox{black}{yellow}{\\rcsInfoOwner,} \\rcsInfoLongDate,\n        \\rcsInfoTime} }} \\makeatother\n\\rcsInfo $Id: main.tex,v [Hg:291] 2018\u002F08\u002F08 16:36:51 oub Exp oub $\n\\begin{document}\nThis is a test.\n\\end{document}\n",[456,1089,1090,1095,1100,1105,1110,1115,1120,1125,1129,1134],{"__ignoreMap":454},[459,1091,1092],{"class":461,"line":462},[459,1093,1094],{},"\\documentclass[12pt]{article}\n",[459,1096,1097],{"class":461,"line":592},[459,1098,1099],{},"\\usepackage[scrpage2]{rcsinfo}\n",[459,1101,1102],{"class":461,"line":698},[459,1103,1104],{},"\\makeatletter \\def\\@rcsInfoFancyInfo{ {\\footnotesize%\n",[459,1106,1107],{"class":461,"line":704},[459,1108,1109],{},"      \\emph{ \\fcolorbox{black}{green}{Rev: \\rcsInfoRevision,}\n",[459,1111,1112],{"class":461,"line":710},[459,1113,1114],{},"        \\fcolorbox{black}{yellow}{\\rcsInfoOwner,} \\rcsInfoLongDate,\n",[459,1116,1117],{"class":461,"line":716},[459,1118,1119],{},"        \\rcsInfoTime} }} \\makeatother\n",[459,1121,1122],{"class":461,"line":722},[459,1123,1124],{},"\\rcsInfo $Id: main.tex,v [Hg:291] 2018\u002F08\u002F08 16:36:51 oub Exp oub $\n",[459,1126,1127],{"class":461,"line":728},[459,1128,926],{},[459,1130,1131],{"class":461,"line":734},[459,1132,1133],{},"This is a test.\n",[459,1135,1136],{"class":461,"line":740},[459,1137,1058],{},[385,1139,1141],{"id":1140},"version-control-systems","Version control systems",[357,1143,1144],{},"Independent of collaboration, version control systems are useful even for single author documents, since they allow to keep track of changes and restore older versions if necessary. The oldest still in use version control system is RCS, but it is single file orientated and is not based on a server model. CVS is based on RCS, but serves for various files and also includes a server model. This was superseded, to a certain extent by subversion (see below). A different approach was used by the so called decentralized version control systems, the most popular are git and mercurial (see below).",[385,1146,1148],{"id":1147},"requirements-for-collaboration-using-a-version-control-system","Requirements for collaboration using a version control system",[657,1150,1152],{"id":1151},"multi-user","Multi user",[357,1154,1155],{},"The system should allow various users to have read\u002Fwrite access to the system, on a sort of \"server\".",[657,1157,1159],{"id":1158},"versions-should-be-saved","Versions should be saved",[357,1161,1162],{},"The point is not to overwrite a file, or the files by a newer version, instead the system should save in some form, different versions. The reasons are:",[361,1164,1165,1168],{},[364,1166,1167],{},"One can compare changes by running an appropriate diff program, for example latexdiff, on different versions of the file.",[364,1169,1170],{},"It allows to restore older version if that is necessary.",[657,1172,1174],{"id":1173},"non-sequential-contributions-should-be-managed","Non-sequential contributions should be managed",[357,1176,1177],{},"Sequential collaboration is one in which one user works, while the other don't do anything, obtains the changes and then the next user starts.",[357,1179,1180],{},"Let us consider a collaboration that is not sequential. (To make the point the example is done of one file, in principle the same problem occurs for different files in a directory, but it is less intuitive.)",[361,1182,1183,1189,1195],{},[364,1184,1185,1186],{},"User1 wants to make changes in section 1 in file1, and needs 2 weeks for this modification. The result is ",[456,1187,1188],{},"file1-modified-by-user1",[364,1190,1191,1192],{},"Meanwhile User2 modifies section 2 in file1, which results in ",[456,1193,1194],{},"file1-modified-by-user2",[364,1196,1197,1198],{},"And User3 modifies section 3 in file1, which results in ",[456,1199,1200],{},"file1-modified-by-user3",[357,1202,1203],{},"A version system must be able to \"merge\" these three changes without problems.",[657,1205,1207],{"id":1206},"conflicting-editing-should-be-detected","Conflicting editing should be detected",[357,1209,1210,1211,1214],{},"Conflicting editing is by definition editing that occurs in the ",[613,1212,1213],{},"same"," line of a file. The system should detect that, advise and provide means to solve it.",[385,1216,1218],{"id":1217},"interchanging-documents-using-a-version-control-system","Interchanging Documents using a version control system",[357,1220,1221],{},"The collaborative preparation of documents requires a considerable amount of coordination among the authors. This coordination can be organised in many different ways, where the best way depends on the specific circumstances.",[357,1223,1224],{},"There are many ways to interchange documents among authors. One possibility is to compose documents by interchanging e-mail messages. This method has the advantage that common users generally do not have to install and learn the usage of any extra software, because virtually all authors have an e-mail account. Furthermore, the author who has modified the document can easily attach the document and explain the changes by e-mail as well. Unfortunately, there is a problem when two or more authors are working at the same time on the same document. Besides this difficulty, the email based method can become easily cumbersome if several files are involved.",[357,1226,1227],{},"A second possibility is to provide the document on a common file server, which is available in most departments. The risk of overwriting each other's modifications can be eliminated by locking files that are currently edited. However, generally the file server can be only accessed from within a department.",[357,1229,1230,1231,1236],{},"A third possibility is to use a version control system. A comprehensive list of version control systems can be found at ",[396,1232,1235],{"href":1233,"rel":1234},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FList_of_revision_control_software",[406],"Wikipedia",". Version control systems keep track of all changes in files in a project. If many authors modify a document at the same time, the version control system tries to merge all modifications automatically. However, if multiple authors have modified the same line, the modifications cannot be merged automatically, and the user has to resolve the conflict by deciding manually which of the changes should be kept.",[357,1238,1239],{},"Moreover, a version control system is useful even if a single user is working on a project. First, the user can track (and possibly revoke) all previous modifications. Second, this is a convenient way to have a backup of the files on other computers. Third, this allows the user to easily switch between different computers (e.g. office, laptop, home).",[657,1241,1243],{"id":1242},"the-version-control-system-subversion","The Version Control System Subversion",[357,1245,1246,1251],{},[396,1247,1250],{"href":1248,"rel":1249},"https:\u002F\u002Fsubversion.apache.org\u002F",[406],"Subversion (SVN)"," comes as a successor to the popular version control system CVS. SVN operates on a client-server model in which a central server hosts a project repository that users copy and modify locally.",[357,1253,1254,1255,1258,1259,1262,1263,1266,1267,1270],{},"Each user has a local ",[374,1256,1257],{},"working copy"," of a remote ",[374,1260,1261],{},"repository",". For instance, users can ",[374,1264,1265],{},"update"," changes from the repository to their working copy, ",[374,1268,1269],{},"commit"," changes from their own working copy to the repository, or (re)view the differences between working copy and repository.",[357,1272,1273],{},"To set up a SVN version control system, the SVN server software has to be installed on a (single) computer with permanent Internet access. It can run on many Unix, modern MS Windows, and Mac OS X platforms.",[357,1275,1276,1277,1282],{},"Users do not have to install the SVN server software, but a SVN \"client\" software. Besides the basic SVN command-line client, there are several Graphical User Interface Tools (GUIs) and plug-ins for accessing the SVN server. Additionally, there are very good manuals about SVN freely available on the Internet (e.g. ",[396,1278,1281],{"href":1279,"rel":1280},"http:\u002F\u002Fsvnbook.red-bean.com",[406],"svnbook.red-bean.com",").",[1284,1285,1287],"h4",{"id":1286},"hosting-latex-files-in-subversion","Hosting LaTeX files in Subversion",[357,1289,1290,1291,1293,1294,1297,1298,1301],{},"On a ",[374,1292,376],{}," server, you can have one repository for a common ",[456,1295,1296],{},"texmf"," tree. Its structure complies with the ",[613,1299,1300],{},"TeX Directory Structure"," guidelines (TDS). This repository provides LaTeX classes, LaTeX styles, and BibTeX styles that are not available in the LaTeX distributions of the users.",[357,1303,1304,1305,1307,1308,525,1311,1314,1315,676],{},"The ",[374,1306,376],{}," server hosts a separate repository for each project. Although branching, merging, and tagging is less important for writing text documents than for writing source code for software, repository layouts follow the recommendations of the 'Subversion book'. In this sense, each repository has the three directories ",[456,1309,1310],{},"\u002Ftrunk",[456,1312,1313],{},"\u002Fbranches",", and ",[456,1316,1317],{},"\u002Ftags",[357,1319,1320,1321,1324,1325,525,1328,525,1331,1314,1334,1337,1338,1341],{},"Often the question arises, which files should be put under version control. Generally, all files that are directly modified by the user and that are necessary for compiling the document should be included. Typically, these are the LaTeX source code (",[456,1322,1323],{},"*.tex",") files and all pictures that are inserted in the document (",[456,1326,1327],{},"*.eps",[456,1329,1330],{},"*.jpg",[456,1332,1333],{},"*.png",[456,1335,1336],{},"*.pdf"," files). On the other hand, all files that are automatically created or modified during the compilation process generally should ",[613,1339,1340],{},"not"," be under version control.",[1284,1343,1345],{"id":1344},"the-features-of-subversion-and-its-workflow","The features of Subversion and its workflow",[357,1347,1348],{},"A great feature of a version control system is that all authors can easily trace the workflow of a project by viewing the differences between arbitrary versions of the files.",[357,1350,1351],{},"In this sense, it is very important not to change the positions of line breaks without cause. Hence, automatic line wrapping of the users' LaTeX editors should be turned off and line breaks should be added manually.",[357,1353,1354],{},"A reasonable convention is to add a line break after each sentence and start each new sentence in a new line. Furthermore, split long sentences into several lines so that each line has at most about 80 characters.",[357,1356,1357],{},"If the authors work on different operating systems, their LaTeX editors will probably save the files with different newline (end-of-line) characters. To avoid this type of 'ineffective' modifications, all users can agree on a specific newline character or add the subversion property 'svn:eol-style' and set it to 'native'.",[357,1359,1360],{},"Furthermore, version control systems allow a very effective quality assurance measure: all authors should critically review their own modifications before they commit them to the repository.",[657,1362,1364],{"id":1363},"distributed-revision-control-mercurial-and-git","Distributed revision-control mercurial (and git)",[357,1366,1367],{},"The distributed revision-control system Mercurial has the advantage over SVN in that it is easier to set up, does not require a dedicated server, and allows easy branching. Git is very similar in functionality to Mercurial. Here we describe the Mercurial workflow, but everything described below can be applied to Git as well, though some of the commands differ.",[1284,1369,1371],{"id":1370},"setting-up-mercurial-git","Setting up mercurial (git)",[357,1373,1374,1375],{},"On Debian\u002FUbuntu: ",[456,1376,1377],{},"sudo apt-get install mercurial",[357,1379,1380,1381,676],{},"For other platforms, see ",[396,1382,1385],{"href":1383,"rel":1384},"https:\u002F\u002Fwww.mercurial-scm.org\u002Fdownloads",[406],"Mercurial's download page",[357,1387,1388,1389,676],{},"For Git, see ",[396,1390,1393],{"href":1391,"rel":1392},"https:\u002F\u002Fgit-scm.com\u002Fdownloads",[406],"Git's download page",[1284,1395,1397],{"id":1396},"setting-up-a-template-latex-directory","Setting up a template LaTeX directory",[357,1399,1400],{},"First, create a directory for the project:",[449,1402,1404],{"className":451,"code":1403,"language":453,"meta":454,"style":454},"mkdir myproject\ncd myproject\n",[456,1405,1406,1414],{"__ignoreMap":454},[459,1407,1408,1411],{"class":461,"line":462},[459,1409,1410],{"class":465},"mkdir",[459,1412,1413],{"class":469}," myproject\n",[459,1415,1416,1420],{"class":461,"line":592},[459,1417,1419],{"class":1418},"s2Zo4","cd",[459,1421,1413],{"class":469},[1284,1423,1425],{"id":1424},"creating-a-local-mercurial-repository","Creating a local mercurial repository",[449,1427,1429],{"className":451,"code":1428,"language":453,"meta":454,"style":454},"hg init\n",[456,1430,1431],{"__ignoreMap":454},[459,1432,1433,1436],{"class":461,"line":462},[459,1434,1435],{"class":465},"hg",[459,1437,1438],{"class":469}," init\n",[357,1440,1441],{},"For Git:",[449,1443,1445],{"className":451,"code":1444,"language":453,"meta":454,"style":454},"git init\n",[456,1446,1447],{"__ignoreMap":454},[459,1448,1449,1452],{"class":461,"line":462},[459,1450,1451],{"class":465},"git",[459,1453,1438],{"class":469},[1284,1455,1457],{"id":1456},"bitbucket-and-helix","Bitbucket and Helix",[357,1459,1460,1465],{},[396,1461,1464],{"href":1462,"rel":1463},"https:\u002F\u002Fbitbucket.org\u002F",[406],"Bitbucket"," provides free hosting for Mercurial and Git repositories. It supports both public and private repositories.",[1284,1467,1469],{"id":1468},"get-your-local-mercurial-repository-on-bitbucket","Get your local Mercurial repository on Bitbucket",[357,1471,1472],{},"First create a repository on Bitbucket, then:",[449,1474,1476],{"className":451,"code":1475,"language":453,"meta":454,"style":454},"hg remote add origin https:\u002F\u002Fyourusername@bitbucket.org\u002Fyourusername\u002Fmyproject\nhg push -u origin\n",[456,1477,1478,1494],{"__ignoreMap":454},[459,1479,1480,1482,1485,1488,1491],{"class":461,"line":462},[459,1481,1435],{"class":465},[459,1483,1484],{"class":469}," remote",[459,1486,1487],{"class":469}," add",[459,1489,1490],{"class":469}," origin",[459,1492,1493],{"class":469}," https:\u002F\u002Fyourusername@bitbucket.org\u002Fyourusername\u002Fmyproject\n",[459,1495,1496,1498,1501,1504],{"class":461,"line":592},[459,1497,1435],{"class":465},[459,1499,1500],{"class":469}," push",[459,1502,1503],{"class":469}," -u",[459,1505,1506],{"class":469}," origin\n",[357,1508,1441],{},[449,1510,1512],{"className":451,"code":1511,"language":453,"meta":454,"style":454},"git remote add origin https:\u002F\u002Fyourusername@bitbucket.org\u002Fyourusername\u002Fmyproject\ngit push -u origin\n",[456,1513,1514,1526],{"__ignoreMap":454},[459,1515,1516,1518,1520,1522,1524],{"class":461,"line":462},[459,1517,1451],{"class":465},[459,1519,1484],{"class":469},[459,1521,1487],{"class":469},[459,1523,1490],{"class":469},[459,1525,1493],{"class":469},[459,1527,1528,1530,1532,1534],{"class":461,"line":592},[459,1529,1451],{"class":465},[459,1531,1500],{"class":469},[459,1533,1503],{"class":469},[459,1535,1506],{"class":469},[1284,1537,1539],{"id":1538},"workflow","Workflow",[357,1541,1542],{},"The basic workflow is:",[361,1544,1545,1548,1554,1560,1566],{},[364,1546,1547],{},"Make changes to your local files",[364,1549,1550,1551],{},"Commit changes locally: ",[456,1552,1553],{},"hg commit -m \"description of changes\"",[364,1555,1556,1557],{},"Pull remote changes: ",[456,1558,1559],{},"hg pull",[364,1561,1562,1563],{},"Merge if necessary: ",[456,1564,1565],{},"hg merge",[364,1567,1568,1569],{},"Push your changes: ",[456,1570,1571],{},"hg push",[357,1573,1574,1575,1577,1578,1580,1581,1584],{},"For Git, replace ",[456,1576,1435],{}," with ",[456,1579,1451],{}," and use ",[456,1582,1583],{},"git add"," before committing.",[385,1586,1588],{"id":1587},"real-time-collaborative-writing","Real-Time Collaborative Writing",[357,1590,1591],{},"Real-time collaborative writing tools allow multiple authors to work on the same document simultaneously. Some options include:",[390,1593,1594,1600,1605],{},[364,1595,1596,1599],{},[613,1597,1598],{},"Overleaf",": A popular online LaTeX editor with real-time collaboration features.",[364,1601,1602,1604],{},[613,1603,428],{}," (now part of Overleaf): Another real-time collaborative LaTeX editor.",[364,1606,1607,1610],{},[613,1608,1609],{},"Git with continuous compilation",": Using Git with a CI\u002FCD pipeline that automatically compiles the document on each push.",[385,1612,1614],{"id":1613},"managing-collaborative-bibliographies","Managing collaborative bibliographies",[357,1616,1617],{},"When working collaboratively, managing bibliographies can be challenging. Some recommendations:",[361,1619,1620,1623,1634],{},[364,1621,1622],{},"Use a shared BibTeX file stored in the version control system.",[364,1624,1625,1626,1629,1630,1633],{},"Use the ",[456,1627,1628],{},"biblatex"," package with ",[456,1631,1632],{},"biber"," backend for more flexible bibliography management.",[364,1635,1636,1637,423,1642,1647],{},"Consider using a collaborative bibliography management tool like ",[396,1638,1641],{"href":1639,"rel":1640},"https:\u002F\u002Fwww.zotero.org\u002F",[406],"Zotero",[396,1643,1646],{"href":1644,"rel":1645},"https:\u002F\u002Fwww.mendeley.com\u002F",[406],"Mendeley"," and exporting to BibTeX format.",[385,1649,1651],{"id":1650},"conclusion","Conclusion",[357,1653,1654],{},"Collaborative writing of LaTeX documents requires careful planning and the right tools. The choice of method depends on the specific needs of the project, the technical expertise of the authors, and the level of collaboration required.",[1656,1657,1658],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}",{"title":454,"searchDepth":592,"depth":592,"links":1660},[1661,1662,1663,1668,1669,1675,1679,1680,1681],{"id":387,"depth":592,"text":388},{"id":537,"depth":592,"text":538},{"id":654,"depth":592,"text":655,"children":1664},[1665,1666,1667],{"id":659,"depth":698,"text":660},{"id":666,"depth":698,"text":667},{"id":1064,"depth":698,"text":1065},{"id":1140,"depth":592,"text":1141},{"id":1147,"depth":592,"text":1148,"children":1670},[1671,1672,1673,1674],{"id":1151,"depth":698,"text":1152},{"id":1158,"depth":698,"text":1159},{"id":1173,"depth":698,"text":1174},{"id":1206,"depth":698,"text":1207},{"id":1217,"depth":592,"text":1218,"children":1676},[1677,1678],{"id":1242,"depth":698,"text":1243},{"id":1363,"depth":698,"text":1364},{"id":1587,"depth":592,"text":1588},{"id":1613,"depth":592,"text":1614},{"id":1650,"depth":592,"text":1651},"Methods and tools for organizing collaborative preparation of LaTeX documents, including version control systems and online solutions.","md",null,{},{"title":284,"description":1682},"UGV2IoiwCzT1PvsMKl-CpyPjaC9omS1I8e8Q08Sbn5w",[1689,1691],{"title":280,"path":281,"stem":282,"description":1690,"children":-1},"How to organize LaTeX projects by splitting work into multiple files using modular document structures.",{"title":288,"path":289,"stem":290,"description":1692,"children":-1},"How to convert LaTeX documents to PDF, PostScript, RTF, HTML, image formats, and plain text.",1785155514098]