LaTeX is free software under the terms of the LaTeX Project Public License (LPPL). LaTeX is distributed through CTAN servers or comes as part of many easily installable and usable TeX distributions provided by the TeX User Group (TUG) or third parties. If you run into trouble, visit the help section.
LaTeX is not a stand-alone typesetting program in itself, but document preparation software that runs on top of Donald E. Knuth's TeX typesetting system. TeX distributions usually bundle together all the parts needed for a working TeX system and they generally add to this both configuration and maintenance utilities. Nowadays LaTeX, and many of the packages built on it, form an important component of any major TeX distribution.
- The LaTeX Git Repository
Styrene-Butadiene Latex Dow is using styrene monomer derived from Dow’s own Styrene Monomer and Ethylbenzene Plant and butadiene derived from a local producer transmitted by pipeline within the Map Ta Phut complex. UCAR™Latex DL 420 G Architectural Wall Paints and Stucco Regional Product Availability EMEA Description UCAR™Latex DL 420 G is a styrene acrylate dispersion recommended for both satin and matt, interior and exterior conventional wall paints. In addition, UCAR Latex DL 420 G shows good performance in stucco formulations. Product Characteristics.
The LaTeX team cannot guarantee that TeX distributions, even recent ones, contain the most recent version of LaTeX. It may happen that you need a more recent LaTeX than the one that your favourite TeX distribution carries, e.g., in order to get a particular bug fix. In that case you will need to fetch LaTeX from CTAN and install it on top of your distribution. See below for details.
TeX Distributions
If you’re new to TeX and LaTeX or just want an easy installation, geta full TeX distribution. The TeX Users Group (TUG) has a list of notable distributionsthat are entirely, or least primarily, free software.
Linux
Check your Linux distributions software source for a TeX distribution including LaTeX. You can also install the current TeX Live distribution directly---in fact this may be advisable as many Linux distributions only contain older versions of TeX Live, see Linux TeX Live package status for details.
Mac OS
The MacTeX distribution contains everything you need, including a complete TeX system with LaTeX itself and editors to write documents.
Windows
Check out the MiKTeX or proTeXt or TeX Live distributions; they contain a complete TeX system with LaTeX itself and editors to write documents.
Online
LaTeX online services like Papeeria, Overleaf, ShareLaTeX, Datazar, and LaTeX base offer the ability to edit, view and download LaTeX files and resulting PDFs.
CTAN
You can obtain LaTeX from CTAN, which is theprimary source of distribution for LaTeX. In order for your downloadedLaTeX to be of any use, you have to obtain and set up a TeX systemfirst. You can either install a TeX distribution (see above) or get aTeX system from CTAN. Ifyou use a TeX distribution then it will include a version of LaTeX sothis will probably make things easier for you; but you may have areason not to do this.
The LaTeX Git Repository
These days the LaTeX development sources are kept in a GitHubrepository (previously we used SVN).
Anyone can access it and download the files, butsubmission is restricted to team members. The repository is located at https://github.com/latex3/latex2eand from that browser page you may explore the files, clone therepository or download the files in a .zip
archive (roughly 25Mb) byusing the appropriate buttons.
If you are familiar with Git you can also clone the repository using thecommand line or your favorite Git fontend tool, e.g.,
which needs about 50Mb of space.Alternatively, you can do a Subversion checkout from the command line, e.g.,
which will just checkout the current files.But be aware that a SVN checkout of the form
will download all files including theirhistory (back to 2009) and amounts to roughly 1.4Gb so that is quite large.
Note: If you had bookmarked the old SVN repository please update thatbookmark to the new GIT repository as we have finally removed it.
A note on Git pull requests
Git repositories support distributed development and allow people toprovide change sets that are made available through so called pullrequests, so that the maintainers of a program can “pull the suggestedchanges” into the main repository.
While we appreciate contributions, we think that for the core LaTeXsoftware pull requests are usually not a good approach (unless thechange has be already discussed and agreed upon).The stability of LaTeX is very important and this means that changes tothe kernel are necessarily very conservative. It also means that a lotof discussion has to happen before any changes are made. So if you dodecide to post a pull request, please bear this in mind: we doappreciate ideas, but cannot always integrate them into the kernel andit is quite likely that we reject updates made in this way.
If you want to discuss a possible contribution before (or instead of)making a pull request, we suggest you raise the topic first onthe LATEX-L list or drop aline to the team.
Historic LaTeX
Ulrik Vieth has collected historic versions of LaTeX from LaTeX 2.0for TeX 1.0 (released on 11 December 1983) onwards. You can find thematftp://ftp.tug.org/historic/macros/latex-saildart/.There might even be some earlier versions. All files have been pulledfrom the SAILDART archive site at http://z.baumgart.org/ (no longeronline) which was based on archive tapes from SAIL at Stanford.
More historic material can be found at ftp://ftp.tug.org/historic (you may not be able to open this in all browsers — alternatively try https://www.math.utah.edu/pub/tex/historic/).
Tables are common elements in most scientific documents, LaTeX provides a large set of tools to customize tables, change the size, combine cells, change the colour of cells and so on. This article explains how.
- 7Captions, labels and references
- 8Changing the appearance of a table
Below you can see the simplest working example of a table
The tabular
environment is the default LaTeX method to create tables. You must specify a parameter to this environment, {c c c}
tells LaTeX that there will be three columns and that the text inside each one of them must be centred.
The tabular environment is more flexible, you can put separator lines in between each column.
It was already said that the tabular environment is used to type tables. To be more clear about how it works below is a description of each command.
{ |c|c|c| }
- This declares that three columns, separated by a vertical line, are going to be used in the table. Each
c
means that the contents of the column will be centred, you can also user
to align the text to the right andl
for left alignment.
hline
- This will insert a horizontal line on top of the table and at the bottom too. There is no restriction on the number of times you can use
hline
.
cell1 & cell2 & cell3
- Each
&
is a cell separator and the double-backslashsets the end of this row.
Below you can see a second example.
This example shows double vertical and horizontal lines, when properly used help to keep the information within the table well organized.
When formatting a table you might require a fixed length either for each column or for the entire table. In the example below a fixed column width is established.
First, to use the parameters shown in the example, you must import the package array in the preamble of your LaTeX file with the next command
In the tabular
environment, the parameter m{5em}
sets a length of 5em for first column (1cm for the other two) and centres the text in the middle of the cell. The aligning options are m
for middle, p
for top and b
for bottom. In standard tables new lines must be inserted manually so the table won't stretch out of the text area, when using this parameters the text is automatically formatted to fit inside each cell.
If you don't need to control the width of each cell, but of the entire table and then distribute the space within evenly, use the package tabularx. See the example below:
The environment tabularx
is similar to tabular but more flexible, it's available after adding the line usepackage{tabularx}
to the preamble. Notice that the environment opening statement is different, in the example the table width is set to 0.8 the width of the text. You can use any of the LaTeX units for such length.
The prefix inside braces | >{raggedrightarraybackslash}X | >{centeringarraybackslash}X | >{raggedleftarraybackslash}X |
sets the alignment of each column: the first one to left, the second one to center and the third one to right.
Rows and columns can be combined in a bigger cell. The example below is an example of the multicolumn
command to combine columns.
Let's see each part of the command multicolumn{4}{|c|}{Country List}
:
{4}
- The number of columns to be combined, 4 in this case.
{|c|}
- Delimiters and alignment of the resulting cell, in this case the text will be centred and a vertical line will be drawn at each side of the cell.
{Country List}
- Text to be displayed inside the cell.
To combine rows the package multirow must be imported with
in your preamble, then you can use the multirow
command in your document:
The command multirow
takes three parameters. The first one is the number of rows to be combined, 3 in the example. The second parameter is the width of the column, 4em in the example. Finally, the third parameter is the content of the cell.
If you have to insert a very long table, which takes up two or more pages in your document, use the longtable
package. First, add to the preamble the line
This will make the command longtable available.
longtable
behaviour is similar to the default tabular, but generates tables that can be broken by the standard LaTeX page-breaking algorithm. There are four elements long-table specific.
endfirsthead
- Everything above this command will appear at the beginning of the table, in the first page.
endhead
- Whatever you put before this command and below
endfirsthead
will be displayed at the top of the table in every page except the first one.
endfoot
- Similar to endhead, what you put after
endhead
and before this command will appear at the bottom of the table in every page except the last one.
endlastfoot
- Similar to endfisthead. The elements after
endfoot
and before this command will be displayed at the bottom of the table but only in the last page where the table appears.
Positioning a table is easy if they're inside a float table
environment.
The parameter h!
passed to the table environment declaration establishes that this table must be placed here, and override LaTeX defaults. Other positioning parameters can be passed also:
h
- Will place the table here approximately.
t
- Position the table at the top of the page.
b
- Position the table at the bottom of the page.
p
- Put the table in a special page, for tables only.
!
- Override internal LaTeX parameters.
H
- Place the table at this precise location, pretty much like h!.
For further examples on table positioning see the Positioning images and tables article.
In this example there are a few more commands.:
centering
- Centres the table relative to the float container element.
[1ex]
- This adds extra space to the cell.
Tables can be captioned, labelled and referenced by means of the table
environment.
There are three important commands in the example:
caption{Table to test captions and labels}
- As you may expect this command sets the caption for the table, if you create a list of tables this caption will be used there. You can place it above or below the table.
label{table:1}
- If you need to refer the table within your document, set a label with this command. The label will number the table, and combined with the next command will allow you to reference it.
ref{table:1}
- This code will be substituted by the number corresponding to the referenced table.
Note: The document may need to be compiled more than once for the labels to work.
List of tables
To create a list of tables is straightforward.
The caption of each table will be used to generate this list. For languages supported by the babel package, the title 'List of tables' will be translated accordingly. See the article about International language support for more info.
Several table elements can be modified to achieve a good-looking document. Below you will learn how to modify the line thickness, the line colour and the background colour of the cells in your table.
Line width and cell padding
The readability of the table sometimes is improved by incrementing the column spacing and row stretch.
A description of the commands is provided below:
setlength{arrayrulewidth}{1mm}
- This sets the thickness of the borders of the table. In the example is 1mm but you can use other units, see the article Lengths in LaTeX for a complete list.
setlength{tabcolsep}{18pt}
- The space between the text and the left/right border of its containing cell is set to 18pt with this command. Again, you may use other units if needed.
renewcommand{arraystretch}{1.5}
- The height of each row is set to 1.5 relative to its default height.
Colour alternating rows
It is a common practice to use two colours for alternating rows in a tables to improve readability. This can be achieved in LaTeX with the package xcolor and the table parameter.
Notice the braces right before the command
and after the tabular environment. The command rowcolors
takes three parameters each passed inside braces:
- the row to start,
- the colour for odd rows and
- the colour for even rows.
See the xcolor package documentation (at the further reading section) for a list of available colours and how to create your own. In the example the colours green and yellow are mixed in different proportions.
For the command to work make sure to add
to the preamble of your LaTeX file.
Colouring a table (cells, rows, columns and lines)
All elements in a table can be customized to use a specific colour. Again, this functionality is provided by xcolor so you must add
to the preamble. Below you can see an example.
Below is a description about how to change the colour of each element in the table:
- Colour of the lines. The command
arrayrulecolor
is used for this. In the example an HTML format is used, but other formats are available too, see the xcolor documentation for a complete list (link provided at the further reading section).
- Background colour of a cell. Use the command
cellcolor
. You can either enter the name directly inside the braces (red, gray, green and so on) or pass a format parameter inside brackets (HTML in the example) and then set the desired colour inside the braces using the established format.
- Background colour of a row. In this case
rowcolor
will accomplish that. The same observations about colour selection mentioned in the two previous commands are valid for this one.
- Background colour of a column. This one is a bit tricky, the easiest way is to define a new column type. The command define a column type called s whose alignment is p, the column width is 3cm and the colour is set with HTML format to AAACED. This new column type is used in the
tabular
environment.
quick description of parameters in the tabular
environment
Tables can be created using tabular
environment.
where options can be:
pos
: Vertical position. It can assume the following values:
t | the line at the top is aligned with the text baseline |
b | the line at the bottom is aligned with the text baseline |
c or none | the table is centred to the text baseline |
cols
: Defines the alignment and the borders of each column. It can have the following values:
Latex Dl Gloves
l | left-justified column |
c | centred column |
r | right-justified column |
p{'width'} | paragraph column with text vertically aligned at the top |
m{'width'} | paragraph column with text vertically aligned in the middle (requires array package) |
b{'width'} | paragraph column with text vertically aligned at the bottom (requires array package) |
| | vertical line |
|| | double vertical line |
*{num}{form} | the format form is repeated num times; for example *{3}{|l}| is equal to |l|l|l| |
To separate between cells and introducing new lines use the following commands:
& | column separator |
| start new row (additional space may be specified after using square brackets, such as [6pt] ) |
hline | horizontal line between rows |
newline | start a new line within a cell (in a paragraph column) |
cline{i-j} | partial horizontal line beginning in column i and ending in column j |
For more information see