Skip to content

xeCJK 请教:如何取消 \textsuperscript 与后续汉字之间的空白 #338

@zepinglee

Description

@zepinglee

检查清单

  • 我已在 issues 中进行搜索(包括已关闭的问题)

操作系统

macOS 13.7

TeX 发行版

TeX Live 2025

描述问题

上标式引文标注如果后续紧跟汉字,xeCJK 会自动插入多余的空白。这是因为其底层 \textsuperscript 是通过数学环境实现的: \m@th\ensuremath{^{\mbox{\fontsize\sf@size\sf@size#1}}}}xeCJK 会自动处理数学式与汉字之间的空白。请问如何取消这一空白?

最小工作示例(MWE)

\documentclass{article}

\usepackage{xeCJK}

% `natbib` 的 `\NAT@citesuper` 简化版
\newcommand\supercite[1]{%
  \unskip
  \kern 1pt\relax
  \textsuperscript{[#1]}%
  % \kern 1pt\relax  % 方案 1
  % \allowbreak  % 方案 2
}

\begin{document}

\fbox{
  \begin{minipage}{9em}
    劳伦衣普桑,劳伦\supercite{1}衣普桑。\par
    劳伦衣普桑,劳伦衣\supercite{1}普桑。\par
    劳伦衣普桑,劳伦\supercite{1}。衣普桑\par
    劳伦衣普桑,劳伦衣\supercite{1}。普桑\par
    劳伦衣普桑:“劳。”\supercite{1}伦衣普桑\par
    劳伦衣普桑:“劳伦。”\supercite{1}衣普桑\par
  \end{minipage}
}

\end{document}
Image

链接

No response

其他信息

我尝试过:

  1. \kern 1pt\relax,但是这会导致与后续文字无法断行。
Image
  1. \allowbreak,但如果后面接句号则可能错误地断行。
Image

附件

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions