summaryrefslogtreecommitdiff
path: root/papers/cfrontend_new/mymacros.sty
diff options
context:
space:
mode:
Diffstat (limited to 'papers/cfrontend_new/mymacros.sty')
-rwxr-xr-xpapers/cfrontend_new/mymacros.sty221
1 files changed, 221 insertions, 0 deletions
diff --git a/papers/cfrontend_new/mymacros.sty b/papers/cfrontend_new/mymacros.sty
new file mode 100755
index 0000000..9b2df82
--- /dev/null
+++ b/papers/cfrontend_new/mymacros.sty
@@ -0,0 +1,221 @@
+% First, second, third, n-th, premier, second, n-ieme
+
+\def\th{^{\mbox{\scriptsize th}}}
+\def\st{^{\mbox{\scriptsize st}}}
+\def\nd{^{\mbox{\scriptsize nd}}}
+\def\rd{^{\mbox{\scriptsize rd}}}
+\def\ier{^{\mbox{\scriptsize ier}}}
+\def\iere{^{\mbox{\scriptsize i\`ere}}}
+\def\ieme{^{\mbox{\scriptsize i\`eme}}}
+\def\eme{^{\mbox{\scriptsize e}}}
+
+% e.g., i.e., et al.
+\def\eg{e.g.\ }
+\def\ie{i.e.\ }
+\def\vs{vs.\ }
+\def\etal{{\em et al.}\ }
+
+% Theorem environments
+
+\newtheorem{prop}{Proposition}
+\ifx\proof\undefined% Some styles, e.g. jfp.sty, already provide a "proof" env.
+\def\proof{\trivlist \item[\hskip\labelsep {\bf Proof:}]}
+\def\endproof{\hspace*{0pt plus 1fill}$\Box$\endtrivlist}
+\fi
+%% \ifx\example\undefined
+%% \def\example{\trivlist \item[\hskip\labelsep {\bf Example:}]}
+%% \def\endexample{\hspace*{0pt plus 1fill}$\Box$\endtrivlist}
+%% \fi
+\def\case#1.{\medskip\noindent {\bf Case} #1.}
+\def\cas#1.{\medskip\noindent {\bf Cas} #1.}
+\def\andalso{\quad\mbox{and}\quad}
+
+% Alternate names for various math stuff
+
+\def\alt{\mid} % `or' in a grammar
+\def\dot{.\,} % for proper spacing in lambda terms
+\let\syntequal=\equiv % three-line equal
+\def\equiv{\approx} % wavy equal
+\def\epsilon{\varepsilon} % Good-looking epsilon
+\def\phi{\varphi} % Good-looking phi
+\def\reduce{\stackrel{*}{\rightarrow}} % Reduction relation
+\def\fun{\rightarrow} % Function type
+\def\Fun{\Rightarrow} % Function kinds
+\def\becomes{\leftarrow} % In substitutions
+\def\Dom{{\rm Dom}}
+\def\Im{{\rm Rng}}
+\def\inter{\cap}
+\def\biginter{\bigcap}
+\def\union{\cup}
+\def\bigunion{\bigcup}
+\def\ttSigma{\hbox{\tt\char6}} % Sigma in typewriter font
+\def\rond{\circ} % Function composition
+\def\sem{\models} % |=
+
+% Denotational brackets
+\def\den#1{[\![#1]\!]}
+
+% For syntax definitions
+% \begin{syntax}
+% left-hand side & ::= & right-hand side & comment \\
+% & \alt & more right-hand side & more comment
+% \end{syntax}
+% Use \syntaxclass{Foo} to insert a title line above a syntax definition.
+% Do not put \\ before \end{syntax} or \syntaxclass{...}
+% Use \begin{syntaxleft} ... \end{syntaxleft} to insert the title
+% lines to the left of the definitions.
+
+\def\syntaxvspace{\medskip}
+
+\def\syntax{
+\par\syntaxvspace\goodbreak\noindent
+\bgroup
+\let\\=\cr
+\interlinepenalty=50 % discourage page breaks in a definition
+\global\let\syntaxclass=\firstsyntaxclass
+\if@twocolumn
+\halign\bgroup~~$##$&\hfil${}##{}$&$##$~\hfil&##\hfil\cr
+\else
+\halign\bgroup\qquad\qquad$##$&\hfil${}##{}$&$##$\quad\hfil&##\hfil\cr
+\fi
+}
+\def\endsyntax{\cr\egroup\egroup\par\syntaxvspace\noindent\ignorespaces}
+
+\def\firstsyntaxclass#1{
+\omit\hbox to 0pt{#1\hss}\cr
+\global\let\syntaxclass=\nextsyntaxclass
+}
+
+\def\nextsyntaxclass#1{
+\cr\noalign{\smallskip\penalty-100}\omit\hbox to 0pt{#1\hss}\cr
+}
+
+\def\syntaxleft{
+\par\syntaxvspace\goodbreak\noindent
+\bgroup
+\let\\=\cr
+\interlinepenalty=50 % discourage page breaks in a definition
+\global\let\syntaxclass=\firstsyntaxclassleft
+\if@twocolumn
+\halign\bgroup\hfil$##$&\hfil${}##{}$&$##$~\hfil&##\hfil\cr
+\else
+\halign\bgroup\hfil$##$&\hfil${}##{}$&$##$\quad\hfil&##\hfil\cr
+\fi
+}
+\let\endsyntaxleft=\endsyntax
+
+\def\firstsyntaxclassleft#1{
+$\hfilneg#1\quad\hfil$
+\global\let\syntaxclass=\nextsyntaxclassleft
+}
+
+\def\nextsyntaxclassleft#1{
+\cr\noalign{\smallskip\goodbreak}$\hfilneg#1\quad\hfil$
+}
+
+% To put a frame around an arbitrary amount of vertical material.
+% \begin{framed} ... \end{framed}
+
+\def\framed{%
+\setbox0=\vbox\bgroup%
+\advance\hsize by -2\fboxsep\advance\hsize by -2\fboxrule}
+
+\def\endframed{%
+\egroup\noindent\framebox[\textwidth]{\box0}}
+
+% A relatively good-looking "C++". It hurts.
+
+\def\Cplusplus{C{\tt ++}}
+
+% To make slides
+
+\def\transp{\begin{slide}{}\@ifnextchar[{\opttitle}{}}
+\def\endtransp{\end{slide}}
+\def\opttitle[#1]{\titletransp{#1}}
+\def\titlecolor{}
+
+\def\titletranspadvi#1{
+ \begin{center} \titlecolor \bf #1 \\[2mm]
+ \includegraphics[width=\textwidth,height=0.6em]{bar.jpg.eps}
+ \end{center}
+ \bigskip}
+\def\titletranspplain#1{
+ {\titlecolor \begin{center} \bf #1 \end{center} \medskip \hrule}
+ \bigskip}
+\def\titletransp#1{
+ \ifx\ifadvi\undefined
+ \titletranspplain{#1}
+ \else
+ \ifadvi{\titletranspadvi{#1}}{\titletranspplain{#1}}
+ \fi}
+\def\centeredtransp{
+ \begin{slide}{}\@ifnextchar[{\opttitle}{}
+ \vspace*{0pt plus 1fil}
+}
+\def\endcenteredtransp{\vspace*{0pt plus 1fil}\end{slide}}
+
+% To put two pieces of text side by side
+
+\newdimen{\colwidth}
+\def\sidebysidegutter{5mm}
+\def\sidebysidehalfgutter{2.5mm}
+
+\def\sidebyside{%
+\begin{center}%
+\colwidth=\textwidth%
+\advance\colwidth by-\sidebysidegutter%
+\divide\colwidth by2%
+\emergencystretch=3cm%
+\begin{minipage}[t]{\colwidth}\ignorespaces}
+
+\def\nextto{%
+ \end{minipage}\kern\sidebysidegutter\begin{minipage}[t]{\colwidth}\ignorespaces}%
+
+\def\nexttorule{%
+ \end{minipage}\kern\sidebysidehalfgutter\vrule\kern\sidebysidehalfgutter\begin{minipage}[t]{\colwidth}\ignorespaces}%
+
+\def\endsidebyside{\end{minipage}\end{center}\ignorespaces}
+
+% Breaking a formula in two lines (cf. The TexBook p. 196).
+
+\def\twolinedisplay#1#2{\displaylines{\quad#1\hfill\cr\hfill{}#2\quad\cr}}
+
+% To allow breaks in identifiers or such
+
+\def\={\discretionary{}{}{}}
+
+% Write a URL, allowing breaks at slashes
+
+%% Doesn't work in LaTeX2e
+%%\def\citeurl{%
+%%\bgroup%
+%%\hyphenchar\nintt=`/\hyphenchar\tentt=`/%
+%%\hyphenchar\elvtt=`/\hyphenchar\twltt=`/%
+%%\catcode`\~=12\relax\typeseturl}
+
+{\catcode`\/=13\global\def/{\char47\discretionary{}{}{}}}
+\def\citeurl{\bgroup\catcode`\/=13\catcode`\~=12\relax\typeseturl}
+\def\typeseturl#1{\tt #1\egroup}
+
+% Display a PIC drawing
+
+\def\showgraph{\par\medskip\centerline{\raise 1em\box\graph}\medskip}
+
+% Ragged right paragraph boxes in tabular environment
+\def\arrayragged{\let\temp=\\\raggedright\let\\=\temp}
+
+% Itemize with minimal vertical size (for slides)
+\def\compactitemizesize{}
+\def\compactitemize{%
+ \advance\@itemdepth\@ne
+ \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
+ \expandafter
+ \list
+ \csname\@itemitem\endcsname
+ {\compactitemizesize\parsep 0pt \topsep 0pt \itemsep 0pt \partopsep 0pt}%
+}
+\def\endcompactitemize{\endlist}
+
+% Euros
+
+%\def\euro{{\sf C}{\tiny$\!\!\!\!\!\!^=$}}