我无意中发现了 accors \Vec{...}
(注意大写命令)。由于无法在 Google 和 SE 上进行区分大小写的搜索,我不得不问:它有什么用?我可以覆盖它吗?它似乎具有与 相同的效果\vec{...}
。
答案1
如果我做
> ack '\\Vec[^f@t-]' /usr/local/texlive/2023/texmf-dist/tex/latex/
(正则表达式中的排除列表只是为了避免误报)答案是
/usr/local/texlive/2023/texmf-dist/tex/latex/amsmath/amstex.sty
774:\gdef\Vec{\RIfM@\DN@{\mathaccent@{"017E }}\else
775: \DN@{\nonmatherr@\Vec}\fi\next@}
/usr/local/texlive/2023/texmf-dist/tex/latex/amsmath/amsmath-2018-12-01.sty
876:\def\Vec{\vec}
/usr/local/texlive/2023/texmf-dist/tex/latex/amsmath/amsmath.sty
902:\def\Vec{\vec}
/usr/local/texlive/2023/texmf-dist/tex/latex/lwarp/lwarp-amsmath.sty
156:\CustomizeMathJax{\let\Vec\vec}
因此基本上,唯一定义的包\Vec
是amsmath
(amstex.sty
保留以实现向后兼容)。
为什么?如果你仔细查看,amsmath.sty
你还会发现,所有数学重音符号都是\Acute
,\Hat
等等。
在 的第一个版本中amsmath
,大写版本用于正确显示堆叠重音,因此您必须输入
\Dot{\Hat{x}}
以获得重音符号的正确位置。在后来的版本中,重音符号堆叠的问题以不同的方式得到解决(这增加了一个不太好的“功能”,但这不是重点),因此大写版本被重新定义为与全小写命令相同。
使用\Vec
或\vec
完全相同。
答案2
TeX 通常区分大写和小写,因此\vec
与 不同\Vec
。在普通 TeX 中,只有\vec
定义,但软件包amsmath
将其定义\Vec
为与 相同\vec
(手册中写道“为了向后兼容”):
\def\Vec{\vec}
因此,是的,如果您指的是amsmath
包中定义的宏,它的作用与 完全相同\vec
。是的,在这种情况下,您可以重新定义它(在加载 之后amsmath
),而不会影响 的定义\vec
。但我不确定重新定义它是否是个好主意,因为这可能会破坏其他包依赖于将amsmath
大写宏定义为与非大写宏相同的事实。
但是,由于您没有提供最小工作示例(MWE)以上只是猜测。可能还存在其他\Vec
以自己的不同方式定义的包或文档类,当然,在这种情况下重新定义此宏可能会有问题。