我一直在努力让文本进入 tcolorbox 边框。请参阅 MWE:
\documentclass[table]{standalone}
\usepackage{polyglossia, lipsum}
\usepackage[most]{tcolorbox}
\newtcolorbox{mybox}[2][]{%
enhanced,
before upper=\setlength{\parskip}{\bigskipamount},
boxrule=2mm,
bottomrule=9mm,
overlay={%
\node[white, font=\small, anchor=south] at (frame.south) {Footer \\ With Two Lines};},
title=#2,#1}
\newcommand{\xxbody}{
\lipsum[1]
}
\newcommand{\xxheading}{
Header \\ With Two Lines
}
\begin{document}
\begin{mybox}{\LARGE \xxheading{}}
\xxbody{}
\end{mybox}
\end{document}
我想拥有像多行标题一样的多行页脚。如果可能的话,自动设置底部边框的高度以适应页脚。有什么办法吗?
这是续集先前的问题。
答案1
另一种方法是使用bicolor
皮肤并设置下部样式,使其起到脚注的作用。
优点:无需设置node
选项。
缺点:必须手动插入\tcblower
,否则将没有下部。
% !TeX TS-program = xelatex
\documentclass[table]{standalone}
\usepackage{polyglossia, lipsum}
\usepackage[most]{tcolorbox}
\newtcolorbox{mybox}[2][]{%
skin=bicolor,
% geometry
boxrule=2mm,
% color and font
collower=white,
colbacklower=tcbcolframe,
fonttitle=\LARGE,
% segmentation
segmentation empty,
% box content
title=#2,
before upper=\setlength{\parskip}{\bigskipamount},
before lower={Footer \\ With Two Lines},
halign lower=center,
% more
#1
}
\newcommand{\xxbody}{
\lipsum[1]
}
\newcommand{\xxheading}{
Header \\ With Two Lines
}
\begin{document}
\begin{mybox}{\xxheading}
\xxbody{}
\tcblower % this must be manually inserted
\end{mybox}
\end{document}
答案2
经过进一步阅读,我找到了一个解决方案--在节点中使用 minipage。
但是,通过采纳 @Ignasi 的建议,可以进一步简化代码。以下是 MWE 及其建议。
\documentclass[table]{standalone}
\usepackage{polyglossia, lipsum}
\usepackage[most]{tcolorbox}
\newtcolorbox{mybox}[2][]{%
enhanced,
before upper=\setlength{\parskip}{\bigskipamount},
boxrule=2mm,
bottomrule=9mm,
overlay={%
\node[white, font=\small, anchor=south, text width=\textwidth] at (frame.south) {%
Footer \\ With Two Lines};},
title=#2,#1}
\newcommand{\xxbody}{
\lipsum[1]
}
\newcommand{\xxheading}{
Header \\ With Two Lines
}
\begin{document}
\begin{mybox}{\LARGE \xxheading{}}
\xxbody{}
\end{mybox}
\end{document}