newtxttext 和 \textsuperscript 的问题

newtxttext 和 \textsuperscript 的问题

我在使用 \textsuperscript 和 newtxttext 包时遇到了问题。当我使用 \textsuperscript 时,它并没有被“关闭”:MWE

\documentclass[a4paper,12pt]{scrbook}
\usepackage{newtxtext}
\begin{document}
21\textsuperscript{th} century
\end{document}

产量在此处输入图片描述

21\textsuperscript{th} \textnormal{century}

产量在此处输入图片描述

没有必要“关闭” \textsuperscript。对吗?有什么想法吗?

编辑:我正在使用 shareLatex 和 pdfLatex。文件列表输出:

 scrbook.cls    2017/04/13 v3.23 KOMA-Script document class (book)
scrkbase.sty    2017/04/13 v3.23 KOMA-Script package (KOMA-Script-dependent bas
ics and keyval usage)
 scrbase.sty    2017/04/13 v3.23 KOMA-Script package (KOMA-Script-independent b
asics and keyval usage)
  keyval.sty    2014/10/28 v1.15 key=value parser (DPC)
scrlfile.sty    2017/04/13 v3.23 KOMA-Script package (loading files)
tocbasic.sty    2017/04/13 v3.23 KOMA-Script package (handling toc-files)
scrsize12pt.clo    2017/04/13 v3.23 KOMA-Script font size class option (12pt)
typearea.sty    2017/04/13 v3.23 KOMA-Script package (type area)
newtxtext.sty    2017/05/28 v1.523
fontaxes.sty    2014/03/23 v1.0d Font selection axes
 xkeyval.sty    2014/12/03 v2.7a package option processing (HA)
 xkeyval.tex    2014/12/03 v2.7a key=value parser (HA)
etoolbox.sty    2017/01/02 v2.4 e-TeX tools for LaTeX (JAW)
 fontenc.sty
   t1enc.def    2017/04/05 v2.0i Standard LaTeX file
textcomp.sty    2017/04/05 v2.0i Standard LaTeX package
  ts1enc.def    2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file
t1ntxtlf.fd    2015/01/17 v1.0 font definition file for T1/ntx/tlf
  ts1cmr.fd    2014/09/29 v2.5h Standard LaTeX font definitions
t1ntxsups.fd    2015/01/17 v1.0

非常感谢本杰明

答案1

您正在使用的newtxtext版本 1.523 存在错误\textsuperscript;您可以按如下方式修复它

\documentclass[a4paper,12pt]{scrbook}

% fix the error in version 1.523 of newtxtext
\let\latextextsuperscript\textsuperscript
\AtBeginDocument{\let\textsuperscript\latextextsuperscript}

\usepackage{newtxtext}

\begin{document}

21\textsuperscript{th} century

\end{document}

您可以看到代码newtxtext.sty实际上是如何修复的http://tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/newtx/newtxtext.sty?r1=44458&r2=45074&sortby=date

该软件包删除了 的错误用法\textsu,这与我在建议的补丁中所做的相同。

答案2

我可以用 Overleaf 重现这个问题。ShareLaTeX 和 Overleaf 目前使用的是非常旧的 TeX 发行版。

在我看来,\textsuperscript在这种情况下没有任何参数,它的工作方式类似于\bfseries等。因此,以下代码可以解决问题:

\documentclass[a4paper,12pt]{scrbook}
\usepackage{newtxtext}
\begin{document}
21{\textsuperscript th} century
\end{document}

您还可以执行类似操作

\documentclass[a4paper,12pt]{scrbook}
\usepackage{newtxtext}
\makeatletter
\let\@mycommand\textsuperscript
\renewcommand\textsuperscript[1]{{\@mycommand #1}}
\makeatother
\begin{document}
21\textsuperscript{th} century
\end{document}

结果:

在此处输入图片描述

相关内容