package Ġnl . rub en sten . tex ify idea . editor Ċ Ċ import Ġnl . rub en sten . tex ify idea . util . Magic Ċ Ċ class ĠMulti Line Math Content ToOne Line ( private Ġval Ġequation : ĠString ) Ġ{ ĊĊĠĠĠ Ġfun Ġget One Lin er (): ĠString Ġ= Ġreduce () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReduce Ġthe Ġcontent Ġof Ġa Ġmulti Ġline Ġenvironment Ġto Ġ' one ' Ġline . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠRemoves Ġall Ġline Ġbreaks Ġand Ġalignment Ġcharacters , Ġexcept Ġthose Ġinside Ġa Ġcases Ġor Ġsplit ĊĠĠĠĠ Ġ* Ġenvironment . ĠChanges Ġall Ġoccurrences Ġof Ġ'\ inter text {} ' Ġto Ġ'\ text {}'. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġreduce (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSplit Ġthe Ġstring Ġat Ġevery Ġbegin / end Ġcommand Ġfor Ġthe Ġcases / split Ġenvironments . ĊĠĠĠĠĠĠĠ Ġval Ġsplit By Begin End : ĠMutable List < String > Ġ= Ġequation . split ( Magic . Pattern . cases Or Split Commands ). to Mutable List () ĊĊĠĠĠĠĠĠĠ Ġfun Ġis Begin Command ( text : ĠString ): ĠBoolean Ġ= Ġtext . contains ("\\ begin ") ĊĊĠĠĠĠĠĠĠ Ġfun Ġis End Command ( text : ĠString ): ĠBoolean Ġ= Ġtext . contains ("\\ end ") ĊĊĠĠĠĠĠĠĠ Ġfun Ġparse ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġsplit By Begin End . indexOf ( text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsplit By Begin End [ index ] Ġ= Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ("\ n ", Ġ"") ĠĠĠ Ġ// ĠRemove Ġnew Ġlines . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" \\\\ ", Ġ"") Ġ Ġ// ĠRemove Ġend - of - line Ġalignment Ġcharacters . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ("& ", Ġ"") ĠĠĠĠ Ġ// ĠRemove Ġalignment Ġcharacters . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ("\\ inter text ", Ġ"\\ text ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠOnly Ġparse Ġtext Ġoutside Ġof Ġcases Ġand Ġsplit Ġenvironments . ĊĠĠĠĠĠĠĠ Ġvar Ġdepth Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġsplit By Begin End . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Begin Command ( it ) Ġ&& Ġ! is End Command ( it ) Ġ&& Ġdepth Ġ== Ġ 0 ) Ġparse ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( is Begin Command ( it )) Ġdepth ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( is End Command ( it )) Ġdepth -- ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsplit By Begin End . join ToString ( separator Ġ= Ġ"") ĊĠĠĠ Ġ} Ċ }