# LaTeX/Text Formatting

LaTeX

Getting Started

Common Elements

Mechanics

Technical Texts

Special Pages

Special Documents

Creating Graphics

Programming

Miscellaneous

Help and Recommendations

Appendices

edit this boxedit the TOC

This section will guide you through the formatting techniques of the text. Formatting tends to refer to most things to do with appearance, so it makes the list of possible topics quite eclectic: text style, spacing, etc. If formatting may also refer to paragraphs and to the page layout, we will focus on the customization of words and sentences for now.

A lot of formatting techniques are required to differentiate certain elements from the rest of the text. It is often necessary to add emphasis to key words or phrases. Footnotes are useful for providing extra information or clarification without interrupting the main flow of text. So, for these reasons, formatting is very important. However, it is also very easy to abuse, and a document that has been over-done can look and read worse than one with none at all.

LaTeX is so flexible that we will actually only skim the surface, as you can have much more control over the presentation of your document if you wish. Having said that, one of the purposes of LaTeX is to take away the stress of having to deal with the physical presentation yourself, so you need not get too carried away!

## Spacing

### Line Spacing

If you want to use larger inter-line spacing in a document, you can change its value by putting the

 \linespread{factor}

command into the preamble of your document. Use \linespread{1.3} for "one and a half" line spacing, and \linespread{1.6} for "double" line spacing. Normally the lines are not spread, so the default line spread factor is 1.

The setspace package allows more fine-grained control over line spacing. To set "one and a half" line spacing document-wide, but not where it is usually unnecessary (e.g. footnotes, captions):

 \usepackage{setspace} %\singlespacing \onehalfspacing %\doublespacing %\setstretch{1.1}

To change line spacing within the document, the setspace package provides the environments singlespace, onehalfspace, doublespace and spacing:

 This paragraph has \\ default \\ line spacing. \begin{doublespace} This paragraph has \\ double \\ line spacing. \end{doublespace} \begin{spacing}{2.5} This paragraph has \\ huge gaps \\ between lines. \end{spacing}

### Non-breaking spaces

This essential feature is a bit unknown to newcomers, although it is available on most WYSIWYG document processors. A non-breaking space between two tokens (e.g. words, punctuation marks) prevents the processors from inserting a line break between them. Besides a non-breaking space cannot be enlarged. It is very important for a consistent reading.

LaTeX uses the '~' symbol as a non-breaking space. You would usually use non-breaking spaces for punctuation marks in some languages, for units and currencies, for initials, etc. In French typography, you would put a non-breaking space before all two-parts punctuation marks.

Examples:

 D.~\textsc{Knuth} 50~€

### Space between words and sentences

To get a straight right margin in the output, LaTeX inserts varying amounts of space between the words. By default, it also inserts slightly more space at the end of a sentence. However, the extra space added at the end of sentences is generally considered typographically old-fashioned in English language printing. (The practice is found in nineteenth century design and in twentieth century typewriter styles.) Most modern typesetters treat the end of sentence space the same as the interword space. (See for example, Bringhurst's Elements of Typographic Style.) The additional space after periods can be disabled with the command

 \frenchspacing

which tells LaTeX not to insert more space after a period than after ordinary character. Frenchspacing can be turned off later in your document via the \nonfrenchspacing command.

If an author wishes to use the wider end-of-sentence spacing, care must be exercised so that punctuation marks are not misinterpreted as ends of sentences. TeX assumes that sentences end with periods, question marks or exclamation marks. Although if a period follows an uppercase letter, this is not taken as a sentence ending, since periods after uppercase letters normally occur in abbreviations. Any exception from these assumptions has to be specified by the author. A backslash in front of a space generates a space that will not be enlarged. A tilde ‘~’ character generates a non-breaking space. The command \@ in front of a period specifies that this period terminates a sentence even when it follows an uppercase letter. (If you are using \frenchspacing, then none of these exceptions need be specified.)

### Stretched spaces

You can insert a horizontal stretched space with \hfill in a line so that the rest gets "pushed" toward the right margin. For instance this may be useful in the header.

 Author Name \hfill \today

Similarly you can insert vertical stretched space with \vfill. It may be useful for special pages.

 \maketitle \vfill \tableofcontents \clearpage \section{My first section} % ...

See Lengths for more details.

### Manual spacing

The spaces between words and sentences, between paragraphs, sections, subsections, etc. is determined automatically by LaTeX. It is against LaTeX philosophy to insert spaces manually and will usually lead to bad formatting. Manual spacing is a matter of macro writing and package creation.

See Lengths for more details.

## Hyphenation

LaTeX hyphenates words whenever necessary. Hyphenation rules will vary for different languages. LaTeX only supports English by default, so if you want to have correct hyphenation rules for your desired language, see Internationalization.

If the hyphenation algorithm does not find the correct hyphenation points, you can remedy the situation by using the following commands to tell TeX about the exception. The command

 \hyphenation{word list}

causes the words listed in the argument to be hyphenated only at the points marked by “-”. The argument of the command should only contain words built from normal letters, or rather characters that are considered to be normal letters by LaTeX. It is known that the hyphenation algorithm does not find all correct American English hyphenation points for several words. A log of known exceptions is published periodically in the TUGboat journal. (2012 list: https://www.tug.org/TUGboat/tb33-1/tb103hyf.pdf)

The hyphenation hints are stored for the language that is active when the hyphenation command occurs. This means that if you place a hyphenation command into the preamble of your document it will influence the English language hyphenation. If you place the command after the \begin{document} and you are using some package for national language support like babel, then the hyphenation hints will be active in the language activated through babel. The example below will allow “hyphenation” to be hyphenated as well as “Hyphenation”, and it prevents “FORTRAN”, “Fortran” and “fortran” from being hyphenated at all. No special characters or symbols are allowed in the argument. Example:

 \hyphenation{FORTRAN Hy-phen-a-tion}

The command \- inserts a discretionary hyphen into a word. This also becomes the only point where hyphenation is allowed in this word. This command is especially useful for words containing special characters (e.g., accented characters), because LaTeX does not automatically hyphenate words containing special characters.

 \begin{minipage}{2in} I think this is: su\-per\-cal\-% i\-frag\-i\-lis\-tic\-ex\-pi\-% al\-i\-do\-cious \end{minipage} $\begin{array}{l}\mbox{I think this is: supercalifragi-}\\ \mbox{listicexpialidocious}\end{array}$

LaTeX does not hyphenate compound words that contain a dash[1]. There are two packages that can add back flexibility. The hyphenat package supplies the \hyp command. This command typesets the dash and then subjects the constituent words to automatic hyphenation. After loading the package:

 \usepackage{hyphenat}

one should write, instead of electromagnetic-endioscopy:

 electromagnetic\hyp{}endioscopy

The extdash package also offers features for controlling the hyphenation of compound words containing dashes — as opposed to the words themselves which it leaves to LaTeX. The shortcuts option enables a more compressed syntax:

 \usepackage[shortcuts]{extdash}

Typical usage is as follows, assuming the compressed syntax. In both cases, LaTeX can break and hyphenate the constituent words, but in the latter case, it will not break after the L:

 electromagnetic\-/endioscopy L\=/approximation

One or more words can be kept together on the one line with the standard LaTeX command:

 \mbox{text}

This prevents hyphenation and causes its argument to be kept together under all circumstances. For example:

 My phone number will change soon. It will be \mbox{0116 291 2319}.

\fbox is similar to \mbox, but in addition there will be a visible box drawn around the content.

To avoid hyphenation altogether, the penalty for hyphenation can be set to an extreme value:

 \hyphenpenalty=100000

You can change the degree to which LaTeX will hyphenate by changing the value of \tolerance=1000 and \hyphenpenalty=1000. You'll have to experiment with the values to achieve the desired effect. A document which has a low tolerance value will cause LaTeX not to tolerate uneven spacing between words, hyphenating words more frequently than in documents with higher tolerances. Also note that using a higher text width will decrease the probability of encountering badly hyphenated word. For example adding

 \usepackage{geometry}

will widen the text width and reduce the amount of margin overruns.

## Quote-marks

LaTeX treats left and right quotes as different entities. For single quotes,  (on American keyboards, this symbol is found on the tilde key (adjacent to the number 1 key on most keyboards) gives a left quote mark, and ' is the right. For double quotes, simply double the symbols, and LaTeX will interpret them accordingly. (Don't use the " for right double quotes: when the babel package is used for some languages (e.g. German), the " is redefined to produce an umlaut accent; using " for right double quotes will either lead to bad spacing or it being used to produce an umlaut). On British keyboards, '  ' is left of the ' 1 ' key and shares the key with ' ¬ ', and sometimes ' ¦ ' or ' | '. The apostrophe (') key is to the right of the colon/semicolon key and shares it with the ' @ ' symbol.

 To quote' in LaTeX To quote'' in LaTeX To quote" in LaTeX To ,,quote'' in LaTeX ,,German quotation marks <> Please press the x' key.'' ,,Proszę, naciśnij klawisz <>''.

The right quote is also used for apostrophe in LaTeX without trouble.

For left bottom quote and European quoting style you need to use T1 font encoding enabled by:

 \usepackage[T1]{fontenc}

See Fonts for more details on font encoding.

The package csquotes offers a multilingual solution to quotations, with integration to citation mechanisms offered by BibTeX. This package allows one for example to switch languages and quotation styles according to babel language selections.

## Diacritics and accents

Most accents and diacritics may be inserted with direct keyboard input by configuring the preamble properly. For symbols unavailable on your keyboard, diacritics may be added to letters by placing special escaped metacharacters before the letter that requires the diacritic.

## Margin misalignment and interword spacing

Some very long words, numbers or URLs may not be hyphenated properly and move far beyond the side margin. One solution for this problem is to use sloppypar environment, which tells LaTeX to adjust word spacing less strictly. As a result, some spaces between words may be a bit too large, but long words will be placed properly.

 This is a paragraph with a very long word ABCDEFGHIJKLMNOPRST; then we have another bad thing --- a long number 1234567890123456789. \begin{sloppypar} This is a paragraph with a very long word ABCDEFGHIJKLMNOPRST; then we have an another bad thing --- a long number 1234567890123456789. \end{sloppypar}

Another solution is to edit the text to avoid long words, numbers or URLs approaching the side margin.

## Ligatures

Some letter combinations are typeset not just by setting the different letters one after the other, but by actually using special symbols (like "ﬀ"), called ligatures. Ligatures can be prohibited by inserting {} or, if this does not work, {\kern0pt} between the two letters in question. This might be necessary with words built from two words. Here is an example:

 \Large Not shelfful\\ but shelf{}ful

Ligatures can interfere with some text-search tools (a search for "finally" wouldn't find the string "ﬁnally"). The \DisableLigatures from the microtype package can disable ligatures in the whole document to increase accessibility.

 \usepackage{microtype} \DisableLigatures{encoding = *, family = *}

Note that this will also disable ligatures such as "--" to "–", "---" to "—", etc.

If you are using XeLaTeX and OpenType fonts, the fontspec package allows for standard ligatures to be turned off as well as fancy swash ligatures to be turned on.

Another solution is to use the cmap package, which will help the reader to interpret the ligatures:

 \usepackage[resetfonts]{cmap}

## Slash marks

The normal typesetting of the / character in LaTeX does not allow following characters to be "broken" onto new lines, which often create "overfull" errors in output (where letters push off the margin). Words that use slash marks, such as "input/output" should be typeset as "input\slash output", which allow the line to "break" after the slash mark (if needed). The use of the / character in LaTeX should be restricted to units, such as "mm/year", which should not be broken over multiple lines.

A word after / or \slash is not automatically hyphenated. This is a similar problem to non-hyphenation of words with a dash described under Hyphenation. One way to have both a line break and automatic hyphenation in both words is

 input\slash\hspace{0pt}output

Both / and \slash can be used with a zero \hspace like this. \slash includes a penalty to make a line break there less desirable. This combination can be made into a new slash macro if desired. The hyphenat package includes an \fshyp which will add a hyphen after the slash like "input/- output" if the line breaks there.

## Fonts

To change the font family, emphasize text, and other font-related issues, see Fonts.

## Formatting macros

Even if you can easily change the output of your fonts using those commands, you're better off not using explicit commands like this, because they work in opposition to the basic idea of LaTeX, which is to separate the logical and visual markup of your document. This means that if you use the same font changing command in several places in order to typeset a special kind of information, you should use \newcommand to define a "logical wrapper command" for the font changing command.

 \newcommand{\oops}[1]{\textit{#1}} Do not \oops{enter} this room, it’s occupied by \oops{machines} of unknown origin and purpose. Do not enter this room, it’s occupied by machines of unknown origin and purpose.

This approach has the advantage that you can decide at some later stage that you want to use some visual representation of danger other than \textit, without having to wade through your document, identifying all the occurrences of \textit and then figuring out for each one whether it was used for pointing out danger or for some other reason.

See Macros for more details.

## Text mode superscript and subscript

To superscript text in text-mode, you can use the \textsuperscript{} command. This allows you to, for instance, typeset 6th as 6th:

 Michelangelo was born on March 6\textsuperscript{th}, 1475.

Subscripting in text-mode is not supported by LaTeX alone; however, several packages allow the use of the \textsubscript{} command. For instance, bpchem, KOMA-Script2, and fixltx2e all support this command. Of these, fixltx2e is perhaps the most universal option since it is distributed with LaTeX and requires no additional packages to be implemented. Note that as of April 2015, fixltx2e has been declared obsolete, and the \textsubscript{} command can no longer be used. changes can be used to restore the \textsubscript{} command.

 % In your preamble, add: \usepackage{fixltx2e} % or \usepackage{changes} ... % In your document: It is found that height\textsubscript{apple tree} is different than height\textsubscript{orange tree}. $\text{It is found that height}_\text{apple tree}\text{ is different than height}_\text{orange tree}\text{.}\,$


The names for these dashes are: ‘-’(-) hyphen , ‘--’(–) en-dash , ‘---’(—) em-dash and ‘$-$’(−) minus sign. They have different purposes:

Use \hyp{} macro from hyphenat package instead of hyphen if you want LaTeX to break compound words between lines.

The commands \textendash and \textemdash are also used to produce en-dash (–), and em-dash (—), respectively.

## Ellipsis (…)

A sequence of three dots is known as an ellipsis, which is commonly used to indicate omitted text. On a typewriter, a comma or a period takes the same amount of space as any other letter. In book printing, these characters occupy only a little space and are set very close to the preceding letter. Therefore, you cannot enter ‘ellipsis’ by just typing three dots, as the spacing would be wrong. Instead, there is a special command for these dots. It is called \ldots:

 Not like this ... but like this:\\ New York, Tokyo, Budapest, \ldots

Alternatively, you can use the \textellipsis command which allows the spacing between the dots to vary.