summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/sfg
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-10-25 23:13:33 +0000
committerKarl Berry <karl@freefriends.org>2010-10-25 23:13:33 +0000
commit5c92f056161e5b34e439171ee25cffafd6d5514c (patch)
tree6ab368dfa8ab264ed74acc1a178619589be7979b /Master/texmf-dist/doc/latex/sfg
parentfdd8f2f32e7f626cd1f5c260a1d2edddc8e4a4c5 (diff)
sfg doc (25oct10)
git-svn-id: svn://tug.org/texlive/trunk@20209 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/sfg')
-rw-r--r--Master/texmf-dist/doc/latex/sfg/sfg-doc.pdfbin0 -> 384147 bytes
-rw-r--r--Master/texmf-dist/doc/latex/sfg/sfg-doc.tex285
2 files changed, 285 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/sfg/sfg-doc.pdf b/Master/texmf-dist/doc/latex/sfg/sfg-doc.pdf
new file mode 100644
index 00000000000..58e72a7e8b5
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/sfg/sfg-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/sfg/sfg-doc.tex b/Master/texmf-dist/doc/latex/sfg/sfg-doc.tex
new file mode 100644
index 00000000000..e126cfa1291
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/sfg/sfg-doc.tex
@@ -0,0 +1,285 @@
+\documentclass[pagesize=auto, parskip=half]{scrartcl}
+
+\usepackage{fixltx2e}
+\usepackage{etex}
+\usepackage{lmodern}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{amstext}
+\usepackage[utf8]{inputenc}
+\usepackage[svgnames]{xcolor}
+\usepackage{listings}
+\usepackage{microtype}
+\usepackage{hyperref}
+
+\newcommand*{\mail}[1]{\href{mailto:#1}{\texttt{#1}}}
+\newcommand*{\pkg}[1]{\textsf{#1}}
+\newcommand*{\cs}[1]{\texttt{\textbackslash#1}}
+\makeatletter
+\newcommand*{\cmd}[1]{\cs{\expandafter\@gobble\string#1}}
+\makeatother
+\newcommand*{\meta}[1]{\text{\textlangle\textsl{#1}\textrangle}}
+\newcommand*{\marg}[1]{\texttt{\{}\meta{#1}\texttt{\}}}
+
+\addtokomafont{title}{\rmfamily}
+
+\lstset{%
+ language=[LaTeX]TeX,%
+ columns=flexible,%
+ upquote=true,%
+ numbers=left,%
+ basicstyle=\ttfamily,%
+ keywordstyle=\color{Navy},%
+ commentstyle=\color{DimGray},%
+ stringstyle=\color{SeaGreen},%
+ numberstyle=\scriptsize\color{SlateGray}%
+}
+
+\title{The \pkg{sfg} package\thanks{This manual corresponds to \pkg{sfg}~v0.91, dated~22.\,08.\,2007.}}
+\author{Hanspeter Schmid\thanks{\mail{schmid@isi.ee.ethz.ch}, \url{http://www.isi.ee.ethz.ch/\~schmid/}}\and Herbert Voß}
+\date{22.\,08.\,2007}
+
+
+\begin{document}
+
+\maketitle
+
+
+\section{Documentation}
+
+This style file defines some commands to draw signal flow graphs using
+\LaTeXe\@. Signal flow graphs (\textsc{sfg}) are used by electrical and
+electronics engineers and graph theorists. If you haven't heard of
+\textsc{sfg}s before, then \pkg{sfg.sty} is probably not useful for you.
+
+If you really want to know what a signal flow graph is, you might read
+one of the references given below.
+
+The package sfg requires the packages `\pkg{pstricks}' and `\pkg{fp}'. It
+therefore requires \LaTeXe\ and a reasonably fast machine.
+
+To draw a signal flow graph, you should proceed as follows:
+%
+\begin{enumerate}
+\item Insert \verb|\usepackage{pstricks,sfg}| in your \LaTeXe-file.
+\item Draw your \textsc{sfg} on graph paper\footnote{I mean the paper with a 4\,mm, 5\,mm or 1/8\,in grid on it\dots} and determine the size of the
+ picture in units (squares).
+\item Set the unitlength using \cmd{\sfgsetunit}.
+\item Set the arrowlength, node radius and label offsets using \cmd{\sfgsetsize}.
+\item In a \LaTeX\ picture environment of the size you determined above,
+ \begin{itemize}
+ \item first draw all paths using \cmd{\sfgbranch} and \cmd{\sfgcurve},
+ \item then draw all nodes using \cmd{\sfgnode} and \cmd{\sfgtermnode}.
+ \end{itemize}
+\end{enumerate}
+
+
+\section{Setting the Controlling Parameters}
+
+\begin{description}
+\item[\cmd{\sfgsetunit}\marg{length}]
+ sets \cmd{\unitlength} and the PS unit to \meta{length}, and
+ defines the default \pkg{pstricks} linewidth as 0.4\,pt. This has an
+ influence on \emph{all} ps-tricks commands that are used afterwards.
+
+\item[\cmd{\sfgsetsize}\marg{nr}\marg{al}\marg{no}\marg{ao}]
+ sets the node radius to \meta{nr} units, the
+ arrow\-length to \meta{al} units, the offset of the nodes' labels to
+ \meta{no} units and the offset of the arrows' labels to \meta{ao} units.
+ All four parameters are numbers.
+
+\item[\cmd{\sfgsetangle}\marg{an}]
+ sets the incidence angle of sfgcurves \meta{an} degrees.
+ Default value: 60 degrees.
+
+\item[\cmd{\sfgsetarrowloc}\marg{mid}]
+ sets the location of the sfgbranch's arrow. 0.5
+ means in the middle, 0.1 means 10\,\% of the branch length from
+ the first node.
+ Default value: 0.5
+
+\item[\cmd{\sfgsetlines}\marg{li\_len}\marg{lii}\marg{liii}]
+ sets the line thickness \cmd{\sfg@Li} (used
+ for all lines) to \meta{li\_len}, the thickness \cmd{\sfg@Lii} (used for
+ terminal nodes) to $\meta{lii} \times \meta{li\_len}$, and the thickness \cmd{\sfg@Liii}
+ to $\meta{liii} \times \meta{li\_len}$. It also resets the default pstricks
+ linewidth to the new \cmd{\sfg@Li}.
+
+ Default values:
+ \begin{tabular}[t]{l@{~=~}l}
+ \cmd{\sfg@Li} & 0.40\,pt \\
+ \cmd{\sfg@Lii} & $1.80 \times \cmd{\sfg@Li}$ \\
+ \cmd{\sfg@Liii} & $3 \times \cmd{\sfg@Li}$ \\
+ \end{tabular}
+\end{description}
+
+
+\section{Drawing signal flow graph (SFG) branches}
+
+\begin{description}
+\item[\cmd{\sfgbranch}\marg{dx}\marg{dy}\marg{pos}\marg{text}]
+ draws a straight \textsc{sfg} branch from $(0,0)$
+ to $(\meta{dx},\meta{dy})$. An arrow is placed in the middle of the branch,
+ and a label \meta{text} is typeset near the arrow. The parameter
+ \meta{pos} is explained below (see \cmd{\sfgnode}).
+
+ The distance of the label from the arrow's centre as well as
+ the arrow's length can be set using \cmd{\sfgsetsize}.
+
+ The location of the arrow can be changed using
+ \cmd{\sfgsetarrowloc}.
+
+\item[\cmd{\sfgcurve}\marg{dx}\marg{dy}\marg{off}\marg{pos}\marg{text}]
+ draws a curved \textsc{sfg} path from $(0,0)$
+ to $(\meta{dx},\meta{dy})$. The arrow's position is \meta{off} units left of the
+ middle of the path (\meta{off} can be negative to put the arrow
+ right of the path). The curve leaves the endpoints in an angle
+ of 60~degrees (this value can be changed using \cmd{\sfgsetangle})
+ if possible. If the arrow is too far away from the straight
+ path, the angle is increased to guarantee a ``nice'' curve,
+ and a warning message is issued.
+\end{description}
+
+
+\section{Drawing Nodes}
+
+\begin{description}
+\item[\cmd{\sfgnode}\marg{pos}\marg{text}]
+ draws a node with label \meta{text}. \meta{pos} decides
+ where the label is typeset. It is a number between~0 and~7.
+ After the command
+%
+\begin{verbatim}
+\sfgsetcompass
+\end{verbatim}
+%
+ eight macros named after compass directions can be used.
+
+ \begin{tabular}{rcl}
+ 3 & 2 & 1 \\
+ 4 & . & 0 \\
+ 5 & 6 & 7
+ \end{tabular}
+ %
+ \quad or\quad
+ %
+ \begin{tabular}{rcl}
+ \cmd{\NW} & \cmd{\N} & \cmd{\NE} \\
+ \cmd{\W} & . & \cmd{\E} \\
+ \cmd{\SW} & \cmd{\S} & \cmd{\SE}
+ \end{tabular}
+
+ The distance of the label from the node's centre as well as the
+ node's radius can be set using \cmd{\sfgsetsize}.
+
+\item[\cmd{\sfgtermnode}\marg{pos}\marg{text}]
+ draws a terminal node (black circle filled white).
+\end{description}
+
+
+\section{Example:}
+
+\begin{lstlisting}
+\documentclass[11pt,a4paper]{article}
+\usepackage{pstricks,sfg}
+\pagestyle{empty}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+\sfgsetunit{0.5cm}
+\sfgsetsize{0.12}{0.4}{0.5}{0.3}
+\sfgsetcompass
+\begin{picture}(27,4)
+ % branches related to node 2
+ \put(6,2){\sfgbranch{3}{0}\S{$\frac{1}{R_1}$}}
+ \put(9,2){\sfgbranch{3}{0}\N{\boldmath $Z_2$}}
+ \put(18,2){\sfgcurve{-9}{0}{2}\S{$\frac{1}{R_2}$}}
+ \put(24,2){\sfgcurve{-15}{0}{-2}\N{$sC_1$}}
+ % branches related to node 3
+ \put(12,2){\sfgbranch{3}{0}\N{$\frac{1}{R_2}$}}
+ \put(15,2){\sfgbranch{3}{0}\N{\boldmath $Z_3$}}
+ % input, voltage gain, output
+ \put(0,2){\sfgcurve{6}{0}{2}\N{$1$}}
+ \put(18,2){\sfgcurve{6}{0}{-2}\S{$\alpha_{\mathrm{V}}$}}
+ \put(24,2){\sfgbranch{3}{0}\S{$1$}}
+ % nodes
+ \put(0,2){\sfgtermnode\S{$V_{\mathrm{in}}$}}
+ \put(3,2){\sfgnode\S{$I_1$}}
+ \put(6,2){\sfgnode\S{$V_1$}}
+ \put(9,2){\sfgnode\S{$I_2$}}
+ \put(12,2){\sfgnode\S{$V_2$}}
+ \put(15,2){\sfgnode\S{$I_3$}}
+ \put(18,2){\sfgnode\S{$V_3$}}
+ \put(21,2){\sfgnode\S{$I_4$}}
+ \put(24,2){\sfgnode\S{$V_4$}}
+ \put(27,2){\sfgtermnode\S{$V_{\mathrm{out}}$}}
+\end{picture}
+\end{document}
+\end{lstlisting}
+
+
+\section{References}
+
+\setlength{\leftmargini}{1em}
+\addtokomafont{descriptionlabel}{\normalfont}
+
+\begin{description}
+\item[{[Chen, 1995, Chapters 7, 8 and 18]}]\leavevmode\\
+ Wai-Kai Chen. The Circuits and Filters Handbook. CRC Press,
+ Inc.,\ 1995.
+\end{description}
+%
+or have a look at the original papers by Samuel Mason:
+%
+\begin{description}
+\item[{[119]}]\leavevmode\\
+ Samuel J. Mason. Feedback theory --- some properties of signal
+ flow graphs. Proceedings of the Institute of Radio Engineers,
+ 41(9):1144--1156, September 1953.
+
+\item[{[120]}]\leavevmode\\
+ Samuel J. Mason. Feedback theory --- further properties of
+ signal flow graphs. Proceedings of the Institute of Radio
+ Engineers, 44(7):920--926, July 1956.
+\end{description}
+
+\end{document}
+
+
+
+%@(#) sfg.sty: Signal flow graphs
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is the style file sfg.sty for drawing signal flow graphs in LaTeX2e.
+%
+% Version 0.9, 1.7.1998, Hanspeter Schmid
+% Version 0.91, 22.08.2007 hv scalebox->\psscalebox
+%
+% If you find an error, or if you want me to implement some more
+% functions, want me to include more references to books on sfgs,
+% or if you just want to say `hello thank you, I find you package
+% useful', please don't hesitate and contact me:
+%
+% Hanspeter Schmid, schmid@isi.ee.ethz.ch,
+% http://www.isi.ee.ethz.ch/~schmid/
+%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% History: (Version numbers are going towards 3/pi.
+% sfg.sty is not good enough yet to be called v1.0)
+%
+% created: 26.1.96, hps, (v0)
+% modified for submission to CTAN: 1.7.98, hps, (v0.9)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Plans: - make a proper dtx-file out of this mess. I'll do this if
+% and when I find the time to do it.
+% - include an sfg branch which has snake form, e.g. \sfgsnake
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% SEE DESCRIPTION AFTER THE \endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+