\item 后换行,垂直间距

\item 后换行,垂直间距

首先,我的例子:

\documentclass[]{article} 

\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{enumitem}

\newcommand\codeitem[1]{
    \item[{
        \framebox[\textwidth][l]{
        \tt
        {#1}
        }
     }]
    }

\begin{document}
    \blindtext
    \begin{description}
        \codeitem{+ here() : void}
            Followed by some paragraphs of text. Do you see the text is too near to the box?
        \codeitem{\# there() : void}
            I somehow have to add vertical space here.
    \end{description}
    \blindtext
\end{document}

呈现如下: 箱子后面的空间太小

我觉得思路很清晰,可惜描述标签后面的垂直空间太小了,如何设置项目标签和文本之间的垂直空间?我试过设置,但这和在描述中使用或\vspace{11mm}效果一样,只会增加列表项或列表与前面段落之间的距离。topsep=11mmpartopsep=11mm

答案1

添加一些垂直空间:

\documentclass{article}

\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{enumitem}

\newcommand\codeitem[1]{%
    \item[{%
        \framebox[\textwidth][l]{%
        \normalfont\ttfamily
        #1%
        }\vspace{3pt}%
     }]
    }

\begin{document}
    \blindtext
    \begin{description}[style=nextline]
        \codeitem{+ here() : void}
            Followed by some paragraphs of text. Do you see the text is too near to the box?
        \codeitem{\# there() : void}
            I somehow have to add vertical space here.
    \end{description}
    \blindtext
\end{document}

请注意style=nextline避免框过满的选项以及%保护行尾并避免它们在输出中产生空格的选项。该命令\tt已过时且不推荐使用:使用\ttfamily。该\normalfont命令是为了避免请求粗体打字机类型。

在此处输入图片描述

改进可能如下:

\newcommand\codeitem[1]{%
    \item[{%
        \framebox[\textwidth][l]{%
        \ttfamily\ttstrut
        #1%
        }\vspace{3pt}%
     }]
    }

\newcommand{\ttstrut}{%
  \vrule width0pt
         height1.5ex
         depth.5ex
}

这样,我们就会得到(放大以更好地显示效果,还添加了带有降部的字母)

在此处输入图片描述

所有框的总高度都相同;框的顶部和底部x分别与顶部和底部规则的距离相同。上升部和下降部将占据其他空白区域。

相关内容