我的问题很简单(或者不简单)我想设置命令的大小\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}