summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/gene/logic/gn-logic14.sty
blob: ae023304c559e07a827e52b52a1494a81f68ed76 (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
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\typeout{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
  Logic Formula Environments and Macros. Version 1.4 gene 5/95
% 
% Purpose:
%   Style option for LaTeX2e and LaTeX 2.09 to typeset formulas.
%
% Documentation: see seperate LaTeX document `gn-logic14.tex'
%
% Author: Gerd Neugebauer
%         \"Odenburger Str. 16
%	  64295 Darmstadt (Germany)
% Mail:   gerd@imn.th-leipzig.de
%
% Copyright (C) 1995 Gerd Neugebauer
%
% gn-logic.sty is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY.  No author or distributor
% accepts responsibility to anyone for the consequences of using it
% or for whether it serves any particular purpose or works at all,
% unless he says so in writing.
%
% Everyone is granted permission to copy, modify and redistribute
% gn-logic.sty, provided this copyright notice is preserved and any
% modifications are indicated.
%
%
% This style is still under development and may be replaced with a new
% version which provides an enhanced functionality.
% Any comments are welcome but don't expect ANY help from my side.
%
}

%%%----------------------------------------------------------------------------
%%% Several useful abbrevations
%%%
\def\AND     { \,\wedge\,		  }
\def\OR      { \,\vee\,			  }
\def\XOR     { \,\stackrel{.}{\vee}\,	  }
\def\IMPLIES { \,\rightarrow\,		  }
\def\IMPL    { \,\rightarrow\,		  }
\def\IF      { \,\leftarrow\,		  }
\def\IFF     { \,\leftrightarrow\,	  }
\def\IFFdef  { \,\stackrel{\rm def}{\longleftrightarrow}\, }

\def\ANDdots { \,\wedge\!\ldots\!\wedge\, }
\def\ORdots  { \,\vee\!\ldots\!\vee\,     }

\def\is      { \!\setminus\!		  }
\def\Forall#1{ \forall #1\ 		  }
\def\Exists#1{ \exists #1\  		  }

\def\bbOne{\ifmmode\mathrm{1\!l}\else\mbox{\(\mathrm{1\!l}\)}\fi}
\def\bbB{\ifmmode\mathrm{I\!B}\else\mbox{\(\mathrm{I\!B}\)}\fi}
\def\bbD{\ifmmode\mathrm{I\!D}\else\mbox{\(\mathrm{I\!D}\)}\fi}
\def\bbE{\ifmmode\mathrm{I\!E}\else\mbox{\(\mathrm{I\!E}\)}\fi}
\def\bbF{\ifmmode\mathrm{I\!F}\else\mbox{\(\mathrm{I\!F}\)}\fi}
\def\bbH{\ifmmode\mathrm{I\!H}\else\mbox{\(\mathrm{I\!H}\)}\fi}
\def\bbI{\ifmmode\mathrm{I\!I}\else\mbox{\(\mathrm{I\!I}\)}\fi}
\def\bbJ{\ifmmode\mathrm{J\!\!J}\else\mbox{\(\mathrm{J\!\!J}\)}\fi}
\def\bbK{\ifmmode\mathrm{I\!K}\else\mbox{\(\mathrm{I\!K}\)}\fi}
\def\bbL{\ifmmode\mathrm{I\!L}\else\mbox{\(\mathrm{I\!L}\)}\fi}
\def\bbN{\ifmmode\mathrm{I\!N}\else\mbox{\(\mathrm{I\!N}\)}\fi}
\def\bbM{\ifmmode\mathrm{I\!M}\else\mbox{\(\mathrm{I\!M}\)}\fi}
\def\bbP{\ifmmode\mathrm{I\!P}\else\mbox{\(\mathrm{I\!P}\)}\fi}
\def\bbR{\ifmmode\mathrm{I\!R}\else\mbox{\(\mathrm{I\!R}\)}\fi}
\def\bbZ{\ifmmode\mathsf{Z\;\!\!\!\!Z}\else\mbox{\(\mathsf{Z\;\!\!\!\!Z}\)}\fi}
\let\N=\Nat
\let\Nat=\bbN
\let\Real=\bbR
\let\Int=\bbZ
%\def\Int{\mbox{\sf Z\hspace{-0.45em}Z}}
\def\bbC{\mbox{\rm\hspace{0.2em}\rule[.1ex]{.05em}{1.37ex}\hspace{-0.27em}C}}
\def\bbG{\mbox{\rm\hspace{0.2em}\rule[.1ex]{.05em}{1.37ex}\hspace{-0.27em}G}}
\def\bbO{\mbox{\rm\hspace{0.2em}\rule[.1ex]{.05em}{1.37ex}\hspace{-0.27em}O}}
\def\bbQ{\mbox{\rm\hspace{0.2em}\rule[.1ex]{.05em}{1.37ex}\hspace{-0.27em}Q}}
\let\Complex=\bbC
\let\Rat=\bbQ
%%%----------------------------------------------------------------------------
%%% The formula environment
%%%

\newlength\FormulaIndent \FormulaIndent=3em

\def\Formula{\@ifnextchar[{\@Formula}{\@Formula[]}}

\def\@FormLabel[#1]{\end{array}\\\label{#1}&&\begin{array}{l} }

\def\@Formula[#1]{\begingroup\setlength{\arraycolsep}{0pt}%
  \def\Form{\@ifnextchar[{\@FormLabel}{\end{array}\\&&\begin{array}{l} }}%
  \def\={\\\hspace*{\FormulaIndent}}%
  \def\>##1{\\\hspace*{\FormulaIndent}\hspace*{##1\FormulaIndent}}%
  \penalty-500\eqnarray\ifx\@empty#1\else\label{#1}\fi&&\begin{array}{l} }
  
\def\endFormula{\end{array}\endeqnarray\endgroup}


%%%----------------------------------------------------------------------------
%%% The NewTheorem environment
%%%

\def\TheoremTitle#1{{\small #1}}
\def\TheoremName#1{{\small\bf (#1)}}

\def\NewTheorem#1{
 \expandafter\gdef\csname #1\endcsname{\csname THM#1\endcsname\@@theorem}
 \expandafter\gdef\csname end#1\endcsname{\csname endTHM#1\endcsname}
 \@ifnextchar[{\New@Theorem#1}{\expandafter\newtheorem{THM#1}}}

\def\New@Theorem#1[{\expandafter\newtheorem{THM#1}[THM}

\def\@@theorem{%
\@ifnextchar[{\@@theorem@title}{\@ifnextchar({\@@theorem@label}{\@ifnextchar<{\@@theorem@name}{\ \nobreak\\\nobreak}}}}

\def\@@theorem@label(#1){\label{#1}\@@theorem}
\def\@@theorem@title[#1]{\ \TheoremTitle{#1}\@@theorem}
\def\@@theorem@name<#1>{\ \TheoremName{#1}\@@theorem}