我正在尝试将 tcolorbox 与数组融合,以便很好地识别练习,并对应相应的等级和难度级别。我无法摆脱直角(见下图)。我希望将方框规则置于数组“上方”,以便掩盖矩形单元格及其直角。
此外,如果有人可以给我提供任何线索,让我知道如何根据文本的实际高度垂直居中文本(不保留任何空间以防某些字母延伸到基线以下)...
我正在使用 LuaLaTeX。以下是我编写的代码,以使结果显示在图片中。
\documentclass[12pt, english, french]{article}
\usepackage{babel}
\frenchsetup{og=«, fg=»}
\usepackage{fontspec}
\setmainfont{Erewhon}
\setsansfont[Scale=MatchLowercase]{Cabin}
\setmonofont[Scale=MatchLowercase,HyphenChar=None]{Inconsolatazi4}
\usepackage[most]{tcolorbox}
\usepackage{array, colortbl, fourier-otf, fontawesome, multicol, multirow, xcolor}
\begin{document}
\tcbox[left=0ex, right=0ex, top=0ex, bottom=0ex, boxsep=0pt, boxrule=2pt]
{\begin{tabular}{p{3cm}m{1.5cm}}
\multirow{2}{*}{Exercice 17} & \cellcolor{cyan}\textcolor{white}{1\iere} \\
& \cellcolor{black!50!white}\textcolor{white}{\scriptsize \faStar\faStar\faStarO}
\end{tabular}}
\end{document}
感谢和问候 !
答案1
这与 OP 问题无关,但我认为这tabular
将用于标记一些练习,并且可以使用一些tcolorbox
工具来减少和简化打字。
如果每个框标记不同的练习,我们可以使用auto counter
声明\newtcbox
来自动计算后面的数字Exercice
。
由于框内容非常规则,因此可以将其包含在before upper
和after upper
选项中。这样,tcbox
具有两个强制参数和第三个空内容的 就可以完成工作。
\documentclass[12pt, english, french]{article}
\usepackage{babel}
\usepackage[most]{tcolorbox}
\usepackage{array}
\usepackage{colortbl}
\usepackage{multirow}
\usepackage{fontawesome}
\newtcbox[auto counter]{exercicebox}[2]{%
enhanced, clip upper, boxrule=2pt,
left=0pt, top=0pt, bottom=0pt, right=0pt, boxsep=0pt,
before upper={\begin{tabular}{p{3cm}m{1.5cm}}\multirow{2}{*}{Exercice~\thetcbcounter}&
\cellcolor{cyan}\textcolor{white}{#1}\\ & \cellcolor{black!50!white}\textcolor{white}{\scriptsize #2}},
after upper={\end{tabular}},
}
\begin{document}
\exercicebox{1\iere}{\faStar\faStar\faStarO}{}
\exercicebox{2\ieme}{\faStar\faStar\faStar\faStarO}{}
\end{document}
答案2
谢谢如何定义 tcolorbox 的内边距?,这是我的主要问题的解决方案:
\documentclass[12pt, english, french]{article}
\usepackage{babel}
\frenchsetup{og=«, fg=»}
\usepackage{fontspec}
\setmainfont{Erewhon}
\setsansfont[Scale=MatchLowercase]{Cabin}
\setmonofont[Scale=MatchLowercase,HyphenChar=None]{Inconsolatazi4}
\usepackage[most]{tcolorbox}
\usepackage{array, colortbl, fourier-otf, fontawesome, multicol, multirow, xcolor}
\begin{document}
\tcbox[enhanced,clip upper, left=0ex, right=0ex, top=0ex, bottom=0ex, boxsep=0pt, boxrule=2pt]
{\begin{tabular}{p{3cm}m{1.5cm}}
\multirow{2}{*}{Exercice 17} & \cellcolor{cyan}\textcolor{white}{1\iere} \\
% \cline{2-2}
& \cellcolor{black!50!white}\textcolor{white}{\scriptsize \faStar\faStar\faStarO}
\end{tabular}}
\end{document}
对于定位问题,使用 \raisebox 就足够了,尽管它相当丑陋。