xelatex + tabular: alinea una celda con el carácter y omite ingresar ese carácter en ciertas filas

xelatex + tabular: alinea una celda con el carácter y omite ingresar ese carácter en ciertas filas

En mi CV, enumero mis trabajos pasados ​​(y recientes). Por ejemplo:

\begin{tabular}{r@{\emph{ – }}l | p{11cm}}
  \emph{Jun 2013} & \emph{Aug 2013} & Work position at Company\\
\end{tabular}

Sin embargo, trabajé en algunas empresas menos de un mes: por ejemplo:

\begin{tabular}{r@{\emph{ – }}l | p{11cm}}
  \emph{Aug 2012} \span & Other Work position at Firm\\
\end{tabular}

El problema con este segundo ejemplo es que \spanno elimina el carácter de alineación (es decir ) de esa fila en particular. Entonces la pregunta es:¿Cómo lo elimino de las filas seleccionadas?

Respuesta1

\span es una primitiva tex de bajo nivel. En LaTeX deberías usar \multicolumn para cambiar los estilos de las columnas:

\documentclass{book}

\begin{document}
\begin{tabular}{r@{\emph{ – }}l | p{11cm}}
\emph{Jun 2013} & \emph{Aug 2013} & Work position at Company\\
\multicolumn{2}{l|}{\emph{Aug 2012}}& Other Work position at Firm\\

\end{tabular}

\end{document}

ingrese la descripción de la imagen aquí

Si desea alinearlos a la derecha en la primera celda, puede usar \phantom para simular el guión:

\documentclass{book}
\usepackage{array}
\begin{document}

\begin{tabular}{r@{\emph{~–~}}l | p{11cm}}
\emph{Jun 2013}& \emph{Aug 2013} & Work position at Company\\
\multicolumn{1}{r@{\phantom{\emph{~–~}}}}{\emph{Jul 2013}}&
& 
Other Work position at Firm\\

\end{tabular}

\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Mientras que la @especificación del MWE del OP parece estar fijada en piedra (no se puede cambiar sobre la marcha), no ocurre lo mismo con la <especificación, que se reevalúa sobre la marcha.

\documentclass{article}
\usepackage{array}
\newcommand\mycolsep{\emph{ -- }}
\newcommand\myspan{\let\mycolsep\relax\span}
\begin{document}
\begin{tabular}{r<{\mycolsep}@{}l | p{11cm}}
  \emph{Jun 2013} & \emph{Aug 2013} & Work position at Company\\
  \emph{Aug 2012} \myspan & Other Work position at Firm\\
  \emph{Jun 2011} & \emph{Aug 2011} & Work position at Company\\
  \emph{Aug 2010} \myspan & Other Work position at Firm\\
\end{tabular}
\end{document}

ingrese la descripción de la imagen aquí

Si desea que el resultado esté alineado a la izquierda y, a la luz de un comentario del OP, adopto un enfoque ligeramente modificado:

\documentclass{article}
\usepackage{array}
\newcommand\mycolsep{\emph{ -- }}
\newcommand\myspan{\def\mycolsep{\phantom{\emph{ -- }}}&}
\begin{document}
\begin{tabular}{r<{\mycolsep}@{}l | p{11cm}}
  \emph{Jun 2013} & \emph{Aug 2013} & Work position at Company\\
  \emph{Aug 2012} \myspan & Other Work position at Firm\\
  \emph{Jun 2011} & \emph{Aug 2011} & Work position at Company\\
  \emph{Jul 2010} \myspan & Other Work position at Firm\\
\end{tabular}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta3

Yo lo haría de otra manera y con una sintaxis más sencilla a nivel de usuario:

\documentclass{article}
\usepackage[a4paper]{geometry}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentEnvironment{cvpart}{}
 {
  \setlength{\tabcolsep}{0pt}
  \par\noindent
  \begin{tabular*}{\textwidth}{
    r
    l
    @{\extracolsep{\fill}} p{11cm}
   }
 }
 {
  \end{tabular*}
 }

\NewDocumentCommand{\cvrow}{>{\SplitArgument{1}{--}}m m}
 {
  \tukus_cvrow:nnn #1 { #2 }
 }

\cs_new_protected:Nn \tukus_cvrow:nnn
 {
  \emph{ \tl_trim_spaces:n { #1 } }
  \tl_if_novalue:nTF { #2 }
   {
    \hphantom{~--~} &
   }
   {
    \mbox{~--~} & \emph{ \tl_trim_spaces:n { #2 } }
   }
  & #3 \\
 }

\ExplSyntaxOff

\begin{document}

\begin{cvpart}
\cvrow{Jun 2013 -- Aug 2013}{
  Work position at Company
  Work position at Company
  Work position at Company
  Work position at Company
  Work position at Company
}
\cvrow{Jul 2013}{Other Work position at Firm}
\end{cvpart}

\end{document}

El \cvrowcomando toma dos argumentos; si el primer argumento contiene --, se sigue una rama y se imprime el guión final. De lo contrario, sólo se asigna el espacio.

Ajuste los 11 cm para adaptarlo al ancho del texto.

ingrese la descripción de la imagen aquí

información relacionada