我想纠正一下附件中的脚本,我很幸运能得到它,这要归功于 邮政
\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
\thickmuskip
5mu
3mu
以下是代码的简化版本,以便我们只关注出现 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}