sistem_robotik/SOURCE/pgfmanual-en-macros.tex

560 lines
16 KiB
TeX
Raw Normal View History

2024-04-04 22:49:22 +07:00
% This is file comes from the documentation of the PGF package by Till Tantau.
% I have only commented out some code that is unnecessary for my purpose here (I just want to use the
% codeexample environment) I hope that I do not break PGF license by releasing the file like this. William Blum
% Copyright 2006 by Till Tantau
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Free Documentation License.
%
% See the file doc/generic/pgf/licenses/LICENSE for more details.
% $Header: /cvsroot/pgf/pgf/doc/generic/pgf/macros/pgfmanual-en-macros.tex,v 1.8 2006/10/11 15:00:27 tantau Exp $
\providecommand\href[2]{\texttt{#1}}
\colorlet{examplefill}{yellow!80!black}
\definecolor{graphicbackground}{rgb}{0.96,0.96,0.8}
\definecolor{codebackground}{rgb}{0.8,0.8,1}
\newenvironment{pgfmanualentry}{\list{}{\leftmargin=2em\itemindent-\leftmargin\def\makelabel##1{\hss##1}}}{\endlist}
\newcommand\pgfmanualentryheadline[1]{\itemsep=0pt\parskip=0pt\item\strut#1\par\topsep=0pt}
\newcommand\pgfmanualbody{\parskip3pt}
\newenvironment{pgflayout}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{\texttt{\string\pgfpagesuselayout\char`\{\declare{#1}\char`\}}\oarg{options}}
\index{#1@\protect\texttt{#1} layout}%
\index{Page layouts!#1@\protect\texttt{#1}}%
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{command}[1]{
\begin{pgfmanualentry}
\extractcommand#1\@@
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\def\extractcommand#1#2\@@{%
\pgfmanualentryheadline{\declare{\texttt{\string#1}}#2}%
\removeats{#1}%
\index{\strippedat @\protect\myprintocmmand{\strippedat}}}
\newenvironment{environment}[1]{
\begin{pgfmanualentry}
\extractenvironement#1\@@
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\def\extractenvironement#1#2\@@{%
\pgfmanualentryheadline{{\ttfamily\char`\\begin\char`\{\declare{#1}\char`\}}#2}%
\pgfmanualentryheadline{{\ttfamily\ \ }\meta{environment contents}}%
\pgfmanualentryheadline{{\ttfamily\char`\\end\char`\{\declare{#1}\char`\}}}%
\index{#1@\protect\texttt{#1} environment}%
\index{Environments!#1@\protect\texttt{#1}}}
\newenvironment{plainenvironment}[1]{
\begin{pgfmanualentry}
\extractplainenvironement#1\@@
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\def\extractplainenvironement#1#2\@@{%
\pgfmanualentryheadline{{\ttfamily\declare{\char`\\#1}}#2}%
\pgfmanualentryheadline{{\ttfamily\ \ }\meta{environment contents}}%
\pgfmanualentryheadline{{\ttfamily\declare{\char`\\end#1}}}%
\index{#1@\protect\texttt{#1} environment}%
\index{Environments!#1@\protect\texttt{#1}}}
\newenvironment{contextenvironment}[1]{
\begin{pgfmanualentry}
\extractcontextenvironement#1\@@
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\def\extractcontextenvironement#1#2\@@{%
\pgfmanualentryheadline{{\ttfamily\declare{\char`\\start#1}}#2}%
\pgfmanualentryheadline{{\ttfamily\ \ }\meta{environment contents}}%
\pgfmanualentryheadline{{\ttfamily\declare{\char`\\stop#1}}}%
\index{#1@\protect\texttt{#1} environment}%
\index{Environments!#1@\protect\texttt{#1}}}
\newenvironment{shape}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{Shape {\ttfamily\declare{#1}}}%
\index{#1@\protect\texttt{#1} shape}%
\index{Shapes!#1@\protect\texttt{#1}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{predefinednode}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{Predefined node {\ttfamily\declare{#1}}}%
\index{#1@\protect\texttt{#1} node}%
\index{Predefined node!#1@\protect\texttt{#1}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{coordinatesystem}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{Coordinate system {\ttfamily\declare{#1}}}%
\index{#1@\protect\texttt{#1} coordinate system}%
\index{Coordinate systems!#1@\protect\texttt{#1}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{snake}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{Snake {\ttfamily\declare{#1}}}%
\index{#1@\protect\texttt{#1} snake}%
\index{Snakes!#1@\protect\texttt{#1}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\def\pgfmanualbar{\char`\|}
\makeatletter
\newenvironment{pathoperation}[3][]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{\textcolor{gray}{{\ttfamily\char`\\path}\
\ \dots}
\declare{\texttt{#2}}#3\ \textcolor{gray}{\dots\texttt{;}}}%
\def\pgfmanualtest{#1}%
\ifx\pgfmanualtest\@empty%
\index{#2@\protect\texttt{#2} path operation}%
\index{Path operations!#2@\protect\texttt{#2}}%
\fi%
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\makeatother
\def\extractcommand#1#2\@@{%
\pgfmanualentryheadline{\declare{\texttt{\string#1}}#2}%
\removeats{#1}%
\index{\strippedat @\protect\myprintocmmand{\strippedat}}}
\newenvironment{package}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{{\ttfamily\char`\\usepackage\char`\{\declare{#1}\char`\}\space\space \char`\%\space\space \LaTeX}}
\index{#1@\protect\texttt{#1} package}%
\index{Packages and files!#1@\protect\texttt{#1}}%
\pgfmanualentryheadline{{\ttfamily\char`\\input \declare{#1}.tex\space\space\space \char`\%\space\space plain \TeX}}
\pgfmanualentryheadline{{\ttfamily\char`\\usemodule[\declare{#1}]\space\space \char`\%\space\space Con\TeX t}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{pgflibrary}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{{\ttfamily\char`\\usepgflibrary\char`\{\declare{#1}\char`\}\space\space\space
\char`\%\space\space \LaTeX\space and plain \TeX\space and pure pgf}}
\index{#1@\protect\texttt{#1} library}%
\index{Libraries!#1@\protect\texttt{#1}}%
\pgfmanualentryheadline{{\ttfamily\char`\\usepgflibrary[\declare{#1}]\space\space \char`\%\space\space Con\TeX t\space and pure pgf}}
\pgfmanualentryheadline{{\ttfamily\char`\\usetikzlibrary\char`\{\declare{#1}\char`\}\space\space
\char`\%\space\space \LaTeX\space and plain \TeX\space when using \tikzname}}
\pgfmanualentryheadline{{\ttfamily\char`\\usetikzlibrary[\declare{#1}]\space
\char`\%\space\space Con\TeX t\space when using \tikzname}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{tikzlibrary}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{{\ttfamily\char`\\usetikzlibrary\char`\{\declare{#1}\char`\}\space\space \char`\%\space\space \LaTeX\space and plain \TeX}}
\index{#1@\protect\texttt{#1} library}%
\index{Libraries!#1@\protect\texttt{#1}}%
\pgfmanualentryheadline{{\ttfamily\char`\\usetikzlibrary[\declare{#1}]\space \char`\%\space\space Con\TeX t}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{filedescription}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{File {\ttfamily\declare{#1}}}%
\index{#1@\protect\texttt{#1} file}%
\index{Packages and files!#1@\protect\texttt{#1}}%
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{packageoption}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{{\ttfamily\char`\\usepackage[\declare{#1}]\char`\{pgf\char`\}}}
\index{#1@\protect\texttt{#1} package option}%
\index{Package options for \textsc{pgf}!#1@\protect\texttt{#1}}%
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newcommand\opt[1]{{\color{black!50!green}#1}}
\newcommand\ooarg[1]{{\ttfamily[}\meta{#1}{\ttfamily]}}
\def\opt{\afterassignment\pgfmanualopt\let\next=}
\def\pgfmanualopt{\ifx\next\bgroup\bgroup\color{black!50!green}\else{\color{black!50!green}\next}\fi}
\def\beamer{\textsc{beamer}}
\def\pdf{\textsc{pdf}}
\def\pgfname{\textsc{pgf}}
\def\tikzname{Ti\emph{k}Z}
\def\pstricks{\textsc{pstricks}}
\def\prosper{\textsc{prosper}}
\def\seminar{\textsc{seminar}}
\def\texpower{\textsc{texpower}}
\def\foils{\textsc{foils}}
{
\makeatletter
\global\let\myempty=\@empty
\global\let\mygobble=\@gobble
\catcode`\@=12
\gdef\getridofats#1@#2\relax{%
\def\getridtest{#2}%
\ifx\getridtest\myempty%
\expandafter\def\expandafter\strippedat\expandafter{\strippedat#1}
\else%
\expandafter\def\expandafter\strippedat\expandafter{\strippedat#1\protect\printanat}
\getridofats#2\relax%
\fi%
}
\gdef\removeats#1{%
\let\strippedat\myempty%
\edef\strippedtext{\stripcommand#1}%
\expandafter\getridofats\strippedtext @\relax%
}
\gdef\stripcommand#1{\expandafter\mygobble\string#1}
}
\def\printanat{\char`\@}
\def\declare{\afterassignment\pgfmanualdeclare\let\next=}
\def\pgfmanualdeclare{\ifx\next\bgroup\bgroup\color{red!75!black}\else{\color{red!75!black}\next}\fi}
\let\textoken=\command
\let\endtextoken=\endcommand
\def\myprintocmmand#1{\texttt{\char`\\#1}}
\def\example{\par\smallskip\noindent\textit{Example: }}
\def\themeauthor{\par\smallskip\noindent\textit{Theme author: }}
\def\itemoption#1{\item \declare{\texttt{#1}}%
\indexoption{#1}%
}
\def\indexoption#1{%
\index{#1@\protect\texttt{#1} option}%
\index{Graphic options!#1@\protect\texttt{#1}}%
}
\def\itemstyle#1{\item \texttt{style=}\declare{\texttt{#1}}%
\index{#1@\protect\texttt{#1} style}%
\index{Styles!#1@\protect\texttt{#1}}%
}
\def\class#1{\list{}{\leftmargin=2em\itemindent-\leftmargin\def\makelabel##1{\hss##1}}%
\extractclass#1@\par\topsep=0pt}
\def\endclass{\endlist}
\def\extractclass#1#2@{%
\item{{{\ttfamily\char`\\documentclass}#2{\ttfamily\char`\{\declare{#1}\char`\}}}}%
\index{#1@\protect\texttt{#1} class}%
\index{Classes!#1@\protect\texttt{#1}}}
\def\partname{Part}
\makeatletter
%\def\index@prologue{\section*{Index}\addcontentsline{toc}{section}{Index}
% This index only contains automatically generated entries. A good
% index should also contain carefully selected keywords. This index is
% not a good index.
% \bigskip
%}
%\c@IndexColumns=2
% \def\theindex{\@restonecoltrue
% \columnseprule \z@ \columnsep 35\p@
% \twocolumn[\index@prologue]%
% \parindent -30pt
% \columnsep 15pt
% \parskip 0pt plus 1pt
% \leftskip 30pt
% \rightskip 0pt plus 2cm
% \small
% \def\@idxitem{\par}%
% \let\item\@idxitem \ignorespaces}
% \def\endtheindex{\onecolumn}
%\def\noindexing{\let\index=\@gobble}
%\newcommand\patternindex[1]{
% \index{#1@\protect\texttt{#1} pattern}%
% \index{Patterns!#1@\protect\texttt{#1}}
% \texttt{#1}&
% \begin{tikzpicture}
% \path[draw=black!50,very thin,pattern=#1,rounded corners]
% (0pt,0pt) rectangle (1cm,1.5em);
% \end{tikzpicture}
%}
%
%
%\newcommand\symarrow[1]{
% \index{#1@\protect\texttt{#1} arrow tip}%
% \index{Arrow tips!#1@\protect\texttt{#1}}
% \texttt{#1}& yields thick
% \begin{tikzpicture}[arrows={#1-#1},thick,baseline]
% \useasboundingbox (0pt,-0.5ex) rectangle (1cm,2ex);
% \draw (0pt,.5ex) -- (1cm,.5ex);
% \end{tikzpicture} and thin
% \begin{tikzpicture}[arrows={#1-#1},thin,baseline]
% \useasboundingbox (0pt,-0.5ex) rectangle (1cm,2ex);
% \draw (0pt,.5ex) -- (1cm,.5ex);
% \end{tikzpicture}
%}
%
%\newcommand\sarrow[2]{
% \index{#1@\protect\texttt{#1} arrow tip}%
% \index{Arrow tips!#1@\protect\texttt{#1}}
% \index{#2@\protect\texttt{#2} arrow tip}%
% \index{Arrow tips!#2@\protect\texttt{#2}}
% \texttt{#1-#2}& yields thick
% \begin{tikzpicture}[arrows={#1-#2},thick,baseline]
% \useasboundingbox (0pt,-0.5ex) rectangle (1cm,2ex);
% \draw (0pt,.5ex) -- (1cm,.5ex);
% \end{tikzpicture} and thin
% \begin{tikzpicture}[arrows={#1-#2},thin,baseline]
% \useasboundingbox (0pt,-0.5ex) rectangle (1cm,2ex);
% \draw (0pt,.5ex) -- (1cm,.5ex);
% \end{tikzpicture}
%}
%
%\newcommand\carrow[1]{
% \index{#1@\protect\texttt{#1} arrow tip}%
% \index{Arrow tips!#1@\protect\texttt{#1}}
% \texttt{#1}& yields for line width 1ex
% \begin{tikzpicture}[arrows={#1-#1},line width=1ex,baseline]
% \useasboundingbox (0pt,-0.5ex) rectangle (1.5cm,2ex);
% \draw (0pt,.5ex) -- (1.5cm,.5ex);
% \end{tikzpicture}
%}
%\def\myvbar{\char`\|}
%\newcommand\plotmarkentry[1]{%
% \index{#1@\protect\texttt{#1} plot mark}%
% \index{Plot marks!#1@\protect\texttt{#1}}
% \texttt{\char`\\pgfuseplotmark\char`\{\declare{#1}\char`\}} &
% \tikz\draw[color=black!25] plot[mark=#1,mark options={fill=examplefill,draw=black}] coordinates{(0,0) (.5,0.2) (1,0) (1.5,0.2)};\\
%}
%\newcommand\plotmarkentrytikz[1]{%
% \index{#1@\protect\texttt{#1} plot mark}%
% \index{Plot marks!#1@\protect\texttt{#1}}
% \texttt{mark=\declare{#1}} & \tikz\draw[color=black!25]
% plot[mark=#1,mark options={fill=examplefill,draw=black}]
% coordinates {(0,0) (.5,0.2) (1,0) (1.5,0.2)};\\
%}
%
\ifx\scantokens\@undefined
\PackageError{pgfmanual-macros}{You need to use extended latex
(elatex) or (pdfelatex) to process this document}{}
\fi
\begingroup
\catcode`|=0
\catcode`[= 1
\catcode`]=2
\catcode`\{=12
\catcode `\}=12
\catcode`\\=12 |gdef|find@example#1\end{codeexample}[|endofcodeexample[#1]]
|endgroup
\begingroup
\catcode`\^=7
\catcode`\^^M=13
\catcode`\ =13%
\gdef\returntospace{\catcode`\ =13\def {\space}\catcode`\^^M=13\def^^M{}}%
\endgroup
\begingroup
\catcode`\%=13
\catcode`\^^M=13
\gdef\commenthandler{\catcode`\%=13\def%{\@gobble@till@return}}
\gdef\@gobble@till@return#1^^M{}
\gdef\typesetcomment{\catcode`\%=13\def%{\@typeset@till@return}}
\gdef\@typeset@till@return#1^^M{{\def%{\char`\%}\textsl{\char`\%#1}}\par}
\endgroup
\define@key{codeexample}{width}{\setlength\codeexamplewidth{#1}}
\define@key{codeexample}{graphic}{\colorlet{graphicbackground}{#1}}
\define@key{codeexample}{code}{\colorlet{codebackground}{#1}}
\define@key{codeexample}{execute code}{\csname code@execute#1\endcsname}
\define@key{codeexample}{code only}[]{\code@executefalse}
\define@key{codeexample}{pre}{\def\code@pre{#1}}
\define@key{codeexample}{post}{\def\code@post{#1}}
\def\code@pre{}
\def\code@post{}
\newdimen\codeexamplewidth
\newif\ifcode@execute
\newbox\codeexamplebox
\def\codeexample[#1]{%
\code@executetrue
\setlength\codeexamplewidth{4cm+7pt}
\setkeys{codeexample}{#1}%
\parindent0pt
\begingroup%
\par%
\medskip%
\let\do\@makeother%
\dospecials%
\obeylines%
\@vobeyspaces%
\catcode`\%=13%
\catcode`\^^M=13%
\find@example}
\def\endofcodeexample#1{%
\endgroup%
\ifcode@execute%
\setbox\codeexamplebox=\hbox{%
{%
{%
\returntospace%
\commenthandler%
\xdef\code@temp{#1}% removes returns and comments
}%
\colorbox{graphicbackground}{\color{black}\ignorespaces%
\code@pre\expandafter\scantokens\expandafter{\code@temp\ignorespaces}\code@post\ignorespaces}%
}%
}%
\ifdim\wd\codeexamplebox>\codeexamplewidth%
\def\code@start{\par}%
\def\code@flushstart{}\def\code@flushend{}%
\def\code@mid{\parskip2pt\par\noindent}%
\def\code@width{\linewidth-6pt}%
\def\code@end{}%
\else%
\def\code@start{%
\linewidth=\textwidth%
\parshape \@ne 0pt \linewidth
\leavevmode%
\hbox\bgroup}%
\def\code@flushstart{\hfill}%
\def\code@flushend{\hbox{}}%
\def\code@mid{\hskip6pt}%
\def\code@width{\linewidth-12pt-\codeexamplewidth}%
\def\code@end{\egroup}%
\fi%
\code@start%
\noindent%
\begin{minipage}[t]{\codeexamplewidth}\raggedright
\hrule width0pt%
\footnotesize\vskip-1em%
\code@flushstart\box\codeexamplebox\code@flushend%
\vskip-1ex
\leavevmode%
\end{minipage}%
\else%
\def\code@mid{\par}
\def\code@width{\linewidth-6pt}
\def\code@end{}
\fi%
\code@mid%
\colorbox{codebackground}{%
\begin{minipage}[t]{\code@width}%
{%
\let\do\@makeother
\dospecials
\frenchspacing\@vobeyspaces
\normalfont\ttfamily\footnotesize
\typesetcomment%
\@tempswafalse
\def\par{%
\if@tempswa
\leavevmode \null \@@par\penalty\interlinepenalty
\else
\@tempswatrue
\ifhmode\@@par\penalty\interlinepenalty\fi
\fi}%
\obeylines
\everypar \expandafter{\the\everypar \unpenalty}%
#1}
\end{minipage}}%
\code@end%
\par%
\medskip
\end{codeexample}
}
\def\endcodeexample{}
\makeatother
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "beameruserguide"
%%% End: