这是我的文件:
\documentclass{article}
\usepackage{amssymb}
\begin{document}
$ \square \Box $
\end{document}
在我看来,这两个命令产生的框看起来完全一样。命令\square
和之间有什么区别吗\Box
?如果有区别,那有什么区别?如果没有,为什么会出现两个针对同一事物的命令?
答案1
如果您有疑问,您可以让 TeX 告诉您这些命令的作用来消除疑问。
\documentclass{article}
\usepackage{amssymb}
\begin{document}
\ttfamily
\meaning\square
\meaning\Box
\end{document}
你会得到
\mathchar"403
\mathchar"403
因此字形完全相同。在amsfonts.sty
(由 加载amssymb
)的末尾,你会发现
\begingroup \catcode`\"=12
\DeclareMathSymbol{\square} {\mathord}{AMSa}{"03}
\DeclareMathSymbol{\lozenge} {\mathord}{AMSa}{"06}
\ams@DeclareMathSymbol{\vartriangleright} {\mathrel}{AMSa}{"42}
\ams@DeclareMathSymbol{\vartriangleleft} {\mathrel}{AMSa}{"43}
\ams@DeclareMathSymbol{\trianglerighteq} {\mathrel}{AMSa}{"44}
\ams@DeclareMathSymbol{\trianglelefteq} {\mathrel}{AMSa}{"45}
\ams@DeclareMathSymbol{\rightsquigarrow} {\mathrel}{AMSa}{"20}
\@ifpackageloaded{latexsym}{\@tempswafalse}{\@tempswatrue}
\if@tempswa
\global\let\Box\square
\global\let\Diamond\lozenge
\global\let\leadsto\rightsquigarrow
\global\let\lhd\@@undefined
\global\let\unlhd\@@undefined
\global\let\rhd\@@undefined
\global\let\unrhd\@@undefined
\DeclareMathSymbol{\lhd} {\mathbin}{AMSa}{"43}
\DeclareMathSymbol{\unlhd} {\mathbin}{AMSa}{"45}
\DeclareMathSymbol{\rhd} {\mathbin}{AMSa}{"42}
\DeclareMathSymbol{\unrhd} {\mathbin}{AMSa}{"44}
\xdef\Join{\mathrel{\mathchar"0\hexnumber@\symAMSb 6F\mkern-13.8mu%
\mathchar"0\hexnumber@\symAMSb 6E}}
\fi
\endgroup
以提供latexsym
定义符号的等价物。
答案2
\Box
latexsym
由 LaTeX 使用核心 latex 字体(基础发行版中的包)定义。由AMS 字体中的字符\square
定义,但默认情况下amssymb
\global\let\Box\square
所以它们是一样的