我希望s2
我的大文本中的所有单词都能被自动识别为$\rm s^2$,这样当我有大量诸如这样的常量时9.8 m/s2
,它们就会被自动识别为9.8 m/{$\rm s^2$}
并被编译为这样。
答案1
如果您可以自由使用 LuaLaTeX,则可以将其用作预处理器,将所有实例替换为s2
“\ensuremath{\textnormal{s}^2}
即时”。下面给出的代码通过将执行此替换的函数分配给回调来工作process_input_buffer
,该回调运行前TeX 开始其常规处理。
话虽如此,我认为从中期到长期来看,你最好熟悉这个siunitx
软件包,并习惯于书写,比如说\SI{9.81}{\meter\per\second\squared}
。
% !TEX TS-program = lualatex
\documentclass{article}
\usepackage{amsmath} % for "\ensuremath" macro
\usepackage{luacode}
\begin{luacode}
function s2 ( x )
x = string.gsub ( x , "s2" , "\\ensuremath{\\textnormal{s}^2}" )
return x
end
luatexbase.add_to_callback ( "process_input_buffer" , s2 , "s2" )
\end{luacode}
\begin{document}
9.81\,m/s2, $9.81\,\textrm{m}/s2$
\end{document}
答案2
它不完全是你想要的,但我希望接近。
使用编辑器将所有
s2
(观察空格)替换为,例如\seckw2
。\def\seckw#1{$\mathrm{s^{#1}}$}
。
还有其他方法,但需要一些有关您的条目的额外知识。