自定义符号中使用 kern 的垂直间距

自定义符号中使用 kern 的垂直间距

我使用宏创建了一个新符号:

\documentclass{article}

\usepackage{amssymb}
\newcommand{\qc}{$\square$\kern-0.58em{s}}
\begin{document}
\qc
\end{document} 

但是我想让字母“s”垂直居中,我该怎么做呢?

答案1

如果空心正方形的基线应该位于印刷基线上,则以下代码可能会引起人们的兴趣。(通过使用\ooalign,不必在“s”字形后插入字距。)db字符仅用于指示复合符号的整体大小。

在此处输入图片描述

\documentclass{article}
\usepackage{amssymb} % for "\square" macro
\newcommand{\qc}{%
  \ooalign{$\square$\cr\kern0.21em\raise0.28ex\hbox{s}}}
\begin{document}
\obeylines % just for this example
\footnotesize d\qc b
\small      d\qc b
\normalsize d\qc b
\large      d\qc b
\Large      d\qc b
\end{document} 

答案2

我猜你想要一个数学符号。如果不是,调整宏会很容易。

\documentclass{article}
\usepackage{amssymb}

\makeatletter
\DeclareRobustCommand\qc{%
  \mathrel{% <-- or \mathbin, or ...
    \vphantom{\square}%
    \mathpalette\aw@qc\relax
  }%
}
\newcommand{\aw@qc}[2]{%
  \sbox\z@{$#1\square$}%
  \sbox\tw@{$#1\mathrm{s}$}%
  \dimen@=.5\dimexpr\ht\z@-\ht\tw@\relax
  \ooalign{%
    $\m@th#1\square$\cr
    \hidewidth\raise\dimen@\box\tw@\hidewidth\cr
  }%
}
\makeatother
\begin{document}

\footnotesize $d\qc b$

\small      $d\qc b$

\normalsize $d\qc b_{\qc}$

\large      $d\qc b$

\Large      $d\qc b$

\end{document}

对于每一种数学样式,提升的量都计算为正方形高度的一半减去“s”的高度。这样\ooalign我们就得到了叠加。

在此处输入图片描述

如果您想要替换 中的 QED 标记amsthm,这里有代码。该twocolumn选项只是为了制作较小的图片。

\documentclass[twocolumn]{article}
\usepackage{amssymb,amsthm}

\makeatletter
\newcommand{\qc}{%
  \begingroup
  \vphantom{\openbox}%
  \sbox\z@{\openbox}%
  \sbox\tw@{$\mathrm{s}$}%
  \dimen@=.5\dimexpr\ht\z@-\ht\tw@\relax
  \ooalign{%
    \box\z@\cr
    \hidewidth\raise\dimen@\box\tw@\hidewidth\cr
  }%
  \endgroup
}
\makeatother

\begin{document}

\begin{proof}\renewcommand{\qedsymbol}{\qc}
Some proof with the modified symbol at the end of the line.
\end{proof}

\begin{proof}
Some proof with the standard symbol at the end of the line.
\end{proof}

\end{document}

在此处输入图片描述

在此处输入图片描述

相关内容