Commit 00753771 authored by Jerome Galtier's avatar Jerome Galtier
Browse files

Remove share dependencies.

* doc/manual/developer.tex, doc/README.txt, doc/HACKING.txt: Remove
references to share.
* doc/Makefile.am: Remove the share-up target. Use texi2pdf.
* doc/manual/Makefile.am: Remove the variables share_dir,
share_bin_dir, share_style_dir and share_bib_dir. Do not use the
--dvipdf flag (TikZ is used instead of Vaucanson-G so plain DVI
compilation is no more required).
* doc/manual/vaucanson-manual.tex: Convert all Vaucanson-G pictures to
TikZ ones. Use babel, hyperref, tikz instead of mybabel, myhyperref,
Vaucanon-G respectively. Do not include myacronym, texi and misc.
Include xspace. Many tweaks.
* doc/share/README, doc/share/bib/vaucanson.bib,
doc/share/bin/texi2dvi, doc/share/styles/VCpatch-pstricks-1-10.tex,
doc/share/styles/Vaucanson-G.tex, doc/share/styles/hevea.sty,
doc/share/styles/ldf/stl.sty, doc/share/styles/ldf/vaucanson.sty,
doc/share/styles/misc.hva, doc/share/styles/misc.sty,
doc/share/styles/myacronym.hva, doc/share/styles/myacronym.sty,
doc/share/styles/mybabel.hva, doc/share/styles/mybabel.sty,
doc/share/styles/mycxx.sty, doc/share/styles/myhyperref.hva,
doc/share/styles/myhyperref.sty, doc/share/styles/myifthen.hva,
doc/share/styles/myifthen.sty, doc/share/styles/myindex.hva,
doc/share/styles/myindex.sty, doc/share/styles/texi.hva,
doc/share/styles/texi.sty, doc/share/styles/vaucanson-g.sty: Remove.
parent 61be6cf6
2009-04-01 Jerome Galtier <jerome.galtier@lrde.epita.fr>
Remove share dependencies.
* doc/manual/developer.tex, doc/README.txt, doc/HACKING.txt: Remove
references to share.
* doc/Makefile.am: Remove the share-up target. Use texi2pdf.
* doc/manual/Makefile.am: Remove the variables share_dir,
share_bin_dir, share_style_dir and share_bib_dir. Do not use the
--dvipdf flag (TikZ is used instead of Vaucanson-G so plain DVI
compilation is no more required).
* doc/manual/vaucanson-manual.tex: Convert all Vaucanson-G pictures to
TikZ ones. Use babel, hyperref, tikz instead of mybabel, myhyperref,
Vaucanon-G respectively. Do not include myacronym, texi and misc.
Include xspace. Many tweaks.
* doc/share/README, doc/share/bib/vaucanson.bib,
doc/share/bin/texi2dvi, doc/share/styles/VCpatch-pstricks-1-10.tex,
doc/share/styles/Vaucanson-G.tex, doc/share/styles/hevea.sty,
doc/share/styles/ldf/stl.sty, doc/share/styles/ldf/vaucanson.sty,
doc/share/styles/misc.hva, doc/share/styles/misc.sty,
doc/share/styles/myacronym.hva, doc/share/styles/myacronym.sty,
doc/share/styles/mybabel.hva, doc/share/styles/mybabel.sty,
doc/share/styles/mycxx.sty, doc/share/styles/myhyperref.hva,
doc/share/styles/myhyperref.sty, doc/share/styles/myifthen.hva,
doc/share/styles/myifthen.sty, doc/share/styles/myindex.hva,
doc/share/styles/myindex.sty, doc/share/styles/texi.hva,
doc/share/styles/texi.sty, doc/share/styles/vaucanson-g.sty: Remove.
2009-04-01 Jerome Galtier <jerome.galtier@lrde.epita.fr>
 
Update .gitignore.
......
......@@ -97,8 +97,6 @@ Don't do these steps from memory.
- Make sure the last run of the autobuilder was successful.
- Check trac to make sure there are no important pending tickets.
- Update ``doc/share/`` with ``cd doc; make share-up``.
- Make sure ``doc/NEWS.txt`` is up-to-date.
(Mention important known bugs!)
- Make sure ``doc/README.txt`` is up-to-date.
......
......@@ -23,39 +23,6 @@ doc:
-rm -f $(srcdir)/stamp
$(MAKE) $(srcdir)/stamp
# Run "make share-up" to update the files from the share/ directory.
WGET = wget --no-check-certificate
WGETL = $(WGET) https://svn.lrde.epita.fr/svn/lrde-publis/trunk/
SHAREFILES = \
share/bib/vaucanson.bib \
share/bin/texi2dvi \
share/styles/hevea.sty \
share/styles/ldf/stl.sty \
share/styles/ldf/vaucanson.sty \
share/styles/misc.hva \
share/styles/misc.sty \
share/styles/myacronym.sty \
share/styles/mybabel.hva \
share/styles/mybabel.sty \
share/styles/mycxx.sty \
share/styles/myhyperref.hva \
share/styles/myhyperref.sty \
share/styles/myifthen.hva \
share/styles/myifthen.sty \
share/styles/myindex.hva \
share/styles/myindex.sty \
share/styles/texi.hva \
share/styles/texi.sty \
share/styles/vaucanson-g.sty \
share/styles/Vaucanson-G.tex \
share/styles/VCpatch-pstricks-1-10.tex
.PHONY: share-up
share-up:
for f in $(SHAREFILES); do \
$(WGETL)$$f -O $(top_srcdir)/doc/$$f || exit 1; \
done
## ----------------------- ##
## Doxygen documentation. ##
## ----------------------- ##
......@@ -104,11 +71,8 @@ mostlyclean-local:
dist_pdf_DATA = README.pdf HACKING.pdf NEWS.pdf
MAINTAINERCLEANFILES = $(dist_pdf_DATA) $(srcdir)/stamp
TEXI2DVI = $(srcdir)/share/bin/texi2dvi
TEXI2DVI_FLAGS = --tidy --batch
TEXI2PDF = $(TEXI2DVI) --pdf
TEXI2PDF_FLAGS = $(TEXI2DVI_FLAGS)
TEXI2PDF = texi2pdf
TEXI2PDF_FLAGS = --tidy --batch
SUFFIXES = .txt .tex .pdf
......@@ -121,7 +85,7 @@ SUFFIXES = .txt .tex .pdf
EXTRA_DIST = README.txt HACKING.txt NEWS.txt \
$(SHAREFILES) share/README $(srcdir)/stamp $(srcdir)/$(DOCDIR)
$(srcdir)/stamp $(srcdir)/$(DOCDIR)
## ------------------ ##
## Unit compilation. ##
......
......@@ -128,8 +128,6 @@ doc
manual
The Vaucanson User Guide.
share
LaTeX components used to generate the documentation.
ref
_Doxygen documentation (automatically generated from the source code)
......
......@@ -15,30 +15,16 @@ all: pdf
include $(top_srcdir)/vaucanson.mk
share_dir = $(top_srcdir)/doc/share
share_bin_dir = $(share_dir)/bin
share_style_dir = $(share_dir)/styles
share_bib_dir = $(share_dir)/bib
TEXI2DVI = $(share_bin_dir)/texi2dvi
TEXI2DVI_FLAGS = --tidy --build-dir=tmp.t2d --batch -I $(share_style_dir) -I $(share_bib_dir)
TEXI2PDF = $(TEXI2DVI) --pdf
TEXI2PDF_FLAGS = $(TEXI2DVI_FLAGS)
share_tex_dependencies = \
$(wildcard $(share_style_dir)/* $(share_bib_dir)/*)
TEXI2PDF = texi2pdf
TEXI2PDF_FLAGS = --tidy --build-dir=tmp.t2d --batch
## ----- ##
## *.tex ##
## ----- ##
%.pdf: %.tex $(share_tex_dependencies)
%.pdf: %.tex
$(TEXI2PDF) $(TEXI2PDF_FLAGS) -o $@ $<
%.dvi: %.tex $(share_tex_dependencies)
$(TEXI2DVI) $(TEXI2DVI_FLAGS) -o $@ $<
.PHONY: tex-mostlyclean
tex-mostlyclean:
rm -rf tmp.t2d
......@@ -53,9 +39,6 @@ manual = $(srcdir)/vaucanson-manual.pdf
pdf: $(manual)
# We use vaucanson-g, which requires plain DVI compilation.
TEXI2PDF_FLAGS += --dvipdf
dist_pdf_DATA = $(manual)
$(manual): $(vaucanson_manual_sources)
......
......@@ -113,7 +113,6 @@ The \Vauc package is organized as follows:
\dir{doc/makefiles}{Sample Makefile to reduce compilation time in
\Vauc.}
\dir{doc/manual}{Manual.}
\dir{doc/share}{LRDE share repository.}
\dir{doc/xml}{XML proposal.}
\dir{include/vaucanson}{Library start point: defines classical entry
points such as ``boolean\_automaton.hh''.}
......
\documentclass[a4paper]{report}
\usepackage[american]{mybabel}
\usepackage[american]{babel}
\usepackage[latin1]{inputenc}
\usepackage{a4wide}
\usepackage{myacronym}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{myhyperref}
\usepackage{hyperref}
\usepackage{textcomp}
\usepackage{tabularx}
\usepackage{url}
\usepackage{vaucanson-g}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{texi}
\usepackage{misc}
\usepackage{xspace}
%% Put the TOC, the bibliography and index in the TOC.
\usepackage{tocbibind}
%% -------------------- %%
%% Tikz configuration. %%
%% -------------------- %%
\usepackage{pgf,tikz}
\usetikzlibrary{automata}
\usetikzlibrary{arrows}
\tikzstyle{automaton}=[shorten >=1pt,
node distance=2cm,
pos=.4,
>=stealth',
initial text=]
\tikzstyle{accepting}=[accepting by arrow]
\tikzoption{initial angle}{\tikzaddafternodepathoption{\def\tikz@initial@angle{#1}}}
\tikzoption{accepting angle}{\tikzaddafternodepathoption{\def\tikz@accepting@angle{#1}}}
%% ---------------------- %%
%% Mathematical symbols. %%
......@@ -43,19 +53,30 @@
\newtheorem{definition} [theorem]{Definition}
\newtheorem{remark} [theorem]{remark}
\makeatletter
\newcommand{\Cxx}{%
\valign{\vfil\hbox{##}\vfil\cr
{C\kern-.1em}\cr
$\hbox{\fontsize\sf@size\z@\textbf{+\kern-0.05em+}}$\cr}%
\xspace
}
\makeatother
%% ------------------------ %%
%% Index and Bibliography. %%
%% ------------------------ %%
\def\tikzname{Ti\emph{k}Z\xspace}
%% FIXME: it should be (#1,#2) for FMP transducers
% A transition for a transducer.
\newcommand{\IOL}[2]{#1\!\mid\! #2}
%% ------- %%
%% Index. %%
%% ------- %%
% The same argument is output and put in the index.
\usepackage{makeidx}
\makeindex
\newcommand{\Index}[1]{\index{#1}#1}
% Bibliography.
\usepackage{natbib}
\usepackage{listings}
\lstset{%
numbers=left,
......@@ -67,8 +88,6 @@
frame=single,
language=C++,
float}
\input ldf/stl.sty
\input ldf/vaucanson.sty
% Document a figure.
\newenvironment{legend}{%
......@@ -86,6 +105,18 @@
% @VcsnVersion@
\def\VcsnVersion{1.2.95a}
%% ----------------------- %%
%% Texinfo like commands. %%
%% ----------------------- %%
\newcommand\kbd[1]{\textsl{\texttt{#1}}}
\newcommand\file[1]{`\texttt{#1}'}
\newcommand\command[1]{\texttt{#1}}
\newcommand\var[1]{{\ttfamily\itshape #1}}
\newcommand\code[1]{\texttt{#1}}
\newcommand\samp[1]{`\texttt{#1}'}
\newcommand\option[1]{`\texttt{#1}'}
%% -------------------- %%
%% Vaucanson commands. %%
%% -------------------- %%
......@@ -174,16 +205,9 @@ automata whose type is fixed. \tafkit is presented in
\section{Getting \Vauc}
The latest stable version of the \Vauc platform can be downloaded
from \url{http://vaucanson.lrde.epita.fr/}. The current development
version can be retrieved from its Subversion\footnote{%
%%
Subversion can be found at \url{http://subversion.tigris.org/}.
%%
} repository as follows:
\begin{shell}
# \kbd{svn checkout https://svn.lrde.epita.fr/svn/vaucanson/trunk vaucanson}
\end{shell}
from \url{http://vaucanson.lrde.epita.fr/}. Instructions to get
the latest development version can be found on
\url{http://vaucanson.lrde.epita.fr/Download}.
\section{Building \Vauc}
......@@ -378,28 +402,23 @@ vcsn-char-b list-automata
\end{verbatim}
\begin{figure}[ht] \centering
\begin{VCPicture}{(0,-2)(6,2)}
\begin{tikzpicture}[automaton]
% states
\State{(0,0)}{A}
\State{(3,0)}{B}
\State{(6,0)}{C}
\node[state, initial] (A) at (0,0) {};
\node[state] (B) at (3,0) {};
\node[state, accepting] (C) at (6,0) {};
% initial--final
\Initial{A}
\Final{C}
% transitions
\EdgeL{A}{B}{a}
\EdgeL{B}{C}{b}
\LoopS[.5]{A}{b}
\LoopN[.5]{A}{a}
\LoopS[.5]{C}{b}
\LoopN[.5]{C}{a}
\end{VCPicture}
\path[->] (A) edge node[above] {$a$} (B);
\path[->] (B) edge node[above] {$b$} (C);
\path[->] (A) edge [loop below] node[below] {$b$} (A);
\path[->] (A) edge [loop above] node[above] {$a$} (A);
\path[->] (C) edge [loop below] node[below] {$b$} (C);
\path[->] (C) edge [loop above] node[above] {$a$} (C);
\end{tikzpicture}
\begin{legend}
The graphical layout of this automaton was described by hand,
using the Vaucanson-G \LaTeX{} package. However, the following
figures are generated by \tafkit, giving a very nice layout, yet
slightly less artistic.\index{A1@$\Ac_1$}
The automaton is taken from \citet[Fig. I.1.1, p. 58]{sakarovitch.03.eta.}
using the \tikzname package.\index{A1@$\Ac_1$}
\end{legend}
\caption{The automaton $\Ac_1$}
\label{fig:a1}
......@@ -804,19 +823,19 @@ view to the other one.
\begin{figure}[tp]
\begin{center}
\begin{VCPicture}{(0,-2)(6,2)}
\begin{tikzpicture}[automaton]
% states
\State{(0,0)}{A} \State{(3,0)}{B} \State{(6,0)}{C}
\Initial[w]{A}
\Final[s]{A}
\node[state, initial left, accepting below] (A) at (0,0) {};
\node[state] (B) at (3,0) {};
\node[state] (C) at (6,0) {};
% transitions
\LoopN[.5]{A}{\IOL{0}{0}}
\LoopN[.5]{C}{\IOL{1}{1}}
\ArcL{A}{B}{\IOL{1}{0}}
\ArcL{B}{A}{\IOL{1}{1}}
\ArcL{B}{C}{\IOL{0}{0}}
\ArcL{C}{B}{\IOL{0}{1}}
\end{VCPicture}
\path[->] (A) edge [loop above] node[above] {$\IOL{0}{0}$} (A);
\path[->] (C) edge [loop above] node[above] {$\IOL{1}{1}$} (C);
\path[->] (A) edge [bend left] node[above] {$\IOL{1}{0}$} (B);
\path[->] (B) edge [bend left] node[above] {$\IOL{1}{1}$} (A);
\path[->] (B) edge [bend left] node[above] {$\IOL{0}{0}$} (C);
\path[->] (C) edge [bend left] node[above] {$\IOL{0}{1}$} (B);
\end{tikzpicture}
\begin{legend}
The transducer computing the quotient by 3 of a binary number.
\end{legend}
......@@ -827,18 +846,19 @@ view to the other one.
%% \begin{figure}[tp]
%% \begin{center}
%% \begin{VCPicture}{(0,-2)(3,2)}
%% % states
%% \State{(0,0)}{A} \State{(3,0)}{B}
%% \Initial[w]{A}
%% \FinalL{s}{A}{(,1)}
%% \Final[e]{B}
%% % transitions
%% \LoopN[.5]{A}{(1,0)}
%% \LoopN[.5]{B}{(1,1)}
%% \LoopS[.5]{B}{(0,0)}
%% \EdgeL{A}{B}{(0,1)}
%% \end{VCPicture}
%
%%\begin{tikzpicture}[automaton]
%% % states
%% \node[state, initial left] (A) at (0,0) {};
%% \node[state, accepting right] (B) at (3,0) {};
%% \FinalL{s}{A}{(,1)}
%% % transitions
%% \path[->] (A) edge [loop above] node[above] {$(1,0)$} (A);
%% \path[->] (B) edge [loop above] node[above] {$(1,1)$} (B);
%% \path[->] (B) edge [loop below] node[below] {$(0,0)$} (B);
%% \path[->] (A) edge node[above] {$(0,1)$} (B);
%% \end{tikzpicture}
%%}
%% \caption{Transducer $\Tc_2$ adding 1 to a binary number}
%% \label{fig:t2}
%% \end{center}
......@@ -986,23 +1006,22 @@ Again, we will toy with some of the automata provided by
\subsection{Counting \samp{b}s}
\begin{figure}[tp] \centering
\begin{VCPicture}{(0,-2)(3,2)}
\begin{tikzpicture}[automaton]
% states
\State{(0,0)}{A}
\State{(3,0)}{B}
\node[state, initial] (A) at (0,0) {};
\node[state, accepting] (B) at (3,0) {};
% initial--final
\Initial{A} \Final{B}
% transitions
\EdgeL{A}{B}{b}
\LoopS[.5]{A}{b}
\LoopN[.5]{A}{a}
\LoopS[.5]{B}{b}
\LoopN[.5]{B}{a}
\end{VCPicture}
\path[->] (A) edge node[above] {$b$} (B);
\path[->] (A) edge [loop below] node[below] {$b$} (A);
\path[->] (A) edge [loop above] node[above] {$a$} (A);
\path[->] (B) edge [loop below] node[below] {$b$} (B);
\path[->] (B) edge [loop above] node[above] {$a$} (B);
\end{tikzpicture}
\begin{legend}
Considered without weight, $\Bc_1$ accepts words with a \samp{b}.
With weights, it counts the number of \samp{b}s.
Taken from \citet[Fig. III.2.2, p. 434]{sakarovitch.03.eta}.\index{B1@$\Bc_1$}
\index{B1@$\Bc_1$}
\end{legend}
\caption{The automaton $\Bc_1$}
\label{fig:b1}
......
All the files in this directory (except this README) are maintained in
https://svn.lrde.epita.fr/svn/lrde-publis/trunk/share/
You can update them by running "make share-up" in the doc/ directory.
Do not modify these files directly or your changes will be lost
the next time someone runs "make share-up". If you need to fix
something, fix it in the aforementioned SVN repository.
%%% vaucanson.bib
@Misc{amore.www,
title = {\textsc{AMoRE} Home Page},
author = {Wolfgang Thomas},
note = {\url{http://www-i7.informatik.rwth-aachen.de/d/research/amore.html}}
}
@article{antimirov.96.tcs,
author = {Valentin Antimirov},
title = {Partial derivatives of regular expressions and
finite automaton constructions},
journal = {Theor. Comput. Sci.},
volume = 155,
number = 2,
year = 1996,
issn = {0304-3975},
pages = {291--319},
doi = {http://dx.doi.org/10.1016/0304-3975(95)00182-4},
publisher = {Elsevier Science Publishers Ltd.},
address = {Essex, UK},
}
@article{brzozowski.64.jacm,
author = {Janusz A. Brzozowski},
title = {Derivatives of Regular Expressions},
journal = {J. ACM},
volume = 11,
number = 4,
year = 1964,
issn = {0004-5411},
pages = {481--494},
doi = {http://doi.acm.org/10.1145/321239.321249},
publisher = {ACM Press},
address = {New York, NY, USA},
}
@article{champarnaud.02.tcs,
author = {J.-M. Champarnaud and D. Ziadi},
title = {Canonical derivatives, partial derivatives and
finite automaton constructions},
journal = {Theor. Comput. Sci.},
volume = 289,
number = 1,
year = 2002,
issn = {0304-3975},
pages = {137--163},
doi = {http://dx.doi.org/10.1016/S0304-3975(01)00267-5},
publisher = {Elsevier Science Publishers Ltd.},
address = {Essex, UK},
}
@Misc{fsm.www,
title = {\acf{fsml} Home Page},
author = {\textsc{at\&t}},
note = {\url{http://www.research.att.com/sw/tools/fsm/}}
}
@inproceedings{lombardy.04.latin,
author = {Sylvain Lombardy and Jacques Sakarovitch},
title = {How Expressions Can Code for Automata.},
booktitle = {LATIN},
year = 2004,
pages = {242-251},
ee =
{http://springerlink.metapress.com/openurl.asp?genre=article{\&}issn=0302-9743{\&}volume=2976{\&}spage=242},
bibsource = {DBLP, http://dblp.uni-trier.de}
}
@Book{sakarovitch.03.eta,
author = {Jacques Sakarovitch},
editor = {Vuibert informatique},
title = {\'El\'ements de th\'eorie des automates},
year = 2003,
}
@article{thompson.68.cacm,
author = {Ken Thompson},
title = {Programming Techniques: Regular expression search
algorithm},
journal = {Commun. ACM},
volume = 11,
number = 6,
year = 1968,
issn = {0001-0782},
pages = {419--422},
doi = {http://doi.acm.org/10.1145/363347.363387},
publisher = {ACM Press},
address = {New York, NY, USA},
}
@Misc{vaucanson.www,
title = {\textsc{Vaucanson} Home Page},
author = {\textsc{Vaucanson} group},
note = {\url{http://vaucanson.lrde.epita.fr/}},
year = {2007},
}
@Misc{vaucanson.www.xml,
title = {{XML} Proposal for Automaton Exchanges},
author = {\textsc{Vaucanson} group},
note = {\url{http://vaucanson.lrde.epita.fr/XML}},
year = {2005},
}
@Misc{vaucanson.www.xsd,
title = {Last version of the proposal \textsc{xsd} file},
author = {\textsc{Vaucanson} group},
note = {\url{http://www.lrde.epita.fr/dload/vaucanson/vaucanson_current.xsd}},
year = {2005},
}
@Misc{w3c.www,
title = {\textsc{xsd} information on the \textit{World Wide
Web Consorsium} website},
author = {\textsc{w3c}},
note = {\url{http://www.w3.org/XML/Schema}},
year = {2007},
}
This diff is collapsed.
\renewenvironment{VCPicture}[2][0]%
{\settoheight{\VertShiftH}{$\{$}%
\settodepth{\VertShiftD}{$\{$}%
\setlength{\VertShift}{.5\VertShiftD-.5\VertShiftH}%
\begin{pspicture}[shift=#1]#2%
\ifVCFrame \FrameStyle \psframe#2\fi%
\ifVCGrid \FrameStyle\GridStyle \psgrid#2\fi}%
{\RstState\RstEdge%
\end{pspicture}}
This diff is collapsed.
% hevea : hevea.sty
% This is a very basic style file for latex document to be processed
% with hevea. It contains definitions of LaTeX environment which are
% processed in a special way by the translator.
% Mostly :
% - latexonly, not processed by hevea, processed by latex.
% - htmlonly , the reverse.
% - rawhtml, to include raw HTML in hevea output.
% - toimage, to send text to the image file.
% The package also provides hevea logos, html related commands (ahref
% etc.), void cutting and image commands.
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{hevea}[2002/01/11]
\RequirePackage{comment}
\newif\ifhevea\heveafalse
\@ifundefined{ifimagen}{\newif\ifimagen\imagenfalse}
\makeatletter%
\newcommand{\heveasmup}[2]{%
\raise #1\hbox{$\m@th$%
\csname S@\f@size\endcsname
\fontsize\sf@size 0%
\math@fontsfalse\selectfont
#2%
}}%
\DeclareRobustCommand{\hevea}{H\kern-.15em\heveasmup{.2ex}{E}\kern-.15emV\kern-.15em\heveasmup{.2ex}{E}\kern-.15emA}%
\DeclareRobustCommand{\hacha}{H\kern-.15em\heveasmup{.2ex}{A}\kern-.15emC\kern-.1em\heveasmup{.2ex}{H}\kern-.15emA}%
\DeclareRobustCommand{\html}{\protect\heveasmup{0.ex}{HTML}}
%%%%%%%%% Hyperlinks hevea style
\newcommand{\ahref}[2]{{#2}}
\newcommand{\ahrefloc}[2]{{#2}}
\newcommand{\aname}[2]{{#2}}
\newcommand{\ahrefurl}[1]{\texttt{#1}}
\newcommand{\footahref}[2]{#2\footnote{\texttt{#1}}}
\newcommand{\mailto}[1]{\texttt{#1}}
\newcommand{\imgsrc}[2][]{}
\newcommand{\home}[1]{\protect\raisebox{-.75ex}{\char126}#1}
\AtBeginDocument
{\@ifundefined{url}
{%url package is not loaded
\let\url\ahref\let\oneurl\ahrefurl\let\footurl\footahref}
{}}
%% Void cutting instructions
\newcounter{cuttingdepth}
\newcommand{\tocnumber}{}
\newcommand{\notocnumber}{}