You could use a feature of the array
package to insert a \raggedright
command for flush left text, use >{command}
before the column definition to insert one or several command(s):
\documentclass{article}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{array}
\begin{document}
\begin{tabular}{>{\raggedright\arraybackslash}p{.3\textwidth}p{.7\textwidth}}
\blindtext & \blindtext
\end{tabular}
\end{document}
You mentioned \flushleft
- you could use it but it can insert undesired vertical space, such as
\begin{tabular}{>{\flushleft\arraybackslash}p{.3\textwidth}<{\endflushleft}p{.7\textwidth}}
If you need it often, consider defining a new column type using array
features, as I did here:
\newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1}}
Some people define further useful types, such as
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
etc. So your tabular definition becomes simpler:
\begin{tabular}{P{.7\textwidth}P{.3\textwidth}}
In narrow columns, it may be good to allow hyphenation. This can be done using ragged2e
. microtype
could improve even more. So I would use:
\documentclass{article}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{array}
\usepackage{ragged2e}
\usepackage{microtype}
\newcolumntype{P}[1]{>{\RaggedRight\hspace{0pt}}p{#1}}
\begin{document}
\begin{tabular}{P{.7\textwidth}P{.3\textwidth}}
\blindtext & \blindtext \\
\end{tabular}
\end{document}
With ragged2e
commands \arraybackslash
is not needed. As the first word in a box would not be hyphenated, I additionally inserted zero horizontal space.