Ottenere due tabelle in LaTeX per avere lo stesso (allineato a destra) larghezza della colonna

StackOverflow https://stackoverflow.com/questions/2295186

  •  21-09-2019
  •  | 
  •  

Domanda

Ho due sezioni molto brevi e consecutive (per un CV), ciascuno contenente un tavolino:

\section{Work Experience}

\begin{tabular}{r|p{11cm}}
Current & Your job at Your Company, Town \\
Jan 2009 & What your company does \\
& A description of what you do\\
\multicolumn{2}{c}{}\ 
\end{tabular}

\section{Education}

\begin{tabular}{r|p{11cm}}
Slightly wider first column & University, Town \\
Jan 2009 & Thesis subject \\
& A description of what you did\\
\multicolumn{2}{c}{}\ 
\end{tabular}

Quindi, ogni tavolo ha due colonne: la prima contenente il periodo, allineato a destra. La seconda:. Un po 'di informazioni con una certa larghezza, superiore (e di sinistra) allineate

Il problema è che la larghezza della colonna di sinistra nelle due tabelle è diverso, e non sembra bello dato sezioni (quindi tabelle) sono consecutivi ed in una sola pagina. Non posso dare r una larghezza simile p:

\begin{tabular}{r{11cm}|p{11cm}}

non funziona. Come posso ottenere le larghezze delle prime colonne dei due tavoli la stessa lunghezza pur avendo anche loro diritto allineati?

Modifica Grazie per le risposte, tutto il lavoro per me, così ho upvoted tutti loro, e accettato quello che mi piaceva di più (e più upvoted), in quanto non si dispone di secondo il \hfill in ogni riga. Tuttavia, se non si desidera utilizzare il array pacchetto per qualsiasi motivo, poi le altre soluzioni sono anche grandi.

È stato utile?

Soluzione

Se si utilizza il pacchetto array, si può mettere la \hfill nell'intestazione come segue, in modo da non dover ricordarsi di mettere (o un \parbox) in ogni riga.

\documentclass{article}
\usepackage{multicol}
\usepackage{array}
\begin{document}
\section{Work Experience}

\begin{tabular}{>{\hfill}p{5cm}|p{11cm}}
  Current & Your job at Your Company, Town \\
  Jan 2009 & What your company does \\
  & A description of what you do\\
  \multicolumn{2}{c}{} 
\end{tabular}

\section{Education}

\begin{tabular}{>{\hfill}p{5cm}|p{11cm}}
  Slightly wider first column & University, Town \\
  Jan 2009 & Thesis subject \\
  & A description of what you did\\
  \multicolumn{2}{c}{} 
\end{tabular}
\end{document}

per dare:

alt text http://www.freeimagehosting.net/uploads/5e29f675e3.jpg

Altri suggerimenti

Ecco una variante del @ di RTBarnard risposta utilizzando il pacchetto tabularx:

\documentclass[a4paper,twoside,draft,12pt]{article}
\usepackage{tabularx}
\begin{document}

\section{Work Experience}

\begin{tabularx}{\textwidth}{>{\raggedleft}X|p{8cm}}
Current & Your job at Your Company, Town \\
Jan 2009 & What your company does \\
& A description of what you do\\
\end{tabularx}

\section{Education}

\begin{tabularx}{\textwidth}{>{\raggedleft}X|p{8cm}}
Somewhat wider than first column, 
overflowing into additional lines & University, Town \\
Jan 2009 & Thesis subject \\
& A description of what you did\\
\end{tabularx}
\end{document}

Note:

  1. Perché tabularx? Perché è spesso più facile sapere la larghezza di avere disponibile per l'intera tabella, e per far TeX calcolare l'ignoto larghezza delle colonne.
  2. Il primo parametro è la larghezza complessiva della tabella. Qui, ho specificato \textwidth per riempire la larghezza del typeblock, ma si può cambiare la situazione a qualsiasi misura che serve.
  3. Ho usato \raggedright piuttosto che \hfill:. Se l'articolo scorre su una seconda riga, \hfill sarà doveroso-allineare la prima riga del paragrafo
  4. il \multicol è stato significativo? Ho rimosso per mantenere la risposta più semplice possibile.

Corri con XeTeX sotto TeXLive.

Ecco una soluzione di molte possibilità:

\begin{tabular}{r|p{11cm}}
\parbox{11cm}{\hfill Current} & Your job at Your Company, Town \\
Jan 2009 & What your company does \\
& A description of what you do\\
\multicolumn{2}{c}{}\ 
\end{tabular}

Fondamentalmente, creare un \parbox con la larghezza desiderata e porre \hfill a sinistra.

Si può dare sia p {width} opzioni, e iniziare ogni cella in un \hfill sinistra.

È possibile utilizzare il pacchetto array per specificare un comando di riempimento per ogni riga nella prima colonna:

\begin{tabular}{>{\hfill}p{11cm}|p{11cm}|}

Ad esempio:

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

\begin{tabular}{>{\hfill}p{5cm}|p{11cm}|}
This is a test & test
\end{tabular}

\begin{tabular}{>{\hfill}p{5cm}|p{11cm}|}
Test & this is a test
\end{tabular}
\end{document}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top