1つのテキスト文字列を他のテキスト文字列の中央に重ねる

1つのテキスト文字列を他のテキスト文字列の中央に重ねる

を使用してテキストを重ねて左揃えにすることは可能です\rlap{A}BCDが、BCD の中央 (正確に中央) に A を重ねるにはどうすればよいでしょうか。

答え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} 

ここに画像の説明を入力してください

関連情報