Chapter 8
Useful Styles

One great feature of Image is its ability to use style (.STY) files to change formatting features of the document or to extend the capabilities of Image. Most extensions to Image require more than the few lines of macro code that have been used in most of the examples in the previous chapters, and it generally takes considerable effort and Image skill to develop a new style file or macro set. Fortunately, the Image community is a sharing one, and collections of a great number of style files can be found in many Internet archives. Once you learn how to use the Internet to obtain style files from Image archives, you will have gained the ability to take Image far beyond its original capabilities.

In this chapter, a few style files are that are particularly useful or interesting are presented, primarily to illustrate the wide variety of formatting that can be achieved. But before showing these example styles, a brief word is appropriate about finding the style file that is most suitable for a particular application.

8.1 Finding and Obtaining Style Files

If you have a special formatting problem, chances are that someone has already written a style file that will take care of it and has contributed it to the growing collection of freely available styles macros. But how to find it? David Jones has, for the past few years, maintained an annotated summary of the many style files available from Internet archives. This summary can be obtained via anonymous ftp from theory.lcs.mit.edu in directory ./pub/tex/TeX-index. The file TeX-index may also be found in other Internet archives (see the following Section).

8.1.1 Where to Find Style Files

Once you have determined the name of a style file that appears useful, you must obtain it from an archive site. Several sites around the world support the CTAN (Comprehensive TeX Archive Network). Each CTAN site has identical material and maintains authoritative copies of the many files. By far the best way to get files from these sites is via the Internet and to use anonymous ftp to download the desired file.

Some CTAN sites are ftp.uni-stuttgart.de [128.69.1.12] with Image root directory .soft/tex; ftp.tex.ac.uk [134.151.44.19], root directory ./pub/archive; and ftp.shsu.edu [192.92.115.10], root directory ./tex-archive. CTAN is also mirrored in wuarchive.wustl.edu. Other sites at which much Image material can be obtained include

Image

Once you begin to use the Internet to explore these and many other archives, you will initially be overwhelmed by the amount of material available for your use. However, after a bit or exploring, you will find that the Internet is an invaluable resource.

If you do not have access to the Internet, then you may still be able to obtain style files by joining TUG1 or through your Image supplier.

1The Image User Group publishes an excellent newsletter which contains many useful hints, reviews, and news about Image. To become a member, contact Image Users Group, P.O. Box 869, Santa Barbara, CA 93102-0869, or e-mail them at tugImagetug.org.

8.2 Verbatim Text from an External File

It is better to include lengthy verbatim material into a document from an “external” file. If the material is placed in the .TEX file, Image’s internal memory is quickly consumed during compilation. If a verbatim extends more than two or three pages, you are likely to get an out of memory error. The VERBFILE.STY style, created by Tim Morgan, Adrian Clark, and Chris Bowley, offers a capability to read verbatim material from an external file and bring it into the document without exhausting Image’s memory. This Image style file defines two user-callable macros:

Image

Here is an example of what is produced with verbatimfile{sub.lst}:

    DOUBLE PRECISION FUNCTION SVRT(ARG,ARG2,ERR)
    IMPLICIT REAL*8(A-H, 0-Z)
    EXTERNAL FUN
    COMMON ARG1
    ARG1=ARG2
    CALL GAUS8(FUN,0.DO,ARG,ERR,ANS,IERR)
    SVRT=ANS
    RETURN
    END

Here is the same file imported with verbatimlisting{sub.lst}:

1

DOUBLE PRECISION FUNCTION SVRT(ARG,ARG2,ERR)

2

IMPLICIT REAL*8(A-H,0-Z)

3

EXTERNAL FUN

4

COMMON ARG1

5

ARG1=ARG2

6

CALL GAUS8(FUN,0.DO,ARG,ERR,ANS,IERR)

7

SVRT=ANS

8

RETURN

9

END

8.3 Captions with Hanging Indents

In Section 5.3, it was seen that the default format that Image uses for table or figure captions is far from ideal. First it extends across the full width of the page (column) in a nonindented paragraph form. Second, it leaves no space after the caption, so space must be manually inserted. A typical result is shown in Table 8.1.

Table 8.1: The discrete energies used for deriving the approximate line-beam response function. This is a long caption that extends over several lines.

i  Ei

i  Ei

i  Ei

i  Ei

1  0.02

3  0.04

5  0.08

7  0.2

2  0.03

4  0.06

6  0.10

8  0.4

The HANGCAPTION.STY style (of unknown parentage) defines a hangcaption command that produces a hanging indent for the caption of a figure or table. Unlike Image’s caption command, hangcaption will honor a font size change, a very useful feature when placing small tables or figures side-by-side. It also automatically puts a small vertical space between the caption and table. Finally, a new captionwidth command can be used to restrict the width of the label. With hangcaption, Table 8.1 becomes

Table 8.2: The discrete energies used for deriving the approximate line-beam response function. This is a long caption that extends over several lines.

i Ei

i Ei

i Ei

i Ei

1 0.02

3 0.04

5 0.08

7 0.2

2 0.03

4 0.06

6 0.10

8 0.4

This was produced with

  egin{table}[htbp] captionwidth 4.0in
    centering
    hangcaption{The discrete energies $E_i$ (MeV) used for
                 deriving the approximate line-beam response
                 function. This is a long caption that extends
                 over several lines. }  label{t8b}
    egin{tabular}{|rc|rc|rc|rc|}  hline
       $i$ & $E_i$ & $i$ & $E_i$ & $i$ & $E_i$ & $i$ & $E_i$ \
       hline
          1 & 0.02 & 3 & 0.04 & 5 & 0.08 & 7 & 0.2 \
          2 & 0.03 & 4 & 0.06 & 6 & 0.10 & 8 & 0.4 \ hline
    end{tabular}
  end{table}

In Section 9.3, other more flexible methods are presented for customizing the caption for figures and tables.

8.4 More Flexible Numbering of Equations

The EQUATION style by Charles Karney extends the capabilities of Image to allow greater flexibility in labeling and numbering equations. To use this style, include the equation style in the documentstyle statement, for example,

          documentstyle[equation,12pt]{report}

In the following subsections, examples of the different equation environments provided by this style are given.

8.4.1 A Corrected eqnarray Environment

The EQUATION.STY modifies Image’s eqnarray and eqnarray* environments to correct the spacing around the = sign. The command yesnumber is used in eqnarray* to generate an equation number, while onumber prevents an automatic equation number in the eqnarray environment. Here is an example.

Image

8.4.2 The eqalign Environment

The new eqalign environment is like plain Image’s eqalign command. Note that this environment must be embedded in egin{equation}end{equation} (or its equivalent).

Image

8.4.3 The eqalignno Environment

EQUATION.STY’s eqalignno environment is just like Image’s eqalignno command. However, no egin{equation}end{equation} is needed. The command onumber is used to suppress the equation number. The environment eqalignno* is the same as eqalignno except that automatic equation numbers are suppressed (unless a yesnumber appears).

Image

8.4.4 The eqaligntwo Environment

The eqaligntwo environment is a two-equation per line equivalent of the eqalignno environment. The eqaligntwo* environment is similar except that automatic equation numbering is suppressed.

Image

8.4.5 The cases Environment

The cases environment is just like plain Image’s cases command. Note that this environment must be embedded in egin{equation}end{equation} (or its equivalent). The first column is treated as math and the second column as text.

Image

8.4.6 The subequations Environment

The EQUATION style also incorporates Stephen Gildea’s subequations environment. With this environment you can refer both to the overall set of equations and to individual subequations in it.

Image

With this environment Eqs.˜( ef{foo}) produces Eqs. (8.8) while the subequation reference Eq. ˜( ef {foo-a}) produces Eq. (8.8a), Eq. ˜( ef{foo-b}) produces Eq. (8.8b), and Eq.˜( ef{foo-c}) produces Eq. (8.8c).

8.5 Wrapping Text around a Figure: I

Wrapping text around figures in Image is difficult. However, the WRAPFIG.STY style, written by Donald Arseneau, allows you to place a figure of a specified width on the left or right of thepage and have the text flow around it. WRAPFIG will try to wrap text around the figure, leaving a gap of columsep by producing a number of short lines of text. WRAPFIG calculates the number of short lines needed based on the height of the figure plus the length intextsep. You can override this guess by giving the optional argument specifying the number of shortened lines (counting each displayed equation as 3 lines). WRAPFIG will not move a wrapped figure to the best place, so it is up to you to position it well. Any changes to the document can ruin your careful positioning, so wrapped figures should be positioned just before printing a final copy.

Figure 8.1: Example load profile

Image

Here are some hints for good placement. (1) The wrapfigure environment should be placed so as to not run over a page boundary. (2) Only ordinary text should have to flow past the figure (no section titles) although equations are acceptable if they fit. (3) Although it is convenient to give egin{wrapfigure} just after a paragraph has ended, if you want to start in the middle of a paragraph, you must put the environment between two words where there is a natural line break (such as “… on the” and “left or right...” in the above example).

At the point in the text where you wish to place a wrapped figure, issue the following:

    egin{wrapfigure}[no. narrow lines] {r or 1} {fig. width}
        <figure specification>
        [caption{…}  label{...}]
    end{wrapfigure}

Figure 8.1 was inserted in its paragraph with the following commands:

    … to place a figure of a specified width on the
    egin{wrapfigure}{r}{3.7in}
        vspace{l.5in}
        special{pcl: facload.pcl}
        caption{An example load profile} label{f8a}
    end{wrapfigure}
     left or right of the page and have the text ...

There are a few restrictions on the use of WRAPFIG.STY. First, the wrapfigure environment should not be used inside another environment (for example, a list). There should be a only one wrapped figure per paragraph. Finally, wrapped figures do not float and hence they may get out of sequence with other floating figures.

8.6 Wrapping Text around a Figure: II

Here is another way to wrap text around a figure, table, or any other object. The style WRAPFIG.STY discussed in the previous section allows you to place a figure of a specified width on the left orright of a paragraph if the userselects the proper line break atwhich the “short lines” are tobegin. A more sophisticatedway to wrap text around figures Or tables is to USe the Style file PICINPAR.STY created by Friedhelm Sowa. Here is a simple figure (created in the picture environment) that is placed to the right of the paragraph after the first two full lines. Notice that PICINPAR calculates the number of short lines needed and wraps the text accordingly. Moreover, the user does not have to determine after what word the short lines begin!

Figure 8.2: Sample figure

Image

The style PICINPAR provides three environments: (1) figwindow for embedding figures with a caption into a paragraph, (2) tabwindow for placing tables with a caption into a paragraph, and (3) window for putting anything into a display box without placing a table or figure caption beneath. Into these environments goes the text of the paragraph as well. The general syntax for figwindow is (the others are similar)

          figwindow [no. top long lines, |l, r, c|, {picture}, {caption}]

In this command l, r, or c refers to left, right, or center justification. For example, the first paragraph in this section was created with

    egin{figwindow}[2, r,{ unitlength lin
      egin{picture}(3, 1.2)
         put(0.7, 0.7){circle*{0.2}}     put(0.7, 0.7){circle{1.2}}
         put(0.7, 0.7){vector(0, l){0.4}} put(2.5, 0.7){circle*{0.5}}
      end{picture}
      vspace{-.2in}},{Sample figure}] */,--move caption up a bit
      Here is another way to wrap … the short lines begin!
    end{figwindow}

Table 8.3: Example

1

ABC

12:0

2

DEF

11:1

3

HIJ

10:2

4

KLM

9:3

5

1. XYZ

8:4

The command egin{tabwindow}end{tabwindow} can be used to place a table either to the left or right or centered in a paragraph. In fact, several paragraphs can be placed between the egin{tabwindow}… end{tabwindow} so that the table window spans multiple paragraphs as in this example.

The only problem that seems to be unusual with PICINPAR is that the table caption is placed under the table in the European fashion. (Actually, this is not too surprising since Sowa is from Germany.) You might be tempted to leave the caption argument of the tabwindow environment empty to avoid any caption at all. However, this does not work since the “Table xx:” is still added below the table. To avoid any caption at all, simply use the plain window environment.

This table example was created by the following input:

    egin{tabwindow} [2, 1, {egin{tabular} [t] {|r|l|rImage{ : }1|}
       …
     end{tabular}},{Example}]
   The command … use the { t window} environment.
    end{tabwindow}

A .PCL file created externally by some graphics programs can also be embedded into a paragraph with PICINPAR. This is an example done with Image’s special command. Here we are trying to place the figure in the center of the paragraph. However, with ment, there is no way the figure. We must cre-PCL file that is just the takes considerable trial most never would we try in the center of a para-cult for the eye to bridge ble. All in all, this capa-not seem to be very use-is when the graph or ta-width of the paragraph. the f igwindow environ-to specify the width of ate a the “space” for the right size. This often and error. However, alto place a figure or table graph since it is diffi-across the graphic or tability of PICINPAR does ful. The one exception 30 ble occupies the whole A full-width graphic can be more easily inserted into a paragraph using the methods discussed in Chapter 6. This paragraph which contains an imbedded central figure was created with

Image

    egin{window}[3, c,{
      vadjust{vskip 1.95in {hbox to 1.95in
      {special{pcl:ptpair.pcl}hfill}}}},{}]
      A { t .PCL} file created externally by some …
    end{window}

8.7 Customizing Headers and Footers

This FANCYHDS.STY style, created by Piet van Oostrum, allows you to customize page headers and footers in an easy way. The following description is taken almost verbatim from the documentation that comes with FANCYHDS. This style combines features that were separately available in other page styles and allows you to create quite complex headers and footers for your document.

With FANCYHDS you can define (1) three-part headers and footers, (2) rules in headers and footers, (3) headers and footers wider than extwidth, (4) multiline headers and footers, (5) separate headers and footers for even and odd pages, and (6) separate headers and footers for chapter pages.

To use this page style, you must include f ancyhds as a style option in the documentstyle declaration at the beginning of your Image file. You must also issue the pagestyle{fancy} command in the preamble after you have made any changes you want to extwidth. The page layout assumed by FANCYHDS is as follows:

Image

The L-fields will be left adjusted, the C-fields centered, and the R-fields right justified. Each of the six fields and the two rules can be defined separately.

8.7.1 Simple Use

The header and footer fields can be defined by commands lhead{LHEAD} and so on for the other fields. If the field depends on something in the document (for example, section titles), you must in general use the markboth and markright commands; otherwise, a title may end on the wrong page. You can do this by redefining the commands chaptermark, sectionmark, and so on (see the examples in Section 8.7.8). The defaults for these marks are as in the standard page styles. The marks can be put into a header or footer field by referencing leftmark and ightmark.

8.7.2 Rules in Header and Footer

The thickness of the rules below the header and above the footer can be changed by redefining the length parameter headrulewidth (default 0.4 point) and the length parameter footrulewidth (default 0). These may be redefined by the setlength command. A thickness of 0 point makes the rule invisible. If you want to make more complicated changes, you have to redefine the commands headrule and/or footrule.

For example, if you want a dotted line rather than a ruler, place the following command in the preamble:

     enewcommand{headrule}{vbox to Opt{hbox toheadwidth
                                                 {dotfill}vss}}

8.7.3 Headers and Footers Wider Than the Text

The headers and footers are set in a box of width headwidth. The default for this is the value of extwidth. You can make it wider (or smaller) by redefining headwidth with the setlength or addtolength command. The headers and footers will extend out of the page on the same side as the marginal notes. For example, to include the marginal notes, add both marginparsep and marginparwidth to headwidth.

8.7.4 Multiline Headers and Footers

Each of the six fields is set in an appropriate parbox, so you can put a multiline part in it with the \ command. It is also possible to put extra space in it with the vspace command. Note that if you do this you will probably have to increase the headheight or footskip lengths.

8.7.5 Headers and Footers for Even and Odd Pages

If you want the headers and footers to be different on even- and odd-numbered pages in the twoside style, the field-defining macros can be given an optional argument, to be used on even-numbered pages, like lhead[EVEN-LHEAD]{ODD-LHEAD}.

8.7.6 Separate Headers and Footers for Chapter Pages

Image gives a hispagestyle{plain} command for the first page of the document, the first page of each chapter and a couple of other pages. It might be incompatible with your page style. In this case you can use a slightly different version of the page style, called pagestyle{fancyplain}. This page style redefines the page style “plain” to also use page style “fancy” with the following modifications:

• The thicknesses of the rules is defined by plainheadrulewidth and plainfootrulewidth (both default 0).

• The six fields may be defined separately for the plain pages by giving them the value fancyplain{PLAIN-VALUE}{NORMAL-VALUE}. This construct may be used in both the optional argument and the normal argument.

Thus lhead[fancyplain{Fl}{F2}]{fancyplain{F3}{F4}} specifies the LHEAD value in a two-sided document:

Image Fl on an even-numbered “plain” page

Image F2 on an even-numbered normal page

Image F3 on an odd-numbered “plain” page

Image F4 on an odd-numbered normal page

8.7.7 Defaults

Image

8.7.8 Section Titles in the Headers and Footers

You can’t just change the header and/or footer fields in the middle of some text (for example, after a section header), because Image may have processed a bit more text before deciding to make up the page. It may have passed a section beginning, causing the wrong title on the page. Image has a mechanism called ‘marks’ to solve this problem. There is in Image a leftmark and a ightmark. Usually, leftmark is a chapter title and ightmark is a section title. To set the marks there are two commands: markboth{L}{R} sets the leftmark to L and the rightmark to R, and ightmark{R} sets only the rightmark to R. The default definitions of section, and so on, do this already for you. Consider this example.

Image

This header format can be easily achieved with FANCYHDS by putting the following in the document preamble.

           pagestyle{fancy}
           setlength{headrulewidth}{lpt}
           lhead[ m hepage]{ m ightmark}
            head[slleftmark]{ m hepage}

The last two lines specify that, on even pages (the [ ] parts), the left header is the page number and right header is leftmark, which is the chapter title because Imagemakes that the left argument of markboth (see page 162 of Lamport’s Image book). On odd pages (the { } parts), the left header is ightmark, which is the last section title because Image makes that the argument to markright, and the right header is the page number.

Now suppose you don’t want the section number and you want the section title in uppercase: You add the following to your preamble:

         enewcommand{sectionmark} [1] {markright{uppercase{#l}}}

Or if you don’t want the chapter number, but only the chapter title (not in uppercase):

         enewcommand{chaptermark} [1] {markboth{#l}{ }}

Note that the parameter in both cases is the section or chapter title.

Sec. 8.8. Frames and Boxes

8.8 Frames and Boxes

The style file FANCYBOX. STY, created by Timothy Van Zandt, allows you to use all kinds of boxes in a document. Besides creating special commands for boxes, many special macros are defined for handling verbatim text, using special list environments, placing frames around pages, and positioning text inside various boxes (including rotating text). The document that comes with FANCYBOX is an excellent tutorial on how to write macros and special environments. In the following, only a few of the special features are demonstrated.

8.8.1 Fancy Boxes

FANCYBOX defines the following variants of the Image fbox command: shadowbox, doublebox, ovalbox (using hinlines), and valbox (using hicklines). Here are examples:

Image

The distance between the box and the frame is fboxsep, as with Image’s fbox command. The commands use other parameters as well:

shadowbox: The width of the frame is fboxrule (the same as with fbox). The width of the shadow is shadowsize (default: 4pt).

doublebox: The width of the inner frame is .75fboxrule, and the width of the outer frame is 1.5fboxrule. The distance between the two frames is 1.5fboxrule plus .5pt.

ovalbox: The width of the frame is set by the hinlines declaration. The diameter of the corner arcs is set with the cornersize{<num} to <num> times the lesser of the width and height of the box. An alternative command [cornersize*{<dim>}] sets the diameter of the corner arcs approximately to <dim>. This is all approximate, because Image has a limited range of arc sizes to choose from. The default is cornersize{.5}.

valbox: This is like ovalbox, except that the width of the lines is set by the hicklines declaration.

There are no analogs to Image’s framebox command, which has various optional arguments not supported by fbox. You can get the exact same functionality by putting the argument of the preceding framing commands in a makebox.

There is also a variant fancyoval of Image’s oval picture object. The difference is that oval always makes the diameter of the corner arcs as large as possible, and fancyoval uses the cornersize command to set the diameter.

Warning: The commands described in this section change Image’s output routine and may not work with document styles that do the same. Also, bad arguments can cause serious errors with uninformative error messages.

8.9 Multicolumns of Text

The style MULTICOLS. STY, written by Frank Mittelbach, allows switching between a one-column and multicolumn format on the same page. Footnotes are handled correctly (for the most part), but will be placed at the bottom of the page and not under each column. Image’s float mechanism, however, is partly disabled in the current implementation. In the present version (1.4m), only page-wide floats (that is, *-forms) can be used within the scope of the environment.

An extensive document describing the many features of this style accompanies MULTICOLS. STY. With Mittelbach’s kind permission, a small portion of his documentation is printed below. This extract, reproduced almost verbatim, gives most of the instructions for the use of the multicols environment. Only the formatting has been changed to demonstrate the flexibility of multicols

8.9.1 The User Interface

To use the environment one simply says

   egin{multicolsH( number)}
         Imagemulticolumn textImage
   end{multicols}

where ImagenumberImage is the required number of columns and Imagemulticolumn textImage may contain arbitrary Image commands, except that floats and marginpars are not allowed in the current implementation.2

2To implement floats one has to reimplement the whole IAT^X output routine.

As its first action, the multicols environment measures the current page to determine whether there is enough room for some portion of multicolumn output. This is controlled by the ImagedimenImage variable premulticols which can be changed by the user with ordinary Image commands. If the space is less than premulticols, a new page is started. Otherwise, a vskip of multicolsep is added.3

3Actually the added space may be less because we use addvspace (see the IATgjX manual for further information about this command).

When the end of the multicols environment is encountered, an analogous mechanism is employed, but now we test whether there is a space larger than postmulticols available. Again we add multicolsep or start a new page.

It is often convenient to spread some text over all columns, just before the multicolumn output, without any page break in between. To achieve this the multicols environment has an optional second argument which can be used for this purpose. For example, the text you are now reading was started with

   egin{multicols}{3}
       [section{The User Interface}] …

If such text is unusually long (or short) the value of premulticols might need adjusting to prevent a bad page break. We therefore provide a third argument which can be used to overwrite the default value of premulticols just for this occasion. So if you want to combine some longer single column text with a multicols environment you could write

   egin{multicols}{3}
      [section{Index}
       This index contains …] [6cm]
       ...

Separation of the columns with vertical rules is achieved by setting the parameter columnseprule to some positive value. In this article a value of .4pt is used.

Since narrow columns tend to need adjustments in interline spacing we also provide a ImageskipImage parameter called multicolbaselineskip which is added to the aselineskip parameter inside the multicols environment. Please use this parameter with care or leave it alone; it is intended only for style file designers since even small changes might produce totally unexpected changes to your document.

8.9.2 Balancing Columns

Besides the previously mentioned parameters, some others are provided to influence the layout of the columns generated.

Paragraphing in Image is controlled by several parameters. One of the most important is called olerance: this controls the allowed ‘looseness’ (i.e. the amount of blank space between words). Its default value is 200 (the Image fussy) which is too small for narrow columns. On the other hand the sloppy declaration (which sets olerance to 10000 = ∞) is too large, allowing really bad spacing.4

4Look at the next paragraph, it was set with the sloppy declaration.

We therefore use a multicoltolerance parameter for the olerance value inside the multicols environment. Its default value is 9999 which is less than infinity but ‘bad’ enough for most paragraphs in a multicolumn environment. Changing its value should be done outside the multicols environment. Since olerance is set to multicoltolerance at the beginning of every multicols environment one can locally overwrite this default by assigning oleranceImageImage desired valueImage. There also existsa multicolpretolerance parameter holding the value for pretolerance within a multicols environment. Both parameters are usually used only by style designers.

Generation of multicolumn output can be divided into two parts. In the first part we are collecting material for a page, shipping it out, collecting material for the next page, and so on. As a second step, balancing will be done when the end of the multicols environment is reached. In the first step Image might consider more material while finding the final columns than it actually uses when shipping out the page. This might cause a problem if a footnote is encountered in the part of the input considered, but not used, on the current page. In this case the footnote might show up on the current page, while the footnotemark corresponding to this footnote might be set on the next one.5 Therefore the multicols environment gives a warning message6 whenever it is unable to use all the material considered so far.

5The reason behind this behavior is the asynchronous character of the Image page-builder. However, this could be avoided by defining very complicated output routines which don’t use Image primitives like insert but do everything by hand.

6This message will be generated even if there are no footnotes in this part of the text.

If you don’t use footnotes too often the chances of something actually going wrong are very slim, but if this happens you can help Image by using a pagebreak command in the final document. Another way to influence the behavior of Image in this respect is given by the counter variable ‘collectmore’. If you use the setcounter declaration to set this counter to ImagenumberImage, Image will consider ImagenumberImage more (or less) lines before making its final decision. So a value of—1 may solve all your problems at the cost of slightly less optimal columns.

In the second step (balancing columns) we have other bells and whistles. First of all you can say aggedcolumns if you don’t want the bottom lines to be aligned. The default is flushcolumns, so Image will normally try to align both the top and bottom baselines of all columns.

Additionally you can set another counter, the ‘unbalance’ counter, to some positive ImagenumberImage. This will make all but the rightmost column ImagenumberImage of lines longer than they would normally have been. ‘Lines’ in this context refer to normal text lines (i.e. one aselineskip apart); thus, if your columns contain displays, for example, you may need a higher (number) to shift something from one column into another.

Unlike ‘collectmore,’ the ‘unbalance’ counter is reset to zero at the end of the environment so it only applies to one multicols environment.

The two methods may be combined but I suggest using these features only when fine tuning important publications.

8.9.3 Floats

Within the multicols environment the usual star float commands are available but their function is somewhat different as in the two-column mode of standard Image Starred floats, e.g., figure*, denote page wide floats that are handled in a similar fashion as normal floats outside the multicols environment. However, they will never show up on the page where they are encountered. In other words, one can influence their placement by specifying a combination of t, b, and/or p in their optional argument, but h doesn’t work because the first possible place is the top of the next page. One should also note, that this means that their placement behavior is determined by the values of opfraction, etc. rather than by dbl....

8.9.4 Warnings

Under certain circumstances the use of the multicols environment may result in some warnings from Image or Image. Here is a list of the important ones and the possible cause:

Underfull hbox (badness …)

As the columns are often very narrow Image wasn’t able to find a good way to break the paragraph. Underfull denotes a loose line but as long the badness value is below 10000 the result is probably acceptable.

Underfull vbox …  while outputis
active

If a column contains a character with an unusual depth (for example, a ‘(‘ in the bottom line), then this message may show up. It usually is insignificant if not more than a few points.

LaTex Warning:  I moved some lines to
the next page

As mentioned above, multicols sometimes screws up the footnote numbering. As a precaution, whenever there is a footnote on a page and where multicols had to leave a remainder for the following page this warning appears. Check the footnote numbering on this page. If it turns out that it is wrong you have to break the page manually using ewpage or pagebreak[..].

Floats and marginpars not allowed inside
‘multicols’ environment!

This message appears if you try to use the marginpar command or an unstarred version of the figure or table environment. Such floats will disappear!

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.136.18.48