public string exportDFF() {//exporting to declare field format. if (!changed) { return("%\r\n"); } else { //string temp = ""//"\\DeclareFieldFormat"; //temp += StringWorks.insymb(type, '[');//переделать! string temp2 = "#1"; temp2 = Embrace.embraceBibStyle(temp2, fs, true); foreach (Envelopestyle envs in envsl) { temp2 = envs.inEnv(temp2); temp2 = Embrace.embraceBibStyle(temp2, envs.fs, true); } return(StringWorks.insymb(type.ToString(), '{') + StringWorks.insymb(temp2, '{') + "%\r\n");// тут надо сильно подумать, насколько мы позволим модифицировать стиль окружающих скобок //пока вариант - наследовать или не наследовать стиль от самого текста. Надо проверить, что случится тогда с пустыми полями в скобках. /*текущий подход: снаружи стиль скобок, скобки, потом стиль текста*/ //return temp + "\r\n"; } }
} //this will reset the order of elements to default; also it will strike down the flag "changedFlag" public void exportToControlStrings() { /*we will put all formatting and envelopes to "declare field formats" * and try to move all punctuation and ordering to drivers*/ // Tuple<string, string> t = new Tuple<string, string>("", ""); //first string contains DFF and the second one contains DBD. DBDString = ""; DFFString = ""; if (changedFlag) { DBDString += "\\DeclareBibliographyDriver" + StringWorks.insymb(etype.ToString(), '{') + "{%\r\n"; foreach (Field field in fields) { DFFString += ("\\DeclareFieldFormat" + StringWorks.insymb(etype.ToString(), '[') + field.exportDFF()); DBDString += field.exportDBD(); // t.Item1. // FieldFormats += field. } DBDString += "}%\r\n"; }//this will export all the formatting to the corresponding driver /*order of elements, punctuation, quotations...*/ }