tcolorbox: comment faire une variante du mylib
Cette question :
Comment reproduire cette boîte dans tcolorbox
a une réponse claire. Je voulais faire une variante similaire avec deux petits changements:
-au lieu de LIB, utilisez REMARKS (ok, c'est trivial)
-formater le texte en puces (itemize environnement)
\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}}}
échouera sur ceci:
\remarks
{
\item Perfect relationships of $r=\pm1$ do not exist in the real world.
\item Correlation does not imply causation
}
ne parvient pas à noter un élément manquant, il y a donc une sorte de problème d'analyse en cours.
Il est probable que la manière idéale de le faire serait de modifier directement la newtcbox afin qu'elle formate le texte dans la taille d'élément, mais je ne sais même pas par où commencer.
Réponses
2 muzimuzhiZ
Essaye ça:
- L'option
varwidth upper=\linewidth
est utilisée (avec levarwidth
paquet chargé) pour permettre\myremarks
de composer son argument en mode paragraphe, ce qui est requis par l'itemize
environnement. C'est équivalent à\myremarks{\begin{varwidth}{\linewidth} ...\end{varwidth}}
. - Étant donné que le texte pivoté
REMARKS
est supérieur à la hauteur minimale de\myremarks
, l'optionheight from=1.2cm to \maxdimen
est utilisée pour définir une hauteur minimale. - Les options de nœud
pos=1, anchor=south east
sont ajoutées pour attacher le texteREMARKS
en haut, plutôt que centré verticalement. enumitem
les optionsnoitemsep, leftmargin=5mm
sont pour ajuster les espaces deitemize
.
\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}