![将 itemize 中的文本在表格内右对齐](https://linux22.com/image/436208/%E5%B0%86%20itemize%20%E4%B8%AD%E7%9A%84%E6%96%87%E6%9C%AC%E5%9C%A8%E8%A1%A8%E6%A0%BC%E5%86%85%E5%8F%B3%E5%AF%B9%E9%BD%90.png)
我有这个代码
\begin{tabular}{p{0.5\textwidth} p{0.2\textwidth} p{0.3\textwidth}}
\begin{itemize}[topsep=5pt, leftmargin=*, itemsep=0pt]
\item 1
\item 2
\end{itemize}&
\begin{itemize}[topsep=5pt, leftmargin=*, itemsep=0pt, label={}]
\item 1
\item 2
\end{itemize}&
\begin{itemize}[topsep=5pt, leftmargin=*, itemsep=0pt, label={}]
\item 1
\item 2
\end{itemize}
\end{tabular}
基本上可以正常工作。但是,我希望最后一个项目itemize
被刷新到右侧,这样文本就会出现在行尾。我该怎么做?
答案1
我猜您正在寻找以下内容:
(红线表示页面布局)
为了使单元格内容的对齐更加清晰,表格中添加了水平线和垂直线:
\documentclass{article}
\usepackage[table]{xcolor}
%---------------- Show page layout. Don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{enumitem}
\usepackage{array}
\begin{document}
\centering
\begin{tabular}{@{}|p{\dimexpr0.5\textwidth-\tabcolsep-1.25\arrayrulewidth}
|p{\dimexpr0.2\textwidth-2\tabcolsep-1.25\arrayrulewidth}
|p{\dimexpr0.3\textwidth-\tabcolsep-1.25\arrayrulewidth}|@{}}
\hline
\begin{itemize}[topsep=5pt, leftmargin=*, itemsep=0pt]
\item 1
\item 2
\end{itemize} &
\begin{itemize}[topsep=5pt, leftmargin=*, itemsep=0pt, label={}]
\item 1
\item 2
\end{itemize} &
\begin{itemize}[topsep=5pt, wide, label={}]\raggedleft % <---
\item 1
\item \large longer item here in two lines?
\item some short
\end{itemize} \\
\hline
\end{tabular}
\end{document}
如果您不喜欢表中的行,只需删除它们并将表设置更正为:
\begin{tabular}{@{}p{\dimexpr0.5\textwidth-\tabcolsep}
p{\dimexpr0.2\textwidth-2\tabcolsep}
p{\dimexpr0.3\textwidth-\tabcolsep}@{}}
编辑:
\tabcolsep
每个单元格由、文本宽度和组成\tabcolsep
。@{}
删除\tabcolsep
。这意味着,在您的情况下,单元格构造中的第一列将删除第一列\tabcolsep
,最后一列将删除第二列。在列类型中
p{<width>
,定义了<width>
单元格中文本的宽度。因此,<width> + 2\tabcolsep
如果没有,则列的宽度相等@{}
。该表格可以适合文本区域,列宽总和应等于
\textwidth
。这意味着,在您的情况下,列规范{@{} p{0.5\textwidth} p{0.3\linewidth} p {0.2\linewidth} @{}}
表格将溢出文本区域\tabcolsep
(来自第一列)+2\tabcolsep
(来自第二列)+tabcolsep
(来自最后一列)。为了避免这种情况发生,应相应减少列内规格。这可以通过使用 TeX 基元
\dimexpr
(用于计算长度)轻松完成,通过该基元计算列宽。在第一个版本的答案中,我计算时犯了一个错误,现在已经纠正
在上述 MWE 中,如前所述,添加了垂直线,这样更容易看到列表在单元格中的定位。如果您删除它们,如原始答案中所述,表格将如下所示