# Flushright and whitespace

I'm using minipage and flushleft/right in an item to achieve an item with some left aligned text and a right aligned date associated with it. However, the right alignment is problematic. The first problem is white space after lines, but if I use % then I can remove this, although it would be nice if I didn't have to litter %'s everywhere. The second problem is the last element is further right aligned. Also, if I use \break after any item, it is fully right aligned (but there is obviously an undesired new line). I discovered removing the \vspace command causes correct right alignment, but I want to reduce the vertical space.

\newcommand{\resitemwithdate}[2]{
\vspace{-3pt}
\item {
\begin{minipage}[t]{.80\linewidth}
\flushleft #1
\end{minipage}
\hfill
\begin{minipage}[t]{.15\linewidth}
\flushright #2%
\end{minipage}%
}%
}

\begin{itemize}
\resitemwithdate{A}{B}
\resitemwithdate{A}{B}%
\resitemwithdate{A}{B}\break
\resitemwithdate{A}{B}
\end{itemize}


• \item does not have a mandatory argument and one white space is due to \resitemwithdate{
– user31729
Feb 11 '17 at 13:48
• Thanks, putting a % after \resitemwithdate[2]{ has fixed it in all but the first \item there – but it still requires a % after each item. Is there any way to say 'ignore all whitespaces at the end of lines in this command' and after each item, or in an environment?
– Nick
Feb 11 '17 at 13:52
• Carefully typing the definition of your command will remove all of those white spaces.
– user31729
Feb 11 '17 at 13:56
• You need to add \par at the end. Feb 11 '17 at 14:18
• Completely off-topic: I hope i never see this code again in some template. Feb 11 '17 at 14:19

\flushright etc. introduce additional vertical white space, making \vspace 'necessary', I recommend \raggedright etc. for this.

\item does not have a mandatory argument!

In addition, I recommend the enumitem package for fine control of the vertical spacings in an itemize list.

\documentclass{article}

\usepackage{enumitem}

\usepackage{showframe}% Remove this later on

\newcommand{\resitemwithdate}[2]{%
\item
\begin{minipage}[t]{.80\linewidth}
\raggedright #1%
\end{minipage}
\hfill
\begin{minipage}[t]{.15\linewidth}
\raggedleft #2%
\end{minipage}
}

\begin{document}
\begin{itemize}[itemsep=0pt]
\resitemwithdate{A}{B}
\resitemwithdate{A}{B}
\resitemwithdate{A}{B}
\end{itemize}
\end{document}


And now for something completely different!

I use the listliketab package, to emulate an itemize environment, customised with enumitem, and the date-time2 package to format the date, within a tabularx environment:

\documentclass[british]{article}%
\usepackage{enumitem, tabularx, listliketab}
\usepackage{babel} %
\usepackage[british]{datetime2, }%
\usepackage{datetime2-calc, fmtcount}%
\DTMlangsetup[en-GB]{abbr, ord=raise}
\usepackage{lipsum}%
\usepackage{showframe}% Remove this later on
\newlist{myitemize}{itemize}{1}
\setlist[myitemize]{wide=0pt, label=\textbullet, leftmargin=*}
\newcommand{\resitemwithdate}[2]{%
\item
\begin{minipage}[t]{.80\linewidth}
\raggedright #1%
\end{minipage}
\hfill
\begin{minipage}[t]{.15\linewidth}
\raggedleft #2%
\end{minipage}
}
\let\tabitem=\textbullet

\begin{document}

\storestyleof{myitemize}
\begin{listliketab}
\begin{tabularx}{\linewidth}{@{}L >{\hsize=1.6\hsize}X >{\hsize=0.42\hsize\raggedleft\arraybackslash}X@{}}
\tabitem & \lipsum[11] & \Today \\
\tabitem & \lipsum[3] & \Today%
\end{tabularx}
\end{listliketab}

\end{document}


As exercise:

\documentclass{article}
\newcommand{\resitemwithdate}[2]
{
\setlength\itemsep{0pt}%
\item   \begin{minipage}[t]{.80\linewidth}\raggedright
#1
\end{minipage}
\hfill
\begin{minipage}[t]{.15\linewidth}\raggedleft
#2
\end{minipage}%
}

\usepackage{showframe}                     % remove in real document
\renewcommand*\ShowFrameColor{\color{red}} % remove in real document

\begin{document}
\begin{itemize}
\resitemwithdate{A}{B}
\resitemwithdate{A}{B}
\resitemwithdate{A}{B}\break
\resitemwithdate{A}{B}
\end{itemize}
\end{document}