Zentrieren von Tabelleneinträgen mit einer benutzerdefinierten Unterstreichung, die der Spaltenbreite entspricht

Zentrieren von Tabelleneinträgen mit einer benutzerdefinierten Unterstreichung, die der Spaltenbreite entspricht

Ich habe eine einfache Tabelle mit 3 Spalten, die ich als Überschrift für Daten verwende. Ich habe eine benutzerdefinierte Unterstreichungsregel (mit benutzerdefinierter Dicke, Farbe und Tiefe) definiert, die ich zum Unterstreichen jedes Tabelleneintrags verwende.

Das von mir verwendete Markup ist:

\documentclass[letterpaper,11pt]{article}
\usepackage{kpfonts}
\RequirePackage{fix-cm}
\setlength{\parskip}{\baselineskip}%
\setlength{\parindent}{0pt}%
\usepackage{xcolor}
\definecolor{smokyblack}{rgb}{0.06, 0.05, 0.03}
\definecolor{mygrey}{rgb}{0.1, 0.14, 0.12}
\definecolor{darkjunglegreen}{rgb}{0.0, 0.26, 0.15}
\usepackage[
top    = 0.608cm,
bottom = 1.1cm,
left   = 1.20cm,
right  = 1.10cm]{geometry}
\usepackage{titlesec}
\usepackage{ulem}
\renewcommand{\ULdepth}{5.8pt}
\renewcommand{\ULthickness}{1.35pt} 
\makeatletter 
\newcommand\semiLarge{\@setfontsize\semiLarge{13.22}{17.38}}
\makeatother
\newcommand{\greenuline}[1]{{\color{darkjunglegreen}\uline{{\color{black}#1}}}}
\titleformat{\section}
{\normalfont\Large\bfseries}{\thesection}
{1em}{}[\color{darkjunglegreen}{\titlerule[2pt]}]
\titlespacing\section{0pt}{1pt plus 4pt minus 2pt}{-3pt plus 2pt minus 2pt}

\begin{document}
\sloppy
\begin{tabular*}{\linewidth}{@{}l@{\extracolsep{\fill}}r@{}}
\textbf{\LARGE \textcolor{mygrey}{REAL NAME}}  & \large{[email protected]}\\
\colorbox{mygrey!11}{\textbf{\semiLarge \textcolor{smokyblack}{Employed Professional}}} &  \large{555-555-5555 - New York, NY}
\end{tabular*}

\section*{Section Heading}

\begin{tabular} {@{}p{6cm} p{8cm} p{7cm}}
\large{\textbf{\greenuline{Category}}} & \large{\textbf{\greenuline{Word}}} & \large{\textbf{\greenuline{Much Longer word}}}
\end{tabular}   

\end{document}

Die Ausgabe sieht wie folgt aus:

Bildbeschreibung hier eingeben

Im Moment funktioniert alles wie vorgesehen. Ich möchte jeden Tabelleneintrag in der Spalte zentrieren und meine Unterstreichungslinie die Breite der Tabellenspalte ausfüllen lassen, wie im folgenden Bild dargestellt:

Bildbeschreibung hier eingeben

Was ist die einfachste Lösung für dieses Problem?

Antwort1

Mithilfe von \cmidruleaus dem booktabsPaket und tabular*wird sichergestellt, dass die Tabelle innerhalb der Textbreite bleibt. Die Linienstärke kann mit dem optionalen Argument von gesteuert werden \cmidrule.

Bildbeschreibung hier eingeben

\documentclass[letterpaper,11pt]{article}
\usepackage{kpfonts}
\RequirePackage{fix-cm}
\setlength{\parskip}{\baselineskip}%
\setlength{\parindent}{0pt}%
\usepackage[table]{xcolor}
\definecolor{smokyblack}{rgb}{0.06, 0.05, 0.03}
\definecolor{mygrey}{rgb}{0.1, 0.14, 0.12}
\definecolor{darkjunglegreen}{rgb}{0.0, 0.26, 0.15}
\usepackage[
top    = 0.608cm,
bottom = 1.1cm,
left   = 1.20cm,
right  = 1.10cm]{geometry}
\usepackage{titlesec}
\usepackage{ulem}
\renewcommand{\ULdepth}{5.8pt}
\renewcommand{\ULthickness}{1.35pt} 
\makeatletter 
\newcommand\semiLarge{\@setfontsize\semiLarge{13.22}{17.38}}
\makeatother
\newcommand{\greenuline}[1]{{\color{darkjunglegreen}\uline{{\color{black}#1}}}}
\titleformat{\section}
{\normalfont\Large\bfseries}{\thesection}
{1em}{}[\color{darkjunglegreen}{\titlerule[2pt]}]
\titlespacing\section{0pt}{1pt plus 4pt minus 2pt}{-3pt plus 2pt minus 2pt}

\usepackage{booktabs}
\usepackage{array}
\usepackage{calc}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\begin{document}
\sloppy
\begin{tabular*}{\linewidth}{@{}l@{\extracolsep{\fill}}r@{}}
\textbf{\LARGE \textcolor{mygrey}{REAL NAME}}  & \large{[email protected]}\\
\colorbox{mygrey!11}{\textbf{\semiLarge \textcolor{smokyblack}{Employed Professional}}} &  \large{555-555-5555 - New York, NY}
\end{tabular*}

\section*{Section Heading}
\arrayrulecolor{darkjunglegreen}

\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}*{3}{C{0.3\textwidth-2\tabcolsep}}}
\large\textbf{Category} & \large\textbf{Word} & \large\textbf{Much Longer word}\\
\cmidrule[1pt](r){1-1} \cmidrule[1pt](lr){2-2} \cmidrule[1pt](l){3-3}
\end{tabular*}   

\end{document}

Antwort2

Anstatt p Spalten zu verwenden, kann man die Breite mit festlegen \makebox.

BTW< \largehat keine Argumente. Es ist ein Schalter und sollte in Klammern stehen.

\documentclass[letterpaper,11pt]{article}
\usepackage{kpfonts}
\RequirePackage{fix-cm}
\setlength{\parskip}{\baselineskip}%
\setlength{\parindent}{0pt}%
\usepackage{xcolor}
\definecolor{smokyblack}{rgb}{0.06, 0.05, 0.03}
\definecolor{mygrey}{rgb}{0.1, 0.14, 0.12}
\definecolor{darkjunglegreen}{rgb}{0.0, 0.26, 0.15}
\usepackage[
top    = 0.608cm,
bottom = 1.1cm,
left   = 1.20cm,
right  = 1.10cm]{geometry}
\usepackage{titlesec}
\usepackage{ulem}
\renewcommand{\ULdepth}{5.8pt}
\renewcommand{\ULthickness}{1.35pt} 
\makeatletter 
\newcommand\semiLarge{\@setfontsize\semiLarge{13.22}{17.38}}
\makeatother
\newcommand{\greenuline}[1]{{\color{darkjunglegreen}\uline{{\color{black}#1}}}}
\titleformat{\section}
{\normalfont\Large\bfseries}{\thesection}
{1em}{}[\color{darkjunglegreen}{\titlerule[2pt]}]
\titlespacing\section{0pt}{1pt plus 4pt minus 2pt}{-3pt plus 2pt minus 2pt}

\begin{document}
\sloppy
\begin{tabular*}{\linewidth}{@{}l@{\extracolsep{\fill}}r@{}}
\textbf{\LARGE \textcolor{mygrey}{REAL NAME}}  & \large{[email protected]}\\
\colorbox{mygrey!11}{\textbf{\semiLarge \textcolor{smokyblack}{Employed Professional}}} &  \large{555-555-5555 - New York, NY}
\end{tabular*}

\section*{Section Heading}

\begin{tabular*}{\textwidth} {@{\extracolsep{\fill}}lll@{}}
\textbf{\large\greenuline{\makebox[6cm]{Category}}} & \textbf{\large\greenuline{\makebox[6cm]{Word}}} 
  & \textbf{\large\greenuline{\makebox[6cm]{Much Longer word}}}
\end{tabular*}   

\end{document}

verwandte Informationen