删除环境末尾出现的小黑色矩形

删除环境末尾出现的小黑色矩形

我想纠正一下附件中的脚本,我很幸运能得到它,这要归功于 邮政

\documentclass[11pt,draft]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{amsfonts}
\usepackage{mathtools}
\usepackage{ntheorem}
\usepackage[most]{tcolorbox}
\usepackage[nosolutionfiles]{answers} % for immediate answers (not stored in a file)
\theoremstyle{plain}
\theoremindent=40pt
\theoremheaderfont{\normalfont\bfseries\hspace{-\theoremindent}}
\newtheorem{theorem}{Théorème}
\newtheorem{definition}{Définition}
\newtheorem{proof}{Démonstration}
\usetikzlibrary{decorations.pathmorphing}
\tcbuselibrary{skins}
\tcolorboxenvironment{theorem}{
    blanker,
    breakable,
    before skip=\topsep,
    after skip=\topsep,
    borderline west={1pt}{20pt}{double, shorten <=12pt}
    }
\tcolorboxenvironment{proposition}{
    blanker,
    breakable,
    before skip=\topsep,
    after skip=\topsep,
    borderline west={1pt}{20pt}{double, shorten <=12pt}
    }
\tcolorboxenvironment{definition}{
    blanker,
    breakable,
    before skip=\topsep,
    after skip=\topsep,
    borderline west={1pt}{20pt}{decoration={zigzag,amplitude=2pt,pre=moveto,pre length=12pt},decorate}
    }
\newtheorem{exo}{Exercice}
\Newassociation{correction}{Soln}{mycor}
\Newassociation{indication}{Indi}{myind}
\renewcommand{\Solnlabel}[1]{\bf \emph{Correction #1}}
\renewcommand{\Indilabel}[1]{\bf \emph{Indication #1}}
\newcommand{\flag}[1]{}
\newtheorem{question}{Question}
\def\Tiny{\fontsize{4pt}{4pt}\selectfont}
\newcommand*{\eqdef}{\ensuremath{\overset{\mathclap{\text{\Tiny def}}}{=}}}
\newcommand{\norm}[1]{\left\lVert#1\right\rVert}
\begin{document}
\hrule
\begin{center}
\textbf{\textsf{\Large
     Exercices                                  % TITRE
}}
\end{center}
\hrule
\vspace*{1cm}
\Opensolutionfile{mycor}[ficcorex]
\Opensolutionfile{myind}[ficind]

\begin{exo}
Soient $(X,d)$ un espace métrique et $A\subset X$, $A\neq\emptyset$. On pose:
 \[
 d(x, A)=\inf\{ d(x,a)\ ;\, a\in A\}.
 \]
 Qu'on appelle la \textit{ distance du point $x$ à l'ensemble $A$}.
 On remarque que $d(x, A)$ est bien définie et $\geqslant 0$. De plus, $d(x,A)=0$ si $x\in A$.
 Montrer que
\begin{enumerate}
 \item $x\mapsto d(x,A)$ est $1$-lipschitzienne.
 \item $d(x,A)=d(x,\overline A)$.
 \item $d(x, A)=0\Longleftrightarrow  x\in \overline A$.
 \end{enumerate}
\end{exo}
\begin{correction}
\begin{enumerate}
 \item Soient $x, y\in A$. Pour tout $a\in A$ on a
 \[
 -d(x,y)+d(y,a)\leqslant d(x,a)\leqslant d(y,a)+d(x,y).
 \] Par passage à l'inf, on trouve
 $-d(x,y)+d(y, A)\leqslant d(x,A)\leqslant d(y,A)+d(x,y)$, d'où $|d(x, A)-d(y,A)|\leqslant d(x,y)$.
 \item  Clairement, si $A\subset B$, alors $d(x, A)\geqslant d(x, B)$. En particulier, $d(x, A)\geqslant d(x,\overline A)$. Soit $\varepsilon>0$. Il existe un $b\in\overline A$ tel que $d(x,b)<d(x,\overline A)+\varepsilon/2$. Il existe une suite $(a_n)\subset A$ telle que $a_n\to b$. Comme $y\mapsto d(x,y)$ est continue sur $X$, on trouve $d(x, a_n)\to d(x,b)$. Il existe donc un $n_0$ tel que $d(a_{n_0},b)<\varepsilon/2$. Il s'ensuit que
 $$d(x, A)\leqslant d(x, a_{n_0})\leqslant d(x,b)+d(b, a_{n_0})<d(x,\overline A)+\varepsilon.$$
 $\varepsilon$ étant arbitraire, on trouve $d(x, A)\leqslant d(x,\overline A)$.\\
 \item "$\Longrightarrow$" Si $d(x, A)=0$, alors pour tout $\varepsilon>0$ il existe un $a\in A$ tel que $d(x,a)<\varepsilon$. Pour $\varepsilon=1/(n+1)$, on trouve une suite $(a_n)\subset A$ telle que $d(x,a_n)<1/(n+1)$. On a donc $a_n\to x$, et par conséquent $x\in\overline A$.\\
  Si $x\in\overline A$, alors $0=d(x,\overline A)=d(x,A)$.
\end{enumerate}
 \end{correction}
\end{document}

以下是错误信息

Overfull \hbox (6.10593pt too wide) in paragraph at lines 87--88 

图片

如何去除修正末尾出现的小黑色矩形?

答案1

在文本最终定稿时应当解决这些问题。

黑框和 的警告一起Overfull \hbox表示 TeX 无法找到合适的断点。有几种操作可以尝试。

我的第一个建议是避免整个correction页面由一个环境组成enumerate,因为这会使页面看起来不平衡。另一个一般建议是加载microtype包(尽管在这种情况下它没有帮助)。

在你的情况下,6pt 的溢出意味着\geqslant符号几乎完全在边缘内,所以这应该得到修复。

在下面的代码中,我展示了原始代码,然后是一些可能的修复方法。在第一个修复方法中,我保留符号enumerate并将其推\geqslant到下一行:在真正的紧急情况下,这可能会在文档中出现一次。无论如何,最好的修复方法是省略“Clairement”。

请注意\thickmuskip我添加了一些可收缩性的技巧:同样,在文档中,关系符号周围的空间减少并不是那么糟糕。不要进行全局设置:这可能会对公式间距产生非常不利的影响。

\documentclass[11pt,draft,a4paper]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{amsmath}
\usepackage{amssymb}

\begin{document}

\subsubsection*{Original within \texttt{enumerate}}

\begin{enumerate}\setcounter{enumi}{1}
\item Clairement, si $A\subset B$, alors $d(x, A)\geqslant d(x, B)$. 
En particulier,
%%%% the problem!
$d(x, A)\geqslant d(x,\overline A)$.
%%%%
Soit $\varepsilon>0$. Il existe un $b\in\overline A$ tel que 
$d(x,b)<d(x,\overline A)+\varepsilon/2$. Il existe une suite $(a_n)\subset A$ telle 
que $a_n\to b$. Comme $y\mapsto d(x,y)$ est continue sur $X$, on trouve $d(x, a_n)\to d(x,b)$. 
Il existe donc un $n_0$ tel que $d(a_{n_0},b)<\varepsilon/2$.
\end{enumerate}

\subsubsection*{Original with \texttt{\char`\\linebreak}}

\begin{enumerate}\setcounter{enumi}{1}
\item Clairement, si $A\subset B$, alors $d(x, A)\geqslant d(x, B)$. 
En particulier,
%%%% the problem!
$d(x, A)\linebreak[0]\geqslant d(x,\overline A)$.
%%%%
Soit $\varepsilon>0$. Il existe un $b\in\overline A$ tel que 
$d(x,b)<d(x,\overline A)+\varepsilon/2$. Il existe une suite $(a_n)\subset A$ telle 
que $a_n\to b$. Comme $y\mapsto d(x,y)$ est continue sur $X$, on trouve $d(x, a_n)\to d(x,b)$. 
Il existe donc un $n_0$ tel que $d(a_{n_0},b)<\varepsilon/2$.
\end{enumerate}

\subsubsection*{Without \texttt{enumerate}}

2. Clairement, si $A\subset B$, alors $d(x, A)\geqslant d(x, B)$. 
En particulier,
%%%% the problem!
$d(x, A)\geqslant d(x,\overline A)$.
%%%%
Soit $\varepsilon>0$. Il existe un $b\in\overline A$ tel que 
$d(x,b)<d(x,\overline A)+\varepsilon/2$. Il existe une suite $(a_n)\subset A$ telle 
que $a_n\to b$. Comme $y\mapsto d(x,y)$ est continue sur $X$, on trouve $d(x, a_n)\to d(x,b)$. 
Il existe donc un $n_0$ tel que $d(a_{n_0},b)<\varepsilon/2$.

\subsubsection*{Locally reduce \texttt{\char`\\thickmuskip}}

2. Clairement, si $A\subset B$, alors $d(x, A)\geqslant d(x, B)$. 
En particulier,
%%%% the problem!
$\thickmuskip=\muexpr\thickmuskip + 0mu plus 0mu minus 2mu\relax 
d(x, A)\geqslant d(x,\overline A)$.
%%%%
Soit $\varepsilon>0$. Il existe un $b\in\overline A$ tel que 
$d(x,b)<d(x,\overline A)+\varepsilon/2$. Il existe une suite $(a_n)\subset A$ telle 
que $a_n\to b$. Comme $y\mapsto d(x,y)$ est continue sur $X$, on trouve $d(x, a_n)\to d(x,b)$. 
Il existe donc un $n_0$ tel que $d(a_{n_0},b)<\varepsilon/2$.

\subsubsection*{Rewording}

2. Si $A\subset B$, alors $d(x, A)\geqslant d(x, B)$. 
En particulier,
%%%% the problem!
$d(x, A)\geqslant d(x,\overline A)$.
%%%%
Soit $\varepsilon>0$. Il existe un $b\in\overline A$ tel que 
$d(x,b)<d(x,\overline A)+\varepsilon/2$. Il existe une suite $(a_n)\subset A$ telle 
que $a_n\to b$. Comme $y\mapsto d(x,y)$ est continue sur $X$, on trouve $d(x, a_n)\to d(x,b)$. 
Il existe donc un $n_0$ tel que $d(a_{n_0},b)<\varepsilon/2$.

\end{document}

在此处输入图片描述

答案2

你的帖子标题有点误导:黑色矩形——在印刷术中称为“slug”——出现在过满行的末尾,不是在环境的末尾。由于您指定了draft文档类选项,因此会插入 slug。

  • 消除 slug 最糟糕的方法是删除draft文档类选项。虽然它可以消除 slug,但它无法解决导致行满的问题。

  • 消除 slug 的最佳方式是重写相关段落的部分或全部,以便 LaTeX 可以找到其他更好的换行符。

  • 如果改写句子和段落不是一个选项,我建议您更改 的值——一个参数,该参数控制在“关系”运算符(例如和\thickmuskip)的左侧和右侧插入多少空格。 的默认值是;将其设置为 可以摆脱过满的行,从而摆脱 slug。\subset\geqslant\thickmuskip5mu3mu

以下是代码的简化版本,以便我们只关注出现 slug 的枚举项。我建议,如果您选择减少 的值\thickmuskip,则也减少 的值\medmuskip(它控制二元运算符周围的间距)。

在此处输入图片描述

\documentclass[11pt,draft]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{mathtools,amssymb,mathrsfs}
\usepackage[nosolutionfiles]{answers} % for immediate answers (not stored in a file)

\usepackage{ntheorem}
\theoremstyle{plain}
\theoremindent=40pt
\theoremheaderfont{\normalfont\bfseries\hspace{-\theoremindent}}
\Newassociation{correction}{Soln}{mycor}
\renewcommand{\Solnlabel}[1]{\bf \emph{Correction #1}}
\begin{document}

\hrule
\begin{center}% TITRE
\textbf{\textsf{\Large Exercices}}
\end{center}
\hrule
\vspace*{1cm}

\begin{correction}
\begin{enumerate}
\item Soient $x, y\in A$. Pour tout $a\in A$ on a \dots

\item  Clairement, si $A\subset B$, alors $d(x, A)\geqslant d(x, B)$. En particulier, $d(x, A)\geqslant d(x,\overline A)$. Soit $\varepsilon>0$. Il existe un $b\in\overline A$ tel que $d(x,b)<d(x,\overline A)+\varepsilon/2$. Il existe une suite $(a_n)\subset A$ telle que $a_n\to b$. \dots

\item \begingroup % localize scope of next two instructions
\thickmuskip=3mu % default value: 5mu
\medmuskip=3mu   % default value: 4mu
Clairement, si $A\subset B$, alors $d(x, A)\geqslant d(x, B)$. En particulier, $d(x, A)\geqslant d(x,\overline A)$. Soit $\varepsilon>0$. Il existe un $b\in\overline A$ tel que $d(x,b)<d(x,\overline A)+\varepsilon/2$. Il existe une suite $(a_n)\subset A$ telle que $a_n\to b$. \dots 
\endgroup

\item  Clairement, si $A\subset B$, alors $d(x, A)\geqslant d(x, B)$. En particulier, $d(x, A)\geqslant d(x,\overline A)$. Soit $\varepsilon>0$. Il existe un $b\in\overline A$ tel que $d(x,b)<d(x,\overline A)+\varepsilon/2$. Il existe une suite $(a_n)\subset A$ telle que $a_n\to b$. \dots
\end{enumerate}
\end{correction}
\end{document}

相关内容