summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/srcltx/srctex.sty
blob: 8edc5a0f0d7c5d4cbdb845e5903caa13eb278d60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
%%
%% This is file `srctex.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% srcltx.dtx  (with options: `package,tex')
%% 
%% This package is in the public domain. It comes with no guarantees
%% and no reserved rights. You can use or modify this package at your
%% own risk.
%% Originally written by: Aleksander Simonic
%% Current maintainer: Stefan Ulrich <stefanulrich@users.sourceforge.net>
%% 
\catcode`\@=11
\newif\ifSRCOK \SRCOKtrue
\newif\ifsrc@debug@
\newif\ifsrc@dviwin@
\newif\ifsrc@winedt@\src@winedt@true
\newif\ifsrc@everypar@\src@everypar@true
\newif\ifsrc@everymath@\src@everymath@true
\def\SRCdebug{\src@debug@true}
\def\SRCnopar{\src@everypar@false}
\def\SRCnomath{\src@everymath@false}
\def\typeout#1{{\newlinechar`\^^J\message{#1^^J}}}
\def\AtBeginDocument#1{#1}
\let\src@maybe@space\space
\newcount\src@lastline
\global\src@lastline=-1
\def\src@debug#1{\ifsrc@debug@\typeout{DBG: |#1|}\fi}
\def\MainFile{\jobname.tex}
\gdef\CurrentInput{\MainFile}
\def\WinEdt#1{\ifsrc@winedt@\typeout{:#1}\fi}
\def\src@AfterFi#1\fi{\fi#1}
\AtBeginDocument{%
\ifx\SOUL@\relax
\else
        \let\src@SOUL@\SOUL@
        \def\SOUL@#1{%
            \ifSRCOK
                \SRCOKfalse\src@SOUL@{#1}\SRCOKtrue
            \else
                \src@AfterFi\src@SOUL@{#1}%
            \fi
        }%
\fi
}
\def\srcIncludeHook#1{\xdef\CurrentInput{#1.tex}}
\def\srcInputHook#1{%
    \src@getfilename@with@ext{#1}%
}
\def\src@spec{%
    \ifSRCOK
        \ifnum\inputlineno>\src@lastline
            \global\src@lastline=\inputlineno
            \src@debug{%
                src:\the\inputlineno\src@maybe@space\CurrentInput}%
            \special{src:\the\inputlineno\src@maybe@space\CurrentInput}%
        \fi
    \fi
}
\def\src@before@file@hook{%
    \WinEdt{<+ \CurrentInput}%
    \global\src@lastline=0
    \ifSRCOK\special{src:1\src@maybe@space\CurrentInput}\fi
}
\def\src@after@file@hook#1{%
    \WinEdt{<-}%
    \global\src@lastline=\inputlineno
    \global\advance\src@lastline by -1%
    \gdef\CurrentInput{#1}%
    \src@spec
}
\def\src@tempa{}%
\def\src@extensions@path#1.#2\end{%
   \ifx\\#2\\
       \edef\src@extensions@last{#1}%
       \let\src@tempa\relax
   \else
       \def\src@tempa{\src@extensions@path#2\end}%
   \fi
   \src@tempa
}
\def\src@getfilename@with@ext#1{%
    \expandafter\src@extensions@path#1.\end
    \def\src@tempa{tex}%
    \ifx\src@extensions@last\src@tempa
        \xdef\CurrentInput{#1}%
    \else
        \xdef\CurrentInput{#1.tex}%
    \fi
}
\let\src@input\input
\def\Input#1{%
    \expandafter\src@Input\expandafter{\CurrentInput}{#1}%
}
\def\src@Input#1#2{%
    \srcInputHook{#2}%
    \src@before@file@hook
    \src@input #2
    \src@after@file@hook{#1}%
}
\ifsrc@everypar@
    \let\src@old@everypar\everypar
    \newtoks\src@new@everypar
    \let\everypar\src@new@everypar
    \everypar\expandafter{\the\src@old@everypar}
    \src@old@everypar{\the\src@new@everypar\src@spec}
\fi
\ifsrc@everymath@
    \everymath\expandafter{\the\everymath\src@spec}
\fi
\let\src@old@output\output
\newtoks\src@new@output
\let\output\src@new@output
\output\expandafter{\the\src@old@output}
\src@old@output{\SRCOKfalse\the\src@new@output}
\catcode`\@=12
\endinput
%%
%% End of file `srctex.sty'.