如何在乳胶中制作一个小的$\varhexagon$?

如何在乳胶中制作一个小的$\varhexagon$?

我想要一个命令,可以将$\varhexagon$latex 中的 wasysym 包的大小缩小到非常小的尺寸。

原则上,这可以实现我想要的功能,但显然在数学模式下不允许使用$\tiny \varhexagon$命令“ ”。tiny

有没有办法解决这个问题? - 请注意,\scriptscriptstyle似乎没有给出与相同的大小\tiny

简而言之,我想要一个具有同样功能$A_{\tiny \varhexagon}$但不使用非法命令的命令\tiny

答案1

确实,\tiny这是一个文本模式命令,因此不允许在数学模式下使用。

你可能正在寻找的是

\newcommand\tinyvarhexagon{\vcenter{\hbox{\scalebox{0.5}{$\varhexagon$}}}}

其中是软件包\scalebox提供的宏,和是 TeX“原始”。对应于字体大小线性减少 50%;因此是缩放因子。 根据此定义,小六边形垂直居中于数学轴上。 如果您希望将调整大小的符号放置在基线上,只需省略“包装器”。graphic\vcenter\hbox\tiny0.5\vcenter{\hbox{...}}

在此处输入图片描述

\documentclass{article}
\usepackage{wasysym} % for "\varhexagon" macro
\usepackage{graphicx}% for "\scalebox" macro
\newcommand\tinyvarhexagon{\vcenter{\hbox{\scalebox{0.5}{$\varhexagon$}}}}
   % ("\vcenter" and "\hbox" are TeX primitives)

\begin{document}
$a\varhexagon a$ $a\tinyvarhexagon a$ $a\scalebox{0.5}{$\varhexagon$} a$ 

$A_{\varhexagon}$ $A_{\tinyvarhexagon}$ $A_{\scalebox{0.5}{$\varhexagon$}}$
\end{document} 

答案2

您可以使用不同的缩放因子加载字体:

\documentclass{article}

\usepackage{wasysym} % just for comparison

\DeclareFontFamily{U}{wasysmall}{}
\DeclareFontShape{U}{wasysmall}{m}{n}{
  <-5.5> s*[0.75] wasy5
  <5.5-6.5> s*[0.75] wasy6
  <6.5-7.5> s*[0.75] wasy7
  <7.5-8.5> s*[0.75] wasy8
  <8.5-9.5> s*[0.75] wasy9
  <9.5-> s*[0.75] wasy10
}{}
\DeclareFontShape{U}{wasysmall}{b}{n}{
  <-5.5> s*[0.75] wasyb5
  <5.5-6.5> s*[0.75] wasyb6
  <6.5-7.5> s*[0.75] wasyb7
  <7.5-8.5> s*[0.75] wasyb8
  <8.5-9.5> s*[0.75] wasyb9
  <9.5-> s*[0.75] wasyb10
}{}
\DeclareFontShape{U}{wasysmall}{bx}{n}{ <-> sub * wasysmall/b/n}{}

\DeclareSymbolFont{wasysmall}{U}{wasysmall}{m}{n}
\SetSymbolFont{wasysmall}{bold}{U}{wasysmall}{b}{n}

\DeclareMathSymbol{\smallhexagon}{\mathord}{wasysmall}{57}

\begin{document}

{\tiny\varhexagon} $\scriptstyle\smallhexagon$ $A_{\smallhexagon}$

\end{document}

请注意,wasysym不需要加载,我只是为了进行比较。

在此处输入图片描述

您可以节省一个符号字体:

\documentclass{article}
\usepackage{amsmath}

\DeclareFontFamily{U}{wasysmall}{}
\DeclareFontShape{U}{wasysmall}{m}{n}{
  <-5.5> s*[0.75] wasy5
  <5.5-6.5> s*[0.75] wasy6
  <6.5-7.5> s*[0.75] wasy7
  <7.5-8.5> s*[0.75] wasy8
  <8.5-9.5> s*[0.75] wasy9
  <9.5-> s*[0.75] wasy10
}{}

\newcommand{\smallhexagon}{\text{\usefont{U}{wasysmall}{m}{n}\symbol{57}}}

\begin{document}

$A_{\smallhexagon}$

\end{document}

如果您只是需要符号改变下标的大小,您可以用不同的方式做:

\documentclass{article}
\usepackage{amsmath}
\usepackage{wasysym}

\DeclareMathSymbol{\mhexagon}{\mathord}{wasy}{57}

\begin{document}

$A_{\varhexagon}$ (wrong)

$A_{\mhexagon}$

\end{document}

在此处输入图片描述

答案3

amsmath软件包还提供了\text允许在数学模式中使用文本模式命令而不会发出警告的命令(另请参阅@egreg 的回答多于)。

梅威瑟:

\documentclass{article}
\usepackage{amsmath}
\usepackage{wasysym}

\begin{document}
A{\tiny\varhexagon}

$A_{\text{\tiny\varhexagon}}$
\end{document}

结果:

在此处输入图片描述

答案4

如您所见,这种方法既适用于较小的文本尺寸,也适用于较小的数学尺寸。

\documentclass{article}
\usepackage{wasysym,scalerel,lmodern}
\newcommand\xvarhexagon{\scaleto{\varhexagon}{1.4\LMex}}
\begin{document}
$\varhexagon x\xvarhexagon
\scriptstyle x\xvarhexagon
\scriptscriptstyle x\xvarhexagon$

\small$\varhexagon x\xvarhexagon
\scriptstyle x\xvarhexagon
\scriptscriptstyle x\xvarhexagon$

\footnotesize$\varhexagon x\xvarhexagon
\scriptstyle x\xvarhexagon
\scriptscriptstyle x\xvarhexagon$

\scriptsize$\varhexagon x\xvarhexagon
\scriptstyle x\xvarhexagon
\scriptscriptstyle x\xvarhexagon$

\tiny$\varhexagon x\xvarhexagon
\scriptstyle x\xvarhexagon
\scriptscriptstyle x\xvarhexagon$

\normalsize$x_{\xvarhexagon} =3\xvarhexagon y$
\end{document}

在此处输入图片描述

相关内容