控制列表项和下一行之间的行距

控制列表项和下一行之间的行距

我无法控制 itemize 的最后一行和下一行之间的行距,如图所示。有人能提出解决方案来解决这个问题吗?我还想知道我是否可以获得更紧凑的列表。

\documentclass[10pt,a4paper,oneside]{article}
\usepackage[a4paper,left=0.9in,right=0.9in,top=1in,bottom=1in]{geometry}
\usepackage{longtable}
\usepackage{enumitem}

\renewcommand{\familydefault}{\sfdefault}


\begin{document}

    \scriptsize
    \begin{minipage}[t]{0.5\textwidth}
        \begin{longtable}[t]{|p{1.0cm}|p{5.5cm}|}
            \hline
            \bf{Head 1} & \textbf{Head 2} \\\hline\hline 
            \texttt{A} & Department 
            \begin{itemize} \setlength{\itemsep}{0pt}
                \item \texttt{A} - Apple
                \item \texttt{B} - Boy
                \item \texttt{C} - Cat
                \item \texttt{D} - Dog
            \end{itemize}\\
            \texttt{E} &  Elephant \\   
            \texttt{F} &  Fan \\   
            \hline
        \end{longtable}
    \end{minipage}%

\end{document}

输出

答案1

布局有两种变化。我减少了列表的缩进量和相对于周围文本的垂直间距。

注意命令或环境的可选参数必须用一对括号 ( [option]) 分隔,不是在一对括号命令 ( \[option\]) 之间。此外,字体命令(例如)\bf已被弃用超过 20 年。请使用\textbf{…}命令或\bfseries开关。

最后,同样重要的是,正如@Zarko 指出的那样,长表可以跨页拆分,而小页不能。您可以改用环境multicols

\documentclass[10pt,a4paper,oneside]{article}
\usepackage[a4paper,hmargin=0.9in, vmargin=1in]{geometry}
\usepackage{longtable}
\usepackage{enumitem}

\renewcommand{\familydefault}{\sfdefault}

\begin{document}
\scriptsize
\begin{minipage}[t]{0.5\textwidth}
\renewcommand\arraystretch{1.33}
    \begin{longtable}[t]{|p{1.0cm}|p{5.5cm}|}
        \hline
        \textbf{Head 1} & \textbf{Head 2} \\\hline\hline
        \texttt{A} & Department
            \begin{itemize}[wide = 0.5em, nosep, after=\vspace{-\baselineskip}]
                \item \texttt{A} - Apple
                \item \texttt{B} - Boy
                \item \texttt{C} - Cat
                \item \texttt{D} - Dog
            \end{itemize}\\
        \texttt{E} & Elephant \\
        \texttt{F} & Fan \\
        \hline
    \end{longtable}
\end{minipage}%

\begin{minipage}[t]{0.5\textwidth}
\renewcommand\arraystretch{1.33}
    \begin{longtable}[t]{|c|p{5.5cm}|}
        \hline
        \textbf{Head 1} & \textbf{Head 2} \\\hline\hline
        \texttt{A} & Department
            \begin{itemize}[wide = 0.5em, nosep, after=\vspace{-\baselineskip}]
                \item \texttt{A} - Apple
                \item \texttt{B} - Boy
                \item \texttt{C} - Cat
                \item \texttt{D} - Dog
            \end{itemize}\\
        \texttt{E} & Elephant \\
        \texttt{F} & Fan \\
        \hline
    \end{longtable}
\end{minipage}%
\end{document} 

在此处输入图片描述

答案2

如果您加载了该enumitem包,则可以设置列表选项(一个或多个),包括您需要的命令after=。例如,如果您写入after=\vspace{\baselineskip},那么这就是列表之后将发生的事情。

如果您想要更紧凑的列表,也可以使用负值,例如itemsep=-1mm。无论如何,请检查我如何使用这些命令,因为您使用的方式不是标准方式。要将longtable左对齐,请添加可选参数[l]

另外,请确保检查你的代码,有很多\[\]不应该出现的地方,可能是搜索和替换的结果。

输出

在此处输入图片描述

代码

\documentclass[10pt,a4paper,oneside]{article}
\usepackage[a4paper,left=0.9in,right=0.9in,top=1in,bottom=1in]{geometry}
\usepackage{longtable}
\usepackage{enumitem}

\renewcommand{\familydefault}{\sfdefault}

\begin{document}
\scriptsize
%\begin{minipage}[t]{0.5\textwidth}
    \begin{longtable}[l]{|p{1.0cm}|p{5.5cm}|}
        \hline
        \bf{Head 1} & \textbf{Head 2} \\\hline\hline 
        \texttt{A} & Department 
            \begin{itemize}[itemsep=0pt, after=\vspace{-1ex}]
                \item \texttt{A} - Apple
                \item \texttt{B} - Boy
                \item \texttt{C} - Cat
                \item \texttt{D} - Dog
            \end{itemize}\\
        \texttt{E} &  Elephant \\   
        \texttt{F} &  Fan \\   
        \hline
    \end{longtable}
%\end{minipage}%
\end{document}

答案3

我不知道这个表设计背后要求的是什么,但是,我会设计如下:

\documentclass[10pt,a4paper,oneside]{article}
\usepackage[a4paper,hmargin=0.9in, vmargin=1in]{geometry}
\usepackage{tabularx}
\usepackage{enumitem}

\renewcommand{\familydefault}{\sfdefault}

\begin{document}
\renewcommand\arraystretch{1.2}
    \begin{tabularx}{0.5\textwidth}{|>{\ttfamily}c|>{\ttfamily}X|}
        \hline
\textbf{\textsf{Head 1}} & \textbf{\textsf{Head 2}} \\\hline\hline
        A & Department
            \begin{itemize}[wide = 0.5em, nosep, after=\vspace{-\baselineskip}]
                \item A - Apple
                \item B - Boy
                \item C - Cat
                \item D - Dog
            \end{itemize}\\
        E & Elephant \\
        F & Fan \\
        \hline
    \end{tabularx}
\end{document}

即不使用minipages,而是使用tabularx,将表格扩展到所需宽度并在列选项中定义字体系列。这使代码更简洁,更不容易出错。上面的 MWE 给出:

在此处输入图片描述

附录: 如果您对列头使用包thead中的宏makecell,则可以获得:

在此处输入图片描述

上述 MWE 需要进行的变更包括:

\usepackage{makecell,tabularx}
\renewcommand\theadfont{\bfseries\sffamily}
\usepackage{enumitem}

\renewcommand{\familydefault}{\sfdefault}

\begin{document}
\renewcommand\arraystretch{1.2}
    \begin{tabularx}{0.5\textwidth}{|>{\ttfamily}c|>{\ttfamily}X|}
        \hline
\thead{Head 1} & \thead{Head 2} \\\hline\hline
... <further is the same as in above MWE > ...

相关内容