/// <summary> /// parse a \cite tag /// </summary> public string ParseCite(string s, CiteTypes type) //v4-01 { string sTag = ""; int iOffset = 0; switch (type) { case CiteTypes.CITE: sTag = "\\cite{"; iOffset = 6; break; case CiteTypes.CITENUM: sTag = "\\citenum{"; iOffset = 9; break; default: //CiteTypes.NOCITE sTag = "\\nocite{"; iOffset = 8; break; } s = s.Substring(s.IndexOf(sTag) + iOffset); //v2-01 string temp = s.Substring(0, s.IndexOf('}')); //v2-04: handle multiple keys inside single citation string[] cites = temp.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (string c in cites) { string cite = c.TrimEnd().TrimStart(); //clear leading and trailing whitespaces aCites.Add(cite); } return(s); }
/// <summary> /// parse a \cite tag /// </summary> public string ParseCite(string s, CiteTypes type) //v4-01 { string sTag = ""; int iOffset = 0; switch (type) { case CiteTypes.CITE: sTag = "\\cite{"; iOffset = 6; break; case CiteTypes.CITENUM: sTag = "\\citenum{"; iOffset = 9; break; default: //CiteTypes.NOCITE sTag = "\\nocite{"; iOffset = 8; break; } s = s.Substring(s.IndexOf(sTag) + iOffset); //v2-01 string temp = s.Substring(0, s.IndexOf('}')); //v2-04: handle multiple keys inside single citation string[] cites = temp.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (string c in cites) { string cite = c.TrimEnd().TrimStart(); //clear leading and trailing whitespaces aCites.Add(cite); } return s; }