Cross-platform editing for LaTeX documents? - latex

What solutions are there for working on a LaTeX document on both Windows and Linux?
It's a large document, and I will be working daily on both platforms so compatibility is essential if it's two different pieces of software.
Bonus points for a solution that includes easy previewing.

Writing text is not very different from writing software. Similar management techniques apply when scaling up.
Modularity: Split the document to smaller pieces e.g. a separate .tex file for each chapter. I also like to keep the preamble and other LaTeX set-up separate from the body text. My chapter files themselves just have the body text with some markup but do not define any new commands.
Source control: Keep all the source files in a version control tool such as subversion. Transfer files between systems using the tool.
Builds: Have a Makefile or similar to control the build process: it should be consistent and repeatable. Build regularly and fix build problems as soon as possible. If you want easy previews, you can set up a Makefile rule to launch e.g. a PDF viewer after the target PDF has been compiled.
Editing: Use whatever you're compatible with. It does not matter that much, though some good advice has been given by other answerers.
Communication: If there's more than one person working on the same stuff, no tool is a substitute for interpersonal communication.

TeXworks is a new cross-platform TeX editor with a built-in PDF preview that has source-output synchronisation. Click in the source to go to the matching part in the output, and vice versa. It's not the most feature-rich editor, by design, but the simplicity/power trade-off is just right, in my opinion.

I've used Emacs and its AucTeX mode, which is great for editing, as it has a set of very consistent shortcuts to insert many common commands and environments. There are also preview modes that display maths graphically in the Emacs window but I haven't used them.
As with VIM, there's a learning curve of course.
Unlike Legoolas, I'd advise for direct-to-PDF compilation using pdfTeX, but maybe Windows/Linux doesn't have a PDF viewer that automatically reloads the file? I'd be surprised if so (I use Skim on Mac). Check if your viewer supports synctex, as it's quite handy to navigate from PDF to source and back, without the cons of pdfsync.
To compile, my tool of choice is latexmk which is included in TeXlive. It completely automates the build, and can watch the .tex source to rebuild automatically.

Try LyX – The Document Processor, a "What You See Is What You Mean" editor for LaTeX.

Eclipse with its TeXlipse plugin should solve the IDE problem. More important are, however, issues like using only fonts that are available or installable on both platforms.
For previewing I am using Emacs with its Preview Latex feature in the AucTeX package.

For windows, you can use the TeXnicCenter, that is one of the best IDE for windows.
For Linux, you can use simply use Kile (it is possible to use kile with KDE on CygWin, but it is not the perfect solution).
There is no problem to switch from one IDE to another one (since you just save the .tex file and nothing else)
It also exists some cross-platform IDE, but I do not know them:
TeXmaker
TeXmakerX: a fork from TeXmaker

Since you'll probably not want to change text editor from whatever you usually use just for editing LaTeX docs (unless you use an editor which can't do syntax highlighting for LaTeX as well as whatever else you code/write in it), I'd recommend the simple following set of tools:
Whatever text editor you are used to, as long as it can highlight LaTeX markup. If it can't, then find a better editor for using with everything you do!.
Install MikTeX or TeXLive and just use the DVI viewer which comes with them by double-clicking on your DVI file. This will automatically update whenever the dvi file is changed by your editing of the latex file and re-creating the output.
I use Emacs as my text editor of choice, on both Linux and Windows. Setting up some scripts or makefiles to build the latex document when I hit a key is pretty easy, and fits in with everything else I use Emacs for nicely.
Other cross-platform options (many of which have already been mentioned by others in this thread):
LyX
TeXlispse for Eclipse

I've used VIM, combined with the VIM-LaTeX plugin, with great success. It does have a bit of a learning curve though.

Gummi is the best LaTeX editor. It is a free, open source, program written in python, featuring a live preview pane.
http://gummi.midnightcoding.org/
e4 http://gummi.midnightcoding.org/wp-content/uploads/20091012-1large(1).png

Get your work in some kind of version control system, then when you move from computer to computer you just update from a central server and its just like you left it.
It doesn't matter about the IDE, as you are saving just the .tex file, as noted above. If you want to use the same editor though, for the sake of coherency, use texmaker.

I use version control, and just use MikTex/WinEDT on Windows and TexShop on the mac.
IF your document doesn't compile on both, you're probably forgetting to keep the two directories synchronized or use funky commands, I like the sanity checks of knowing that it "compiles" cleanly on two platforms.

I use some text editor, and then I have a cron job that does a compile hourly from my source control.

Tex files are just text. I would recommend using a version control system (you should be using that anyway) to keep the source in sync. You can then use any (or different) editors on each system, e.g. Kile for linux and winEdt for windows. Both com with nice viewrs.
For a simple solution for the source control that just works with minimum knowledge and hassle, consider dropbox.

Revisiting my own question after quite a few years, I thought I'd add
https://www.writelatex.com/
not strictly what I had in mind, but have used it for collaborative writing

An excellent multiplatform LaTeX IDE is Texmaker.
For Debian or Ubuntu, I made a tutorial easy to follow: Install LaTeX on Ubuntu or Debian. This tutorial explains how to install LaTeX on Debian or Ubuntu and how to create your first PDF.

Related

Is there a tool for previewing both LaTeX and MetaPost files?

I'm trying to find a tool for Windows that I can use to preview .tex and .mp files as they are saved. Does such a tool exist? I have TeXworks installed which has a handy build button (this displays the result in another window), but I'd rather use Emacs. Also, TeXworks does not compile .mp files.
Perhaps there's a more elegant way to preview files, other than the approach I'm thinking of.
Solution is to use pdflatex and Sumatra PDF, since this viewer auto-reloads the file.

Texlipse: How do you configure it to show a real time preview?

I'm running on an Ubuntu and I hope it doesn't matter. Either than the preview it's a great latex editor
Considering the Texlipse man page mentions building and previewing, I do not think it can make a real-time preview, especially when the previewing relies on external tool.
But you could associate that Texlipse editor with other tools able to read the same LaTeX definition file and make a real time preview, like in this question:
Real-Time LaTeX
I think you're looking for the "Previewing" section on this manual page. When I glanced over it though, it didn't look like there is necessarily a way to do a live preview. It is an open source project, so if you really need to scratch that itch there's a way. :)

How do you deal with situations where you can't use your preferred text editor?

I was originally going to frame this question around TextMate, which is by all accounts an amazing editor, but only available on OSX. I was curious how those who have spent time learning to use TextMate efficiently deal with the situation where they have to edit on a non-OSX platform. But it's really a more general question. How do people deal with situations where you can't use your preferred text editor?
I use gvim and vim primarily, and I know that these editors have a rather esoteric set of keybindings, so when I'm editing in another editor I'll often mistakenly type things I didn't want to type while trying to navigate. This can be very inefficient.
So how do people deal with these kinds of situations? Just swallow the inefficiency? Try to avoid the situation or go to great lengths to get the file that needs editing into your preferred editor? Do you have one or two editors you're proficient with that you can switch between without problems? Do you change the keybindings of other editors to more closely match your preferred editor?
I work as a support technician, which means I'm frequently working on customer systems remotely. The unfortunate side effect is that I rarely have any choice over what editor I get to use in those situations. Generally speaking there's not a whole lot you can do about it unless the situation is one where it's feasible for you to install a new editor or bring a USB thumb drive or something similar with your editor pre-installed on it. In such a situation, by all means, if you plan to be working for an extended time period, take advantage of the opportunity. You'll work faster and more efficiently and it will be less frustrating.
In an environment (e.g. webex/RDC) where you cannot install software or use temporary media, you have two choices: live with whatever editor they have, or copy files back and forth from your system. Typically if I'm doing very minor editing I just suck it up and use whatever editor is available. If I know I'm going to be doing an extensive amount of editing, I find a way to transfer the file I'm working on back and forth. This still stinks, forcing you to interrupt your editing flow with file transfers, but I find my sanity makes it worth not struggling with something like notepad to do real editing or programming.
The advantage of using either vim or emacs as an editor is precisely that it's available on virtually any decently configured Unix platform (and this includes more esoteric systems as well, e.g. Darwin/OS X). Combined with the fact that you can store your configuration online (e.g. Dotfiles) this makes for a very strong argument, because the problem you described simply doesn't exist.
Since I work primarily in a windows environment, I keep Notepad++ installed on a flash drive. That way I can just pop the usb drive into a machine and have a quality editor, without having to install anything.
On machines I'm using for longer periods, I use SciTE. I also use Dvorak keyboard. When guesting on machines, everything is different anyway as the keys are in illogical places. I just edit with what's there, or pass the file to source control and edit on my machine.
I resort to using notepad on win machines at client sites. Especially since I know that installing anything is not an option and I know that notepad will always be there.
For me the only time this happens is when I'm using someone else's system since I typically install a text editor that I am reasonably familiar with on each system that I own/use regularly. In that case, if I'm struggling too much, I move over and let the other person take the wheel (keyboard). FWIW, I use TextMate (sometimes vim) on OSX, TextPad (sometimes Notepad or even Edit on servers not under my direct control) on Windows, and vim on Linux.
I got comfortable with a couple different editors - vi, eclipse, and PFE. If I'm using some other editor short-term, I just deal with it. If it's longer term, Google is my friend, and I go download one I like.
On windows i convince everybody to install notepad++
On mac TextMate rules
On linux vim
I use vi under linux and Ultraedit under Windows.
Vi is a must if you are doing some linux administration or if
you are working directly in a shell.
A mouse oriented editor is useful if you are working under a
windowing system.
Anyway, I think you need to know the basics of both.
I work regularly on Linux and Windows, and occasionally on OS X. Having to switch editors between them is a pain, so the obvious solution would be using some cross-platform editor. Right now I'm experimenting with Komodo Edit, which looks pretty promising.
If there's no decent editor in the machine, it doesn't take long to download and install one.
If you are programming under windows you might want to take a look at e text editor its basically TextMate for windows and supports the bundles and everything.

What editor do you use for OpenLaszlo coding?

I'm new to developing in OpenLaszlo, and have tried Eclipse (hoping for decent code completion), but found it far too heavy for my tastes. fell back to using Textmate, but the bundle for OpenLaszlo is terribly out of date.
Any suggestions? or should I just roll up my sleeves and write a new bundle for Textmate?
I personally use SpketIDE as an Eclipse plugin. It has some code completion, good syntax highlighting.
I use VIM for this. The VIM mode that ships with OpenLaszlo recognizes both the XML tags and the embedded JavaScript. Of course, if you're not already a VIM user, it's a big project to dive in.
If you use a texteditor or XML editor with support for XSD schema, you can generate a custom XSD file of your application using this OpenLaszlo Schema Generator tool. The tool uses Ant to generate the schema file, which then can be used by the editor of your choice.
We used Visual Studio. And we used it just as a great XML editor.
I also used Notepad2 because it is very lightweight and has syntax highlighting.
I've been using Notepad++ with the XML language chosen (since Open Laszlo is basically just XML and javascript). Simple, but effective and free.
I wouldn't have added it otherwise, but since its arch-enemy VI(m) was mentioned:
Emacs
is worth listing. :)
Without knowing much about OL, I am pretty sure one of gazillions of modes it has provides some level of support for your editing needs.
I've been developing in OpenLaszlo since 2006. I currently use NotePad++ with .lzx files set to be interpreted as XML files, this allows the code to be highlighted well in different colours for the different parts that make up OpenLaszlo code (XML nodes, JavaScript/AS3, etc.).
You can find NotePad++ at:
http://notepad-plus-plus.org/
it is free.
I just test my application by loading it into a web browser page.

Is it possible to create a custom distribution of OpenOffice, or a way to package it into my java application?

I've got simple java-based ppt->swf sub-project that basically works. The open source software out there, OpenOffice.org and JODConverter do the job great.
The thing is, to do this I need to install OO.o and run it in server mode. And to do that I have to install OO.o, which is allot of software (~160MB) just to convert the source PPT files to an intermediate format. Also, the public OO.o distributions are platform specific and I'd really like a single, cross platform set of files. And, I'd like to not interfer with a system's current settings, like file extension associations.
As things are now, my project is not particularly 'software distribution friendly'.
So, the questions are:
Is it possible to create a custom distribution of OpenOffice? How would one about this?
How lightweight and unobtrusive can I make the installation?
Would it be possible to have a truly cross platform distribution since there would be no OO.o UI?
Are there any licensing issues I need to be aware of? (On my list of things to check out, but if you them already then TIA!)
I have no idea to accomplish such task, but Microsoft has its PPT viewer that is for free and very small, maybe in .NET (C#) you can use some kinda function to save into a intermediate file that you need...
and by the way, how are you handling slide transictions?
I found a software that does that but you need MS PPT installed.
this was just an idea, now regarding your actually question:
you can create your own installation of OO, just jump to the Installation project and follow the lines.
I did not read 'til the end, but from the 1st paragraph it seams what you are searching for.
No, not unless you are neck deep coding in the OpenOffice project.

Resources