![tcolorbox:如何制作 mylib 的变体](https://linux22.com/image/419213/tcolorbox%EF%BC%9A%E5%A6%82%E4%BD%95%E5%88%B6%E4%BD%9C%20mylib%20%E7%9A%84%E5%8F%98%E4%BD%93.png)
这个问题 :
有一个明确的答案。我想制作一个类似的变体,但有两个小的更改:
-不要使用 LIB,而要使用 REMARKS(好吧,这很简单)
- 以项目符号格式化文本(项目化环境)
\newtcbox{\myremarks}{enhanced,nobeforeafter,tcbox raise base,boxrule=0.4pt,top=0mm,bottom=0mm,
right=0mm,left=4mm,arc=1pt,boxsep=2pt,before upper={\vphantom{dlg}},
colframe=green!50!black,coltext=green!25!black,colback=green!10!white,
overlay={\begin{tcbclipinterior}\fill[green!75!blue!50!white] (frame.south west)
rectangle node[text=white,font=\sffamily\bfseries\tiny,rotate=90] {REMARKS} ([xshift=4mm]frame.north west);\end{tcbclipinterior}}}
\NewDocumentCommand\remarks{m}
{\myremarks{\begin{itemize} #1\end{itemize}}}
将会失败:
\remarks
{
\item Perfect relationships of $r=\pm1$ do not exist in the real world.
\item Correlation does not imply causation
}
未能注意到丢失的项目,因此存在某种解析问题。
实现此目的的理想方法可能是直接修改 newtcbox,以便它格式化 itemize 中的文本,但我甚至不知道从哪里开始这样做。
答案1
尝试这个:
varwidth upper=\linewidth
使用选项(与varwidth
已加载的软件包一起)允许\myremarks
以段落模式排版其参数,这是itemize
环境所需的。这相当于\myremarks{\begin{varwidth}{\linewidth} ...\end{varwidth}}
。- 由于旋转后的文本
REMARKS
高于的最小高度\myremarks
,height from=1.2cm to \maxdimen
因此使用选项来设置最小高度。 pos=1, anchor=south east
添加节点选项以将文本附加REMARKS
到顶部,而不是垂直居中。enumitem
选项noitemsep, leftmargin=5mm
用于调整 的空间itemize
。
\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\usepackage{enumitem}
\usepackage{varwidth}
\usepackage{xparse}
\newtcbox{\myremarks}{
enhanced,nobeforeafter,tcbox raise base,
boxrule=0.4pt,top=0mm,bottom=0mm,
right=0mm,left=4mm,arc=1pt,boxsep=2pt,
before upper={\vphantom{dlg}},
colframe=green!50!black,coltext=green!25!black,colback=green!10!white,
overlay={
\begin{tcbclipinterior}
\fill[green!75!blue!50!white]
(frame.south west) rectangle
node[text=white,font=\sffamily\bfseries\tiny,rotate=90, pos=1, anchor=south east] {REMARKS}
([xshift=4mm]frame.north west);
\end{tcbclipinterior}
},
% equivalent to surround the cmd arg in "varwidth" env
varwidth upper=\linewidth,
% set minimum height for complete output of rotated "REMARKS"
height from=1.2cm to \maxdimen,
}
\NewDocumentCommand\remarks{m}{%
\myremarks{%
\begin{itemize}[noitemsep, leftmargin=5mm]
#1%
\end{itemize}
}%
}
\begin{document}
\remarks{
\item abc
}
\remarks{
\item abc
\item def
\item ghi
}
\end{document}