tcolorbox: mylib'in bir çeşidi nasıl yapılır

Aug 16 2020

Bu soru :

Bu kutu tcolorbox'ta nasıl çoğaltılır

net bir cevabı var. İki küçük değişiklikle benzer bir varyant yapmak istedim:

-LIB yerine AÇIKLAMALARI kullanın (tamam, bu önemsiz)

- Metni madde işaretleriyle biçimlendirin (madde oluşturma ortamı)

\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}}}

bunda başarısız olacak:

\remarks
{
\item Perfect relationships of $r=\pm1$ do not exist in the real world.
\item Correlation does not imply causation
}

eksik bir öğeyi not etme başarısız, bu nedenle devam eden bir tür ayrıştırma sorunu var.

Muhtemelen bunu yapmanın ideal yolu, newtcbox'ı doğrudan değiştirerek, öğe boyutundaki metni biçimlendirmek olabilir, ancak bunu nereden başlayacağımı bile bilmiyorum.

Yanıtlar

2 muzimuzhiZ Aug 17 2020 at 05:05

Bunu dene:

  • Seçenek varwidth upper=\linewidth, ortamın gerektirdiği paragraf kipinde argümanını dizmek varwidthiçin ( paketlenmiş olarak) kullanılır . Bu eşdeğerdir .\myremarksitemize\myremarks{\begin{varwidth}{\linewidth} ...\end{varwidth}}
  • Döndürülen metin REMARKS, minimum yükseklikten daha yüksek olduğundan, minimum yüksekliği ayarlamak için \myremarksseçenek height from=1.2cm to \maxdimenkullanılır.
  • Düğüm seçenekleri pos=1, anchor=south east, metni REMARKSdikey olarak ortalamak yerine üste eklemek için eklenir .
  • enumitemseçenekleri noitemsep, leftmargin=5mmboşlukları ayarlamak içindir 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}