如何创建完全定制且兼容的 LaTeX 环境

如何创建完全定制且兼容的 LaTeX 环境

我想在 LaTaX 中创建一个类似下图的简单环境。例如,如果此环境中有一些多余的注释(如参考文献等),可以添加到环境上方(如度量投影),也可以落入框架中;但是,我希望它与页面完全兼容;我的意思是,当其中一些保留在页面中,而其余部分流到下一页时,事情不会变得混乱,类似于将文本放置在文本流中;并且当环境中有一些脚注时,脚注将放置在当前页面中。我如何才能创建这样一个与其他环境非常兼容并像上述环境一样的标准环境?我请教经验丰富的老手,我可以使用哪些命令和合适的包来创建这样的环境,如果我输入以下内容:

\begin{defi}[metric projection]
Hello bla bla bla bla
\end{defi}

我最终得到如下图所示的输出: 在此处输入图片描述

答案1

以下是上述示例彩色盒子为您打包:

输出

输出

代码

\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{blindtext}
\usepackage{tcolorbox}

\usepackage{tikz}
\usetikzlibrary{shapes}
\tcbuselibrary{skins,breakable}
\newcounter{example}
\newtcolorbox[use counter=example]{defi}[3][]{%
enhanced,
breakable,
drop fuzzy shadow, % shadow
colback=yellow!40, % background color of main box
colframe=black, % frame color of main box
top=4mm, % inserted space on top
arc=4mm, % edge arc
enlarge top by=\baselineskip/2+1mm,
enlarge top at break by=0mm,pad at break=2mm,
fontupper=\normalsize,label={#3},
overlay unbroken and first={%
\node[rectangle,rounded corners=10pt,draw=black,fill=white, % first heading box
inner sep=1.5mm,anchor=west] (def) at ([xshift=3.6mm]frame.north west)
{\textbf{\Large Definition \thetcbcounter.}};
\node[ellipse,draw=black,fill=white, % second heading box
inner sep=1mm,anchor=west] at ([xshift=-11mm]def.east)
{\textbf{\footnotesize\hspace{3mm} #2}};
\node[rectangle,rounded corners=10pt,draw=black,fill=white, % first heading box
inner sep=1.5mm,anchor=west] (def) at ([xshift=3.6mm]frame.north west)
{\textbf{\Large Definition \thetcbcounter.}};},
#1}%

\begin{document}
\begin{defi}{Metric Projection}{label:metricprojection}
\blindtext
\end{defi}
\end{document}

这是 tcolorbox 手册中一些代码的改编版本,它还为您提供了标记框的机会(在我的示例中为“label:metricprojection”)。标题框是简单的 tikz 节点,您可以在 TEX.SE 和整个网络上找到大量示例等,因此调整它们以满足您的确切需求应该不成问题。

第一个节点被打印两次,以便与第二个节点重叠,从而与其对齐。可能有更好的方法来实现这一点,但老实说,我不知道怎么做(欢迎对此发表评论!)。不过,这种方式效果很好。

分页符对此来说不是问题,但你对脚注的要求似乎无法与 tcolorbox 匹配,请参阅问题 124546

相关内容