tcolorbox: cách tạo một biến thể của mylib
Aug 16 2020
Câu hỏi này :
Cách tạo lại hộp này trong tcolorbox
có câu trả lời rõ ràng. Tôi muốn tạo một biến thể tương tự với hai thay đổi nhỏ:
- thay vì LIB, hãy sử dụng NHẬN XÉT (ok, điều đó thật tầm thường)
-định dạng văn bản trong dấu đầu dòng (lặp lại môi trường)
\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}}}
sẽ thất bại về điều này:
\remarks
{
\item Perfect relationships of $r=\pm1$ do not exist in the real world.
\item Correlation does not imply causation
}
không ghi nhận được một mục bị thiếu, vì vậy có một số loại vấn đề phân tích cú pháp đang xảy ra.
Có khả năng cách lý tưởng để làm điều này là sửa đổi newtcbox trực tiếp để nó định dạng văn bản trong lần lặp, nhưng tôi thậm chí không biết bắt đầu làm điều đó từ đâu.
Trả lời
2 muzimuzhiZ Aug 17 2020 at 05:05
Thử cái này:
- Tùy chọn
varwidth upper=\linewidthđược sử dụng (vớivarwidthtải đóng gói) để cho phép\myremarksthiết lập đối số của nó trong chế độ đoạn văn, được yêu cầu bởiitemizemôi trường. Điều này tương đương với\myremarks{\begin{varwidth}{\linewidth} ...\end{varwidth}}. - Vì văn bản
REMARKSđược xoay cao hơn chiều cao tối thiểu của\myremarks, tùy chọnheight from=1.2cm to \maxdimenđược sử dụng để đặt chiều cao tối thiểu. - Các tùy chọn nút
pos=1, anchor=south eastđược thêm vào để đính kèm văn bảnREMARKSlên trên cùng, thay vì căn giữa theo chiều dọc. enumitemcác tùy chọnnoitemsep, leftmargin=5mmđể điều chỉnh không gian củaitemize.
\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}