设置 \colorbox 单个​​字符的大小

设置 \colorbox 单个​​字符的大小

我的问题很简单(或者不简单)我想设置命令的大小\colorbox\fcolorbox单个字符的命令。问题是下一个:

字符框

如图所示,不同字符的高度和宽度不同,但我想要的是所有字符的大小都相同。我使用的包是,xcolor我用来生成框字符的代码是 \noindent\colorbox{black!85}{\textcolor{white}{i}}

enumitem我的目标是一个带有单独中心字符的框。框的背景为黑色,文本为白色。如果它是一个并且项目在黑色框中,那就太好了

答案1

 \colorbox{black!85}{\makebox[2em]{\strut\textcolor{white}{a}}}

或您想要的任何其他宽度。

或者就像评论中指出的那样,你想要垂直和水平居中

 \colorbox{black!85}{\makebox(12,12){\textcolor{white}{a}}}

其中框的大小为 12,以图片环境单位表示(pt默认值)

答案2

tikz

\documentclass{article}
\usepackage{tikz}
\newcommand\coloredtext[2][]{\tikz[baseline=(char.base)]\node[minimum width=2em,text height=1.5ex, text depth=0.1ex,fill=black!85,text=white,#1](char){#2};}%
\begin{document}
\noindent
\foreach \x in {a,b,...,z}{%
   \coloredtext{\x}\,
   }

\noindent
\foreach \x in {A,B,...,Z}{%
   \coloredtext[minimum width=2.55em]{\x}
   }%
\end{document}

在此处输入图片描述

答案3

eqparbox如果您希望盒子的宽度相等且最小(需要运行两次),我建议使用该包:

\documentclass[11pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fourier} 

\usepackage{eqparbox} 
\usepackage[x11names]{xcolor} 

\begin{document}

\colorbox{DeepPink4}{\eqmakebox[L]{\Large\bfseries\color{AntiqueWhite1}I}}

\colorbox{DeepPink4}{\eqmakebox[L]{\Large\bfseries\color{AntiqueWhite1}W}}

\end{document} 

在此处输入图片描述

如果您希望彩色框具有相同的高度,同时保持最宽框的自然宽度,则可以通过两种方式调整高度:

  • 可以将 a\vphantom{highest entry}作为参数插入到eqmakebox。当然,由您决定哪个是最高条目。可以将其变成宏的可选参数。
  • 或者插入一个隐形规则,让您预定义框的高度。

我给出了两种解决方案的示例,第二种解决方案的预定义高度为 1 厘米。这可以实现奇特的效果。

\documentclass[11pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fourier}

\usepackage{eqparbox}
\usepackage[x11names]{xcolor}

\begin{document}

\colorbox{DeepPink4}{\eqmakebox[L]{\Large\bfseries\color{AntiqueWhite1}I}}
\enspace 
\colorbox{DeepPink4}{\eqmakebox[L]{\Large\bfseries\color{AntiqueWhite1}W}}
\enspace 
\colorbox{DeepPink4}{\eqmakebox[L]{\vphantom{\Large\bfseries W}\footnotesize\bfseries\color{AntiqueWhite1}W}}
\enspace\\

\colorbox{AntiqueWhite1}{\eqmakebox[L]{\rule{0pt}{\dimexpr 1cm-2\fboxsep\relax}\Large\bfseries\color{DeepPink4}W}}
\enspace
\colorbox{AntiqueWhite1}{\eqmakebox[L]{\rule{0pt}{\dimexpr 1cm-2\fboxsep\relax}\footnotesize\bfseries\color{DeepPink4}i}}
\enspace\\

\colorbox{AntiqueWhite1}{\eqmakebox[L]{\rule[-0.4cm]{0pt}{\dimexpr 1cm-2\fboxsep\relax}\Large\bfseries\color{DeepPink4}W}}
\enspace
\colorbox{AntiqueWhite1}{\eqmakebox[L]{\rule[-0.4cm]{0pt}{\dimexpr 1cm-2\fboxsep\relax}\footnotesize\bfseries\color{DeepPink4}i}}

\end{document} 

在此处输入图片描述

答案4

这是使用包的解决方案adjustbox。您可以使用键创建居中框center=<width>。添加\strut可为您提供与字符大小无关的相同高度和深度。如果您将其用作\ht\strutbox+\dp\strutbox宽度,您将得到一个漂亮的正方形。

\documentclass{article}
\usepackage{xcolor}
\usepackage{adjustbox}

\newcommand\blackboxchar[1]{\noindent
    \adjustbox{center=\ht\strutbox+\dp\strutbox,frame,bgcolor=black!85}{\color{white}\strut #1}}

\begin{document}

\begin{itemize}
\item[\blackboxchar{i}] text  text  text  text 

\item[\blackboxchar{a}] text  text  text  text 

\item[\blackboxchar{m}] text  text  text  text 
\end{itemize}

\end{document}

在此处输入图片描述

相关内容