平均能量损失
\documentclass[a4paper,11pt]{article}
\usepackage{calculator}
\usepackage{calculus}
\usepackage{xlop}
\usepackage{pst-node}
%%%%%%%%%%%%% Dotted Zero
\makeatletter
\newcommand*{\pmzerodot}{%
\nfss@text{%
\sbox0{$\vcenter{}$}% math axis
\sbox2{0}%
\sbox4{0\/}%
\ooalign{%
0\cr
\hidewidth
\kern\dimexpr\wd4-\wd2\relax % compensate for slanted fonts
\raise\dimexpr(\ht2-\dp2)/2-\ht0\relax\hbox{%
\if b\expandafter\@car\f@series\@nil\relax
\mathversion{bold}%
\fi
$\cdot\m@th$%
}%
\hidewidth
\cr
\vphantom{0}% correct depth of final symbol
}%
}%
}
\makeatother
\newcommand\dnm{12}
\newcommand\uyg{1}
\newcommand\uygkats{0,20}
\MULTIPLY{\dnm}{\uyg}\W
\MULTIPLY{\W}{\uygkats}\uygdvmsz
\ROUND[2]{\uygdvmsz}{\uygdvmsz}
\ROUND[0]{\uygdvmsz}\yuhaf
\INTEGERQUOTIENT{\yuhaf}{\uyg}\uhaf
\MODULO{\yuhaf}{\uyg}\usat
\begin{document}
\W\ $\cdot$ \uygkats\ = \uygdvmsz
\begin{center}
\opidiv[columnwidth=0.5em,operandstyle.2=\blue,resultstyle=\red]{\yuhaf}{\uyg}
\end{center}
{\color{red}\uhaf{}} week \usat{} hour
\end{document}
并输出
我想要的是,所有零都是带点的零。\pmzerodot
我应该怎么做?
答案1
这取决于您使用的主要字体。我尝试了您的 MWE,并检测到\fontname\font
您正在使用。因此,我们准备了一个从字体派生的cmr10 at10.95pt
虚拟字体。cmr10v
cmr10
cd
对文档所在的工作目录执行此操作。然后输入命令:
tftopl cmr10 > cmr10v.vpl
编辑新建的文件,在CHECKSUM所在行后cmr10v.vpl
添加命令:MAPFONT
(MAPFONT D 0
(FONTNAME cmr10)
(FONTAT R 1.0)
)
查找定义CHARACTER C 0
并通过以下方式更改此定义:
(CHARACTER C 0
(CHARWD R 0.500002)
(CHARHT R 0.644444)
(MAP
(PUSH) (MOVEUP R 0.252) (MOVERIGHT R 0.114) (SETCHAR O 56) (POP)
(SETCHAR C 0)
)
)
保存并在命令行上运行命令:
vptovf cmr10v
现在,您的工作目录中有了文件cmr10v.vf
和cmr10v.tfm
。这意味着字体cmr10v
已准备好在您的工作目录中使用。
将主字体的选择从原来cmr10 at10.95
的改为cmr10v at10.95
。如何做到这一点取决于所使用的字体选择系统。我希望您使用符合 NFSS 的方式来做到这一点。我不想花时间研究 NFSS,所以我建议只使用简单的\reselectfont
宏:
\begin{document}
\def\reselectfont#1 #2\relax{\font\f=#1v #2\relax \f}
\expandafter\reselectfont\fontname\font\relax
% The test of your text follows:
\W\ $\cdot$ \uygkats\ = \uygdvmsz
\begin{center}
\opidiv[columnwidth=0.5em,operandstyle.2=\blue,resultstyle=\red]{\yuhaf}{\uyg}
\end{center}
{\color{red}\uhaf{}} week \usat{} hour
\end{document}
结果:
答案2
答案3
你可以尝试这个:
\documentclass{article}
\catcode`\0=\active
\newcommand\ifzero{20}
\newenvironment{specialzero}{%
\catcode`\0=\active\def 0{bla}}{}
% resetting the catcode when closing the environment is not needed
% as per Manuel's answer
\catcode`\0=12
\begin{document}
\begin{specialzero}
0
\ifzero
\end{specialzero}
0
% \ifzero %%%% This won't work!
\rule{10pt}{1pt}
\end{document}
然而,当在specialzero
环境中时,它不是可以将零用于任何其他目的,例如作为图片或另一个宏中的参数。