Example #1
0
        /// <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;
        }