减少 multicols 和 tcolorbox 中列之间的空间

减少 multicols 和 tcolorbox 中列之间的空间

我想减少列之间的空间并且tcolorbox不带框架显示。

我的最小代码:

\documentclass{article}
\usepackage[a4,landscape]{geometry}
\usepackage[absolute,overlay]{textpos}
\usepackage{xcolor}
\usepackage{tcolorbox}
\tcbuselibrary{poster}
\usepackage{tikz} 
\usetikzlibrary{positioning}
\usepackage{enumitem}
\usepackage{multicol}
\usepackage{microtype}
\begin{document}
\begin{tcbposter}
\posterbox[width=12.0cm,height=5.0cm]{xshift=1cm,yshift=1cm}
{
\addtolength{\leftmargini}{0.1cm}
{
\begin{tcolorbox}
\setlength\columnsep{-10pt}
%\setlength{\columnrulewidth}{1pt}
\begin{multicols*}{3}
\begin{enumerate}[itemsep=0.5mm]
\item  ............ 
\item  ............ 
\item  ............ 
\item  ............ 
\item  ............ 
\item  ............ 
\end{enumerate}
\end{multicols*}
\end{tcolorbox}
} 
}
\end{tcbposter}
\end{document}

在此处输入图片描述

答案1

首先,\usepackage[a4,landscape]{geometry}是无效的:您想要的选项叫做a4paper,而不是a4

其次,由于插入了缩进框,导致\hbox宽度过大。在之前添加可以解决这个问题。\parindent\begin{tcbposter}\noindent\begin{tcbposter}

现在,谈谈真正的问题。由于您没有说明如何处理删除的水平空间,因此我不得不猜测:我假设您希望保留整个整体宽度并用列内容完全填充它(因此,我将其设置为\columnsep0pt

  1. 为了删除 周围的框架tcolorbox,您可以使用tile选项,它是 的快捷方式skin=tile(这通常需要\tcbuselibrary{skins})。

  2. 您尝试挤压的水平空间并非来自 的multicol参数\columnsep— 这就是您尝试使用\setlength\columnsep{-10pt}无效的原因。它部分来自enumitem水平间距参数 — 主要来自labelwidth,但也有一部分来自默认自动计算的labelindent。此外,您的点不一定填满整行,因为您使用的是显式的............而不是\dotfill

    通过传递leftmargin=*enumerate环境,可以告诉1) 将宽度enumitem设置为(这是由于枚举的编号)和 2)从其他参数计算参数。由于默认为,当不从其他参数计算时,即使用 时的情况,标签将设置为从当前列的左边距开始。labelwidth0.\arabicleftmarginlabelindent0ptleftmargin=*enumerate

\documentclass{article}
\usepackage[a4paper,landscape]{geometry}
\usepackage[absolute,overlay]{textpos}
\usepackage{tcolorbox}
\tcbuselibrary{poster, skins}
\usepackage{enumitem}
\usepackage{multicol}

\begin{document}
\noindent     % Without this, you have an overfull \hbox (\parindent too much)
\begin{tcbposter}
\posterbox[width=12.0cm,height=5.0cm]{xshift=1cm,yshift=1cm}
{%
  \begin{tcolorbox}[tile]       % <---- 'tile' removes the frame
  \setlength{\columnsep}{0pt}%
  \begin{multicols}{3}
  \begin{enumerate}[itemsep=0.5mm, leftmargin=*]
  \item  \dotfill\\ abc def\dotfill
  \item  \dotfill\\\mbox{}\dotfill
  \item  \dotfill\\\mbox{}\dotfill
  \item  \dotfill\\\mbox{}\dotfill
  \item  \dotfill\\\mbox{}\dotfill
  \item  \dotfill\\\mbox{}\dotfill
  \end{enumerate}
  \end{multicols}
  \end{tcolorbox}
}%
\end{tcbposter}
\end{document}

截屏

注意:这里为什么需要 不是很清楚tcolorbox。如果没有它,您将获得以下内容(即不再有、left和的边距):toprightbottomtcolorbox

在此处输入图片描述

相关内容