¿Hay alguna forma de alinear el contenido de las columnas con un determinado carácter del texto (un guión, por ejemplo)?

¿Hay alguna forma de alinear el contenido de las columnas con un determinado carácter del texto (un guión, por ejemplo)?

Estoy intentando crear esta sección para mi CV pero no sé cómo alinear bien el contenido de esta tabla. Los quiero todos alineados en el "|" o em-dash.

Este es el código que tengo ahora. Crea una tabla con 3 columnas.

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

Esto es lo que produce.

lo que tengo ahora

Me gustaría que saliera algo como esto

ingrese la descripción de la imagen aquí

Donde todo está alineado en el guión (pero hecho en las 3 columnas).

¿Hay alguna manera de hacerlo dentro de la tabla? ¿Puedo crear subtablas dentro de tablas para hacer esto o hay algún tipo de paquete para esto?

Respuesta1

Puedes hacerlo con 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}

Tenga en cuenta que un em-dash esnoentrada como |. El hecho de que |pueda producir un em-dash es simplemente incidental y, por ejemplo, fallaría si usa la codificación T1. Un em-dash se ingresa como ---.

ingrese la descripción de la imagen aquí

Respuesta2

Con tabularx, alineado derecha - izquierda:

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

ingrese la descripción de la imagen aquí

información relacionada