将一个文本字符串重叠在另一个文本字符串的中间

将一个文本字符串重叠在另一个文本字符串的中间

可以使用 来重叠和左对齐文本\rlap{A}BCD;但是,如何将 A 重叠在 BCD 的中间(精确居中)?

答案1

我将其与包中的命令\makebox结合使用。\widthofcalc

\documentclass{article}
\usepackage{calc}

\begin{document}

\begin{itemize}
\item ABCD
\item \makebox[0ex][l]{BCD}A
\item \makebox[1ex][l]{BCD}A
\item \makebox[2ex][l]{BCD}A
\item \makebox[3ex][l]{BCD}A
\item \makebox[4ex][l]{BCD}A
\end{itemize}

\begin{itemize}
\item ABCD
\item \makebox[\widthof{BCD}/2-\widthof{A}/2][l]{BCD}A
\item \frame{\makebox[\widthof{BCD}/2-\widthof{A}/2][l]{BCD}}A %for illustration
\end{itemize}

\end{document}

在此处输入图片描述

\makebox[\widthof{BCD}/2-\widthof{A}/2][l]{BCD}A将获得:

在此处输入图片描述

旁注:删除包含的项目\makebox,您将获得 MWE。

答案2

默认值是完全居中重叠,但可以使用可选参数进行微调。

\documentclass{article}
\usepackage{stackengine}
\newcommand\clap[3][0pt]{\stackengine{0pt}{#3}{\kern#1#2}{O}{c}{F}{F}{L}}
\begin{document}
\clap{A}{BCD}

\clap[6pt]{A}{BCD}

\clap[-6pt]{A}{BCD}
\end{document}

在此处输入图片描述

答案3

很简单,使用\ooalign

\documentclass{article}

\newcommand{\overlap}[2]{%
  \leavevmode\begingroup
  \vphantom{#1#2}%
  \ooalign{\hfil#1\hfil\cr\hfil#2\hfil\cr}%
  \endgroup
}

\begin{document}

\overlap{A}{BCD}

\textsf{\overlap{I}{XXX}}

\end{document}

在此处输入图片描述

答案4

\stackinset命令可能更易于使用。此示例无需更正,因此我将相应的参数留空:

\documentclass[12pt]{article}
\usepackage{stackengine}
\usepackage[svgnames]{xcolor}

\begin{document}

\Large\stackinset{c}{}{c}{}{\color{Tomato}A}{BCD}

\end{document} 

在此处输入图片描述

相关内容