public String TitleBibTeXGetCitationStringForTitleID(int titleID) { System.Text.StringBuilder bibtexString = new System.Text.StringBuilder(""); CustomGenericList <TitleBibTeX> citations = this.TitleBibTeXSelectForTitleID(titleID); foreach (TitleBibTeX citation in citations) { String volume = citation.Volume; String copyrightStatus = citation.CopyrightStatus; String url = citation.Url; String note = citation.Note; String pages = citation.Pages.ToString(); String keywords = citation.Keywords; System.Collections.Generic.Dictionary <String, String> elements = new System.Collections.Generic.Dictionary <string, string>(); elements.Add(BibTeXRefElementName.TITLE, citation.Title); if (volume != String.Empty) { elements.Add(BibTeXRefElementName.VOLUME, volume); } if (copyrightStatus != String.Empty) { elements.Add(BibTeXRefElementName.COPYRIGHT, copyrightStatus); } if (url != String.Empty) { elements.Add(BibTeXRefElementName.URL, url); } if (note != String.Empty) { elements.Add(BibTeXRefElementName.NOTE, note); } elements.Add(BibTeXRefElementName.PUBLISHER, citation.Publisher); elements.Add(BibTeXRefElementName.AUTHOR, citation.Authors.Replace("|", " and ")); elements.Add(BibTeXRefElementName.YEAR, citation.Year); if (pages != String.Empty) { elements.Add(BibTeXRefElementName.PAGES, pages); } if (keywords != String.Empty) { elements.Add(BibTeXRefElementName.KEYWORDS, keywords); } BibTeX bibTex = new BibTeX(BibTeXRefType.BOOK, citation.CitationKey, elements); bibtexString.Append(bibTex.GenerateReference()); } return(bibtexString.ToString()); }
/// <summary>Create the PDF file.</summary> /// <param name="tags">The tags to convert to the PDF file.</param> /// <param name="fileName">The name of the file to write.</param> public void CreatePDF(List <AutoDocumentation.ITag> tags, string fileName) { string bibFile = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "..", "APSIM.bib"); bibTeX = new BibTeX(bibFile); citations = new List <BibTeX.Citation>(); citations.Clear(); // Scan for citations. ScanForCitations(tags); // Create a bibliography. CreateBibliography(tags); // Strip all blank sections i.e. two headings with nothing between them. StripEmptySections(tags); // numebr all headings. NumberHeadings(tags); // Create a MigraDoc document. Document document = new Document(); CreatePDFSyles(document); document.DefaultPageSetup.LeftMargin = MigraDoc.DocumentObjectModel.Unit.FromCentimeter(1); document.DefaultPageSetup.TopMargin = MigraDoc.DocumentObjectModel.Unit.FromCentimeter(1); document.DefaultPageSetup.BottomMargin = MigraDoc.DocumentObjectModel.Unit.FromCentimeter(1); if (!portrait) { document.DefaultPageSetup.Orientation = Orientation.Landscape; } // Create a MigraDoc section. Section section = document.AddSection(); // Convert all tags to the PDF section. TagsToMigraDoc(section, tags); // Write the PDF file. PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(false); pdfRenderer.Document = document; pdfRenderer.RenderDocument(); pdfRenderer.PdfDocument.Save(fileName); // Remove temporary working directory. Directory.Delete(WorkingDirectory, true); }
/// <summary>Create the PDF file.</summary> /// <param name="tags">The tags to convert to the PDF file.</param> /// <param name="fileName">The name of the file to write.</param> public void CreatePDF(List <AutoDocumentation.ITag> tags, string fileName) { string apsimDir = PathUtilities.GetAbsolutePath("%root%", null); string bibFile = Path.Combine(apsimDir, "APSIM.bib"); bibTeX = new BibTeX(bibFile); citations = new List <BibTeX.Citation>(); citations.Clear(); // Scan for citations. ScanForCitations(tags); // Create a bibliography. CreateBibliography(tags); // Strip all blank sections i.e. two headings with nothing between them. StripEmptySections(tags); // numebr all headings. NumberHeadings(tags); // Create a MigraDoc document. Document document = new Document(); CreatePDFSyles(document); document.DefaultPageSetup.LeftMargin = Unit.FromCentimeter(1); document.DefaultPageSetup.TopMargin = Unit.FromCentimeter(1); document.DefaultPageSetup.BottomMargin = Unit.FromCentimeter(1); document.DefaultPageSetup.Orientation = portrait ? Orientation.Portrait : Orientation.Landscape; // Create a MigraDoc section. Section section = document.AddSection(); // Convert all tags to the PDF section. TagsToMigraDoc(section, tags); // Write the PDF file. PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(false); pdfRenderer.Document = document; pdfRenderer.RenderDocument(); pdfRenderer.PdfDocument.Save(fileName); // Remove temporary working directory. Directory.Delete(WorkingDirectory, true); }
/// <summary> /// Perform the command /// </summary> public void Do(CommandHistory CommandHistory) { string bibFile = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "..", "APSIM.bib"); bibTeX = new BibTeX(bibFile); citations = new List<BibTeX.Citation>(); // Get the model we are to export. string modelName = Path.GetFileNameWithoutExtension(ExplorerPresenter.ApsimXFile.FileName.Replace("Validation", "")); DoExportPDF(modelName); }
static void AddTestFunctions_OP(BibTeX.Translator.BibTeXTranslator translator) { LaTeXFunction_OP test = new LaTeXFunction_OP (); test.DefaultResponse = "argument:{0}"; test.DefaultResponseWithOptionalContent = "argument:{0}, opArg:{1}"; test.Name = "test"; translator.LaTeXFunctions.Add (test); }
static void AddTestMathFunctions_P(BibTeX.Translator.BibTeXTranslator translator) { LaTeXFunction_MathNoSlash sup = new LaTeXFunction_MathNoSlash (); sup.Name = "^"; sup.DefaultResponse = "<small><sup><sup>{0}</sup></sup></small>"; LaTeXFunction_MathNoSlash sub = new LaTeXFunction_MathNoSlash (); sub.Name = "_"; sub.DefaultResponse = "<sub><sub>{0}</sub></sub>"; LaTeXFunction_MathPP frac = new LaTeXFunction_MathPP (); frac.Name = "frac"; frac.DefaultResponse = "<table style=\"display:inline-table; border-collapse: collapse; \">" + "<tr style=\"border-bottom:1px solid black;\">" + "<td style=\"text-align:center;\">{0}</td>" + "</tr>" + "<tr>" + "<td style=\"text-align:center;\">{1}</td>" + "</tr>" + "</table>"; translator.MathFunctions.Add (sup); translator.MathFunctions.Add (sub); translator.MathFunctions.Add (frac); }
static void AddTestFunctions_PP (BibTeX.Translator.BibTeXTranslator translator) { LaTeXFunction_PP frac = new LaTeXFunction_PP (); frac.Name = "frac"; frac.DefaultResponse = "({0})/({1}) <p>"; //translator.LaTeXFunctions.Add (frac); }
static void AddTestFunctions_P(BibTeX.Translator.BibTeXTranslator translator) { LaTeXFunction_P mbox = new LaTeXFunction_P (); mbox.DefaultResponse = "{0}"; mbox.Name = "mbox"; LaTeXFunction_P k = new LaTeXFunction_P (); k.Name = "k"; k.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "a", Response = "ą" }); translator.LaTeXFunctions.Add (mbox); translator.LaTeXFunctions.Add (k); }
static void AddTestFunctions_N(BibTeX.Translator.BibTeXTranslator translator) { LaTeXFunction_N textbraceleft = new LaTeXFunction_N (); textbraceleft.DefaultResponse = "{"; textbraceleft.Name = "textbraceleft"; LaTeXFunction_N textbraceright = new LaTeXFunction_N (); textbraceright.DefaultResponse = "}"; textbraceright.Name = "textbraceright"; LaTeXFunction_N l = new LaTeXFunction_N (); l.Name = "l"; l.DefaultResponse = "ł"; translator.LaTeXFunctions.Add (textbraceleft); translator.LaTeXFunctions.Add (textbraceright); translator.LaTeXFunctions.Add (l); LaTeXFunction_MathN cdot = new LaTeXFunction_MathN (); cdot.Name = "cdot"; cdot.DefaultResponse = "·"; translator.MathFunctions.Add (cdot); }
public static void CreateAlphabetFunctions(BibTeX.Translator.BibTeXTranslator translator) { #region grave ` // // Grave ` // LaTeXFunction_P grave = new LaTeXFunction_P(); grave.Name = "`"; grave.DefaultResponse = "\\`{{{0}}}"; translator.LaTeXFunctions.Add (grave); #endregion #region Acute ' // // Acute ' // LaTeXFunction_P acute = new LaTeXFunction_P(); acute.Name = "'"; acute.DefaultResponse = "\\'{{{0}}}"; acute.Responses.Add(new LaTeXFunction_P.OneParameterResponse{Input = "c", Response = "ć"}); acute.Responses.Add(new LaTeXFunction_P.OneParameterResponse{Input = "C", Response = "Ć"}); acute.Responses.Add(new LaTeXFunction_P.OneParameterResponse{Input = "n", Response = "ń"}); acute.Responses.Add(new LaTeXFunction_P.OneParameterResponse{Input = "N", Response = "Ń"}); acute.Responses.Add(new LaTeXFunction_P.OneParameterResponse{Input = "o", Response = "ó"}); acute.Responses.Add(new LaTeXFunction_P.OneParameterResponse{Input = "O", Response = "Ó"}); acute.Responses.Add(new LaTeXFunction_P.OneParameterResponse{Input = "s", Response = "ś"}); acute.Responses.Add(new LaTeXFunction_P.OneParameterResponse{Input = "S", Response = "Ś"}); acute.Responses.Add(new LaTeXFunction_P.OneParameterResponse{Input = "z", Response = "ź"}); acute.Responses.Add(new LaTeXFunction_P.OneParameterResponse{Input = "Z", Response = "Ź"}); translator.LaTeXFunctions.Add (acute); #endregion #region Circumflex ^ // // Circumflex ^ // LaTeXFunction_P circumflex = new LaTeXFunction_P (); circumflex.Name = "^"; circumflex.DefaultResponse = "\\^{{{0}}}"; translator.LaTeXFunctions.Add(circumflex); #endregion #region umlaut " // // umlaut " // LaTeXFunction_P umlaut = new LaTeXFunction_P(); umlaut.Name = "\""; umlaut.DefaultResponse = "\\\"{{{0}}}"; translator.LaTeXFunctions.Add(umlaut); #endregion #region Long hungarian umlaut " // // Long hungarian umlaut " // LaTeXFunction_P longUmlaut = new LaTeXFunction_P(); longUmlaut.Name = "H"; longUmlaut.DefaultResponse = "\\H{{{0}}}"; translator.LaTeXFunctions.Add(longUmlaut); #endregion #region tilde ~ // // tilde ~ // LaTeXFunction_P tilde = new LaTeXFunction_P(); tilde.Name = "~"; tilde.DefaultResponse = "\\~{{{0}}}"; translator.LaTeXFunctions.Add(tilde); #endregion #region c{c} ç cedilla // // c{c} ç cedilla // LaTeXFunction_P cedilla = new LaTeXFunction_P(); cedilla.Name = "c"; cedilla.DefaultResponse = "\\c{{{0}}}"; translator.LaTeXFunctions.Add (cedilla); #endregion #region \={o} ō macron accent (a bar over the letter) // // \={o} ō macron accent (a bar over the letter) // LaTeXFunction_P macron = new LaTeXFunction_P(); macron.Name = "="; macron.DefaultResponse = "\\={{{0}}}"; translator.LaTeXFunctions.Add (macron); #endregion #region \b{o} o bar under the letter // // \b{o} o bar under the letter // LaTeXFunction_P b = new LaTeXFunction_P(); b.Name = "b"; b.DefaultResponse = "\\b{{{0}}}"; translator.LaTeXFunctions.Add (b); #endregion #region Ogonek // // Ogonek // LaTeXFunction_P k = new LaTeXFunction_P (); k.Name = "k"; k.DefaultResponse = "\\k{{{0}}}"; k.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "a", Response = "ą" }); k.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "A", Response = "Ą" }); k.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "e", Response = "ę" }); k.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "E", Response = "Ę" }); translator.LaTeXFunctions.Add (k); #endregion #region Ł // // Ł // LaTeXFunction_N l = new LaTeXFunction_N (); l.Name = "l"; l.DefaultResponse = "ł"; translator.LaTeXFunctions.Add (l); LaTeXFunction_N L = new LaTeXFunction_N (); L.Name = "L"; L.DefaultResponse = "Ł"; translator.LaTeXFunctions.Add (L); #endregion #region dot // // Kropka nad literą // LaTeXFunction_P dot = new LaTeXFunction_P (); dot.Name = "."; dot.DefaultResponse = "\\.{{{0}}}"; dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "a", Response = "ȧ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "A", Response = "Ȧ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "b", Response = "ḃ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "B", Response = "Ḃ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "c", Response = "ċ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "C", Response = "Ċ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "d", Response = "ḋ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "D", Response = "Ḋ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "e", Response = "ė" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "E", Response = "Ė" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "f", Response = "ḟ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "F", Response = "Ḟ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "g", Response = "ġ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "G", Response = "Ġ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "h", Response = "ḣ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "H", Response = "Ḣ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "I", Response = "İ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "m", Response = "ṁ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "M", Response = "Ṁ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "n", Response = "ṅ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "N", Response = "Ṅ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "o", Response = "ȯ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "O", Response = "Ȯ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "p", Response = "ṗ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "P", Response = "Ṗ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "r", Response = "ṙ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "R", Response = "Ṙ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "s", Response = "ṡ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "S", Response = "Ṡ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "t", Response = "ṫ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "T", Response = "Ṫ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "w", Response = "ẇ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "W", Response = "Ẇ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "x", Response = "ẋ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "X", Response = "Ẋ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "y", Response = "ẏ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "Y", Response = "Ẏ" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "z", Response = "ż" }); dot.Responses.Add (new LaTeXFunction_P.OneParameterResponse{ Input = "Z", Response = "Ż" }); translator.LaTeXFunctions.Add (dot); #endregion #region \d{u} ụ dot under the letter // // \d{u} ụ dot under the letter // LaTeXFunction_P d = new LaTeXFunction_P(); d.Name = "d"; d.DefaultResponse = "\\d{{{0}}}"; translator.LaTeXFunctions.Add (d); #endregion #region \r{a} å ring over the letter (for å there is also the special command \aa) // // \r{a} å ring over the letter (for å there is also the special command \aa) // LaTeXFunction_P r = new LaTeXFunction_P(); r.Name = "r"; r.DefaultResponse = "\\r{{{0}}}"; translator.LaTeXFunctions.Add (r); #endregion #region u{o} ŏ breve over the letter // // \u{o} ŏ breve over the letter // LaTeXFunction_P u = new LaTeXFunction_P(); u.Name = "u"; u.DefaultResponse = "\\u{{{0}}}"; translator.LaTeXFunctions.Add (u); #endregion #region \v{s} š caron/háček ("v") over the letter // // \v{s} š caron/háček ("v") over the letter // LaTeXFunction_P v = new LaTeXFunction_P(); v.Name = "v"; v.DefaultResponse = "\\v{{{0}}}"; translator.LaTeXFunctions.Add (v); #endregion #region \t{oo} o͡o "tie" (inverted u) over the two letters // // \t{oo} o͡o "tie" (inverted u) over the two letters // LaTeXFunction_P t = new LaTeXFunction_P(); t.Name = "t"; t.DefaultResponse = "\\t{{{0}}}"; translator.LaTeXFunctions.Add (t); #endregion #region \o ø slashed o (o with stroke) // // \o ø slashed o (o with stroke) // LaTeXFunction_N o = new LaTeXFunction_N(); o.Name = "o"; o.DefaultResponse = "ø"; translator.LaTeXFunctions.Add (o); LaTeXFunction_N O = new LaTeXFunction_N(); O.Name = "O"; O.DefaultResponse = "Ø"; translator.LaTeXFunctions.Add (O); #endregion }
public static void SetBasicTranslatorOptions(BibTeX.Translator.BibTeXTranslator translator) { translator.ExecuteMath = BibTeXTranslator.MathExecutionType.NoIngeretion; translator.RemoveBracesInMathMode = false; }