tcolorbox: mylib का एक संस्करण कैसे बनाया जाए

Aug 16 2020

यह प्रश्न :

इस बॉक्स को tcolorbox में कैसे पुन: पेश करें

स्पष्ट उत्तर है। मैं एक ऐसा संस्करण बनाना चाहता था जो दो छोटे परिवर्तनों के साथ समान था:

-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 को संशोधित करेगा ताकि यह आइटम में पाठ को प्रारूपित कर दे, लेकिन मुझे यह भी नहीं पता कि ऐसा करना कहां से शुरू करना है।

जवाब

2 muzimuzhiZ Aug 17 2020 at 05:05

इसे इस्तेमाल करे:

  • विकल्प 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}