如何调整 \textbullet 的大小而不使项目符号向下移动?

如何调整 \textbullet 的大小而不使项目符号向下移动?

我想用中点分隔单词列表中的单词。但是,\textbullet 打印的点对我来说似乎有点太大,而 \textperiodcentered{} 又有点太小。

我找到了一个使用 \usepackage{fix-cm} 包的解决方案。但是,\scalebox{0.5}{\textbullet}它将项目符号垂直向下移动,这是不想要的。

这是我使用的 main.tex:

\documentclass{scrbook}
\usepackage{graphicx}
\usepackage{fix-cm}

\begin{document}

Word1 \scalebox{0.5}{\textbullet} Word2 \scalebox{0.5}{\textbullet} Word3

\end{document}

有谁知道如何在保持符号垂直居中的情况下缩小\textbullet或放大的尺寸?\textperiodcentered

答案1

我们需要猜测子弹的侧向,这样我们才能确定其几何中心。

这是依赖于字体的,因此我提供了一个宏来指定减少宽度的因子以及一种直观地确定它的方法。

我还提供了一个示例,其中标准项目符号位于缩放项目符号旁边,并且\textbf{\textperiodcentered}使用了标准 Computer Modern 字体和 NewTX(似乎需要相同的因素)。

我还提供了缩放因子的宏,因为不同的字体可能需要不同的缩放比例,并再次使用 NewTX 提供了一个示例。

\documentclass{article}
\usepackage{graphicx}
%\usepackage{newtxtext}

\newcommand{\textsmallbulletfactor}{0.825}% font dependent
\newcommand{\textsmallbulletscale}{0.5}% font dependent
\newcommand{\textsmallbullet}{%
  \begingroup
  \sbox0{\textbullet}%
  % how much the bullet stays above the baseline
  \dimen0=\dimexpr\ht0-\textsmallbulletfactor\wd0\relax
  \dimen2=\dimexpr(\ht0+\dimen0)/2\relax % the height of the center
  % scale the bullet sitting on the baseline
  \sbox0{\scalebox{\textsmallbulletscale}{\raisebox{-\dimen0}{\textbullet}}}%
  % now we raise it
  \raisebox{\dimexpr\dimen2-0.5\ht0\relax}{\usebox0}%
  \endgroup
}

\begin{document}

% let's check whether 0.825 is good
\begingroup
\setlength{\fboxrule}{0.1pt}
\setlength{\fboxsep}{0pt}
\fbox{\textbullet} \framebox[0.825\width]{\textbullet}
\endgroup

X \textbullet\textsmallbullet\textbf{\textperiodcentered}

\end{document}

使用计算机现代输出

在此处输入图片描述

使用 NewTX 输出

在此处输入图片描述

您会看到,\textperiodcentered这里不合适。

使用 NewTX 和缩放因子 0.6 进行输出

在此处输入图片描述

答案2

尝试下面的方法:(它最初是由伟大的建议的egreg

\makeatletter
\newcommand{\smallbullet}{} % for safety
\DeclareRobustCommand\smallbullet{%
  \mathord{\mathpalette\smallbullet@{0.75}}%
}
\newcommand{\smallbullet@}[2]{%
  \vcenter{\hbox{\scalebox{#2}{$\m@th#1\bullet$}}}%
}
\makeatother

你应该\smallbullet使用\textbullet

相关内容