新环境,孤儿线

新环境,孤儿线

我为我的文档创建了三个环境:一本寻宝小册子scrreprt

我创建了 3 个环境(文档是法语的):

谜:

\newenvironment{enigme}{\refstepcounter{enigme}\vspace{0.5cm}{\bfseries Énigme \theenigme\ : \\}}{\par\vspace{0.5cm}}

路线指示:

\newenvironment{path}{\vspace{0.5cm}{\bfseries \textcolor{DarkBlue}{Parcours :} \\}}{\par\vspace{0.5cm}}

文化指征:

\newcommand{\culture}[1]{\emph{#1.}}

它运行完美,但问题是,有时候,“Énigme”或“Parcours”这些词,或者我的文化标志的标题在页面末尾是孤立的。

\newcommand我该怎么做才能避免这种情况? 我可以在and中添加测试吗\newenvironment? 类似\if@lastlineofpage或类似的东西...

当然,我尝试了著名的

\widowpenalty10000
\clubpenalty10000

什么都没改变。我认为解决我的问题的说明应该写在\newcommand...

感谢您的帮助。

这是该文件的标题:

\documentclass[12pt,a5paper,twoside=yes]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{lmodern}
\renewcommand*\familydefault{\sfdefault} %% Only if the base font of the document is to be sans serif
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[pdftex]{graphicx}
\usepackage{lmodern}
\usepackage{subfig}
\usepackage[svgnames]{xcolor}
\usepackage{wrapfig}
\usepackage{fancybox}

答案1

可以使用类似盒子的环境来防止孤立标题,这还允许更多的设计和自动计数(类似于 Sigur 提出的定理)

我使用了我最喜欢的一个软件包—— tcolorbox(不幸的是,我不是这个软件包的作者:-()

颜色、框架可以随意改变,作为环境的可选参数。breakable在环境的选项列表中 使用说明符,因为这可能会再次留下孤立的标题等。

\documentclass[12pt,a5paper,twoside=yes]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{lmodern}
\renewcommand*\familydefault{\sfdefault} %% Only if the base font of the document is to be sans serif
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[pdftex]{graphicx}
\usepackage{lmodern}
\usepackage{subfig}
\usepackage[svgnames]{xcolor}
\usepackage{wrapfig}
\usepackage{fancybox}


\usepackage[most]{tcolorbox}


\newtcolorbox[auto counter]{enigme}[1][]{title={\bfseries Énigme~\thetcbcounter:},colbacktitle=red,coltitle=black,#1}

\newtcolorbox{path}[1][]{title={\bfseries Parcours:},coltitle=DarkBlue,colbacktitle=yellow,#1}

\newcommand{\culture}[1]{\emph{#1.}}

\begin{document}

\begin{enigme}
Aujourd'hui nous cherchons les chiens ;-)
\end{enigme}

\begin{path}
Nous allons 
\end{path}

\culture{Mais oui}

\end{document}

在此处输入图片描述

编辑

现在,在框的上方和下方都有间距,并且没有框架,以显示可选参数的用法。

\documentclass[12pt,a5paper,twoside=yes]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{lmodern}
\renewcommand*\familydefault{\sfdefault} %% Only if the base font of the document is to be sans serif
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[pdftex]{graphicx}
\usepackage{lmodern}
\usepackage{subfig}
\usepackage[svgnames]{xcolor}
\usepackage{wrapfig}
\usepackage{fancybox}


\usepackage[most]{tcolorbox}


\newtcolorbox[auto counter]{enigme}[1][]{enhanced,title={\bfseries Énigme~\thetcbcounter:},before skip=0.5cm,after skip=0.5cm,colbacktitle=red,coltitle=black,#1}

\newtcolorbox{path}[1][]{enhanced,title={\bfseries Parcours:},coltitle=DarkBlue,colbacktitle=yellow,before skip=1.5cm, after skip=2cm,#1}

\newcommand{\culture}[1]{\emph{#1.}}

\begin{document}

\begin{enigme}
Aujourd'hui nous cherchons les chiens ;-)
\end{enigme}

\begin{path}
Nous allons 
\end{path}

\culture{Mais oui}

\begin{enigme}[colback=green,breakable]
Aujourd'hui nous cherchons les chats ;-)
\end{enigme}

\begin{path}[colback=white,colbacktitle=white,coltitle=black,frame hidden]
Avant la maison
\end{path}


\end{document}

在此处输入图片描述

下次编辑

根据 OP 的要求,拥有一个自己的计数器并让它从零开始,使用

\newcounter{enigme}

\setcounter{enigme}{-1}

\newtcolorbox[use counter=enigme]{enigme}[1][]{enhanced,title={\bfseries Énigme~\thetcbcounter:},before skip=0.5cm,after skip=0.5cm,colbacktitle=red,coltitle=black,#1}

代替

\newtcolorbox[auto counter]{enigme}[1][]{enhanced,title={\bfseries Énigme~\thetcbcounter:},before skip=0.5cm,after skip=0.5cm,colbacktitle=red,coltitle=black,#1}

相关内容