将列表(其元素左对齐)对齐到页面右侧

将列表(其元素左对齐)对齐到页面右侧

我想将普通列表(左侧有项目符号)与页面右侧对齐。也就是说,列表中最长的元素应与右侧对齐,而列表的其余部分应与列表正常对齐。以下是草图,以防不清楚我在问什么:https://i.stack.imgur.com/FHz0Q.jpg

我已读过此文(如何在页面上右对齐一块多行文本,该文本本身在块内左对齐?),这正是我想要的,但我找不到包括项目符号在内的项目的宽度。有什么想法吗?

编辑:我还应该补充一点,我在列表环境中使用了以下命令:我在 itemize 中使用了以下命令:\begin{itemize}[wide, leftmargin=*, labelsep = 0.75em, align=center]。

谢谢。

答案1

最简单的方法是测量您自己的假 itemize 环境的宽度。在这里,您可以定义一个newcommand来替换原始内容,并使用包中的item项目来测量最长的项目。以下是一个例子:\widthofcalc

\documentclass[12pt,a4paper]{article}
\usepackage{calc}
\usepackage{showframe}
\begin{document}

\newcommand{\ritem}{~~\llap{\textbullet}~~}

\null\hfill\parbox{\widthof{\ritem Some company that has a long name}}{%
\ritem Office 123\par   
\ritem Some building \par  
\ritem Some company that has a long name\par
\ritem Some city, some zip 12345\par
\ritem Some country
}

\end{document}

在此处输入图片描述

另一个更简单的选择是使用来tabular完全避免计算。

\documentclass[12pt,a4paper]{article}
\usepackage{showframe}
\begin{document}

\newcommand{\ritem}{~~\llap{\textbullet}~~}

\null\hfill%
\begin{tabular}{@{}l@{}}
\ritem Office 123 \\   
\ritem Some building \\  
\ritem Some company that has a long name \\
\ritem Some city, some zip 12345 \\
\ritem Some country
\end{tabular}

\end{document}

编辑:

以下是提供 itemize 规格的解决方案。顺便说一句,我删除了align = center,没有这样的选项。

\documentclass[12pt,a4paper]{article}
\usepackage{showframe}
\usepackage{enumitem,calc}
\begin{document}

\null\hfill%
\parbox{\widthof{\textbullet\hspace{.75em}Some company that has a long name}}{%
\begin{itemize}[leftmargin=*, labelsep = 0.75em]
\item Office 123    
\item Some building  
\item Some company that has a long name 
\item Some city, some zip 12345 
\item Some country
\end{itemize}
}

\end{document}

答案2

带有包的解决方案listliketab,它模拟了itemize内的环境tabular。我定义了一个新tabitemise环境和\tabitem命令,您可以将其用作itemizeitem。每项内容必须是一行。

\documentclass{article}
\usepackage[showframe, nomarginpar]{geometry}
\usepackage{listliketab}
\newcommand{\tabitem} {\textbullet & }
\newenvironment{tabitemise}{
\par\storestyleof{itemize}
\listliketab
\tabular[t]{@{}Ll@{}}%
}{%
\endtabular\endlistliketab
}

\begin{document}

Some text some text some text some text some text some text some text some text some text some text some text some text some text.

\raggedleft
\begin{tabitemise}
  \tabitem First item.\\
  \tabitem A longer second item\\
  \tabitem A much longer, last, not least, item
\end{tabitemise}

\end{document} 

在此处输入图片描述

相关内容