我编写了一个 SDK 手册,我想在其中使用以下布局来描述功能,但是我有一个不想要的回车符。
Parameters * unsigned int
* string
Return Value 0 means ....
1 means .......
Remarks blablabla ....
\item
但目前我对参数部分。我定义了:
\newenvironment{parTitleLeft}[1]
{~\\
\par\setlength{\leftskip}{3cm}\noindent\ignorespaces\hspace{-3cm}\makebox[3cm][l]{{#1}}\ignorespaces}
{\par}
\newenvironment{parTitleLeftItems}[1]
{{#1}\begin{itemize}[leftmargin=3cm]\ignorespaces}
{\end{itemize}}
使用这些命令:
\begin{parTitleLeftItems}{Parameters}
\item blabla ...
\end{parTitleLeftItems}
我得到:
Parameters THE FIRST ITEM SHOULD BE HERE
* unsigned int
* string
我怎样才能删除那个多余的换行符?
答案1
您看到的垂直空间源于以下事实: itemize 之前的文本位于其自己的段落中(因为 itemize 开始了一个新块)。
基于嵌套列表的解决方案:
\documentclass{article}
\usepackage{enumitem}
\newlist{docFunction}{description}{1}
\setlist[docFunction,1]{labelwidth=3cm,labelsep=0cm,leftmargin=3cm}
\newenvironment{parTitleLeftItems}[1]
{\item[#1]\begin{itemize}[labelsep=1ex]}
{\end{itemize}}
\begin{document}
\begin{docFunction}
\begin{parTitleLeftItems}{Parameters}
\item blabla
\item blabla
\item blabla
\end{parTitleLeftItems}
\begin{parTitleLeftItems}{Return Value}
\item[0] means
\item[1] means
\end{parTitleLeftItems}
\end{docFunction}
\end{document}
我假设您已经enumitem
在使用 包了leftmargin
。
这个想法是,“参数”和“返回值”标签实际上是外部列表(description
在本例中为 a)的标签,因此将与项目的内容排版在同一行,而项目的内容又是此处的项目化。
我没有手动或使用自定义宏来设置间距参数,而是使用 命令\newlist
。enumitem
如果您使用的enumitem
和版本过旧,\newlist
则无法使用,您可以将定义这两行替换docFunction
为
\newenvironment{docFunction}
{\begin{description}[labelwidth=3cm,labelsep=0cm,leftmargin=3cm]}
{\end{description}}