TeX - LaTeX Asked on January 1, 2021
I wanted to put a bit of space after an hline
in an array
; the main suggestion floating round the Internet seems to be to use
hline [-1.5ex]
Unfortunately, this causes a gap in the line on the RHS of the array
. A minimal example is:
documentclass{article}
begin{document}
$begin{array}{|l|l|}%
hline
& TEXT
hline [-1.5ex]
&TEXT
hline
end{array}$
end{document}
Any help would be much appreciated!
Rather than fiddle with the properties of hline
, it's better -- in your case -- to provide typographic "struts": either a "top strut," which provides vertical spacing above the line on which it's placed, or a "bottom strut," which provides vertical spacing below the line on which it's placed. This idea is not original to me; it goes back (at least) to an article published by Claudio Beccari in TeX and TUG News in 1993. What's nifty about this approach is that one can place both a top strut and a bottom strut on a given line of an array
or tabular
environment.
The following MWE shows how this may be done. Note that I've switched from array
to tabular
in order to pare things down to the bare minimum; the vertical spacing issues related to hline
are the same for both environments.
documentclass{article}
usepackage{array}
% Define typographic struts, as suggested by Claudio Beccari
% in an article in TeX and TUG News, Vol. 2, 1993.
newcommandTstrut{rule{0pt}{2.6ex}} % = `top' strut
newcommandBstrut{rule[-0.9ex]{0pt}{0pt}} % = `bottom' strut
begin{document}
With struts on the left, without struts on the right:
begin{tabular}[t]{|l|}
hline
TEXTTstrutBstrut % top *and* bottom struts
hline
TEXTTstrut % top strut only
TEXTBstrut % bottom strut only
hline
end{tabular}
quad
begin{tabular}[t]{|l|}
hline
TEXT
hline
TEXT
TEXT
hline
end{tabular}
end{document}
Correct answer by Mico on January 1, 2021
On a case-by-case basis you can insert a vertical strut (zero-width, vertical rule/object) to push the row contents away from others. Here's a small example:
documentclass{article}
usepackage{amsmath}% http://ctan.org/pkg/amsmath
begin{document}
[
begin{array}{|l|l|}%
hline
& text{Text}
hline
rule{0pt}{1.5normalbaselineskip} & text{Text}
hline
end{array}
]
end{document}
I've inserted a vertical strut of height 1.5normalbaselineskip
which is 18pt
in the above example, any length exceeding the about 70% of the baseline skip would work. For more information on column and/row padding, see Column padding in tables.
Note that I've used amsmath
to supply the text
command for setting text in math mode. Even though this is just a simple example and using mbox
would also suffice, amsmath
also provides other functionality that is well worth using.
If you wish to insert a fixed amount (say) <len>
between two rows, you can insert a blank row (with the appropriate number of column alignments &
to provide correct vertical rule placement) and use a row skip of the form [dimexpr-normalbaselineskip+<len>]
. This would jump "back" a length of normalbaselineskip
- the baseline distance between rows - and jump "forward" by <len>
- the required gap. Here's a small example:
documentclass{article}
usepackage{amsmath}% http://ctan.org/pkg/amsmath
begin{document}
[
begin{array}[t]{|l|l|}%
hline
& text{Normal}
hline
& text{Text}
hline
end{array} quad
begin{array}[t]{|l|l|}%
hline
& texttt{0pt}
hline
& [-normalbaselineskip]
& text{Text}
hline
end{array} quad
begin{array}[t]{|l|l|}%
hline
& texttt{2pt}
hline
& [dimexpr-normalbaselineskip+2pt]
& text{Text}
hline
end{array} quad
begin{array}[t]{|l|l|}%
hline
& texttt{1em}
hline
& [dimexpr-normalbaselineskip+1em]
& text{Text}
hline
end{array} quad
begin{array}[t]{|l|l|}%
hline
& texttt{3pc}
hline
& [dimexpr-normalbaselineskip+3pc]
& text{Text}
hline
end{array}
]
end{document}
Answered by Werner on January 1, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP