tcolorbox
매뉴얼에서는 다음 예를 제공합니다.
누구든지 정확히 이런 유형의 상자를 만드는 방법을 제안해 주실 수 있나요? 추가할 행 수는 유연해야 합니다(tcolorbox에는 위쪽 및 아래쪽 이외의 옵션이 없는 것 같습니다).
답변1
다음은 다음을 사용하는 한 가지 가능성입니다 mdframed
.
\documentclass{article}
\usepackage{xcolor}
\usepackage[framemethod=tikz]{mdframed}
\definecolor{mybrown}{RGB}{128,64,0}
\mdfdefinestyle{mystyle}{%
linecolor=mybrown,outerlinewidth=1pt,%
frametitlerule=true,frametitlefont=\sffamily\bfseries\color{white},%
frametitlerulewidth=1pt,frametitlerulecolor=mybrown,%
frametitlebackgroundcolor=mybrown,
backgroundcolor=mybrown!05,
innertopmargin=\topskip,
roundcorner=5pt
}
\mdtheorem[style=mystyle]{example}{Example}
\gdef\Sepline{%
\par\noindent\makebox[\linewidth][l]{%
\hspace*{-\mdflength{innerleftmargin}}%
\tikz\draw[thick,dashed,gray!60] (0,0) --%
(\textwidth+\the\mdflength{innerleftmargin}+\the\mdflength{innerrightmargin},0);
}\par\nobreak}
\begin{document}
\begin{example}[The Title]
The contents of the first part.
\Sepline
\noindent The contents of the second part.
\Sepline
\noindent The contents of the third part.
\Sepline
\noindent The contents of the fourth part.
\end{example}
\end{document}
정리와 같은 구조를 사용하지 않고 제목을 제공하기 위한 필수 인수가 있는 간단한 환경을 사용하는 수정 사항은 다음과 같습니다.
\documentclass{article}
\usepackage{xcolor}
\usepackage[framemethod=tikz]{mdframed}
\definecolor{mybrown}{RGB}{128,64,0}
\mdfdefinestyle{mystyle}{%
linecolor=mybrown,outerlinewidth=1pt,%
frametitlerule=true,frametitlefont=\sffamily\bfseries\color{white},%
frametitlerulewidth=1pt,frametitlerulecolor=mybrown,%
frametitlebackgroundcolor=mybrown,
backgroundcolor=mybrown!05,
innertopmargin=\topskip,
roundcorner=5pt
}
\newmdenv[style=mystyle]{exa}
\newenvironment{example}[1]
{\begin{exa}[frametitle=#1]}
{\end{exa}}
\gdef\Sepline{%
\par\noindent\makebox[\linewidth][l]{%
\hspace*{-\mdflength{innerleftmargin}}%
\tikz\draw[thick,dashed,gray!60] (0,0) --%
(\textwidth+\the\mdflength{innerleftmargin}+\the\mdflength{innerrightmargin},0);
}\par\nobreak}
\begin{document}
\begin{example}{The Title}
The contents of the first part.
\Sepline
\noindent The contents of the second part.
\Sepline
\noindent The contents of the third part.
\Sepline
\noindent The contents of the fourth part.
\end{example}
\end{document}
답변2
tcolorbox
두 개 이상의 하위 부분을 추가하는 코드를 제공하지 않습니다. 하지만 다음과 같이 추가 줄을 추가할 수도 있습니다.
\documentclass{report}
\usepackage{tikz,tcolorbox}
\makeatletter
\newcommand{\DrawLine}{%
\begin{tikzpicture}
\path[use as bounding box] (0,0) -- (\linewidth,0);
\draw[color=red!75!black,dashed,dash phase=2pt]
(0-\kvtcb@leftlower-\kvtcb@boxsep,0)--
(\linewidth+\kvtcb@rightlower+\kvtcb@boxsep,0);
\end{tikzpicture}%
}
\makeatother
\begin{document}
\begin{tcolorbox}[colback=red!5,colframe=red!75!black,title=My nice heading]
This is another \textbf{tcolorbox}.
\tcblower
Here, you see the lower part of the box.
\DrawLine
and some more
\end{tcolorbox}
\end{document}
결과는 다음과 같습니다.