有没有办法自动 .../...
替换\frac{...}{...}
?
例如,143/23
应呈现为\frac{143}{23}
答案1
这是一个基于 LuaLaTeX 的解决方案。它适用于分子和分母都只包含(一个或多个)数字的所有分数表达式,并且它在内联数学和显示数学模式下都有效。为了\frac
工作,分数项必须处于数学模式材料中。只有带有数字的分数表达式才会被处理;a/b
诸如不是被修改。
如果您想要在整个文档中使用“大”分数,请务必加载amsmath
包并在下面的 Lua 函数中更改frac
为。dfrac
如果您好奇的话:lua 函数replace_slash
使用所谓的捕获来识别分子和分母项。lua 函数被分配给回调process_input_buffer
。这意味着该函数对输入进行操作前TeX 开始自己的处理。因此,TeX 的“眼睛”永远不会看到诸如 这样的表达式$1/2$
;相反,它们只能看到 这样的表达式$\frac{1}{2}$
。
(附录 2015 年 11 月 9 日:对 Lua 代码进行了概括,以便(i)有符号整数(正或者(负)并且(ii)输入中的任何空格都得到正确处理。)
% !TEX TS-program = lualatex
\documentclass{article}
\usepackage{luacode}
\begin{luacode}
function replace_slash ( line )
return string.gsub ( line, "([%+%-]?%d+)%s-/%s-([%+%-]?%d+)", "\\frac{%1}{%2}" )
end
luatexbase.add_to_callback ( "process_input_buffer", replace_slash , "replace_slash" )
\end{luacode}
\begin{document}
How do we know that $55/110=1/2$?
\bigskip
$\displaystyle 55/110 = 1/2 $
\bigskip
Not modified: $a/(b+c)$, $x/y$, $2/x$
\end{document}
附录!
:在分子和/或分母中允许使用可选的阶乘符号,即,非常简单:在 Lua 函数中,只需替换搜索字符串
"([%+%-]?%d+)%s-/%s-([%+%-]?%d+)"
和
"([%+%-]?%d+!?)%s-/%s-([%+%-]?%d+!?)"
在 Lua 的模式匹配术语中,%s-
表示“0 次或多次出现空格”,而!?
子字符串表示“0 次或 1 次!
”。经过此修改,$3! / 2!$
将被排版为$\frac{3!}{2!}$
。
答案2
有 TeX 原语\over
。\frac
不一样,但基本情况下的结果相同。因此你可以写
\catcode`\/=13
\def/{\over}
/
制作主动角色有一些缺点,但这是你的选择。
您情况下的 MWE(请在将来做出这些改变):
\documentclass{article}
\begin{document}
\catcode`\/=13
\def/{\over}
\[
143/23
\]
\end{document}