是否有“正确”的方法来修复 \framebox 中的文本对齐问题?

是否有“正确”的方法来修复 \framebox 中的文本对齐问题?

\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}}}}

相关内容