Existe uma maneira de alinhar o conteúdo da coluna a um determinado caractere do texto (um travessão, por exemplo)?

Existe uma maneira de alinhar o conteúdo da coluna a um determinado caractere do texto (um travessão, por exemplo)?

Estou tentando criar esta seção para meu currículo, mas não consigo descobrir como alinhar bem o conteúdo da tabela. Quero todos alinhados no "|" ou travessão.

Este é o código que tenho agora. Ele cria uma tabela com 3 colunas.

\usepackage{tabularx}

\begin{document}

\section*{LANGUAGES}
    \begin{tabularx}{1\textwidth}{
    >{\raggedright\arraybackslash}X 
   >{\raggedright\arraybackslash}X     
>{\raggedright\arraybackslash}X 
   }
      \textbf{English} (Native) & \textbf{French} & \textbf{Polish} \\ \\
      
    Speaking | \textit{Fluent} & Speaking | \textit{Limited} & Speaking | \textit{Proficient} \\ 
    
    Listening | \textit{Fluent} & Listening | \textit{Limited} & Listening | \textit{Proficient} \\ 
    
    Reading | \textit{Fluent} & Reading | \textit{Proficient} & Reading | \textit{Limited} \\ 
    
    Writing |  \textit{Fluent} & Writing | \textit{Intermediate} & Writing | \textit{Basic} \\
    \end{tabularx}

\end{document}

Isto é o que ele produz.

o que eu tenho agora

Eu gostaria que produzisse algo assim

insira a descrição da imagem aqui

Onde tudo está alinhado no traço (mas feito nas 3 colunas).

Existe uma maneira de fazer isso dentro da tabela? Posso fazer subtabelas dentro de tabelas para fazer isso ou existe algum tipo de pacote para isso?

Responder1

Você pode fazer isso com tabular*.

\documentclass{article}
\usepackage{geometry}% for less generous margins

\begin{document}

\section*{LANGUAGES}

\noindent
\begin{tabular*}{\textwidth}{
  @{\extracolsep{\fill}}
  l @{\ ---\ \extracolsep{0pt}} l @{\extracolsep{\fill}}
  l @{\ ---\ \extracolsep{0pt}} l @{\extracolsep{\fill}}
  l @{\ ---\ \extracolsep{0pt}} l
  @{}
}
\multicolumn{2}{@{}l}{\textbf{English} (Native)} &
\multicolumn{2}{@{}l}{\textbf{French}} &
\multicolumn{2}{@{}l@{}}{\textbf{Polish}} \\[2ex]
Speaking & \textit{Fluent} & Speaking & \textit{Limited} & Speaking & \textit{Proficient} \\
Listening & \textit{Fluent} & Listening & \textit{Limited} & Listening & \textit{Proficient} \\
Reading & \textit{Fluent} & Reading & \textit{Proficient} & Reading & \textit{Limited} \\
Writing &  \textit{Fluent} & Writing & \textit{Intermediate} & Writing & \textit{Basic} \\
\end{tabular*}

\end{document}

Observe que um travessão énãoentrada como |. O fato de |poder produzir um travessão é apenas incidental e, por exemplo, falharia se você usasse a codificação T1. Um travessão é inserido como ---.

insira a descrição da imagem aqui

Responder2

Com tabularx, alinhado à direita-esquerda:

\documentclass{article}
\usepackage{geometry}
\usepackage{tabularx}

\begin{document}
    \begin{tabularx}{\textwidth}{@{}
                                 *{3}{r @{\ ---\ }
                                    >{\raggedright\arraybackslash\itshape}X}
                                 @{}}
%
 \multicolumn{2}{l}{\textbf{English} (Native)} 
        &   \multicolumn{2}{l}{\textbf{French}} 
                &   \multicolumn{2}{l}{\textbf{Polish}}             \\[1ex]

Speaking    & Fluent    &   Speaking    & Limited       & Speaking  & Proficient    \\
Listening   & Fluent    &   Listening   & Limited       & Listening & Proficient    \\
Reading     & Fluent    &   Reading     & Proficient    & Reading   & Limited       \\
Writing     & Fluent    &   Writing     & Intermediate  & Writing   & Basic         \\
    \end{tabularx}
\end{document}

insira a descrição da imagem aqui

informação relacionada