\usepackage[slantedGreek]{newtxmath}:\mathsf{\upOmega} 无法渲染

\usepackage[slantedGreek]{newtxmath}:\mathsf{\upOmega} 无法渲染

喂食

\documentclass{standalone}
\usepackage{newtxtext}
\usepackage[slantedGreek]{newtxmath}
\begin{document}
\(\mathsf{\upOmega}\)
\end{document}

任何[ps|pdf|lua|xe]latex结果都以点表示

点

它是一个错误还是一个功能?(这个问题是反问,所以选择你喜欢的答案。)

在使用 进行编译时pdflatex,我们希望默认使用newtx斜体衬线拉丁数学字体(对于 UTF8 编译器:类似 Times 的字体)和斜体衬线希腊数学字体。不过,有时我们想要排版一些直立无衬线希腊数学字母(在我的情况下,是直立无衬线希腊大写字母 Omega)。当然,您可以使用tikz符号,但是它不会显示在生成的 PDF 的文本层中。该包upgreek可以完成这项工作,但会稍微增加垂直间距。那么:在不绘制它也不加载(全部)上述设置的情况下,排版直立无衬线希腊大写字母 Omega 的最佳方法是什么upgreek?这真的是关于那个 Omega;我不需要其他希腊符号。

最近,@egreg建议添加\DeclareMathAlphabet{\mathsf}{OT1}{\sfdefault}{m}{n}以解决问题。此解决方案会改变输出,尽管变化很小。最小示例如下:

\documentclass{article}
\linespread{1.5}
\usepackage{amsmath}
\usepackage{newtxtext}
\usepackage[slantedGreek]{newtxmath}%%% In particular, loads the upright versions of greek as \upalpha, \upbeta, ...
%\DeclareMathAlphabet{\mathsf}{OT1}{\sfdefault}{m}{n} % newtxmath has T1, should be OT1 instead to be able to display \mathsf{\upOmega}.
\newcommand{\shortDefiningEquals}{\stackrel{\text{def}}{=}}
\begin{document}
\(\shortDefiningEquals\)\\

\(\shortDefiningEquals\)

\strut\\
\begin{itemize}
\item \strut\\\\$\shortDefiningEquals$
\end{itemize}
\strut\\\\$\mathsf{dp}^1$
\end{document}

pdflatex可以通过先运行带有建议行的版本,再运行不带有建议行的版本,然后使用 diffpdf 工具比较两者来证明差异的存在:

差异

通过在两个版本(带有/不带有该行)上 运行latex+并将生成的 postscript 文件与以下内容进行比较,可以更好地理解差异有多小:dvipsdiff -a -C 5 version1.ps version2.ps | tail -24

*** 2221,2231 ****
   end
  %%EndSetup
  %%Page: 1 1
  TeXDict begin 1 0 bop 639 489 a Fh(def)652 538 y Fe(=)639
  788 y Fh(def)652 837 y Fe(=)652 1352 y Fd(\210)722 1602
! y Fh(def)735 1650 y Fe(=)515 2165 y Fc(dp)598 2133 y
  Fb(1)1926 5255 y Fa(1)p eop end
  %%Trailer

  userdict /end-hook known{end-hook}if
  %%EOF
--- 2221,2231 ----
   end
  %%EndSetup
  %%Page: 1 1
  TeXDict begin 1 0 bop 639 489 a Fh(def)652 538 y Fe(=)639
  788 y Fh(def)652 837 y Fe(=)652 1352 y Fd(\210)722 1602
! y Fh(def)735 1650 y Fe(=)515 2165 y Fc(dp)598 2134 y
  Fb(1)1926 5255 y Fa(1)p eop end
  %%Trailer

  userdict /end-hook known{end-hook}if
  %%EOF

我不确定是否还会出现其他更大的差异。

答案1

选择T1 编码字体,其在 OT1 编码字体具有 Omeganewtxmath\mathsf位置处具有点重音。修复它。

slantedGreek据我所知,这与选项无关。

\documentclass{article}
\usepackage{newtxtext}
\usepackage[slantedGreek]{newtxmath}

\DeclareMathAlphabet{\mathsf}{OT1}{\sfdefault}{m}{n} % newtxmath has T1

\begin{document}
X\(\mathsf{\upOmega}\)X
\end{document}

在此处输入图片描述

相关内容