我使用tcolorbox
。如何才能实现如下方框形式的草稿?
--------------------
|Lorem |ipsum |
| | |
--------------------
|Lorem ipsum dolor |
| |
--------------------
当我将两个盒子组合在一起时,它们之间就有空间了。
\documentclass[]{article}
\usepackage{lipsum}
\usepackage[most]{tcolorbox} %kolor wokół sekcji
\usepackage{geometry}
\usepackage{tikz}
\usetikzlibrary{shadows}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\newtcolorbox{FirstBox}[2]{
sidebyside,sidebyside align=top,
skin=enhanced#2,
boxsep=1mm,left=1mm,right=1mm,top=1mm,
colback=black!5!white,
colframe=black!75!white,
title={Box {\bf #1}}
}
\newtcolorbox{SecondBox}[2]{
boxsep=1mm,left=1mm,right=1mm,top=0mm,
colback=black!5!white,
colframe=black!75!white,
skin=enhanced#2,
}
%--------------------------
\begin{document}
\begin{FirstBox}{ABC}{first}
Lorem ipsum dolor
\tcblower
Lorem ipsum dolor
\end{FirstBox}
\begin{SecondBox}{ABC}{last}
\lipsum[4]
\end{SecondBox}
\end{document}
答案1
您可以使用before
和after
选项尝试删除这个空白处,但我认为更好的解决方案是在单个内部构建这个构造tcolorbox
。
第一部分可以用一列tabular
或两列环境构建。
但如果你坚持的话,side by side
tcolorbox
你可以将一个盒子插入另一个盒子里面。
\documentclass[]{article}
\usepackage{lipsum}
\usepackage[most]{tcolorbox} %kolor wokół sekcji
\usepackage{geometry}
\usepackage{tikz}
\usetikzlibrary{shadows}
\newtcolorbox{outerBox}[1]{
breakable, enhanced,
colback=black!5!white,
colframe=black!75!white,
title={Box {\bf #1}},
top=0pt
}
\newtcolorbox{twocolBox}{
sidebyside, sidebyside align=top,
enhanced,
arc=0pt,
colback=black!5!white,
colframe=black!75!white,
boxsep=1mm,
notitle,
oversize,
nobeforeafter,
frame hidden,
}
%--------------------------
\begin{document}
\begin{outerBox}{ABC}
\begin{twocolBox}
Lorem ipsum dolor
\tcblower
Lorem ipsum dolor
\end{twocolBox}
\lipsum[4]
\end{outerBox}
\end{document}
答案2
这是其中一个例子tabularx
:
\documentclass{article}
\usepackage{array,tabularx,lipsum}
\usepackage[table]{xcolor}
\usepackage[most]{tcolorbox}
\newtcolorbox{MyBox}[1][]{%
enhanced,
boxsep=0pt,
fonttitle=\bfseries\large,
fontupper=\normalsize\sffamily,
colback=yellow!10!white,
colframe=red!50!black,
colbacktitle=red!30!white,
coltitle=black,
before title={\noindent},
#1
}%
\begin{document}
\begin{MyBox}[tabularx*={\arrayrulewidth0.5mm}{X|X},title=Box ABC]%
Lorem ipsum dolor & Lorem ipsum dolor \\\hline
\multicolumn{2}{p{0.96\linewidth}}{\lipsum*[4]}
\end{MyBox}
\end{document}
尽管还有改进的可能性,但这应该作为一个起点。
答案3
只要盒子有圆角,在角落处两个盒子之间的边界就会有轻微的分离。
环境tcolorbox
引入了顶部和底部 parskip 值,可以通过设置来省略nobeforeafter
,但是,这会使框稍微缩进一点。可以使用 `\noindent 来防止这种情况。
\documentclass[]{article}
\usepackage{lipsum}
\usepackage{tcolorbox} %kolor wokół sekcji
\usepackage{geometry}
\usepackage{tikz}
\usetikzlibrary{shadows}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\newtcolorbox{FirstBox}[2]{%
sidebyside,sidebyside align=top,
boxsep=1mm,left=1mm,right=1mm,top=1mm,
bottomrule=0pt,
colback=black!5!white,
colframe=black!75!white,
nobeforeafter,%
title={Box {\textbf{#1}}},
auto outer arc,
arc=0mm
skin=enhanced#2
}%
\newtcolorbox{SecondBox}[2]{
boxsep=1mm,left=1mm,right=1mm,top=1mm,
colback=black!5!white,%
colframe=black!75!white,
nobeforeafter,
toprule=0pt,
notitle,
arc=0pt,
auto outer arc,
skin=enhanced#2
}%
\begin{document}
\noindent
\begin{FirstBox}{ABC}{first}
Lorem ipsum dolor
\tcblower
Lorem ipsum dolor
\end{FirstBox}
\begin{SecondBox}{ABC}{last}
\lipsum[4]
\end{SecondBox}
\end{document}
编辑改进(???) 版本使用一个\newcommand
,一次性完成所有操作:
\documentclass[]{article}
\usepackage{lipsum}
\usepackage{tcolorbox} %kolor wokół sekcji
\usepackage{geometry}
\usepackage{tikz}
\usetikzlibrary{shadows}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\newcommand*{\SuperBox}[6][]{%
\begin{tcolorbox}[colback=black!5!white,colframe=black!75!white, skin=enhanced,#1,title=#2]
\begin{tcolorbox}[sidebyside,sidebyside align=top,notitle,boxrule=-1pt,left=0pt,top=0pt,titlerule=0pt,leftlower=0pt,nobeforeafter,bottomtitle=-10pt,notitle]
#4%
\tcblower%
#5%
\end{tcolorbox}
\begin{tcolorbox}[boxsep=0mm,left=1mm,right=1mm,%
nobeforeafter,%
boxrule=-1pt,%
notitle]%
#6%
\end{tcolorbox}%
\end{tcolorbox}%
}%
\begin{document}
% [opt arg]{box title}{unused skin}{left box content}{right box content}{lower box content}
\SuperBox{Box ABC}{First}{Lorem ipsum dolor left}{Lorem ipsum dolor right}{\lipsum[4]}
\SuperBox[colframe=red,colbacktitle=red,coltitle={yellow}]{Box ABC}{First}{Lorem ipsum dolor left}{Lorem ipsum dolor \textcolor{blue}{\textbf{right}}}{\lipsum[8]}
\end{document}