列和文本的宽度略有不同

列和文本的宽度略有不同

下面是 MWE。

%---------------------------------------------------------------------
%   PACKAGES AND OTHER DOCUMENT CONFIGURATIONS
%---------------------------------------------------------------------

\documentclass[twoside]{article}

\usepackage{lipsum,xcolor}
\usepackage[hmarginratio=1:1,top=32mm,columnsep=20pt]{geometry} % Document margins
\usepackage{multicol} % Used for the two-column layout of the document
\usepackage{titlesec} % Allows customization of titles
\titleformat{\section}[block]{\large\scshape}{}{0pt}{\colorsection}{}
\renewcommand\thesection{}
\newcommand{\colorsection}[1]{\colorbox{blue!20}{\parbox{\columnwidth}{\thesection \centering #1}}}
\usepackage{fancyhdr} % Headers and footers
\pagestyle{fancy} % All pages have headers and footers

%----------------------------------------------------------------------------------------
%   TITLE SECTION
%----------------------------------------------------------------------------------------

\title{\vspace{-15mm}\fontsize{24pt}{10pt}\selectfont\textbf{A Minimum Working Example}} % Article title
\author{}
\date{}

%----------------------------------------------------------------------------------------

\begin{document}

\maketitle % Insert title

\thispagestyle{fancy} % All pages have headers and footers

%----------------------------------------------------------------------------------------
%   ARTICLE CONTENTS
%----------------------------------------------------------------------------------------

\begin{multicols}{2} % Two-column layout throughout the main article text

\section*{Introduction}
\lipsum[2-3] % Dummy text

%------------------------------------------------

\section*{Discussion}

\lipsum[7] % Dummy text

\end{multicols}

\end{document}

如您所见,列宽和列文本本身的宽度略有不同。我该如何纠正这种差异?

在此处输入图片描述

答案1

您的\colorboxes 必然会在内容和盒子外边缘之间添加间隙。此宽度称为\fboxsep,因为 a\colorbox\fbox没有任何规则的。因此,使用

\newcommand{\colorsection}[1]{%
  \colorbox{blue!20}{%
    \makebox[\dimexpr\columnwidth-2\fboxsep]{#1}}}

为您\colorsection

在此处输入图片描述

我使用了\makebox[<width>]{<stuff>}而不是\parbox,因为这里不需要后者。\makebox必然使其内容居中。

由于从\thesection技术上来说它是一个无操作,因此我也将其从标题设置中删除了。

相关内容