如何使用 T1 编码显示漂亮的矢量?

如何使用 T1 编码显示漂亮的矢量?

我通常会做但从未同时做过的两件事之间似乎存在冲突:使用 T1 字体编码和使用\overrightarrow矢量。

确实,我觉得\vec箭头的固定大小很丑。例如这样:展示小箭头的方程式

所以我通常做的是\renewcommand{\vec}[1]{\overrightarrow{#1}}输出漂亮的长箭头(至少在 OT1 编码中)。

虽然我必须对当前文档使用 T1 编码,但它似乎会弄乱箭头。例如,左边的箭头太长了:

如果字体编码不是问题,我可以提供我的整个序言,但它很长。

所以问题是:如何同时拥有正确的编码(我的文档是法语)和向量上的漂亮箭头?

编辑:添加一个例子(根据@DavidCarlisle 的要求)

我找到了导致字体变化的原因:newtxmath包。我曾经用它来处理\not任何我想要的东西。经过检查,我碰巧更喜欢在字体\vec的单个字符上应用原始命令newtxmath

以下是示例:

% Set up the document's format to A4 and the font's size to 12pt.
\documentclass[a4paper,12pt]{report}

% Set up the input's encoding to UTF-8, the document's font and language to T1 (adapted to french) and french (the grammar linter uses this parameter).
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

% Allows to define \notfoo or \nfoo (not recommended) in order for \not\foo to work as wished.
\usepackage{newtxmath}

% Redefines \vec such that the arrow covers the whole name of the vector.
\renewcommand{\vec}[1]{\overrightarrow{#1}}

\begin{document}
\(\vec{v}\)
\end{document}

答案1

您可以使用新的pdfmsym“包”(它不是 LaTeX 意义上的)。

\documentclass{article}
\usepackage{amsmath}

\input{pdfmsym}% not \usepackage!
\pdfmsymsetscalefactor{8}

\newcommand{\diff}{\mathop{}\!\mathrm{d}}

\begin{document}

\[
\diff\vecc{p_{\mathrm{atome}}}=
\vecc{p_f} - \vecc{p_i}=
m\vecc{v'}-m\shortvecc{v}=
-2mu\vecc{u_x}
\]

\[
\diff\vec{p}_{\mathrm{atome}}=
\vec{p}_f - \vec{p}_i=
m\vec{v}^{\,\prime}-m\vec{v}=
-2mu\vec{u}_x
\]

\end{document}

不过,我更喜欢后一种格式。

在此处输入图片描述

如果我添加,则看不到任何区别

\usepackage[T1]{fontenc}
\usepackage[french]{babel}

如果我使用\overrightarrow,我会得到类似

在此处输入图片描述

恐怕这很难被形容为“好”。但无论有没有 T1,我都没有感觉到任何区别。

相关内容