############################################################################# File: PasTeXMode.FPL Author: Jesper Skov Email: jskov@iesd.auc.dk Short: Provides interface to the PasTeX LaTeX compiler. Version: 1.6 Date: 15.06.95 Local settings: Global settings:PasTeX_(compile_dir, port_name, style, auto_save,log_restart) Keysequence: "C-c C-c" and "C-c '" (C = ctrl) Type: Major mode Prereq: FMC.FPL, LaTeXMode.FPL Copyright: © 1994-1995, Jesper Skov ############################################################################# FUNCTION With this file you have a cute little PasTeX interface for FrexxEd (Fred). Changes you _have_ to make in your PasTeX system: *NONE* Changes I suggest you make in your PasTeX system (by free will! No force :) Collect all the files PasTeX usually use when compiling in a directory called "PrimeTeX:". (If your Amiga has enough RAM you might want to copy this directory to RAM each time you start a TeX'ing session. This will give you a nice performance boost ;) If you want Fred to locate compile errors by itself you need to insert the lines below in the file TeXedit.rexx (found in the Rexx: or TeX:Rexx/ dir). --- 8< ---------- 8< ---------- 8< ---------- 8< ---------- 8< ---------- /* FrexxEd */ IF SHOW('P', 'FREXXED.1') THEN DO ADDRESS "FREXXED.1" logname = logfile IF 0~=LASTPOS("/",logname) THEN logname = RIGHT(logname,LENGTH(logname)-LASTPOS("/",logname)) IF 0~=LASTPOS(":",logname) THEN logname = RIGHT(logname,LENGTH(logname)-LASTPOS(":",logname)) 'LaTeXFail ("'logname'");' EXIT 0 END --- 8< ---------- 8< ---------- 8< ---------- 8< ---------- 8< ---------- (Insert it below the comment "Here starts each editor specific parts"!) Um, that's it. Now you just have to press "C-c C-c" in a PasTeX buffer (pastex_mode checked). If the compilation is successful you should see ShowDVI popping to front, giving you a look at the resulting document. If the compilation was interrupted (by an error), Fred will pop to front and place the cursor at the line which holds the first error. Also, the status line will show you a description of the problem. If you press "C-c '" the cursor will jump to the next erroneous line. This mode has a few preference settings (all global and writeable): PasTeX_compile_dir: What dir should PasTeX be invoked from? If empty, the file's home directory will be used for the compilation. I use a directory called PrimeTeX: as described above. This, however, means that the .tex/.log and .aux files will be mixed with your (*.sty) files, so if you do not make a copy of PrimeTeX: to RAM before starting, your PrimeTeX: dir will pretty fast get filled with crap files. Also, if you _do_ make a copy of PrimeTeX: to RAM you will get another problem. See P_auto_save. PasTeX_auto_save: If you compile from the RAM disk, the .tex file will not automatically be updated on disk (or where ever the file's home dir is) unless you set this flag. It's tough loosing an hours work because all compilation has been made in RAM, but on the other hand, it's nice not always saving the file to disk. To compromise these two points, the auto saving is not made until the syncronous PasTeX job has been started. In short, play it safe! Use auto_save! PasTeX_port_name: The name of the ARexx port for the PasTeX server. Included to make it easy to support other TeX compilers with other server names. PasTeX_style: Which style to use in the compilation. I use "&latex", but as I recall it the standard PasTeX package use "&lplain". If you are tough you maybe also want to use "&plain" (raw TeX). PasTeX_log_restart: When jumping to next error with "C-c '", Fred scans the .log file for the next error line. If this flag is set, the .log file will be scanned from the top each time (slower, but you may revisit previous errors). Activate the preference window choosing "Customizing->Program->PasTeX" in the menu. The menu "PasTeX" offers "Compile" and "Next error" (described above) and "ShowDVI" which pops ShowDVI to front (and activates it). As of version 1.4 this PasTeX interface is a major mode - consult FMC.FPL.readme for further information. The default FMC settings are: pastex_mode_ext = "*tex*" Recognize *.tex files as LaTeX files and enable PasTeX mode. pastex_mode_exe = "LaTeXModeInit();ME("double_mode");" Initialize LaTeXMode when PasTeX mode gets enabled. TIPS (some of my PasTeX setup) This is my StartTeX DOS script (use with an icon and iconx!) --- 8< ---------- 8< ---------- 8< ---------- 8< ---------- 8< ---------- run showdvi NOLog on if not exists ram:primetex makedir ram:PrimeTeX copy PrimeTeX: ram:PrimeTeX all quiet assign PrimeTeX: ram:PrimeTeX endif resident tex:bin/latex pure run rx tex:rexx/tex-server.rexx FrexxEd:fred INIT tex:FrexxEd.default rx tex:rexx/quit_tex endcli --- 8< ---------- 8< ---------- 8< ---------- 8< ---------- 8< ---------- In your "ShowDVI.config" insert the line: --- 8< ---------- 8< ---------- 8< ---------- 8< ---------- 8< ---------- f1 rexx:FrexxEdToFront.rexx --- 8< ---------- 8< ---------- 8< ---------- 8< ---------- 8< ---------- where FrexxEdToFront.rexx is a reference to the file found in the FrexxEd/Rexx directory. Copy it to Rexx: or change the key definition above. Now you can press F1 to get from ShowDVI to FrexxEd. HISTORY (REV) 15.06.95 (6) Renamed to PasTeX.FPL. The settings have also been renamed. Sorry folks, but it's for the best! Check out LaTeXMode! 30.05.95 (5) Removed two bugs reported by Volker Gūth. 02.04.95 (4) Now a major mode. 21.03.95 (3) All preference settings are now Global. 02.03.95 (2) Moved the settings to Customizing->Program! 26.02.95 (1) Added menu. Added "ShowDVI to front" command. 07.11.94 (0) Initial release. BUGS I would like to bind the shortcut keys to the menu, but since these are global keybindings it doesn't go too well with my other Emacs like programs (e.g. the RCS interface). TODO The .log file should be killed if the .tex file is killed. Volker Gūth: If I use the \input or \include command and there is a error in the included text, FrexxEd jumps to the correct line, but not in the correct text! I think this can not be fixed so simply as the other bugs. TeXedit.rexx has the variable "filename" with the name of the file with the error, is it possible to use it, or does it cause great problems with the LaTeXNextError, function? SEE ALSO FMC.FPL.readme LaTeXMode.FPL.readme Peter Straub's "Mystery" (ISBN: 0-451-16865-8)