该\framebox
命令将其内容垂直居中对齐,但这往往会产生非常令人不悦的结果。例如:
\documentclass{article}
\usepackage{relsize}
% Double box just to make things clearer
\newcommand{\DoubleBox}[1]{\framebox{\framebox{\textbf{#1}}}}
\begin{document} \noindent
\DoubleBox{I think this is visually displeasing} \par\noindent
\DoubleBox{\raisebox{0pt}[9pt]{I think this is an ugly hack}} \par\noindent
\DoubleBox{\larger\raisebox{0pt}[9pt]{And said hack doesn't work for larger text}}
\end{document}
有没有办法修复此问题,使其“有效”,以便所有尺寸的东西看起来都正确?
答案1
有两种方法可以解决这个问题(假设是一个从一开始就存在的问题)。
第一个是通过以下方式“规范化”高度和深度\strut
:
\newcommand{\DoubleBox}[1]{\framebox{\framebox{\bfseries\strut#1}}}
或者,你可以忽略深度:
\usepackage{amsmath} % for optional argument to `\smash`
\newcommand{\DoubleBox}[1]{\framebox{\framebox{\smash[b]{\bfseries#1}}}}