fork download
  1. #!/usr/bin/perl
  2.  
  3.  
  4. sub process_latex {
  5. my ($latex) = @_;
  6. 1 while $latex =~ s{
  7. \\frac
  8. (\{
  9. ([^{}]*(?:(?1)[^{}]*)*) # numerator (match balanced braces)
  10. \})
  11. (\{
  12. ([^{}]*(?:(?3)[^{}]*)*) # denominator (match balanced braces)
  13. \})
  14. }{
  15. my ($numerator, $denominator) = ($2, $4);
  16. $numerator = process_latex($numerator);
  17. $denominator = process_latex($denominator);
  18. "($numerator)/($denominator)";
  19. }gex;
  20. return $latex;
  21. }
  22.  
  23. print process_latex('\frac{ \frac{1\frac{2}{3}}{4} a{} }{ b{} }') . "\n";
  24. print process_latex('\frac{\epsilon+\gamma}{2^{-4\epsilon}}') . "\n";
  25. print process_latex('\frac{\frac{1}{2} \textbf{a}}{b \textit{c}}') . "\n";
Success #stdin #stdout 0.01s 5360KB
stdin
Standard input is empty
stdout
( (1(2)/(3))/(4) a{} )/( b{} )
(\epsilon+\gamma)/(2^{-4\epsilon})
((1)/(2) \textbf{a})/(b \textit{c})