diff --git a/KNOWN_ISSUES.md b/KNOWN_ISSUES.md index 6c705d5..8b0a909 100644 --- a/KNOWN_ISSUES.md +++ b/KNOWN_ISSUES.md @@ -11,6 +11,7 @@ The interesting thing is that rendering with pdfjs (online) looks good. So maybe - items in wrong lines + numbers are not numbers [Life-Of-God-In-Soul-Of-Man](examples/Life-Of-God-In-Soul-Of-Man.pdf) - CC-NC_Leitfaden.pdf: un-verified toc entries (and/und/&... etc...) - Closed-Syllables.pdf: unverified toc entries +- Safe-Communication.pdf: One toc element is one page off (8=>9) ## Not yet reviewed test PDFS diff --git a/core/package-lock.json b/core/package-lock.json index 435192d..c47fc37 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -11,6 +11,7 @@ "license": "AGPL-3.0", "dependencies": { "@types/string-similarity": "^4.0.0", + "simple-statistics": "^7.7.0", "string-similarity": "^4.0.4" }, "devDependencies": { @@ -5463,6 +5464,14 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, + "node_modules/simple-statistics": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/simple-statistics/-/simple-statistics-7.7.0.tgz", + "integrity": "sha512-TAsZRUJ7FD/yCnm5UBgyWU7bP1gOPsw9n/dVrE8hQ+BF1zJPgDJ5X/MOnxG+HE/7nejSpJLJLdmTh7bkfsFkRw==", + "engines": { + "node": "*" + } + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -11172,6 +11181,11 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, + "simple-statistics": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/simple-statistics/-/simple-statistics-7.7.0.tgz", + "integrity": "sha512-TAsZRUJ7FD/yCnm5UBgyWU7bP1gOPsw9n/dVrE8hQ+BF1zJPgDJ5X/MOnxG+HE/7nejSpJLJLdmTh7bkfsFkRw==" + }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", diff --git a/core/package.json b/core/package.json index c8ed52e..77a4225 100644 --- a/core/package.json +++ b/core/package.json @@ -45,6 +45,7 @@ }, "dependencies": { "@types/string-similarity": "^4.0.0", + "simple-statistics": "^7.7.0", "string-similarity": "^4.0.4" } } diff --git a/core/src/FontType.ts b/core/src/FontType.ts index a0bdaeb..dbcb34c 100644 --- a/core/src/FontType.ts +++ b/core/src/FontType.ts @@ -5,18 +5,132 @@ enum FontType { BOLD_OBLIQUE = 'BOLD_OBLIQUE', } +//TODO math & quoted http://mirrors.ibiblio.org/CTAN/systems/win32/bakoma/fonts/fonts.html +// Math Italic cmmi 5 6 7 8 9 10 12 +// Math Bold Italic cmmib 5 6 7 8 9 10 +// Math Symbols cmsy 5 6 7 8 9 10 +// Math Bold Symbols cmbsy 5 6 7 8 9 10 +// Math Extension cmex 7 8 9 10 +// SansSerif Quoted cmssq 8 +// SansSerif Quoted Italic cmssqi 8 + +//TODO slanted ? + export default FontType; +const boldTypeFragments = [ + 'bold', + 'heavy', + 'cmb', + 'cmbx', + 'cmbsy', + 'cmssbx', + 'logobf', + 'lcmssb', + 'eufb', + 'eurb', + 'eusb', + 'cmcbx', + 'cmcb', + 'cmcbxsl', + 'cmcssbx', + 'ecbl', + 'tcbl', + 'ecbx', + 'tcbx', + 'ecrb', + 'tcrb', + 'ecxc', + 'ecoc', + 'ecsx', + 'tcsx', + 'labl', + 'labx', + 'larb', + 'laxc', + 'laoc', + 'lasx', + 't1bx', + 't1b', + 't1bxsl', + 't1ssbx', + 't2bx', + 't2b', + 't2ssbx', +]; +const obliqueTypeFragments = [ + 'oblique', + 'italic', + 'cmti', + 'cmmi', + 'cmu', + 'cmitt', + 'cmssi', + 'cmssqi', + 'cmfi', + 'lcmssi', + 'cmcti', + 'cmcbxti', + 'cmcitt', + 'cmcssi', + 'cmcssqi', + 'ccti', + 'eoti', + 'toti', + 'ecti', + 'tcti', + 'ecci', + 'tcci', + 'ecui', + 'tcui', + 'ecit', + 'tcit', + 'ecvi', + 'tcvi', + 'lati', + 'laci', + 'laui', + 'lait', + 'lavi', + 't1ti', + 't1itt', + 't1ssi', + 't2ti', + 't2itt', + 't2ssi', +]; + +const boldAndObliqueTypeFragments = [ + 'cmmib', + 'cmbxti', + 'ecbi', + 'tcbi', + 'ecso', + 'tcso', + 'labi', + 'laso', + 't1bxti', + 't2bxti', +]; + namespace FontType { export function declaredFontTypes(fontName: string): FontType[] { const fontNameLowerCase = fontName.toLowerCase(); - const bold = fontNameLowerCase.includes('bold') || fontNameLowerCase.includes('heavy'); - const italic = fontNameLowerCase.includes('oblique') || fontNameLowerCase.includes('italic'); + const boldAndOblique = boldAndObliqueTypeFragments.find((fragment) => fontNameLowerCase.includes(fragment)); + let bold: boolean; + let oblique: boolean; + if (boldAndOblique) { + bold = true; + oblique = true; + } else { + bold = !!boldTypeFragments.find((fragment) => fontNameLowerCase.includes(fragment)); + oblique = !!obliqueTypeFragments.find((fragment) => fontNameLowerCase.includes(fragment)); + } const fontTypes: FontType[] = []; if (bold) { fontTypes.push(FontType.BOLD); } - if (italic) { + if (oblique) { fontTypes.push(FontType.OBLIQUE); } return fontTypes; diff --git a/core/src/support/items.ts b/core/src/support/items.ts index d94db50..d6959d6 100644 --- a/core/src/support/items.ts +++ b/core/src/support/items.ts @@ -16,6 +16,10 @@ export function getText(item: Item): string { return get(item, 'str'); } +export function joinText(items: Item[], joinCharacter: string): string { + return items.map((item) => getText(item)).join(joinCharacter); +} + export function getFontName(fontMap: Map, item: Item): string { const fontId = item.data['fontName']; const fontObject = fontMap.get(fontId); diff --git a/core/src/support/stringFunctions.ts b/core/src/support/stringFunctions.ts index fbb84b6..292dc8d 100644 --- a/core/src/support/stringFunctions.ts +++ b/core/src/support/stringFunctions.ts @@ -1,9 +1,11 @@ import { assert } from '../assert'; -const TAB_CHAR_CODE = 9; -const WHITESPACE_CHAR_CODE = 32; -const MIN_DIGIT_CHAR_CODE = 48; -const MAX_DIGIT_CHAR_CODE = 57; +export const TAB_CHAR_CODE = 9; +export const WHITESPACE_CHAR_CODE = 32; +export const MIN_DIGIT_CHAR_CODE = 48; +export const MAX_DIGIT_CHAR_CODE = 57; +export const PERIOD_CHAR_CODES = [46, 190]; +export const DASHS_CHAR_CODES = [45, 189, 8211]; export function isDigit(charCode: number): boolean { return charCode >= MIN_DIGIT_CHAR_CODE && charCode <= MAX_DIGIT_CHAR_CODE; @@ -22,9 +24,11 @@ export function filterOutDigits(text: string): string { } export function filterOutWhitespaces(text: string): string { - return String.fromCharCode( - ...toCharcodes(text).filter((code) => code != TAB_CHAR_CODE && code != WHITESPACE_CHAR_CODE), - ); + return filterOut(text, [TAB_CHAR_CODE, WHITESPACE_CHAR_CODE]); +} + +export function filterOut(text: string, codes: number[]): string { + return String.fromCharCode(...toCharcodes(text).filter((code) => !codes.includes(code))); } export function extractNumbers(text: string): number[] { diff --git a/core/src/transformer/CacluclateStatistics.ts b/core/src/transformer/CacluclateStatistics.ts index f86edc1..2196b21 100644 --- a/core/src/transformer/CacluclateStatistics.ts +++ b/core/src/transformer/CacluclateStatistics.ts @@ -10,6 +10,8 @@ import { groupByPage, onlyUniques } from '../support/groupingUtils'; import { flatten } from '../support/functional'; import { extractNumbers } from '../support/stringFunctions'; +import { median } from 'simple-statistics'; + export const MIN_X = new GlobalDefinition('minX'); export const MAX_X = new GlobalDefinition('maxX'); export const MIN_Y = new GlobalDefinition('minY'); @@ -42,6 +44,8 @@ export default class CalculateStatistics extends ItemTransformer { } transform(context: TransformContext, items: Item[]): ItemResult { + const heights = items.map((item) => item.data['height'] as number); + const mostUsedByMedian = median(heights); // const heightToOccurrence: { [key: string]: number } = {}; const heightToOccurrence = {}; const fontToOccurrence = {}; @@ -116,7 +120,7 @@ export default class CalculateStatistics extends ItemTransformer { items: items, globals: [ MAX_HEIGHT.value(maxHeight), - MOST_USED_HEIGHT.value(mostUsedHeight), + MOST_USED_HEIGHT.value(mostUsedByMedian), MIN_X.value(minX), MAX_X.value(maxX), MIN_Y.value(minY), diff --git a/core/src/transformer/DetectToc.ts b/core/src/transformer/DetectToc.ts index dfafc30..d61b060 100644 --- a/core/src/transformer/DetectToc.ts +++ b/core/src/transformer/DetectToc.ts @@ -1,3 +1,5 @@ +import { compareTwoStrings } from 'string-similarity'; + import ItemTransformer from './ItemTransformer'; import GlobalDefinition from '../GlobalDefinition'; import Item from '../Item'; @@ -6,17 +8,28 @@ import TransformContext from './TransformContext'; import LineItemMerger from '../debug/LineItemMerger'; import { groupByLine, groupByPage, onlyUniques, transformGroupedByPage } from '../support/groupingUtils'; import { MOST_USED_HEIGHT, PAGE_MAPPING } from './CacluclateStatistics'; -import { extractEndingNumber, filterOutWhitespaces } from '../support/stringFunctions'; +import { + extractEndingNumber, + filterOut, + filterOutWhitespaces, + DASHS_CHAR_CODES, + TAB_CHAR_CODE, + WHITESPACE_CHAR_CODE, + PERIOD_CHAR_CODES, +} from '../support/stringFunctions'; import ItemType from '../ItemType'; import { numbersAreConsecutive } from '../support/numberFunctions'; import TOC, { TocEntry } from '../TOC'; import FontType from '../FontType'; import { flatten, groupBy } from '../support/functional'; -import { getHeight, getText, getFontName, itemWithType } from '../support/items'; +import { getHeight, getText, getFontName, itemWithType, joinText } from '../support/items'; const config = { // How many characters a line with a ending number needs to have minimally to be a valid link - linkMinLength: 5, + linkMinLength: 4, + + // How much bigger (height) then a 'normal' text a headline must be + minHeadlineDistance: 1.5, }; export const TOC_GLOBAL = new GlobalDefinition('toc'); @@ -66,6 +79,7 @@ export default class DetectToc extends ItemTransformer { context.fontMap, inputItems, mostUsedHeight, + rawEntry.linkedPage, rawEntry.linkedPage - pageMapping.pageFactor, rawEntry.entryLines, ); @@ -90,7 +104,10 @@ export default class DetectToc extends ItemTransformer { } return item; }), - messages: [`Detected ${tocEntries.length} TOC entries`], + messages: [ + `Detected ${tocEntries.length} TOC entries`, + `Verified ${tocEntries.filter((entry) => entry.verified).length} / ${tocEntries.length}`, + ], globals: [TOC_GLOBAL.value(new TOC(tocArea.pages, tocEntries))], }; } @@ -250,33 +267,87 @@ function findHeadline( items: Item[], mostUsedHeight: number, targetPage: number, + targetPageIndex: number, entryLines: Item[][], ): string | undefined { - const tocEntryText = normalizeHeadlineChars( - entryLines.map((lineItems) => lineItems.map((item) => getText(item)).join('')).join(''), - ); - const pageItems = items.filter((item) => item.page == targetPage); - const possibleHeadlines = pageItems.filter( - (item) => - getHeight(item) > mostUsedHeight + config.minHeadlineDistance || - FontType.declaredFontTypes(getFontName(fontMap, item)).includes(FontType.BOLD), - ); - let hits = possibleHeadlines.filter((item) => { - return tocEntryText.includes(normalizeHeadlineChars(getText(item))); - }); + const tocEntryText = normalizeHeadlineChars(entryLines) + .replace(new RegExp(targetPage + '$', 'g'), '') + .replace(new RegExp('\\.\\.*$', 'g'), ''); + const pageItems = items.filter((item) => item.page == targetPageIndex); - if (hits.length > 0) { - return hits - .map((hit) => getText(hit)) - .join('') - .trim(); + const canditate = fineMatchingHeadlineCanditate(tocEntryText, pageItems, fontMap, mostUsedHeight); + if (canditate.length > 0) { + return joinText(flatten(canditate), ' ').replace(/\s+/g, ' ').trim(); } - return undefined; } -function normalizeHeadlineChars(text: string) { - return filterOutWhitespaces(text).toLowerCase(); +function fineMatchingHeadlineCanditate( + tocEntryText: string, + pageItems: Item[], + fontMap: Map, + mostUsedHeight: number, +): Item[][] { + const itemsByLine = groupByLine(pageItems); + let headlineCanditates: { score: number; lines: Item[][] }[] = []; + let currentLines: Item[][] = []; + let currentScore = 0; + let currentText = ''; + for (let lineIdx = 0; lineIdx < itemsByLine.length; lineIdx++) { + const lineItems = itemsByLine[lineIdx]; + const lineText = normalizeHeadlineChars([lineItems]); + const lineInLink = tocEntryText.includes(lineText); + const headlineSymptoms = + getHeight(lineItems[0]) >= mostUsedHeight + config.minHeadlineDistance || + FontType.declaredFontTypes(getFontName(fontMap, lineItems[0])).includes(FontType.BOLD); + if (lineInLink && headlineSymptoms) { + const newText = currentText + lineText; + const newScore = compareTwoStrings(newText, tocEntryText); + if (newScore > currentScore) { + currentScore = newScore; + currentText = newText; + currentLines.push(lineItems); + if (newScore == 1) { + return currentLines; + } + } else if (currentScore > 0.95) { + return currentLines; + } + } else { + if (currentLines.length > 0) { + headlineCanditates.push({ score: currentScore, lines: currentLines }); + currentLines = []; + currentScore = 0; + currentText = ''; + } + } + } + // console.log( + // 'headlineCanditates', + // tocEntryText, + // pageItems[0].page, + // headlineCanditates + // .sort((a, b) => a.score - b.score) + // .map((canditate) => canditate.score + ': ' + joinText(flatten(canditate.lines), '')), + // ); + headlineCanditates = headlineCanditates.filter((candidate) => candidate.score > 0.5); + if (headlineCanditates.length == 0) { + return []; + } + + return headlineCanditates.sort((a, b) => a.score - b.score)[0].lines; +} + +function normalizeHeadlineChars(lines: Item[][]) { + const text = flatten(lines) + .map((item) => getText(item)) + .join(''); + return filterOut(text, [ + WHITESPACE_CHAR_CODE, + TAB_CHAR_CODE, + ...DASHS_CHAR_CODES, + ...PERIOD_CHAR_CODES, + ]).toLowerCase(); } /** diff --git a/core/test/FontType.test.ts b/core/test/FontType.test.ts new file mode 100644 index 0000000..f8c46c3 --- /dev/null +++ b/core/test/FontType.test.ts @@ -0,0 +1,28 @@ +import FontType from 'src/FontType'; + +test('descriptive names', async () => { + expect(FontType.declaredFontTypes('')).toEqual([]); + expect(FontType.declaredFontTypes('JBRMKS+Helvetica')).toEqual([]); + expect(FontType.declaredFontTypes('OMUGKQ+Helvetica-Bold')).toEqual([FontType.BOLD]); + expect(FontType.declaredFontTypes('SVUOCV+Helvetica-Oblique')).toEqual([FontType.OBLIQUE]); + expect(FontType.declaredFontTypes('JUJONH+Helvetica-BoldOblique')).toEqual([FontType.BOLD, FontType.OBLIQUE]); +}); + +// See http://mirrors.ibiblio.org/CTAN/systems/win32/bakoma/fonts/fonts.html +test('ATM Compatible Postscript Type 1', async () => { + expect(FontType.declaredFontTypes('')).toEqual([]); + expect(FontType.declaredFontTypes('BBXMCN+CMR9')).toEqual([]); + expect(FontType.declaredFontTypes('EFUEQI+CMR10')).toEqual([]); + expect(FontType.declaredFontTypes('JZXNAL+CMCSC10')).toEqual([]); + expect(FontType.declaredFontTypes('ZYSMDY+CMBX10')).toEqual([FontType.BOLD]); + expect(FontType.declaredFontTypes('AENRCE+CMBX12')).toEqual([FontType.BOLD]); + expect(FontType.declaredFontTypes('HENPPA+BitstreamCyberbit-Roman')).toEqual([]); + expect(FontType.declaredFontTypes('GHPDYG+CMSY10')).toEqual([]); + expect(FontType.declaredFontTypes('VKLUIG+CMTT9')).toEqual([]); + expect(FontType.declaredFontTypes('KSVJZ+CMTI10')).toEqual([FontType.OBLIQUE]); + expect(FontType.declaredFontTypes('QCQOVJ+CMTT10')).toEqual([]); + expect(FontType.declaredFontTypes('ASZLVZ+BitstreamCyberbit-Roman')).toEqual([]); + expect(FontType.declaredFontTypes('KFYFQJ+CMMI10')).toEqual([FontType.OBLIQUE]); + expect(FontType.declaredFontTypes('GYUWCJ+CMMIB10')).toEqual([FontType.BOLD, FontType.OBLIQUE]); + expect(FontType.declaredFontTypes('OUVHFK+CMR8')).toEqual([]); +}); diff --git a/examples/Achieving-The-Paris-Climate-Agreement/calculateStatistics.json b/examples/Achieving-The-Paris-Climate-Agreement/calculateStatistics.json index 7de474c..a33de69 100644 --- a/examples/Achieving-The-Paris-Climate-Agreement/calculateStatistics.json +++ b/examples/Achieving-The-Paris-Climate-Agreement/calculateStatistics.json @@ -28,7 +28,7 @@ ], "globals": { "maxHeight": 66, - "mostUsedHeight": 8, + "mostUsedHeight": 8.5, "minX": 41.38153078000005, "maxX": 400.56930541, "minY": 36.71720123, diff --git a/examples/Achieving-The-Paris-Climate-Agreement/compactLines.json b/examples/Achieving-The-Paris-Climate-Agreement/compactLines.json index ca74f6e..8f72a7f 100644 --- a/examples/Achieving-The-Paris-Climate-Agreement/compactLines.json +++ b/examples/Achieving-The-Paris-Climate-Agreement/compactLines.json @@ -32,7 +32,7 @@ ], "globals": { "maxHeight": 66, - "mostUsedHeight": 8, + "mostUsedHeight": 8.5, "minX": 41.38153078000005, "maxX": 400.56930541, "minY": 36.71720123, diff --git a/examples/Achieving-The-Paris-Climate-Agreement/detectTOC.json b/examples/Achieving-The-Paris-Climate-Agreement/detectTOC.json index 3f99151..91d0d1e 100644 --- a/examples/Achieving-The-Paris-Climate-Agreement/detectTOC.json +++ b/examples/Achieving-The-Paris-Climate-Agreement/detectTOC.json @@ -35,7 +35,7 @@ ], "globals": { "maxHeight": 66, - "mostUsedHeight": 8, + "mostUsedHeight": 8.5, "minX": 41.38153078000005, "maxX": 400.56930541, "minY": 36.71720123, @@ -85,8 +85,8 @@ }, { "level": 0, - "text": "2", - "verified": true, + "text": "Fig. 4.2Land-use-related CO2 emission and sequestration rates", + "verified": false, "linkedPage": 82 }, { @@ -163,8 +163,8 @@ }, { "level": 0, - "text": "erahsnoitarenegreoplabolgegareva", - "verified": true, + "text": "Fig. 5.5Development of the average global RES shares of future heat generation options in ‘Industry’ in the 2.0 °C scenario", + "verified": false, "linkedPage": 124 }, { @@ -175,8 +175,8 @@ }, { "level": 0, - "text": "6.1", - "verified": true, + "text": "Fig. 6.1World final energy use by transport mode in 2015", + "verified": false, "linkedPage": 133 }, { @@ -211,20 +211,20 @@ }, { "level": 0, - "text": "The 2.0 °C Scenario", - "verified": true, + "text": "Fig. 6.7Battery and trolley electric bus share of total bus pkm in the 2.0 °C Scenario (left) and fuel-cell electric bus share of total bus pkm in the 2.0 °C Scenario (right)", + "verified": false, "linkedPage": 138 }, { "level": 0, - "text": "The 2.0 °C Scenario", - "verified": true, + "text": "Fig. 6.8Electrification of passenger rail (left) and freight rail (right) under the 2.0 °C Scenario (in PJ of final energy demand)", + "verified": false, "linkedPage": 138 }, { "level": 0, - "text": "0", - "verified": true, + "text": "Fig. 6.9Electricity-performed pkm in domestic aviation under the 2.0 °C Scenario", + "verified": false, "linkedPage": 139 }, { @@ -313,8 +313,8 @@ }, { "level": 0, - "text": "2.0°°C", - "verified": true, + "text": "Fig. 6.24World pkm development in the 2.0 °C Scenario", + "verified": false, "linkedPage": 152 }, { @@ -325,26 +325,26 @@ }, { "level": 0, - "text": "mm", - "verified": true, + "text": "Fig. 6.26World tkm development in all scenarios", + "verified": false, "linkedPage": 154 }, { "level": 0, - "text": "mm", - "verified": true, + "text": "Fig. 6.27Regional tkm development", + "verified": false, "linkedPage": 154 }, { "level": 0, - "text": "tkm", - "verified": true, + "text": "Fig. 6.28World tkm development in the 5.0 °C, 2.0 °C, and 1.5 °C Scenarios", + "verified": false, "linkedPage": 156 }, { "level": 0, - "text": "tkm", - "verified": true, + "text": "Fig. 6.29Road tkm in the 2.0 °C Scenario", + "verified": false, "linkedPage": 156 }, { @@ -361,8 +361,8 @@ }, { "level": 0, - "text": "Plants", - "verified": true, + "text": "Fig. 7.1Electricity infrastructure in Africa—power plants (over 1 MW) and high-voltage transmission lines", + "verified": false, "linkedPage": 166 }, { @@ -391,637 +391,637 @@ }, { "level": 0, - "text": "8.1CCCFig. 8.1", + "text": "Fig. 8.1 Global: projection of final energy (per $ GDP) intensity by scenario", "verified": true, "linkedPage": 176 }, { "level": 0, - "text": "Fig. 8.2", + "text": "Fig. 8.2 Global: projection of total final energy demand by sector in the scenarios (without non-", "verified": true, "linkedPage": 177 }, { "level": 0, - "text": "Fig. 8.3", + "text": "Fig. 8.3 Global: development of gross electricity demand by sector in the scenarios", "verified": true, "linkedPage": 178 }, { "level": 0, - "text": "Fig. 8.4", + "text": "Fig. 8.4 Global: development of final energy demand for transport by mode in the scenarios", "verified": true, "linkedPage": 179 }, { "level": 0, - "text": "Fig. 8.5", + "text": "Fig. 8.5 Global: development of heat demand by sector in the scenarios", "verified": true, "linkedPage": 179 }, { "level": 0, - "text": "0 0Fig. 8.6", + "text": "Fig. 8.6 Global: development of the final energy demand by sector in the scenarios", "verified": true, "linkedPage": 180 }, { "level": 0, - "text": "yFig. 8.7", + "text": "Fig. 8.7 Global: development of electricity-generation structure in the scenarios", "verified": true, "linkedPage": 181 }, { "level": 0, - "text": "Fig. 8.8", + "text": "Fig. 8.8 Global: development of total electricity supply costs and specific electricity generation", "verified": true, "linkedPage": 182 }, { "level": 0, - "text": "Fig. 8.9", + "text": "Fig. 8.9 Global: investment shares for power generation in the scenarios", "verified": true, "linkedPage": 183 }, { "level": 0, - "text": "0CCCCCCCCCCrdEl heatingr heatingsFig. 8.10", + "text": "Fig. 8.10 Global: development of heat supply by energy carrier in the scenarios", "verified": true, "linkedPage": 184 }, { "level": 0, - "text": "Fig. 8.11", + "text": "Fig. 8.11 Global: development of investment in renewable heat-generation technologies in the", "verified": true, "linkedPage": 186 }, { "level": 0, - "text": "2CCCCCCCCCCrNaral sFig. 8.12", + "text": "Fig. 8.12 Global: final energy consumption by transport in the scenarios", "verified": true, "linkedPage": 187 }, { "level": 0, - "text": "0 02015CO2SavingsFig. 8.13", + "text": "Fig. 8.13 Global: development of CO 2 emissions by sector and cumulative CO 2 emissions (since", "verified": true, "linkedPage": 188 }, { "level": 0, - "text": "Fig. 8.14", + "text": "Fig. 8.14 Global: projection of total primary energy demand (PED) by energy carrier in the", "verified": true, "linkedPage": 189 }, { "level": 0, - "text": "00Fig. 8.15", + "text": "Fig. 8.15 Global: scenario of bunker fuel demand for aviation and navigation and the resulting", "verified": true, "linkedPage": 190 }, { "level": 0, - "text": "Fig. 8.16", + "text": "Fig. 8.16 Development of maximum load in 10 world regions in 2020, 2030, and 2050 in the", "verified": true, "linkedPage": 202 }, { "level": 0, - "text": "rFig. 8.17", + "text": "Fig. 8.17 OECD North America: development of final energy demand by sector in the scenarios", "verified": true, "linkedPage": 210 }, { "level": 0, - "text": "Fig. 8.18", + "text": "Fig. 8.18 OECD North America: development of electricity-generation structure in the scenarios", "verified": true, "linkedPage": 212 }, { "level": 0, - "text": "Fig. 8.19", + "text": "Fig. 8.19 OECD North America: development of total electricity supply costs and specific", "verified": true, "linkedPage": 213 }, { "level": 0, - "text": "Fig. 8.20", + "text": "Fig. 8.20 OECD North America: investment shares for power generation in the scenarios", "verified": true, "linkedPage": 214 }, { "level": 0, - "text": "dFig. 8.21", + "text": "Fig. 8.21 OECD North America: development of heat supply by energy carrier in the scenarios", "verified": true, "linkedPage": 215 }, { "level": 0, - "text": "Fig. 8.22", + "text": "Fig. 8.22 OECD North America: development of investments in renewable heat generation tech -", "verified": true, "linkedPage": 216 }, { "level": 0, - "text": "2Fig. 8.23", + "text": "Fig. 8.23 OECD North America: final energy consumption by transport in the scenarios", "verified": true, "linkedPage": 218 }, { "level": 0, - "text": "00150200000000000CCCCCCCCCC2015CO2 SavingsFig. 8.24", - "verified": true, + "text": "Fig. 8.24OECD North America: development of CO2 emissions by sector and cumulative CO2 emissions (after 2015) in the scenarios (‘Savings’ = reduction compared with the 5.0 °C Scenario)", + "verified": false, "linkedPage": 219 }, { "level": 0, - "text": "0Fig. 8.25", + "text": "Fig. 8.25 OECD North America: projection of total primary energy demand (PED) by energy", "verified": true, "linkedPage": 220 }, { "level": 0, - "text": "CCCCCCCCCCryFig. 8.26", + "text": "Fig. 8.26 Latin America: development of final energy demand by sector in the scenarios", "verified": true, "linkedPage": 231 }, { "level": 0, - "text": "Fig. 8.27", + "text": "Fig. 8.27 Latin America: development of electricity-generation structure in the scenarios", "verified": true, "linkedPage": 232 }, { "level": 0, - "text": "238cton Fig. 8.28", + "text": "Fig. 8.28 Latin America: development of total electricity supply costs and specific electricity-", "verified": true, "linkedPage": 233 }, { "level": 0, - "text": "Fig. 8.29", + "text": "Fig. 8.29 Latin America: investment shares for power generation in the scenarios", "verified": true, "linkedPage": 235 }, { "level": 0, - "text": "00000000CCCCCCCCCC0rdElicheatinglar heatingsFig. 8.30", + "text": "Fig. 8.30 Latin America: development of heat supply by energy carrier in the scenarios", "verified": true, "linkedPage": 236 }, { "level": 0, - "text": "Fig. 8.31", + "text": "Fig. 8.31 Latin America: development of investments for renewable heat generation technologies", "verified": true, "linkedPage": 237 }, { "level": 0, - "text": "rFig. 8.32", + "text": "Fig. 8.32 Latin America: final energy consumption by transport in the scenarios", "verified": true, "linkedPage": 239 }, { "level": 0, - "text": "0204002015cumulated emissions COemi2 ssions SavingsFig. 8.33", + "text": "Fig. 8.33 Latin America: development of CO 2 emissions by sector and cumulative CO 2 emissions", "verified": true, "linkedPage": 240 }, { "level": 0, - "text": "Fig. 8.34", + "text": "Fig. 8.34 Latin America: projection of total primary energy demand (PED) by energy carrier in", "verified": true, "linkedPage": 241 }, { "level": 0, - "text": "CCCCCCCCCCrssFig. 8.35", - "verified": true, + "text": "Fig. 8.35OECD Europe: development in the scenarios", + "verified": false, "linkedPage": 251 }, { "level": 0, - "text": "Fig. 8.36268", + "text": "Fig. 8.36 OECD Europe: development of electricity-generation structure in the scenarios", "verified": true, "linkedPage": 253 }, { "level": 0, - "text": "28Fig. 8.37", + "text": "Fig. 8.37 OECD Europe: development of total electricity supply costs and specific electricity-", "verified": true, "linkedPage": 253 }, { "level": 0, - "text": "Fig. 8.38", + "text": "Fig. 8.38 OECD Europe: investment shares for power generation in the scenarios", "verified": true, "linkedPage": 255 }, { "level": 0, - "text": "CCCCCCCCCCggsFig. 8.39", + "text": "Fig. 8.39 OECD Europe: development of heat supply by energy carrier in the scenarios", "verified": true, "linkedPage": 256 }, { "level": 0, - "text": "Fig. 8.40", + "text": "Fig. 8.40 OECD Europe: development of investments for renewable heat-generation technologies", "verified": true, "linkedPage": 257 }, { "level": 0, - "text": "CCCCCCCCCCsFig. 8.41", + "text": "Fig. 8.41 OECD Europe: final energy consumption by transport in the scenarios", "verified": true, "linkedPage": 259 }, { "level": 0, - "text": "02060 00000000CCCCCCCCCC20150emissions COemissions 2 SavingsCCFig. 8.42", + "text": "Fig. 8.42 OECD Europe: development of CO 2 emissions by sector and cumulative CO 2 emissions", "verified": true, "linkedPage": 260 }, { "level": 0, - "text": "CCCCCCCCCCdsrFig. 8.43", + "text": "Fig. 8.43 OECD Europe: projection of total primary energy demand (PED) by energy carrier in", "verified": true, "linkedPage": 261 }, { "level": 0, - "text": "AfricaCCCCCCCCCCyFig. 8.44", + "text": "Fig. 8.44 Africa: development of final energy demand by sector in the scenarios", "verified": true, "linkedPage": 269 }, { "level": 0, - "text": "CCCCCCCCCCPolFig. 8.45", + "text": "Fig. 8.45 Africa: development of electricity-generation structure in the scenarios", "verified": true, "linkedPage": 271 }, { "level": 0, - "text": "Fig. 8.46", + "text": "Fig. 8.46 Africa: development of total electricity supply costs and specific electricity-generation", "verified": true, "linkedPage": 272 }, { "level": 0, - "text": "CCCCCCCCCCgsgsFig. 8.47", + "text": "Fig. 8.47 Africa: investment shares for power generation in the scenarios", "verified": true, "linkedPage": 274 }, { "level": 0, - "text": "CCCCCCCCCCgsgsFig. 8.48", + "text": "Fig. 8.48 Africa: development of heat supply by energy carrier in the scenarios", "verified": true, "linkedPage": 274 }, { "level": 0, - "text": "Fig. 8.49", + "text": "Fig. 8.49 Africa: development of investments for renewable heat-generation technologies in the", "verified": true, "linkedPage": 276 }, { "level": 0, - "text": "0000000CCCCCCCCCC0nsFig. 8.50", + "text": "Fig. 8.50 Africa: final energy consumption by transport in the scenarios", "verified": true, "linkedPage": 278 }, { "level": 0, - "text": "020 0CCCCCCCCCC2010emissions COemissions 2 SavingsCFig. 8.51 00CCCCCCCCCC20150s", + "text": "Fig. 8.51 Africa: development of CO 2 emissions by sector and cumulative CO 2 emissions (after", "verified": true, "linkedPage": 279 }, { "level": 0, - "text": "CCCCCCCCCC522 sCCCCCCCCCCCsFig. 8.52", + "text": "Fig. 8.52 Africa: projection of total primary energy demand (PED) by energy carrier in the sce -", "verified": true, "linkedPage": 279 }, { "level": 0, - "text": "CCCCCCCCCCsTyFig. 8.53", + "text": "Fig. 8.53 Middle East: development of the final energy demand by sector in the scenarios", "verified": true, "linkedPage": 287 }, { "level": 0, - "text": "CCCCCCCCCCPsolFig. 8.54", + "text": "Fig. 8.54 Middle East: development of electricity-generation structure in the scenarios", "verified": true, "linkedPage": 289 }, { "level": 0, - "text": "Fig. 8.55", + "text": "Fig. 8.55 Middle East: development of total electricity supply costs and specific electricity-", "verified": true, "linkedPage": 290 }, { "level": 0, - "text": "CCCCCCCCCCsslFig. 8.56", + "text": "Fig. 8.56 Middle East: investment shares for power generation in the scenarios", "verified": true, "linkedPage": 292 }, { "level": 0, - "text": "CCCCCCCCCCysslFig. 8.57", + "text": "Fig. 8.57 Middle East: development of heat supply by energy carrier in the scenarios", "verified": true, "linkedPage": 292 }, { "level": 0, - "text": "Fig. 8.58", + "text": "Fig. 8.58 Middle East: development of investments for renewable heat-generation technologies in", "verified": true, "linkedPage": 294 }, { "level": 0, - "text": "2CCCCCCCCCCsFig. 8.59", + "text": "Fig. 8.59 Middle East: final energy consumption by transport in the scenarios", "verified": true, "linkedPage": 296 }, { "level": 0, - "text": "02060 0CCCCCCCCCC2010emissions COemissions 2 SavingsCCFig. 8.60000000CCCCCCCCCC20150sr", + "text": "Fig. 8.60 Middle East: development of CO 2 emissions by sector and cumulative CO 2 emissions", "verified": true, "linkedPage": 297 }, { "level": 0, - "text": "CCCCCCCCCC2 CCCCCCCCCCCCsrFig. 8.61", + "text": "Fig. 8.61 Middle East: projection of total primary energy demand (PED) by energy carrier in the", "verified": true, "linkedPage": 297 }, { "level": 0, - "text": "Eastern Europe/Eurasia 0 00TFig. 8.62", + "text": "Fig. 8.62 Eastern Europe/Eurasia: development of the final energy demand by sector in the", "verified": true, "linkedPage": 306 }, { "level": 0, - "text": "0000000CCCCCCCCCC0rPsorleFig. 8.63", + "text": "Fig. 8.63 Eastern Europe/Eurasia: development of electricity-generation structure in the", "verified": true, "linkedPage": 309 }, { "level": 0, - "text": "0000000CCCCCCCCCC0rPsorleFig. 8.64", + "text": "Fig. 8.64 Eastern Europe/Eurasia: development of total electricity supply costs and specific", "verified": true, "linkedPage": 309 }, { "level": 0, - "text": "Fig. 8.65", + "text": "Fig. 8.65 Eastern Europe/Eurasia: investment shares for power generation in the scenarios", "verified": true, "linkedPage": 311 }, { "level": 0, - "text": "CCCCCCCCCCnsgsFig. 8.66", + "text": "Fig. 8.66 Eastern Europe/Eurasia: development of heat supply by energy carrier in the scenarios", "verified": true, "linkedPage": 312 }, { "level": 0, - "text": "Fig. 8.67", + "text": "Fig. 8.67 Eastern Europe/Eurasia: development of investments for renewable heat-generation", "verified": true, "linkedPage": 314 }, { "level": 0, - "text": "CCCCCCCCCCysFig. 8.68", + "text": "Fig. 8.68 Eastern Europe/Eurasia: final energy consumption by transport in the scenarios", "verified": true, "linkedPage": 315 }, { "level": 0, - "text": "020 000000CCCCCCCCCC20150emissions COemissions 2 SavingsCCFig. 8.69", - "verified": true, + "text": "List of FiguresxlviiiFig. 8.69Eastern Europe/Eurasia: development of CO2 emissions by sector and cumulative CO2 emissions (after 2015) in the scenarios (‘Savings’ = reduction compared with the 5.0 °C Scenario)", + "verified": false, "linkedPage": 316 }, { "level": 0, - "text": "0CCCCCCCCCC0dsrFig. 8.70Scenario", + "text": "Fig. 8.70 Eastern Europe/Eurasia: projection of total primary energy demand (PED) by energy", "verified": true, "linkedPage": 317 }, { "level": 0, - "text": "CCCCCCCCCCrsIyyFig. 8.71Non-OECD Asia", + "text": "Fig. 8.71 Non-OECD Asia: development of the final energy demand by sector in the scenarios", "verified": true, "linkedPage": 325 }, { "level": 0, - "text": "yeFig. 8.72", + "text": "Fig. 8.72 Non-OECD Asia: development of electricity-generation structure in the scenarios", "verified": true, "linkedPage": 327 }, { "level": 0, - "text": "Fig. 8.73", + "text": "Fig. 8.73 Non-OECD Asia: development of total electricity supply costs and specific electricity", "verified": true, "linkedPage": 328 }, { "level": 0, - "text": "Fig. 8.74", + "text": "Fig. 8.74 Non-OECD Asia: investment shares for power generation in the scenarios", "verified": true, "linkedPage": 329 }, { "level": 0, - "text": "00000CCCCCCCCCC0ngsslFig. 8.75", + "text": "Fig. 8.75 Non-OECD Asia: development of heat supply by energy carrier in the scenarios", "verified": true, "linkedPage": 330 }, { "level": 0, - "text": "Fig. 8.76", + "text": "Fig. 8.76 Non-OECD Asia: development of investments for renewable heat-generation technolo -", "verified": true, "linkedPage": 332 }, { "level": 0, - "text": "CCCCCCCCCCsFig. 8.77", + "text": "Fig. 8.77 Non-OECD Asia: final energy consumption by transport in the scenarios", "verified": true, "linkedPage": 333 }, { "level": 0, - "text": "2 Emissions020 0000000CCCCCCCCCC2010emissions COemissions 2 SavingsCCFig. 8.78", + "text": "Fig. 8.78 Non-OECD Asia: development of CO 2 emissions by sector and cumulative CO 2 emis -", "verified": true, "linkedPage": 334 }, { "level": 0, - "text": "CCCCCCCCCCsFig. 8.79", + "text": "Fig. 8.79 Non-OECD Asia: projection of total primary energy demand (PED) by energy carrier in", "verified": true, "linkedPage": 335 }, { "level": 0, - "text": "India 0000000000 000000000CCCCCCCCCC0y 0Fig. 8.80", + "text": "Fig. 8.80 India: development of final energy demand by sector in the scenarios", "verified": true, "linkedPage": 345 }, { "level": 0, - "text": "eFig. 8.81", + "text": "Fig. 8.81 India: development of electricity-generation structure in the scenarios", "verified": true, "linkedPage": 347 }, { "level": 0, - "text": "Fig. 8.82", + "text": "Fig. 8.82 India: development of total electricity supply costs and specific electricity generation", "verified": true, "linkedPage": 348 }, { "level": 0, - "text": "Fig. 8.83", + "text": "Fig. 8.83 India: investment shares for power generation in the scenarios", "verified": true, "linkedPage": 349 }, { "level": 0, - "text": "00CCCCCCCCCC0gsgsFig. 8.84", + "text": "Fig. 8.84 India: development of heat supply by energy carrier in the scenarios", "verified": true, "linkedPage": 350 }, { "level": 0, - "text": "2Fig. 8.85", + "text": "Fig. 8.85 India: development of investments for renewable heat-generation technologies in the", "verified": true, "linkedPage": 352 }, { "level": 0, - "text": "Fig. 8.86", + "text": "Fig. 8.86 India: final energy consumption by transport in the scenarios", "verified": true, "linkedPage": 353 }, { "level": 0, - "text": "020 02015CO2SavingsFig. 8.87", + "text": "Fig. 8.87 India: development of CO 2 emissions by sector and cumulative CO 2 emissions (after", "verified": true, "linkedPage": 354 }, { "level": 0, - "text": "CCCCCCCCCCsrFig. 8.88", + "text": "Fig. 8.88 India: projection of total primary energy demand (PED) by energy carrier in the sce -", "verified": true, "linkedPage": 355 }, { "level": 0, - "text": "ChinaFig. 8.89", + "text": "Fig. 8.89 China: development of final energy demand by sector in the scenarios", "verified": true, "linkedPage": 361 }, { "level": 0, - "text": "0lFig. 8.90", + "text": "Fig. 8.90 China: development of electricity-generation structure in the scenarios", "verified": true, "linkedPage": 363 }, { "level": 0, - "text": "Fig. 8.91", + "text": "Fig. 8.91 China: development of total electricity supply costs and specific electricity-generation", "verified": true, "linkedPage": 364 }, { "level": 0, - "text": "Fig. 8.92", + "text": "Fig. 8.92 China: investment shares for power generation in the scenarios", "verified": true, "linkedPage": 366 }, { "level": 0, - "text": "Fig. 8.93", + "text": "Fig. 8.93 China: development of heat supply by energy carrier in the scenarios", "verified": true, "linkedPage": 366 }, { "level": 0, - "text": "Fig. 8.94", + "text": "Fig. 8.94 China: development of investments for renewable heat-generation technologies in the", "verified": true, "linkedPage": 369 }, { "level": 0, - "text": "0Fig. 8.95", + "text": "Fig. 8.95 China: final energy consumption by transport in the scenarios", "verified": true, "linkedPage": 370 }, { "level": 0, - "text": "0 02015CO2 SavingsFig. 8.96 0000000CCCCCCCCCC2015sr", + "text": "Fig. 8.96 China: development of CO 2 emissions by sector and cumulative CO 2 emissions (after", "verified": true, "linkedPage": 371 }, { "level": 0, - "text": "CCCCCCCCCCsrFig. 8.97", + "text": "Fig. 8.97 China: projection of total primary energy demand (PED) by energy carrier in the sce -", "verified": true, "linkedPage": 371 }, { "level": 0, - "text": "OECD PacificCCCCCCCCCCsyyFig. 8.98", + "text": "Fig. 8.98 OECD Pacific: development of final energy demand by sector in the scenarios", "verified": true, "linkedPage": 381 }, { "level": 0, - "text": "CCCCCCCCCCrPolleFig. 8.99", + "text": "Fig. 8.99 OECD Pacific: development of electricity-generation structure in the scenarios", "verified": true, "linkedPage": 383 }, { "level": 0, - "text": "Fig. 8.100", + "text": "Fig. 8.100 OECD Pacific: development of total electricity supply costs and specific electricity-", "verified": true, "linkedPage": 384 }, { "level": 0, - "text": "Fig. 8.101", + "text": "Fig. 8.101 OECD Pacific: investment shares for power generation in the scenarios", "verified": true, "linkedPage": 385 }, { "level": 0, - "text": "0Fig. 8.102", + "text": "Fig. 8.102 OECD Pacific: development of heat supply by energy carrier in the scenarios", "verified": true, "linkedPage": 386 }, { "level": 0, - "text": "Fig. 8.103", + "text": "Fig. 8.103 OECD Pacific: development of investments for renewable heat-generation technolo -", "verified": true, "linkedPage": 388 }, { "level": 0, - "text": "00000000CCCCCCCCCCysFig. 8.104", + "text": "Fig. 8.104 OECD Pacific: final energy consumption by transport in the scenarios", "verified": true, "linkedPage": 389 }, { "level": 0, - "text": "2 Emissions01020 02015CO2 SavingsFig. 8.105", + "text": "Fig. 8.105 OECD Pacific: development of CO 2 emissions by sector and cumulative CO 2 emis -", "verified": true, "linkedPage": 390 }, { "level": 0, - "text": "00CCCCCCCCCCsrFig. 8.106", + "text": "Fig. 8.106 OECD Pacific: projection of total primary energy demand (PED) by energy carrier in", "verified": true, "linkedPage": 391 }, @@ -1051,8 +1051,8 @@ }, { "level": 0, - "text": "9.5", - "verified": true, + "text": "Fig. 9.5Global gas production in 1970–2017 (BP 2018—Statistical Review)", + "verified": false, "linkedPage": 408 }, { @@ -1087,8 +1087,8 @@ }, { "level": 0, - "text": "......", - "verified": true, + "text": "Fig. 10.5Employment changes between 2015 and 2025 by occupational breakdown under the 2.0 °C Scenario", + "verified": false, "linkedPage": 433 }, { diff --git a/examples/Achieving-The-Paris-Climate-Agreement/removeRepetitiveItems.json b/examples/Achieving-The-Paris-Climate-Agreement/removeRepetitiveItems.json index 8288b2a..88165be 100644 --- a/examples/Achieving-The-Paris-Climate-Agreement/removeRepetitiveItems.json +++ b/examples/Achieving-The-Paris-Climate-Agreement/removeRepetitiveItems.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 66, - "mostUsedHeight": 8, + "mostUsedHeight": 8.5, "minX": 41.38153078000005, "maxX": 400.56930541, "minY": 36.71720123, diff --git a/examples/Achieving-The-Paris-Climate-Agreement/sortbyX.json b/examples/Achieving-The-Paris-Climate-Agreement/sortbyX.json index 2a06fcd..4ec8cc9 100644 --- a/examples/Achieving-The-Paris-Climate-Agreement/sortbyX.json +++ b/examples/Achieving-The-Paris-Climate-Agreement/sortbyX.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 66, - "mostUsedHeight": 8, + "mostUsedHeight": 8.5, "minX": 41.38153078000005, "maxX": 400.56930541, "minY": 36.71720123, diff --git a/examples/Adventures-Of-Sherlock-Holmes/calculateStatistics.json b/examples/Adventures-Of-Sherlock-Holmes/calculateStatistics.json index 8acfa35..9d51c2c 100644 --- a/examples/Adventures-Of-Sherlock-Holmes/calculateStatistics.json +++ b/examples/Adventures-Of-Sherlock-Holmes/calculateStatistics.json @@ -28,7 +28,7 @@ ], "globals": { "maxHeight": 59.7758, - "mostUsedHeight": 10, + "mostUsedHeight": 10.9091, "minX": 117.8279999999999, "maxX": 471.0319307, "minY": 95.28300000000016, diff --git a/examples/Adventures-Of-Sherlock-Holmes/compactLines.json b/examples/Adventures-Of-Sherlock-Holmes/compactLines.json index 5bfb91b..d8a49d1 100644 --- a/examples/Adventures-Of-Sherlock-Holmes/compactLines.json +++ b/examples/Adventures-Of-Sherlock-Holmes/compactLines.json @@ -32,7 +32,7 @@ ], "globals": { "maxHeight": 59.7758, - "mostUsedHeight": 10, + "mostUsedHeight": 10.9091, "minX": 117.8279999999999, "maxX": 471.0319307, "minY": 95.28300000000016, diff --git a/examples/Adventures-Of-Sherlock-Holmes/detectTOC.json b/examples/Adventures-Of-Sherlock-Holmes/detectTOC.json index e663416..3432be1 100644 --- a/examples/Adventures-Of-Sherlock-Holmes/detectTOC.json +++ b/examples/Adventures-Of-Sherlock-Holmes/detectTOC.json @@ -35,7 +35,7 @@ ], "globals": { "maxHeight": 59.7758, - "mostUsedHeight": 10, + "mostUsedHeight": 10.9091, "minX": 117.8279999999999, "maxX": 471.0319307, "minY": 95.28300000000016, @@ -51,7 +51,7 @@ "entries": [ { "level": 0, - "text": "A Scandal In BohemiaI", + "text": "A Scandal In Bohemia", "verified": true, "linkedPage": 3 }, @@ -81,43 +81,43 @@ }, { "level": 0, - "text": "The Man With The Twisted LipI", + "text": "The Man With The Twisted Lip", "verified": true, "linkedPage": 83 }, { "level": 0, - "text": "The Adventure Of The BlueCarbuncle", + "text": "The Adventure Of The Blue Carbuncle", "verified": true, "linkedPage": 100 }, { "level": 0, - "text": "The Adventure Of The SpeckledBandO", + "text": "The Adventure Of The Speckled Band", "verified": true, "linkedPage": 115 }, { "level": 0, - "text": "The Adventure Of TheEngineer’s ThumbO", + "text": "The Adventure Of The Engineer’s Thumb", "verified": true, "linkedPage": 133 }, { "level": 0, - "text": "The Adventure Of The NobleBachelorT", + "text": "The Adventure Of The Noble Bachelor", "verified": true, "linkedPage": 148 }, { "level": 0, - "text": "The Adventure Of The BerylCoronetH", + "text": "The Adventure Of The Beryl Coronet", "verified": true, "linkedPage": 164 }, { "level": 0, - "text": "The Adventure Of The CopperBeechesT", + "text": "The Adventure Of The Copper Beeches", "verified": true, "linkedPage": 182 } diff --git a/examples/Adventures-Of-Sherlock-Holmes/removeRepetitiveItems.json b/examples/Adventures-Of-Sherlock-Holmes/removeRepetitiveItems.json index 248f822..e04dfe0 100644 --- a/examples/Adventures-Of-Sherlock-Holmes/removeRepetitiveItems.json +++ b/examples/Adventures-Of-Sherlock-Holmes/removeRepetitiveItems.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 59.7758, - "mostUsedHeight": 10, + "mostUsedHeight": 10.9091, "minX": 117.8279999999999, "maxX": 471.0319307, "minY": 95.28300000000016, diff --git a/examples/Adventures-Of-Sherlock-Holmes/sortbyX.json b/examples/Adventures-Of-Sherlock-Holmes/sortbyX.json index 88c596e..25a39a7 100644 --- a/examples/Adventures-Of-Sherlock-Holmes/sortbyX.json +++ b/examples/Adventures-Of-Sherlock-Holmes/sortbyX.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 59.7758, - "mostUsedHeight": 10, + "mostUsedHeight": 10.9091, "minX": 117.8279999999999, "maxX": 471.0319307, "minY": 95.28300000000016, diff --git a/examples/Alice-In-Wonderland/calculateStatistics.json b/examples/Alice-In-Wonderland/calculateStatistics.json index d82b27a..4e71868 100644 --- a/examples/Alice-In-Wonderland/calculateStatistics.json +++ b/examples/Alice-In-Wonderland/calculateStatistics.json @@ -28,7 +28,7 @@ ], "globals": { "maxHeight": 24.787, - "mostUsedHeight": 11, + "mostUsedHeight": 11.955, "minX": 102.88399999999984, "maxX": 488.43800000000005, "minY": 95.545, diff --git a/examples/Alice-In-Wonderland/compactLines.json b/examples/Alice-In-Wonderland/compactLines.json index c7a3ea3..862861f 100644 --- a/examples/Alice-In-Wonderland/compactLines.json +++ b/examples/Alice-In-Wonderland/compactLines.json @@ -32,7 +32,7 @@ ], "globals": { "maxHeight": 24.787, - "mostUsedHeight": 11, + "mostUsedHeight": 11.955, "minX": 102.88399999999984, "maxX": 488.43800000000005, "minY": 95.545, diff --git a/examples/Alice-In-Wonderland/detectTOC.json b/examples/Alice-In-Wonderland/detectTOC.json index 7333fe6..7da2157 100644 --- a/examples/Alice-In-Wonderland/detectTOC.json +++ b/examples/Alice-In-Wonderland/detectTOC.json @@ -35,7 +35,7 @@ ], "globals": { "maxHeight": 24.787, - "mostUsedHeight": 11, + "mostUsedHeight": 11.955, "minX": 102.88399999999984, "maxX": 488.43800000000005, "minY": 95.545, @@ -51,8 +51,8 @@ "entries": [ { "level": 0, - "text": "Poem", - "verified": true, + "text": "Poem. All in the golden afternoon", + "verified": false, "linkedPage": 3 }, { diff --git a/examples/Alice-In-Wonderland/removeRepetitiveItems.json b/examples/Alice-In-Wonderland/removeRepetitiveItems.json index dda17a7..52a94c8 100644 --- a/examples/Alice-In-Wonderland/removeRepetitiveItems.json +++ b/examples/Alice-In-Wonderland/removeRepetitiveItems.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 24.787, - "mostUsedHeight": 11, + "mostUsedHeight": 11.955, "minX": 102.88399999999984, "maxX": 488.43800000000005, "minY": 95.545, diff --git a/examples/Alice-In-Wonderland/sortbyX.json b/examples/Alice-In-Wonderland/sortbyX.json index cee28de..981151e 100644 --- a/examples/Alice-In-Wonderland/sortbyX.json +++ b/examples/Alice-In-Wonderland/sortbyX.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 24.787, - "mostUsedHeight": 11, + "mostUsedHeight": 11.955, "minX": 102.88399999999984, "maxX": 488.43800000000005, "minY": 95.545, diff --git a/examples/CC-NC_Leitfaden/detectTOC.json b/examples/CC-NC_Leitfaden/detectTOC.json index 34a2a76..193c591 100644 --- a/examples/CC-NC_Leitfaden/detectTOC.json +++ b/examples/CC-NC_Leitfaden/detectTOC.json @@ -63,121 +63,121 @@ }, { "level": 0, - "text": "1Was versteht man unter Open COntent?", + "text": "Was versteht man unter Open COntent?", "verified": true, "linkedPage": 6 }, { "level": 0, - "text": "2Warum Werden Inhalte unter eIneCC-lIzenz gestellt?", + "text": "Warum Werden Inhalte unter eIne CC-lIzenz gestellt?", "verified": true, "linkedPage": 8 }, { "level": 0, - "text": "3sChIedlIChe CC-lIzenzen?", + "text": "Warum gIbt es unter- sChIedlIChe CC-lIzenzen?", "verified": true, "linkedPage": 9 }, { "level": 0, - "text": "4WIe WIrkt sICh das nC-mOdul darauf aus, WIe Inhalte verbreItet Werden?", + "text": "WIe WIrkt sICh das nC-mOdul darauf aus, WIe Inhalte verbreItet Werden?", "verified": true, "linkedPage": 10 }, { "level": 0, - "text": "5Was Ist kOmmerzIell?", + "text": "Was Ist kOmmerzIell?", "verified": true, "linkedPage": 11 }, { "level": 0, - "text": "6kann eIne CC-lIzenz mIt nC-mOdul verhIndern, dass meIne Inhalte durCh reChtsradIkale Oder andere extremIsten genutzt Werden?", + "text": "kann eIne CC-lIzenz mIt nC-mOdul verhIndern, dass meIne Inhalte durCh reChtsradIkale Oder andere extremIsten genutzt Werden?", "verified": true, "linkedPage": 12 }, { "level": 0, - "text": "7ICh WIll, dass meIn Inhalt unter eIner CC-lIzenz freIzugänglICh bleIbt. Ist das lIChkeIt, eIner aneIgnung merzIelle unternehmen vOrzubeugen?", + "text": "ICh WIll, dass meIn Inhalt unter eIner CC-lIzenz freI zugänglICh bleIbt. Ist das nC-mOdul dIe eInzIge mög- lIChkeIt, eIner aneIgnung vOn Inhalten durCh kOm- merzIelle unternehmen vOrzubeugen?", "verified": true, "linkedPage": 13 }, { "level": 0, - "text": "8kann eIn CC-nC lIzenzIerter gestellt Werden?", + "text": "kann eIn CC-nC lIzenzIerter Inhalt In dIe WIkIpedIa eIn- gestellt Werden?", "verified": true, "linkedPage": 14 }, { "level": 0, - "text": "9kann man eInen nC-lIzenzIerten Inhalt kung gesOndert für WIkI pedIa freIgeben?", + "text": "kann man eInen nC-lIzenzIerten Inhalt trOtz dIeser eInsChrän- kung gesOndert für WIkI pedIa freIgeben?", "verified": true, "linkedPage": 15 }, { "level": 0, - "text": "10verhIndert das nC-mOdul, dass Inhalte kOmmerzIell genutzt Werden?", + "text": "10 verhIndert das nC-mOdul, dass Inhalte kOmmerzIell genutzt Werden?", "verified": true, "linkedPage": 15 }, { "level": 0, - "text": "11bIn ICh bereIt, gegen eIne ner Inhalte vOrzugehen?", + "text": "11 bIn ICh bereIt, gegen eIne kOmmerzIelle nutzung meI- ner Inhalte vOrzugehen?", "verified": true, "linkedPage": 16 }, { "level": 0, - "text": "12können nC-lIzenzIerteInhalte In zeItungenabgedruCkt Werden?", + "text": "12 können nC-lIzenzIerte Inhalte In zeItungen abgedruCkt Werden?", "verified": true, "linkedPage": 16 }, { "level": 0, - "text": "13Inhalte In allen sChulen, sItäten genutzt Werden?", + "text": "13 können nC-lIzenzIerte Inhalte In allen sChulen, berufssChulen und unIver- sItäten genutzt Werden?", "verified": true, "linkedPage": 17 }, { "level": 0, - "text": "14WIe Ist es zu beWerten, te zunäChst In der sChule verWendet, dann aber auCh nutzt Werden sOllen?", + "text": "14 WIe Ist es zu beWerten, Wenn nC-lIzenzIerte Inhal- te zunäChst In der sChule verWendet, dann aber auCh", "verified": true, "linkedPage": 17 }, { "level": 0, - "text": "15WIe WIrkt sICh nC auf mashups aus?", + "text": "15 WIe WIrkt sICh nC auf mashups aus?", "verified": true, "linkedPage": 18 }, { "level": 0, - "text": "16darf ICh als gema-mItglIed ter eIne CC-lIzenz mIt nC-mOdul stellen?", + "text": "16 darf ICh als gema-mItglIed meIne musIk zumIndest un- ter eIne CC-lIzenz mIt nC- mOdul stellen?", "verified": true, "linkedPage": 19 }, { "level": 0, - "text": "17kann eIne kOmmerzIelle nutzung durCh drItte dem urheber nutzen?", + "text": "17 kann eIne kOmmerzIelle nutzung durCh drItte dem urheber nutzen?", "verified": true, "linkedPage": 20 }, { "level": 0, - "text": "18darf eIn nutzer vOn CC-lIzenzIerten Inhalten den eIndruCk erWeCken, der urheber Würde dIe lICh unterstützen?", + "text": "18 darf eIn nutzer vOn CC-lIzenzIerten Inhalten den eIndruCk erWeCken, der urheber Würde dIe jeWeIlIge nutzung persön- lICh unterstützen?", "verified": true, "linkedPage": 20 }, { "level": 0, - "text": "19kann das nC-mOdul beI CC-lIzenzen sInnvOll seIn?", + "text": "19 kann das nC-mOdul beI CC-lIzenzen sInnvOll seIn?", "verified": true, "linkedPage": 21 }, { "level": 0, - "text": "20unter WelCher CC-lIzenz stehen WIkIpedIa-Inhalte?", + "text": "20 unter WelCher CC-lIzenz stehen WIkIpedIa-Inhalte?", "verified": true, "linkedPage": 21 }, diff --git a/examples/CC_License_Agreement_of_siMPle/calculateStatistics.json b/examples/CC_License_Agreement_of_siMPle/calculateStatistics.json index 99e5c9e..9b596be 100644 --- a/examples/CC_License_Agreement_of_siMPle/calculateStatistics.json +++ b/examples/CC_License_Agreement_of_siMPle/calculateStatistics.json @@ -28,7 +28,7 @@ ], "globals": { "maxHeight": 16.02, - "mostUsedHeight": 13, + "mostUsedHeight": 13.02, "minX": 25.86, "maxX": 535.44, "minY": 38.1, diff --git a/examples/CC_License_Agreement_of_siMPle/compactLines.json b/examples/CC_License_Agreement_of_siMPle/compactLines.json index c2d1d83..7dca473 100644 --- a/examples/CC_License_Agreement_of_siMPle/compactLines.json +++ b/examples/CC_License_Agreement_of_siMPle/compactLines.json @@ -32,7 +32,7 @@ ], "globals": { "maxHeight": 16.02, - "mostUsedHeight": 13, + "mostUsedHeight": 13.02, "minX": 25.86, "maxX": 535.44, "minY": 38.1, diff --git a/examples/CC_License_Agreement_of_siMPle/detectTOC.json b/examples/CC_License_Agreement_of_siMPle/detectTOC.json index 1926af4..0fc8834 100644 --- a/examples/CC_License_Agreement_of_siMPle/detectTOC.json +++ b/examples/CC_License_Agreement_of_siMPle/detectTOC.json @@ -35,7 +35,7 @@ ], "globals": { "maxHeight": 16.02, - "mostUsedHeight": 13, + "mostUsedHeight": 13.02, "minX": 25.86, "maxX": 535.44, "minY": 38.1, diff --git a/examples/CC_License_Agreement_of_siMPle/removeRepetitiveItems.json b/examples/CC_License_Agreement_of_siMPle/removeRepetitiveItems.json index f537578..8e29317 100644 --- a/examples/CC_License_Agreement_of_siMPle/removeRepetitiveItems.json +++ b/examples/CC_License_Agreement_of_siMPle/removeRepetitiveItems.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 16.02, - "mostUsedHeight": 13, + "mostUsedHeight": 13.02, "minX": 25.86, "maxX": 535.44, "minY": 38.1, diff --git a/examples/CC_License_Agreement_of_siMPle/sortbyX.json b/examples/CC_License_Agreement_of_siMPle/sortbyX.json index c218d9d..b950855 100644 --- a/examples/CC_License_Agreement_of_siMPle/sortbyX.json +++ b/examples/CC_License_Agreement_of_siMPle/sortbyX.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 16.02, - "mostUsedHeight": 13, + "mostUsedHeight": 13.02, "minX": 25.86, "maxX": 535.44, "minY": 38.1, diff --git a/examples/Closed-Syllables/calculateStatistics.json b/examples/Closed-Syllables/calculateStatistics.json index 5f75bef..6c1b2c7 100644 --- a/examples/Closed-Syllables/calculateStatistics.json +++ b/examples/Closed-Syllables/calculateStatistics.json @@ -28,7 +28,7 @@ ], "globals": { "maxHeight": 18, - "mostUsedHeight": 11, + "mostUsedHeight": 11.04, "minX": 72.024, "maxX": 534.58, "minY": 63.144, diff --git a/examples/Closed-Syllables/compactLines.json b/examples/Closed-Syllables/compactLines.json index a5303d5..901fcbf 100644 --- a/examples/Closed-Syllables/compactLines.json +++ b/examples/Closed-Syllables/compactLines.json @@ -32,7 +32,7 @@ ], "globals": { "maxHeight": 18, - "mostUsedHeight": 11, + "mostUsedHeight": 11.04, "minX": 72.024, "maxX": 534.58, "minY": 63.144, diff --git a/examples/Closed-Syllables/detectTOC.json b/examples/Closed-Syllables/detectTOC.json index 0017d60..41c3cd0 100644 --- a/examples/Closed-Syllables/detectTOC.json +++ b/examples/Closed-Syllables/detectTOC.json @@ -35,7 +35,7 @@ ], "globals": { "maxHeight": 18, - "mostUsedHeight": 11, + "mostUsedHeight": 11.04, "minX": 72.024, "maxX": 534.58, "minY": 63.144, diff --git a/examples/Closed-Syllables/removeRepetitiveItems.json b/examples/Closed-Syllables/removeRepetitiveItems.json index 28af7a2..d8fb8a0 100644 --- a/examples/Closed-Syllables/removeRepetitiveItems.json +++ b/examples/Closed-Syllables/removeRepetitiveItems.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 18, - "mostUsedHeight": 11, + "mostUsedHeight": 11.04, "minX": 72.024, "maxX": 534.58, "minY": 63.144, diff --git a/examples/Closed-Syllables/sortbyX.json b/examples/Closed-Syllables/sortbyX.json index c394a6b..07242ac 100644 --- a/examples/Closed-Syllables/sortbyX.json +++ b/examples/Closed-Syllables/sortbyX.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 18, - "mostUsedHeight": 11, + "mostUsedHeight": 11.04, "minX": 72.024, "maxX": 534.58, "minY": 63.144, diff --git a/examples/Life-Of-God-In-Soul-Of-Man/calculateStatistics.json b/examples/Life-Of-God-In-Soul-Of-Man/calculateStatistics.json index 9db0dab..549b732 100644 --- a/examples/Life-Of-God-In-Soul-Of-Man/calculateStatistics.json +++ b/examples/Life-Of-God-In-Soul-Of-Man/calculateStatistics.json @@ -28,7 +28,7 @@ ], "globals": { "maxHeight": 45.974399999999996, - "mostUsedHeight": 7, + "mostUsedHeight": 7.7826039, "minX": 26.29161, "maxX": 273.69135, "minY": 15.08535, diff --git a/examples/Life-Of-God-In-Soul-Of-Man/compactLines.json b/examples/Life-Of-God-In-Soul-Of-Man/compactLines.json index 0e32746..b20a5a2 100644 --- a/examples/Life-Of-God-In-Soul-Of-Man/compactLines.json +++ b/examples/Life-Of-God-In-Soul-Of-Man/compactLines.json @@ -32,7 +32,7 @@ ], "globals": { "maxHeight": 45.974399999999996, - "mostUsedHeight": 7, + "mostUsedHeight": 7.7826039, "minX": 26.29161, "maxX": 273.69135, "minY": 15.08535, diff --git a/examples/Life-Of-God-In-Soul-Of-Man/detectTOC.json b/examples/Life-Of-God-In-Soul-Of-Man/detectTOC.json index 69de281..dc9d2f0 100644 --- a/examples/Life-Of-God-In-Soul-Of-Man/detectTOC.json +++ b/examples/Life-Of-God-In-Soul-Of-Man/detectTOC.json @@ -35,7 +35,7 @@ ], "globals": { "maxHeight": 45.974399999999996, - "mostUsedHeight": 7, + "mostUsedHeight": 7.7826039, "minX": 26.29161, "maxX": 273.69135, "minY": 15.08535, @@ -53,223 +53,223 @@ "entries": [ { "level": 0, - "text": "THEOFOF", - "verified": true, + "text": "TheOccasionofthisDiscourse3", + "verified": false, "linkedPage": 3 }, { "level": 0, - "text": "MISTAKESABOUTT", + "text": "MISTAKES ABOUT RELIGION.", "verified": true, "linkedPage": 4 }, { "level": 0, - "text": "WHATRELIGION", + "text": "WHAT RELIGION IS.", "verified": true, "linkedPage": 6 }, { "level": 0, - "text": "AndTHEPERMANENCYANDOFTpermanencyandmanand", + "text": "THE PERMANENCY AND STABILITY OF", "verified": true, "linkedPage": 7 }, { "level": 0, - "text": "RELIGIONAandandAndandmanand", - "verified": true, + "text": "TheP'reedomandUnconstrainednessofReligion", + "verified": false, "linkedPage": 13 }, { "level": 0, - "text": "WHATTHENATURALThe", + "text": "WHAT THE NATURAL LIFE IS.", "verified": true, "linkedPage": 14 }, { "level": 0, - "text": "ofTHEDIFFERENTOFTHERAL", - "verified": true, + "text": "ThedifferentTendenciesoftheNaturalLife", + "verified": false, "linkedPage": 15 }, { "level": 0, - "text": "THEDOTH", - "verified": true, + "text": "WhereintheDivineLifedothconsist20", + "verified": false, "linkedPage": 20 }, { "level": 0, - "text": "RELIGIONBETTERUNDERSTOODBYACTIONSTHANBYby", - "verified": true, + "text": "ReligionbetterunderstoodbyActionsthanbyWords24", + "verified": false, "linkedPage": 24 }, { "level": 0, - "text": "LOVEEXEMPLIFIEDOUR", - "verified": true, + "text": "DivineLoveexemplifiedinourSaviour26", + "verified": false, "linkedPage": 26 }, { "level": 0, - "text": "IOURCONSTANTA", + "text": "OUR SAVIOUR'S CONSTANT DEVOTION.", "verified": true, "linkedPage": 28 }, { "level": 0, - "text": "OURCHARITYTO", + "text": "OUR SAVIOUR'S CHARITY TO MEN.", "verified": true, "linkedPage": 29 }, { "level": 0, - "text": "TOUR", + "text": "OUR SAVIOUR'S PURITY.", "verified": true, "linkedPage": 31 }, { "level": 0, - "text": "andandTHEANDADVANTAGEOFAND", - "verified": true, + "text": "AOurPrayerSaviour'sHumility3437TheExcellencyandAdvantageofReligion", + "verified": false, "linkedPage": 38 }, { "level": 0, - "text": "TheLTHEEXCELLENCYOF", + "text": "THE EXCELLENCY OF DIVINE LOVE.", "verified": true, "linkedPage": 39 }, { "level": 0, - "text": "THEADVANTAGESOFThe", + "text": "THE ADVANTAGES OF DIVINE LOVE.", "verified": true, "linkedPage": 44 }, { "level": 0, - "text": "THEWORTHOFTHE", + "text": "THE WORTH OF THE OBJECT.", "verified": true, "linkedPage": 45 }, { "level": 0, - "text": "THECERTAINTYTOBELOVEDA", + "text": "THE CERTAINTY TO BE BELOVED AGAIN.", "verified": true, "linkedPage": 46 }, { "level": 0, - "text": "HeLoveTHEOFTHEBELOVED", - "verified": true, + "text": "ThePresenceoftheBelovedPerson48", + "verified": false, "linkedPage": 48 }, { "level": 0, - "text": "makesTHELOVEMAKESUSPARTAKEOFANmakes", + "text": "THE DIVINE LOVE MAKES US PARTAKE OF AN INFINITE HAPPINESS.", "verified": true, "linkedPage": 49 }, { "level": 0, - "text": "HETHATLOVETHGODSWEETNESSEVERYNeverI", + "text": "HE THAT LOVETH GOD FINDS SWEETNESS IN EVERY DISPENSATION.", "verified": true, "linkedPage": 51 }, { "level": 0, - "text": "himTHEDUTIESOFRELIGIONAREDELIGHTFULTOof", + "text": "THE DUTIES OF RELIGION ARE DELIGHTFUL TO HIM.", "verified": true, "linkedPage": 52 }, { "level": 0, - "text": "THEOFThe", - "verified": true, + "text": "TheExcellencyofCharity54", + "verified": false, "linkedPage": 54 }, { "level": 0, - "text": "THEPLEASURETHATATTENDSA", + "text": "THE PLEASURE THAT ATTENDS CHARITY.", "verified": true, "linkedPage": 56 }, { "level": 0, - "text": "THEEXCELLENCYOF", + "text": "THE EXCELLENCY OF PURITY.", "verified": true, "linkedPage": 58 }, { "level": 0, - "text": "THEDELIGHTAFFORDEDBYA", + "text": "THE DELIGHT AFFORDED BY PURITY.", "verified": true, "linkedPage": 59 }, { "level": 0, - "text": "THEEXCELLENCYOF", + "text": "THE EXCELLENCY OF HUMILITY.", "verified": true, "linkedPage": 60 }, { "level": 0, - "text": "THEPLEASUREANDSWEETNESSOFANHUMBLETEMPER.AandandandHeTheandandhumbleAnd", + "text": "THE PLEASURE AND SWEETNESS OF AN HUMBLE TEMPER.", "verified": true, "linkedPage": 62 }, { "level": 0, - "text": "A", + "text": "A PRAYER.", "verified": true, "linkedPage": 65 }, { "level": 0, - "text": "mememememeOOTHEDESPONDENTTHOUGHTSOFSOMELYAWAKENEDTOARIGHTSENSEOFT", + "text": "THE DESPONDENT THOUGHTS OF SOME NEW- LY AWAKENED TO A RIGHT SENSE OF", "verified": true, "linkedPage": 66 }, { "level": 0, - "text": "THEUNREASONABLENESSOFTHESE", + "text": "THE UNREASONABLENESS OF THESE FEARS.", "verified": true, "linkedPage": 69 }, { "level": 0, - "text": "weandTheAndandandAndweandMUSTDOWHATWEANDDEPENDONTHEASSISTANCEandand", + "text": "ON THE DIVINE ASSISTANCE", "verified": true, "linkedPage": 74 }, { "level": 0, - "text": "weWEMUSTSHUNALLMANNEROFwewewewewewe", - "verified": true, + "text": "WeWemustmustknowshunallwhatMannerThingsofareSinSinfulSo78", + "verified": false, "linkedPage": 78 }, { "level": 0, - "text": "weweweWEMUSTTHETEMPTATIONSOFBYTHETHEYWILLDRAWONweweweWewe", + "text": "BY CONSIDERING THE EVILS THEY WILL DRAW ON US.", "verified": true, "linkedPage": 82 }, { "level": 0, - "text": "weweTORESTRAINOURSELVESMANYLAWFULweweweweWemany", - "verified": true, + "text": "WeWemustmustkeepoftenaexamineConstantourWatchActionsoverOurselves..8789ItisfittorestrainOurselvesinManyLawfulThings", + "verified": false, "linkedPage": 91 }, { "level": 0, - "text": "MUSTTOPUTOURSELVESOUTOFLOVEWITHTHE", - "verified": true, + "text": "\\\\'emuststrivetoputOurselvesoutofLovewiththeWorld93", + "verified": false, "linkedPage": 93 }, { "level": 0, - "text": "WEMUSTDOTHOSEOUTWARDACTIONSTHATAREweweweweandwewe", + "text": "WE MUST DO THOSE OUTWARD ACTIONS THAT", "verified": true, "linkedPage": 98 }, @@ -281,67 +281,67 @@ }, { "level": 0, - "text": "TOBEGETWEMUSTCONSIDERTHEOFTHE", + "text": "TO BEGET DIVINE LOVE, WE MUST CONSIDER THE EXCELLENCY OF THE DIVINE NATURE.", "verified": true, "linkedPage": 104 }, { "level": 0, - "text": "GodweweandandweWESHOULDMEDITATEONGOODNESSANDwewe", + "text": "WE SHOULD MEDITATE ON GOD'S GOODNESS AND LOVE.", "verified": true, "linkedPage": 108 }, { "level": 0, - "text": "TOBEGETCHARITYWEMUSTREMEMBERTHATALLMENARENEARLYRELATEDUNTOweGod", + "text": "THAT ALL MEN ARE NEARLY RELATED UNTO GOD.", "verified": true, "linkedPage": 113 }, { "level": 0, - "text": "GodTHATTHEYCARRYIMAGEUPONAimageuponthemimage", + "text": "THAT THEY CARRY GOD'S IMAGE UPON THEM.", "verified": true, "linkedPage": 114 }, { "level": 0, - "text": "TOBEGETWESHOULDCONSIDERTHEDIGNITYOFOURwewewe", + "text": "TO BEGET PURITY, WE SHOULD CONSIDER THE DIGNITY OF OUR NATURE.", "verified": true, "linkedPage": 116 }, { "level": 0, - "text": "WESHOULDMEDITATEOFTENONTHEJOYSOFHEAVEN.wewewewewe", + "text": "WE SHOULD MEDITATE OFTEN ON THE JOYS OF HEAVEN.", "verified": true, "linkedPage": 117 }, { "level": 0, - "text": "HUMILITYFROMTHECONSIDERATIONOFOUR", + "text": "HUMILITY ARISES FROM THE CONSIDERATION OF OUR FAILINGS.", "verified": true, "linkedPage": 118 }, { "level": 0, - "text": "THOUGHTSOFGODUSTHELOWESTTHOUGHTSOFOurwewewewe", + "text": "THOUGHTS OF GOD GIVE US THE LOWEST THOUGHTS OF OURSELVES.", "verified": true, "linkedPage": 120 }, { "level": 0, - "text": "PRAYER,ANOTHEROFANDTHEADVANTAGESOFMENTALandand", + "text": "AND THE ADVANTAGES OF MENTAL PRAYER.", "verified": true, "linkedPage": 121 }, { "level": 0, - "text": "RELIGIONTOBYTHESAMEMEANSBYWHICHBEGUN;ANDTHEUSEOFTHEHOLYTOWARDSwhichandsamemeanswhichwhichwhichand", - "verified": true, + "text": "ReligionistobeAdvancedbythesameMeansbywhichitisBegun;andtheUseoftheHolySacrainenttowardsit124", + "verified": false, "linkedPage": 124 }, { "level": 0, - "text": "AA", + "text": "A PRAYER.", "verified": true, "linkedPage": 126 } diff --git a/examples/Life-Of-God-In-Soul-Of-Man/removeRepetitiveItems.json b/examples/Life-Of-God-In-Soul-Of-Man/removeRepetitiveItems.json index 35255ca..713c414 100644 --- a/examples/Life-Of-God-In-Soul-Of-Man/removeRepetitiveItems.json +++ b/examples/Life-Of-God-In-Soul-Of-Man/removeRepetitiveItems.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 45.974399999999996, - "mostUsedHeight": 7, + "mostUsedHeight": 7.7826039, "minX": 26.29161, "maxX": 273.69135, "minY": 15.08535, diff --git a/examples/Life-Of-God-In-Soul-Of-Man/sortbyX.json b/examples/Life-Of-God-In-Soul-Of-Man/sortbyX.json index 64e1f3c..27e8f18 100644 --- a/examples/Life-Of-God-In-Soul-Of-Man/sortbyX.json +++ b/examples/Life-Of-God-In-Soul-Of-Man/sortbyX.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 45.974399999999996, - "mostUsedHeight": 7, + "mostUsedHeight": 7.7826039, "minX": 26.29161, "maxX": 273.69135, "minY": 15.08535, diff --git a/examples/Safe-Communication/calculateStatistics.json b/examples/Safe-Communication/calculateStatistics.json index 6e98330..3fb6665 100644 --- a/examples/Safe-Communication/calculateStatistics.json +++ b/examples/Safe-Communication/calculateStatistics.json @@ -28,7 +28,7 @@ ], "globals": { "maxHeight": 36, - "mostUsedHeight": 11, + "mostUsedHeight": 11.04, "minX": 53.88, "maxX": 797.38, "minY": 23.04, diff --git a/examples/Safe-Communication/compactLines.json b/examples/Safe-Communication/compactLines.json index 372fb86..56108ee 100644 --- a/examples/Safe-Communication/compactLines.json +++ b/examples/Safe-Communication/compactLines.json @@ -32,7 +32,7 @@ ], "globals": { "maxHeight": 36, - "mostUsedHeight": 11, + "mostUsedHeight": 11.04, "minX": 53.88, "maxX": 797.38, "minY": 23.04, diff --git a/examples/Safe-Communication/detectTOC.json b/examples/Safe-Communication/detectTOC.json index 0be6926..84aa88a 100644 --- a/examples/Safe-Communication/detectTOC.json +++ b/examples/Safe-Communication/detectTOC.json @@ -35,7 +35,7 @@ ], "globals": { "maxHeight": 36, - "mostUsedHeight": 11, + "mostUsedHeight": 11.04, "minX": 53.88, "maxX": 797.38, "minY": 23.04, @@ -75,7 +75,7 @@ }, { "level": 0, - "text": "Introduction", + "text": "Int roduction", "verified": true, "linkedPage": 5 }, @@ -87,13 +87,13 @@ }, { "level": 0, - "text": "P", - "verified": true, + "text": "How do you achieve it? (The six step improvement process)page", + "verified": false, "linkedPage": 8 }, { "level": 0, - "text": "Useful resources", + "text": "U seful r esources", "verified": true, "linkedPage": 40 }, diff --git a/examples/Safe-Communication/removeRepetitiveItems.json b/examples/Safe-Communication/removeRepetitiveItems.json index cfe7d01..955df54 100644 --- a/examples/Safe-Communication/removeRepetitiveItems.json +++ b/examples/Safe-Communication/removeRepetitiveItems.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 36, - "mostUsedHeight": 11, + "mostUsedHeight": 11.04, "minX": 53.88, "maxX": 797.38, "minY": 23.04, diff --git a/examples/Safe-Communication/sortbyX.json b/examples/Safe-Communication/sortbyX.json index e83caab..802565e 100644 --- a/examples/Safe-Communication/sortbyX.json +++ b/examples/Safe-Communication/sortbyX.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 36, - "mostUsedHeight": 11, + "mostUsedHeight": 11.04, "minX": 53.88, "maxX": 797.38, "minY": 23.04, diff --git a/examples/The-Art-of-Public-Speaking/calculateStatistics.0.json b/examples/The-Art-of-Public-Speaking/calculateStatistics.0.json index 895730b..c9707a0 100644 --- a/examples/The-Art-of-Public-Speaking/calculateStatistics.0.json +++ b/examples/The-Art-of-Public-Speaking/calculateStatistics.0.json @@ -28,7 +28,7 @@ ], "globals": { "maxHeight": 28.799999999999997, - "mostUsedHeight": 14, + "mostUsedHeight": 14.399999999999999, "minX": 72, "maxX": 537.4124748000004, "minY": 75.60000000000002, diff --git a/examples/The-Art-of-Public-Speaking/compactLines.json b/examples/The-Art-of-Public-Speaking/compactLines.json index bd30d5f..ff761b4 100644 --- a/examples/The-Art-of-Public-Speaking/compactLines.json +++ b/examples/The-Art-of-Public-Speaking/compactLines.json @@ -32,7 +32,7 @@ ], "globals": { "maxHeight": 28.799999999999997, - "mostUsedHeight": 14, + "mostUsedHeight": 14.399999999999999, "minX": 72, "maxX": 537.4124748000004, "minY": 75.60000000000002, diff --git a/examples/The-Art-of-Public-Speaking/detectTOC.json b/examples/The-Art-of-Public-Speaking/detectTOC.json index 28fc326..2378072 100644 --- a/examples/The-Art-of-Public-Speaking/detectTOC.json +++ b/examples/The-Art-of-Public-Speaking/detectTOC.json @@ -35,7 +35,7 @@ ], "globals": { "maxHeight": 28.799999999999997, - "mostUsedHeight": 14, + "mostUsedHeight": 14.399999999999999, "minX": 72, "maxX": 537.4124748000004, "minY": 75.60000000000002, diff --git a/examples/The-Art-of-Public-Speaking/removeRepetitiveItems.json b/examples/The-Art-of-Public-Speaking/removeRepetitiveItems.json index a528646..650b53a 100644 --- a/examples/The-Art-of-Public-Speaking/removeRepetitiveItems.json +++ b/examples/The-Art-of-Public-Speaking/removeRepetitiveItems.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 28.799999999999997, - "mostUsedHeight": 14, + "mostUsedHeight": 14.399999999999999, "minX": 72, "maxX": 537.4124748000004, "minY": 75.60000000000002, diff --git a/examples/The-Art-of-Public-Speaking/sortbyX.json b/examples/The-Art-of-Public-Speaking/sortbyX.json index ff5ea0f..18d1b09 100644 --- a/examples/The-Art-of-Public-Speaking/sortbyX.json +++ b/examples/The-Art-of-Public-Speaking/sortbyX.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 28.799999999999997, - "mostUsedHeight": 14, + "mostUsedHeight": 14.399999999999999, "minX": 72, "maxX": 537.4124748000004, "minY": 75.60000000000002, diff --git a/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/calculateStatistics.json b/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/calculateStatistics.json index bc286db..99f42cc 100644 --- a/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/calculateStatistics.json +++ b/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/calculateStatistics.json @@ -28,7 +28,7 @@ ], "globals": { "maxHeight": 36, - "mostUsedHeight": 11, + "mostUsedHeight": 11.04, "minX": 74.904, "maxX": 518.5, "minY": 99.864, diff --git a/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/compactLines.json b/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/compactLines.json index 679f270..e4253f6 100644 --- a/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/compactLines.json +++ b/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/compactLines.json @@ -32,7 +32,7 @@ ], "globals": { "maxHeight": 36, - "mostUsedHeight": 11, + "mostUsedHeight": 11.04, "minX": 74.904, "maxX": 518.5, "minY": 99.864, diff --git a/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/detectTOC.json b/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/detectTOC.json index 4c8d8e9..cd47160 100644 --- a/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/detectTOC.json +++ b/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/detectTOC.json @@ -35,7 +35,7 @@ ], "globals": { "maxHeight": 36, - "mostUsedHeight": 11, + "mostUsedHeight": 11.04, "minX": 74.904, "maxX": 518.5, "minY": 99.864, diff --git a/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/removeRepetitiveItems.json b/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/removeRepetitiveItems.json index 9f54e92..76214a1 100644 --- a/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/removeRepetitiveItems.json +++ b/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/removeRepetitiveItems.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 36, - "mostUsedHeight": 11, + "mostUsedHeight": 11.04, "minX": 74.904, "maxX": 518.5, "minY": 99.864, diff --git a/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/sortbyX.json b/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/sortbyX.json index 660d876..21fce87 100644 --- a/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/sortbyX.json +++ b/examples/The-Impact-of-Open-Access-Latin-American-Scholarship/sortbyX.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 36, - "mostUsedHeight": 11, + "mostUsedHeight": 11.04, "minX": 74.904, "maxX": 518.5, "minY": 99.864, diff --git a/examples/Tragedy-Of-The-Commons/calculateStatistics.json b/examples/Tragedy-Of-The-Commons/calculateStatistics.json index 3f557a2..8b094fe 100644 --- a/examples/Tragedy-Of-The-Commons/calculateStatistics.json +++ b/examples/Tragedy-Of-The-Commons/calculateStatistics.json @@ -28,7 +28,7 @@ ], "globals": { "maxHeight": 22.5, - "mostUsedHeight": 11, + "mostUsedHeight": 11.4, "minX": 13.799999999999926, "maxX": 550.2000000000003, "minY": 1.4400099999998357, diff --git a/examples/Tragedy-Of-The-Commons/compactLines.json b/examples/Tragedy-Of-The-Commons/compactLines.json index e00daab..3f58667 100644 --- a/examples/Tragedy-Of-The-Commons/compactLines.json +++ b/examples/Tragedy-Of-The-Commons/compactLines.json @@ -32,7 +32,7 @@ ], "globals": { "maxHeight": 22.5, - "mostUsedHeight": 11, + "mostUsedHeight": 11.4, "minX": 13.799999999999926, "maxX": 550.2000000000003, "minY": 1.4400099999998357, diff --git a/examples/Tragedy-Of-The-Commons/detectTOC.json b/examples/Tragedy-Of-The-Commons/detectTOC.json index 22b7eaa..bf7effd 100644 --- a/examples/Tragedy-Of-The-Commons/detectTOC.json +++ b/examples/Tragedy-Of-The-Commons/detectTOC.json @@ -35,7 +35,7 @@ ], "globals": { "maxHeight": 22.5, - "mostUsedHeight": 11, + "mostUsedHeight": 11.4, "minX": 13.799999999999926, "maxX": 550.2000000000003, "minY": 1.4400099999998357, diff --git a/examples/Tragedy-Of-The-Commons/removeRepetitiveItems.json b/examples/Tragedy-Of-The-Commons/removeRepetitiveItems.json index 408520a..4cdf329 100644 --- a/examples/Tragedy-Of-The-Commons/removeRepetitiveItems.json +++ b/examples/Tragedy-Of-The-Commons/removeRepetitiveItems.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 22.5, - "mostUsedHeight": 11, + "mostUsedHeight": 11.4, "minX": 13.799999999999926, "maxX": 550.2000000000003, "minY": 1.4400099999998357, diff --git a/examples/Tragedy-Of-The-Commons/sortbyX.json b/examples/Tragedy-Of-The-Commons/sortbyX.json index 476e961..982b33c 100644 --- a/examples/Tragedy-Of-The-Commons/sortbyX.json +++ b/examples/Tragedy-Of-The-Commons/sortbyX.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 22.5, - "mostUsedHeight": 11, + "mostUsedHeight": 11.4, "minX": 13.799999999999926, "maxX": 550.2000000000003, "minY": 1.4400099999998357, diff --git a/examples/Watered-Soul-Blog-Book/calculateStatistics.json b/examples/Watered-Soul-Blog-Book/calculateStatistics.json index b8bd209..3e736ea 100644 --- a/examples/Watered-Soul-Blog-Book/calculateStatistics.json +++ b/examples/Watered-Soul-Blog-Book/calculateStatistics.json @@ -28,7 +28,7 @@ ], "globals": { "maxHeight": 24.7871, - "mostUsedHeight": 9, + "mostUsedHeight": 9.9626, "minX": 35.99999999999977, "maxX": 1433.711, "minY": 39.59999999999997, diff --git a/examples/Watered-Soul-Blog-Book/compactLines.json b/examples/Watered-Soul-Blog-Book/compactLines.json index 317052f..52b1fbe 100644 --- a/examples/Watered-Soul-Blog-Book/compactLines.json +++ b/examples/Watered-Soul-Blog-Book/compactLines.json @@ -32,7 +32,7 @@ ], "globals": { "maxHeight": 24.7871, - "mostUsedHeight": 9, + "mostUsedHeight": 9.9626, "minX": 35.99999999999977, "maxX": 1433.711, "minY": 39.59999999999997, diff --git a/examples/Watered-Soul-Blog-Book/detectTOC.json b/examples/Watered-Soul-Blog-Book/detectTOC.json index 92a96d6..0b8934e 100644 --- a/examples/Watered-Soul-Blog-Book/detectTOC.json +++ b/examples/Watered-Soul-Blog-Book/detectTOC.json @@ -35,7 +35,7 @@ ], "globals": { "maxHeight": 24.7871, - "mostUsedHeight": 9, + "mostUsedHeight": 9.9626, "minX": 35.99999999999977, "maxX": 1433.711, "minY": 39.59999999999997, @@ -55,997 +55,997 @@ "entries": [ { "level": 0, - "text": "1.1 March", + "text": "1.1 March", "verified": true, "linkedPage": 13 }, { "level": 0, - "text": "2010Spring Is Here-What’s Springing Up Within You?", + "text": "Spring Is Here-What’s Springing Up Within You? (2010-03-16 00:38)", "verified": true, "linkedPage": 13 }, { "level": 0, - "text": "Any Mud on Your Soul?", + "text": "Any Mud on Your Soul? (2010-03-18 05:01)", "verified": true, "linkedPage": 15 }, { "level": 0, - "text": "Mindful Ponderings", + "text": "Mindful Ponderings (2010-03-20 04:10)", "verified": true, "linkedPage": 16 }, { "level": 0, - "text": "Hide & Seek", + "text": "Hide & Seek (2010-03-22 14:00)", "verified": true, "linkedPage": 16 }, { "level": 0, - "text": "Always Forever", + "text": "Always Forever (2010-03-23 14:00)", "verified": true, "linkedPage": 17 }, { "level": 0, - "text": "If Not Him, Then Who?", + "text": "If Not Him, Then Who? (2010-03-29 11:01)", "verified": true, "linkedPage": 18 }, { "level": 0, - "text": "Up for a Challenge", + "text": "Up for a Challenge (2010-03-31 20:29)", "verified": true, "linkedPage": 19 }, { "level": 0, - "text": "1.2 April", + "text": "1.2 April", "verified": true, "linkedPage": 20 }, { "level": 0, - "text": "Ready, Set, Go", + "text": "Ready, Set, Go (2010-04-01 10:25)", "verified": true, "linkedPage": 20 }, { "level": 0, - "text": "Bare But Not Barren", + "text": "Bare But Not Barren (2010-04-02 05:01)", "verified": true, "linkedPage": 22 }, { "level": 0, - "text": "Buried in Him", + "text": "Buried in Him (2010-04-03 03:38)", "verified": true, "linkedPage": 24 }, { "level": 0, - "text": "Contractually Connected to a Covenant Keeping Christ", + "text": "Contractually Connected to a Covenant Keeping Christ (2010-04-03 07:00)", "verified": true, "linkedPage": 25 }, { "level": 0, - "text": "Time for Revisiting the Tomb", + "text": "Time for Revisiting the Tomb (2010-04-04 03:42)", "verified": true, "linkedPage": 26 }, { "level": 0, - "text": "D is the Day", + "text": "D is the Day (2010-04-05 05:01)", "verified": true, "linkedPage": 28 }, { "level": 0, - "text": "The Eyes Have It", + "text": "The Eyes Have It (2010-04-06 05:10)", "verified": true, "linkedPage": 31 }, { "level": 0, - "text": "F is for F.A.M.I.L.Y.", + "text": "F is for F.A.M.I.L.Y. (2010-04-07 10:06)", "verified": true, "linkedPage": 33 }, { "level": 0, - "text": "Are You Growing?", + "text": "Are You Growing? (2010-04-08 05:15)", "verified": true, "linkedPage": 34 }, { "level": 0, - "text": "Power in Your Hands", + "text": "Power in Your Hands (2010-04-09 06:00)", "verified": true, "linkedPage": 36 }, { "level": 0, - "text": "I is for", + "text": "I is for (2010-04-10 12:25)", "verified": true, "linkedPage": 38 }, { "level": 0, - "text": "Imposter on the Loose", + "text": "Imposter on the Loose (2010-04-10 23:31)", "verified": true, "linkedPage": 39 }, { "level": 0, - "text": "Capturing the Journey", + "text": "Capturing the Journey (2010-04-12 05:01)", "verified": true, "linkedPage": 41 }, { "level": 0, - "text": "K is for King", + "text": "K is for King (2010-04-13 06:00)", "verified": true, "linkedPage": 44 }, { "level": 0, - "text": "Lifting the Labels", + "text": "Lifting the Labels (2010-04-14 14:15)", "verified": true, "linkedPage": 46 }, { "level": 0, - "text": "My Mind is Pondering", + "text": "My Mind is Pondering (2010-04-15 06:30)", "verified": true, "linkedPage": 48 }, { "level": 0, - "text": "Never Say Never", + "text": "Never Say Never (2010-04-16 07:00)", "verified": true, "linkedPage": 51 }, { "level": 0, - "text": "Open to Opportunity", + "text": "Open to Opportunity (2010-04-17 15:02)", "verified": true, "linkedPage": 53 }, { "level": 0, - "text": "Essential P\u0019s in the Race of Life", + "text": "Essential P \u0019 s in the Race of Life (2010-04-19 20:25)", "verified": true, "linkedPage": 56 }, { "level": 0, - "text": "Quiet Please", + "text": "Quiet Please (2010-04-20 10:30)", "verified": true, "linkedPage": 58 }, { "level": 0, - "text": "Re", + "text": "Re (2010-04-21 13:20)", "verified": true, "linkedPage": 61 }, { "level": 0, - "text": "Satisfaction Guaranteed", + "text": "Satisfaction Guaranteed (2010-04-22 22:02)", "verified": true, "linkedPage": 63 }, { "level": 0, - "text": "Quench Your Thirst", + "text": "Quench Your Thirst (2010-04-23 17:57)", "verified": true, "linkedPage": 65 }, { "level": 0, - "text": "Until When?", + "text": "Until When? (2010-04-24 19:31)", "verified": true, "linkedPage": 68 }, { "level": 0, - "text": "You’re the Vessel", + "text": "You’re the Vessel (2010-04-26 14:11)", "verified": true, "linkedPage": 71 }, { "level": 0, - "text": "Never Walk Alone", + "text": "Never Walk Alone (2010-04-27 11:02)", "verified": true, "linkedPage": 73 }, { "level": 0, - "text": "Random Things about Me", + "text": "Random Things about Me (2010-04-28 00:37)", "verified": true, "linkedPage": 74 }, { "level": 0, - "text": "X Marks the Spot", + "text": "X Marks the Spot (2010-04-28 15:10)", "verified": true, "linkedPage": 76 }, { "level": 0, - "text": "Y is for Yield", + "text": "Y is for Yield (2010-04-29 20:31)", "verified": true, "linkedPage": 78 }, { "level": 0, - "text": "Z is for", + "text": "Z is for (2010-04-30 13:34)", "verified": true, "linkedPage": 79 }, { "level": 0, - "text": "1.3 May", + "text": "1.3 May", "verified": true, "linkedPage": 82 }, { "level": 0, - "text": "Z is for Zachariah", + "text": "Z is for Zachariah (2010-05-01 03:54)", "verified": true, "linkedPage": 82 }, { "level": 0, - "text": "Reflections on the A to Z Challenge", + "text": "Reflections on the A to Z Challenge (2010-05-03 16:51)", "verified": true, "linkedPage": 84 }, { "level": 0, - "text": "Word Filled Wednesday", + "text": "Word Filled Wednesday (2010-05-05 05:21)", "verified": true, "linkedPage": 88 }, { "level": 0, - "text": "I’m It but You May Be Next", + "text": "I’m It but You May Be Next (2010-05-06 11:59)", "verified": true, "linkedPage": 91 }, { "level": 0, - "text": "Imprisoned Thoughts", + "text": "Imprisoned Thoughts (2010-05-07 03:58)", "verified": true, "linkedPage": 93 }, { "level": 0, - "text": "For Mothers", + "text": "For Mothers (2010-05-09 05:01)", "verified": true, "linkedPage": 96 }, { "level": 0, - "text": "The Blahs", + "text": "The Blahs (2010-05-11 12:38)", "verified": true, "linkedPage": 97 }, { "level": 0, - "text": "Some Things Don’t Change", + "text": "Some Things Don’t Change (2010-05-12 06:30)", "verified": true, "linkedPage": 98 }, { "level": 0, - "text": "Steps Along the Way", + "text": "Steps Along the Way (2010-05-14 20:30)", "verified": true, "linkedPage": 102 }, { "level": 0, - "text": "Finding My Strength", + "text": "Finding My Strength (2010-05-16 03:14)", "verified": true, "linkedPage": 104 }, { "level": 0, - "text": "Quiet Confidence", + "text": "Quiet Confidence (2010-05-17 22:00)", "verified": true, "linkedPage": 105 }, { "level": 0, - "text": "You’re Unforgettable", + "text": "You’re Unforgettable (2010-05-19 06:31)", "verified": true, "linkedPage": 107 }, { "level": 0, - "text": "Your View of Windows", + "text": "Your View of Windows (2010-05-21 11:18)", "verified": true, "linkedPage": 109 }, { "level": 0, - "text": "It’s Him You Seek", + "text": "It’s Him You Seek (2010-05-24 16:00)", "verified": true, "linkedPage": 111 }, { "level": 0, - "text": "Teaser Tuesday", + "text": "Teaser Tuesday (2010-05-25 22:17)", "verified": true, "linkedPage": 112 }, { "level": 0, - "text": "Overloaded?", + "text": "Overloaded? (2010-05-25 23:01)", "verified": true, "linkedPage": 113 }, { "level": 0, - "text": "Lessons Learned Along the Way", + "text": "Lessons Learned Along the Way (2010-05-26 23:55)", "verified": true, "linkedPage": 116 }, { "level": 0, - "text": "The If(s)", + "text": "The If(s) (2010-05-27 08:30)", "verified": true, "linkedPage": 118 }, { "level": 0, - "text": "Memorial Day", + "text": "Memorial Day (2010-05-31 05:02)", "verified": true, "linkedPage": 120 }, { "level": 0, - "text": "Favorite Finds", + "text": "Favorite Finds (2010-05-31 21:35)", "verified": true, "linkedPage": 121 }, { "level": 0, - "text": "Teaser Tuedays", + "text": "Teaser Tuedays (2010-05-31 23:02)", "verified": true, "linkedPage": 123 }, { "level": 0, - "text": "1.4 June", + "text": "1.4 June", "verified": true, "linkedPage": 125 }, { "level": 0, - "text": "Teaser Tuedays", + "text": "Teaser Tuedays (2010-06-01 05:02)", "verified": true, "linkedPage": 125 }, { "level": 0, - "text": "Shammah!", + "text": "Shammah! (2010-06-01 17:30)", "verified": true, "linkedPage": 126 }, { "level": 0, - "text": "No Need to be Discouraged", + "text": "No Need to be Discouraged (2010-06-02 00:00)", "verified": true, "linkedPage": 129 }, { "level": 0, - "text": "No Incompletes in God", + "text": "No Incompletes in God (2010-06-03 07:00)", "verified": true, "linkedPage": 132 }, { "level": 0, - "text": "Interesting Finds", + "text": "Interesting Finds (2010-06-04 09:00)", "verified": true, "linkedPage": 134 }, { "level": 0, - "text": "Making Sense of the Nonsense", + "text": "Making Sense of the Nonsense (2010-06-06 02:37)", "verified": true, "linkedPage": 135 }, { "level": 0, - "text": "Discarded Things", + "text": "Discarded Things (2010-06-08 05:01)", "verified": true, "linkedPage": 137 }, { "level": 0, - "text": "Extinguish My Drought, Lord", + "text": "Extinguish My Drought, Lord (2010-06-09 10:28)", "verified": true, "linkedPage": 139 }, { "level": 0, - "text": "You Choose What to Carry", + "text": "You Choose What to Carry (2010-06-10 12:09)", "verified": true, "linkedPage": 142 }, { "level": 0, - "text": "Like Three P’s in a Pod", + "text": "Like Three P’s in a Pod (2010-06-11 13:52)", "verified": true, "linkedPage": 144 }, { "level": 0, - "text": "Things That Made Me Go...Hmmm", + "text": "Things That Made Me Go...Hmmm (2010-06-12 17:42)", "verified": true, "linkedPage": 145 }, { "level": 0, - "text": "Where Does the Time Go?", + "text": "Where Does the Time Go? (2010-06-15 08:00)", "verified": true, "linkedPage": 147 }, { "level": 0, - "text": "Don’t Want to Dance to My Own Tune", + "text": "Don’t Want to Dance to My Own Tune (2010-06-16 00:15)", "verified": true, "linkedPage": 149 }, { "level": 0, - "text": "God of the Detours", + "text": "God of the Detours (2010-06-17 11:52)", "verified": true, "linkedPage": 152 }, { "level": 0, - "text": "To The Fathers...", + "text": "To The Fathers... (2010-06-20 06:00)", "verified": true, "linkedPage": 154 }, { "level": 0, - "text": "Access Granted...", + "text": "Access Granted... (2010-06-22 07:30)", "verified": true, "linkedPage": 155 }, { "level": 0, - "text": "Can\u0019t Afford to Trash it", + "text": "Can \u0019 t Afford to Trash it (2010-06-23 00:00)", "verified": true, "linkedPage": 157 }, { "level": 0, - "text": "Linky Love", + "text": "Linky Love (2010-06-25 13:46)", "verified": true, "linkedPage": 161 }, { "level": 0, - "text": "Recyclable You", + "text": "Recyclable You (2010-06-28 13:30)", "verified": true, "linkedPage": 163 }, { "level": 0, - "text": "Sins of the Mother", + "text": "Sins of the Mother (2010-06-29 07:00)", "verified": true, "linkedPage": 164 }, { "level": 0, - "text": "Whatcha Got Cookin?", + "text": "Whatcha Got Cookin? (2010-06-30 00:00)", "verified": true, "linkedPage": 166 }, { "level": 0, - "text": "1.5 July", + "text": "1.5 July", "verified": true, "linkedPage": 169 }, { "level": 0, - "text": "Nobody Likes Me", + "text": "Nobody Likes Me (2010-07-02 06:30)", "verified": true, "linkedPage": 169 }, { "level": 0, - "text": "Freedom", + "text": "Freedom (2010-07-03 14:09)", "verified": true, "linkedPage": 171 }, { "level": 0, - "text": "Becoming A Woman Who Loves", + "text": "Becoming A Woman Who Loves (2010-07-06 08:18)", "verified": true, "linkedPage": 173 }, { "level": 0, - "text": "Flow to You", + "text": "Flow to You (2010-07-06 17:34)", "verified": true, "linkedPage": 174 }, { "level": 0, - "text": "Some things are made to last", + "text": "Some things are made to last (2010-07-06 23:03)", "verified": true, "linkedPage": 176 }, { "level": 0, - "text": "Proclamation", + "text": "Proclamation (2010-07-08 11:15)", "verified": true, "linkedPage": 179 }, { "level": 0, - "text": "No longer the same", + "text": "No longer the same (2010-07-11 14:04)", "verified": true, "linkedPage": 180 }, { "level": 0, - "text": "No Death Today: Resuscitate Instead", + "text": "No Death Today: Resuscitate Instead (2010-07-12 17:43)", "verified": true, "linkedPage": 181 }, { "level": 0, - "text": "Swept Away", + "text": "Swept Away (2010-07-13 23:00)", "verified": true, "linkedPage": 185 }, { "level": 0, - "text": "Sweep a Little Love to a Sista", + "text": "Sweep a Little Love to a Sista (2010-07-16 05:30)", "verified": true, "linkedPage": 188 }, { "level": 0, - "text": "Lost & Found", + "text": "Lost & Found (2010-07-20 05:30)", "verified": true, "linkedPage": 190 }, { "level": 0, - "text": "A Little Out = A Little Back", + "text": "A Little Out = A Little Back (2010-07-20 23:00)", "verified": true, "linkedPage": 193 }, { "level": 0, - "text": "This Sings My Soul", + "text": "This Sings My Soul (2010-07-22 12:29)", "verified": true, "linkedPage": 196 }, { "level": 0, - "text": "A Lil Something Sweet", + "text": "A Lil Something Sweet (2010-07-25 03:23)", "verified": true, "linkedPage": 197 }, { "level": 0, - "text": "A Sweet Offer{CSN Store Giveaway}Closed", + "text": "A Sweet Offer { CSN Store Giveaway } Closed (2010-07-26 05:35)", "verified": true, "linkedPage": 199 }, { "level": 0, - "text": "Teaser Tuesday{Six-Liter Club}", + "text": "Teaser Tuesday { Six-Liter Club } (2010-07-27 08:00)", "verified": true, "linkedPage": 202 }, { "level": 0, - "text": "The Power of a Song & Praise", + "text": "The Power of a Song & Praise (2010-07-27 23:00)", "verified": true, "linkedPage": 204 }, { "level": 0, - "text": "Overwhelming Victory", + "text": "Overwhelming Victory (2010-07-29 12:03)", "verified": true, "linkedPage": 208 }, { "level": 0, - "text": "Yes, You Matter to Me", + "text": "Yes, You Matter to Me (2010-07-31 04:56)", "verified": true, "linkedPage": 209 }, { "level": 0, - "text": "1.6 August", + "text": "1.6 August", "verified": true, "linkedPage": 211 }, { "level": 0, - "text": "Infused with Power", + "text": "Infused with Power (2010-08-02 11:44)", "verified": true, "linkedPage": 211 }, { "level": 0, - "text": "Keeping Watch of the Time", + "text": "Keeping Watch of the Time (2010-08-03 23:00)", "verified": true, "linkedPage": 213 }, { "level": 0, - "text": "Is It Time For a Makeover?", + "text": "Is It Time For a Makeover? (2010-08-07 09:40)", "verified": true, "linkedPage": 217 }, { "level": 0, - "text": "We Have Winner", + "text": "We Have Winner (2010-08-08 06:06)", "verified": true, "linkedPage": 220 }, { "level": 0, - "text": "It\u0019s Ok to Begin Again", + "text": "It \u0019 s Ok to Begin Again (2010-08-10 12:15)", "verified": true, "linkedPage": 220 }, { "level": 0, - "text": "He Holds The Future{Word-Filled Wednesday}", + "text": "He Holds The Future { Word-Filled Wednesday } (2010-08-10 23:01)", "verified": true, "linkedPage": 222 }, { "level": 0, - "text": "13 Well Wishes for You", + "text": "13 Well Wishes for You (2010-08-13 13:14)", "verified": true, "linkedPage": 226 }, { "level": 0, - "text": "Even When I Don\u0019t Do Right", + "text": "Even When I Don \u0019 t Do Right (2010-08-16 07:01)", "verified": true, "linkedPage": 229 }, { "level": 0, - "text": "Worth the Wait{Word Filled Wednesday}", + "text": "Worth the Wait { Word Filled Wednesday } (2010-08-17 23:01)", "verified": true, "linkedPage": 232 }, { "level": 0, - "text": "No More Cave Dwelling", + "text": "No More Cave Dwelling (2010-08-20 07:15)", "verified": true, "linkedPage": 236 }, { "level": 0, - "text": "A Heart Full of Sweet P\u0019s", + "text": "A Heart Full of Sweet P \u0019 s (2010-08-21 13:30)", "verified": true, "linkedPage": 239 }, { "level": 0, - "text": "Son or Slave ?{Monday Manna}", + "text": "Son or Slave ? { Monday Manna } (2010-08-23 13:01)", "verified": true, "linkedPage": 241 }, { "level": 0, - "text": "It\u0019s All in There", + "text": "It \u0019 s All in There (2010-08-24 05:14)", "verified": true, "linkedPage": 242 }, { "level": 0, - "text": "I Can\u0019t Hear You", + "text": "I Can \u0019 t Hear You (2010-08-24 23:01)", "verified": true, "linkedPage": 244 }, { "level": 0, - "text": "Arise Oh\u0019Lord", + "text": "Arise Oh \u0019 Lord (2010-08-27 06:59)", "verified": true, "linkedPage": 248 }, { "level": 0, - "text": "He\u0019s With Me", + "text": "He \u0019 s With Me (2010-08-30 04:00)", "verified": true, "linkedPage": 252 }, { "level": 0, - "text": "Give Me Eyes to See", + "text": "Give Me Eyes to See (2010-08-31 11:19)", "verified": true, "linkedPage": 253 }, { "level": 0, - "text": "Your Recommendation Says What?", + "text": "Your Recommendation Says What? (2010-08-31 23:30)", "verified": true, "linkedPage": 255 }, { "level": 0, - "text": "1.7 Septembers", + "text": "1.7 September", "verified": true, "linkedPage": 258 }, { "level": 0, - "text": "Sweet P\u0019s", + "text": "Sweet P \u0019 s (2010-09-04 16:07)", "verified": true, "linkedPage": 258 }, { "level": 0, - "text": "Centered on Truth-{Monday Manna}", + "text": "Centered on Truth- { Monday Manna } (2010-09-06 14:49)", "verified": true, "linkedPage": 260 }, { "level": 0, - "text": "Fasten to Truth", + "text": "Fasten to Truth (2010-09-08 02:52)", "verified": true, "linkedPage": 263 }, { "level": 0, - "text": "Looking Unto Him", + "text": "Looking Unto Him (2010-09-11 11:50)", "verified": true, "linkedPage": 267 }, { "level": 0, - "text": "Darkness Doesn\u0019t Last", + "text": "Darkness Doesn \u0019 t Last (2010-09-13 12:40)", "verified": true, "linkedPage": 270 }, { "level": 0, - "text": "No Girls Allowed:Devotions for Boys", + "text": "No Girls Allowed:Devotions for Boys (2010-09-14 08:00)", "verified": true, "linkedPage": 272 }, { "level": 0, - "text": "Web-Free Building", + "text": "Web-Free Building (2010-09-15 00:00)", "verified": true, "linkedPage": 273 }, { "level": 0, - "text": "You Know How to Brighten the Day", + "text": "You Know How to Brighten the Day (2010-09-17 07:00)", "verified": true, "linkedPage": 277 }, { "level": 0, - "text": "Victory Through Him", + "text": "Victory Through Him (2010-09-18 19:30)", "verified": true, "linkedPage": 281 }, { "level": 0, - "text": "But, I want to go this way{Monday Manna}", + "text": "But, I want to go this way { Monday Manna } (2010-09-20 23:23)", "verified": true, "linkedPage": 283 }, { "level": 0, - "text": "Psalms{Life Change Series}", + "text": "Psalms { Life Change Series } (2010-09-21 06:00)", "verified": true, "linkedPage": 285 }, { "level": 0, - "text": "Heard the News", + "text": "Heard the News (2010-09-22 02:25)", "verified": true, "linkedPage": 287 }, { "level": 0, - "text": "Stress Free Life :Seven Keys to Extraordinary Life", + "text": "Stress Free Life :Seven Keys to Extraordinary Life (2010-09-26 23:19)", "verified": true, "linkedPage": 291 }, { "level": 0, - "text": "Just a Few Steps From Home", + "text": "Just a Few Steps From Home (2010-09-27 17:34)", "verified": true, "linkedPage": 294 }, { "level": 0, - "text": "Spreading the Sweet Stuff", + "text": "Spreading the Sweet Stuff (2010-09-29 00:00)", "verified": true, "linkedPage": 296 }, { "level": 0, - "text": "1.8 October", + "text": "1.8 October", "verified": true, "linkedPage": 300 }, { "level": 0, - "text": "He\u0019s Still Working Miracles", + "text": "He \u0019 s Still Working Miracles (2010-10-01 17:13)", "verified": true, "linkedPage": 300 }, { "level": 0, - "text": "The Familiar Stranger{Teaser Tuesday}", + "text": "The Familiar Stranger { Teaser Tuesday } (2010-10-05 05:00)", "verified": true, "linkedPage": 302 }, { "level": 0, - "text": "As Weeks Go By", + "text": "As Weeks Go By (2010-10-05 23:30)", "verified": true, "linkedPage": 303 }, { "level": 0, - "text": "Pebble or Rock", + "text": "Pebble or Rock (2010-10-07 10:46)", "verified": true, "linkedPage": 306 }, { "level": 0, - "text": "A Prayer", + "text": "A Prayer (2010-10-08 11:44)", "verified": true, "linkedPage": 310 }, { "level": 0, - "text": "Can you give it all away?", + "text": "Can you give it all away? (2010-10-12 23:30)", "verified": true, "linkedPage": 312 }, { "level": 0, - "text": "Just a Matter of Moments", + "text": "Just a Matter of Moments (2010-10-15 01:45)", "verified": true, "linkedPage": 317 }, { "level": 0, - "text": "Not Without a Fight!", + "text": "Not Without a Fight! (2010-10-18 11:29)", "verified": true, "linkedPage": 319 }, { "level": 0, - "text": "A Never Ending Hope", + "text": "A Never Ending Hope (2010-10-19 20:00)", "verified": true, "linkedPage": 324 }, { "level": 0, - "text": "The Waiting ̃ Blog Tour", + "text": "The Waiting ̃ Blog Tour (2010-10-20 08:00)", "verified": true, "linkedPage": 328 }, { "level": 0, - "text": "Children Learn What They Live", + "text": "Children Learn What They Live (2010-10-23 22:55)", "verified": true, "linkedPage": 331 }, { "level": 0, - "text": "The Artist", + "text": "The Artist (2010-10-24 13:47)", "verified": true, "linkedPage": 332 }, { "level": 0, - "text": "Mailbox Monday", + "text": "Mailbox Monday (2010-10-25 13:16)", "verified": true, "linkedPage": 333 }, { "level": 0, - "text": "Flourish", + "text": "Flourish (2010-10-26 04:02)", "verified": true, "linkedPage": 337 }, { "level": 0, - "text": "Slipping Away", + "text": "Slipping Away (2010-10-26 23:00)", "verified": true, "linkedPage": 338 }, { "level": 0, - "text": "Got Questions for You", + "text": "Got Questions for You (2010-10-30 20:14)", "verified": true, "linkedPage": 342 }, { "level": 0, - "text": "1.9 November", + "text": "1.9 November", "verified": true, "linkedPage": 347 }, { "level": 0, - "text": "Despite What\u0019s Seen", + "text": "Despite What \u0019 s Seen (2010-11-01 21:40)", "verified": true, "linkedPage": 347 }, { "level": 0, - "text": "Sleep But No Rest", + "text": "Sleep But No Rest (2010-11-02 23:00)", "verified": true, "linkedPage": 352 }, { "level": 0, - "text": "It\u0019s No Secret by Rachel Olsen", + "text": "It \u0019 s No Secret by Rachel Olsen (2010-11-09 06:01)", "verified": true, "linkedPage": 358 }, { "level": 0, - "text": "Do You Want It or Not?", + "text": "Do You Want It or Not? (2010-11-10 00:00)", "verified": true, "linkedPage": 360 }, { "level": 0, - "text": "The Need", + "text": "The Need (2010-11-13 06:13)", "verified": true, "linkedPage": 365 }, { "level": 0, - "text": "Tuesday\u0019s T(s): Teaser & Thanks", + "text": "Tuesday \u0019 s T(s): Teaser & Thanks (2010-11-16 09:00)", "verified": true, "linkedPage": 368 }, { "level": 0, - "text": "Ever Asked Why?", + "text": "Ever Asked Why? (2010-11-17 06:03)", "verified": true, "linkedPage": 370 }, { "level": 0, - "text": "Any time is a good time", + "text": "Any time is a good time (2010-11-19 12:33)", "verified": true, "linkedPage": 375 }, { "level": 0, - "text": "In Need of a Boost", + "text": "In Need of a Boost (2010-11-22 14:26)", "verified": true, "linkedPage": 376 }, { "level": 0, - "text": "The Real ID", + "text": "The Real ID (2010-11-24 05:02)", "verified": true, "linkedPage": 378 } diff --git a/examples/Watered-Soul-Blog-Book/removeRepetitiveItems.json b/examples/Watered-Soul-Blog-Book/removeRepetitiveItems.json index f7cfd28..529761d 100644 --- a/examples/Watered-Soul-Blog-Book/removeRepetitiveItems.json +++ b/examples/Watered-Soul-Blog-Book/removeRepetitiveItems.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 24.7871, - "mostUsedHeight": 9, + "mostUsedHeight": 9.9626, "minX": 35.99999999999977, "maxX": 1433.711, "minY": 39.59999999999997, diff --git a/examples/Watered-Soul-Blog-Book/sortbyX.json b/examples/Watered-Soul-Blog-Book/sortbyX.json index 2e58214..f20a7c2 100644 --- a/examples/Watered-Soul-Blog-Book/sortbyX.json +++ b/examples/Watered-Soul-Blog-Book/sortbyX.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 24.7871, - "mostUsedHeight": 9, + "mostUsedHeight": 9.9626, "minX": 35.99999999999977, "maxX": 1433.711, "minY": 39.59999999999997, diff --git a/examples/WoodUp/detectTOC.json b/examples/WoodUp/detectTOC.json index 291d5ab..d1d6b64 100644 --- a/examples/WoodUp/detectTOC.json +++ b/examples/WoodUp/detectTOC.json @@ -51,43 +51,43 @@ "entries": [ { "level": 0, - "text": "Einleitung", + "text": "Ein leitung", "verified": true, "linkedPage": 1 }, { "level": 0, - "text": "Neuester Stand der Technik der Vergasung von Holzbiomasse in Südtirol und technisch-wirtschaftliche Analyse möglicher Verbesserungen in Hinblick auf eine polygenerative Strukturierung", + "text": "Neu e ster Stand der Technik der Vergasung von Holzbiomasse in Südtirol und technisch - wirtschaftliche Analyse möglicher Verbesserungen in Hinblick auf eine polygenerative Strukturierung", "verified": true, "linkedPage": 5 }, { "level": 0, - "text": "Extraktion aus Holzrückständen für Anwendungen in der Lebensmittel-und Pharmabranche", + "text": "Extraktion aus Holzrückständen für Anwendungen in der Lebensmittel - und Pharmabranche", "verified": true, "linkedPage": 49 }, { "level": 0, - "text": "Nutzung von Kohle als Bodenverbesserungsmittel:Keim-und Phytotoxizitätstests mit Kohle aus Südtiroler Vergasungsanlagen", + "text": "Nutzung von Kohle als B odenverbesserungsmittel: Keim - und Phytotoxizitätstests mit Kohle aus Südtiroler Vergasungsanlagen", "verified": true, "linkedPage": 75 }, { "level": 0, - "text": "Auswirkungen der Einbringung von Biochar in den Boden auf Ertrag und Qualität von Reb-und Obst-anlagen in SüdtirolLösch", + "text": "Auswirkungen der Einbringung von Biochar in den Boden auf Ertrag und Qualität von Reb - und Obst - anlagen in Südtirol", "verified": true, "linkedPage": 95 }, { "level": 0, - "text": "Anwendung von Biochar als Bodenverbesserungsmittel: Wirkungen auf den Stickstoffzyklus und die Trockenstresstoleranz beiim Topf angebauten Weinpflanzenanotelli", + "text": "Anwendung von Biochar als B odenverbesserungs mittel: Wirkungen auf den Stickstoffzyklus und die Trockenstresstoleranz bei im Topf angebauten Weinpflanzen", "verified": true, "linkedPage": 143 }, { "level": 0, - "text": "Wirkung des Zusatzes von Biochar zum Boden auf Treibhausgas-Emissionen und Kohlenstoffbestand----ch", + "text": "Wirkung des Zusatzes von Biochar zum Boden auf Treibhausgas - Emissionen und Kohlenstoffbestand", "verified": true, "linkedPage": 173 }, diff --git a/examples/compressed.tracemonkey-pldi-09/detectTOC.json b/examples/compressed.tracemonkey-pldi-09/detectTOC.json index e8fc710..349cfe7 100644 --- a/examples/compressed.tracemonkey-pldi-09/detectTOC.json +++ b/examples/compressed.tracemonkey-pldi-09/detectTOC.json @@ -35,7 +35,7 @@ ], "globals": { "maxHeight": 17.9328, - "mostUsedHeight": 8, + "mostUsedHeight": 8.9664, "minX": 53.99990000000005, "maxX": 553.8755000000001, "minY": 68.44329999999982, diff --git a/examples/compressed.tracemonkey-pldi-09/removeRepetitiveItems.json b/examples/compressed.tracemonkey-pldi-09/removeRepetitiveItems.json index 10f9838..0e9d274 100644 --- a/examples/compressed.tracemonkey-pldi-09/removeRepetitiveItems.json +++ b/examples/compressed.tracemonkey-pldi-09/removeRepetitiveItems.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 17.9328, - "mostUsedHeight": 8, + "mostUsedHeight": 8.9664, "minX": 53.99990000000005, "maxX": 553.8755000000001, "minY": 68.44329999999982, diff --git a/examples/dict/detectTOC.json b/examples/dict/detectTOC.json index e942038..e6745f8 100644 --- a/examples/dict/detectTOC.json +++ b/examples/dict/detectTOC.json @@ -35,7 +35,7 @@ ], "globals": { "maxHeight": 24.7871, - "mostUsedHeight": 11, + "mostUsedHeight": 11.9551, "minX": 52.262, "maxX": 571.0594300000001, "minY": 76.19790000000002, @@ -83,7 +83,7 @@ }, { "level": 0, - "text": "2. Polytopes, polyhedra, Farkas’lemma, and linear programming", + "text": "2. Polytopes, polyhedra, Farkas’ lemma, and linear programming", "verified": true, "linkedPage": 23 }, @@ -113,7 +113,7 @@ }, { "level": 0, - "text": "3. Matchings and covers inbipartite graphs", + "text": "3. Matchings and covers in bipartite graphs", "verified": true, "linkedPage": 39 }, @@ -125,7 +125,7 @@ }, { "level": 0, - "text": "3.2.M-augmenting paths", + "text": "3.2. M -augmenting paths", "verified": true, "linkedPage": 40 }, @@ -155,7 +155,7 @@ }, { "level": 0, - "text": "4. Menger’s theorem, flows, andcirculations", + "text": "4. Menger’s theorem, flows, and circulations", "verified": true, "linkedPage": 54 }, @@ -203,7 +203,7 @@ }, { "level": 0, - "text": "5.1. Tutte’s 1-factor theorem and the Tutte-Bergeformula", + "text": "5.1. Tutte’s 1-factor theorem and the Tutte-Berge formula", "verified": true, "linkedPage": 78 }, @@ -233,7 +233,7 @@ }, { "level": 0, - "text": "6. Problems, algorithms, andrunning time", + "text": "6. Problems, algorithms, and running time", "verified": true, "linkedPage": 97 }, @@ -299,7 +299,7 @@ }, { "level": 0, - "text": "7. Cliques, stable sets, andcolourings", + "text": "7. Cliques, stable sets, and colourings", "verified": true, "linkedPage": 111 }, @@ -335,7 +335,7 @@ }, { "level": 0, - "text": "8. Integer linear programming andtotally unimodular matrices", + "text": "8. Integer linear programming and totally unimodular matrices", "verified": true, "linkedPage": 132 }, @@ -353,7 +353,7 @@ }, { "level": 0, - "text": "8.3. Totally unimodular matrices from bipartitegraphs", + "text": "8.3. Totally unimodular matrices from bipartite graphs", "verified": true, "linkedPage": 139 }, @@ -365,7 +365,7 @@ }, { "level": 0, - "text": "9. Multicommodity flows anddisjoint paths", + "text": "9. Multicommodity flows and disjoint paths", "verified": true, "linkedPage": 148 }, @@ -401,7 +401,7 @@ }, { "level": 0, - "text": "modity flows", + "text": "9.6. A column generation technique for multicom- modity flows", "verified": true, "linkedPage": 168 }, diff --git a/examples/dict/removeRepetitiveItems.json b/examples/dict/removeRepetitiveItems.json index 38aa938..2216740 100644 --- a/examples/dict/removeRepetitiveItems.json +++ b/examples/dict/removeRepetitiveItems.json @@ -31,7 +31,7 @@ ], "globals": { "maxHeight": 24.7871, - "mostUsedHeight": 11, + "mostUsedHeight": 11.9551, "minX": 52.262, "maxX": 571.0594300000001, "minY": 76.19790000000002, diff --git a/ui/package-lock.json b/ui/package-lock.json index 9236053..eda6949 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -11,6 +11,7 @@ "dependencies": { "@fortawesome/free-solid-svg-icons": "5.15.2", "pdfjs-dist": "2.6.347", + "simple-statistics": "^7.7.0", "string-similarity": "4.0.4", "svelte-file-dropzone": "0.0.15", "uuid": "^8.3.2" @@ -4657,6 +4658,14 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, + "node_modules/simple-statistics": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/simple-statistics/-/simple-statistics-7.7.0.tgz", + "integrity": "sha512-TAsZRUJ7FD/yCnm5UBgyWU7bP1gOPsw9n/dVrE8hQ+BF1zJPgDJ5X/MOnxG+HE/7nejSpJLJLdmTh7bkfsFkRw==", + "engines": { + "node": "*" + } + }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -9029,6 +9038,11 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, + "simple-statistics": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/simple-statistics/-/simple-statistics-7.7.0.tgz", + "integrity": "sha512-TAsZRUJ7FD/yCnm5UBgyWU7bP1gOPsw9n/dVrE8hQ+BF1zJPgDJ5X/MOnxG+HE/7nejSpJLJLdmTh7bkfsFkRw==" + }, "simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", diff --git a/ui/package.json b/ui/package.json index cf6c263..1f1dfc9 100644 --- a/ui/package.json +++ b/ui/package.json @@ -22,6 +22,7 @@ "dependencies": { "@fortawesome/free-solid-svg-icons": "5.15.2", "pdfjs-dist": "2.6.347", + "simple-statistics": "^7.7.0", "string-similarity": "4.0.4", "svelte-file-dropzone": "0.0.15", "uuid": "^8.3.2"