From 007f67a693e4d031fd3d792df8e4d5f43e2cb2e7 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 9 Jan 2006 00:49:07 +0000 Subject: doc/latex git-svn-id: svn://tug.org/texlive/trunk@84 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/logic/gn-logic14.tex | 394 +++++++++++++++++++++++ Master/texmf-dist/doc/latex/logic/milstd.tex | 34 ++ 2 files changed, 428 insertions(+) create mode 100644 Master/texmf-dist/doc/latex/logic/gn-logic14.tex create mode 100644 Master/texmf-dist/doc/latex/logic/milstd.tex (limited to 'Master/texmf-dist/doc/latex/logic') diff --git a/Master/texmf-dist/doc/latex/logic/gn-logic14.tex b/Master/texmf-dist/doc/latex/logic/gn-logic14.tex new file mode 100644 index 00000000000..1ad9ff0e158 --- /dev/null +++ b/Master/texmf-dist/doc/latex/logic/gn-logic14.tex @@ -0,0 +1,394 @@ +%*****************************************************************************/ +%* */ +%* Version: 1.00 Date: 21/04/92 File: gn-logic14.tex */ +%* Last Version: File: */ +%* Changes: */ +%* 30/12/90 First version of documentation. */ +%* 21/04/92 new properties */ +%* */ +%* Title: */ +%* Author: Gerd Neugebauer */ +%* */ +%* Usage: latex gn-logic14.tex */ +%* */ +%*****************************************************************************/ + +\documentstyle[11pt,dina4,gn-logic14]{article} + +\setlength{\unitlength}{1pt} + + +\begin{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newlength{\Width} \Width=\textwidth \advance\Width by -1.5em \divide\Width by 2 + +\section{The {\tt gn-logic} style option} +Description of Version 1.4 (5/95) by Gerd Neugebauer \bigskip + +The {\tt gn-logic} style option provides a facility to typeset logical +formulas of a certain kind. This style option provides an environment like +\verb|eqnarray|, an extended {\tt newtheorem} environment and several macros. + + + +\subsection{Mathematical Symbols} + +The following marcos provide better usage of the junctors and quantifiers. +Especially the spacing is improved. + + +\noindent\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}*{4}{l}} +\multicolumn{1}{c}{\small Symbol} + & \multicolumn{1}{c}{\small Macro} + & \multicolumn{2}{c}{\small Example} \\ + & & & \\ +$\AND$ & \verb|\AND| & \verb$A\AND B$ & $A\AND B$ \\ +$\OR$ & \verb|\OR| & \verb$A\OR B$ & $A\OR B$ \\ +$\XOR$ & \verb|\XOR| & \verb$A\XOR B$ & $A\XOR B$ \\ +$\IMPLIES$ & \verb|\IMPLIES| & \verb$A\IMPLIES B$ & $A\IMPLIES B$ \\ +$\IMPL$ & \verb|\IMPL| & \verb$A\IMPL B$ & $A\IMPL B$ \\ +$\IF$ & \verb|\IF| & \verb$A\IF B$ & $A\IF B$ \\ +$\IFF$ & \verb|\IFF| & \verb$A\IFF B$ & $A\IFF B$ \\ +$\IFFdef$ & \verb|\IFFdef| & \verb$A\IFFdef B$ & $A\IFFdef B$ \\ +$\ANDdots$ & \verb|\ANDdots| & \verb$A_1\ANDdots A_n$ & $A_1\ANDdots A_n$ \\ +$\ORdots$ & \verb|\ORdots| & \verb$A_1\ORdots A_n$ & $A_1\ORdots A_n$ \\ +$\is$ & \verb|\is| & \verb$x\is y$ & $x\is y$ \\ +$\Nat$ & \verb|\Nat| & \verb$n\in\Nat$ & $n\in\Nat$ \\ +$\Forall$ & \verb|\Forall| & \verb$\Forall x P(x)$ & $\Forall x P(x)$ \\ +$\Exists$ & \verb|\Exists| & \verb$\Exists y P(x)$ & $\Exists y P(x)$ \\ +\end{tabular*} + + +\newcommand{\bs}{{\tt\char"5C}} +\newcommand{\mac}[1]{The {\tt\char92 #1} Macro} +\newcommand{\macs}[2]{The {\tt\char92 #1} and the {\tt\char92 #2} Macros} +\newenvironment{compare}% +{\noindent\begin{center}% + \begin{tabular}{@{}l@{\hspace*{1.5em}produces\hspace*{1.5em}}l@{}}}% +{\end{tabular}\end{center}} + +\subsubsection*{\mac{AND}} +This macro can be used for the logical conjunction. In addition to the +\verb|\wedge| macro it adds more space and the formulas tend to be better +readable. Compare + +\begin{compare} +\verb$x=1\AND y=x$ & $x=1\AND y=x$ \\ +\verb$x=1\wedge y=x$ & $x=1\wedge y=x$ \\ +\verb$x=1\land y=x$ & $x=1\land y=x$ +\end{compare} + +\subsubsection*{\mac{OR}} +This macro can be used for the logical disjunction. In addition to the +\verb|\vee| macro it adds more space. Compare + +\begin{compare} +\verb$x=1\OR y=x$ & $x=1\OR y=x$ \\ +\verb$x=1\vee y=x$ & $x=1\vee y=x$ \\ +\verb$x=1\lor y=x$ & $x=1\lor y=x$ +\end{compare} + + +\subsubsection*{\mac{XOR}} +This macro can be used for the exclusive disjunction. It has no common +counterpart. The spacing is like in in all junctor macros. + +\begin{compare} +\verb$x=1\XOR y=x$ & $x=1\XOR y=x$ +\end{compare} + + +\subsubsection*{\macs{IMPL}{IMPLIES}} +These macros can be used for the logical implication. In addition to the +\verb|\rightarrow| macro it adds more space. Compare + +\begin{compare} +\verb$x=1\IMPL y=x$ & $x=1\IMPL y=x$ \\ +\verb$x=1\IMPLIES y=x$ & $x=1\IMPLIES y=x$ \\ +\verb$x=1\rightarrow y=x$ & $x=1\rightarrow y=x$ +\end{compare} + + +\subsubsection*{\mac{IF}} + This macro can be used for the logical implication written in reverse order. +In addition to the \verb|\leftarrow| macro it adds more space. Compare + +\begin{compare} +\verb$x=1\IF y=x$ & $x=1\IF y=x$ \\ +\verb$x=1\lefttarrow y=x$ & $x=1\leftarrow y=x$ +\end{compare} + +\subsubsection*{\mac{IFF}} + This macro can be used for the logical equivalence. +In addition to the \verb|\leftrightarrow| macro it adds more space. Compare + +\begin{compare} +\verb$x=1\IFF y=x$ & $x=1\IFF y=x$ \\ +\verb$x=1\leftrighttarrow y=x$ & $x=1\leftrightarrow y=x$ +\end{compare} + +\subsubsection*{\mac{IFFdef}} + Like above but with a small ``def'' above the arrow. + +\begin{compare} +\verb$x=1\IFFdef y=x$ & $x=1\IFFdef y=x$ +\end{compare} + +\subsubsection*{\mac{is}} + This macro is for typesetting unifiers. In this case the predefined +\verb|\setminus| produces to much space. + +\begin{compare} +\verb$\{y\setminus x, z\setminus 4\}$ & $\{y\setminus x, z\setminus 4\}$ \\ +\verb$\{y\is x, z\is 4\}$ & $\{y\is x, z\is 4\}$ \\ +\verb$\{y\backslash x, z\backslash 4P}$ & $\{y\backslash x, z\backslash 4\}$ +\end{compare} + +\ifx\AmSTeX\undefined +\def\AmSTeX{$\cal A$\kern-.1667em\lower.5ex\hbox + {$\cal M$}\kern-.125em$\cal S$-\kern-.1em\TeX} +\fi + +\subsubsection*{The Number Macros} +This are macros for those who have no access to the \AmSTeX{} fonts. It makes +the symbols for the natural numbers, integers, rationals, reals and complex +numbers. The usual magnification commands apply to it aswell. + + +\def\BB#1{\csname bb#1\endcsname} +\def\Line#1{\LINE{#1}\(\BB{#1}_{\BB{#1}}\)} +\def\LINE#1{{\tt \char92bb#1}&% + {\tiny\BB{#1}}&% + {\scriptsize\BB{#1}}&% + {\footnotesize\BB{#1}}&% + {\small\BB{#1}}&% + {\normalsize\BB{#1}}&% + {\large\BB{#1}}&% + {\Large\BB{#1}}&% + {\LARGE\BB{#1}}&% + {\huge\BB{#1}}&% + {\Huge\BB{#1}}&% + } +\begin{center} + \begin{tabular}{c|cccccccccc|c} + &\multicolumn{10}{|c|}{{\tt \char92tiny \hfill...\hfill\char92normalsize \hfill...\hfill\char92Huge}}&\verb|X_X| + \\\hline + \Line B\\ + \verb|\Complex|\Line C\\ + \Line D\\ + \Line E\\ + \Line F\\ + \Line G\\ + \Line H\\ + \Line I\\ + \Line J\\ + \Line K\\ + \Line L\\ + \Line M\\ + \verb|\Nat| \Line N\\ + \Line O\\ + \Line P\\ + \verb|\Rat| \Line Q\\ + \verb|\Real| \Line R\\ + \verb|\Int| \Line Z\\ + \Line{One} + \end{tabular} +\end{center} + +Unfortunately the macros \verb|\bbC|, \verb|\bbG|, \verb|\bbO|, and +\verb|\bbQ| do not scale properly when used in subscripts or superscripts of +formulae. The following examples shows how the sizing can be achieved manually + +\noindent\begin{compare} +\verb$\bbQ_{\mbox{\scriptsize \bbQ}}$ & $\bbQ_{\mbox{\scriptsize \bbQ}}$ +\end{compare} + + + +\subsubsection*{\macs{Forall}{Exists}} + The general problem with quantifies is that after the quantified variable the +following formula is not automatically seperated with a small space. This can +be overcome by the following macros. + +The \verb|\Forall| and the \verb|\Exists| macros take one argument. They +typeset the respective quantifier followed by the argument (i.e.\ the variable) +and finally a small space. As usual the argument has to be enclosed in braces +if it consists of more than one character. Otherwise the braces can be omitted. +This allows a elegant notation of short quantified formulas. + +\noindent\begin{compare} +\verb$\Forall x P(x)$ & $\Forall x P(x)$\\ +\verb$\Forall{x_1,\ldots,x_n}P(x_1,\ldots,x_n)$% +&$\Forall{x_1,\ldots,x_n}P(x_1,\ldots,x_n)$\\ +\verb$\Exists x P(x)$ & $\Exists x P(x)$\\ +\verb$\Exists{x_1,\ldots,x_n}P(x_1,\ldots,x_n)$% +& $\Exists{x_1,\ldots,x_n}P(x_1,\ldots,x_n)$ +\end{compare} + + + +\subsection{The {\tt Formula} Environment} + +This environment allows to typeset logical formulas. The main problem with the +\verb|eqnarray| environment was the numbering. In multiline formulas my +intention was to have the number in the middle of the formula. Inside this +environment several macros are valid. + +\begin{description} + \item[{\tt\bs begin\{Formula\}[{\em label}] \bs end\{Formula\}}] \ \\ + Start the list of formulas. Optionally a label can be given. This label + is used to reference the first formula. + \item[{\tt\bs =}] \ \\ + Start a new line. + \item[{\tt\bs >}{\em level}] \ \\ + Start a new line and indent to the given {\em level}. This indentation + is done in quantities of \verb|\FormulaIndent| which can be set with + the \verb|\setlength| command. The default value is {\tt 3em}. + \item[{\tt\bs Form[{\em label}]}] \ \\ + Start a new formula. Optionally a {\em label} can be given. This {\em + label} can be used to reference to the formula (see \verb|\ref|). +\end{description} + +Now lets have a look at some examples. First, we see a single two-line formula. +Note that the number at the right side is centered between the two lines. +\medskip + +\noindent +\begin{minipage}{\Width} +\small\begin{verbatim} +\begin{Formula} + P(X) \IMPL +\= Q(X) \IFF R_1(X) \OR R_2(X) +\end{Formula} +\end{verbatim} +\end{minipage} +\hfill +\begin{minipage}{\Width} +\begin{Formula} + P(X) \IMPL +\= Q(X) \IFF R_1(X) \OR R_2(X) +\end{Formula} +\end{minipage}\medskip + +Next we will see an example of several formulas. The first formula is split to +three lines and the third line is indented to level 1. Remark: \verb|\=| is in +reality an abbrevation for \verb|\>0|. +\medskip + +\noindent +\begin{minipage}{\Width} +\small\begin{verbatim} +\begin{Formula}[form:1] + P(X) \IMPL +\= Q(X) \IFF R_1(X) +\>1 \OR R_2(X) +\Form[form:2] + S(X) \IMPL +\= \neg Q(X) \IFF R_1(X) \OR R_2(X) +\end{Formula} +\end{verbatim} +\end{minipage} +\hfill +\begin{minipage}{\Width} +\begin{Formula}[form:1] + P(X) \IMPL +\= Q(X) \IFF R_1(X) +\>1 \OR R_2(X) +\Form[form:2] + S(X) \IMPL +\= \neg Q(X) \IFF R_1(X) \OR R_2(X) +\end{Formula} +\end{minipage}\medskip + + +\subsection{The {\tt NewTheorem} Environment} + +My experience with the {\tt newtheorem} environment was that I had a certain +scheme to use it. First, every theorem got a label. Thus, every {\em theorem} +was followed by a {\tt label} command. Optionally a {\em theorem} may have a +name. This name is typeset right after the number. The body of the {\em + theorem} allways started in the next line. This let to the definition of an +extended {\tt NewTheorem} environment. The arguments are the same as those of +the {\tt newtheorem} environment. But the environment defined by this extended +command take two optional arguments. The first optional argument is a label to +be assigned to the {\em theorem}. This argument has to be enclosed in +parentheses. The second type of optional argument has to be enclosed in +brakets. It is typeset in \verb|\small| after the title text. The third +optional argument is enclosed in \verb|<>|. It is typeset in \verb|\small\bf| +and surrounded by parentheses. +\medskip + +\noindent\begin{minipage}{\Width} +\small\begin{verbatim} + +\NewTheorem{guess}{Conjecture} + +\begin{guess}[Fermat](thm:fermat) + There do not exist integers $n>2$, + $x$, $y$, and $z$ such that + $x^n+y^n=z^n$. +\end{guess} +\end{verbatim} +\end{minipage} +\hfill +\begin{minipage}{\Width} +\NewTheorem{guess}{Conjecture} + +\begin{guess}[Fermat](thm:fermat) + There do not exist integers $n>2$, + $x$, $y$, and $z$ such that + $x^n+y^n=z^n$. +\end{guess} +\end{minipage} +\medskip + +The commands used to typeset some of the optional argument can be customized +in the following way. The macros \verb|\TheoremTitle| and \verb|\TheoremName| +are used to typeset their argument in \verb|\small| and \verb|\small\bf| and +enclosed in parentheses respectively. This macros can be redefined using +\verb|\renewcommand| as shown in the following example: +\medskip + +\noindent\begin{minipage}{\Width} +\footnotesize\begin{verbatim} +\NewTheorem{theorem}{Theorem} +\renewcommand{\TheoremTitle}[1]{{\sf [#1]}} +\renewcommand{\TheoremName}[1]{{\small(#1)}} +\begin{theorem}[Fermat](thm:f2) + There do not exist integers ... +\end{theorem} +\end{verbatim} +\end{minipage} +\hfill +\begin{minipage}{\Width} +\NewTheorem{theorem}{Theorem} +\renewcommand{\TheoremTitle}[1]{{\sf #1}} +\renewcommand{\TheoremName}[1]{{\small(#1)}} +\begin{theorem}[Fermat](thm:f2) + There do not exist integers $n>2$, + $x$, $y$, and $z$ such that + $x^n+y^n=z^n$. +\end{theorem} +\end{minipage} + +\end{document} + + + +\newcommand{\ENTRY}[1]{{#1 \Nat}& {#1 \Int}& {#1 \Rat}&{#1 \Real}& {#1 \Complex}} + +\begin{center} +\begin{tabular}{l|ccccc} +&\verb|\Nat|&\verb|\Int|&\verb|\Rat|&\verb|\Real|&\verb|\Complex|\\ +&&\\\hline&&\\ +\verb$\tiny$ & \ENTRY{\tiny} \\ +\verb$\scriptsize$ & \ENTRY{\scriptsize} \\ +\verb$\footnotesize$ & \ENTRY{\footnotesize} \\ +\verb$\small$ & \ENTRY{\small} \\ +\verb$\normalsize$ & \ENTRY{\normalsize} \\ +\verb$\large$ & \ENTRY{\large} \\ +\verb$\Large$ & \ENTRY{\Large} \\ +\verb$\LARGE$ & \ENTRY{\LARGE} \\ +\verb$\huge$ & \ENTRY{\huge} \\ +\verb$\Huge$ & \ENTRY{\Huge} +\end{tabular}\end{center} diff --git a/Master/texmf-dist/doc/latex/logic/milstd.tex b/Master/texmf-dist/doc/latex/logic/milstd.tex new file mode 100644 index 00000000000..082fed14703 --- /dev/null +++ b/Master/texmf-dist/doc/latex/logic/milstd.tex @@ -0,0 +1,34 @@ +%-------------------------------cut here---------------------------------- +% milstd.tex +% +% Special characters for logic diagrams (as in MIL-STD 806) +% +\newfont{\milstd}{milstd} +% +\def\BusWidth{{\milstd\char0}} % '/' for bus width notation +\def\ANDr{{\milstd\char1}} % AND gate facing right +\def\ANDd{{\milstd\char2}} % down +\def\ANDl{{\milstd\char3}} % left +\def\ANDu{{\milstd\char4}} % up +\def\NANDr{{\milstd\char5}} % NAND gate facing right +\def\NANDd{{\milstd\char6}} +\def\NANDl{{\milstd\char7}} +\def\NANDu{{\milstd\char8}} +\def\ORr{{\milstd\char9}} % OR gate facing right +\def\ORd{{\milstd\char10}} +\def\ORl{{\milstd\char11}} +\def\ORu{{\milstd\char12}} +\def\NORr{{\milstd\char13}} % NOR gate facing right +\def\NORd{{\milstd\char14}} +\def\NORl{{\milstd\char15}} +\def\NORu{{\milstd\char16}} +\def\BUFr{{\milstd\char17}} % Buffer facing right +\def\BUFd{{\milstd\char18}} +\def\BUFl{{\milstd\char19}} +\def\BUFu{{\milstd\char20}} +\def\INVr{{\milstd\char21}} % Inverter facing right +\def\INVd{{\milstd\char22}} +\def\INVl{{\milstd\char23}} +\def\INVu{{\milstd\char24}} + + \ No newline at end of file -- cgit v1.2.3