如果我有一封類型的信件「(垂直)矩形圓角」並將其放入 a 中\colorbox{<fillcolor>}{text}
,有沒有辦法設定 colorbox-parameters 以便準確地用顏色填充內部區域?
問題:「圓角」使任務變得困難。可能設定\setlength{\fboxsep}{-0.57505pt}
還不夠。
提示1:我創建了“(垂直)圓角矩形”我自己使用 FontForge。
對於測試範例,我使用了U+25A2 "White Square with Rounded Corners"
(因為我只找到了一個正方形有圓角,不是矩形),字體為Cambria.ttf
。
字體是不是對於測試範例很重要且也可以更換,只要字體包含U+25A2
.
提示2:TikZ、tcolorbox 等肯定有一些東西\colorbox
。
\documentclass[margin=5pt]{standalone}
\usepackage{xcolor}
\usepackage{fontspec}
\newfontfamily\myfont{Cambria}% a font that contains U+25A2
\newcommand\mychar{\myfont\char"25A2}%U+25A2 ---> White Square with Rounded Corners
\begin{document}
\setlength{\fboxsep}{-0.57505pt}
Test: \colorbox{yellow}{\mychar}
\end{document}
答案1
我不知道你的自訂字母,但對於字元U+25A2
(▢)來說,它的邊界框似乎不適合它的形狀(至少與字體不適合Cambria
)。我沒有Cambria
安裝該字體,但它與以下內容相同DejaVu Sans
:
\documentclass[margin=5pt]{standalone}
\usepackage{xcolor}
\usepackage{fontspec}
\newfontfamily\myfont{DejaVu Sans}% a font that contains U+25A2
\newcommand\mychar{\myfont\char"25A2}%U+25A2 ---> White Square with Rounded Corners
\begin{document}
\setlength{\fboxsep}{0pt}
\setlength{\fboxrule}{0.05pt}
\fcolorbox{red}{white}{\mychar}
\end{document}
對於正方形,您可以使用高度來校正水平邊界框,例如
\sbox{0}{\mychar}%
\dimen0=\dimexpr \wd0 - \ht0 - \dp0\relax%
\setlength{\fboxsep}{-0.25\dimen0}%
\colorbox{yellow}{\kern -0.5\dimen0\usebox{0}\kern -0.5\dimen0}%
也許你可以用你的自訂形狀做類似的事情。
U+25A2
帶有字元和字體的完整範例DejaVu Sans
:
\documentclass[margin=5pt]{standalone}
\usepackage{xcolor}
\usepackage{fontspec}
\newfontfamily\myfont{DejaVu Sans}% a font that contains U+25A2
\newcommand\mychar{\myfont\char"25A2}%U+25A2 ---> White Square with Rounded Corners
\newcommand\myfilledchar{%
\begingroup%
\sbox{0}{\mychar}%
\dimen0=\dimexpr \wd0 - \ht0 - \dp0\relax%
\setlength{\fboxsep}{-0.25\dimen0}%
\colorbox{yellow}{\kern -0.5\dimen0\usebox{0}\kern -0.5\dimen0}%
\endgroup%
}
\begin{document}
\myfilledchar
\quad
{\Huge \myfilledchar}
\quad
{\tiny \myfilledchar}
\end{document}