xelatex + tabular: セルを文字に合わせて配置し、特定の行でその文字の入力をスキップします

xelatex + tabular: セルを文字に合わせて配置し、特定の行でその文字の入力をスキップします

私の履歴書には、過去(および最近の)職歴を記載します。例:

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

しかし、私は1か月未満しか働かなかった会社もありました。例えば:

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

この 2 番目の例の問題は、 がその特定の行から\span配置文字 (つまり) を削除しないことです。したがって、質問は次のようになります。選択した行から削除するにはどうすればいいですか?

答え1

\span は低レベルの TEX プリミティブです。LaTeX では、列のスタイルを変更するには \multicolumn を使用する必要があります。

\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}

ここに画像の説明を入力してください

最初のセルで右揃えにしたい場合は、\phantom を使用してダッシュを偽装できます。

\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}

ここに画像の説明を入力してください

答え2

@OP の MWE の仕様は固定されている (オンザフライで変更できない) ように見えますが、<オンザフライで再評価される仕様の場合は同じことが当てはまりません。

\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}

ここに画像の説明を入力してください

結果を左揃えにしたい場合は、OP のコメントを考慮して、少し変更したアプローチを採用します。

\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}

ここに画像の説明を入力してください

答え3

私は別の方法で、より単純なユーザー レベルの構文を使用してこれを実行します。

\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}

この\cvrowコマンドは 2 つの引数を取ります。最初の引数に が含まれている場合は--、1 つのブランチが実行され、en ダッシュが出力されます。それ以外の場合は、スペースのみが割り当てられます。

テキストの幅に合わせて 11cm を調整します。

ここに画像の説明を入力してください

関連情報