LMCS-Paper/document/lmcs.cls
changeset 2989 5df574281b69
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LMCS-Paper/document/lmcs.cls	Tue Aug 16 17:48:09 2011 +0200
@@ -0,0 +1,512 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Modification log
+%%
+%% 2004/03/25 v0.1 based on amsart.cls, inspired by jair.sty 
+%% 2004/09/01 v0.2 based on amsart.cls
+%% 2004/10/12 v0.3 based on amsart.cls
+%% 2004/12/16 v0.4 based on amsart.cls
+%% 2005/01/24 v0.5 based on amsart.cls
+%% 2005/03/10 v0.6 based on amsart.cls
+%% 2006/07/24 v0.7 based on amsart.cls
+%% 2007/11/13 v0.8 based on amsart.cls
+%%                
+%%                 Juergen Koslowski, Stefan Milius
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{lmcs}
+              [2009/05/25 v0.8 LMCS Layout Editor Class]
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{amsart}}
+\ProcessOptions\relax
+
+\LoadClass[11pt,reqno]{amsart}
+\usepackage{helvet,cclicenses}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%   		Use of this class, cf. also lmcs-smp.tex
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% This class builds upon the amsart class of AMS-LaTeX and requires use
+% of LaTeX 2e. 
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 		Start of the paper
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \documentclass{lmcs} 
+%
+% without any options followed optionally by
+%
+% \usepackage{package1,package2,...}
+%
+% loading additional macro packages you may wish to use, (eg, xypic, etc.)
+% (This also is the place to define further theorem-environments, in case
+% those provided by default do not suffice, cf. below.)
+%
+% \begin{document}
+% \title[short_title]{real title}
+%
+% and a list of author information of the form
+%
+% \author[short_author1]{Author 1}
+% \address{address 1}
+% \email{author1@email1}
+% \thanks{thanks 1}
+%
+% \author[short_author2]{Author 2}
+% \address{address 2}
+% \email{author2@email2}
+% \thanks{thanks 2}
+%
+% \author[short_author3]{Author 3}
+% \address{address 3}
+% \email{author3@email3}
+% \thanks{thanks 3}
+%
+% The \email and \thanks fields are optional.  The \thanks fields appear
+% in footnotes on the title page, the addresses and email information
+% is relegated to the end of the article.  The optional arguments to
+% the \title and \author macros determine a running head on the odd
+% and even pages, respectively.
+%
+% Lists of keywords and phrases as well as an ACM Subject
+% classification are mandatory; these appear in footnotes on the
+% title page, preceeding any \thanks fields.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%		Body of the paper
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% We encourage the use of LaTeX's crossreferencing capabilities with the
+% \label and \ref commands, for sections, subsections, theorems etc., and
+% displayed equations and figures.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 		Theorems, Definitions etc.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The following theorem-like environments are available.  The
+% numbering is consecutive within sections.
+%
+% thm   Theorem
+% cor   Corollary
+% lem   Lemma
+% prop  Proposition
+% asm   Asumption
+%
+% defi  Definition
+% rem   Remark
+% rems  Remarks (intended for use with itemized remarks)
+% exa   Example
+% exas  Examples (intended for use with itemized examples)
+% conj  Conjecture
+% prob  Problem
+% oprob Open Problem
+% algo  Algorithm
+% obs   Observation
+%
+% If you require additional environments, you can add them before
+% \begin{document} by means of
+%
+% \theoremstyle{plain}\newtheorem{env}[thm]{Environment}
+%
+% or
+%
+% \theoremstyle{definition}\newtheorem{env}[thm]{Environment}
+%
+% In the first case the font within the new environment will be italicised.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%		Proofs
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Proofs start with the command \proof and should be ended by \qed,
+% which provides an end-of-proof box at the right margin:
+%
+% \proof ... \qed
+%
+% In itemized or enumerated proofs the \qed command has to occur BEFORE 
+% \end{itemize} or \end{enumerate} to ensure proper placement of the box:
+%
+% \proof
+% \begin{itemize}
+% \item[(1)] ...
+% \item[(2)] ...
+% ...
+% \item[(n)] ... \qed
+% \end{itemize}
+%
+% Similarly, the box may be used within theorem environments, when no
+% explicit proof is given:
+%
+% \begin{thm} ... \qed \end{thm}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%		Itemized or enumerated environments and proofs
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% By default, the first item of an itemized (or enumerated) environment
+% or proof appears inlined on the same line as the environment title.
+% This can be prevented by placing \hfill before the itemization, e.g.:
+%
+% \begin{thm}\label{T:abc}\hfill
+% \begin{itemize} ...
+%
+% \proof\hfill
+% \begin{itemize} ...
+
+
+%
+%		End of the paper
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Acknowledgements should be placed in a non-numbered section:
+%
+% \section*{Acknowledgement}
+%
+% The bibliography uses alpha.bst where references are built from the 
+% authors' initials and the year of publication.  The use of bibtex
+% for creating the bibliography is strongly encouraged.  Then the
+% end of the paper takes the form
+%
+% \begin{thebibliography}{key}
+% \end{thebibliography}
+% \end{document}
+%
+% where ``key'' is the longest alphanumerical key expected to occur.
+%
+% Optionally, appendices can be inserted after the bibliography by
+% means of
+%
+% \end{thebibliography}
+% \appendix
+% \section{} % Appendix A
+% \section{} % Appendix B
+% % etc.
+% \end{document}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%                   actual macros
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\count255=\the\catcode`\@ \catcode`\@=11 \edef\catc@de{\the\count255}
+
+\newif\ifsuPer \suPertrue
+\def\rsuper#1{\ifsuPer${\,}^{\MakeLowercase #1}$\fi}%
+\def\lsuper#1{\ \hskip-2 pt\ifsuPer\llap{${}^{\MakeLowercase #1}\ $\fi}}%
+
+\def\titlecomment#1{\def\@titlecomment{#1}}
+\let\@titlecomment=\@empty
+\renewcommand{\sfdefault}{phv}
+\renewcommand*\subjclass[2][1991]{%
+  \def\@subjclass{#2}%
+  \@ifundefined{subjclassname@#1}{%
+    \ClassWarning{\@classname}{Unknown edition (#1) of ACM
+      Subject Classification; using '1991'.}%
+  }{%
+    \@xp\let\@xp\subjclassname\csname subjclassname@1998\endcsname
+  }%
+}
+\@namedef{subjclassname@1998}{1998 ACM Subject Classification}
+\newcommand{\revisionname}{Revision Note}
+\newbox\revisionbox
+\newenvironment{revision}{%
+  \ifx\maketitle\relax
+    \ClassWarning{\@classname}{Revision should precede
+      \protect\maketitle\space in LMCS documentclasses; reported}%
+  \fi
+  \global\setbox\revisionbox=\vtop \bgroup
+    \normalfont\Small
+    \list{}{\labelwidth\z@
+      \leftmargin3pc \rightmargin\leftmargin
+      \listparindent\normalparindent \itemindent\z@
+      \parsep\z@ \@plus\p@
+      \let\fullwidthdisplay\relax
+    }%
+    \item[\hskip\labelsep\scshape\revisionname.]%
+}{%
+  \endlist\egroup
+  \ifx\@setrevision\relax \@setrevisiona \fi
+}
+\def\@setrevision{\@setrevisiona \global\let\@setrevision\relax}
+\def\@setrevisiona{%
+  \ifvoid\revisionbox
+  \else
+    \skip@20\p@ \advance\skip@-\lastskip
+    \advance\skip@-\baselineskip \vskip\skip@
+    \box\revisionbox
+    \prevdepth\z@ % because \revisionbox is a vtop
+    \bigskip\hrule\medskip
+  \fi
+}
+\def\@setsubjclass{%
+  {\itshape\subjclassname:}\enspace\@subjclass\@addpunct.}
+\def\@setkeywords{%
+  {\itshape \keywordsname:}\enspace \@keywords\@addpunct.}
+\def\@settitlecomment{\@titlecomment\@addpunct.}
+\def\@maketitle{%
+  \normalfont\normalsize
+  \let\@makefnmark\relax  \let\@thefnmark\relax
+  \ifx\@empty\@date\else \@footnotetext{\@setdate}\fi
+  \ifx\@empty\@subjclass\else \@footnotetext{\@setsubjclass}\fi
+  \ifx\@empty\@keywords\else \@footnotetext{\@setkeywords}\fi
+  \ifx\@empty\@titlecomment\else \@footnotetext{\@settitlecomment}\fi
+  \ifx\@empty\thankses\else \@footnotetext{%
+    \def\par{\let\par\@par}\@setthanks\par}\fi
+  \@mkboth{\@nx\shortauthors}{\@nx\shorttitle}%
+  \global\topskip12\p@\relax % 5.5pc   "   "   "     "     "
+  \topskip42 pt\@settitle
+  \ifx\@empty\authors \else \@setauthors \fi
+  \@setaddresses
+  \ifx\@empty\@dedicatory
+  \else
+    \baselineskip18\p@
+    \vtop{\centering{\footnotesize\itshape\@dedicatory\@@par}%
+      \global\dimen@i\prevdepth}\prevdepth\dimen@i
+  \fi
+  \endfront@text
+  \bigskip\hrule\medskip
+  \@setrevision
+  \@setabstract
+  \vskip-\bigskipamount
+  \normalsize
+  \if@titlepage
+    \newpage
+  \else
+    \dimen@34\p@ \advance\dimen@-\baselineskip
+    \vskip\dimen@\relax
+  \fi
+}
+\def\@setaddresses{\par
+  \nobreak \begingroup
+\footnotesize
+  \def\author##1{\nobreak\addvspace\bigskipamount}%
+  \def\\{\unskip, \ignorespaces}%
+  \interlinepenalty\@M
+  \def\address##1##2{\begingroup
+    \par\addvspace\bigskipamount\noindent\narrower
+    \@ifnotempty{##1}{(\ignorespaces##1\unskip) }%
+    {\ignorespaces##2}\par\endgroup}%
+  \def\curraddr##1##2{\begingroup
+    \@ifnotempty{##2}{\nobreak\indent{\itshape Current address}%
+      \@ifnotempty{##1}{, \ignorespaces##1\unskip}\/:\space
+      ##2\par}\endgroup}%
+  \def\email##1##2{\begingroup
+    \@ifnotempty{##2}{\nobreak\indent{\itshape e-mail address}%
+      \@ifnotempty{##1}{, \ignorespaces##1\unskip}\/:\space
+      {##2}\par}\endgroup}%
+  \def\urladdr##1##2{\begingroup
+    \@ifnotempty{##2}{\nobreak\indent{\itshape URL}%
+      \@ifnotempty{##1}{, \ignorespaces##1\unskip}\/:\space
+      \ttfamily##2\par}\endgroup}%
+  \addresses
+  \endgroup
+}
+\copyrightinfo{}{}
+
+\newinsert\copyins
+\skip\copyins=3pc
+\count\copyins=1000 % magnification factor, 1000 = 100%
+\dimen\copyins=.5\textheight % maximum allowed per page
+
+\renewcommand{\topfraction}{0.95}   % let figure take up nearly whole page
+\renewcommand{\textfraction}{0.05}  % let figure take up nearly whole page
+
+%% Specify the dimensions of each page
+
+\setlength{\oddsidemargin}{.25 in}  %   Note \oddsidemargin = \evensidemargin
+\setlength{\evensidemargin}{.25 in}
+\setlength{\marginparwidth}{0.07 true in}
+\setlength{\topmargin}{-0.7 in}
+\addtolength{\headheight}{1.84 pt}
+\addtolength{\headsep}{0.25in}
+\addtolength{\voffset}{0.7 in}
+\setlength{\textheight}{8.5 true in}  % Height of text (including footnotes & figures)
+\setlength{\textwidth}{6.0 true in}   % Width of text line.
+\setlength{\parindent}{20 pt}   % Width of text line.
+\widowpenalty=10000
+\clubpenalty=10000
+\@twosidetrue \@mparswitchtrue \def\ds@draft{\overfullrule 5pt}
+\raggedbottom
+
+%% Pagestyle
+
+%% Defines the pagestyle for the title page.
+%% Usage: \lmcsheading{vol}{issue}{year}{pages}{subm}{publ}{rev}{spec_iss}{title}
+
+\def\lmcsheading#1#2#3#4#5#6#7{\def\ps@firstpage{\let\@mkboth\@gobbletwo%
+\def\@oddhead{%
+\hbox{%
+  \vbox to 30 pt{\scriptsize\vfill
+    \hbox{\textsf{Logical Methods in Computer Science}\hfil}
+    \hbox{\textsf{Vol.~? (?:?) 2???, ? pages}}
+    \hbox{\textsf{www.lmcs-online.org}}
+    \rlap{\vrule width\hsize depth .4 pt}}}\hfill
+\raise 4pt
+\hbox{%
+  \vbox to 30 pt{\scriptsize\vfill
+    \hbox{\textsf{}}
+    \hbox{\textsf{}}}}\hfill
+\raise 4pt
+\hbox{%
+  \vbox to 30 pt{\scriptsize\vfill
+    \hbox to 94 pt{\textsf{Submitted\hfill date}}
+    \hbox to 94 pt{\textsf{Published\hfill date}}
+    }}}
+\def\@evenhead{}\def\@evenfoot{}}%
+\thispagestyle{firstpage}}
+
+\def\endfront@text{%
+    \insert\copyins{\hsize\textwidth
+      \fontsize{6}{7\p@}\normalfont\upshape
+      \noindent
+\hbox{
+  \vbox{\fontsize{6}{8 pt}\baselineskip=6 pt\vss
+    \hbox{\hbox to 20 pt{\hfill}
+          \textsf{LOGICAL METHODS}\hfil}
+    \hbox{\hbox to 20 pt{\phantom{x}}
+          \textsf{IN COMPUTER SCIENCE}}}}
+\hfill\textsf{DOI:10.2168/LMCS-???}
+%\hfill\textsf{\copyright\shortauthors}
+\hfill
+\hbox{
+  \vbox{\fontsize{6}{8 pt}\baselineskip=6 pt\vss
+    \hbox{\textsf{\,\,\copyright\quad \shortauthors}\hfil}
+    \hbox{\textsf{Creative Commons}\hfil}}}
+\par\kern\z@}%
+}
+%\def\endfront@text{}
+
+\def\enddoc@text{}
+
+%% Defines the pagestyle for the rest of the pages
+%% Usage: \ShortHeadings{Minimizing Conflicts}{Minton et al}
+%%	  \ShortHeadings{short title}{short authors}
+
+%\def\firstpageno#1{\setcounter{page}{#1}}
+%\def\ShortHeadings#1#2{\def\ps@lmcsps{\let\@mkboth\@gobbletwo%
+%\def\@oddhead{\hfill {\small\sc #1} \hfill}%
+%\def\@oddfoot{\hfill \small\rm \thepage \hfill}%
+%\def\@evenhead{\hfill {\small\sc #2} \hfill}%
+%\def\@evenfoot{\hfill \small\rm \thepage \hfill}}%
+%\pagestyle{lmcsps}}
+
+%% MISCELLANY
+
+\def\@startsection#1#2#3#4#5#6{\bigskip%
+ \if@noskipsec \leavevmode \fi
+ \par \@tempskipa #4\relax
+ \@afterindentfalse
+ \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse\fi
+ \if@nobreak \everypar{}\else
+     \addpenalty\@secpenalty\addvspace\@tempskipa\fi
+ \@ifstar{\@dblarg{\@sect{#1}{\@m}{#3}{#4}{#5}{#6}}}%
+         {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
+}
+
+\def\figurecaption#1#2{\noindent\hangindent 40pt
+                       \hbox to 36pt {\small\sl #1 \hfil}
+                       \ignorespaces {\small #2}}
+% Figurecenter prints the caption title centered.
+\def\figurecenter#1#2{\centerline{{\sl #1} #2}}
+\def\figurecenter#1#2{\centerline{{\small\sl #1} {\small #2}}}
+
+%
+%  Allow ``hanging indents'' in long captions
+%
+\long\def\@makecaption#1#2{
+   \vskip 10pt 
+   \setbox\@tempboxa\hbox{#1: #2}
+   \ifdim \wd\@tempboxa >\hsize               % IF longer than one line:
+       \begin{list}{#1:}{
+       \settowidth{\labelwidth}{#1:}
+       \setlength{\leftmargin}{\labelwidth}
+       \addtolength{\leftmargin}{\labelsep}
+        }\item #2 \end{list}\par   % Output in quote mode
+     \else                                    %   ELSE  center.
+       \hbox to\hsize{\hfil\box\@tempboxa\hfil}  
+   \fi}
+
+
+% Define strut macros for skipping spaces above and below text in a
+% tabular environment.
+\def\abovestrut#1{\rule[0in]{0in}{#1}\ignorespaces}
+\def\belowstrut#1{\rule[-#1]{0in}{#1}\ignorespaces}
+
+%%% Theorem environments
+
+% the following environments switch to a slanted font:
+\theoremstyle{plain}
+
+\newtheorem{thm}{Theorem}[section]
+\newtheorem{cor}[thm]{Corollary}
+\newtheorem{lem}[thm]{Lemma}
+\newtheorem{prop}[thm]{Proposition}
+\newtheorem{asm}[thm]{Assumption}
+
+% the following environments keep the roman font:
+\theoremstyle{definition}
+
+\newtheorem{rem}[thm]{Remark}
+\newtheorem{rems}[thm]{Remarks}
+\newtheorem{exa}[thm]{Example}
+\newtheorem{exas}[thm]{Examples}
+\newtheorem{defi}[thm]{Definition}
+\newtheorem{conv}[thm]{Convention}
+\newtheorem{conj}[thm]{Conjecture}
+\newtheorem{prob}[thm]{Problem}
+\newtheorem{oprob}[thm]{Open Problem}
+\newtheorem{algo}[thm]{Algorithm}
+\newtheorem{obs}[thm]{Observation}
+\newtheorem{qu}[thm]{Question}
+\newtheorem{fact}[thm]{Fact}
+\newtheorem{pty}[thm]{Property}
+
+\numberwithin{equation}{section}
+
+% end-of-proof sign, to appear at right margin
+% Paul Taylor and Chris Thompson, Cambridge, 1986
+%
+\def\pushright#1{{%        set up
+   \parfillskip=0pt            % so \par doesn't push #1 to left
+   \widowpenalty=10000         % so we dont break the page before #1
+   \displaywidowpenalty=10000  % ditto
+   \finalhyphendemerits=0      % TeXbook exercise 14.32
+  %
+  %                 horizontal
+   \leavevmode                 % \nobreak means lines not pages
+   \unskip                     % remove previous space or glue
+   \nobreak                    % don't break lines
+   \hfil                       % ragged right if we spill over
+   \penalty50                  % discouragement to do so
+   \hskip.2em                  % ensure some space
+   \null                       % anchor following \hfill
+   \hfill                      % push #1 to right
+   {#1}                        % the end-of-proof mark (or whatever)
+  %
+  %                   vertical
+   \par}}                      % build paragraph
+
+\def\qEd{{\lower1 pt\hbox{\vbox{\hrule\hbox{\vrule\kern4 pt
+    \vbox{\kern4 pt\hbox{\hss}\kern4 pt}\kern4 pt\vrule}\hrule}}}}
+\def\qed{\pushright{\qEd}
+    \penalty-700 \par\addvspace{\medskipamount}}
+
+\newenvironment{Proof}[1][\proofname]{\par
+  \pushQED{\qed}%
+  \normalfont \topsep6\p@\@plus6\p@\relax
+  \trivlist
+  \item[\hskip\labelsep
+        \itshape
+    #1]\ignorespaces
+}{%
+  \popQED\endtrivlist\@endpefalse
+}
+\newenvironment{iteMize}[1]{\begin{enumerate}[#1]}{\end{enumerate}}
+\newenvironment{desCription}{\begin{enumerate}[\hbox to8 pt{\hfill}]}{\end{enumerate}}
+% Bibliographystyle
+
+\bibliographystyle{alpha}
+
+\endinput