1
0
Fork 0
doc/devel/format/environment/env-par.en.tm

344 lines
14 KiB
Plaintext
Raw Normal View History

2011-08-28 15:59:50 +08:00
<TeXmacs|1.0.7.10>
<style|tmdoc>
<\body>
<tmdoc-title|Paragraph layout>
<\explain>
<var-val|par-mode|justify><explain-synopsis|paragraph alignment>
<|explain>
This environment variable specifies the alignment of the different lines
in a paragraph. Possible values are <verbatim|left>, <verbatim|center>,
<verbatim|right> and <verbatim|justify>:
<\big-table>
<\quote-env>
<\quote-env>
<block|<tformat|<twith|table-width|1par>|<cwith|1|-1|1|-1|cell-hyphen|t>|<table|<row|<\cell>
<\with|par-mode|left>
This paragraph is aligned to the left. This paragraph is
aligned to the left. This paragraph is aligned to the left.
</with>
</cell>|<\cell>
<\with|par-mode|center>
This paragraph is has been centered. This paragraph is has been
centered. This paragraph is has been centered.
</with>
</cell>>|<row|<\cell>
<\with|par-mode|right>
This paragraph is aligned to the right. This paragraph is
aligned to the right. This paragraph is aligned to the right.
</with>
</cell>|<\cell>
This paragraph has been justified. Justification is the default
alignment mode for paragraphs. So be it.
</cell>>>>>
</quote-env>
</quote-env>
<|big-table>
The supported modes for alignment.
</big-table>
</explain>
<\explain>
<var-val|par-flexibility|1000.0><explain-synopsis|paragraph flexibility>
<|explain>
When using the justified alignment mode, it sometimes occurs that certain
lines need to be stretched a lot, thereby leaving abnormally large spaces
in the middle of those lines. This is typically the case inside
bibliographies with unbreakable hyperlinks. The <src-var|par-flexibility>
variable specifies a threshold above which justification of a line is
abandoned. More precisely, we switch to left alignment whenever the
remaining space on a line exceeds <src-var|par-flexibility> times the
maximal amount of stretching which still ``looks nice'' for the given
font.
<\big-table>
<\quote-env>
<block|<tformat|<twith|table-width|1par>|<cwith|1|-1|1|-1|cell-hyphen|t>|<table|<row|<\cell>
For certain paragraphs with wide unbreakable pieces of text, such
2020-11-05 01:54:30 +08:00
as the hyperlink <rigid|<href|https://www.texmacs.org>> it is
2011-08-28 15:59:50 +08:00
sometimes preferrable to switch from justified to left aligned text
when the spacing between words becomes to wide.
</cell>|<\cell>
<\with|par-flexibility|2.0>
For certain paragraphs with wide unbreakable pieces of text, such
2020-11-05 01:54:30 +08:00
as the hyperlink <rigid|<href|https://www.texmacs.org>> it is
2011-08-28 15:59:50 +08:00
sometimes preferrable to switch from justified to left aligned
text when the spacing between words becomes to wide.
</with>
</cell>>>>>
</quote-env>
<|big-table>
Difference between a large and small flexibility (on the left and right
hand sides respectively).
</big-table>
</explain>
<\explain>
<var-val|par-hyphen|normal><explain-synopsis|quality of hyphenation>
<|explain>
This parameter controls the quality of the hyphenation algorithm.
Possible values are <verbatim|normal> and <verbatim|professional>. The
professional hyphenation algorithm uses a global algorithm on the entire
paragraph, whereas the normal one uses a faster first-fit algorithm.
<\big-table>
<\with|font-base-size|10>
<\quote-env>
<\quote-env>
<block|<tformat|<twith|table-width|1par>|<cwith|1|-1|1|-1|cell-hyphen|t>|<table|<row|<\cell>
<with|par-hyphen|normal|The difference between the different
hyphenation algorithms provided by <TeXmacs> is seen best for
long paragraphs which are typeset into a narrow column. The
professional hyphenation usually succeeds to minimize the
number of ugly gaps between words.>
</cell>|<\cell>
<with|par-hyphen|professional|The difference between the
different hyphenation algorithms provided by <TeXmacs> is seen
best for long paragraphs which are typeset into a narrow
column. The professional hyphenation usually succeeds to
minimize the number of ugly gaps between words.>
</cell>>>>>
</quote-env>
</quote-env>
</with>
<|big-table>
Comparison different hyphenation algorithms. At the left hand side, we
have used the normal algorithm and on the right hand side the
professional one. Even though there are some ugly gaps at the right
hand side around ``hyphenation'', the really bad gap around ``The'' on
the left hand side has been avoided.
</big-table>
</explain>
<\explain>
2012-07-26 00:07:25 +08:00
<var-val|par-width|auto><explain-synopsis|paragraph width>
2011-08-28 15:59:50 +08:00
<|explain>
This environment variable controls the width of paragraphs. By default,
it is automatically determined as a function of the page (or screen) size
and margins.
</explain>
<\explain>
<var-val|par-left|0cm>
<var-val|par-right|0cm><explain-synopsis|left and right margins>
<|explain>
These environment variables specify absolute left and right margins for
the paragraph, with respect to the default left and right margins (which
are determined as a function of the page layout). For instance:
<\tm-fragment>
This text uses the default margins.
<\with|par-left|1cm>
This text uses a left margin of <verbatim|1cm>
</with>
<\with|par-left|2cm>
This text uses a left margin of <verbatim|2cm>
</with>
<\with|par-left|3cm>
This text uses a left margin of <verbatim|3cm>
</with>
<\with|par-left|3cm|par-right|3cm>
The left and right margins of this text have both been set to
<verbatim|3cm>.
</with>
</tm-fragment>
Environments like <markup|itemize> and <markup|quote-env> which maybe
nested usually compute new margins as a function of the old values by
adding or subtracting some space:
<\tm-fragment>
<inactive*|<assign|quote-env|<macro|body|<style-with|src-compact|none|<surround|<vspace*|0.5fn>|<right-flush><vspace|0.5fn>|<with|par-left|<plus|<value|par-left>|3fn>|par-right|<plus|<value|par-right>|3fn>|par-first|0fn|par-par-sep|0.25fn|<arg|body>>>>>>>
</tm-fragment>
</explain>
<\explain>
<var-val|par-first|1.5fn><explain-synopsis|first indentation>
<|explain>
The <src-var|par-first> parameter specifies the additional indentation
which is used for the first line of the paragraph. The aim of first
indentations is to indicate the starts of new paragraphs. An alternative
technique is the use of vertical whitespace.
<\big-table>
<\quote-env>
<\quote-env>
<block|<tformat|<twith|table-width|1par>|<cwith|1|-1|1|-1|cell-hyphen|t>|<table|<row|<\cell>
<\with|par-par-sep|0fn>
<\with|par-first|1.5fn>
The <tmstyle|article> and <tmstyle|book> styles in <TeXmacs>
indictate the starts of new paragraphs through the use of a
first indentation.
The <tmstyle|generic> and <tmstyle|letter> styles rather use
vertical whitespace.
</with>
</with>
</cell>|<\cell>
<\with|par-par-sep|0.5fn>
The <tmstyle|generic> and <tmstyle|letter> styles in <TeXmacs>
indictate the starts of new paragraphs through the use of
vertical whitespace.
The <tmstyle|article> and <tmstyle|book> styles rather use a
first indentation.
</with>
</cell>>>>>
</quote-env>
</quote-env>
<|big-table>
<label|par-first-tab>Two classical ways to indicate the starts of new
paragraphs.
</big-table>
</explain>
<\explain>
<var-val|par-sep|0.2fn><explain-synopsis|extra separation between
successive lines>
<|explain>
The sum of the font size and <inactive|<value|par-sep>> determines the
ideal distance between two successive base lines in a paragraph (also
called the ``base line skip''). Of course, when the lines contain large
boxes, then this distance may need to be increased. When <verbatim|1fn>
for <inactive|<value|par-sep>>, one may for instance produce documents
with a double interline space:
<\tm-fragment>
<\with|par-sep|1fn>
A double interline space corresponds to <var-val|par-sep|1fn>. Double
interline spaces are often used by lazy people who want to pretend
that they have written many pages. They generally do not care about
tropical rain forests.
</with>
</tm-fragment>
In the case when two successive lines use different base line skips, then
the maximal value is used in order to compute the ideal distance between
their baselines. This allows for a reasonable spacing when the font size
is changed from one paragraph to another:
<\tm-fragment>
<\with|par-par-sep|0fn>
Normal text.
<very-large|Some very large text.>
And back to normal.
</with>
</tm-fragment>
</explain>
<\explain>
<var-val|par-line-sep|0.025fn*><explain-synopsis|extra space between
lines>
<|explain>
This parameter corresponds an additional stretchable amount of whitespace
between successive lines in a paragraph. Setting
<inactive|<value|par-line-sep>> to a small stretchable value which
defaults to <math|0> allows the page breaker to correctly stretch pages
which contain a very long textual paragraph. Indeed,
<inactive|<value|par-line-sep>> vanishes, then the height of a textual
paragraph is of the form <math|a+b*n>, where <math|a> and <math|b> are
constants and <math|n> is the number of lines. There is no reason why the
usable height of a page should be of this form.
</explain>
<\explain>
<var-val|par-par-sep|0.5fn*><explain-synopsis|extra space between
paragraphs>
<|explain>
The <src-var|par-par-sep> parameter specifies the amount of vertical
whitespace which separates two successive paragraphs. This space is
determined in <hlink|stretchable length units|../basics/lengths.en.tm>.
By default, <TeXmacs> does not use any whitespace between successive
paragraphs, except when no nice page breaks could be found (this explains
the use of the <verbatim|fn*> length unit). Starts of new paragraphs are
rather indicated through the use of first indentations (see table
<reference|par-first-tab>).
In the case when two successive paragraph use different paragraph
separations, then the maximum of the two is taken. In fact, the
<src-var|par-par-sep> length is added to both the vertical spacing before
and the vertical spacing after the paragraph.
</explain>
<\explain>
<var-val|par-hor-sep|0.5fn>
<var-val|par-ver-sep|0.2fn><explain-synopsis|minimal space between ink>
<|explain>
When a paragraph contains several exceptionally large boxes, then
<TeXmacs> attempts to ``shove successive lines into another'' as long as
none of the boxes collide:
<\with|font-base-size|10>
<\tm-fragment>
Consider a fraction which decends more than usual like
<math|<frac|1|x+1>> at the end of a line and an expression like
<math|\<mathe\><rsup|\<mathe\><rsup|x>>> which is higher than usual.
When these expressions occur at different places, then <TeXmacs>
tries to render the successive lines in a compact manner.
In the case of a fraction <math|<frac|1|x+1>> and an exceptionally
high expression at the wrong place, like the expression
<math|\<mathe\><rsup|\<mathe\><rsup|x>>> here, the boxes are
separated by <src-var|env-ver-sep>.
</tm-fragment>
</with>
As soon as the horizontal distance between two large boxes is less than
<src-var|par-hor-sep>, then they are considered to be in collision. In
that case, the vertical distance between them must be at least
<src-var|par-ver-sep>. Also, the amount of showing never exceeds
<verbatim|1ex>.
When using an interline space of <verbatim|1.5> or <verbatim|2>, the
default value of <src-var|par-ver-sep> allows the user to type larger
formulas in the text while preserving a uniform layout. When using a
small <src-var|par-sep> and a large <inactive|<value|par-ver-sep>>, the
distance between two successive lines remains small, except when their
contents are horizontally close. This may for instance be used to reduce
the space between a short like followed by a centered equation.
</explain>
<\explain>
<var-val|par-fnote-sep|0.2fn><explain-synopsis|minimal space between
different footnotes>
<|explain>
This parameter controls the amount of vertical space between successive
footnotes.
</explain>
<\explain>
<var-val|par-columns|1><explain-synopsis|number of columns>
<|explain>
This environment variable specifies the number of columns into which the
text is being typeset. Different numbers of columns may be used
successively in the same document.
</explain>
<\explain>
<var-val|par-columns-sep|2fn><explain-synopsis|distance between columns>
<|explain>
This environment variable specifies the amount of horizontal whitespace
which separates different columns in multi-column mode.
</explain>
<tmdoc-copyright|2004|Joris van der Hoeven>
<tmdoc-license|Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts. A copy of the license is included in the section entitled "GNU Free
Documentation License".>
</body>