mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-25 01:59:37 +02:00
189 lines
6.6 KiB
TeX
189 lines
6.6 KiB
TeX
%
|
|
% $Id$
|
|
% This file is part of the FPC documentation.
|
|
% Copyright (C) 1997, by Michael Van Canneyt
|
|
%
|
|
% The FPC documentation is free text; you can redistribute it and/or
|
|
% modify it under the terms of the GNU Library General Public License as
|
|
% published by the Free Software Foundation; either version 2 of the
|
|
% License, or (at your option) any later version.
|
|
%
|
|
% The FPC Documentation 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
|
|
% Library General Public License for more details.
|
|
%
|
|
% You should have received a copy of the GNU Library General Public
|
|
% License along with the FPC documentation; see the file COPYING.LIB. If not,
|
|
% write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
% Boston, MA 02111-1307, USA.
|
|
%
|
|
\ProvidesPackage{fpc}[1996/12/09]
|
|
\NeedsTeXFormat{LaTeX2e}
|
|
\RequirePackage{xspace}
|
|
\RequirePackage{ifthen}
|
|
\ExecuteOptions{titlepage}
|
|
% Some style elements
|
|
\parindent 0pt%
|
|
\parskip 0.35\baselineskip%
|
|
% First, all definitions for latex only.
|
|
\newcommand{\docdescription}[1]{\def\@FPCDescription{#1}}
|
|
\gdef\@FPCDescription{}%
|
|
\newcommand{\docversion}[1]{\def\@FPCVersion{#1}}
|
|
\gdef\@FPCVersion{}%
|
|
% For backwards compatibility
|
|
\newcommand{\unitdescription}[1]{\def\@FPCDescription{#1}}
|
|
\newcommand{\unitversion}[1]{\def\@FPCVersion{#1}}
|
|
\renewcommand\maketitle{\begin{titlepage}%
|
|
\let\footnotesize\small
|
|
\let\footnoterule\relax
|
|
\null\vfil
|
|
\vskip 4cm%
|
|
{\noindent\raggedright\Large\@title\\}%
|
|
\noindent \rule{\linewidth}{1.5mm}\\%
|
|
{\raggedleft\large%
|
|
\begin{tabular}[t]{r}%
|
|
\@FPCDescription \\
|
|
\@FPCVersion \\
|
|
\@date
|
|
\end{tabular}\par}%
|
|
\vskip 5cm%
|
|
{\noindent \large \textsf{\@author} \\%
|
|
\rule{\linewidth}{0.5mm}}
|
|
\@thanks
|
|
\vfil\null
|
|
\end{titlepage}%
|
|
\setcounter{footnote}{0}%
|
|
\let\thanks\relax\let\maketitle\relax
|
|
\gdef\@thanks{}\gdef\@author{}\gdef\@title{}}
|
|
% end of \maketitle
|
|
% For the \procedure and \function commands, we don't want heading numbers.
|
|
\setcounter{secnumdepth}{1}
|
|
% redefine the subsection command to leave less space,
|
|
%and to use sans serif
|
|
\renewcommand\subsection{\@startsection%
|
|
{subsection}%
|
|
{2}%
|
|
{\z@}%
|
|
{-4.25ex\@plus -1ex \@minus -.2ex}%
|
|
{1pt}%
|
|
{\normalfont\large\sffamily\bfseries}}
|
|
% Now, Let's define the \procedure and \function commands.
|
|
\newcommand{\FPClabel}[1]{%
|
|
\raggedleft\makebox[0pt][r]{\textsf{#1:}}
|
|
}
|
|
|
|
%
|
|
% FPC environments
|
|
%
|
|
% Lists
|
|
\newenvironment{FPCList}
|
|
{\begin{list}{}{%
|
|
\renewcommand{\makelabel}[1]{\FPClabel{##1}\hfil\relax}
|
|
\setlength{\labelwidth}{0pt}%
|
|
\setlength{\leftmargin}{0pt}}%
|
|
\setlength{\labelsep}{0pt}%
|
|
}
|
|
{\end{list}}
|
|
% For Tables.
|
|
\newenvironment{FPCtable}[2]{\begin{table}\caption{#2}\begin{center}\begin{tabular}{#1}}{\end{tabular}\end{center}\end{table}}
|
|
% The same, but with label in third argument (tab:#3)
|
|
\newenvironment{FPCltable}[3]{\begin{table}\caption{#2}\label{tab:#3}\begin{center}\begin{tabular}{#1}}{\end{tabular}\end{center}\end{table}}
|
|
%
|
|
% Refs
|
|
%
|
|
\newcommand{\seefl}[2]{\textsf{#1} (\pageref{fu:#2})}
|
|
\newcommand{\seepl}[2]{\textsf{#1} (\pageref{pro:#2})}
|
|
\newcommand{\seetyl}[2]{\textsf{#1} (\pageref{ty:#2})}
|
|
\newcommand{\seec}[1]{chapter \ref{ch:#1}, page \pageref{ch:#1}\xspace}
|
|
\newcommand{\sees}[1]{section \ref{se:#1}, page \pageref{se:#1}\xspace}
|
|
\newcommand{\seeo}[1]{See \ref{option:#1}\xspace}
|
|
\newcommand{\seet}[1]{table (\ref{tab:#1})\xspace}
|
|
%
|
|
% Function/procedure environments
|
|
%
|
|
\newenvironment{functionl}[2]{\subsection{#1}\index{#1}\label{fu:#2}\begin{FPCList}}{\end{FPCList}}
|
|
\newenvironment{procedurel}[2]{\subsection{#1}\index{#1}\label{pro:#2}\begin{FPCList}}{\end{FPCList}}
|
|
\newenvironment{function}[1]{\begin{functionl}{#1}{#1}}{\end{functionl}}
|
|
\newenvironment{procedure}[1]{\begin{procedurel}{#1}{#1}}{\end{procedurel}}
|
|
\newenvironment{typel}[2]{\subsection{#1}\index{#1}\label{ty:#2}\begin{FPCList}}{\end{FPCList}}
|
|
\newenvironment{type}[1]{\begin{typel}{#1}{#1}}{\end{typel}}
|
|
\newcommand{\Declaration}{\item[Declaration]\ttfamily}
|
|
\newcommand{\Description}{\item[Description]\rmfamily}
|
|
\newcommand{\Errors}{\item[Errors]\rmfamily}
|
|
\newcommand{\SeeAlso}{\item[See also]\rmfamily}
|
|
%
|
|
% Ref without labels
|
|
%
|
|
\newcommand{\seef}[1]{\seefl{#1}{#1}}
|
|
\newcommand{\seep}[1]{\seepl{#1}{#1}}
|
|
\newcommand{\seety}[1]{\seetyl{#1}{#1}}
|
|
%
|
|
% man page references don't need labels.
|
|
%
|
|
\newcommand{\seem}[2]{\texttt{#1} (#2) }
|
|
%
|
|
% for easy typesetting of variables.
|
|
%
|
|
\newcommand{\var}[1]{\texttt {#1}}
|
|
\newcommand{\file}[1]{\textsf {#1}}
|
|
%
|
|
% Useful references.
|
|
%
|
|
\newcommand{\progref}{\htmladdnormallink{Programmers' guide}{../prog/prog.html}\xspace}
|
|
\newcommand{\refref}{\htmladdnormallink{Reference guide}{../ref/ref.html}\xspace}
|
|
\newcommand{\userref}{\htmladdnormallink{Users' guide}{../user/user.html}\xspace}
|
|
\newcommand{\unitsref}{\htmladdnormallink{Unit reference}{../units/units.html}\xspace}
|
|
\newcommand{\seecrt}{\htmladdnormallink{CRT}{../crt/crt.html}\xspace}
|
|
\newcommand{\seelinux}{\htmladdnormallink{Linux}{../linux/linux.html}\xspace}
|
|
\newcommand{\seestrings}{\htmladdnormallink{strings}{../strings/strings.html}\xspace}
|
|
\newcommand{\seedos}{\htmladdnormallink{DOS}{../dos/dos.html}\xspace}
|
|
\newcommand{\seegetopts}{\htmladdnormallink{getopts}{../getopts/getopts.html}\xspace}
|
|
\newcommand{\seeobjects}{\htmladdnormallink{objects}{../objects/objects.html}\xspace}
|
|
\newcommand{\seegraph}{\htmladdnormallink{graph}{../graph/graph.html}\xspace}
|
|
\newcommand{\seeprinter}{\htmladdnormallink{printer}{../printer/printer.html}\xspace}
|
|
\newcommand{\seego}{\htmladdnormallink{GO32}{../go32/go32.html}\xspace}
|
|
%
|
|
% Commands to reference these things.
|
|
%
|
|
\newcommand{\remark}[1]{\par$\rightarrow$\textbf{#1}\par}
|
|
\newcommand{\olabel}[1]{\label{option:#1}}
|
|
%
|
|
% some OSes
|
|
%
|
|
\newcommand{\linux}{\textsc{linux}\xspace}
|
|
\newcommand{\dos} {\textsc{dos}\xspace}
|
|
\newcommand{\msdos}{\textsc{ms-dos}\xspace}
|
|
\newcommand{\ostwo}{\textsc{os/2}\xspace}
|
|
\newcommand{\windows}{\textsc{Windows}\xspace}
|
|
\newcommand{\windowsnt}{\textsc{Windows NT}\xspace}
|
|
\newcommand{\fpc}{Free Pascal\xspace}
|
|
\newcommand{\gnu}{\textsc{gnu}\xspace}
|
|
\newcommand{\atari}{\textsc{Atari}\xspace}
|
|
\newcommand{\amiga}{\textsc{Amiga}\xspace}
|
|
\newcommand{\win}{\textsc{Win32}\xspace}
|
|
\newcommand{\freebsd}{\textsc{FreeBSD}\xspace}
|
|
%
|
|
% Some versions
|
|
%
|
|
\newcommand{\fpcversion}{0.99.12}
|
|
%
|
|
% PDF support
|
|
%
|
|
\latex{%
|
|
\newif\ifpdf
|
|
\ifx\pdfoutput\undefined
|
|
\pdffalse
|
|
\else
|
|
\pdfoutput=1
|
|
\pdftrue
|
|
\fi
|
|
}
|
|
%
|
|
% For examples
|
|
%
|
|
\newcommand{\FPCexample}[1]{\latex{\lstinputlisting{\exampledir/#1.pp}}\html{\input{\exampledir/#1.tex}}}
|
|
\newcommand{\exampledir}{.}
|
|
\newcommand{\FPCexampledir}[1]{\renewcommand{\exampledir}{#1}}
|
|
%
|
|
% end of fpc.sty |