On Feb 7, 2008, at 4:33 PM, Geoff Vallis wrote:
Brad
Following up with a slightly more explicit description. My bundle(s) works, but not elegantly or well. I have a short script call dvisync.sh that looks like the following:
#!/bin/tcsh /usr/texbin/xdvi -sourceposition $1$2 $3
and then I have two(!) bundles, called dvisync1 and dvisync2 that look like:
/pathto/dvisync.sh $TM_LINE_NUMBER $TM_FILEPATH ${TM_FILEPATH %.tex}.dvi
and
/pathto/dvisync.sh $TM_LINE_NUMBER $TM_FILEPATH ${TM_LATEX_MASTER %.tex}
You should add a line something like this:
DVIFILE=${TM_LATEX_MASTER:-$TM_FILEPATH}
Then use ${DVIFILE%.tex}.dvi on the /path/dvisync...... command
The first works if and only if there is no master file, and the second works if and only if there is one. I can't seem to get a single bundle to work in both cases, and also TextMate doesn't seem to reset the master file correctly all the time when I change the files I am editing.
That will depend on how and where you are setting TM_LATEX_MASTER. This variable is around only for backward compatibility with previous versions of the latex bundle. The preferred method for setting the master file is to put
%!TEX root = /path/to/root in your tex file. BUT that will not help you in your situation. I thought you said you were working with one giant file.
Brad
Any suggestions would be appreciated.
Geoff
On Feb 7, 2008, at 2:45 PM, Brad Miller wrote:
On Feb 7, 2008, at 7:38 AM, Geoff Vallis wrote:
Brad,
On Feb 6, 2008, at 9:47 PM, Brad Miller wrote:
How do you tell a running version of xdvi to change its position/ page from the shell? If it can be done from the shell I'll look at adding it.
The command to update xdvi is the same whether or not xdvi is already running. It is just: xdvi -sourceposition Lineno[:Column]Filename Masterfile[.dvi] with, I hope, obvious notation, and of course this command can be embedded in a shell script. The Column parameter is optional. If xdvi is already running, showing masterfile, this call will just bring the xdvi window to the front and switch positions accordingly. If not, the command will open an xdvi window with Masterfile showing.
That is very easy. I've just never found X to be very pleasant on the mac so I've mostly forgotten everything I used to know.
There are a million other options that you can see with a 'man xdvi' or 'xdvi --help'. Generally, you first open an xdvi window with the size and options you want, and then the syncing just uses that open window.
If it is a short shell script then it really would be very easy for you to add your own bundle command.
type ctrl-opt-cmd-b to bring up the bundle editor You should see a bundle with your own name, or you can add the command to the latex bundle. click add new command in the lower left corner. Give your new command a name: dvisync Save: Nothing Command(s) Whatever shell script tells xdvi to update itself. The two variables you may want are: TM_LINE_NUMBER and TM_FILEPATH or TM_FILENAME Input: None Output: discard key equivalent: your choice Scope Selector: text.tex.latex
Brad
Close the bundle editor, and you've made your first TextMate command.
Thanks, I'll give this a shot, whether or not you decide to support xdvi. To be absolutely clear, can you say what the Textmate variables are that correspond to:
linenumber of the file being edited where the cursor is at; column of the cursor of the file being edited (if available; filename of the file being edited; masterfilename (which will be the name of the dvi file).
Geoff,
You can see all of the environment variables exported by TM by running the command Bundles --> Bundle Development --> Show TM_* variables.
linenumber is TM_LINE_NUMBER columnnumber is TM_COLUMN_NUMBER filename of the file being edited: TM_FILENAME -- is the filename without any path information TM_FILEPATH -- is the filename with full path ${TM_FILENAME%.tex}.dvi will give you the name of the dvi file without path ${TM_FILEPATH%.tex}.dvi will give you the name of the dvi file with the path
Brad
Regards Geoff
For new threads USE THIS: textmate@lists.macromates.com (threading gets destroyed and the universe will collapse if you don't) http://lists.macromates.com/mailman/listinfo/textmate
For new threads USE THIS: textmate@lists.macromates.com (threading gets destroyed and the universe will collapse if you don't) http://lists.macromates.com/mailman/listinfo/textmate
For new threads USE THIS: textmate@lists.macromates.com (threading gets destroyed and the universe will collapse if you don't) http://lists.macromates.com/mailman/listinfo/textmate
For new threads USE THIS: textmate@lists.macromates.com (threading gets destroyed and the universe will collapse if you don't) http://lists.macromates.com/mailman/listinfo/textmate