$Version

Quit[]

(*this is needed for arcsin and arccos and arctan to work*)
Initial/:Verbatim[TagSetDelayed][Initial[sym_],lhs_,rhs_]:=With[{new=Block[{sym},TagSetDelayed[sym,lhs,rhs];
First@Language`ExtendedDefinition[sym,"ExcludedContexts"->{}]],protect=Unprotect[sym]},sym;
Replace[new,Rule[values_,n:Except[{}]]:>(values[sym]=Prepend[values[sym],n]),{2}];
Protect@protect;]
Initial[Convert`TeX`ExpressionToTeX]/:Convert`TeX`ExpressionToTeX[e__]/;!TrueQ@$TeX:=Block[{$TeX=True},Convert`TeX`ExpressionToTeX[e]]
System`Convert`TeXFormDump`maketex[TemplateBox[a_,tag_?fullformQ]]:=System`Convert`TeXFormDump`maketex[RowBox[{operatorName[convertTag@tag],"(",RowBox[Riffle[a,","]],")"}]]

System`Convert`TeXFormDump`maketex[operatorName[tag_]]:="\\operatorname{"<>tag<>"}"
convertTag[s_]:=s;
convertTag["EllipticPi3"]="EllipticPi";


fullformQ[_]=False;
fullformQ["EllipticPi3"]=True; (*notice workaround*)
fullformQ["EllipticE"]=True;
fullformQ["EllipticF"]=True;

TeXForm[EllipticPi[a,b,c]]

TeXForm[EllipticPi[a,b]]

TeXForm[EllipticE[a]]

TeXForm[EllipticE[a,b]]