%% card.tex --- Reference Card for Rudel 0.2 % % Copyright (c) 1987, 1992 Free Software Foundation, Inc. % Copyright (c) 2009 Jan Moringen % % Author: Stephen Gildea (refcard.tex format) % Dave Gillespie (Calc reference card) % Jan Moringen (Rudel) % % This file is part of Rudel. % % Rudel is free software: you can redistribute it and/or modify it % under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. % % Rudel 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 % General Public License for more details. % % You should have received a copy of the GNU General Public License % along with rudel. If not, see . %% Commentary: % % The format for this file is adapted from the GNU Emacs reference % card version 1.9, by Stephen Gildea and the GNU Calc reference card % by Dave Gillespie. % % This file is intended to be processed by plain TeX. % Typical command to format: pdftex -t landscape card.tex % Typical command to print: tex card.tex % dvips -t landscape card.dvi %% Constants % \def\versionnumber{0.2} \def\versiondate{September 2009} \def\year{2009} \def\copyrightnotice{ \vskip 1ex plus 2 fill\begingroup\small \centerline{Copyright \copyright\ \year\ Jan Moringen} \centerline{written by Jan Moringen} \centerline{for Rudel version \versionnumber\ (\versiondate)} Permission is granted to make and distribute copies of this card provided the copyright notice and this permission notice are preserved on all copies. %For copies of the GNU Emacs Calc manual, write to the Free Software %Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. \endgroup} %% Header % % make \bye not \outer so that the \def\bye in the \else clause below % can be scanned without complaint. \def\bye{\par\vfill\supereject\end} \newdimen\intercolumnskip \newbox\columna \newbox\columnb \def\scaledmag#1{ scaled \magstep #1} % This format was designed by Stephen Gildea in October 1986. \hsize 3.2in \vsize 7.95in \hoffset -.75in \voffset -.745in \font\titlefont=cmbx10 \scaledmag2 \font\headingfont=cmbx10 \scaledmag1 \font\subheadingfont=cmbx10 \scaledmag0 \font\smallfont=cmr6 \font\smallsy=cmsy6 \font\eightrm=cmr8 \font\eightbf=cmbx8 \font\eightit=cmti8 \font\eighttt=cmtt8 \font\eightsy=cmsy8 \textfont0=\eightrm \textfont2=\eightsy \font\notefont=cmti7 \def\rm{\eightrm} \def\bf{\eightbf} \def\it{\eightit} \def\tt{\eighttt} \normalbaselineskip=.8\normalbaselineskip \normallineskip=.8\normallineskip \normallineskiplimit=.8\normallineskiplimit \normalbaselines\rm %make definitions take effect \let\maxcolumn=c \nopagenumbers \intercolumnskip=.46in \def\abc{a} \output={% % This next line is useful when designing the layout. %\immediate\write16{Column \folio\abc\space starts with \firstmark} \if \maxcolumn\abc \multicolumnformat \global\def\abc{a} \else\if a\abc \global\setbox\columna\columnbox \global\def\abc{b} %% in case we never use \columnb (two-column mode) \global\setbox\columnb\hbox to -\intercolumnskip{} \else \global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi} \def\multicolumnformat{\shipout\vbox{\makeheadline \hbox{\box\columna\hskip\intercolumnskip \box\columnb\hskip\intercolumnskip\columnbox} \makefootline}\advancepageno} \def\columnbox{\leftline{\pagebody}} \def\bye{\par\vfill\supereject \if a\abc \else\null\vfill\eject\fi \if a\abc \else\null\vfill\eject\fi \end} % we won't be using math mode much, so redefine some of the characters % we might want to talk about \catcode`\^=12 \catcode`\_=12 \chardef\\=`\\ \chardef\{=`\{ \chardef\}=`\} \parindent 0pt \parskip 1ex plus .5ex minus .5ex \def\small{\smallfont\textfont2=\smallsy\baselineskip=.8\baselineskip} \outer\def\newcolumn{\vfill\eject} \outer\def\title#1{{\titlefont\centerline{#1}}\vskip 1ex plus .5ex} \outer\def\section#1{\par\filbreak \vskip 3ex plus 2ex minus 2ex {\headingfont #1}\mark{#1}% \vskip 2ex plus 1ex minus 1.5ex} \outer\def\subsection#1{\par\filbreak \vskip 3ex plus 2ex minus 2ex {\subheadingfont #1}\mark{#1}% \vskip 2ex plus 1ex minus 1.5ex} \newdimen\keyindent \def\beginindentedkeys{\keyindent=1em} \def\endindentedkeys{\keyindent=0em} \endindentedkeys \def\paralign{\vskip\parskip\halign} \def\<#1>{$\langle${\rm #1}$\rangle$} \def\kbd#1{{\tt#1}\null} %\null so not an abbrev even if period follows \def\key#1#2{\leavevmode\hbox to \hsize{\vtop {\hsize=.75\hsize\rightskip=1em \hskip\keyindent\relax#1}\kbd{#2}\hfil}} \newbox\metaxbox \setbox\metaxbox\hbox{\kbd{M-x }} \newdimen\metaxwidth \metaxwidth=\wd\metaxbox % Redefine to make spaces a bit smaller \let\wkbd=\kbd \def\kbd#1{{\spaceskip=.37em\tt#1}\null} \def\wkey#1#2{\leavevmode\hbox to \hsize{\vtop {\hsize=.75\hsize\rightskip=1em \hskip\keyindent\relax#1}\wkbd{#2}\hfil}} \def\ccc{C-c\ c\ } \def\,{{\rm ,\hskip.55em}\ignorespaces} \def\lesssectionskip{\vskip-1.5ex} \def\iline#1{\par\line{\hskip1em\relax #1\hfill}\par} \font\eighti=cmmi8 \textfont1=\eighti %% Document % \title{Rudel Reference Card}\vskip-1ex \centerline{\tt http://rudel.sourceforge.net}\vskip1ex \centerline{(for Rudel version \versionnumber\ of \versiondate)} \section{Key Bindings} \lesssectionskip {\notefont All key bindings are only available when the global Rudel minor mode is active. See ``Minor Modes'' below.} \subsection{Hosting and Joining} \wkey{Join a Rudel session}{\ccc j} \wkey{Leave a Rudel session}{\ccc e} \wkey{Host a Rudel session}{\ccc h} \subsection{In a Session} The following commands are available once a Rudel session has been joined: \key{Change color}{\ccc c} \key{Create and publish document for buffer}{\ccc p} \key{Subscribe to a document}{\ccc s} The following commands are only available if the current buffer has an associated document (achieved by publishing or subscribing): \key{Detach buffer from document (unsubscribe)}{\ccc u} \section{Minor Modes} \subsection{Global Rudel Minor Mode} The global Rudel minor mode global-rudel-minor-mode is responsible for installing the Rudel menu and keymap. \subsection{Participants in Header Line} The mode ({\tt rudel-header-subscriptions-minor-mode}) shows subscribed users in the header line of the buffer. The associated global mode ({\tt global-rudel-header-subscriptions mode}) turns the mode on or off in all suitable buffers. \subsection{Buffer Status in Mode Line} The mode ({\tt rudel-mode-line-publish-state-minor-mode}) shows the publication state of the buffer in its mode line ({\tt P}: published, {\tt -}: not published) The associated global mode ({\tt global-rudel-mode-line-publish-state-mode}) turns the mode on or off in all suitable buffers. \eject \section{Backends} \lesssectionskip In Rudel, various kinds of backends are used to provide multiple pluggable implementations of functionalities like communication protocols, network transport, session initiation and parts of the user interface. \subsection{Protocol} {\bf Obby} This backend implements the obby protocol used by the Gobby collaborative editor until (including) version 4.9. \subsection{Session Initiation} {\bf Configured Sessions} Frequently used sessions can be configured permanently using the {\tt rudel-configured-sessions} customization variable. When there are configured sessions, connecting to one of these session is offered when joining a session using \kbd{\ccc j}. {\bf Zeroconf} The Zeroconf backends discovers collaboration sessions which are advertised using, well Zeroconf. Currently, it works for Rudel (obby backend) and Obby servers. When there are Zeroconf-advertised sessions, using \kbd{\ccc j} to join a session will display these sessions. \section{Examples} \subsection{Joining a Session with the obby backend} {\bf Without Zeroconf Discovery} \kbd{\ccc j}\hfil\break {\tt Server: }{\it SERVER} \kbd{RET}\hfil\break {\tt Port (default 6522): } \kbd{RET}\hfil\break {\tt Username: }{\it NAME} \kbd{RET}\hfil\break {\tt Color: }{\it COLOR} \kbd{RET}\hfil\break {\notefont (use bright colors like yellow)}\hfil\break {\it When connecting to a Rudel server:}\hfil\break -\hskip2ex {\tt Use Encryption (yes or no): }{\it NO} \kbd{RET}\hfil\break {\it When connecting to a Gobby server:}\hfil\break -\hskip2ex {\tt Use Encryption (yes or no): }{\it YES} \kbd{RET}\hfil\break {\tt Global Password: }{\it PASSWORD} \kbd{RET}\hfil\break {\it This password controls access to the session; just \kbd{RET} for none}\hfil\break {\tt User Password: }{\it PASSWORD} \kbd{RET}\hfil\break {\it This password prevents name stealing; just \kbd{RET} for none}\hfil\break {\bf With Zeroconf Discovery} \kbd{\ccc j}\hfil\break {\tt Choose Session: }Zeroconf advertised session {\it "NAME"}\kbd{RET}\hfil\break {\notefont (Note: by choosing "ask-protocol" here, you can still get the above behavior)}\hfil\break {\tt Username: }{\it NAME} \kbd{RET}\hfil\break {\tt Color: }{\it COLOR} \kbd{RET}\hfil\break {\tt Global Password: }{\it PASSWORD} \kbd{RET}\hfil\break {\tt User Password: }{\it PASSWORD} \kbd{RET}\hfil \copyrightnotice \bye % Local variables: % mode: plain-TeX; eval: (tex-pdf-mode); % End: