“收敛于”的长度箭头是多少?

“收敛于”的长度箭头是多少?

为了表示序列收敛到极限,通常的\rightarrow对我来说似乎太短了。我的文档使用了 Michael Barr 的diagxy包,它定义了\to,而那个箭头太长了。

我怎样才能得到更合适长度的箭?

例子:

\documentclass[12pt]{article}
\usepackage{amsfonts}
\newcommand{\tendsto}{\mathrel{\rightarrow}}
\newcommand{\N}{\mathbb{N}}
\usepackage{diagxy}     %% redefines \to

\linespread{1.21}

\begin{document}

Let $(x_{n})_{n \in \N} \tendsto x$ in $X$. %% too short?

Let $(x_{n})_{n \in \N} \to x$ in $X$.      %% too long!

\end{document}

Arrows - amsfonts

\usepackage{lucidabr}我正在使用的实际字体,即 Lucida Bright(而不是\usepackage{amsfonts}),问题更加明显:

Arrows - Lucida Bright fonts

\toBarr 包中的较长箭头(对于函数符号来说,这是一个很好的长度,如$f \colon A \to B$)在的这一部分中定义diagxy

\def\setwdth#1#2{\setbox0\hbox{$\labelstyle#1$}\wdth=\wd0%
\setbox0\hbox{$\labelstyle#2$}\ifnum\wdth<\wd0 \wdth=\wd0 \fi}%

\def\topppp/#1/<#2>^#3_#4{\:%
\ifnum#2=0%
   \setwdth{#3}{#4}\deltax=\wdth \divide \deltax by \ul%
   \advance \deltax by \defaultmargin  \ratchet{\deltax}{100}%
\else \deltax #2%
\fi%
\xy\ar@{#1}^{#3}_{#4}(\deltax,0) \endxy%
\:}%

\def\toppp/#1/<#2>^#3{\ifnextchar_{\topppp/#1/<#2>^{#3}}{\topppp/#1/<#2>^{#3}_{}}}%
\def\topp/#1/<#2>{\ifnextchar^{\toppp/#1/<#2>}{\toppp/#1/<#2>^{}}}%
\def\toop/#1/{\ifnextchar<{\topp/#1/}{\topp/#1/<0>}}%
\def\to{\ifnextchar/{\toop}{\toop/>/}}%

是否有合适的方法可以利用来自的代码diagxy,或通过其他方式生成比 Barr 的箭头稍长\rightarrow但不如其长的箭头\to

答案1

我想提请大家注意lucida-amsmath.pdf在第22页,我们发现“收敛于”符号的“正常用法”恰好是\rightarrow在公式(48)和(49)中。

的长度\rightarrow由字体设计师选择。如果设计师不认为箭头“太小”或箭头条“太短”,那么我们也不应该这样做(如果您不同意,也许可以更改字体)。但如果你坚持设计自己的箭头,你称之为\tendsto,那么你可以借用在lucidabr.dtx

\DeclareMathSymbol{\relbar@}{\mathord}{arrows}{45}
\def\relbar{\mathrel{\smash\relbar@}\mathrel{\mkern-2.5mu}}
% ...
\def\longrightarrow{\mathrel{\mkern4mu}\relbar\rightarrow}

我们看到,\longrightarrow只需将 a\relbar与 a连接起来\rightarrow,然后使用\mathrel{\mkern4mu}来调整此关系符号周围的间距即可。

因此,为了设计我们自己使用的箭头,我们可以在序言中添加以下内容:

% Adjust the `-2' in \mkern-2mu to suit your need
\newcommand*{\tendsto}{\mathrel{\mkern4mu}\relbar\mkern-2mu\rightarrow}

由于我没有 Lucida 字体,因此我只能-2mu在上述定义中提供经验。请调整此长度以满足您的需要。值得指出的是箭的长度没有标准,因此您决定投入到此定制中的长度\tendsto完全是主观的。添加:对于 Computer Modern,您可能会发现-8mu看起来不错(\longrightarrow用途\joinrel,本质上\mkern-3mu)。

添加:这种方法可能比\newcommand{\myrightarrow}{\xrightarrow{\hspace{10pt}}}@nox建议的更好,因为:

  1. 这并不需要,尽管如果你有很多数学知识的话amsmath很可能你还是需要它。amsmath
  2. 这可以在脚本和第二个脚本级别正确缩放,因为它不依赖于绝对长度(如)10pt。您可以使用类似的东西0.8em,但箭头无法正确缩放(好吧,\xrightarrow{...}无论如何您都不应该在脚本中使用。它被设计为在其上方/下方放置文本)。

这两种方法本质上都使用了重新设计的箭头。

边注:我不建议使用包\to中的重新定义diagxy:箭头根本无法与 Computer Modern 或 Lucida Bright 融合。

使用现代计算机的插图

以下是使用 Computer Modern 的插图:

\documentclass[12pt]{article}

% Many font packages, including lucidabr, redefine things set up by amsmath
% So amsmath must come before math font settings
% See Section 1 of lucida-amsmath.pdf
\usepackage{amsmath}
\newcommand*{\myrightarrow}{\xrightarrow{\hspace{10pt}}}

\usepackage{amsfonts}
\newcommand*{\tendsto}{\relbar\mkern-8mu\rightarrow}
\newcommand{\N}{\mathbb{N}}

%\usepackage{diagxy}     %% redefines \to

\newcommand*{\test}[1]{%
  \makebox[7em][r]{\texttt{\textbackslash#1}}:
  Let $(x_n)_{n \in \N} \csname#1\endcsname x$ in~$X$;
  that is, \[\lim_{n \csname#1\endcsname \infty} x_n = x.\]}

\begin{document}
\noindent\test{to}
\test{tendsto}
\test{myrightarrow}
\end{document}

Comparison

相关内容