
решение1
Как вы, вероятно, знаете, tcolorbox
может создавать все виды цветных ящиков, а также включает в себя theorems
библиотеку для поддержки создания цветных сред для теорем, определений, ...
Основная команда для таких ящиков:
\newtcbtheorem[init options]{env-name}{displayed name}{format options}{reference prefix}
что объясняется в разделе 16.1 издокументация tcolorbox. Эта команда создает среду env-name
с двумя обязательными параметрами: названием теоремы и меткой, которой будет предшествовать , чтобы reference prefix
создать метку, связанную с этим конкретным полем.
Следующий код показывает, как использовать три \newtcbtheorem
команды для определения теорем, определений и следствий с желаемым стилем. Все блоки будут разорваны на границах страницы, но только первый фрагмент будет помечен. Если высота содержимого блока короче высоты повернутого заголовка, появятся нежелательные эффекты, как вы можете видеть в первом примере.
(Примечание: если следующий код показывает ошибку, связанную с tcolorbox
параметрами, пожалуйста, обновите tcolorbox
пакет.)
\documentclass{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\tcbset{%
theo/.style={%
enhanced,
breakable,
sharp corners,
toprule=0pt, rightrule=0pt, bottomrule=0pt, leftrule=1mm,
colback=#1!5, colframe=#1!80!black, coltitle=#1!80!black,
detach title,
overlay unbroken and first ={
\node[rotate=90, minimum width=1cm, anchor=south, font=\bfseries]
at (frame.west) {\tcbtitle};
}
}
}
\newtcbtheorem[auto counter]{mytheo}{Théorème}
{theo=green}{th}
\newtcbtheorem[auto counter]{mydef}{Définition}
{theo=blue}{df}
\newtcbtheorem[auto counter]{mycoro}{Corollaire}
{theo=green}{cl}
\begin{document}
\begin{mytheo}{}{}
\lipsum[1]
\end{mytheo}
\begin{mydef}{}{}
\lipsum[2]
\end{mydef}
\begin{mycoro}{}{}
\lipsum[3]
\end{mycoro}
\end{document}