From 3b927eb81270ca256a85224fda0e0812120168a3 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 12 Jan 2006 23:47:08 +0000 Subject: trunk/Master/texmf-dist/tex/texsis/ git-svn-id: svn://tug.org/texlive/trunk@626 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/texsis/base/TXSmemo.tex | 330 ++++++++++++++++++++++++++ 1 file changed, 330 insertions(+) create mode 100644 Master/texmf-dist/tex/texsis/base/TXSmemo.tex (limited to 'Master/texmf-dist/tex/texsis/base/TXSmemo.tex') diff --git a/Master/texmf-dist/tex/texsis/base/TXSmemo.tex b/Master/texmf-dist/tex/texsis/base/TXSmemo.tex new file mode 100644 index 00000000000..0fcdabc4858 --- /dev/null +++ b/Master/texmf-dist/tex/texsis/base/TXSmemo.tex @@ -0,0 +1,330 @@ +%% file: TXSmemo.tex - Memoranda - TeXsis version 2.18 +%% @(#) $Id: TXSmemo.tex,v 18.0 1999/07/09 17:24:29 myers Exp $ +%======================================================================* +% This is a set of TeX macros for producing simple memos. +% The sytnax is: +% +% \MemoFormat (or simply \memo in TeXsis) +% \to +% \from +% \subj or \re is same as \subj +% \date +% \text +% +% \bye +% +%----------------------------------------------------------------------* +\message{Memo Format.} + +% ---------- Counters and such: + +\newdimen\memoindent \memoindent=2.54cm % indent for \to, \from, etc. +\newdimen\firstheadoffset % \headlineoffset for first page only +\firstheadoffset=0pt % start with headline down for \ORGANIZATION + +% ---------- Initialization: Memo document format for memoranda + +\def\Memo{\ContentsSwitchfalse% % no table of contents + \texsis % initialize TeXsis + \refswitchfalse % no reference list + \MemoFormat % Setup using \MemoFormat + \memoheader}% % do header at top +\def\memo{\Memo} % synonym + +\def\MemoFormat{% set up \Memo environment + \voffset=0.125truein % top margin + \hsize=6.5truein % width of text + \raggedbottom % + \advance \vsize by -\voffset % subtract \voffset from vertical size + \nopagenumbers % no footlines + \let\makeheadline=\makememhed % alternate way of making + \headline={\MemoHeadline}% % headlines for memos + \RunningHeadstrue % default + \headlineoffset=0.8cm % raise all following headlines + \firstheadoffset=0pt % start with headline down for + \def\subjectline{}% % start with this null + \def\nopagenumbers{\RunningHeadsfalse}% redefine \nopagenumbers + \def\pagenumbers{\RunningHeadstrue}%% and \pagenumbers for this document + \twelvepoint % default is 12pt + \quoteon % enable easy quotes + \def\annotations{\annotatememo}% % annotations for memo + \def\cc{\ccmemo}% % carbon copy for memo + \def\Encl{\enclmemo}% % enclosure for memo + \def\ps{\psmemo}% % post script for memo + \def\endmode{\relax}% % for first item + \def\to{\ifmmode\rightarrow\else\To\fi}% + \let\text=\memotext % enable \text + \let\Text=\memotext % \Text is a synonym + \let\body=\memotext % \body is synonym for \text +} + + +% \ORGANIZATION names your institution. Replace it with whatever you +% want for your own institution. + +\def\ORGANIZATION{} % change this in TXSsite.tex! + +% \memoheader prints the word MEMORANDUM at the top of the page and +% sets up for \to, \from, etc... + +\def\memoheader{% % banner for top of first page + \pageno=1 % begin on page 1 + \centerline{\fourteenpoint % 14 pt type centered + M E M O R A N D U M}% % + \bigskip\bigskip % space + \relax}% % + +%--------------------------------------- +% new def of \makeheadline for MEMOFORMAT, uses \firstheadoffset + +\def\makememhed{\vbox to 0pt{\vskip-22.5pt + \ifnum\pageno>1\vskip-\headlineoffset + \else\vskip-\firstheadoffset\fi + \line{\vbox to 8.5pt{}\the\headline}\vss}\nointerlineskip} + +% \MemoHeadline prints the subject and page number at the top of each page + +\def\MemoHeadline{% headline for Memoranda + \ifnum\pageno>1 % if not first page... + \ifRunningHeads % running headlines on top of page? + {\tenrm\subjectline\hfil Page~\folio}% % print subject line and page # + \else % no running headlines? + {\hfil}% % then nothing + \fi + \else % On the first page do header + {\hfil\twelvess\ORGANIZATION\hfil}% print name of organization + \fi}% + +%----------------------------------------------------------------------- +% \memoitem is the basic template for each field + +\def\memoitem#1{\endmode % end previous field + \begingroup % begin a new field + \def\endmode{\par\endgroup}% % set up to end this field + \parskip=0pt % no \parskip + \singlespaced % no big space if several lines + \medskip\noindent % skip down a bit + \hangindent=\memoindent % hanging indentation + \hangafter=1 % after first line + \hbox to \memoindent{{\tenss #1}\hfil}% label the field + \nobreak}% % don't break after label + +\def\endmode{\relax} % for first item + +%--------------------------------------- +% TO: and FROM: and FAX: + +\def\To{\memoitem{TO:}} +\def\TO:{\To} +\def\From{\memoitem{FROM:}} +\def\FROM:{\From} +\def\from{\From} + +\def\FAX{\memoitem{FAX \#:}} + +%--------------------------------------- +% CC: (Carbon Copies) + +\def\ccmemo{\endmode + \def\endmode{\vskip0pt\endgroup}% + \bigskip % skip down a bit + \begingroup\obeylines % obey line ends + \parskip=0pt % no skip between items + \ccitem{cc:\ }% + } +\def\CC{\cc} + +% ---------- \ccitem does the work for \cc and other end of memo fields + +\def\ccitem#1{\setbox0\hbox{#1\quad}% % box0 = argument + \parindent=\wd0 % get its width + \hang % hanging indentation + \rlap{\copy0}% % and write it + \vskip-\baselineskip\relax}% % kill the skip + +% ---------- \Distribution is like CC (\obeyines format) + +\def\distribution{\endmode + \def\endmode{\vskip0pt\endgroup}% + \bigskip % + \begingroup\obeylines % obey line ends + \def\n{\par}% % break lines at \n + \parskip=0pt % + \ccitem{Distribution:}% + } +\def\Distribution{\distribution}% % synonym + +% ---------- \enclmemo is also like \cc (obeylines format) + +\def\enclmemo{\endmode % + \def\endmode{\vskip0pt\endgroup}% % + \bigskip % skip down a bit + \begingroup\obeylines % obey line ends + \parskip=0pt % no skip between items + \ccitem{Encl:\ }% + } + +% ---------- \annotatememo is \annotations for memo format + +\def\annotatememo{\endmode % end previous item + \def\endmode{\vskip0pt\endgroup}% % set up new ending + \begingroup % changes local + \nobreak\bigskip\nobreak % skip some + \parindent=0pt\parskip=0pt % no indent or skip + \obeylines}% % obey line endings + +% ---------- \psmemo does \ps for a memo + +\def\psmemo{\endmode % end previous item + \def\endmode{\vskip0pt\endgroup}% % set up ending + \begingroup % start a group + \nobreak\bigskip\nobreak % skip some + \interlinepenalty 5000 % avoid breaks + \def\par{\endgraf\penalty 5000}}% % avoid breaks + +%--------------------------------------- +% SUBJECT: and RE: (saves first line in \subjectline for tops of pages) + +\def\subjectitem#1{\endmode % close previous field + \def\endmode{\relax}% % turn off \endmode before going to \memoitem + \gdef\@subjtype{#1}% % label the field + \begingroup\obeylines % obeylines is on to get first subject line + \getsubject}% % get first line +\def\Subj{\subjectitem{SUBJECT:}}% +\def\SUBJ{\subjectitem{SUBJECT:}}% +\def\subj{\subjectitem{SUBJECT:}}% +\def\subject{\subjectitem{SUBJECT:}}% +\def\Subject{\subjectitem{SUBJECT:}}% + +\def\re{\subjectitem{RE:}}% +\def\RE{\subjectitem{RE:}}% + +% \getsubject gets the first line in the field in \subjectline +% for use in the headline at the top of pages following + +{\obeylines\gdef\getsubject#1 + {\endgroup\gdef\subjectline{#1}% \subjectline is first line of \subject + \memoitem{\@subjtype}\subjectline\space}% print SUBJECT: +}% close obeylines + +%--------------------------------------- +% \date takes what follows on the same line and uses it as the +% date of the memo. If nothing follows then today's date is used. +% It is important for the date, if given, to be on the same line as \date. + +\def\Date{\endmode % close previous field + \def\endmode{\relax}% % turn off \endmode before going to \memoitem + \begingroup\obeylines % + \getdate} % get the date, or use today's + +\def\DATE{\Date} % synonym +\def\date{\Date} + +% \getdate looks for a date up until the end of the line + +{\obeylines\gdef\getdate#1 + {\endgroup %% close \obeylines + \ifx?#1?\relax\gdef\memodate{\today}% if no date given, use today's + \else\gdef\memodate{#1}\fi %% if date is given, use it + \memoitem{DATE:}\memodate}% %% print DATE: +}% close \obeylines for definitions + +\def\monthname#1{\ifcase #1 \errmessage{0 is not a month.} + \or January\or February\or March\or April\or May\or + June\or July\or August\or September\or October\or + November\or December% + \else \errmessage{#1 is not a month.}\fi} + +%--------------------------------------- +% TEXT: \text sets up for text of memo + +\def\memotext{\endmode % close last item + \def\endmode{\bigskip\vfil}% % \endmode is now blank space + \let\to\rightarrow % put \to back to normal + \bigskip\bigskip % skip down for text + \parskip=\normalbaselineskip % \parskip is one blank line + \noindent % like a letter + } +\def\text{\memotext} % start with \text = \memotext +\def\Text{\memotext} % \Text is a synonym + +% use \endmemo to end a memo, especially if you use \CC or similar. + +\def\endmemo{\endmode\vfill\eject\end} % ends CC: etc, then quits + +%======================================================================= +% FAX Memos: + +\def\faxmemo{\let\memoheader=\faxmemoheader + \memo\faxline + \vskip 2\baselineskip} + +\def\FaxNumber{} % Define your own return fax number + +% You can also use \faxline with \memo in other ways, so it's separate + +\def\faxline{\line{\tenrm Total pages: \hbox to 2cm{\hrulefill}\space + (including this page) \hfil Fax number: + \ifx\FaxNumber\empty\theBlank{4cm}% + \else \tenrm \FaxNumber\fi}} + +\def\faxmemoheader{% % banner for top of first page + \pageno=1 % begin on page 1 + \centerline{\fourteenpoint\bf % 14 pt type centered + FAX MEMORANDUM}% % + \bigskip\bigskip % space + \relax}% % + +%======================================================================= +% Referee format for Referee Reports +% +\def\Referee{\ContentsSwitchfalse % no table of contents + \texsis % initialize + \auxswitchfalse % no need for an .AUX file + \refswitchfalse % no reference list + \RefReptFormat} % Setup using \MemoFormat +\def\referee{\Referee}% % synonym + +\def\RefReptFormat{% + \voffset = 0.125 true in % top margin + \hsize = 6.5 true in % width of text + \raggedbottom % + \advance \vsize by -\voffset % subtract \voffset from vertical size + \nopagenumbers % no footlines + \headlineoffset=0.8cm % raise all following headlines + \firstheadoffset=0pt % start with headline down for + \let\makeheadline=\makememhed % + \def\ORGANIZATION{{\fourteenpoint\bf Referee Report}}% change \ORGANIZATION + \def\subjectline{Referee Report}% % running head is ``Referee Report'' + \headline={\MemoHeadline}% % just like a memo + \def\nopagenumbers{\RunningHeadsfalse}% redefine \nopagenumbers + \def\pagenumbers{\RunningHeadstrue}%% and \pagenumbers for this document + \twelvepoint % default is 12pt + \singlespaced\whitespaced % widely spaced, but not double + \parskip=\baselineskip % extra space between paragraphs + \def\endmode{\relax}% % for first item + \quoteon % enable easy quotes + \def\to{\ifmmode\rightarrow\else\To\fi}% + \def\From{\RefFrom}% % say something about \From + \let\text=\memotext % + \let\body=\memotext % + \def\authors{\memoitem{AUTHORS:}}% + \def\author{\memoitem{AUTHOR:}}% + \def\title{\subjectitem{TITLE:}}% + \def\MSref{\memoitem{MANUSCRIPT:}}% + \def\manuscript{\@obsolete\manuscript\MSref\memoitem{MANUSCRIPT:}}% + \def\Number{\memoitem{NUMBER:}}% + \hbox{\space}\bigskip} % space down from top a bit. + +\def\RefFrom{\begingroup\obeylines % obeylines to get first subject line + \getFrom}% % get first line + +{\obeylines %% look for line endings + \gdef\getFrom#1 +{\endgroup %% + \emsg{> Reminder: Referee Reports are usually anonymous. This one says...}% + \emsg{FROM: #1}% % say something about FROM + \memoitem{From:}#1\space}% % but do it anyway +} % close obeylines + +%>>> EOF TXSmemo.tex <<< -- cgit v1.2.3