我想将普通列表(左侧有项目符号)与页面右侧对齐。也就是说,列表中最长的元素应与右侧对齐,而列表的其余部分应与列表正常对齐。以下是草图,以防不清楚我在问什么:https://i.stack.imgur.com/FHz0Q.jpg
我已读过此文(如何在页面上右对齐一块多行文本,该文本本身在块内左对齐?),这正是我想要的,但我找不到包括项目符号在内的项目的宽度。有什么想法吗?
编辑:我还应该补充一点,我在列表环境中使用了以下命令:我在 itemize 中使用了以下命令:\begin{itemize}[wide, leftmargin=*, labelsep = 0.75em, align=center]。
谢谢。
答案1
最简单的方法是测量您自己的假 itemize 环境的宽度。在这里,您可以定义一个newcommand
来替换原始内容,并使用包中的item
项目来测量最长的项目。以下是一个例子:\widthof
calc
\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
命令,您可以将其用作itemize
和item
。每项内容必须是一行。
\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}