解决方案 1:操纵内容的高度或深度

解决方案 1:操纵内容的高度或深度

\PARENS{.....}如果我使用带有mtpro2(附件图中的绿色)的命令来获得完美的支撑曲线(圆括号)1(一个)问题:第一个等号的分数的第一行和第二行对齐,并且具有相同的粗细(您可以看到两个红色矩形)。

但是第三个分数(绿色)的线与前面的分数并不完全对齐(实际上两个分数在下面,第三个分数在上面),并且粗线与前面的红色分数不同。要使用命令创建一个具有两个等距括号的正确分数\PARENS{.....},使用包mtpro2,我添加了matrix命令\phantom{Z}\hspace{-.3cm}(您可以看到绿色)。

是否有不同的想法或解决方案来获得完美对齐的分数,并(...)使用与使用命令时相同的粗且完美的 PARENS(圆括号)\left(....\right)

在此处输入图片描述

\documentclass[12pt]{book} 
\usepackage{times} 
\usepackage[lite]{mtpro2} 
\usepackage{classico}
\usepackage{mathtools}
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{equation}
\begin{aligned}
\overline F =\frac{d\overline p}{dt}&=\\
&=\frac{m}{\sqrt{1-\dfrac{u^2}{c^2}}}\frac{d\overline u}{dt}+m\overline u\PARENS{\begin{matrix}\phantom{Z}&\\
\dfrac{1}{\sqrt{1-\dfrac{u^2}{c^2}}} \hspace{-.3cm}\end{matrix}}=\\
&=\frac{m}{\sqrt{1-\dfrac{u^2}{c^2}}}\,\overline a +\frac{\overline u}{c^2}\frac{d}{dt}\left(\dfrac{mc^2}{\sqrt{1-\dfrac{u^2}{c^2}}}\right)\\
\end{aligned}
\end{equation}


\end{document}

答案1

厚度看起来不同(可能是由于每个像素在屏幕上的呈现方式不同)。如果你把它们打印出来,应该没问题。

添加了解决方案 2(2019/04/04),应优先于解决方案 1。

解决方案 1:操纵内容的高度或深度

缺点(添加于 2019/04/04):这种方法有几个缺点,例如,

  1. 内容是明确设置的,但无论如何,\displaystyle这是原文所做的。\PARENS
  2. 内容中的所有空格(数学跳过)都被“冻结”,因此不能参与线的拉伸或收缩。
  3. 如果您有一个很长的公式,需要在分隔时将其分成两行,那么您必须手动插入适当的分隔符\vphantom以保证分隔符的大小相同。(注意:此解决方案仅处理\PARENS,但可以轻松扩展到\LEFTRIGHT可能出现所述问题的地方)
  4. 它请求一个新的盒子登记册。

听起来很熟悉?几乎所有这些缺点都与 LaTeX 中“自动调整大小”的使用相同,这就是我提供第二种“手动调整大小”解决方案的原因。

\PARENS命令将其内容放在 中\vcenter,因此它将忽略内容基线和周围基线的定位。我们可以使用一些低级框技巧使内容相对于数学轴对称,以便两个基线相同。新命令称为\symmPARENS(由于没有更好的名称……请随意将其更改为,例如\myPARENS)。(请注意,我还将其更改\overline\wbar以获得更好看的重音。顺便说一句, 不应该是 u速度 v吗?)

\documentclass[12pt]{book}
\usepackage{mathtools} % Load this early
%\usepackage{times}
\usepackage{newtxtext} % This is better :)
\usepackage[lite]{mtpro2}

% Low-level hacks:
\makeatletter
\newsavebox\mtp@symm@box % The box to be made symmetric
% Command that adjusts the box:
\newcommand*\mtp@adjust@box[1]{%
  \dimen@\dp#1%
    \advance\dimen@\fontdimen22\textfont\tw@ % \dimen@ is the length from the math axis to the bottom
  \dimen@ii\ht#1%
    \advance\dimen@ii-\fontdimen22\textfont\tw@ % \dimen@ii is the length from the math axis to the top
  \ifdim\dimen@>\dimen@ii % Box too deep
    \advance\dimen@\fontdimen22\textfont\tw@
      \ht#1\dimen@ % Make box higher
  \else % Box too high
    \advance\dimen@ii-\fontdimen22\textfont\tw@
      \dp#1\dimen@ii % Make box deeper
  \fi
}
% User level command:
\newcommand*\symmPARENS[1]{%
  \setbox\mtp@symm@box\hbox{$\m@th\displaystyle#1$}% Put content in a box
  \mtp@adjust@box\mtp@symm@box % Adjust the content box so baselines align
  \PARENS{\copy\mtp@symm@box}% Send the box back to \PARENS
}
\makeatother

\begin{document}
\noindent
With \verb|\PARENS|, not so good:
\begin{equation}
\wbar{F} = \frac{d \wbar{p}}{dt}
  = \frac{m}{\sqrt{1-\dfrac{u^2}{c^2}}} \frac{d \wbar{u}}{dt}
      + m \wbar{u} \PARENS{\dfrac{1}{\sqrt{1-\dfrac{u^2}{c^2}}}}
\end{equation}
With \verb|\symmPARENS|, centered, but not aesthetically pleasing:
\begin{equation}
\wbar{F} = \frac{d \wbar{p}}{dt}
  = \frac{m}{\sqrt{1-\dfrac{u^2}{c^2}}} \frac{d \wbar{u}}{dt}
      + m \wbar{u} \symmPARENS{\dfrac{1}{\sqrt{1-\dfrac{u^2}{c^2}}}}
\end{equation}
Why not:
\begin{equation}
\wbar{F} = \frac{d \wbar{p}}{dt}
  = \gamma m \frac{d \wbar{u}}{dt}
      + \gamma m \wbar{u},
 \quad \text{where } \gamma = \dfrac{1}{\sqrt{1-\dfrac{u^2}{c^2}}}
\end{equation}
Please don't abuse \verb|\symmPARENS|:
\begin{equation}
\frac{1}{2} f(\xi) = \frac{1}{2} \symmPARENS{\frac{\displaystyle\int_a^b f(x) \, dx}{b-a}}
\text{ versus }
\frac{1}{2} f(\xi) = \frac{1}{2} \symmPARENS{\frac{1}{b-a} \displaystyle\int_a^b f(x) \, dx}
\end{equation}
\end{document}

括号

不过,说真的,我只会写方程 (3)。

解决方案 2:创建\biggg-variants 来访问单个分隔符 (2019/04/04)

缺点:无。(开玩笑)这在脚注或标题中效果不佳(谁会在这些地方写大公式?),但 或解决方案 1 都不是。\PARENS\LEFTRIGHT是因为超大符号字体加载在固定大小,因此我们能做的不多。

这个想法基于\def\biggg{\bBigg@{3}}\def\Biggg{\bBigg@{3.5}}等。但我们需要一些能够切换字体的东西。

研究 4 种可扩展字体mtpro2mt2exa、、mt2exemt2exfmt2exg我发现括号、大括号、尖括号和斜线的显示大小如下:

| mt2exa |  1.2em |  1.8em |  2.4em |  3.0em |
| mt2exe |  3.6em |  4.2em |  4.8em |  5.4em |  6.0em |  6.6em |  7.2em (N/A) |
| mt2exf |  7.2em |  8.4em |  9.6em | 10.8em | 12.0em | 13.2em | 14.4em (N/A) |
| mt2exg | 14.4em | 16.8em | 19.2em | 21.6em | 24.0em | 26.4em | 28.8em       |

下面的命令\mtp@bBigg@有 3 个参数:#1是字体、#2是相对大小\big@size#3是分隔符。有 2 个详细信息:

  • 如果是 、 、 、 、 、 、 、 、 、、中任何一个,那么我们应该使用可能#3不同的字体。这可以通过 来实现。()<\langle>\rangle/\backslash\{\}\lbrace\rbrace\lcbrace\rcbrace\specdelim@#3
  • 但是,如果使用了straightbraces或选项,并且分隔符是、、、morphedbraces中的任一个,则我们应该切换回并使用直拼合括号。\{\}\lbrace\rbracemt2exa

要使用\mtp@bBigg@,你

\makeatletter
\newcommand*\mtpbiggg{\mtp@bBigg@\MTEXE@{3}}
\newcommand*\mtpBiggg{\mtp@bBigg@\MTEXE@{3.5}}
...
\newcommand*\mtpbigggggg{\mtp@bBigg@\MTEXF@{6}}
\newcommand*\mtpBigggggg{\mtp@bBigg@\MTEXF@{7}}
...
% \MTEXE@ should be followed by  3 ,  3.5 ,  4 ,  4.5 ,  5 ,  5.5
% \MTEXF@ should be followed by  6 ,  7   ,  8 ,  9   , 10 , 11
% \MTEXG@ should be followed by 12 , 14   , 16 , 18   , 20 , 22   , 24
\makeatother

顺便说一句,或的\big@size计算都是amsmathmtpro2可以说是错误的,所以我也提供了一个修复程序。

平均能量损失

\documentclass[12pt]{book}
\usepackage{mathtools,xcolor,newtxtext}
\usepackage[lite]{mtpro2}
\makeatletter
% Fix \big@size calculation
\addto@hook\every@math@size{%
  \global\big@size6\fontdimen6\textfont\thr@@\relax
  \global\divide\big@size by5\relax}
% \mtp@bBigg@: #1=font, #2=relative size, #3=delimiter
\newcommand*\mtp@bBigg@[3]{\leavevmode@ifvmode
  {\hbox{\specdelim@#3%
    \ifspecdelim@ % Switch font only for special delimiters
      \textfont\thr@@=#1%
      \ifnum
        \ifx#3\{ 1\else\ifx#3\} 1\else
        \ifx#3\lbrace 1\else\ifx#3\rbrace 1\else 0\fi\fi\fi\fi
          =1 % But if the delimiter is any of \{, \}, \lbrace or \rbrace
        \def\@tempa{\delimiter"4266308 }% We compare it with curly \lbrace
        \ifx\lbrace\@tempa\else
          \textfont\thr@@=\MTEXA@ % straight or morphed used, switch back to mt2exa
        \fi
      \fi
    \fi
    $\left#3\vcenter to#2\big@size{}\right.\n@space$}}}
% 6 mt2exe sizes:
\newcommand*\mtpbiggg{\mtp@bBigg@\MTEXE@\thr@@}
\newcommand*\mtpBiggg{\mtp@bBigg@\MTEXE@{3.5}}
\newcommand*\mtpbigggg{\mtp@bBigg@\MTEXE@4}
\newcommand*\mtpBigggg{\mtp@bBigg@\MTEXE@{4.5}}
\newcommand*\mtpbiggggg{\mtp@bBigg@\MTEXE@5}
\newcommand*\mtpBiggggg{\mtp@bBigg@\MTEXE@{5.5}}
% 2 mt2exf sizes (you get the idea):
\newcommand*\mtpbigggggg{\mtp@bBigg@\MTEXF@6}
\newcommand*\mtpBigggggg{\mtp@bBigg@\MTEXF@7}
\makeatother

% The corresponding l, m, r version:
\newcommand*\mtpbigggl{\mathopen\mtpbiggg}\newcommand*\mtpbigggm{\mathrel\mtpbiggg}\newcommand*\mtpbigggr{\mathclose\mtpbiggg}
\newcommand*\mtpBigggl{\mathopen\mtpBiggg}\newcommand*\mtpBigggm{\mathrel\mtpBiggg}\newcommand*\mtpBigggr{\mathclose\mtpBiggg}
\newcommand*\mtpbiggggl{\mathopen\mtpbigggg}\newcommand*\mtpbiggggm{\mathrel\mtpbigggg}\newcommand*\mtpbiggggr{\mathclose\mtpbigggg}
\newcommand*\mtpBiggggl{\mathopen\mtpBigggg}\newcommand*\mtpBiggggm{\mathrel\mtpBigggg}\newcommand*\mtpBiggggr{\mathclose\mtpBigggg}
\newcommand*\mtpbigggggl{\mathopen\mtpbiggggg}\newcommand*\mtpbigggggm{\mathrel\mtpbiggggg}\newcommand*\mtpbigggggr{\mathclose\mtpbiggggg}
\newcommand*\mtpBigggggl{\mathopen\mtpBiggggg}\newcommand*\mtpBigggggm{\mathrel\mtpBiggggg}\newcommand*\mtpBigggggr{\mathclose\mtpBiggggg}
\newcommand*\mtpbiggggggl{\mathopen\mtpbigggggg}\newcommand*\mtpbiggggggm{\mathrel\mtpbigggggg}\newcommand*\mtpbiggggggr{\mathclose\mtpbigggggg}
\newcommand*\mtpBiggggggl{\mathopen\mtpBigggggg}\newcommand*\mtpBiggggggm{\mathrel\mtpBigggggg}\newcommand*\mtpBiggggggr{\mathclose\mtpBigggggg}

% Visual check
\newcommand*\redline[1]{\vcenter{\color{red}\hrule height#1em width0.4pt}}
\newcommand*\test[2]{%
  \frac{d \wbar{u}}{dt}%
  #1%
  \bigl#1\redline{1.2}\Bigl#1\redline{1.8}%
  \biggl#1\redline{2.4}\Biggl#1\redline{3.0}%
  \mtpbigggl#1\redline{3.6}\mtpBigggl#1\redline{4.2}%
  \mtpbiggggl#1\redline{4.8}\mtpBiggggl#1\redline{5.4}%
  \mtpbigggggl#1\redline{6.0}\mtpBigggggl#1\redline{6.6}%
  \mtpbiggggggl#1\redline{7.2}\mtpBiggggggl#1\redline{8.4}%
  \frac{1}{\sqrt{1-\dfrac{u^2}{c^2}}}%
  \times
  \frac{\displaystyle\int\limits_a^b f(x)\,h(x)\,dx + \sum_{i=1}^n y_i w_i}%
       {\int\limits_a^b g(x)\,h(x)\,dx + \sum_{i=1}^n z_i w_i}%
  \mtpBiggggggr#2%
}
\begin{document}
\[ \test()          \]
% Uncomment to do the following tests:
%\[ \test\vert\Vert  \]
%\[ \test\{>         \]
%\[ \test/\backslash \]
\end{document}

手动调整尺寸

相关内容