LaTex自定义用户(数学)符号

1.问题的提出

       前几天在使用LaTex写数学公式的时候发现需要插入自定义的符号,例如使用一个正方形中放置一个z表示z域运算集,显然这个符号是在标准宏包里面没有的,所以需要用户自己定制这个符号。

2.自定义用户符号

       这里使用Tikz-PGF来绘制用户符号,首先先使用tikz绘制出符号,代码如下

我是$Z$运算集
\begin{tikzpicture}
\draw (0,0) -- (0em,1em) -- (1em,1em) -- (1em,0) -- (0,0);  
\node at (0.5em,0.5em) {$Z$};
\end{tikzpicture}
但是我为什么没有对齐?

效果如下:

LaTex自定义用户(数学)符号

可以看到,该符号虽然绘制出来了,但是根本没有与两边的文字对齐,此时应该在tikzpicture后面加上[baseline]基线选项,同时微调一下y坐标,让tikz把基线作为绘制的参考位置,如果想了解基线,请阅读排版相关的资料。修改后的代码如下

\begin{equation}
F(z)\in
\begin{tikzpicture}[baseline]
\draw (0,-0.2em) -- (0em,0.8em) -- (1em,0.8em) -- (1em,-0.2em) -- (0,-0.2em);  
\node at (0.5em,0.3em) {$Z$};
\end{tikzpicture}
\end{equation}

效果如下,完美!

LaTex自定义用户(数学)符号

接下来我们将其定义为一个命令,以便后面可以愉快的使用

\newcommand{\MyFz}{
\begin{tikzpicture}[baseline]
\draw (0,-0.2em) -- (0em,0.8em) -- (1em,0.8em) -- (1em,-0.2em) -- (0,-0.2em);  
\node at (0.5em,0.3em) {$Z$};
\end{tikzpicture}
}

在其他地方调用

\begin{equation}
F(z+1)\in \MyFz, 
F(z+2)\in \MyFz,
F(z+N)\in \MyFz
\end{equation}

效果如下

LaTex自定义用户(数学)符号

哈哈,妈妈以后再也不用担心数学符号库中没有我想要的符号了(自力更生,丰衣足食!)。完了吗,还不够,我想要里面的z换成任意给定的字母或符号,简单,把命令改为带有参数的命令即可。

最终版:

\newcommand{\MyFz}[1]{
\begin{tikzpicture}[baseline]
\draw (0,-0.2em) -- (0em,0.8em) -- (1em,0.8em) -- (1em,-0.2em) -- (0,-0.2em);  
\node at (0.5em,0.3em) {$#1$};
\end{tikzpicture}
}

在其他地方使用

\begin{equation}
F(z+1)\in \MyFz{R}, 
F(z+2)\in \MyFz{H},
F(z+N)\in \MyFz{K}
\end{equation}

效果如下,很好

LaTex自定义用户(数学)符号

经过测试发下,使用tikz-pgf会增加编译时间,为了解决这个问题,可以事先把符号制作成pdf图片,然后插入到文本中当做符号使用。这样做同样会涉及位置对齐问题,在下一篇LaTex博客中将会介绍使用插入pdf图片的方式来定制自己的各种符号,happy LaTex!

 

 

上一篇:latex按照知网格式引用论文


下一篇:mongodb的CURD操作详解