我有以下代码:
\begin{itemize}
\item SPOJ - everyone loves SPOJ\\
- I love SPOJ
\end{itemize}
我想要做的是在同一位置显示两个连字符。
我喜欢尽可能简单的东西,例如:
\begin{itemize}
\item SPOJ &- everyone loves SPOJ\\
&- I love SPOJ
\end{itemize}
这不管用。不过,我们欢迎所有解决方案。
我已经搜索过它,但没有找到任何可以起作用的东西(可能是因为我对 LaTeX 不了解并且无法在我的案例中使用某些解决方案)。
我要补充一点,我知道自己感兴趣的是什么,itemize 里面的 itemize 无法满足我。抱歉要求这么高。
答案1
感谢 egreg 关于\linewidth
(not \textwidth
) 的提示,如果所需的文本变得更宽,这种方法现在可以处理换行(但是,换行的文本不会相对于连字符缩进)。
然后,我提供了第二种方法,即嵌套 itemize 环境。这看起来并不完全符合您的要求,但您可能会觉得可以接受。
\documentclass{article}
\usepackage{calc}
\begin{document}
\begin{itemize}
\item SPOJ \parbox[t]{\linewidth-\widthof{SPOJ }}{%
- everyone loves SPOJ\\
- I love SPOJ}
\end{itemize}
Alternate way:
\begin{itemize}
\item SPOJ \begin{itemize}
\item everyone loves SPOJ
\item I love SPOJ
\end{itemize}
\item What is SPOJ?
\end{itemize}
\end{document}
答案2
另一种解决方案是使用文本列tabularx
:X
可以使用包来计算宽度
calc
,如下所示egreg 的评论:\begin{tabularx}{\linewidth-\widthof{TeX.SX }}
该示例使用
\settowidth
和 e-TeX\dimexpr
来提供包的替代方案calc
。itemize
下一级别的符号为粗体\textendash
。这比小连字符更显眼。因此\labelitemii
使用。ii
末尾是列表深度的罗马数字(2)。
\documentclass{article}
\usepackage{tabularx}
\usepackage{array}
\newlength\testlength
\begin{document}
\begin{itemize}
\item \TeX.SX
\settowidth{\testlength}{\TeX.SX }%
\begin{tabularx}{\dimexpr\linewidth-\testlength\relax}[t]
{@{}>{\labelitemii}l@{ }X@{}}
& everyone loves \TeX.SX\\
& I love \TeX.SX
\end{tabularx}%
\end{itemize}
\end{document}
使用包linegoal
可以简化为:
\documentclass{article}
\usepackage{tabularx}
\usepackage{array}
\usepackage{linegoal}
\begin{document}
\begin{itemize}
\item \TeX.SX
\begin{tabularx}{\linegoal}[t]
{@{}>{\labelitemii}l@{ }X@{}}
& everyone loves \TeX.SX\\
& I love \TeX.SX
\end{tabularx}%
\end{itemize}
\end{document}
答案3
下面使用强大的enumitem
包以提供一个itemize
类似的环境,允许在需要时跨越页面边界:
\documentclass{article}
\usepackage{enumitem}% http://ctan.org/pkg/enumitem
\begin{document}
Some text before
\begin{description}[font={\normalfont\textbullet\ },leftmargin=1cm,style=nextline]
\item[SPOJ] - everyone loves SPOJ \\
- I love SPOJ
\end{description}
Some text after
\end{document}
15mm
可以使用来自其他帖子的元素来计算宽度,或者使用键值widest
,使硬编码左边距变得“更柔和”。