imbSCI.BibTex – a library for BibTex format

After evaluating existing BibTex libraries for C# .NET, I decided to make my own. The most promising one (https://github.com/MaikelH/BibtexLibrary) proved to be incredibly show and buggy, once I tried to load a large BibTex file, exported from Mendeley Desktop. Therefore, I made imbSCI.BibTex from scratch, expanding functionality beyond what was provided by other open source projects.

GitHub:

https://github.com/gorangrubic/imbSCI.Standard/tree/master/imbSCI.BibTex

NuGet:

https://www.nuget.org/packages/imbSCI.BibTex/0.9.5

 

BibTex Library – exported Excel

 

imbSCI.BibTex is a comprehensive BibTex format API, allowing you to:

  • Load, combine, modify and save BibTex citation definitions
  • Access BibTex entries via value pair dictionaries (auto-discovery of entry fields) or via strong typed class
  • Extend basic BibTexEntryModel class to gain support less popular and/or special application BibTex tags
  • Generate Excel spreadsheet and CSV data table export, with data from BibTex file(s)
  • High-level, single-call citation report generation, using one or all BibTex files from a directory
  • Encoding of LaTeXLaTeX (/ˈlɑːtɛx/ LAH-tekh, обично се изговара као /ˈlɑːtɛk/ LAH-tek или /ˈleɪtɛk/ LAY-tek,[1] стилизован као  {\displaystyle \mathrm {L\!\!^{{}_{\scriptstyle A}}\!\!\!\!\!\;\;T\!_{\displaystyle E}\!X} }, и скраћено Лампорт Текс) је описни језик и систем за припрему докумената.[2] Разликује се од типичних процесора за обраду текста као што су Microsoft Word, LibreOffice и Apple Pages у ком писац користи обичан текст за разлику од форматираног текста, ослањајући се на означавање... symbols to UTF-8 equivalents, and vice versa
  • Fast parsing, using multi-threading and compiled Regex queries
  • Generation of BibTex format output

 

One of example methods:

using imbSCI.Core.extensions.text;
using imbSCI.Core.style.preset;
using imbSCI.Data.enums.fields;
using imbSCI.DataComplex.data;
using imbSCI.DataComplex.extensions.data.formats;
using imbSCI.DataComplex.tables;

public class BibTexExamples : TestMicroEnvironmentBase

    public void Example3_LoadAndExportToExcel_ShortWay()
    {
        // Example 3: Short way - using imbSCI find file
        String path = folderResources.findFile("S0306457309000259.bib", SearchOption.AllDirectories);

        // High-level method, creates extended version of Excel file, with additional spreadsheet for Legend and other meta information
        var reportDataTable = BibTexTools.ExportToExcel(path, notation, log);

        // Now, let's load all *.bib files
        System.Collections.Generic.List<string> paths = folderResources.findFiles("*.bib", SearchOption.AllDirectories);

        // Exports all *.bib files
        System.Collections.Generic.List<DataTableForStatistics> exports = BibTexTools.ExportToExcel(paths, notation, log, null, folderResults);

        // Printing filename and destination path, to a ILogBuilder log builder
        foreach (var export in exports)
        {
            log.log(export.TableName + " exported to: " + export.lastFilePath);
        }
    }

}

 

Spread the love