Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        /// <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 = "&middot;";
            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;
 }