%% file: TXSfmts.doc - Formats and Style Files - TeXsis version 2.18
%% @(#) $Id: TXSfmts.doc,v 18.3 2001/04/06 21:52:07 myers Exp $
%======================================================================*
% (C) copyright 1994-2000 by Eric Myers and Frank E. Paige.
% This file is a part of TeXsis. Distribution and/or modifications
% are allowed under the terms of the LaTeX Project Public License (LPPL).
% See the file COPYING or ftp://ftp.texsis.org/texsis/LPPL
%======================================================================*
\ifx\undefined\bs \texsis\input TXSdocM.doc\input Manual.aux\fi
\section{Style Files and Specialized Formats \label{sect.fmts}}
Section~\use{sect.papers} described the basic layout of a \TeXsis\
document and the |\paper|, |\preprint|, |\Manuscript| and |\book| macros
for typesetting simple documents. It is often necessary to modify the
details of the layouts for such documents, particularly when submitting
camera ready manuscripts for conference proceedings. Since \TeXsis\ is
built on plain \TeX, you can of course use the full power of \TeX\ to
format a document as you please. However, \TeXsis\ contains macros to
produce documents in several of the common formats used in the physics
community. These and other specialized formats are described in this
section.
It would be very inefficient for \TeXsis\ to load the definitions of all
of the possible document styles listed below when at most only one of
them will be used. \TeXsis\ therefore puts these specialized
definitions in files known as ``style'' files (which generally have
filename extensions of ``|.txs|'') and only loads the particular style
file when it is needed. Besides saving space this also allows for quite
a bit of flexibility, because it is easy to modify style files or to
create new ones. For example, if the proceedings of a conference must
be typeset in a particular way (as is often the case) then the commands
to set-up a document in exactly the right way can be put in a style file
and e-mailed to all conference participants. Another use of specialized
style files is to define a \cs{thesis} format which conforms to the
rules and regulations of a particular university.
%=========================*
\subsection{Specialized Document Styles \label{sect.styles}}
The following styles for various conference proceeding formats,
journals, and thesis formats are distributed with \TeXsis~\fmtversion.
Use these in place of |\paper| or |\preprint|. The name of the style
file from which the definitions are loaded is shown in brackets.
%
\description{XNorthHollandTwo\quad}\clump
%
\itm{\CS{AIPproceedings}}
Similar to |\paper|, but specialized to the American Institute of
\hbox{Physics} (AIP) format. [AIP.txs]
%
\itm{\CS{IEEEproceedings}}
An IEEE format using oversized double column paper. See \Sect{dcol}.
[IEEE.txs]
%
\itm{\CS{IEEEreduced}}
An IEEE format reduced to 75\% of full size and printed with 9~pt.\
type for $8\frac{1}{2}\,{\rm in} \times 11\,{\rm in}$ paper. [IEEE.txs]
%
\itm{\CS{NorthHolland} }
Format for producing camera-ready copy for proceedings published by
North-Holland/Elsevier. This is a single column format with titles
and authors left justified and in eleven point type. [Elsevier.txs]
%
\itm{\CS{NorthHollandTwo}}
The North-Holland double column format for oversized paper.
[Elsevier.txs]
%
\itm{\CS{nuclproc}}
The ``NUCLPROC'' style for Nuclear Physics Proceedings. [nuclproc.txs]
%
\itm{\CS{WorldScientific}}
Similar to |\paper|, but specialized to the World Scientific
proceedings format. [WorldSci.txs]
%
\itm{\CS{PhysRev}}
Emulates the page layout and appearance of the {\sl Physical Review}.
[PhysRev.txs]
%
\itm{\CS{PhysRevManuscript}}
Similar to |\Manuscript| but customized for papers submitted to the
{\sl Physical Review}. [PhysRev.txs]
%
\itm{\CS{thesis}}
Similar to \cs{book}, but for printing a thesis. The default
|\thesis| format conforms to the requirements of the Yale
Graduate School, but it can (and probably should) be modified for
your own installation. [thesis.txs]
%
\enddescription
Other even more specialized styles are available, and some of them
can be found on the \TeXsis\ anonymous ftp server, in the directory
|/pub/texsis/styles|.
\bigskip
The IEEE and North Holland double column formats in the list above use
the double column macros described in Sect.~\use{sect.dcol}. For
example, \cs{NorthHollandTwo} sets up a document with an overall width
of 21.3~cm, a page length of 27.1~cm and a column width of 10.0~cm.
(Note that this is just about as wide or a little wider than most
small laser printers can print, so provisions have been made for
shifting the printed page horizontally to print one column at a time
if necessary.) A document printed with this format might have the
following basic structure:
\TeXexample
|smalltt\texsis
\NorthHollandTwo % set up double columns
\titlepage % but still single column mode
|
\endtitlepage % ends the title material
\doublecolumns % now start double column mode
|
\enddoublecolumns % balance the final columns
\bye
|endTeXexample
\noindent
Saying \cs{NorthHollandTwo} only defines the double column layout; it
does not turn on double column mode. The title material is printed in
single column format across the full page width, then the main body is
printed in double column format once \cs{doublecolumns} appears. It is
important to say \cs{enddoublecolumns} at the end of the document to
balance the columns on the last page. Formatting text in balanced
double columns can be quite tricky, so you should read \Sect{dcol}
carefully before trying to use any of the double column macros.
%==============================*
\subsubsection{Physical Review Formats}
The \CS{PhysRevManuscript} style is similar to \cs{Manuscript} but is
customized to satisfy the requirements for manuscripts submitted to
the {\sl Physical Review}. It uses true double
spacing, and it places the tables and figure captions at the end of
the document. By simply switching from this to \cs{preprint} you should
be able to produce a version suitable for distribution as a preprint
from the same manuscript file.
The \CS{PhysRev} and \CS{PhysRevLett} styles are not intended for
submission but rather emulate the page layouts in the {\sl Physical
Review} and {\sl Physical Review Letters} respectively. We have
attempted to reproduce accurately the double column layout, headlines,
footlines, reference style, etc., used in the actual journals. This
is still work in progress, but it may be useful both to see how a
paper would look in print and as an example for constructing other
styles. Setting up the headlines and page numbering requires calling
a few extra macros:
%
\example
|\texsis| \n
|\PhysRev| \n
|\TitleBanner{|\meta{Running Title Headline}|}| \n
|\AuthorBanner{|\meta{Running Author Headline}|}| \n
|\VolumeBanner{|\meta{series}|}{|\meta{vol}|}{|\meta{issue}%
|}{|\meta{page}|}| \n
|\titlepage| \n
...
\endexample
%
In |\VolumeBanner| the \meta{series} should be one of A, B, C, D, E,
for the {\sl Physical Review} or L for {\sl Physical Review Letters};
the volume, issue, and starting page arguments are self-explanatory.
Both \CS{PhysRev} and \CS{PhysRevLett} typeset the document in double
columns, so to make full use of these layouts you will need to read
about the double column macros described in \Sect{dcol}.
In particular, you should be aware of the following: in both the
\CS{PhysRev} and \CS{PhysRevLett} styles, double column mode is begun
automatically at the end of the title material (\cs{endtitlepage}).
Since any double column material is inside a group, any definitions made
at that point will only be defined inside that group. If you want to
define macros for use in the rest of your paper, you should do so before
the title material (or use \cs{gdef}).
%=========================*
\subsubsection{Thesis or Dissertation Format}
The style file {\tt \idx{thesis.txs}} contains two alternative
definitions of \CS{thesis}, one for Yale University (called
|\YaleThesis|) and the other for the University of Texas at Austin
(called |\UTthesis|). The default is that saying \CS{thesis} gives you
|\YaleThesis|, but this is easily changed by saying |\let\thesis=\UTthesis|.
If you are not at Yale or UT you will need to change the
macros in |thesis.txs| to create your own version of the \CS{thesis}
macro. Every university has different requirements for how a thesis is
typed or typeset, and these requirements often conflict. Perhaps the
first thing you should do if you want to write a thesis using \TeXsis\
is find out if someone else at your university has already done so, and
then copy their definition of \CS{thesis}. If you end up creating a
new style file for your university then we hope that you will make it
available for other students to use. We would also be willing to help,
by putting such style files on the \TeXsis\ anonymous ftp server.
If you have such a file (or other macros) you would like to contribute,
send us e-mail at {\tt texsis@texsis.org}.
%=========================*
\subsection{Creating New Styles}
It is very easy to create a new document style and style file.
By convention, \TeXsis\ style files end with the filename extension
``|.txs|,'' so all you need to do is put the definitions and macros
defining this new document style into such a file, and then read that
file in when beginning the document. For example, suppose you create a
style file called |mine.txs| which contains a document style called
|\mystyle|, which is a slightly altered version of \cs{paper}:
\TeXexample
\def\mystyle{\paper
\hsize=|
\vsize=|
\showsectIDfalse
...
}
|endTeXexample
\noindent
You could then simply read in this file at the beginning of the document,
with \cs{input}, and then invoke |\mystyle|, like so,
\TeXexample
\input mine.txs
\mystyle
|endTeXexample
However, you may have noticed that none of the special document styles
mentioned in \Sect{styles} were actually loaded with \cs{input},
although they are in fact read from a style file. This was done using
the \CS{autoload} command. Saying
\TeXexample
\autoload\AIPproceeings{AIP.txs}
|endTeXexample
defines |\AIPproceeings| to be a simpler instruction which, if invoked,
automatically loads the style file |AIP.txs|, which contains the real
definition of |\AIPproceedings|. After the style file has been loaded
this real |\AIPproceedings| is automatically called. It then appears as
if the definition of the macro was in \TeXsis's memory all the time,
though it really was only loaded from the file when called for.
As a practical example of using \CS{autoload}, suppose that you are a
student at Excited State University and you want to create a customized
\cs{thesis} macro which will load automatically from a style file called
|ESUthesis.txs|. You could copy the macros in the file |thesis.txs|
to this new file, and then edit them as needed. Then, to make the
new definition load automatically you would say
\TeXexample
\autoload\thesis{ESUthesis.txs}
|endTeXexample
\noindent
To make this new definition of \cs{thesis} available to
anyone using \TeXsis\ on your machine you would want to put this
\CS{autoload} command in the file |TXSsite.tex| before building the
\TeXsis\ format. This is described in more detail in Appendix~\use{install}.
To make the new definition automatically available just to you in your
thesis directory you could put the command in a file called
|TXSmods.tex| in that directory.
Important note: many \TeXsis\ style files and source files use the ``|@|''
character in the names of macros which are to be ``hidden'' from the
casual user. Since ``|@|'' is not a letter these macros can't normally
be used. If you are writing a style file which needs to use these
hidden macros you should say \CS{ATunlock} first, to make ``|@|'' a
letter, and then \CS{ATlock} when you are done to turn ``|@|'' back
into a non-letter.
\Ignore % The stuff below is maybe way too technical?
You may also need to make changes in some of more complicated macros.
This is most easily made by copying the original definition from one
of the |TXSxxxx.tex| files into |mine.txs| and editing it. For
example, if you want the abstract to be in 9~pt.\ type, copy the
definition of |\abstract| from |TXStitle.tex| and add |\ninepoint| to
it:
%
\TeXexample
|smalltt\def\abstract{% begin abstract of a paper or treatise
\endmode % end any previous field
\bigskip\bigskip % some space above
\centerline{ABSTRACT}% % ``ABSTRACT''
\medskip % space below that
\bgroup % begin \abstract group
\let\endmode=\endabstract % \endmode ends \abstract
\narrower\narrower % bring in margins
\ninepoint % NEW FOR \mystyle STYLE
\singlespaced} % single spaced
|endTeXexample
While some of the macros you need to change may be complicated, the
changes \hbox{you} will actually need to make will probably still be fairly
simple. For example, in the definition of |\section| in |TXSsects.tex|
you probably want to change only the part that actually prints the
section heading. This is a small part of the whole and is reasonably
well commented. The default is to print the section head left
justified, ragged right, with a hanging indentation whose width is set
by the section number:
%
\TeXexample
|smalltt%
% Print the Section title:
%
\ifx\tbf\undefined\def\tbf{\bf}\fi % default \tbf is \bf
\vbox{% % keep heading in \vbox
{\raggedright %
\pretolerance=2000\hyphenpenalty=2000 % no hyphenation
\setbox0=\hbox{\noindent\tbf\@fullID}%% find width of ID
\hangindent=\wd0 \hangafter=1 % for hanging indent
\noindent\unhbox0{\tbf{#1}}\relax % number and title
\medskip}}% %
\nobreak %
|endTeXexample
%
If instead you want the section headings to be centered with two
spaces (|\ \ |) after the number, you can replace this part of the
|\section| macro
%
\TeXexample
|smalltt%
% Print the Section title:
%
\ifx\tbf\undefined\def\tbf{\bf}\fi % default \tbf is \bf
\vbox{% % keep heading in \vbox
{\raggedcenter % USE RAGGED CENTER
\tbf\@fullID\ \ #1 % ID AND TITLE
\endraggedcenter % END RAGGED CENTER
\medskip}}% %
\nobreak %
|endTeXexample
%
\noindent
You can leave the rest of the \cs{section} macro alone and it will work
as before.
\endIgnore
%==================================================*
\subsection{Overhead Transparencies (Slides)}
\TeXsis\ contains a simple \CS{slides} format for making overhead
transparencies or similar material.
While \TeX\ is not a convenient language for graphical page layout, it
is sometimes useful to be able to convert a paper to transparencies or
visa versa.\Footnote*{However, until recently one of the
authors of \TeXsis\ preferred to make neatly lettered transparencies by
hand, using colored pens, rather than using a printer that could only
print in black and white.
He's changed his mind now that it is possible to produce text
in color.}
If you want to use |\slides|, simply begin your manuscript file with
%
\TeXexample
\slides
|endTeXexample
instead of (or in addition to) |\texsis|.
%
This will produce
%% NOT ANYMORE $8\frac{1}{2}\,{\rm in} \times 10\frac{1}{2}\,{\rm in}$
pages with $1\,{\rm in}$ margins in
the ``portrait'' orientation with 24~pt.\ type, with a ragged right
margin and lots of incentive to suppress hyphenation.
%% NOT ANYMORE and bottom margins.
\CS{slides} also defines \CS{bl} to insert a blank line and
\CS{np} to create a new page, since these are often useful for slides.
Since the \CS{slides} format is very simple, it is not loaded from a
style file.
%==================================================*
\subsection{Color PostScript Output \label{sect.color}}
Now that color printers are fairly common, it is useful to have some
way to produce text that is printed in different colors.
The simplest use of this is for producing overhead transparencies, as
with the \CS{slides} format.
\TeXsis\ has a simple set of macros, in the style file {\tt
color.txs}, which lets you change the colors of text printed using
PostScript.
This only works for PostScript output produced by\index{Rokicki,
Tomas} Tom Rokicki's {\tt dvips} program,\cite{Rokicki} using the
profile file {\tt color.pro} that is usually included with {\tt
dvips}.
To use these macros, you must first input the definitions,
\TeXexample
\input color.txs
|endTeXexample
To change the color of all text which follows, use the command \CS{SetColor},
as in
\TeXexample
\SetColor{Green}
|endTeXexample
Keep in mind that this will change \undertext{all}
text, including page numbers and headlines and footlines. To print a
small portion of text in some other color, use
\CS{colorit},
as in
\TeXexample
\colorit{Red}{The text inside these brackets is colored Red}
|endTeXexample
You can change the color of the background using \CS{background},
as in
\TeXexample
\background{Yellow}
|endTeXexample
\bigskip
\pagecheck{2in}
The 12 basic colors available are
\example
\settabs 4\columns
\+& Black & White & Gray \cr
\+& Red & Green & Blue \cr
\+& Cyan & Magenta & Yellow \cr
\+& Purple & Orange & Brown \cr
\endexample
Note that the case is important---the names must begin with an initial
capital letter.
For the basic colors listed above some shortcuts are also defined.
Specifically, you can simply use the color name as a command, with the
text to be colored as a single argument, as in
\TeXexample
\Red{This text is colored Red}
|endTeXexample
or you can say |\text|\meta{Color} to change the text color,
as in
\TeXexample
\textGreen
|endTeXexample
You can add shortcuts for other colors besides the basics
with the \CS{addColor} command. Saying
\TeXexample
\addColor{Salmon}
|endTeXexample
will define |\Salmon| and |\textSalmon| as shortcuts
for |\colorit{Salmon}{|\meta{text}|}| and |\setColor{Salmon}|.
Although the basic colors listed above should be enough for most
simple applications, there are actually a whole host of other colors
available. In fact, all of the colors found in a box of 64 Crayola
Crayons are defined in {\tt color.pro} for |dvips|. You can define
short-cuts for all of these simply by saying \CS{Crayolas}.
You can produce a list of all of the colors, with each printed in its
own color, by saying \CS{ListColors}.
The commands so far have just about the same syntax as those in the
macro package called {\tt COLORDVI.TEX}, by Jim
Hafner\reference{colordvi} Hafner, Jim, the {\tt COLORDVI.TEX} macros
are included in the {\tt dvips} distribution. See \Ref{Rokicki}
\endreference\space
(although the internal workings are slightly different).
Any plain \TeX\ file which uses {\tt COLORDVI.TEX} should also work
using {\tt color.txs}.
But the {\tt color.txs} macros also include commands to specifically
manipulate the PostScript color stack.
To change the color temporarily by pushing it onto the stack, and then
revert to the previous color by popping the stack, use \CS{PushColor}
and \CS{PopColor}, as in
\TeXexample
This text is in some color, probably black.
\PushColor{Purple}
This text will be purple.
\PopColor
This text will be back in the previous color.
|endTeXexample
Be aware that the color changes have nothing to do with TeX's grouping
mechanism (\ie\ curly brackets), but are based only on the PostScript
color stack.
If you really want the color to change back when a \TeX\ group ends
(whenever that might happen), you can use
\cs{aftergroup}, as in
\TeXexample
\begingroup\PushColor{Red}\aftergroup\PopColor
|endTeXexample
Then later when the group is ended, the \CS{PopColor} is automatically
executed and the color reverts to its previous value.
One nice way this can be used is to color all displayed equations,
by putting this all in \cs{everydisplay}, like so
\TeXexample
\everydisplay={\PushColor{BurntOrange}\aftergroup\PopColor}
|endTeXexample
A displayed equation is always constructed within a new group, and
when it ends the \CS{PopColor} on the \cs{aftergroup} stack is invoked
automatically and the text reverts to the previous color.
\bigskip
If the 64 colors listed by \CS{ListColors} are not enough for your
purposes, you can also define your own, using \CS{SetCmykColor} or
\CS{PushCmykColor}.
Colors are specified as a quadruple of intensity values between 0.0 and 1.0
(CMYK means Cyan, Magenta, Yellow, and blacK). For example:
\TeXexample
\SetCmykColor{.2 .3 .4 .1}
|endTeXexample
will give you a nice tan, while
\TeXexample
\PushCmykColor{.5 .5 .1 .2} Old Blue Eyes \PopColor
|endTeXexample
will print the text in the shade of blue specified by that particular
CMYK quadruple.
%==================================================*
\subsection{Twin Page Output}
It is sometimes desirable to produce preprints or other documents in a
compact format with two pages on each physical page in landscape
orientation. While this can be done with \cs{SetDoubleColumns}, a much
simpler approach is sufficient. \TeXsis\ contains a macro called
\CS{twinout} which redefines the output routine to produce two pages
per page, without attempting to balance columns or allowing spanned
equations, tables, etc. (thus avoiding many of the possible problems
with the more powerful double column macros). \CS{twinout} can be used
with any of the standard formats described in \Sect{papers} or
\Sect{fmts} or even with Plain \TeX. Since \CS{twinout} does not
select fonts, the user must do so:\index{twin page output}
%
\TeXexample
\texsis
\tenpoint
\def\Tbf{\twelvebf}
\def\tbf{\tenbf}
\twinout
|
|endTeXexample
Alternatively, the \CS{twinformat} command can be used to produce any
\TeXsis\ format in \CS{twinout} layout with 10~pt fonts. Thus the above
commands can be replaced by
\TeXexample
\texsis
\twinformat
|
|endTeXexample
Here \CS{twinformat} automatically sets up 10~pt fonts and appropriate
values for the title bold face fonts, just as in the previous example.
\CS{twinout} use the following dimensions:
%
\description{Xnormhsize\qquad}\clump
%
\itm{\CS{twinhsize}}
Total width for twin column output.
%
\itm{\CS{twinvsize}}
Column height for twin column output.
%
\itm{\CS{twincsize}}
Column width for twin column output.
%
\itm{\CS{normhsize}}
Normal value of \cs{hsize} in portrait mode.
%
\itm{\CS{normvsize}}
Normal value of \cs{vsize} in portrait mode.
%
\enddescription
All of these have sensible default values for $8.5\,{\rm in} \times
11\,{\rm in}$ paper but can be reset before \CS{twinout} is called. The
"normal" sizes should print properly with the default device driver
and printer. Appropriate default values for all these dimensions can
be set in |TXSsite.tex|.
\CS{twinout} puts \cs{LandscapeSpecial} on each page. This is null by
default but can be redefined to be an appropriate \cs{special} command
to produce landscape output with your device driver and printer. For
example, with |dvips|\cite{Rokicki}\index{dvips}\index{Rokicki, Tomas}
and a PostScript printer, use
\TeXexample
\def\LandscapeSpecial{\special{papersize=11in,8.5in}}
|endTeXexample
A default value can be set in |TXSsite.tex|.
\CS{twinprint} is a substitute for \cs{preprint} which sets the
title, author, and other titlepage material full size in landscape mode
and then switches to \CS{twinout} twin column output with 10~pt type for
the text of the paper. A typical preprint might read:
\TeXexample
\twinprint
\titlepage
\title
|
\endtitle
\author
|
\endauthor
\abstract
|
\endabstract
\endtitlepage
|
\bye
|endTeXexample
\nobreak\noindent
This produces a nice, compact format for preprints.
%>>> EOF TXSfmts.doc <<<