`.sty`文件中如何书写数学公式的上下标?

发布于 2025-10-20 16:44:38

.sty文件中定义:

\NewDocumentCommand{\comb}{m m}{\mathrm{C}_{#1}^{#2}} % 这样写显示效果会有问题

但是.tex文件中:

$\comb{n}{i}$会得到C\_n^i的显示效果(下划线直接输出, 而不作为下标的标志), 然后这些命令放在.tex文件中定义不会有这种问题.


Edit

  • .tex代码和对应的编译效果见图

1.png
2.png

查看更多

关注者
0
被浏览
54
Sagittarius Rover
Sagittarius Rover 7小时前
这家伙很懒,什么也没写!

具体是什么问题,两者有什么差异,请尽可能详细描述

不要只是提供几个代码片段让别人做猜测...


Edit

似乎 是因为.sty中 会默认启用expl3环境,因此_会被转义...

% MyTemplate.sty
%==============  MyTemplate.sty  ==============%
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
\ProvidesExplPackage{MyTemplate}{2025-09-21}{1.1}{My personal utility macros}
% \NewDocumentCommand{\comb}{m m}{\mathrm{C}_{#1}^{#2}}% 这样写显示效果会有问题
\NewDocumentCommand{\comb}{m m}{\mathrm{C}\sp{#2}\sb{#1}} 

\endinput
% main.tex
\documentclass{article}
\usepackage{MyTemplate}
\begin{document}

before $\comb{n}{i}$ after

\end{document}

image.png

Ref: https://tex.stackexchange.com/a/698751/322482

2 个回答
U160373
U160373 2小时前
这家伙很懒,什么也没写!

1760972032175.png

附上找到的一些避坑指南
包括在L3下sty文件中的空格' '用'~'替代(这个我之前遇到过了)
下划线'_'的处理可参考被采纳的回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览