
Я хочу создать красивую коробку с параллельной линией. Пожалуйста, смотрите прикрепленное изображение
Мой минимальный код:
\documentclass[a4paper,8pt]{article}
\usepackage[left=1.0cm,right=0.3cm,top=0.5cm,bottom=0.5cm]{geometry}
\usepackage[most]{tcolorbox}
%\usepackage{tikz}
\usepackage{adjustbox}
\tikzset{fancytitle/.style ={fill=red, text=white}}
\newtcolorbox{Mybox}[2][]{enhanced,
arc=4mm,
colframe=blue!80!red,colback=white,colbacktitle=blue!5!yellow!50!white,
fonttitle=\bfseries,coltitle=black,
title={#2},
#1}
\begin{document}
\begin{Mybox}[width=5.4cm,height=2.4cm]{Title}
\begin{center}
abc xyz
\end{center}
\end{Mybox}
\end{document}
решение1
Это в значительной степени скопировано сздесьно \parshape
материал вставляется автоматически с помощью before upper
. Конечно, вы можете настроить размеры по своему усмотрению и изменить количество строк соответственно \parshape
.
\documentclass[a4paper,8pt]{article}
\usepackage[left=1.0cm,right=0.3cm,top=0.5cm,bottom=0.5cm]{geometry}
\usepackage[most]{tcolorbox}
\newtcolorbox{Mybox}[2][]{%
enhanced,top=0mm,left=2pt,right=2pt,
enlarge top by=\baselineskip/2+1mm,
enlarge top at break by=0mm,pad at break=2mm,
fontupper=\normalsize,
overlay unbroken and first={%
\draw[fill=yellow]
([xshift=6pt,yshift=12pt]frame.north west) -| ++ (1,-2)
-- ++ (-0.5,0.3) -- ++ (-0.5,-0.3) -- cycle;
\node[anchor=north west,text width=1cm-4pt,align=center] at ([xshift=6pt,yshift=12pt]frame.north west)
{#2};
},
breakable,arc=4mm,
colframe=blue!80!red,colback=white,
width=\textwidth,
before upper ={\parshape 5
1.2cm \dimexpr \hsize-1.2cm\relax
1.2cm \dimexpr \hsize-1.2cm\relax
1.2cm \dimexpr \hsize-1.2cm\relax
1.2cm \dimexpr \hsize-1.2cm\relax
0pt \hsize} ,#1}
\begin{document}
\begin{Mybox}[width=5.4cm]{abc xyz}
some text some text some text some text some text some text some text some text
some text some text some text some text some text some text some text some text
some text some text some text some text some text
\end{Mybox}
\end{document}
Если вам нужны буквально горизонтальные линии, вы можете использовать \hrulefill
. (Однако в этом случае вам может быть лучше обойтись без него tcolorbox
и нарисовать вещь просто в TiкЗ.)
\documentclass[a4paper,8pt]{article}
\usepackage[left=1.0cm,right=0.3cm,top=0.5cm,bottom=0.5cm]{geometry}
\usepackage[most]{tcolorbox}
\newcounter{ic}
\newtcolorbox{Mybox}[2][]{%
enhanced,top=0mm,left=2pt,right=2pt,
enlarge top by=\baselineskip/2+1mm,
enlarge top at break by=0mm,pad at break=2mm,
fontupper=\normalsize,
overlay unbroken and first={%
\draw[fill=yellow]
([xshift=6pt,yshift=12pt]frame.north west) -| ++ (1.6,-1.3)
-- ++ (-0.8,0.3) -- ++ (-0.8,-0.3) -- cycle;
\node[anchor=north west,text width=1.6cm-4pt,align=center] at ([xshift=6pt,yshift=12pt]frame.north west)
{#2};
},
breakable,arc=4mm,
colframe=blue!80!red,colback=white,
width=\textwidth,#1}
\begin{document}
\begin{Mybox}[width=5.4cm]{abc xyz}
\vphantom{X}\hspace{1.8cm}\hrulefill{}\par
\hspace{1.8cm}\hrulefill{}\par
\hrulefill{}\par
\hrulefill{}\par
\hrulefill{}
\end{Mybox}
\end{document}