diff --git a/services/web/frontend/js/ide/human-readable-logs/HumanReadableLogs.js b/services/web/frontend/js/ide/human-readable-logs/HumanReadableLogs.js index 86c4aa313c..df2523dbb8 100644 --- a/services/web/frontend/js/ide/human-readable-logs/HumanReadableLogs.js +++ b/services/web/frontend/js/ide/human-readable-logs/HumanReadableLogs.js @@ -1,11 +1,12 @@ -import LogParser from '../../vendor/libs/latex-log-parser' +import LatexLogParser from '../log-parser/latex-log-parser' import ruleset from './HumanReadableLogsRules' export default { parse(rawLog, options) { let parsedLogEntries if (typeof rawLog === 'string') { - parsedLogEntries = LogParser.parse(rawLog, options) + const latexLogParser = new LatexLogParser(rawLog, options) + parsedLogEntries = latexLogParser.parse() } else { parsedLogEntries = rawLog } diff --git a/services/web/frontend/js/ide/log-parser/bib-log-parser.js b/services/web/frontend/js/ide/log-parser/bib-log-parser.js new file mode 100644 index 0000000000..38b0f6b58d --- /dev/null +++ b/services/web/frontend/js/ide/log-parser/bib-log-parser.js @@ -0,0 +1,248 @@ +// [fullLine, lineNumber, messageType, message] +const LINE_SPLITTER_REGEX = /^\[(\d+)].*>\s(INFO|WARN|ERROR)\s-\s(.*)$/ + +const MULTILINE_WARNING_REGEX = /^Warning--(.+)\n--line (\d+) of file (.+)$/m +const SINGLELINE_WARNING_REGEX = /^Warning--(.+)$/m +const MULTILINE_ERROR_REGEX = /^(.*)---line (\d+) of file (.*)\n([^]+?)\nI'm skipping whatever remains of this entry$/m +const BAD_CROSS_REFERENCE_REGEX = /^(A bad cross reference---entry ".+?"\nrefers to entry.+?, which doesn't exist)$/m +const MULTILINE_COMMAND_ERROR_REGEX = /^(.*)\n?---line (\d+) of file (.*)\n([^]+?)\nI'm skipping whatever remains of this command$/m +// Errors hit in BST file have a slightly different format +const BST_ERROR_REGEX = /^(.*?)\nwhile executing---line (\d+) of file (.*)/m + +const MESSAGE_LEVELS = { + INFO: 'info', + WARN: 'warning', + ERROR: 'error', +} + +const parserReducer = function (accumulator, parser) { + const consume = function (logText, regex, process) { + let match + let text = logText + const result = [] + const re = regex + let iterationCount = 0 + while ((match = re.exec(text))) { + iterationCount += 1 + const newEntry = process(match) + + // Too many log entries can cause browser crashes + // Construct a too many files error from the last match + var maxErrors = 100 + if (iterationCount >= maxErrors) { + var level = newEntry.level + 's' + newEntry.message = [ + 'Over', + maxErrors, + level, + 'returned. Download raw logs to see full list', + ].join(' ') + newEntry.line = undefined + result.unshift(newEntry) + return [result, ''] + } + + result.push(newEntry) + text = + match.input.slice(0, match.index) + + match.input.slice(match.index + match[0].length + 1, match.input.length) + } + return [result, text] + } + + const [currentErrors, text] = accumulator + const [regex, process] = parser + const [errors, _remainingText] = consume(text, regex, process) + return [currentErrors.concat(errors), _remainingText] +} + +export default class BibLogParser { + constructor(text, options) { + if (typeof text !== 'string') { + throw new Error('BibLogParser Error: text parameter must be a string') + } + this.text = text.replace(/(\r\n)|\r/g, '\n') + this.options = options || {} + this.lines = text.split('\n') + + // each parser is a pair of [regex, processFunction], where processFunction + // describes how to transform the regex mactch into a log entry object. + this.warningParsers = [ + [ + MULTILINE_WARNING_REGEX, + function (match) { + const [fullMatch, message, lineNumber, fileName] = match + return { + file: fileName, + level: 'warning', + message, + line: lineNumber, + raw: fullMatch, + } + }, + ], + [ + SINGLELINE_WARNING_REGEX, + function (match) { + const [fullMatch, message] = match + return { + file: '', + level: 'warning', + message, + line: '', + raw: fullMatch, + } + }, + ], + ] + this.errorParsers = [ + [ + MULTILINE_ERROR_REGEX, + function (match) { + const [ + fullMatch, + firstMessage, + lineNumber, + fileName, + secondMessage, + ] = match + return { + file: fileName, + level: 'error', + message: firstMessage + '\n' + secondMessage, + line: lineNumber, + raw: fullMatch, + } + }, + ], + [ + BAD_CROSS_REFERENCE_REGEX, + function (match) { + const [fullMatch, message] = match + return { + file: '', + level: 'error', + message, + line: '', + raw: fullMatch, + } + }, + ], + [ + MULTILINE_COMMAND_ERROR_REGEX, + function (match) { + const [ + fullMatch, + firstMessage, + lineNumber, + fileName, + secondMessage, + ] = match + return { + file: fileName, + level: 'error', + message: firstMessage + '\n' + secondMessage, + line: lineNumber, + raw: fullMatch, + } + }, + ], + [ + BST_ERROR_REGEX, + function (match) { + const [fullMatch, firstMessage, lineNumber, fileName] = match + return { + file: fileName, + level: 'error', + message: firstMessage, + line: lineNumber, + raw: fullMatch, + } + }, + ], + ] + } + + parseBibtex() { + let allErrors + const result = { + all: [], + errors: [], + warnings: [], + files: [], // not used + typesetting: [], // not used + } + // reduce over the parsers, starting with the log text, + let [allWarnings, remainingText] = this.warningParsers.reduce( + parserReducer, + [[], this.text] + ) + ;[allErrors, remainingText] = this.errorParsers.reduce(parserReducer, [ + [], + remainingText, + ]) + result.warnings = allWarnings + result.errors = allErrors + result.all = allWarnings.concat(allErrors) + return result + } + + parseBiber() { + const result = { + all: [], + errors: [], + warnings: [], + files: [], // not used + typesetting: [], // not used + } + this.lines.forEach(function (line) { + const match = line.match(LINE_SPLITTER_REGEX) + if (match) { + const fullLine = match[0] + const messageType = match[2] + const message = match[3] + const newEntry = { + file: '', + level: MESSAGE_LEVELS[messageType] || 'INFO', + message, + line: '', + raw: fullLine, + } + // try extract file, line-number and the 'real' message from lines like: + // BibTeX subsystem: /.../original.bib_123.utf8, line 8, syntax error: it's bad + const lineMatch = newEntry.message.match( + /^BibTeX subsystem: \/.+\/(\w+\.\w+)_.+, line (\d+), (.+)$/ + ) + if (lineMatch && lineMatch.length === 4) { + const fileName = lineMatch[1] + const lineNumber = lineMatch[2] + const realMessage = lineMatch[3] + newEntry.file = fileName + newEntry.line = lineNumber + newEntry.message = realMessage + } + result.all.push(newEntry) + switch (newEntry.level) { + case 'error': + return result.errors.push(newEntry) + case 'warning': + return result.warnings.push(newEntry) + } + } + }) + return result + } + + parse() { + const firstLine = this.lines[0] + if (firstLine.match(/^.*INFO - This is Biber.*$/)) { + return this.parseBiber() + } else if (firstLine.match(/^This is BibTeX, Version.+$/)) { + return this.parseBibtex() + } else { + throw new Error( + 'BibLogParser Error: cannot determine whether text is biber or bibtex output' + ) + } + } +} diff --git a/services/web/frontend/js/ide/log-parser/latex-log-parser.js b/services/web/frontend/js/ide/log-parser/latex-log-parser.js new file mode 100644 index 0000000000..4d55e621a2 --- /dev/null +++ b/services/web/frontend/js/ide/log-parser/latex-log-parser.js @@ -0,0 +1,377 @@ +// Define some constants +const LOG_WRAP_LIMIT = 79 +const LATEX_WARNING_REGEX = /^LaTeX Warning: (.*)$/ +const HBOX_WARNING_REGEX = /^(Over|Under)full \\(v|h)box/ +const PACKAGE_WARNING_REGEX = /^(Package \b.+\b Warning:.*)$/ +// This is used to parse the line number from common latex warnings +const LINES_REGEX = /lines? ([0-9]+)/ +// This is used to parse the package name from the package warnings +const PACKAGE_REGEX = /^Package (\b.+\b) Warning/ + +const STATE = { + NORMAL: 0, + ERROR: 1, +} + +export default class LatexParser { + constructor(text, options) { + this.state = STATE.NORMAL + options = options || {} + this.fileBaseNames = options.fileBaseNames || [/compiles/, /\/usr\/local/] + this.ignoreDuplicates = options.ignoreDuplicates + this.data = [] + this.fileStack = [] + this.currentFileList = this.rootFileList = [] + this.openParens = 0 + this.log = new LogText(text) + } + + parse() { + while ((this.currentLine = this.log.nextLine()) !== false) { + if (this.state === STATE.NORMAL) { + if (this.currentLineIsError()) { + this.state = STATE.ERROR + this.currentError = { + line: null, + file: this.currentFilePath, + level: 'error', + message: this.currentLine.slice(2), + content: '', + raw: this.currentLine + '\n', + } + } else if (this.currentLineIsFileLineError()) { + this.state = STATE.ERROR + this.parseFileLineError() + } else if (this.currentLineIsRunawayArgument()) { + this.parseRunawayArgumentError() + } else if (this.currentLineIsWarning()) { + this.parseSingleWarningLine(LATEX_WARNING_REGEX) + } else if (this.currentLineIsHboxWarning()) { + this.parseHboxLine() + } else if (this.currentLineIsPackageWarning()) { + this.parseMultipleWarningLine() + } else { + this.parseParensForFilenames() + } + } + if (this.state === STATE.ERROR) { + this.currentError.content += this.log + .linesUpToNextMatchingLine(/^l\.[0-9]+/) + .join('\n') + this.currentError.content += '\n' + this.currentError.content += this.log + .linesUpToNextWhitespaceLine() + .join('\n') + this.currentError.content += '\n' + this.currentError.content += this.log + .linesUpToNextWhitespaceLine() + .join('\n') + this.currentError.raw += this.currentError.content + const lineNo = this.currentError.raw.match(/l\.([0-9]+)/) + if (lineNo && this.currentError.line === null) { + this.currentError.line = parseInt(lineNo[1], 10) + } + this.data.push(this.currentError) + this.state = STATE.NORMAL + } + } + return this.postProcess(this.data) + } + + currentLineIsError() { + return this.currentLine[0] === '!' + } + + currentLineIsFileLineError() { + return /^\/.*:\d+: .*/.test(this.currentLine) + } + + currentLineIsRunawayArgument() { + return this.currentLine.match(/^Runaway argument/) + } + + currentLineIsWarning() { + return !!this.currentLine.match(LATEX_WARNING_REGEX) + } + + currentLineIsPackageWarning() { + return !!this.currentLine.match(PACKAGE_WARNING_REGEX) + } + + currentLineIsHboxWarning() { + return !!this.currentLine.match(HBOX_WARNING_REGEX) + } + + parseFileLineError() { + const result = this.currentLine.match(/^(\/.*):(\d+): (.*)/) + this.currentError = { + line: result[2], + file: result[1], + level: 'error', + message: result[3], + content: '', + raw: this.currentLine + '\n', + } + } + + parseRunawayArgumentError() { + this.currentError = { + line: null, + file: this.currentFilePath, + level: 'error', + message: this.currentLine, + content: '', + raw: this.currentLine + '\n', + } + this.currentError.content += this.log + .linesUpToNextWhitespaceLine() + .join('\n') + this.currentError.content += '\n' + this.currentError.content += this.log + .linesUpToNextWhitespaceLine() + .join('\n') + this.currentError.raw += this.currentError.content + const lineNo = this.currentError.raw.match(/l\.([0-9]+)/) + if (lineNo) { + this.currentError.line = parseInt(lineNo[1], 10) + } + return this.data.push(this.currentError) + } + + parseSingleWarningLine(prefixRegex) { + const warningMatch = this.currentLine.match(prefixRegex) + if (!warningMatch) { + return + } + const warning = warningMatch[1] + const lineMatch = warning.match(LINES_REGEX) + const line = lineMatch ? parseInt(lineMatch[1], 10) : null + this.data.push({ + line, + file: this.currentFilePath, + level: 'warning', + message: warning, + raw: warning, + }) + } + + parseMultipleWarningLine() { + // Some package warnings are multiple lines, let's parse the first line + let warningMatch = this.currentLine.match(PACKAGE_WARNING_REGEX) + if (!warningMatch) { + return + } + // Something strange happened, return early + const warningLines = [warningMatch[1]] + let lineMatch = this.currentLine.match(LINES_REGEX) + let line = lineMatch ? parseInt(lineMatch[1], 10) : null + const packageMatch = this.currentLine.match(PACKAGE_REGEX) + const packageName = packageMatch[1] + // Regex to get rid of the unnecesary (packagename) prefix in most multi-line warnings + const prefixRegex = new RegExp( + '(?:\\(' + packageName + '\\))*[\\s]*(.*)', + 'i' + ) + // After every warning message there's a blank line, let's use it + while ((this.currentLine = this.log.nextLine())) { + lineMatch = this.currentLine.match(LINES_REGEX) + line = lineMatch ? parseInt(lineMatch[1], 10) : line + warningMatch = this.currentLine.match(prefixRegex) + warningLines.push(warningMatch[1]) + } + const rawMessage = warningLines.join(' ') + this.data.push({ + line, + file: this.currentFilePath, + level: 'warning', + message: rawMessage, + raw: rawMessage, + }) + } + + parseHboxLine() { + const lineMatch = this.currentLine.match(LINES_REGEX) + const line = lineMatch ? parseInt(lineMatch[1], 10) : null + this.data.push({ + line, + file: this.currentFilePath, + level: 'typesetting', + message: this.currentLine, + raw: this.currentLine, + }) + } + + // Check if we're entering or leaving a new file in this line + + parseParensForFilenames() { + const pos = this.currentLine.search(/\(|\)/) + if (pos !== -1) { + const token = this.currentLine[pos] + this.currentLine = this.currentLine.slice(pos + 1) + if (token === '(') { + const filePath = this.consumeFilePath() + if (filePath) { + this.currentFilePath = filePath + const newFile = { + path: filePath, + files: [], + } + this.fileStack.push(newFile) + this.currentFileList.push(newFile) + this.currentFileList = newFile.files + } else { + this.openParens++ + } + } else if (token === ')') { + if (this.openParens > 0) { + this.openParens-- + } else { + if (this.fileStack.length > 1) { + this.fileStack.pop() + const previousFile = this.fileStack[this.fileStack.length - 1] + this.currentFilePath = previousFile.path + this.currentFileList = previousFile.files + } + } + } + // else { + // Something has gone wrong but all we can do now is ignore it :( + // } + // Process the rest of the line + this.parseParensForFilenames() + } + } + + consumeFilePath() { + // Our heuristic for detecting file names are rather crude + // A file may not contain a ')' in it + // To be a file path it must have at least one / + if (!this.currentLine.match(/^\/?([^ )]+\/)+/)) { + return false + } + let endOfFilePath = this.currentLine.search(/ |\)/) + + // handle the case where there is a space in a filename + while (endOfFilePath !== -1 && this.currentLine[endOfFilePath] === ' ') { + const partialPath = this.currentLine.slice(0, endOfFilePath) + // consider the file matching done if the space is preceded by a file extension (e.g. ".tex") + if (/\.\w+$/.test(partialPath)) { + break + } + // advance to next space or ) or end of line + const remainingPath = this.currentLine.slice(endOfFilePath + 1) + // consider file matching done if current path is followed by any of "()[] + if (/^\s*["()[\]]/.test(remainingPath)) { + break + } + const nextEndOfPath = remainingPath.search(/[ "()[\]]/) + if (nextEndOfPath === -1) { + endOfFilePath = -1 + } else { + endOfFilePath += nextEndOfPath + 1 + } + } + let path + if (endOfFilePath === -1) { + path = this.currentLine + this.currentLine = '' + } else { + path = this.currentLine.slice(0, endOfFilePath) + this.currentLine = this.currentLine.slice(endOfFilePath) + } + return path + } + + postProcess(data) { + const all = [] + const errors = [] + const warnings = [] + const typesetting = [] + const hashes = [] + + const hashEntry = entry => entry.raw + + let i = 0 + while (i < data.length) { + if (this.ignoreDuplicates && hashes.indexOf(hashEntry(data[i])) > -1) { + i++ + continue + } + if (data[i].level === 'error') { + errors.push(data[i]) + } else if (data[i].level === 'typesetting') { + typesetting.push(data[i]) + } else if (data[i].level === 'warning') { + warnings.push(data[i]) + } + all.push(data[i]) + hashes.push(hashEntry(data[i])) + i++ + } + return { + errors, + warnings, + typesetting, + all, + files: this.rootFileList, + } + } +} + +const LogText = class LogText { + constructor(text) { + this.text = text.replace(/(\r\n)|\r/g, '\n') + // Join any lines which look like they have wrapped. + const wrappedLines = this.text.split('\n') + this.lines = [wrappedLines[0]] + let i = 1 + while (i < wrappedLines.length) { + // If the previous line is as long as the wrap limit then + // append this line to it. + // Some lines end with ... when LaTeX knows it's hit the limit + // These shouldn't be wrapped. + if ( + wrappedLines[i - 1].length === LOG_WRAP_LIMIT && + wrappedLines[i - 1].slice(-3) !== '...' + ) { + this.lines[this.lines.length - 1] += wrappedLines[i] + } else { + this.lines.push(wrappedLines[i]) + } + i++ + } + this.row = 0 + } + + nextLine() { + this.row++ + if (this.row >= this.lines.length) { + return false + } else { + return this.lines[this.row] + } + } + + rewindLine() { + this.row-- + } + + linesUpToNextWhitespaceLine() { + return this.linesUpToNextMatchingLine(/^ *$/) + } + + linesUpToNextMatchingLine(match) { + const lines = [] + let nextLine = this.nextLine() + if (nextLine !== false) { + lines.push(nextLine) + } + while (nextLine !== false && !nextLine.match(match) && nextLine !== false) { + nextLine = this.nextLine() + if (nextLine !== false) { + lines.push(nextLine) + } + } + return lines + } +} diff --git a/services/web/frontend/js/ide/pdf/controllers/PdfController.js b/services/web/frontend/js/ide/pdf/controllers/PdfController.js index f4b11dc39e..5f30717ad6 100644 --- a/services/web/frontend/js/ide/pdf/controllers/PdfController.js +++ b/services/web/frontend/js/ide/pdf/controllers/PdfController.js @@ -1,6 +1,6 @@ import App from '../../../base' import HumanReadableLogs from '../../human-readable-logs/HumanReadableLogs' -import BibLogParser from '../../../vendor/libs/bib-log-parser' +import BibLogParser from '../../log-parser/bib-log-parser' import PreviewPane from '../../../features/preview/components/preview-pane' import { react2angular } from 'react2angular' import { rootContext } from '../../../shared/context/root-context' @@ -650,7 +650,8 @@ App.controller( } function processBiber(log) { - const { errors, warnings } = BibLogParser.parse(log, {}) + const bibLogParser = new BibLogParser(log, {}) + const { errors, warnings } = bibLogParser.parse(log, {}) const all = [].concat(errors, warnings) accumulateResults({ type: 'BibTeX:', all, errors, warnings }) } diff --git a/services/web/frontend/js/vendor/libs/bib-log-parser.js b/services/web/frontend/js/vendor/libs/bib-log-parser.js deleted file mode 100644 index d0ae35b9d5..0000000000 --- a/services/web/frontend/js/vendor/libs/bib-log-parser.js +++ /dev/null @@ -1,219 +0,0 @@ -// Generated by CoffeeScript 1.10.0 -define(function() { - var BAD_CROSS_REFERENCE_REGEX, BibLogParser, LINE_SPLITTER_REGEX, MESSAGE_LEVELS, MULTILINE_COMMAND_ERROR_REGEX, MULTILINE_ERROR_REGEX, MULTILINE_WARNING_REGEX, SINGLELINE_WARNING_REGEX, consume, errorParsers, warningParsers; - LINE_SPLITTER_REGEX = /^\[(\d+)].*>\s(INFO|WARN|ERROR)\s-\s(.*)$/; - MESSAGE_LEVELS = { - "INFO": "info", - "WARN": "warning", - "ERROR": "error" - }; - BibLogParser = function(text, options) { - if (typeof text !== 'string') { - throw new Error("BibLogParser Error: text parameter must be a string"); - } - this.text = text.replace(/(\r\n)|\r/g, '\n'); - this.options = options || {}; - this.lines = text.split('\n'); - }; - consume = function(logText, regex, process) { - var iterationCount, match, newEntry, re, result, text; - text = logText; - result = []; - re = regex; - iterationCount = 0; - while (match = re.exec(text)) { - iterationCount += 1; - newEntry = process(match); - - // Too many log entries can cause browser crashes - // Construct a too many files error from the last match - var maxErrors = 100; - if (iterationCount >= maxErrors) { - var level = newEntry.level + "s"; - newEntry.message = [ - "Over", - maxErrors, - level, - "returned. Download raw logs to see full list" - ].join(" "); - newEntry.line = undefined; - result.unshift(newEntry); - return [result, ""]; - } - - result.push(newEntry); - text = (match.input.slice(0, match.index)) + (match.input.slice(match.index + match[0].length + 1, match.input.length)); - } - return [result, text]; - }; - MULTILINE_WARNING_REGEX = /^Warning--(.+)\n--line (\d+) of file (.+)$/m; - SINGLELINE_WARNING_REGEX = /^Warning--(.+)$/m; - MULTILINE_ERROR_REGEX = /^(.*)---line (\d+) of file (.*)\n([^]+?)\nI'm skipping whatever remains of this entry$/m; - BAD_CROSS_REFERENCE_REGEX = /^(A bad cross reference---entry ".+?"\nrefers to entry.+?, which doesn't exist)$/m; - MULTILINE_COMMAND_ERROR_REGEX = /^(.*)\n?---line (\d+) of file (.*)\n([^]+?)\nI'm skipping whatever remains of this command$/m; - // Errors hit in BST file have a slightly different format - BST_ERROR_REGEX = /^(.*?)\nwhile executing---line (\d+) of file (.*)/m; - warningParsers = [ - [ - MULTILINE_WARNING_REGEX, function(match) { - var fileName, fullMatch, lineNumber, message; - fullMatch = match[0], message = match[1], lineNumber = match[2], fileName = match[3]; - return { - file: fileName, - level: "warning", - message: message, - line: lineNumber, - raw: fullMatch - }; - } - ], [ - SINGLELINE_WARNING_REGEX, function(match) { - var fullMatch, message; - fullMatch = match[0], message = match[1]; - return { - file: '', - level: "warning", - message: message, - line: '', - raw: fullMatch - }; - } - ] - ]; - errorParsers = [ - [ - MULTILINE_ERROR_REGEX, function(match) { - var fileName, firstMessage, fullMatch, lineNumber, secondMessage; - fullMatch = match[0], firstMessage = match[1], lineNumber = match[2], fileName = match[3], secondMessage = match[4]; - return { - file: fileName, - level: "error", - message: firstMessage + '\n' + secondMessage, - line: lineNumber, - raw: fullMatch - }; - } - ], [ - BAD_CROSS_REFERENCE_REGEX, function(match) { - var fullMatch, message; - fullMatch = match[0], message = match[1]; - return { - file: '', - level: "error", - message: message, - line: '', - raw: fullMatch - }; - } - ], [ - MULTILINE_COMMAND_ERROR_REGEX, function(match) { - var fileName, firstMessage, fullMatch, lineNumber, secondMessage; - fullMatch = match[0], firstMessage = match[1], lineNumber = match[2], fileName = match[3], secondMessage = match[4]; - return { - file: fileName, - level: "error", - message: firstMessage + '\n' + secondMessage, - line: lineNumber, - raw: fullMatch - }; - } - ],[ - BST_ERROR_REGEX, function(match) { - var fileName, firstMessage, fullMatch, lineNumber, secondMessage; - fullMatch = match[0], firstMessage = match[1], lineNumber = match[2], fileName = match[3]; - return { - file: fileName, - level: "error", - message: firstMessage, - line: lineNumber, - raw: fullMatch - }; - } - ] - ]; - - (function() { - this.parseBibtex = function() { - var allErrors, allWarnings, ref, ref1, remainingText, result; - result = { - all: [], - errors: [], - warnings: [], - files: [], - typesetting: [] - }; - ref = warningParsers.reduce(function(accumulator, parser) { - var _remainingText, currentWarnings, process, ref, regex, text, warnings; - currentWarnings = accumulator[0], text = accumulator[1]; - regex = parser[0], process = parser[1]; - ref = consume(text, regex, process), warnings = ref[0], _remainingText = ref[1]; - return [currentWarnings.concat(warnings), _remainingText]; - }, [[], this.text]), allWarnings = ref[0], remainingText = ref[1]; - ref1 = errorParsers.reduce(function(accumulator, parser) { - var _remainingText, currentErrors, errors, process, ref1, regex, text; - currentErrors = accumulator[0], text = accumulator[1]; - regex = parser[0], process = parser[1]; - ref1 = consume(text, regex, process), errors = ref1[0], _remainingText = ref1[1]; - return [currentErrors.concat(errors), _remainingText]; - }, [[], remainingText]), allErrors = ref1[0], remainingText = ref1[1]; - result.warnings = allWarnings; - result.errors = allErrors; - result.all = allWarnings.concat(allErrors); - return result; - }; - this.parseBiber = function() { - var result; - result = { - all: [], - errors: [], - warnings: [], - files: [], - typesetting: [] - }; - this.lines.forEach(function(line) { - var _, fileName, fullLine, lineMatch, lineNumber, match, message, messageType, newEntry, realMessage; - match = line.match(LINE_SPLITTER_REGEX); - if (match) { - fullLine = match[0], lineNumber = match[1], messageType = match[2], message = match[3]; - newEntry = { - file: '', - level: MESSAGE_LEVELS[messageType] || "INFO", - message: message, - line: '', - raw: fullLine - }; - lineMatch = newEntry.message.match(/^BibTeX subsystem: \/.+\/(\w+\.\w+)_.+, line (\d+), (.+)$/); - if (lineMatch && lineMatch.length === 4) { - _ = lineMatch[0], fileName = lineMatch[1], lineNumber = lineMatch[2], realMessage = lineMatch[3]; - newEntry.file = fileName; - newEntry.line = lineNumber; - newEntry.message = realMessage; - } - result.all.push(newEntry); - switch (newEntry.level) { - case 'error': - return result.errors.push(newEntry); - case 'warning': - return result.warnings.push(newEntry); - } - } - }); - return result; - }; - return this.parse = function() { - var firstLine; - firstLine = this.lines[0]; - if (firstLine.match(/^.*INFO - This is Biber.*$/)) { - return this.parseBiber(); - } else if (firstLine.match(/^This is BibTeX, Version.+$/)) { - return this.parseBibtex(); - } else { - throw new Error("BibLogParser Error: cannot determine whether text is biber or bibtex output"); - } - }; - }).call(BibLogParser.prototype); - BibLogParser.parse = function(text, options) { - return new BibLogParser(text, options).parse(); - }; - return BibLogParser; -}); diff --git a/services/web/frontend/js/vendor/libs/latex-log-parser.js b/services/web/frontend/js/vendor/libs/latex-log-parser.js deleted file mode 100644 index ec52aa9c4d..0000000000 --- a/services/web/frontend/js/vendor/libs/latex-log-parser.js +++ /dev/null @@ -1,388 +0,0 @@ -define(function () { - // Define some constants - const LOG_WRAP_LIMIT = 79 - const LATEX_WARNING_REGEX = /^LaTeX Warning: (.*)$/ - const HBOX_WARNING_REGEX = /^(Over|Under)full \\(v|h)box/ - const PACKAGE_WARNING_REGEX = /^(Package \b.+\b Warning:.*)$/ - // This is used to parse the line number from common latex warnings - const LINES_REGEX = /lines? ([0-9]+)/ - // This is used to parse the package name from the package warnings - const PACKAGE_REGEX = /^Package (\b.+\b) Warning/ - - const LogText = function (text) { - this.text = text.replace(/(\r\n)|\r/g, '\n') - // Join any lines which look like they have wrapped. - const wrappedLines = this.text.split('\n') - this.lines = [wrappedLines[0]] - let i = 1 - while (i < wrappedLines.length) { - // If the previous line is as long as the wrap limit then - // append this line to it. - // Some lines end with ... when LaTeX knows it's hit the limit - // These shouldn't be wrapped. - if ( - wrappedLines[i - 1].length === LOG_WRAP_LIMIT && - wrappedLines[i - 1].slice(-3) !== '...' - ) { - this.lines[this.lines.length - 1] += wrappedLines[i] - } else { - this.lines.push(wrappedLines[i]) - } - i++ - } - this.row = 0 - } - - ;(function () { - this.nextLine = function () { - this.row++ - if (this.row >= this.lines.length) { - return false - } else { - return this.lines[this.row] - } - } - - this.rewindLine = function () { - this.row-- - } - - this.linesUpToNextWhitespaceLine = function () { - return this.linesUpToNextMatchingLine(/^ *$/) - } - - this.linesUpToNextMatchingLine = function (match) { - const lines = [] - let nextLine = this.nextLine() - if (nextLine !== false) { - lines.push(nextLine) - } - while ( - nextLine !== false && - !nextLine.match(match) && - nextLine !== false - ) { - nextLine = this.nextLine() - if (nextLine !== false) { - lines.push(nextLine) - } - } - return lines - } - }.call(LogText.prototype)) - - const state = { - NORMAL: 0, - ERROR: 1, - } - - const LatexParser = function (text, options) { - this.log = new LogText(text) - this.state = state.NORMAL - options = options || {} - this.fileBaseNames = options.fileBaseNames || [/compiles/, /\/usr\/local/] - this.ignoreDuplicates = options.ignoreDuplicates - this.data = [] - this.fileStack = [] - this.currentFileList = this.rootFileList = [] - this.openParens = 0 - } - - ;(function () { - this.parse = function () { - while ((this.currentLine = this.log.nextLine()) !== false) { - if (this.state === state.NORMAL) { - if (this.currentLineIsError()) { - this.state = state.ERROR - this.currentError = { - line: null, - file: this.currentFilePath, - level: 'error', - message: this.currentLine.slice(2), - content: '', - raw: this.currentLine + '\n', - } - } else if (this.currentLineIsFileLineError()) { - this.state = state.ERROR - this.parseFileLineError() - } else if (this.currentLineIsRunawayArgument()) { - this.parseRunawayArgumentError() - } else if (this.currentLineIsWarning()) { - this.parseSingleWarningLine(LATEX_WARNING_REGEX) - } else if (this.currentLineIsHboxWarning()) { - this.parseHboxLine() - } else if (this.currentLineIsPackageWarning()) { - this.parseMultipleWarningLine() - } else { - this.parseParensForFilenames() - } - } - if (this.state === state.ERROR) { - this.currentError.content += this.log - .linesUpToNextMatchingLine(/^l\.[0-9]+/) - .join('\n') - this.currentError.content += '\n' - this.currentError.content += this.log - .linesUpToNextWhitespaceLine() - .join('\n') - this.currentError.content += '\n' - this.currentError.content += this.log - .linesUpToNextWhitespaceLine() - .join('\n') - this.currentError.raw += this.currentError.content - const lineNo = this.currentError.raw.match(/l\.([0-9]+)/) - if (lineNo && this.currentError.line === null) { - this.currentError.line = parseInt(lineNo[1], 10) - } - this.data.push(this.currentError) - this.state = state.NORMAL - } - } - return this.postProcess(this.data) - } - - this.currentLineIsError = function () { - return this.currentLine[0] === '!' - } - - this.currentLineIsFileLineError = function () { - return /^\/.*:\d+: .*/.test(this.currentLine) - } - - this.currentLineIsRunawayArgument = function () { - return this.currentLine.match(/^Runaway argument/) - } - - this.currentLineIsWarning = function () { - return !!this.currentLine.match(LATEX_WARNING_REGEX) - } - - this.currentLineIsPackageWarning = function () { - return !!this.currentLine.match(PACKAGE_WARNING_REGEX) - } - - this.currentLineIsHboxWarning = function () { - return !!this.currentLine.match(HBOX_WARNING_REGEX) - } - - this.parseFileLineError = function () { - const result = this.currentLine.match(/^(\/.*):(\d+): (.*)/) - this.currentError = { - line: result[2], - file: result[1], - level: 'error', - message: result[3], - content: '', - raw: this.currentLine + '\n', - } - } - - this.parseRunawayArgumentError = function () { - this.currentError = { - line: null, - file: this.currentFilePath, - level: 'error', - message: this.currentLine, - content: '', - raw: this.currentLine + '\n', - } - this.currentError.content += this.log - .linesUpToNextWhitespaceLine() - .join('\n') - this.currentError.content += '\n' - this.currentError.content += this.log - .linesUpToNextWhitespaceLine() - .join('\n') - this.currentError.raw += this.currentError.content - const lineNo = this.currentError.raw.match(/l\.([0-9]+)/) - if (lineNo) { - this.currentError.line = parseInt(lineNo[1], 10) - } - return this.data.push(this.currentError) - } - - this.parseSingleWarningLine = function (prefix_regex) { - const warningMatch = this.currentLine.match(prefix_regex) - if (!warningMatch) { - return - } - const warning = warningMatch[1] - const lineMatch = warning.match(LINES_REGEX) - const line = lineMatch ? parseInt(lineMatch[1], 10) : null - this.data.push({ - line, - file: this.currentFilePath, - level: 'warning', - message: warning, - raw: warning, - }) - } - - this.parseMultipleWarningLine = function () { - // Some package warnings are multiple lines, let's parse the first line - let warningMatch = this.currentLine.match(PACKAGE_WARNING_REGEX) - if (!warningMatch) { - return - } - // Something strange happened, return early - const warning_lines = [warningMatch[1]] - let lineMatch = this.currentLine.match(LINES_REGEX) - let line = lineMatch ? parseInt(lineMatch[1], 10) : null - const packageMatch = this.currentLine.match(PACKAGE_REGEX) - const packageName = packageMatch[1] - // Regex to get rid of the unnecesary (packagename) prefix in most multi-line warnings - const prefixRegex = new RegExp( - '(?:\\(' + packageName + '\\))*[\\s]*(.*)', - 'i' - ) - // After every warning message there's a blank line, let's use it - while (!!(this.currentLine = this.log.nextLine())) { - lineMatch = this.currentLine.match(LINES_REGEX) - line = lineMatch ? parseInt(lineMatch[1], 10) : line - warningMatch = this.currentLine.match(prefixRegex) - warning_lines.push(warningMatch[1]) - } - const raw_message = warning_lines.join(' ') - this.data.push({ - line, - file: this.currentFilePath, - level: 'warning', - message: raw_message, - raw: raw_message, - }) - } - - this.parseHboxLine = function () { - const lineMatch = this.currentLine.match(LINES_REGEX) - const line = lineMatch ? parseInt(lineMatch[1], 10) : null - this.data.push({ - line, - file: this.currentFilePath, - level: 'typesetting', - message: this.currentLine, - raw: this.currentLine, - }) - } - - // Check if we're entering or leaving a new file in this line - - this.parseParensForFilenames = function () { - const pos = this.currentLine.search(/\(|\)/) - if (pos !== -1) { - const token = this.currentLine[pos] - this.currentLine = this.currentLine.slice(pos + 1) - if (token === '(') { - const filePath = this.consumeFilePath() - if (filePath) { - this.currentFilePath = filePath - const newFile = { - path: filePath, - files: [], - } - this.fileStack.push(newFile) - this.currentFileList.push(newFile) - this.currentFileList = newFile.files - } else { - this.openParens++ - } - } else if (token === ')') { - if (this.openParens > 0) { - this.openParens-- - } else { - if (this.fileStack.length > 1) { - this.fileStack.pop() - const previousFile = this.fileStack[this.fileStack.length - 1] - this.currentFilePath = previousFile.path - this.currentFileList = previousFile.files - } - } - } - // else { - // Something has gone wrong but all we can do now is ignore it :( - // } - // Process the rest of the line - this.parseParensForFilenames() - } - } - - this.consumeFilePath = function () { - // Our heuristic for detecting file names are rather crude - // A file may not contain a ')' in it - // To be a file path it must have at least one / - if (!this.currentLine.match(/^\/?([^ )]+\/)+/)) { - return false - } - - let endOfFilePath = this.currentLine.search(/ |\)/) - - // handle the case where there is a space in a filename - while (endOfFilePath !== -1 && this.currentLine[endOfFilePath] === ' ') { - const partialPath = this.currentLine.slice(0, endOfFilePath) - // consider the file matching done if the space is preceded by a file extension (e.g. ".tex") - if (/\.\w+$/.test(partialPath)) { - break - } - // advance to next space or ) or end of line - const remainingPath = this.currentLine.slice(endOfFilePath + 1) - // consider file matching done if current path is followed by any of "()[] - if (/^\s*["()[\]]/.test(remainingPath)) { - break - } - const nextEndOfPath = remainingPath.search(/[ "()[\]]/) - if (nextEndOfPath === -1) { - endOfFilePath = -1 - } else { - endOfFilePath += nextEndOfPath + 1 - } - } - let path - if (endOfFilePath === -1) { - path = this.currentLine - this.currentLine = '' - } else { - path = this.currentLine.slice(0, endOfFilePath) - this.currentLine = this.currentLine.slice(endOfFilePath) - } - return path - } - - this.postProcess = function (data) { - const all = [] - const errors = [] - const warnings = [] - const typesetting = [] - const hashes = [] - - const hashEntry = entry => entry.raw - - let i = 0 - while (i < data.length) { - if (this.ignoreDuplicates && hashes.indexOf(hashEntry(data[i])) > -1) { - i++ - continue - } - if (data[i].level === 'error') { - errors.push(data[i]) - } else if (data[i].level === 'typesetting') { - typesetting.push(data[i]) - } else if (data[i].level === 'warning') { - warnings.push(data[i]) - } - all.push(data[i]) - hashes.push(hashEntry(data[i])) - i++ - } - return { - errors, - warnings, - typesetting, - all, - files: this.rootFileList, - } - } - }.call(LatexParser.prototype)) - - LatexParser.parse = (text, options) => new LatexParser(text, options).parse() - - return LatexParser -}) diff --git a/services/web/test/frontend/helpers/fixtures/logs/bad-boxes.log b/services/web/test/frontend/helpers/fixtures/logs/bad-boxes.log new file mode 100644 index 0000000000..fdd16b22eb --- /dev/null +++ b/services/web/test/frontend/helpers/fixtures/logs/bad-boxes.log @@ -0,0 +1,167 @@ +This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009) (format=pdflatex 2010.5.16) 16 APR 2012 09:05 +entering extended mode + %&-line parsing enabled. +**logs/bad-boxes.tex +(compiles/b6cf470376785e64ad84c57e3296c912/logs/bad-boxes.tex +LaTeX2e <2009/09/24> +Babel and hyphenation patterns for english, usenglishmax, dumylang, noh +yphenation, german-x-2009-06-19, ngerman-x-2009-06-19, ancientgreek, ibycus, ar +abic, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danish, dutc +h, esperanto, estonian, farsi, finnish, french, galician, german, ngerman, mono +greek, greek, hungarian, icelandic, assamese, bengali, gujarati, hindi, kannada +, malayalam, marathi, oriya, panjabi, tamil, telugu, indonesian, interlingua, i +rish, italian, kurmanji, latin, latvian, lithuanian, mongolian, mongolianlmc, b +okmal, nynorsk, polish, portuguese, romanian, russian, sanskrit, serbian, slova +k, slovenian, spanish, swedish, turkish, turkmen, ukenglish, ukrainian, upperso +rbian, welsh, loaded. +(/usr/local/texlive/2009/texmf-dist/tex/latex/base/article.cls +Document Class: article 2007/10/19 v1.4h Standard LaTeX document class +(/usr/local/texlive/2009/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option) +) +\c@part=\count79 +\c@section=\count80 +\c@subsection=\count81 +\c@subsubsection=\count82 +\c@paragraph=\count83 +\c@subparagraph=\count84 +\c@figure=\count85 +\c@table=\count86 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) (/usr/local/texlive/2009/texmf-dist/tex/latex/multirow/multirow.sty +\bigstrutjot=\dimen103 +) (/usr/local/texlive/2009/texmf-dist/tex/latex/polynom/polynom.sty +Package: polynom 2006/04/20 0.17 (CH,HA) +(/usr/local/texlive/2009/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 1999/03/16 v1.13 key=value parser (DPC) +\KV@toks@=\toks14 +) +\pld@currstage=\count87 +) (/usr/local/texlive/2009/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2000/07/18 v2.13 AMS math features +\@mathmargin=\skip43 +For additional information on amsmath, use the `?' option. +(/usr/local/texlive/2009/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 +(/usr/local/texlive/2009/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 +\@emptytoks=\toks15 +\ex@=\dimen104 +)) (/usr/local/texlive/2009/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d +\pmbraise@=\dimen105 +) (/usr/local/texlive/2009/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 1999/12/14 v2.01 operator names +) +\inf@bad=\count88 +LaTeX Info: Redefining \frac on input line 211. +\uproot@=\count89 +\leftroot@=\count90 +LaTeX Info: Redefining \overline on input line 307. +\classnum@=\count91 +\DOTSCASE@=\count92 +LaTeX Info: Redefining \ldots on input line 379. +LaTeX Info: Redefining \dots on input line 382. +LaTeX Info: Redefining \cdots on input line 467. +\Mathstrutbox@=\box26 +\strutbox@=\box27 +\big@size=\dimen106 +LaTeX Font Info: Redeclaring font encoding OML on input line 567. +LaTeX Font Info: Redeclaring font encoding OMS on input line 568. +\macc@depth=\count93 +\c@MaxMatrixCols=\count94 +\dotsspace@=\muskip10 +\c@parentequation=\count95 +\dspbrk@lvl=\count96 +\tag@help=\toks16 +\row@=\count97 +\column@=\count98 +\maxfields@=\count99 +\andhelp@=\toks17 +\eqnshift@=\dimen107 +\alignsep@=\dimen108 +\tagshift@=\dimen109 +\tagwidth@=\dimen110 +\totwidth@=\dimen111 +\lineht@=\dimen112 +\@envbody=\toks18 +\multlinegap=\skip44 +\multlinetaggap=\skip45 +\mathdisplay@stack=\toks19 +LaTeX Info: Redefining \[ on input line 2666. +LaTeX Info: Redefining \] on input line 2667. +) +No file output.aux. +\openout1 = `output.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 7. +LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 7. +LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 7. +LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 7. +LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 7. +LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 7. +LaTeX Font Info: ... okay on input line 7. + +Overfull \hbox (29.11179pt too wide) in paragraph at lines 9--10 +[]\OT1/cmr/m/n/10 This line will be too long thanks to an email ad-dress james- +james-james@scribtex.com + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 11--13 + + [] + + +Overfull \vbox (12.00034pt too high) detected at line 27 + [] + + +Underfull \vbox (badness 10000) detected at line 46 + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 54--55 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 58--60 + + [] + +[1 + +{/usr/local/texlive/2009/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] [2] (co +mpiles/b6cf470376785e64ad84c57e3296c912/output.aux) ) +Here is how much of TeX's memory you used: + 1219 strings out of 493773 + 15510 string characters out of 3145367 + 73808 words of memory out of 3000000 + 4559 multiletter control sequences out of 15000+200000 + 4709 words of font info for 18 fonts, out of 3000000 for 9000 + 714 hyphenation exceptions out of 8191 + 27i,16n,35p,210b,192s stack positions out of 5000i,500n,10000p,200000b,50000s + +Output written on compiles/b6cf470376785e64ad84c57e3296c912/output.pdf (2 pages +, 77420 bytes). +PDF statistics: + 41 PDF objects out of 1000 (max. 8388607) + 0 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/services/web/test/frontend/helpers/fixtures/logs/biber-warnings.log b/services/web/test/frontend/helpers/fixtures/logs/biber-warnings.log new file mode 100644 index 0000000000..7a0cf1d4b3 --- /dev/null +++ b/services/web/test/frontend/helpers/fixtures/logs/biber-warnings.log @@ -0,0 +1,353 @@ +This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013) (format=pdflatex 2014.4.2) 30 MAY 2014 14:44 +entering extended mode + \write18 enabled. + %&-line parsing enabled. +**main.tex +(/compile/main.tex +LaTeX2e <2011/06/27> +Babel <3.9k> and hyphenation patterns for 78 languages loaded. +(/usr/local/texlive/2013/texmf-dist/tex/latex/base/article.cls +Document Class: article 2007/10/19 v1.4h Standard LaTeX document class +(/usr/local/texlive/2013/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option) +) +\c@part=\count79 +\c@section=\count80 +\c@subsection=\count81 +\c@subsubsection=\count82 +\c@paragraph=\count83 +\c@subparagraph=\count84 +\c@figure=\count85 +\c@table=\count86 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) (/usr/local/texlive/2013/texmf-dist/tex/latex/biblatex/biblatex.sty +Package: biblatex 2013/11/25 v2.8a programmable bibliographies (PK/JW/AB) + +Package biblatex Warning: No "backend" specified, using Biber backend. +(biblatex) To use BibTeX, load biblatex with +(biblatex) the "backend=bibtex" option. + +(/usr/local/texlive/2013/texmf-dist/tex/latex/biblatex/biblatex2.sty +Package: biblatex2 2013/11/25 v2.8a programmable bibliographies (biber) (PK/JW/ +AB) +(/usr/local/texlive/2013/texmf-dist/tex/latex/etoolbox/etoolbox.sty +Package: etoolbox 2011/01/03 v2.1 e-TeX tools for LaTeX +(/usr/local/texlive/2013/texmf-dist/tex/latex/etex-pkg/etex.sty +Package: etex 1998/03/26 v2.0 eTeX basic definition package (PEB) +\et@xins=\count87 +) +\etb@tempcnta=\count88 +) (/usr/local/texlive/2013/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 1999/03/16 v1.13 key=value parser (DPC) +\KV@toks@=\toks14 +) (/usr/local/texlive/2013/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO) +(/usr/local/texlive/2013/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO) +) (/usr/local/texlive/2013/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO) +(/usr/local/texlive/2013/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO) +) (/usr/local/texlive/2013/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO) +(/usr/local/texlive/2013/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +))) (/usr/local/texlive/2013/texmf-dist/tex/latex/logreq/logreq.sty +Package: logreq 2010/08/04 v1.0 xml request logger +\lrq@indent=\count89 +(/usr/local/texlive/2013/texmf-dist/tex/latex/logreq/logreq.def +File: logreq.def 2010/08/04 v1.0 logreq spec v1.0 +)) (/usr/local/texlive/2013/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC) +) (/usr/local/texlive/2013/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip10 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +\c@tabx@nest=\count90 +\c@listtotal=\count91 +\c@listcount=\count92 +\c@liststart=\count93 +\c@liststop=\count94 +\c@citecount=\count95 +\c@citetotal=\count96 +\c@multicitecount=\count97 +\c@multicitetotal=\count98 +\c@instcount=\count99 +\c@maxnames=\count100 +\c@minnames=\count101 +\c@maxitems=\count102 +\c@minitems=\count103 +\c@citecounter=\count104 +\c@savedcitecounter=\count105 +\c@uniquelist=\count106 +\c@uniquename=\count107 +\c@refsection=\count108 +\c@refsegment=\count109 +\c@maxextratitle=\count110 +\c@maxextratitleyear=\count111 +\c@maxextrayear=\count112 +\c@maxextraalpha=\count113 +\c@abbrvpenalty=\count114 +\c@highnamepenalty=\count115 +\c@lownamepenalty=\count116 +\c@maxparens=\count117 +\c@parenlevel=\count118 +\blx@tempcnta=\count119 +\blx@tempcntb=\count120 +\blx@tempcntc=\count121 +\blx@maxsection=\count122 +\blx@maxsegment@0=\count123 +\blx@notetype=\count124 +\blx@parenlevel@text=\count125 +\blx@parenlevel@foot=\count126 +\blx@sectionciteorder@0=\count127 +\labelnumberwidth=\skip43 +\labelalphawidth=\skip44 +\shorthandwidth=\skip45 +\biblabelsep=\skip46 +\bibitemsep=\skip47 +\bibnamesep=\skip48 +\bibinitsep=\skip49 +\bibparsep=\skip50 +\bibhang=\skip51 +\blx@bcfin=\read1 +\blx@bcfout=\write3 +\c@mincomprange=\count128 +\c@maxcomprange=\count129 +\c@mincompwidth=\count130 +Package biblatex Info: Trying to load biblatex default data model... +Package biblatex Info: ... file 'blx-dm.def' found. +(/usr/local/texlive/2013/texmf-dist/tex/latex/biblatex/blx-dm.def) +Package biblatex Info: Trying to load biblatex style data model... +Package biblatex Info: ... file 'ieee.dbx' not found. +Package biblatex Info: Trying to load biblatex custom data model... +Package biblatex Info: ... file 'biblatex-dm.cfg' not found. +\c@afterword=\count131 +\c@savedafterword=\count132 +\c@annotator=\count133 +\c@savedannotator=\count134 +\c@author=\count135 +\c@savedauthor=\count136 +\c@bookauthor=\count137 +\c@savedbookauthor=\count138 +\c@commentator=\count139 +\c@savedcommentator=\count140 +\c@editor=\count141 +\c@savededitor=\count142 +\c@editora=\count143 +\c@savededitora=\count144 +\c@editorb=\count145 +\c@savededitorb=\count146 +\c@editorc=\count147 +\c@savededitorc=\count148 +\c@foreword=\count149 +\c@savedforeword=\count150 +\c@holder=\count151 +\c@savedholder=\count152 +\c@introduction=\count153 +\c@savedintroduction=\count154 +\c@namea=\count155 +\c@savednamea=\count156 +\c@nameb=\count157 +\c@savednameb=\count158 +\c@namec=\count159 +\c@savednamec=\count160 +\c@shortauthor=\count161 +\c@savedshortauthor=\count162 +\c@shorteditor=\count163 +\c@savedshorteditor=\count164 +\c@translator=\count165 +\c@savedtranslator=\count166 +\c@labelname=\count167 +\c@savedlabelname=\count168 +\c@institution=\count169 +\c@savedinstitution=\count170 +\c@lista=\count171 +\c@savedlista=\count172 +\c@listb=\count173 +\c@savedlistb=\count174 +\c@listc=\count175 +\c@savedlistc=\count176 +\c@listd=\count177 +\c@savedlistd=\count178 +\c@liste=\count179 +\c@savedliste=\count180 +\c@listf=\count181 +\c@savedlistf=\count182 +\c@location=\count183 +\c@savedlocation=\count184 +\c@organization=\count185 +\c@savedorganization=\count186 +\c@origlocation=\count187 +\c@savedoriglocation=\count188 +\c@origpublisher=\count189 +\c@savedorigpublisher=\count190 +\c@publisher=\count191 +\c@savedpublisher=\count192 +\c@language=\count193 +\c@savedlanguage=\count194 +\c@pageref=\count195 +\c@savedpageref=\count196 +Package biblatex Info: Trying to load compatibility code... +Package biblatex Info: ... file 'blx-compat.def' found. +(/usr/local/texlive/2013/texmf-dist/tex/latex/biblatex/blx-compat.def +File: blx-compat.def 2013/11/25 v2.8a biblatex compatibility (PK/JW/AB) +) +Package biblatex Info: Trying to load generic definitions... +Package biblatex Info: ... file 'biblatex.def' found. +(/usr/local/texlive/2013/texmf-dist/tex/latex/biblatex/biblatex.def +File: biblatex.def +\c@textcitecount=\count197 +\c@textcitetotal=\count198 +\c@textcitemaxnames=\count199 +\c@biburlnumpenalty=\count200 +\c@biburlucpenalty=\count201 +\c@biburllcpenalty=\count202 +\c@smartand=\count203 +) +Package biblatex Info: Trying to load bibliography style 'ieee'... +Package biblatex Info: ... file 'ieee.bbx' found. +(/usr/local/texlive/2013/texmf-dist/tex/latex/biblatex-ieee/ieee.bbx +File: ieee.bbx 2013/10/25 v1.1j biblatex bibliography style +Package biblatex Info: Trying to load bibliography style 'numeric-comp'... +Package biblatex Info: ... file 'numeric-comp.bbx' found. +(/usr/local/texlive/2013/texmf-dist/tex/latex/biblatex/bbx/numeric-comp.bbx +File: numeric-comp.bbx 2013/11/25 v2.8a biblatex bibliography style (PK/JW/AB) +Package biblatex Info: Trying to load bibliography style 'numeric'... +Package biblatex Info: ... file 'numeric.bbx' found. +(/usr/local/texlive/2013/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx +File: numeric.bbx 2013/11/25 v2.8a biblatex bibliography style (PK/JW/AB) +Package biblatex Info: Trying to load bibliography style 'standard'... +Package biblatex Info: ... file 'standard.bbx' found. +(/usr/local/texlive/2013/texmf-dist/tex/latex/biblatex/bbx/standard.bbx +File: standard.bbx 2013/11/25 v2.8a biblatex bibliography style (PK/JW/AB) +\c@bbx:relatedcount=\count204 +\c@bbx:relatedtotal=\count205 +)))) +Package biblatex Info: Trying to load citation style 'ieee'... +Package biblatex Info: ... file 'ieee.cbx' found. +(/usr/local/texlive/2013/texmf-dist/tex/latex/biblatex-ieee/ieee.cbx +File: ieee.cbx 2013/10/25 v1.1j biblatex citation style +Package biblatex Info: Trying to load citation style 'numeric-comp'... +Package biblatex Info: ... file 'numeric-comp.cbx' found. +(/usr/local/texlive/2013/texmf-dist/tex/latex/biblatex/cbx/numeric-comp.cbx +File: numeric-comp.cbx 2013/11/25 v2.8a biblatex citation style (PK/JW/AB) +\c@cbx@tempcnta=\count206 +\c@cbx@tempcntb=\count207 +Package biblatex Info: Redefining '\cite'. +Package biblatex Info: Redefining '\parencite'. +Package biblatex Info: Redefining '\footcite'. +Package biblatex Info: Redefining '\footcitetext'. +Package biblatex Info: Redefining '\smartcite'. +Package biblatex Info: Redefining '\supercite'. +Package biblatex Info: Redefining '\textcite'. +Package biblatex Info: Redefining '\textcites'. +Package biblatex Info: Redefining '\cites'. +Package biblatex Info: Redefining '\parencites'. +Package biblatex Info: Redefining '\smartcites'. +) +Package biblatex Info: Redefining '\cite'. +Package biblatex Info: Redefining '\cites'. +) +Package biblatex Info: Trying to load configuration file... +Package biblatex Info: ... file 'biblatex.cfg' found. +(/usr/local/texlive/2013/texmf-dist/tex/latex/biblatex/biblatex.cfg +File: biblatex.cfg +))) +Package biblatex Info: Trying to load language 'english'... +Package biblatex Info: ... file 'english.lbx' found. +(/usr/local/texlive/2013/texmf-dist/tex/latex/biblatex/lbx/english.lbx +File: english.lbx 2013/11/25 v2.8a biblatex localization (PK/JW/AB) +) +\@quotelevel=\count208 +\@quotereset=\count209 +(/compile/output.aux) +\openout1 = `output.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 5. +LaTeX Font Info: ... okay on input line 5. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 5. +LaTeX Font Info: ... okay on input line 5. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 5. +LaTeX Font Info: ... okay on input line 5. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 5. +LaTeX Font Info: ... okay on input line 5. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 5. +LaTeX Font Info: ... okay on input line 5. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 5. +LaTeX Font Info: ... okay on input line 5. +Package biblatex Info: No input encoding detected. +(biblatex) Assuming 'ascii'. +Package biblatex Info: Automatic encoding selection. +(biblatex) Assuming data encoding 'ascii'. +\openout3 = `output.bcf'. + +Package biblatex Info: Trying to load bibliographic data... +Package biblatex Info: ... file 'output.bbl' found. +(/compile/output.bbl + +Package biblatex Warning: The following entry could not be found +(biblatex) in the database: +(biblatex) Missing3 +(biblatex) Please verify the spelling and rerun +(biblatex) LaTeX afterwards. + + +Package biblatex Warning: The following entry could not be found +(biblatex) in the database: +(biblatex) Missing2 +(biblatex) Please verify the spelling and rerun +(biblatex) LaTeX afterwards. + + +Package biblatex Warning: The following entry could not be found +(biblatex) in the database: +(biblatex) Missing1 +(biblatex) Please verify the spelling and rerun +(biblatex) LaTeX afterwards. + +) +Package biblatex Info: Reference section=0 on input line 5. +Package biblatex Info: Reference segment=0 on input line 5. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 11. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 11. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 11. +[1 + +{/usr/local/texlive/2013/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (/compi +le/output.aux) +Package logreq Info: Writing requests to 'output.run.xml'. +\openout1 = `output.run.xml'. + + ) +Here is how much of TeX's memory you used: + 5875 strings out of 493308 + 101409 string characters out of 6137823 + 481464 words of memory out of 5000000 + 9308 multiletter control sequences out of 15000+600000 + 8233 words of font info for 29 fonts, out of 8000000 for 9000 + 957 hyphenation exceptions out of 8191 + 44i,6n,49p,820b,967s stack positions out of 5000i,500n,10000p,200000b,80000s + + +Output written on /compile/output.pdf (1 page, 68642 bytes). +PDF statistics: + 32 PDF objects out of 1000 (max. 8388607) + 22 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/services/web/test/frontend/helpers/fixtures/logs/biber.blg b/services/web/test/frontend/helpers/fixtures/logs/biber.blg new file mode 100644 index 0000000000..e67335094e --- /dev/null +++ b/services/web/test/frontend/helpers/fixtures/logs/biber.blg @@ -0,0 +1,14 @@ +[0] Config.pm:324> INFO - This is Biber 2.1 +[0] Config.pm:327> INFO - Logfile is 'output.blg' +[44] biber-darwin:276> INFO - === Thu Mar 3, 2016, 16:00:52 +[45] Biber.pm:333> INFO - Reading 'output.bcf' +[148] Biber.pm:645> INFO - Found 1 citekeys in bib section 0 +[168] Biber.pm:2977> INFO - Processing section 0 +[184] Biber.pm:3115> INFO - Looking for bibtex format file 'bibliography.bib' for section 0 +[186] bibtex.pm:1021> INFO - Decoding LaTeX character macros into UTF-8 +[187] bibtex.pm:895> INFO - Found BibTeX data source 'bibliography.bib' +[187] Utils.pm:146> WARN - Entry small does not parse correctly +[187] Utils.pm:146> WARN - BibTeX subsystem: /var/folders/xz/jm214r5n7dv36_q3nclqxvpm0000gn/T/w5cKkglymq/bibliography.bib_46723.utf8, line 4, warning: possible runaway string started at line 3 +[187] Utils.pm:162> ERROR - BibTeX subsystem: /var/folders/xz/jm214r5n7dv36_q3nclqxvpm0000gn/T/w5cKkglymq/bibliography.bib_46723.utf8, line 8, syntax error: at end of input, expected end of entry ("}" or ")") (skipping to next "@") +[188] Biber.pm:106> INFO - WARNINGS: 2 +[188] Biber.pm:110> INFO - ERRORS: 1 diff --git a/services/web/test/frontend/helpers/fixtures/logs/bibtex.blg b/services/web/test/frontend/helpers/fixtures/logs/bibtex.blg new file mode 100644 index 0000000000..3483010158 --- /dev/null +++ b/services/web/test/frontend/helpers/fixtures/logs/bibtex.blg @@ -0,0 +1,87 @@ +This is BibTeX, Version 0.99d (TeX Live 2014) +Capacity: max_strings=35307, hash_size=35307, hash_prime=30011 +The top-level auxiliary file: output.aux +The style file: apj.bst +Database file #1: outputNotes.bib +Database file #2: references.bib +I was expecting a `,' or a `}'---line 196 of file references.bib + : + : @ARTICLE{Biviano03, +(Error may have been on previous line) +I'm skipping whatever remains of this entry +I was expecting a `,' or a `}'---line 1133 of file references.bib + : + : @ARTICLE{Saro13, +(Error may have been on previous line) +I'm skipping whatever remains of this entry +Repeated entry---line 541 of file references.bib + : @article{abe1984influence + : , +I'm skipping whatever remains of this entry +I was expecting a `,' or a `}'---line 1213 of file references.bib + : + : @ARTICLE{Springel05, +(Error may have been on previous line) +I'm skipping whatever remains of this entry +You're missing a field part---line 1255 of file references.bib + : month = + : , +I'm skipping whatever remains of this entry +Reallocated wiz_functions (elt_size=4) to 6000 items from 3000. +Warning--string name "something" is undefined +--line 152 of file references.bib +Warning--can't use both author and editor fields in Binney87 +Warning--empty booktitle in Dietterich-00 +Warning--empty publisher in Binney87 +Warning--string name "august" is undefined +--line 152 of file references.bib +Warning--empty note in Svensmark14 +A bad cross reference---entry "conf/icde/FilhoTTF01" +refers to entry "conf/icde/2001", which doesn't exist +I couldn't open style file aa.bst +---line 31 of file output.aux + : \bibstyle{aa + : } +I'm skipping whatever remains of this command +You've used 48 entries, + 3010 wiz_defined-function locations, + 957 strings with 17710 characters, +and the built_in function-call counts, 25881 in all, are: += -- 1937 +> -- 2358 +< -- 11 ++ -- 783 +- -- 852 +* -- 2444 +:= -- 5047 +add.period$ -- 48 +call.type$ -- 48 +change.case$ -- 320 +chr.to.int$ -- 48 +cite$ -- 51 +duplicate$ -- 899 +empty$ -- 1291 +format.name$ -- 904 +if$ -- 4963 +int.to.chr$ -- 1 +int.to.str$ -- 1 +missing$ -- 47 +newline$ -- 148 +num.names$ -- 193 +pop$ -- 349 +preamble$ -- 1 +purify$ -- 320 +quote$ -- 0 +skip$ -- 744 +stack$ -- 0 +substring$ -- 989 +swap$ -- 1 +text.length$ -- 0 +text.prefix$ -- 0 +top$ -- 0 +type$ -- 429 +warning$ -- 3 +while$ -- 173 +width$ -- 0 +write$ -- 478 +(There were 4 error messages) \ No newline at end of file diff --git a/services/web/test/frontend/helpers/fixtures/logs/caption-warnings.log b/services/web/test/frontend/helpers/fixtures/logs/caption-warnings.log new file mode 100644 index 0000000000..ae50f90fe1 --- /dev/null +++ b/services/web/test/frontend/helpers/fixtures/logs/caption-warnings.log @@ -0,0 +1,339 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014) (preloaded format=pdflatex 2015.3.24) 28 OCT 2015 00:36 +entering extended mode + \write18 enabled. + %&-line parsing enabled. +**main.tex +(/compile/main.tex +LaTeX2e <2014/05/01> +Babel <3.9l> and hyphenation patterns for 79 languages loaded. +(/usr/local/texlive/2014/texmf-dist/tex/latex/IEEEtran/IEEEtran.cls +Document Class: IEEEtran 2014/09/17 V1.8a by Michael Shell +-- See the "IEEEtran_HOWTO" manual for usage information. +-- http://www.michaelshell.org/tex/ieeetran/ +\@IEEEtrantmpdimenA=\dimen102 +\@IEEEtrantmpdimenB=\dimen103 +\@IEEEtrantmpdimenC=\dimen104 +\@IEEEtrantmpcountA=\count79 +\@IEEEtrantmpcountB=\count80 +\@IEEEtrantmpcountC=\count81 +\@IEEEtrantmptoksA=\toks14 +LaTeX Font Info: Try loading font information for OT1+ptm on input line 458. + +(/usr/local/texlive/2014/texmf-dist/tex/latex/psnfss/ot1ptm.fd +File: ot1ptm.fd 2001/06/04 font definitions for OT1/ptm. +) +-- Using 8.5in x 11in (letter) paper. +-- Using PDF output. +\@IEEEnormalsizeunitybaselineskip=\dimen105 +-- This is a 10 point document. +\CLASSINFOnormalsizebaselineskip=\dimen106 +\CLASSINFOnormalsizeunitybaselineskip=\dimen107 +\IEEEnormaljot=\dimen108 +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <5> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <5> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039. + +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <7> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <7> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039. + +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <8> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <8> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039. + +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <9> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <9> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039. + +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <10> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <10> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039. + +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <11> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <11> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039. + +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <12> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <12> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039. + +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <17> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <17> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039. + +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <20> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <20> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039. + +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <24> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <24> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039. + +\IEEEquantizedlength=\dimen109 +\IEEEquantizedlengthdiff=\dimen110 +\IEEEquantizedtextheightdiff=\dimen111 +\IEEEilabelindentA=\dimen112 +\IEEEilabelindentB=\dimen113 +\IEEEilabelindent=\dimen114 +\IEEEelabelindent=\dimen115 +\IEEEdlabelindent=\dimen116 +\IEEElabelindent=\dimen117 +\IEEEiednormlabelsep=\dimen118 +\IEEEiedmathlabelsep=\dimen119 +\IEEEiedtopsep=\skip41 +\c@section=\count82 +\c@subsection=\count83 +\c@subsubsection=\count84 +\c@paragraph=\count85 +\c@IEEEsubequation=\count86 +\abovecaptionskip=\skip42 +\belowcaptionskip=\skip43 +\c@figure=\count87 +\c@table=\count88 +\@IEEEeqnnumcols=\count89 +\@IEEEeqncolcnt=\count90 +\@IEEEsubeqnnumrollback=\count91 +\@IEEEquantizeheightA=\dimen120 +\@IEEEquantizeheightB=\dimen121 +\@IEEEquantizeheightC=\dimen122 +\@IEEEquantizeprevdepth=\dimen123 +\@IEEEquantizemultiple=\count92 +\@IEEEquantizeboxA=\box26 +\@IEEEtmpitemindent=\dimen124 +\c@IEEEbiography=\count93 +\@IEEEtranrubishbin=\box27 +) (/usr/local/texlive/2014/texmf-dist/tex/latex/caption/subcaption.sty +Package: subcaption 2013/02/03 v1.1-62 Sub-captions (AR) +(/usr/local/texlive/2014/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2013/05/02 v3.3-89 Customizing captions (AR) +(/usr/local/texlive/2014/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2013/05/02 v1.6-88 caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 57. +(/usr/local/texlive/2014/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks15 +) +\captionmargin=\dimen125 +\captionmargin@=\dimen126 +\captionwidth=\dimen127 +\caption@tempdima=\dimen128 +\caption@indent=\dimen129 +\caption@parindent=\dimen130 +\caption@hangindent=\dimen131 +Package caption Info: Unknown document class (or package), +(caption) standard defaults will be used. +) + +Package caption Warning: Unsupported document class (or package) detected, +(caption) usage of the caption package is not recommended. +See the caption package documentation for explanation. + +Package caption Info: \@makecaption = \long macro:#1#2->\ifx \@captype \@IEEEta +blestring \footnotesize \bgroup \par \centering \@IEEEtabletopskipstrut {\norma +lfont \footnotesize #1}\\{\normalfont \footnotesize \scshape #2}\par \addvspace + {0.5\baselineskip }\egroup \@IEEEtablecaptionsepspace \else \@IEEEfigurecaptio +nsepspace \setbox \@tempboxa \hbox {\normalfont \footnotesize {#1.}\nobreakspac +e \nobreakspace #2}\ifdim \wd \@tempboxa >\hsize \setbox \@tempboxa \hbox {\nor +malfont \footnotesize {#1.}\nobreakspace \nobreakspace }\parbox [t]{\hsize }{\n +ormalfont \footnotesize \noindent \unhbox \@tempboxa #2}\else \ifCLASSOPTIONcon +ference \hbox to\hsize {\normalfont \footnotesize \hfil \box \@tempboxa \hfil } +\else \hbox to\hsize {\normalfont \footnotesize \box \@tempboxa \hfil }\fi \fi +\fi . +\c@ContinuedFloat=\count94 +) +\c@subfigure=\count95 +\c@subtable=\count96 +) (/usr/local/texlive/2014/texmf-dist/tex/latex/listing/listing.sty +Package: listing 1999/05/25 +Package `listing', V1.2, <1999/05/25> +\c@listing=\count97 +) (/usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2012/11/06 v6.83m Hypertext links for LaTeX +(/usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +Package: hobsub-hyperref 2012/05/28 v1.13 Bundle oberdiek, subset hyperref (HO) + +(/usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +Package: hobsub-generic 2012/05/28 v1.13 Bundle oberdiek, subset generic (HO) +Package: hobsub 2012/05/28 v1.13 Construct package bundles (HO) +Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO) +Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO) +Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +Package: ifvtex 2010/03/01 v1.5 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +Package: intcalc 2007/09/27 v1.1 Expandable calculations with integers (HO) +Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO) +Package ifpdf Info: pdfTeX in PDF mode is detected. +Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO) +Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO) +Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +Package: pdfescape 2011/11/25 v1.13 Implements pdfTeX's escape features (HO) +Package: bigintcalc 2012/04/08 v1.3 Expandable calculations on big integers (HO +) +Package: bitset 2011/01/30 v1.1 Handle bit-vector datatype (HO) +Package: uniquecounter 2011/01/30 v1.2 Provide unlimited unique counter (HO) +) +Package hobsub Info: Skipping package `hobsub' (already loaded). +Package: letltxmacro 2010/09/02 v1.4 Let assignment for LaTeX macros (HO) +Package: hopatch 2012/05/28 v1.2 Wrapper for package hooks (HO) +Package: xcolor-patch 2011/01/30 xcolor patch +Package: atveryend 2011/06/30 v1.8 Hooks at the very end of document (HO) +Package atveryend Info: \enddocument detected (standard20110627). +Package: atbegshi 2011/10/05 v1.16 At begin shipout hook (HO) +Package: refcount 2011/10/16 v3.4 Data extraction from label references (HO) +Package: hycolor 2011/01/30 v1.7 Color options for hyperref/bookmark (HO) +) (/usr/local/texlive/2014/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) (/usr/local/texlive/2014/texmf-dist/tex/latex/oberdiek/auxhook.sty +Package: auxhook 2011/03/04 v1.3 Hooks for auxiliary files (HO) +) (/usr/local/texlive/2014/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO) +) +\@linkdim=\dimen132 +\Hy@linkcounter=\count98 +\Hy@pagecounter=\count99 +(/usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2012/11/06 v6.83m Hyperref: PDFDocEncoding definition (HO) +) +\Hy@SavedSpaceFactor=\count100 +(/usr/local/texlive/2014/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +Package hyperref Info: Hyper figures OFF on input line 4443. +Package hyperref Info: Link nesting OFF on input line 4448. +Package hyperref Info: Hyper index ON on input line 4451. +Package hyperref Info: Plain pages OFF on input line 4458. +Package hyperref Info: Backreferencing OFF on input line 4463. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4688. +\c@Hy@tempcnt=\count101 +(/usr/local/texlive/2014/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip10 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 5041. +\XeTeXLinkMargin=\dimen133 +\Fld@menulength=\count102 +\Field@Width=\dimen134 +\Fld@charsize=\dimen135 +Package hyperref Info: Hyper figures OFF on input line 6295. +Package hyperref Info: Link nesting OFF on input line 6300. +Package hyperref Info: Hyper index ON on input line 6303. +Package hyperref Info: backreferencing OFF on input line 6310. +Package hyperref Info: Link coloring OFF on input line 6315. +Package hyperref Info: Link coloring with OCG OFF on input line 6320. +Package hyperref Info: PDF/A mode OFF on input line 6325. +LaTeX Info: Redefining \ref on input line 6365. +LaTeX Info: Redefining \pageref on input line 6369. +\Hy@abspage=\count103 +\c@Item=\count104 +\c@Hfootnote=\count105 +) + +Package hyperref Message: Driver (autodetected): hpdftex. + +(/usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2012/11/06 v6.83m Hyperref driver for pdfTeX +\Fld@listcount=\count106 +\c@bookmark@seq@number=\count107 +(/usr/local/texlive/2014/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2011/04/15 v1.7 Rerun checks for auxiliary files (HO) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +82. +) +\Hy@SectionHShift=\skip44 +) (/compile/output.aux) +\openout1 = `output.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 36. +LaTeX Font Info: ... okay on input line 36. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 36. +LaTeX Font Info: ... okay on input line 36. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 36. +LaTeX Font Info: ... okay on input line 36. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 36. +LaTeX Font Info: ... okay on input line 36. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 36. +LaTeX Font Info: ... okay on input line 36. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 36. +LaTeX Font Info: ... okay on input line 36. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 36. +LaTeX Font Info: ... okay on input line 36. +-- Lines per column: 58 (exact). +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: hyperref package is loaded. +Package caption Info: End \AtBeginDocument code. +\AtBeginShipoutBox=\box28 +Package hyperref Info: Link coloring OFF on input line 36. +(/usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2012/10/27 v2.43 Cross-referencing by name of section +(/usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO) +) +\c@section@level=\count108 +) +LaTeX Info: Redefining \ref on input line 36. +LaTeX Info: Redefining \pageref on input line 36. +LaTeX Info: Redefining \nameref on input line 36. +(/compile/output.out) (/compile/output.out) +\@outlinefile=\write3 +\openout3 = `output.out'. + + +Package caption Warning: The option `hypcap=true' will be ignored for this +(caption) particular \caption on input line 46. +See the caption package documentation for explanation. + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <7> on input line 53. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 53. +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 68. +[1{/usr/local/texlive/2014/texmf-var/fonts/map/pdftex/updmap/pdftex.map} + + +] +Package atveryend Info: Empty hook `AfterLastShipout' on input line 68. +(/compile/output.aux) +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 68. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 68. +Package rerunfilecheck Info: File `output.out' has not changed. +(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0. +Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 68. + ) +Here is how much of TeX's memory you used: + 6094 strings out of 493109 + 99653 string characters out of 6135010 + 179577 words of memory out of 5000000 + 9567 multiletter control sequences out of 15000+600000 + 27944 words of font info for 57 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 42i,6n,44p,244b,359s stack positions out of 5000i,500n,10000p,200000b,80000s +{/usr/local/texlive/2014/texmf-dist/fonts/enc/dvips/base/8r.enc} +Output written on /compile/output.pdf (1 page, 13958 bytes). +PDF statistics: + 23 PDF objects out of 1000 (max. 8388607) + 18 compressed objects within 1 object stream + 4 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/services/web/test/frontend/helpers/fixtures/logs/errors.log b/services/web/test/frontend/helpers/fixtures/logs/errors.log new file mode 100644 index 0000000000..790aa5bdb7 --- /dev/null +++ b/services/web/test/frontend/helpers/fixtures/logs/errors.log @@ -0,0 +1,573 @@ +This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009) (format=pdflatex 2010.5.16) 13 APR 2012 21:52 +entering extended mode + %&-line parsing enabled. +**instantons.tex +(compiles/dff0c37d892f346e58fc14975a16bf69/instantons.tex +LaTeX2e <2009/09/24> +Babel and hyphenation patterns for english, usenglishmax, dumylang, noh +yphenation, german-x-2009-06-19, ngerman-x-2009-06-19, ancientgreek, ibycus, ar +abic, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danish, dutc +h, esperanto, estonian, farsi, finnish, french, galician, german, ngerman, mono +greek, greek, hungarian, icelandic, assamese, bengali, gujarati, hindi, kannada +, malayalam, marathi, oriya, panjabi, tamil, telugu, indonesian, interlingua, i +rish, italian, kurmanji, latin, latvian, lithuanian, mongolian, mongolianlmc, b +okmal, nynorsk, polish, portuguese, romanian, russian, sanskrit, serbian, slova +k, slovenian, spanish, swedish, turkish, turkmen, ukenglish, ukrainian, upperso +rbian, welsh, loaded. +(/usr/local/texlive/2009/texmf-dist/tex/latex/base/article.cls +Document Class: article 2007/10/19 v1.4h Standard LaTeX document class +(/usr/local/texlive/2009/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option) +) +\c@part=\count79 +\c@section=\count80 +\c@subsection=\count81 +\c@subsubsection=\count82 +\c@paragraph=\count83 +\c@subparagraph=\count84 +\c@figure=\count85 +\c@table=\count86 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) (/usr/local/texlive/2009/texmf-dist/tex/latex/relsize/relsize.sty +Package: relsize 2003/07/04 ver 3.1 +) (/usr/local/texlive/2009/texmf-dist/tex/latex/preprint/fullpage.sty +Package: fullpage 1999/02/23 1.1 (PWD) +\FP@margin=\skip43 +) (/usr/local/texlive/2009/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2000/07/18 v2.13 AMS math features +\@mathmargin=\skip44 +For additional information on amsmath, use the `?' option. +(/usr/local/texlive/2009/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 +(/usr/local/texlive/2009/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 +\@emptytoks=\toks14 +\ex@=\dimen103 +)) (/usr/local/texlive/2009/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d +\pmbraise@=\dimen104 +) (/usr/local/texlive/2009/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 1999/12/14 v2.01 operator names +) +\inf@bad=\count87 +LaTeX Info: Redefining \frac on input line 211. +\uproot@=\count88 +\leftroot@=\count89 +LaTeX Info: Redefining \overline on input line 307. +\classnum@=\count90 +\DOTSCASE@=\count91 +LaTeX Info: Redefining \ldots on input line 379. +LaTeX Info: Redefining \dots on input line 382. +LaTeX Info: Redefining \cdots on input line 467. +\Mathstrutbox@=\box26 +\strutbox@=\box27 +\big@size=\dimen105 +LaTeX Font Info: Redeclaring font encoding OML on input line 567. +LaTeX Font Info: Redeclaring font encoding OMS on input line 568. +\macc@depth=\count92 +\c@MaxMatrixCols=\count93 +\dotsspace@=\muskip10 +\c@parentequation=\count94 +\dspbrk@lvl=\count95 +\tag@help=\toks15 +\row@=\count96 +\column@=\count97 +\maxfields@=\count98 +\andhelp@=\toks16 +\eqnshift@=\dimen106 +\alignsep@=\dimen107 +\tagshift@=\dimen108 +\tagwidth@=\dimen109 +\totwidth@=\dimen110 +\lineht@=\dimen111 +\@envbody=\toks17 +\multlinegap=\skip45 +\multlinetaggap=\skip46 +\mathdisplay@stack=\toks18 +LaTeX Info: Redefining \[ on input line 2666. +LaTeX Info: Redefining \] on input line 2667. +) (/usr/local/texlive/2009/texmf-dist/tex/latex/amscls/amsthm.sty +Package: amsthm 2004/08/06 v2.20 +\thm@style=\toks19 +\thm@bodyfont=\toks20 +\thm@headfont=\toks21 +\thm@notefont=\toks22 +\thm@headpunct=\toks23 +\thm@preskip=\skip47 +\thm@postskip=\skip48 +\thm@headsep=\skip49 +\dth@everypar=\toks24 +) (/usr/local/texlive/2009/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2009/06/22 v3.00 Basic AMSFonts support +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 96. +) (/usr/local/texlive/2009/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2010/05/04 v6.81a Hypertext links for LaTeX +(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2010/04/26 v1.7 LaTeX kernel commands for general use (HO) +) (/usr/local/texlive/2009/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 1999/03/16 v1.13 key=value parser (DPC) +\KV@toks@=\toks25 +) (/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2010/03/01 v1.9 Key value parser (HO) +(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2010/04/08 v1.3 Providing info/warning/message (HO) +) (/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2010/01/28 v1.3 Prefix for e-TeX command names (HO) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +)) (/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/pdfescape.sty +Package: pdfescape 2010/03/01 v1.9 Provides hex, PDF name and string conversion +s (HO) +(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2010/04/01 v0.9 Utility functions of pdfTeX for LuaTeX (HO) + +(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +)) (/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2010/01/28 v2.1 Provides the ifpdf switch (HO) +Package ifpdf Info: pdfTeX in pdf mode detected. +) (/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2010/03/01 v1.5 Switches for detecting VTeX and its modes (HO) +Package ifvtex Info: VTeX not detected. +) (/usr/local/texlive/2009/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2009/01/23 v0.5 Provides ifxetex conditional +) (/usr/local/texlive/2009/texmf-dist/tex/latex/oberdiek/hycolor.sty +Package: hycolor 2009/12/12 v1.6 Color options of hyperref/bookmark (HO) +(/usr/local/texlive/2009/texmf-dist/tex/latex/oberdiek/xcolor-patch.sty +Package: xcolor-patch 2009/12/12 xcolor patch +)) (/usr/local/texlive/2009/texmf-dist/tex/latex/oberdiek/letltxmacro.sty +Package: letltxmacro 2008/06/24 v1.3 Let assignment for LaTeX macros (HO) +) +\@linkdim=\dimen112 +\Hy@linkcounter=\count99 +\Hy@pagecounter=\count100 +(/usr/local/texlive/2009/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2010/05/04 v6.81a Hyperref: PDFDocEncoding definition (HO) +) (/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/intcalc.sty +Package: intcalc 2007/09/27 v1.1 Expandable integer calculations (HO) +) (/usr/local/texlive/2009/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) (/usr/local/texlive/2009/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2010/02/22 v3.7 Keyval support for LaTeX options (HO) +) +Package hyperref Info: Hyper figures OFF on input line 3639. +Package hyperref Info: Link nesting OFF on input line 3644. +Package hyperref Info: Hyper index ON on input line 3647. +Package hyperref Info: Plain pages OFF on input line 3654. +Package hyperref Info: Backreferencing OFF on input line 3659. +Implicit mode ON; LaTeX internals redefined +Package hyperref Info: Bookmarks ON on input line 3855. +(/usr/local/texlive/2009/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip11 +Package: url 2006/04/12 ver 3.3 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 4140. +(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/bitset.sty +Package: bitset 2007/09/28 v1.0 Data type bit set (HO) +(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/bigintcalc.sty +Package: bigintcalc 2007/11/11 v1.1 Expandable big integer calculations (HO) +)) +\Fld@menulength=\count101 +\Field@Width=\dimen113 +\Fld@charsize=\dimen114 +\Field@toks=\toks26 +Package hyperref Info: Hyper figures OFF on input line 5118. +Package hyperref Info: Link nesting OFF on input line 5123. +Package hyperref Info: Hyper index ON on input line 5126. +Package hyperref Info: backreferencing OFF on input line 5133. +Package hyperref Info: Link coloring OFF on input line 5138. +Package hyperref Info: Link coloring with OCG OFF on input line 5143. +Package hyperref Info: PDF/A mode OFF on input line 5148. +LaTeX Info: Redefining \ref on input line 5188. +LaTeX Info: Redefining \pageref on input line 5192. +(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/atbegshi.sty +Package: atbegshi 2010/03/25 v1.12 At begin shipout hook (HO) +) +\Hy@abspage=\count102 +\c@Item=\count103 +\c@Hfootnote=\count104 +) +* hyperref using default driver hpdftex * +(/usr/local/texlive/2009/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2010/05/04 v6.81a Hyperref driver for pdfTeX +(/usr/local/texlive/2009/texmf-dist/tex/latex/oberdiek/atveryend.sty +Package: atveryend 2010/03/24 v1.5 Hooks at very end of document (HO) +Package atveryend Info: \enddocument detected (standard). +) +\Fld@listcount=\count105 +\c@bookmark@seq@number=\count106 +(/usr/local/texlive/2009/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2010/03/16 v1.6 Rerun checks for auxiliary files (HO) +(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/uniquecounter.sty +Package: uniquecounter 2009/12/18 v1.1 Provides unlimited unique counter (HO) +) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +71. +) +\Hy@SectionHShift=\skip50 +) (/usr/local/texlive/2009/texmf-dist/tex/latex/subfig/subfig.sty +Package: subfig 2005/06/28 ver: 1.3 subfig package +(/usr/local/texlive/2009/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2010/01/09 v3.1m Customizing captions (AR) +(/usr/local/texlive/2009/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2010/01/14 v3.1m caption3 kernel (AR) +\captionmargin=\dimen115 +\captionmargin@=\dimen116 +\captionwidth=\dimen117 +\caption@indent=\dimen118 +\caption@parindent=\dimen119 +\caption@hangindent=\dimen120 +) +\c@ContinuedFloat=\count107 +Package caption Info: hyperref package is loaded. +) +\c@KVtest=\count108 +\sf@farskip=\skip51 +\sf@captopadj=\dimen121 +\sf@capskip=\skip52 +\sf@nearskip=\skip53 +\c@subfigure=\count109 +\c@subfigure@save=\count110 +\c@lofdepth=\count111 +\c@subtable=\count112 +\c@subtable@save=\count113 +\c@lotdepth=\count114 +\sf@top=\skip54 +\sf@bottom=\skip55 +) (/usr/local/texlive/2009/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) +(/usr/local/texlive/2009/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR) +(/usr/local/texlive/2009/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) (/usr/local/texlive/2009/texmf-dist/tex/latex/latexconfig/graphics.cfg +File: graphics.cfg 2009/08/28 v1.8 graphics configuration of TeX Live +) +Package graphics Info: Driver file: pdftex.def on input line 91. +(/usr/local/texlive/2009/texmf-dist/tex/latex/pdftex-def/pdftex.def +File: pdftex.def 2010/02/14 v0.04n Graphics/color for pdfTeX +\Gread@gobject=\count115 +)) +\Gin@req@height=\dimen122 +\Gin@req@width=\dimen123 +) (/usr/local/texlive/2009/texmf-dist/tex/latex/showlabels/showlabels.sty +Package: showlabels 2009/05/29 v1.6.5 +Package: `showlabels' v1.6.5 <2009/05/29> +with amsmath equation tags +\SL@labelposition=\count116 +) (/usr/local/texlive/2009/texmf-dist/tex/latex/mh/mathtools.sty +Package: mathtools 2008/08/01 v1.06 mathematical typesetting tools (MH) +(/usr/local/texlive/2009/texmf-dist/tex/latex/tools/calc.sty +Package: calc 2007/08/22 v4.3 Infix arithmetic (KKT,FJ) +\calc@Acount=\count117 +\calc@Bcount=\count118 +\calc@Adimen=\dimen124 +\calc@Bdimen=\dimen125 +\calc@Askip=\skip56 +\calc@Bskip=\skip57 +LaTeX Info: Redefining \setlength on input line 76. +LaTeX Info: Redefining \addtolength on input line 77. +\calc@Ccount=\count119 +\calc@Cskip=\skip58 +) (/usr/local/texlive/2009/texmf-dist/tex/latex/mh/mhsetup.sty +Package: mhsetup 2010/01/21 v1.2a programming setup (MH) +) +\g_MT_multlinerow_int=\count120 +\l_MT_multwidth_dim=\dimen126 +) +\c@claim=\count121 +(compiles/dff0c37d892f346e58fc14975a16bf69/output.aux) +\openout1 = `output.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 30. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 30. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 30. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 30. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 30. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 30. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 30. +LaTeX Font Info: ... okay on input line 30. +\AtBeginShipoutBox=\box28 +Package hyperref Info: Link coloring OFF on input line 30. +(/usr/local/texlive/2009/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2010/04/30 v2.40 Cross-referencing by name of section +(/usr/local/texlive/2009/texmf-dist/tex/latex/oberdiek/refcount.sty +Package: refcount 2008/08/11 v3.1 Data extraction from references (HO) +) (/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +Package: gettitlestring 2009/12/18 v1.3 Cleanup title references (HO) +) +\c@section@level=\count122 +) +LaTeX Info: Redefining \ref on input line 30. +LaTeX Info: Redefining \pageref on input line 30. +LaTeX Info: Redefining \nameref on input line 30. +(compiles/dff0c37d892f346e58fc14975a16bf69/output.out) (compiles/dff0c37d892f34 +6e58fc14975a16bf69/output.out) +\@outlinefile=\write3 +\openout3 = `output.out'. + +Package caption Info: Begin \AtBeginDocument code. +Package caption3 Info: subfig package 1.2 or 1.3 is loaded. +LaTeX Info: Redefining \subref on input line 30. +Package caption Info: End \AtBeginDocument code. +(/usr/local/texlive/2009/texmf-dist/tex/context/base/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count123 +\scratchdimen=\dimen127 +\scratchbox=\box29 +\nofMPsegments=\count124 +\nofMParguments=\count125 +\everyMPshowfont=\toks27 +\MPscratchCnt=\count126 +\MPscratchDim=\dimen128 +\MPnumerator=\count127 +\everyMPtoPDFconversion=\toks28 +) (compiles/dff0c37d892f346e58fc14975a16bf69/output.toc +LaTeX Font Info: Try loading font information for U+msa on input line 3. +(/usr/local/texlive/2009/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2009/06/22 v3.00 AMS symbols A +) +LaTeX Font Info: Try loading font information for U+msb on input line 3. +(/usr/local/texlive/2009/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2009/06/22 v3.00 AMS symbols B +)) +\tf@toc=\write4 +\openout4 = `output.toc'. + +(compiles/dff0c37d892f346e58fc14975a16bf69/sections/introduction.tex) (compiles +/dff0c37d892f346e58fc14975a16bf69/sections/instantons.tex [1 + +{/usr/local/texlive/2009/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] +LaTeX Font Info: Try loading font information for U+euf on input line 7. +(/usr/local/texlive/2009/texmf-dist/tex/latex/amsfonts/ueuf.fd +File: ueuf.fd 2009/06/22 v3.00 Euler Fraktur +) [2] [3] [4] [5] [6] [7]) +(compiles/dff0c37d892f346e58fc14975a16bf69/sections/moduli_space_approximation. +tex [8] [9] [10] [11] [12]) +(compiles/dff0c37d892f346e58fc14975a16bf69/sections/dynamics_of_single_instanto +n.tex [13] +File: figures/variation_of_theta_dot.png Graphic file (type png) + +File: figures/variation_of_rho_dot.png Graphic file (type png) + +Overfull \hbox (13.3333pt too wide) in paragraph at lines 55--61 + [][][][] + [] + +) +(compiles/dff0c37d892f346e58fc14975a16bf69/sections/dynamics_of_two_instantons. +tex [14 ] [15] [16] +File: figures/higgs_field/fig1.png Graphic file (type png) + +File: figures/higgs_field/fig2.png Graphic file (type png) + +File: figures/higgs_field/fig3.png Graphic file (type png) + [17] +File: figures/fig4.png Graphic file (type png) + [18 ] +File: figures/attraction_and_repulsion.png Graphic file (type png) + +File: figures/scatterings/flower.png Graphic file (type png) + +File: figures/scatterings/circle.png Graphic file (type png) + +File: figures/scatterings/right_angle.png Graphic file (type png) + [19 ] [20 < +compiles/dff0c37d892f346e58fc14975a16bf69/figures/scatterings/right_angle.png ( +PNG copy)>] +File: figures/angular_momentum_exchange_rho.png Graphic file (type png) + +File: figures/angular_momentum_exchange_L.png Graphic file (type png) +) (compiles/dff0c37d892f346e58fc14 +975a16bf69/output.bbl [21 ]) (compiles/dff0c37 +d892f346e58fc14975a16bf69/sections/appendices.tex +! Undefined control sequence. +l.29 \T + \left( Z_{ri} Z_{si} \right) = \tfrac{1}{2} \partial^2 \Tr \left( C_... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + +! LaTeX Error: \begin{equation} on input line 28 ended by \end{equaion}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.30 \end{equaion} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.30 \end{equaion} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Display math should end with $$. + + \endgroup +l.30 \end{equaion} + +The `$' that I just saw supposedly matches a previous `$$'. +So I shall assume that you typed `$$' both times. + +! Extra }, or forgotten \right. +