我目前正在尝试制作一个适应所用字体并具有双下划线的数字符号,如图所示:
\textnumero
包中的宏没有textcomp
双下划线,与我的字体不匹配。尝试根据现有答案重现它,例如这或者这也没有取得预期的结果。
这是我当前的代码,它比更接近期望的结果\textnumero
,但仍然不完全匹配:
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{ulem,amssymb}
\newcommand{\Number}[1]{%
$\mathcal N$\kern-.15em\textsuperscript{\smash{\uuline{\normalfont\itshape \scalebox{.7}{o}}{}}} #1%
}
\usepackage{yfonts}
\begin{document}
\frakfamily
\Number{4}
\end{document}
我该如何改进它或者我可以采取哪些其他方法?
答案1
这会产生与示例中类似的结果,并且可以很好地适应不同的字体大小。
\documentclass{article}
\usepackage{amsmath}
\usepackage{pict2e}
\newlength{\fslength}
\newlength{\fthickness}
\DeclareFontFamily{U}{eus}{\skewchar\font'60}
\DeclareFontShape{U}{eus}{m}{n}{%
<5><6><7><8><9>gen*eusm%
<10><10.95><12><14.4><17.28><20.74><24.88>eusm10}{}
\DeclareMathAlphabet\EuScript{U}{eus}{m}{n}
\makeatletter
\newcommand{\Number}[1]{%
\setlength{\fslength}{\f@size pt}%
\setlength{\fthickness}{.04\fslength}%
\pdfsave\pdfliteral{1 0 .25 1 0 0 cm}\rlap{$\EuScript{N}$}\pdfrestore%
\phantom{$\EuScript{N}$}%
\rule[.16\fslength]{.25\fslength}{\fthickness}\hspace*{-.23\fslength}%
\rule[.24\fslength]{.25\fslength}{\fthickness}\hspace*{-.30\fslength}%
\raisebox{.24\fslength}[.4\fslength]{%
\centering%
\setlength{\unitlength}{\fslength}%
\begin{picture}(.3,.3)
\linethickness{\fthickness}
\put(.2,.2){\circle{.2}}
\end{picture}%
} #1%
}
\makeatother
\begin{document}
{\scriptsize This is \Number{4} for a test.}
{\small This is \Number{4} for a test.}
This is \Number{4} for a test.
{\large This is \Number{4} for a test.}
{\Large This is \Number{4} for a test.}
\end{document}
事实上,这个例子必须用 pdfLaTeX 编译。如果用 XeLaTeX 或 LuaLaTeX 编译,则需要以下几行
\pdfsave\pdfliteral{1 0 .25 1 0 0 cm}\rlap{$\EuScript{N}$}\pdfrestore%
\phantom{$\EuScript{N}$}%
必须改变。否我在这个例子中使用的符号是否欧拉脚本字体,但我不确定如何使用其他编译器倾斜它。无论如何,上面的几行可以改为
$\mathcal{N}$\hspace*{-.2\fslength}%
产生与开头给出的图片类似的结果,但是使用现代计算机\mathcal{N}
。
答案2
与 TABstack 的方法类似。它可以适应字体大小的变化。
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{amssymb}
\usepackage{yfonts}
\usepackage{tabstackengine}
\newcommand\Number{\begingroup\setstackgap{S}{0.08ex}%
\ensureTABstackMath{\stackinset{r}{-.05em}{c}{}{\tabbedShortunderstack{%
\scalebox{.7}{$\scriptscriptstyle o$}\\\TABrule\\\TABrule}}{$\mathcal{N}$}}%
\endgroup}
\begin{document}
\frakfamily
\Number\,4
\Huge\Number\,4
\end{document}
答案3
没有示例中的那么宽,但非常相似。添加了第二条横线的西里尔“数字符号”。
\documentclass{article}
\usepackage{pict2e,picture}
\usepackage[T2A,T1]{fontenc}
\newcommand{\simplens}{%
{\normalfont\fontencoding{T2A}\itshape\symbol{'235}}%
}
\DeclareRobustCommand{\ns}{%
\simplens
\begin{picture}(0,0)
\linethickness{0.065ex}
\roundcap
\put(-0.225em,0.3ex){\line(1,0){0.215em}}
\end{picture}%
}
\begin{document}
Some text and \ns~1.
{\Large \ns~4}
\end{document}