From 1789139f0046696780dcc13e576905d220961f2d Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 11 Jan 2006 23:52:25 +0000 Subject: trunk/Master/texmf-dist/source/latex/dottex git-svn-id: svn://tug.org/texlive/trunk@229 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/dottex/dottex.dtx | 297 +++++++++++++++++++++++ Master/texmf-dist/source/latex/dottex/dottex.ins | 95 ++++++++ 2 files changed, 392 insertions(+) create mode 100644 Master/texmf-dist/source/latex/dottex/dottex.dtx create mode 100644 Master/texmf-dist/source/latex/dottex/dottex.ins (limited to 'Master/texmf-dist/source/latex/dottex') diff --git a/Master/texmf-dist/source/latex/dottex/dottex.dtx b/Master/texmf-dist/source/latex/dottex/dottex.dtx new file mode 100644 index 00000000000..5d41805b792 --- /dev/null +++ b/Master/texmf-dist/source/latex/dottex/dottex.dtx @@ -0,0 +1,297 @@ +% \iffalse meta-comment +% +% Copyright (c) 2005, Lars Kotthoff +% +% Large portions copied from pdftex, +% Copyright (c) 2001-3, Radhakrishnan CV +% Rajagopal CV +% http://www.river-valley.com +% +% River Valley Technologies, Floor III, SJP Buildings, Cotton Hills +% Trivandrum, India 695014 +% +% Tel: +91 471 233 7501 +% +% Antoine Chambert-Loir +% +% http://www.math.polytechnique.fr/~chambert +% +% Ecole polytechnique, Palaiseau Cedex, France +% +% This program is free software; you can redistribute it and/or +% modify it under the terms of the GNU General Public License +% as published by the Free Software Foundation; either version 2 +% of the License, or (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program (gpl.txt); if not, write to the Free +% Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +% MA 02111-1307, USA. +% +% \fi +% +% \iffalse +%<*driver> +\ProvidesFile{dottex.dtx} +% +% \NeedsTeXFormat{LaTeX2e}[1999/12/01] +% \ProvidesPackage{dottex} +%<*package> + [2005/08/13 v0.2 dot/neato graphs in LaTeX] +\RequirePackage{graphicx,moreverb} +% +% +%<*driver> +\documentclass{ltxdoc} +\usepackage{dottex} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} + \DocInput{dottex.dtx} + \PrintChanges + \PrintIndex +\end{document} +% +% \fi +% +% \CheckSum{217} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% +% \changes{v0.1}{2005/08/06}{Initial version} +% \changes{v0.2}{2005/08/13}{New way to set graph width, neatopic environment} +% +% \GetFileInfo{dottex.dtx} +% +% \DoNotIndex{\the,\year,\month,\day,\time} +% +% \title{The \textsf{dottex} package\thanks{This document +% corresponds to \textsf{dottex}~\fileversion, dated \filedate.}} +% \author{Lars Kotthoff\\ \texttt{metalhead@metalhead.ws}} +% +% \maketitle +% +% \section{Introduction} +% +% This package allows you to include dot and neato graphs in your \LaTeX{} documents. +% +% The dot/neato code is extracted from the document and written to +% \texttt{.dot}/\texttt{.neato} +% files. Then, if shell escape is used, the graph files are automatically +% processed and converted to PostScript files, which will then be included. If +% shell escape isn't used, the user will have to manually convert the +% files. +% +% Shell escape is available in the web2c \TeX{} compiler, it allows the execution +% of shell code during the compilation of a \TeX{} document. It's disabled by +% default, you'll have to edit your configuration files or give the +% \texttt{-shell-escape} option to \texttt{latex}. +% A check is performed whether shell escape really works, so you might get +% warnings that the \texttt{.dot}/\texttt{.neato} files need to be converted manually although +% you enabled shell escape. +% +% \section{Requirements} +% +% To use dottex, you'll need the \texttt{graphicx} and \texttt{moreverb} +% packages, and of course, dot. +% +% \section{Usage} +% +% To load the package, simply \verb=\usepackage{dottex}= in your document +% preamble. Options that can be passed to the package are +% \begin{description} +% \item[\oarg{shell}] Use shell escape to automatically generate the graphs +% from the dot source files. This is the default. +% \item[\oarg{noshell}] Don't use shell escape, graphs must be generated +% manually. +% \item[\oarg{miktex}] We're using mikTeX. +% \end{description} +% +% The following environments can be used to include graphs: +% +% \DescribeEnv{dotpic} +% Within this environment, you can specify arbitrary dot code, for example\\ +% \texttt{a -> b;\\b -> a;}.\\ +% The \texttt{digraph} preamble and the surrounding braces are inserted +% automatically. +% +% \DescribeEnv{neatopic} +% Within this environment, you can specify arbitrary neato code, for example\\ +% \texttt{a -- b;\\b -- a;}.\\ +% The \texttt{graph} preamble and the surrounding braces are inserted +% automatically. +% +% The width of the graph in your document can be controlled via the +% \verb=\dotwidth= parameter, which is set to \verb=\textwidth= by default. +% +% \StopEventually{} +% +% \section{Implementation} +% +% \subsection{Initialization} +% \begin{macrocode} +\newif\ifShellEscape +\newif\ifmiktex \miktexfalse + +\DeclareOption{shell}{\ShellEscapetrue} +\DeclareOption{noshell}{\ShellEscapefalse} +\DeclareOption{miktex}{\global\miktextrue} + +\ExecuteOptions{shell} +\ProcessOptions\relax +%% test if shell escape really works +\ifShellEscape + \def\tmpfile{/tmp/w18-test-\the\year\the\month\the\day\the\time} + \ifmiktex% + \immediate\write18{rem >"\tmpfile"} + \else + \immediate\write18{touch \tmpfile} + \fi + \ifmiktex + \IfFileExists{\tmpfile.}{\ShellEscapetrue}{\ShellEscapefalse} + \else + \IfFileExists{\tmpfile}{\ShellEscapetrue}{\ShellEscapefalse} + \fi +\fi + +\ifShellEscape + \PackageInfo{dottex} + {Automatically converting dot/neato files to ps} +\else + \PackageWarningNoLine{dottex} + {Shell escape not enabled.\MessageBreak + You'll need to convert the graphs yourself} +\fi +\newcounter{fignum} +\gdef\dotwidth{\textwidth} +% \end{macrocode} +% +% \subsection{\texttt{.dot}/\texttt{.neato} write out} +% \begin{macrocode} +\def\figname{\jobname-fig\thefignum} + +\def\dotverbatimwrite#1{% + \def\BeforeStream + {\message{Opening Dot stream=\figname.dot}% + \immediate\write\verbatim@out{\string digraph\space G\space {/*}*/} + } + \@bsphack + \immediate\openout \verbatim@out #1 + \BeforeStream% + \let\do\@makeother\dospecials + \catcode`\^^M\active + \def\verbatim@processline{% + \immediate\write\verbatim@out + {\the\verbatim@line}}% + \verbatim@start} +\def\enddotverbatimwrite{% + \immediate\write\verbatim@out{/*{*/}} + \immediate\closeout\verbatim@out + \@esphack} + +\def\neatoverbatimwrite#1{% + \def\BeforeStream + {\message{Opening Neato stream=\figname.neato}% + \immediate\write\verbatim@out{\string graph\space G\space {/*}*/} + } + \@bsphack + \immediate\openout \verbatim@out #1 + \BeforeStream% + \let\do\@makeother\dospecials + \catcode`\^^M\active + \def\verbatim@processline{% + \immediate\write\verbatim@out + {\the\verbatim@line}}% + \verbatim@start} +\def\endneatoverbatimwrite{% + \immediate\write\verbatim@out{/*{*/}} + \immediate\closeout\verbatim@out + \@esphack} +% \end{macrocode} +% +% The spurious braces (commented out in the \texttt{.dot}/\texttt{.neato} file) are necessary +% because \LaTeX{} gets confused with only one brace. +% +% +% \subsection{Environment definition} +% \begin{macrocode} +\newenvironment{dotpic}{\stepcounter{fignum}% + \xdef\dotCutFile{\figname.dot} + \dotverbatimwrite{\dotCutFile}} + {\enddotverbatimwrite% + \dotgraphicsinclude} + +\newenvironment{neatopic}{\stepcounter{fignum}% + \xdef\neatoCutFile{\figname.neato} + \neatoverbatimwrite{\neatoCutFile}} + {\endneatoverbatimwrite% + \neatographicsinclude} +% \end{macrocode} +% +% \subsection{\texttt{.dot}/\texttt{.neato} file processing} +% \begin{macrocode} +\long\gdef\dotgraphicsprocess{% + \ifShellEscape + \IfFileExists{\figname.dot}{% + \immediate\write18{dot -Tps -o \figname.ps \figname.dot} + \IfFileExists{\figname.ps}{% + \PackageInfo{dottex} + {\figname.dot converted}} + {\PackageWarningNoLine{dottex} + {Conversion of \figname.dot failed.}}}{} + \fi} + +\long\gdef\neatographicsprocess{% + \ifShellEscape + \IfFileExists{\figname.neato}{% + \immediate\write18{neato -Tps -o \figname.ps \figname.neato} + \IfFileExists{\figname.ps}{% + \PackageInfo{dottex} + {\figname.neato converted}} + {\PackageWarningNoLine{dottex} + {Conversion of \figname.neato failed.}}}{} + \fi} +% \end{macrocode} +% +% \subsection{Graph inclusion} +% \begin{macrocode} +\long\gdef\dotgraphicsinclude{\dotgraphicsprocess% + \IfFileExists{\figname.ps}{% + \includegraphics[width=\dotwidth]{\figname} + } + {\PackageWarningNoLine{dottex} + {Please convert \figname.dot manually}} +} + +\long\gdef\neatographicsinclude{\neatographicsprocess% + \IfFileExists{\figname.ps}{% + \includegraphics[width=\dotwidth]{\figname} + } + {\PackageWarningNoLine{dottex} + {Please convert \figname.neato manually}} +} +% \end{macrocode} +% +% \Finale +\endinput diff --git a/Master/texmf-dist/source/latex/dottex/dottex.ins b/Master/texmf-dist/source/latex/dottex/dottex.ins new file mode 100644 index 00000000000..9d5380cbbed --- /dev/null +++ b/Master/texmf-dist/source/latex/dottex/dottex.ins @@ -0,0 +1,95 @@ +%% +%% Copyright (c) 2005, Lars Kotthoff +%% +%% Large portions copied from pdftex, +%% Copyright (c) 2001-3, Radhakrishnan CV +%% Rajagopal CV +%% http://www.river-valley.com +%% +%% River Valley Technologies, Floor III, SJP Buildings, Cotton Hills +%% Trivandrum, India 695014 +%% +%% Tel: +91 471 233 7501 +%% +%% Antoine Chambert-Loir +%% +%% http://www.math.polytechnique.fr/~chambert +%% +%% Ecole polytechnique, Palaiseau Cedex, France +%% +%% This program is free software; you can redistribute it and/or +%% modify it under the terms of the GNU General Public License +%% as published by the Free Software Foundation; either version 2 +%% of the License, or (at your option) any later version. +%% +%% This program is distributed in the hope that it will be useful, +%% but WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +%% GNU General Public License for more details. +%% +%% You should have received a copy of the GNU General Public License +%% along with this program (gpl.txt); if not, write to the Free +%% Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +%% MA 02111-1307, USA. +%% + +\input docstrip.tex +\keepsilent + +\usedir{tex/latex/dottex} + +\preamble + +Copyright (c) 2005, Lars Kotthoff + +Large portions copied from pdftex, +Copyright (c) 2001-3, Radhakrishnan CV + Rajagopal CV + http://www.river-valley.com + +River Valley Technologies, Floor III, SJP Buildings, Cotton Hills +Trivandrum, India 695014 + +Tel: +91 471 233 7501 + + Antoine Chambert-Loir + + http://www.math.polytechnique.fr/~chambert + +Ecole polytechnique, Palaiseau Cedex, France + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program (gpl.txt); if not, write to the Free +Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +MA 02111-1307, USA. + +\endpreamble + +\generate{\file{dottex.sty}{\from{dottex.dtx}{package}}} + +\obeyspaces +\Msg{*************************************************************} +\Msg{* *} +\Msg{* To finish the installation you have to move the following *} +\Msg{* file into a directory searched by TeX: *} +\Msg{* *} +\Msg{* dottex.sty *} +\Msg{* *} +\Msg{* To produce the documentation run the file dottex.dtx *} +\Msg{* through LaTeX. *} +\Msg{* *} +\Msg{* Happy TeXing! *} +\Msg{* *} +\Msg{*************************************************************} + +\endbatchfile -- cgit v1.2.3