diff options
Diffstat (limited to 'doc/kdvi/srcltx.sty')
-rw-r--r-- | doc/kdvi/srcltx.sty | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/doc/kdvi/srcltx.sty b/doc/kdvi/srcltx.sty new file mode 100644 index 00000000..3e2d61a3 --- /dev/null +++ b/doc/kdvi/srcltx.sty @@ -0,0 +1,184 @@ + +% ------------------------------------------------------------------------ +% File: srcltx.sty +% ========== +% +% Version 1.002 1999 Sep 3 (modified to change \everypar) +% by David Carlisle +% +% Version 1.001 1998 Dec 23 (modified to change \output) +% by Berthold Horn +% +% This package was originally written by Aleksander Simonic (the +% author of WinEdt Shell) to implement a source file tracking and +% DVI "SRC" specials for LaTeX. +% +% This package comes with no guarantees and no reserved rights. +% You can use or modify this file at your own risk. +% ************************************************************************ +% NOTE: TeX commands are case sensitive. You have to use uppercase +% \Input to take advantage of this package +% +% This package supports nested \Input commands... +% File extension should be specified in \Input! +% +% This file should be placed in a directory where your LaTeX is +% looking for inputs (eg. ...\localtexmf\tex for MiKTeX). +% +% If you are writing a book with WinEdt and LaTeX simply +% include this file and use \include{mychapter} command... +% This way all the necessary specials for DVI Search and +% Inverse Search are inserted in your DVI File. +% +% WinEdt will be able to track Errors from your LOG file. +% +% ************************************************************************ +% +% Some TeX implementations (eg. MiKTeX 1.20 [or later]) can insert +% the SRC specials much better than any macro package. Consult your +% TeX documentation to see if it is better to leave the task to your +% TeX. You can still use the [inactive] version of this package to +% take advantage of the re-defined Input commands and thus allowing +% WinEdt to keep track of errors in included source files. +% +% MiKTeX inserts the SRC specials in the DVI file if you start +% [La]TeX with --src qualifier (see MiKTeX's Manual: +% ...\texmf\Doc\MiKTeX\MiKTeX.pdf for more info). +% +% ************************************************************************ +% +% * NOTE: Some TeX implementations add the file type to the "\jobname". +% In that case the definition of the "\MainFile" should be modified to: +% +% \def\MainFile{\jobname} instead of \def\MainFile{\jobname.tex}. +% +% ************************************************************************ +% +% *** Example - Your LaTeX thesis document may look like this: +% +%\documentclass[12pt]{report} +%\usepackage[centertags]{amstex} +%\usepackage{thesis,newlfont,amsthm} +%\usepackage[active]{srcltx} +%%No src specials are written when loading the package by +%%\usepackage[inactive]{srcltx} +% +% .... Preamble .... +% +%\begin{document} +% +% .... Title, Author etc. .... +% +%\WinEdt{?0000} % Do not process any Errors (Overful/Underful Boxes) +%\beforepreface +%\WinEdt{?1111} % Process All Types of Errors from here on +%\include{ABS} +%\include{ACK} +%\afterpreface +%\include{chapter0} +%\include{chapter1} +%\include{chapter2} +%\include{chapter3} +%\bibliographystyle{amsplain} +%\bibliography{xbib} +%\end{document} +% +% ------------------------------------------------------------------------ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{srcltx}[1999/10/11 v1.002 DVI Search] +\newif\ifSRCOK \SRCOKtrue +\DeclareOption{active}{\SRCOKtrue} +\DeclareOption{inactive}{\SRCOKfalse} +\ExecuteOptions{inactive} +\ProcessOptions +% ------------------------------------------------------------------------ +\newcount\PAGETOP +\newcount\LASTLINE +\global\PAGETOP=1 +\global\LASTLINE=-1 +\gdef\MainFile{\jobname.tex}% ".tex" needed for MiKTeX +\gdef\CurrentInput{\MainFile} +\newcount\INPSP +\global\INPSP=0 +\def\EJECT{\SRC\eject} +\def\WinEdt#1{\typeout{:#1}}% WinEdt LOG MODE and INPUT +% ------------------------------------------------------------------------ +%If your are using DVIWIN remove the \space from the definitions below... +\def\SRC{\ifSRCOK% + \ifnum\inputlineno>\LASTLINE% + \ifnum\LASTLINE<0% + \global\PAGETOP=\inputlineno% + \fi% + \global\LASTLINE=\inputlineno% + \ifnum\INPSP=0% + \ifnum\inputlineno>\PAGETOP% + \special{src:\the\inputlineno\space\CurrentInput}% + \fi% + \else% + \special{src:\the\inputlineno\space\CurrentInput}% + \fi% + \fi% +\fi} +% ------------------------------------------------------------------------ +\def\PUSH#1{% +\SRC% +\ifnum\INPSP=0 \global\let\INPSTACKA=\CurrentInput \else% +\ifnum\INPSP=1 \global\let\INPSTACKB=\CurrentInput \else% +\ifnum\INPSP=2 \global\let\INPSTACKC=\CurrentInput \else% +\ifnum\INPSP=3 \global\let\INPSTACKD=\CurrentInput \else% +\ifnum\INPSP=4 \global\let\INPSTACKE=\CurrentInput \else% +\ifnum\INPSP=5 \global\let\INPSTACKF=\CurrentInput \else% + \global\let\INPSTACKX=\CurrentInput \fi\fi\fi\fi\fi\fi% +\gdef\CurrentInput{#1}% +\WinEdt{<+ \CurrentInput}% +\global\LASTLINE=0% +\ifSRCOK\special{src:1\CurrentInput}\fi% +\global\advance\INPSP by 1} +% +\def\POP{% +\ifnum\INPSP>0 \global\advance\INPSP by -1 \fi% +\ifnum\INPSP=0 \global\let\CurrentInput=\INPSTACKA \else% +\ifnum\INPSP=1 \global\let\CurrentInput=\INPSTACKB \else% +\ifnum\INPSP=2 \global\let\CurrentInput=\INPSTACKC \else% +\ifnum\INPSP=3 \global\let\CurrentInput=\INPSTACKD \else% +\ifnum\INPSP=4 \global\let\CurrentInput=\INPSTACKE \else% +\ifnum\INPSP=5 \global\let\CurrentInput=\INPSTACKF \else% + \global\let\CurrentInput=\INPSTACKX \fi\fi\fi\fi\fi\fi% +\WinEdt{<-}% +\global\LASTLINE=\inputlineno% +\global\advance\LASTLINE by -1% +\SRC} +% ------------------------------------------------------------------------ +% Dummy Input: can be used as \INPUT{<file>.bbl} to collect \bibitems +\def\INPUT#1{\relax} +% ------------------------------------------------------------------------ +% Redefine the original \include command +\let\OldINCLUDE=\include +\def\include#1{%Always ".tex" file type! +\EJECT% +\PUSH{#1.tex}% +\OldINCLUDE{#1}% +\POP} +% ------------------------------------------------------------------------ +\def\Input#1{%Specify File Extension! +\PUSH{#1}% +\input #1% +\POP} +% ------------------------------------------------------------------------ +% Note that these have been defined to concatenate the \SRC with +% whatever those token lists did before, just in case they were not +% empty token lists. Of course, later definitions may undo all this... +\let\originalxxxeverypar\everypar +\newtoks\everypar +\originalxxxeverypar{\the\everypar\expandafter\SRC} +%\everypar\expandafter{\the\everypar\expandafter\SRC} +% ??? Remove the following line if you encounter problems: +\everymath\expandafter{\the\everymath\expandafter\SRC} +% ------------------------------------------------------------------------ +% Redefine the \bibliography command: +\let\zzzxxxbibliography=\bibliography +\def\bibliography#1{\PUSH{\jobname.bbl}\zzzxxxbibliography{#1}\POP} +%------------------------------------------------------------------------ +% Modification to output routine to turn off \SRC while \output is active +\output\expandafter{\expandafter\SRCOKfalse\the\output} +%------------------------------------------------------------------------ |