将表格置于单元格末尾的中心

将表格置于单元格末尾的中心

我希望能够将表格居中,但中心要与第一个单元格的末尾对齐。目前,只需使用命令,\begin{center}我就能将表格居中,但我希望表格以第一个单元格的末尾为中心,而不是以表格的平均中心为中心。

\documentclass{article}  
\begin{document}  

\begin{center}
\begin{tabular}{r | l}
I am some really long text & 10pt \\ 
I am also really long & 12pt \\ 
\end{tabular}
\end{center}
\end{document}  

获取一个居中的表格,但我更希望它变成“我是一些很长的文本{居中} 10pt。

编辑:我正在寻找的想法可以通过以下方式看到对齐方程式在任何时候。

答案1

这只是 Poul 答案的一个变体。相反,array 包可以使用 tabularx 包并定义新的列类型 R 和 L。无需测量列的宽度:

\documentclass{article}
\usepackage{tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\newcolumntype{R}{>{\raggedleft\arraybackslash}X}

\begin{document}
\begin{center}
  \begin{tabularx}{\textwidth}{|R|L|}
    I am some really long text & 10pt \\
    I am also really long      & 12pt 
  \end{tabularx}
\end{center}  
\hrulefill.\hrulefill % just for visual check
\end{document}  

答案2

我不知道 Chris (cmhughes) 为何删除了他的答案。但是,对于这项简单的工作,无需加载像 这样的重型软件包tabularx。没有它,这就是完成的方式。

\documentclass{article}
\usepackage{showframe}
\usepackage{array}
\newcolumntype{L}{>{\raggedright\arraybackslash}p{\dimexpr0.5\textwidth
                                                   -2\tabcolsep-\arrayrulewidth\relax}}
\newcolumntype{R}{>{\raggedleft\arraybackslash}p{\dimexpr0.5\textwidth
                                                   -2\tabcolsep-\arrayrulewidth\relax}}
\begin{document}

\begin{center}
    \begin{tabular}{R|L}
    aaaa    I am some really long text & I am some really long text aaaa\\
        I am also really long      & I am also really long     \\
    \end{tabular}
\end{center}
\hrulefill.\hrulefill % just for visual check
\end{document}

在此处输入图片描述

答案3

显然,可以在任一(子)表格上插入额外的列,以分别将表格向左或向右延伸,即使两半之间的分界线仍然居中。

\documentclass{article}  
\begin{document}  

\begin{center}
\makebox[0pt][r]{%
\begin{tabular}{r |}
I am some really long text\\ 
I am also really long\\ 
\end{tabular}%
}%
\makebox[0pt][l]{%
\begin{tabular}{| l}
 10pt \\ 
 12pt \\ 
\end{tabular}%
}
\end{center}
\end{document} 

在此处输入图片描述

答案4

史蒂文的答案是可行的,但如果你想避免分解表格(以需要指定宽度为代价):

基于这个答案,我们可以使用该array包的功能来定义新的列类型L{<width},,可以为其声明显式宽度。选择此项以适合所有列中最宽的内容,并将其设置为所有列C{<width>}R{<width>}<width>

\documentclass{article}
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}

\begin{document}  
\begin{center}
  \begin{tabular}{R{1.7in} | L{1.7in}}
    I am some really long text & 10pt \\ 
    I am also really long      & 12pt \\ 
  \end{tabular}
\end{center}
\hrulefill.\hrulefill % just for visual check
\end{document}  

在此处输入图片描述

相关内容