如图所示,我希望将 itemize 环境移动到页面的右边距(与\raggedleft
或完全一样\hfill
)。
我对图片使用的代码是:
\documentclass{article}
\usepackage[a4paper, portrait, margin=0.5in]{geometry}
\usepackage{graphicx}
\usepackage[table]{xcolor}
\usepackage[T1]{fontenc}
\usepackage[usestackEOL]{stackengine}
\usepackage{tikz}
\usepackage{enumitem}
\thispagestyle{empty}
\renewcommand{\familydefault}{\sfdefault}
\tolerance=1
\emergencystretch=\maxdimen
\hyphenpenalty=10000
\hbadness=10000
\begin{document}
\hrule
\medskip
\begin{itemize}[leftmargin=150mm, noitemsep, nolistsep]
\item Text Here
\item[] More Text Here
\item[] This is the Longest Text
\end{itemize}
\end{document}
问题是,如果最长的文本变长或变短,列表将不再在右边距结束。
任何帮助都值得感激,谢谢!
答案1
您可以实现这一点,但需要限制列表环境。为此,varwidth
提供一个类似名称的环境,它将把它的宽度缩小到内容的自然宽度,直到达到最大值。
\documentclass{article}
\usepackage{enumitem,varwidth}
\begin{document}
\hrule
\medskip
\begin{itemize}[nosep]
\item Text Here
\item[] More Text Here
\item[] This is the Longest Text
\end{itemize}
\bigskip
\hrule
\medskip
\mbox{}\hfill
\begin{varwidth}{\linewidth}
\begin{itemize}[nosep]
\item Text Here
\item[] More Text Here
\item[] This is the Longest Text
\end{itemize}
\end{varwidth}
\end{document}
答案2
列表环境不适合执行此操作,但 tabular
环境可以轻松模仿列表,并且可以轻松地与\hfill
(MWE 中的第一个列表)右对齐。
您不需要在左列的每个单元格中输入每个项目符号,只需在表格标题(第二个列表)中输入一次
使用tabulary
可以为列表设置宽度的最大值(而不是最小值,如使用列一样p{5cm}
),因此只有短项目的列将尽可能窄,而包含一些长项目的列将自动换行以不超过限制。使用tabulary
对齐和连字符的项目也很容易,或者使文本右侧参差不齐(更适合窄列表),以及悬挂缩进项目符号(如在itemize
列表中)或将项目符号与文本对齐以获得一些空间(比较列表中的最后一个项目第 3 和第 4 个)。
\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{tabulary,array}
\usepackage{lipsum}
\renewcommand{\familydefault}{\sfdefault}
\begin{document}
\hfill\begin{tabular}{ll@{}}
\textbullet & Little \\
& Text \\
\textbullet & Here end.\\
\end{tabular}
\bigskip\hfill\begin{tabular}{>{\textbullet\quad}l@{}}
Text Here \\
More Text Here \\
This is the Longest Text\\
\end{tabular}
\bigskip\hfill\begin{tabulary}{.35\linewidth}{@{}>{\textbullet\quad}J@{}}
Text Here \\
More Text Here \\
This is the longest \lipsum[1][1] \\
\end{tabulary}
\bigskip\hfill\begin{tabulary}{.35\linewidth}{@{\textbullet\quad}L@{}}
Text Here \\
More Text Here \\
This is the longest \lipsum[1][1] \\
\end{tabulary}
\end{document}