Skip to content

Instantly share code, notes, and snippets.

View tiarno's full-sized avatar

Tim Arnold tiarno

View GitHub Profile
tiarno / wk_toc.xsl
Created April 30, 2019 12:16
XSL for Creating an Appendix with wkhtmltopdf
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
<xsl:output doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
indent="yes" />
<xsl:template match="outline:outline">
tiarno / enable-local-fonts
Last active January 19, 2016 23:00 — forked from mpg/enable-local-fonts
Enable fonts from texmf-local using updmap-sys --enable Map
# Enable fonts from texmf-local using updmap-sys --enable Map
# Manuel Pégourié-Gonnard, 2010; WTFPL v2.
find -H `kpsewhich --var-value TEXMFLOCAL` -name '*.map' | while read file
updmap-sys --nohash --nomkmap --enable Map `basename $file`
tiarno / iframe_vis.js
Last active January 29, 2020 08:41
javascript: is element inside an iframe visible within the viewport?
// Given an iframe id and an anchor id that is present within the iframe,
// determine whether the element is visible/present inside the window viewport.
// This is not about the css 'display' property; this shows whether
// the window viewport contains the element.
var isVisible = function (anchor, iframe_id) {
var ifrId = iframe_id || 'bv_page';
var ifrOffset = window.parent.document.getElementById(ifrId).offsetTop;
var myloc = document.getElementById(anchor).offsetTop + ifrOffset;
var viewtop = window.parent.scrollY;
tiarno / node_cluster.js
Created February 18, 2015 21:09
NodeJS server receives LaTeX, returns SVG
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;
var createServer = function(port) {
var mjAPI = require("node_modules/MathJax-node/lib/mj-single");
MathJax: {
SVG: {
font: "STIX-Web"
tiarno /
Last active February 17, 2017 13:33
PDF Checking

PDF Testing Gist

These two files, and are code examples to go along with a blog article:

See the article for details on how to test your PDFs for broken internal and external links and for unembedded fonts.

tiarno / gist:8a2995e70cee42f01e79
Last active February 2, 2024 22:15
find PDF font info with PyPDF2, example code
from PyPDF2 import PdfFileReader
from pprint import pprint
def walk(obj, fnt, emb):
If there is a key called 'BaseFont', that is a font that is used in the document.
If there is a key called 'FontName' and another key in the same dictionary object
that is called 'FontFilex' (where x is null, 2, or 3), then that fontname is
tiarno / phantomjs_mathjax.
Created August 21, 2013 14:07
phantomjs testing script to evaluate a page, wait for a response from MathJax, and close the page. Use in conjunction with mathjax_test.js script; all this does is load the page so any errors flagged from the mathjax_test code is posted to the error database. the two scripts need each other in order to test the file. This script expects a single…
var url = require('system').args[1];
var page = require('webpage').create();
function waitFor(testFn, onSuccessFn, timeOut) {
var start = new Date().getTime();
var condition = false;
var interval = setInterval(function() {
if ( (new Date().getTime() - start < timeOut) && !condition ) {
condition = testFn();
} else {
tiarno / mathjax_test.js
Created July 30, 2013 19:54
MathJax testing for TeX and rendering errors. Create HTML page (with math) to include the MathJax library and then include this file. When the page is loaded, the js console will show when errors are encountered and the data about the error will be POSTed via ajax to a rest-type service named here as 'service/mathmltest'. That service should acc…
function ajaxRequest(){
return new XMLHttpRequest(async=false);
function mltest (){
var filename = window.location.href.substr(window.location.href.lastIndexOf("/")+1);
MathJax.Hub.Config({TeX: {noUndefined: {disabled: true}}});
MathJax.Hub.Queue(function() {console.log('finished rendering');});
MathJax.Hub.Register.MessageHook("TeX Jax - parse error",function (message) {
console.log('error encountered');
var mydata = {};
tiarno / mathjax_error_flags.html
Last active December 20, 2015 05:39
JavaScript/MathJax method to flag for errors on a page containing TeX math: Flags for either TeX errors (undefined control sequence) or Math errors (for example, missing brace). Code stolen from a couple of threads on MathJax Users Google Group:!msg/mathjax-users/ct4drdifuyI/h61GSTt_-bAJ…
<!DOCTYPE html>
<title>Encapsulate Trapping of Math and TeX errors</title>
<script type="text/x-mathjax-config">
// Turn off NoErrors extension
TeX: {noErrors: {disabled: true}}
// Set flag function for TeX Errors (undefined cs)