我有一个列表,我希望第一个项目符号与前面的文本在同一行开始。我当前的示例如下。在图像中,我标记了我希望项目符号所在的位置:
\documentclass{article}
\usepackage{lipsum}
\setlength{\parindent}{0pt}
\begin{document}
\textbf{Heading}
\begin{itemize}
\item \lipsum[1][2]
\item \lipsum[1][3]
\item \lipsum[1][4]
\item \lipsum[1][5]
\end{itemize}
\end{document}
这个问题与如何在与文本相同的行上开始逐项列举?但这些解决方案都不适用于我,因为它们要么需要创建一个新的缩进小页面全部项目符号,而不仅仅是第一个,或者它们对前面的文本进行硬编码,这对我来说不起作用。
无论如何,由于每个\item
似乎都会自动放在换行符上,所以我认为这就像在列表开头添加“撤消”换行符的命令一样简单,例如
\usepackage[inline]{enumitem}
\setlist[itemize]{before=\nolinebreak}
我重复了此操作,before=\unskip
但都没有效果。
有没有简单的命令可以before=
防止出现第一个换行?如果没有,为什么这么复杂?
答案1
尝试trivlist
模拟类似定理的环境以列表开始的情况:
\documentclass{article}
\usepackage{lipsum}
\setlength{\parindent}{0pt}
\begin{document}
\trivlist\item[\textbf{Heading}\hskip-\labelsep]
\begin{itemize}
\item \lipsum[1][2]
\item \lipsum[1][3]
\item \lipsum[1][4]
\item \lipsum[1][5]
\end{itemize}
\endtrivlist
\end{document}
答案2
快速而肮脏:
\documentclass{article}
\usepackage{lipsum}
\usepackage{enumitem}
\setlength{\parindent}{0pt}
\begin{document}
\textbf{Heading}
\vspace{-5ex}
\begin{itemize}[leftmargin=2.5cm]
\item \lipsum[1][2]
\item \lipsum[1][3]
\item \lipsum[1][4]
\item \lipsum[1][5]
\end{itemize}
\end{document}
第二次尝试,仅缩进第一项:
\documentclass{article}
\usepackage{lipsum}
\usepackage{enumitem}
\setlength{\parindent}{0pt}
\begin{document}
\textbf{Heading}
\vspace{-5ex}
\begin{itemize}
{\setlength\itemindent{1.25cm} \item \lipsum[1][2]}
\item \lipsum[1][3]
\item \lipsum[1][4]
\item \lipsum[1][5]
\end{itemize}
\end{document}
第三次尝试,自动测量偏移:
\documentclass{article}
\usepackage{lipsum}
\usepackage{enumitem}
\setlength{\parindent}{0pt}
\begin{document}
\newlength{\foobar}
\def\myheading{My longer Heading}
\settowidth{\foobar}{\textbf{\myheading}}
{\textbf{\myheading}}
\vspace{-5ex}
\begin{itemize}
{\setlength\itemindent{\foobar} \item \lipsum[1][3]}
\item \lipsum[1][2]
\item \lipsum[1][4]
\item \lipsum[1][5]
\end{itemize}
\end{document}