我经常写单位向量。目前,对我来说最好的方法是定义:
\newcommand{\uvec}[1]{\boldsymbol{\hat{\textbf{#1}}}}
然后做
\uvec{i}
、\uvec{j}
和\uvec{k}
。我喜欢这些结果(它们足够清晰),但我更希望i
和j
单位向量没有点。有什么好的、统一的方法来获得这个结果?
我试过了\hat{\textbf{\i}}
,效果不错, 也是\hat{\textbf{k}}
。问题是\hat{\textbf{\j}}
对我来说不起作用。出于某种原因,我没有得到j
,而是得到了一些矩形墨迹。
\jmath
对我来说不起作用\imath
,因为我不需要斜体,而是需要粗体。
总结一下:
想要粗体,而不是斜体
想要一顶单位向量的帽子
不想要点
i
或j
单位向量。
如何最好地获得所有这些?非常感谢您抽出时间!
这是一个最小工作示例:
\documentclass{article}
\usepackage{amsmath}
\newcommand{\uvec}[1]{\boldsymbol{\hat{\textbf{#1}}}}
\begin{document}
$\uvec{i}, \uvec{j}, \uvec{k}$
\end{document}
请随意建议纳入其他软件包。
答案1
您必须使用\i
和\j
,这意味着您需要切换到文本模式。但是,存在一个问题,即数学模式下的文本字体会继承上下文的属性,因此,例如,$\textbf{\i}$
在定理语句中会给出粗体斜体无点 i。
\documentclass{article}
\usepackage{amsmath}
\usepackage{bm}
\newcommand{\uveci}{{\bm{\hat{\textnormal{\bfseries\i}}}}}
\newcommand{\uvecj}{{\bm{\hat{\textnormal{\bfseries\j}}}}}
\DeclareRobustCommand{\uvec}[1]{{%
\ifcsname uvec#1\endcsname
\csname uvec#1\endcsname
\else
\bm{\hat{\mathbf{#1}}}%
\fi
}}
\begin{document}
$\uveci\ne\hat{\imath}_{\uvec{i}}+\uvec{j}+\uvec{k}$
\end{document}
您可以输入\uveci
和\uvec{i}
以表示统一性,对于“j”也一样。
您不能times
为此使用该包;首先是因为它已经过时了,但即使是它的替代品,即mathptmx
,也没有提供无点 j。您可以使用newtxtext
和newtxmath
:
\documentclass{article}
\usepackage{newtxtext,newtxmath}
\usepackage{amsmath}
\usepackage{bm}
\newcommand{\uveci}{{\bm{\hat{\textnormal{\bfseries\i}}}}}
\newcommand{\uvecj}{{\bm{\hat{\textnormal{\bfseries\j}}}}}
\DeclareRobustCommand{\uvec}[1]{{%
\ifcsname uvec#1\endcsname
\csname uvec#1\endcsname
\else
\bm{\hat{\mathbf{#1}}}%
\fi
}}
\begin{document}
Some text for showing that Times is being used.
$\uveci\ne\hat{\imath}_{\uvec{i}}+\uvec{j}+\uvec{k}$
\end{document}
使用 newTX,您还可以获得直立的小写希腊字母。以下是操作方法;我还添加了输入 的可能性\uvec{\alpha}
。请注意, 的参数\uvec
必须是单身的拉丁字符(不是\i
或\j
,这对于宏来说是不必要的和非法的)或单身的希腊符号。
\documentclass{article}
\usepackage{newtxtext}
\usepackage{newtxmath}
\usepackage{amsmath}
\usepackage{bm}
\newcommand{\uveci}{{\bm{\hat{\textnormal{\bfseries\i}}}}}
\newcommand{\uvecj}{{\bm{\hat{\textnormal{\bfseries\j}}}}}
\DeclareRobustCommand{\uvec}[1]{{%
\ifcat\relax\noexpand#1%
% it should be a Greek letter
\bm{\hat{#1}}%
\else
\ifcsname uvec#1\endcsname
\csname uvec#1\endcsname
\else
\bm{\hat{\mathbf{#1}}}%
\fi
\fi
}}
% for upright lowercase Greek; newtxmath hasn't an option for this
\let\alpha\alphaup
\let\beta\betaup
\let\gamma\gammaup
\let\delta\deltaup
\let\epsilon\epsilonup
\let\zeta\zetaup
\let\eta\etaup
\let\theta\thetaup
\let\iota\iotaup
\let\kappa\kappaup
\let\lambda\lambdaup
\let\mu\muup
\let\nu\nuup
\let\xi\xiup
\let\pi\piup
\let\rho\rhoup
\let\sigma\sigmaup
\let\tau\tauup
\let\upsilon\upsilonup
\let\phi\phiup
\let\chi\chiup
\let\psi\psiup
\let\omega\omegaup
\let\varepsilon\varepsilonup
\let\vartheta\varthetaup
\let\varpi\varpiup
\let\varrho\varrhoup
\let\varsigma\varsigmaup
\let\varphi\varphiup
%%
\begin{document}
Some text for showing that Times is being used.
$\uveci\ne\hat{\imath}_{\uvec{i}}+\uvec{j}+\uvec{k}$
$\uvec{\alpha}+\uvec{\Gamma}+A$
\end{document}
笔记
Times 字体绝对不是必需的,并且代码与标准字体配合得很好。
\documentclass{article}
\usepackage{amsmath}
\usepackage{bm}
\newcommand{\uveci}{{\bm{\hat{\textnormal{\bfseries\i}}}}}
\newcommand{\uvecj}{{\bm{\hat{\textnormal{\bfseries\j}}}}}
\DeclareRobustCommand{\uvec}[1]{{%
\ifcat\relax\noexpand#1%
% it should be a Greek letter
\bm{\hat{#1}}%
\else
\ifcsname uvec#1\endcsname
\csname uvec#1\endcsname
\else
\bm{\hat{\mathbf{#1}}}%
\fi
\fi
}}
\begin{document}
$\uveci\ne\hat{\imath}_{\uvec{i}}+\uvec{j}+\uvec{k}$
$\uvec{\xi}+\uvec{\Gamma}+A$
\end{document}
答案2
\documentclass{article}
\usepackage{bm}
\newcommand{\uvec}[1]{\boldsymbol{\hat{\textbf{#1}}}}
\begin{document}
$\uvec{\i} \uvec{\j} \uvec{k}$
\end{document}
答案3
答案4
您可以使用命令 but\uvec{\i}
和\uvec{\j}
。这将产生您想要的结果。