Linuxdoc Reference: Paragraphs

Next Previous Contents

## 7. Paragraphs

    <!entity % sectpar
            " %par; | figure | tabular | table | %mathpar; |
              %thrm; | %litprog; ">

    <!entity % par
            "  %list; | comment | lq | quote | tscreen " >

    <!entity % litprog " code | verb " >

Each of the here described tags form a paragraph.

For obvious reason a paragraph is normally

> The behaviour of the exceptions `figure` and `tabular` are explained there.

starting and ending with a new line.

> How else you would notice it's a paragraph ?

There are some tags, wich always form a paragraph, and one way to form a paragraph implicitly. There are various types of paragraphs, because not every type of paragraph is allowed to appear in every document class in every place.

The different types of paragraphs are explained in the next sections. For more details about `%litprog;` see Literate Programming.

## 7.1 Normal Paragraph

Normal paragraphs can be formed in two ways:

### Paragraph tag

The `<p>` tag is starting a new paragraph. This tag is mandatory if you want to finish a section header without explicitly closing the `sect` tag. In this case `<p>` tag then closes the `<sect>` tag automatically.

### Empty Newline

A empty line between two paragraph is implicitly starting a new paragraph. Take care within `descriptive` lists. There a empty `<tag>` tag will not be paragraphed by an empty line.

## 7.2 List-like Paragraphs

    <!entity % list
            " list | itemize | enum | descrip " >

This four tags indicate the starting of a list-like paragraph. Within each of the lists the single items are separated by an item tag.

    <!element item o o ((%inline; | %sectpar;)*, p*) >

As you can see, a item may again contain paragraphs (and therefore also may contain other lists - even of a different type).

### List Tag

    <!element list - - (item+)>

The list tag will be mapped to a nacked list without bullets, numers or anything else.

To see it, I place a small example:

    <list>
    <item>A point
    <item>Another one
    <item>Last
    </list>

Will look (depending on the mapping) like:

- A point
- Another one
- Last

### Itemize Tag

    <!element itemize - - (item+)>

The itemize tag will be mapped to a list with bullets, wich is usually place for lists where the order of the items is not important.

A small example:

    <itemize>
    <item>A point
    <item>Another one
    <item>Last
    </itemize>

Will look (depending on the mapping) like:

- A point
- Another one
- Last

### Enum Tag

    <!element enum - - (item+)>

The enum tag will be mapped to a list with numbers.

A small example:

    <enum>
    <item>A point
    <item>Another one
    <item>Last
    </enum>

Will look (depending on the mapping) like:

1. A point
2. Another one
3. Last

### Descrip Tag

    <!element descrip - - (tag?, p+)+ >

The descrip tag will be mapped to a descriptive list. The concept here is a little bit different than with the other types of lists mentioned above.

Here you place a tag (this time the tag's name is really litteraly `tag`) wich is described later on.

A small example:

    <descrip>
    <tag/sgml/structured general markup language.
    <tag/html - hypertext markup language/
    A sgml implementation.
    It contains some concepts about linking information together in a very
    convenient way.
    This made it to be so successful and to become the standard for documents
    published by the internet.
    <tag/internet/A worldwide connected internet (internet here as a
    technical term)
    </descrip>

Will look (depending on the mapping) like:

sgml

  structured general markup language.

html - hypertext markup language

  A sgml implementation. It contains some concepts about linking information together in a very covenient way. This made it to be so successfull and to become the standard for documents published by the internet.

internet

  A worldwide connected internet (internet here as a technical term)

## 7.3 Figures and Tables

The `<figure>` and the `<table>` tags form very special paragraphs. Not always they stay within the normal textflow. Both of the tags can hold a `loc` (loction) attribute wich is telling how to handle the flow of this special paragraph.

The value of the `loc` attribute is a string of up to four letters, where each letter declares a location at which the figure or table may appear, as described in table Table Locations.

h | here | At the same location as in the SGML file
t | top | At the top of a page
b | bottom | At the bottom of a page
p | page | On a separate page only with figures and tables Table Locations

The default value of the loc attribute is `top`.

### Table Tag

    <!element table   - - (tabular, caption?) >

As you can see a table consists of the `<table>` tag itself, including a `<tabular>` tag and a optional `<caption>` tag.

The `<tabular>` tag may also be placed without a `<table>` tag so it is described in detail in it's own section (see Tabular Tag).

The caption is used also to place the entry for the list of tables if you stated one (see The List Of Tables Tag).

A short example will show how it's working together.

    <table loc="ht">
    <tabular ca="lcr">
    Look|this|table@
    Isn't|it|nice@
    1.234|mixed|columns
    </tabular>
    <caption>A sample table
    </table>

Look | this | table
Isn't | it | nice
1.234 | mixed | columns A sample table

The caption "A sample table" would be the name in the list of tables.

### Figure Tag

    <!element figure - - ((eps | ph ), img*, caption?)>

The usage of the `<figure>` tag is equivalent to the `<table>` tag. Instead of the `<tabular>` tag you place either a `<eps>` or a `<ph>` tag.

### Encapsulated Postscript™ Tag

    <!attlist eps
            file cdata #required
            height cdata "5cm"
            angle cdata "0">

The `<eps>` tag is intended for including a external file in encapsulated postscript™ format into the document.

The attributes of the `<eps>` tag are:

file

  The `file` attribute needs the file name of a encapsulated postscript™ file ending with a `.ps` suffix. The mandatory `.ps` suffix must not be written.

height

  The height of the space the file is zoomed to. If you don't specify it defaults to 5cm. Take care that there's no spcae between the number and the length unit (`i`, `cm`).

angle

  The angle is given in normal degrees (0-360) and as the number is increasing the file is rotated counter clockwise.

A example:

    <figure loc="here">
    <eps file="logo" height="4cm" angle="15">
    <img src="logo.gif">
    <caption>A included encapsulated postscript&trade;
    </figure>

The img tag is ignored by LaTeX-mapping and useful for html, 'cause most browsers don't know about eps.

A included encapsulated postscript™ file.

The caption here would go to the list of figures as decribed in section The List Of Figures Tag.

### Placeholder Tag

    <!attlist ph
            vspace cdata #required>

This tag doesn't place anything but keeps a clean space for good old manual picture pasting. The space kept free is destined by the `vspace` attribte. Caveat: The numerical argument for the `vspace` attribte needs a unit directly behind the number. Don't leave a space there (same as for the `height` attribute in Encapsulated Postscript™ Tag.

    <figure loc="ht">
    <ph vspace="5cm">
    <caption>A blank space.
    </figure>

Results to:

A blank space for gluing a photo

At this point you might want to look for your scissors and the glue.

## 7.4 Tabular Tag

    <!element tabular - -
           (hline?, %tabrow, (rowsep, hline?, %tabrow)*, caption?) >

The `<tabular>` tag is interpreted as an own paragraph, if it is written standalone. Together with a `<table>` tag it gets part of the paragraph of the `<table>` tag (see Table tag).

Within the `tabular` tag you have rows an collumns wich are separating the text. You have to have at least one collumn and one row.

> Wouldn't be very usefull otherwise.

The `<tabular>` tag has a mandatory `ca` attribute for collumn allignement. The collumn allignement holds a single character for each collumn in their order from left to right. The chracters you may place per collumn described in table Collumns allignements

char | alignment
l | left
c | centered
r | right Column alignments

In theory you should be able to place a | into the `ca` attribure for drawing a horizontal line for separating two collumns. The problem: It doesn't work. The parser accepts it nicely, only the LaTeX output will map `|` to `{$|$}` wich is of course the set for four collumns with invalid collumn allignement for all four collums. I'll try to figure out what to do about it.

The columns within the `<tabular>` tag are separated by a collumn separator, the `<colsep>` tag. The character `|` is translated to `<colsep>` so you can also place that one instead

> Less typing, more fun.

.

What's valid for collumns is also valid for rows. You separate the by a row separator, the `<rowsep>` tag. The character `@` is translated to `<rowsep>`.

Optional you can place a horizontal line with the `<hline>` tag. Take care with that one: The SGML tools will parse it nicely weather you place it in front of the row you want under the line, or behind the end of the row you want over it. But the only place to write it without causing the parser to shout "error" is to write it dircetly and without space or newline behind the row separator.

    <tabular ca="lcr">
    Look|this|table@<hline>
    Isn't|it|nice@
    1.234|mixed|columns@
    </tabular>

Results in table Sample table for tabular tag

Look | this | table
Isn't | it | nice
1.234 | mixed | columns
Sample table for tabular tag

Attention:

  In LaTeX mapping everything works nice if you place a tabular tag without a table tag, only in the other mappings (e.g. html) it will be messed up.

## 7.5 Mathematical Paragraph

    <!entity % mathpar " dm | eq " >

A mathematical paragraph consits either of a displayed formula, tagged by `<dm>`

> No, sorry, not for Deutschmark! ;-)

or an equation, tagged by `<eq>`. They work very much the same.

Both of these tags contain a mathematical formula. See Mathematical Formulas for the tags valid here.

Note:

  Because neither Netscape nor Microsoft has seen any need to add mathematical mappings to their browsers (like demanded and defined by w3c), there is no nice way of mapping, or at least displaying the math stuff in html. So if you view the online version, feel free to wonder what nonsense this man is telling here. Might be you should take a glance at the postscript version.

### Displayed Formula Tag

This tag displays a mathematical formula as a paragraph. The formula is mapped centered as a single line

> No guarantee for that. You know: Mapping is a matter of taste.

.

    <dm>(a+b)<sup/2/=a<sup/2/+2ab+b<sup/2/</dm>

Is mapped to: (a+b)2=a2+2ab+b2

### Equation Tag

    <dm>(a+b)<sup/2/=a<sup/2/+2ab+b<sup/2/</dm>

Is mapped to: (a+b)2=a2+2ab+b2

## 7.6 Theorem Paragraph

    <!entity % thrm
            " def | prop | lemma | coroll | proof | theorem " >

    <!element def - - (thtag?, p+) >
    <!element prop - - (thtag?, p+) >
    <!element lemma - - (thtag?, p+) >
    <!element coroll - - (thtag?, p+) >
    <!element proof - - (p+) >
    <!element theorem - - (thtag?, p+) >

As you can see the different types of theorem paragraphs are nearly identical. The only exception wich is a little bit different is the proof wich doesn't own a `thtag`. For all the others the `thtag` is giving the tag of the theorem paragraph.

Yust try to use that one, wich is fitting the meaning of what you are typing.

    <thrm>
    <thtag>Alexander's thrm</thtag>
    Let <f>&lt;fi/G/</f> be a set of non-trivially achievable subgoals
    and &mu; an order on <f>&lt;fi/G/</f>. &mu; is abstractly
    indicative if and only if it is a linearization of
    <f><lim><op>&mu;</op><ll><fi/G/</ll><ul>&ast;</ul></lim></f>.
    </theorem>

The `thrm` is replaced by the adequate tag.

Maybe somebody knowing about mathematics would be shocked about my abuse of the types, but I'm lazy so I simply copied the examples:

Definition (`def`): Alexander's Definition

Let G be a set of nontrivially achievable subgoals and µ an order on G. µ is abstractly indicative if and only if it is a linearization of µ G

*

.

Proposition (`prop`): Alexander's Proposition

Let G be a set of nontrivially achievable subgoals and µ an order on G. µ is abstractly indicative if and only if it is a linearization of µ G

*

.

Lemma (`lemma`): Alexander's Lemma

Let G be a set of nontrivially achievable subgoals and µ an order on G. µ is abstractly indicative if and only if it is a linearization of µ G

*

.

Corollation (`coroll`): Alexander's Corollary

Let G be a set of nontrivially achievable subgoals and µ an order on G. µ is abstractly indicative if and only if it is a linearization of µ G

*

.

Alexander's Theorem

Let G be a set of nontrivially achievable subgoals and µ an order on G. µ is abstractly indicative if and only if it is a linearization of µ G

*

.

The proof is just the same without the `thtag`:

Let G be a set of nontrivially achievable subgoals and µ an order on G. µ is abstractly indicative if and only if it is a linearization of µ G

*

.

## 7.7 Code and verbatim Paragraphs

Both tags from a paragraph and have very similar behavior. Inside this tags most special characters don't need their named form as in section Named Symbols. The exceptions are:

1. &etago; -> </ -> `end of tag open`

Maybe later the list will grow.

In difference to the normal paragraph mapping white-spaces and newlines will be mapped literally (as you write them in your source).

Also (with respect to manual layout) the font for mapping will be a non-proportional one.

> See the difference between IIWW and `IIWW`.

Note:

  Aggain, I'm neither a native speaker not I love mathematics a lot. So I just placed some nonsense, wich might cause headache and grey hair for people who want to use this document for learning to formulate mathematical or physical theories.

  Feel free to send better examples.

### Code Tag

    <!element code - - rcdata>

Use the code tag, if you want to write sourcecode example within your text.

A code sample

<code>

    #include <stdio.h>
    int main() {
        printf("Hello world");
        return 1;
    }

</code>

### Verbatim Tag

    <!element verb - - rcdata>

Use the verbatim tag for anything else than sourcecode (use Code Tag for this) which needs the good old whitespace padding, like terminal hardcopy, ASCII-Graphics etc.

A verb sample

<verb>

    /////////
    | *   * |
    |   |   |
    | <---> |
     \_____/

</verb>

Next Previous Contents