mirror of
https://github.com/cryptpad/cryptpad.git
synced 2026-09-14 11:05:41 +05:00
Support texlive PDF output
This commit is contained in:
parent
19d1efc69d
commit
12e32d974e
@ -43,8 +43,9 @@ define([
|
||||
'/common/latex/latex.js',
|
||||
'css!/common/latex/css/katex.css',
|
||||
'css!/common/latex/css/article.css',
|
||||
'css!/common/latex/css/base.css'
|
||||
|
||||
'css!/common/latex/css/base.css',
|
||||
'/common/latex/promise.js',
|
||||
'/common/latex/pdftex.js',
|
||||
], function (
|
||||
$,
|
||||
DiffMd,
|
||||
@ -77,6 +78,10 @@ define([
|
||||
'velocity',
|
||||
'xml',
|
||||
]);
|
||||
var PDF_MODES = Object.freeze([
|
||||
'stex',
|
||||
]);
|
||||
var $pdfButton;
|
||||
|
||||
var mkPrintButton = function (framework, $content, $print) {
|
||||
var $printButton = framework._.sfCommon.createButton('print', true);
|
||||
@ -331,7 +336,7 @@ define([
|
||||
};
|
||||
|
||||
var mkFilePicker = function (framework, editor, evModeChange) {
|
||||
evModeChange.reg(function (mode) {
|
||||
evModeChange.reg(function (mode) {
|
||||
if (MEDIA_TAG_MODES.indexOf(mode) !== -1) {
|
||||
// Embedding is endabled
|
||||
framework.setMediaTagEmbedder(function (mt) {
|
||||
@ -344,6 +349,82 @@ define([
|
||||
});
|
||||
};
|
||||
|
||||
/*
|
||||
var pdftex = new PDFTeX();
|
||||
pdftex.set_TOTAL_MEMORY(80*1024*1024).then(function() {
|
||||
pdftex.FS_createLazyFile('/', 'snowden.jpg', 'snowden.jpg', true, true);
|
||||
|
||||
pdftex.on_stdout = appendOutput;
|
||||
pdftex.on_stderr = appendOutput;
|
||||
|
||||
var start_time = new Date().getTime();
|
||||
|
||||
pdftex.compile(source_code).then(function(pdf_dataurl) {
|
||||
var end_time = new Date().getTime();
|
||||
console.info("Execution time: " + (end_time-start_time)/1000+' sec');
|
||||
|
||||
showLoadingIndicator(false);
|
||||
|
||||
if(pdf_dataurl === false)
|
||||
return;
|
||||
showOpenButton(true);
|
||||
window.location.href = "#open_pdf";
|
||||
document.getElementById("open_pdf_btn").focus();
|
||||
});
|
||||
});
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
var pdfOutput = function(msg) {
|
||||
console.log("PDF compile: " + msg);
|
||||
}
|
||||
|
||||
|
||||
var mkPDFMaker = function (framework, editor, evModeChange) {
|
||||
evModeChange.reg(function (mode) {
|
||||
if (PDF_MODES.indexOf(mode) !== -1) {
|
||||
if (!$pdfButton) {
|
||||
$pdfButton = framework._.sfCommon.createButton('pdf', true);
|
||||
$pdfButton.click(function () {
|
||||
var source = editor.getValue();
|
||||
// console.log("PDF " + source);
|
||||
try {
|
||||
var pdftex = new PDFTeX();
|
||||
pdftex.on_stdout = pdfOutput;
|
||||
pdftex.on_stderr = pdfOutput;
|
||||
pdftex.set_TOTAL_MEMORY(80*1024*1024).then(function() {
|
||||
pdftex.FS_createLazyFile('/', 'snowden.jpg', 'snowden.jpg', true, true);
|
||||
console.log("PDF launch compile");
|
||||
pdftex.compile(source).then(function(pdf_dataurl) {
|
||||
console.log("PDF end compile opening window");
|
||||
console.log(pdf_dataurl);
|
||||
var link = document.createElement("a");
|
||||
link.download = "file.pdf";
|
||||
link.href = pdf_dataurl;
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
document.body.removeChild(link);
|
||||
delete link;
|
||||
});
|
||||
console.log("PDF end launch compile");
|
||||
});
|
||||
console.log("PDF end prelaunch");
|
||||
} catch (e) {
|
||||
console.log("Error outputing pdf: " + e);
|
||||
}
|
||||
});
|
||||
framework._.toolbar.$drawer.append($pdfButton);
|
||||
} else {
|
||||
$pdfButton.show();
|
||||
}
|
||||
} else {
|
||||
if ($pdfButton)
|
||||
$pdfButton.hide();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@ -366,6 +447,9 @@ define([
|
||||
evModeChange.reg(previewPane.modeChange);
|
||||
evModeChange.reg(markdownTb.modeChange);
|
||||
|
||||
// Add pdf in stex mode
|
||||
mkPDFMaker(framework, editor, evModeChange);
|
||||
|
||||
CodeMirror.mkIndentSettings(framework._.cpNfInner.metadataMgr);
|
||||
CodeMirror.init(framework.localChange, framework._.title, framework._.toolbar);
|
||||
mkFilePicker(framework, editor, evModeChange);
|
||||
|
||||
@ -785,6 +785,12 @@ define([
|
||||
'class': "fa fa-print cp-toolbar-icon-print",
|
||||
}).append($('<span>', {'class': 'cp-toolbar-drawer-element'}).text(Messages.printText));
|
||||
break;
|
||||
case 'pdf':
|
||||
button = $('<button>', {
|
||||
title: Messages.pdfButtonTitle2,
|
||||
'class': "fa fa-file-pdf-o cp-toolbar-icon-pdf",
|
||||
}).append($('<span>', {'class': 'cp-toolbar-drawer-element'}).text(Messages.pdfText));
|
||||
break;
|
||||
case 'history':
|
||||
if (!AppConfig.enableHistory) {
|
||||
button = $('<span>');
|
||||
|
||||
1662
www/common/latex/pdftex-worker.js
Normal file
1662
www/common/latex/pdftex-worker.js
Normal file
File diff suppressed because one or more lines are too long
174
www/common/latex/pdftex.js
Normal file
174
www/common/latex/pdftex.js
Normal file
@ -0,0 +1,174 @@
|
||||
var PDFTeX = function(opt_workerPath) {
|
||||
if (!opt_workerPath) {
|
||||
opt_workerPath = '/common/latex/pdftex-worker.js';
|
||||
}
|
||||
var worker = new Worker(opt_workerPath);
|
||||
var self = this;
|
||||
var initialized = false;
|
||||
|
||||
self.on_stdout = function(msg) {
|
||||
console.log(msg);
|
||||
}
|
||||
|
||||
self.on_stderr = function(msg) {
|
||||
console.log(msg);
|
||||
}
|
||||
|
||||
|
||||
worker.onmessage = function(ev) {
|
||||
var data = JSON.parse(ev.data);
|
||||
var msg_id;
|
||||
|
||||
if(!('command' in data))
|
||||
console.log("missing command!", data);
|
||||
switch(data['command']) {
|
||||
case 'ready':
|
||||
onready.done(true);
|
||||
break;
|
||||
case 'stdout':
|
||||
case 'stderr':
|
||||
self['on_'+data['command']](data['contents']);
|
||||
break;
|
||||
default:
|
||||
//console.debug('< received', data);
|
||||
msg_id = data['msg_id'];
|
||||
if(('msg_id' in data) && (msg_id in promises)) {
|
||||
promises[msg_id].done(data['result']);
|
||||
}
|
||||
else
|
||||
console.warn('Unknown worker message '+msg_id+'!');
|
||||
}
|
||||
}
|
||||
|
||||
var onready = new promise.Promise();
|
||||
var promises = [];
|
||||
var chunkSize = undefined;
|
||||
|
||||
var sendCommand = function(cmd) {
|
||||
var p = new promise.Promise();
|
||||
var msg_id = promises.push(p)-1;
|
||||
|
||||
onready.then(function() {
|
||||
cmd['msg_id'] = msg_id;
|
||||
//console.debug('> sending', cmd);
|
||||
worker.postMessage(JSON.stringify(cmd));
|
||||
});
|
||||
|
||||
return p;
|
||||
};
|
||||
|
||||
var determineChunkSize = function() {
|
||||
var size = 1024;
|
||||
var max = undefined;
|
||||
var min = undefined;
|
||||
var delta = size;
|
||||
var success = true;
|
||||
var buf;
|
||||
|
||||
while(Math.abs(delta) > 100) {
|
||||
if(success) {
|
||||
min = size;
|
||||
if(typeof(max) === 'undefined')
|
||||
delta = size;
|
||||
else
|
||||
delta = (max-size)/2;
|
||||
}
|
||||
else {
|
||||
max = size;
|
||||
if(typeof(min) === 'undefined')
|
||||
delta = -1*size/2;
|
||||
else
|
||||
delta = -1*(size-min)/2;
|
||||
}
|
||||
size += delta;
|
||||
|
||||
success = true;
|
||||
try {
|
||||
buf = String.fromCharCode.apply(null, new Uint8Array(size));
|
||||
sendCommand({
|
||||
command: 'test',
|
||||
data: buf,
|
||||
});
|
||||
}
|
||||
catch(e) {
|
||||
success = false;
|
||||
}
|
||||
}
|
||||
|
||||
return size;
|
||||
};
|
||||
|
||||
|
||||
var createCommand = function(command) {
|
||||
self[command] = function() {
|
||||
var args = [].concat.apply([], arguments);
|
||||
|
||||
return sendCommand({
|
||||
'command': command,
|
||||
'arguments': args,
|
||||
});
|
||||
}
|
||||
}
|
||||
createCommand('FS_createDataFile'); // parentPath, filename, data, canRead, canWrite
|
||||
createCommand('FS_readFile'); // filename
|
||||
createCommand('FS_unlink'); // filename
|
||||
createCommand('FS_createFolder'); // parent, name, canRead, canWrite
|
||||
createCommand('FS_createPath'); // parent, name, canRead, canWrite
|
||||
createCommand('FS_createLazyFile'); // parent, name, canRead, canWrite
|
||||
createCommand('FS_createLazyFilesFromList'); // parent, list, parent_url, canRead, canWrite
|
||||
createCommand('set_TOTAL_MEMORY'); // size
|
||||
|
||||
var curry = function(obj, fn, args) {
|
||||
return function() {
|
||||
return obj[fn].apply(obj, args);
|
||||
}
|
||||
}
|
||||
|
||||
self.compile = function(source_code) {
|
||||
var p = new promise.Promise();
|
||||
|
||||
self.compileRaw(source_code).then(function(binary_pdf) {
|
||||
if(binary_pdf === false)
|
||||
return p.done(false);
|
||||
|
||||
pdf_dataurl = 'data:application/pdf;charset=binary;base64,' + window.btoa(binary_pdf);
|
||||
|
||||
return p.done(pdf_dataurl);
|
||||
});
|
||||
return p;
|
||||
}
|
||||
|
||||
self.compileRaw = function(source_code) {
|
||||
if(typeof(chunkSize) === "undefined")
|
||||
chunkSize = determineChunkSize();
|
||||
|
||||
var commands;
|
||||
if(initialized)
|
||||
commands = [
|
||||
curry(self, 'FS_unlink', ['/input.tex']),
|
||||
];
|
||||
else
|
||||
commands = [
|
||||
curry(self, 'FS_createDataFile', ['/', 'input.tex', source_code, true, true]),
|
||||
curry(self, 'FS_createLazyFilesFromList', ['/', 'texlive.lst', './texlive', true, true]),
|
||||
];
|
||||
|
||||
var sendCompile = function() {
|
||||
initialized = true;
|
||||
return sendCommand({
|
||||
'command': 'run',
|
||||
'arguments': ['-interaction=nonstopmode', '-output-format', 'pdf', 'input.tex'],
|
||||
// 'arguments': ['-debug-format', '-output-format', 'pdf', '&latex', 'input.tex'],
|
||||
});
|
||||
};
|
||||
|
||||
var getPDF = function() {
|
||||
console.log(arguments);
|
||||
return self.FS_readFile('/input.pdf');
|
||||
}
|
||||
|
||||
return promise.chain(commands)
|
||||
.then(sendCompile)
|
||||
.then(getPDF);
|
||||
};
|
||||
};
|
||||
204
www/common/latex/promise.js
Normal file
204
www/common/latex/promise.js
Normal file
@ -0,0 +1,204 @@
|
||||
/*
|
||||
* Copyright 2012-2013 (c) Pierre Duquesne <stackp@online.fr>
|
||||
* Licensed under the New BSD License.
|
||||
* https://github.com/stackp/promisejs
|
||||
*/
|
||||
|
||||
(function(exports) {
|
||||
|
||||
function Promise() {
|
||||
this._callbacks = [];
|
||||
}
|
||||
|
||||
Promise.prototype.then = function(func, context) {
|
||||
var p;
|
||||
if (this._isdone) {
|
||||
p = func.apply(context, this.result);
|
||||
} else {
|
||||
p = new Promise();
|
||||
this._callbacks.push(function () {
|
||||
var res = func.apply(context, arguments);
|
||||
if (res && typeof res.then === 'function')
|
||||
res.then(p.done, p);
|
||||
});
|
||||
}
|
||||
return p;
|
||||
};
|
||||
|
||||
Promise.prototype.done = function() {
|
||||
this.result = arguments;
|
||||
this._isdone = true;
|
||||
for (var i = 0; i < this._callbacks.length; i++) {
|
||||
this._callbacks[i].apply(null, arguments);
|
||||
}
|
||||
this._callbacks = [];
|
||||
};
|
||||
|
||||
function join(promises) {
|
||||
var p = new Promise();
|
||||
var total = promises.length;
|
||||
var numdone = 0;
|
||||
var results = [];
|
||||
|
||||
function notifier(i) {
|
||||
return function() {
|
||||
numdone += 1;
|
||||
results[i] = Array.prototype.slice.call(arguments);
|
||||
if (numdone === total) {
|
||||
p.done(results);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
for (var i = 0; i < total; i++) {
|
||||
promises[i].then(notifier(i));
|
||||
}
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
function chain(funcs, args) {
|
||||
var p = new Promise();
|
||||
if (funcs.length === 0) {
|
||||
p.done.apply(p, args);
|
||||
} else {
|
||||
funcs[0].apply(null, args).then(function() {
|
||||
funcs.splice(0, 1);
|
||||
chain(funcs, arguments).then(function() {
|
||||
p.done.apply(p, arguments);
|
||||
});
|
||||
});
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
/*
|
||||
* AJAX requests
|
||||
*/
|
||||
|
||||
function _encode(data) {
|
||||
var result = "";
|
||||
if (typeof data === "string") {
|
||||
result = data;
|
||||
} else {
|
||||
var e = encodeURIComponent;
|
||||
for (var k in data) {
|
||||
if (data.hasOwnProperty(k)) {
|
||||
result += '&' + e(k) + '=' + e(data[k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function new_xhr() {
|
||||
var xhr;
|
||||
if (window.XMLHttpRequest) {
|
||||
xhr = new XMLHttpRequest();
|
||||
} else if (window.ActiveXObject) {
|
||||
try {
|
||||
xhr = new ActiveXObject("Msxml2.XMLHTTP");
|
||||
} catch (e) {
|
||||
xhr = new ActiveXObject("Microsoft.XMLHTTP");
|
||||
}
|
||||
}
|
||||
return xhr;
|
||||
}
|
||||
|
||||
|
||||
function ajax(method, url, data, headers) {
|
||||
var p = new Promise();
|
||||
var xhr, payload;
|
||||
data = data || {};
|
||||
headers = headers || {};
|
||||
|
||||
try {
|
||||
xhr = new_xhr();
|
||||
} catch (e) {
|
||||
p.done(promise.ENOXHR, "");
|
||||
return p;
|
||||
}
|
||||
|
||||
payload = _encode(data);
|
||||
if (method === 'GET' && payload) {
|
||||
url += '?' + payload;
|
||||
payload = null;
|
||||
}
|
||||
|
||||
xhr.open(method, url);
|
||||
xhr.setRequestHeader('Content-type',
|
||||
'application/x-www-form-urlencoded');
|
||||
for (var h in headers) {
|
||||
if (headers.hasOwnProperty(h)) {
|
||||
xhr.setRequestHeader(h, headers[h]);
|
||||
}
|
||||
}
|
||||
|
||||
function onTimeout() {
|
||||
xhr.abort();
|
||||
p.done(promise.ETIMEOUT, "", xhr);
|
||||
}
|
||||
|
||||
var timeout = promise.ajaxTimeout;
|
||||
if (timeout) {
|
||||
var tid = setTimeout(onTimeout, timeout);
|
||||
}
|
||||
|
||||
xhr.onreadystatechange = function() {
|
||||
if (timeout) {
|
||||
clearTimeout(tid);
|
||||
}
|
||||
if (xhr.readyState === 4) {
|
||||
var err = (!xhr.status ||
|
||||
(xhr.status < 200 || xhr.status >= 300) &&
|
||||
xhr.status !== 304);
|
||||
p.done(err, xhr.responseText, xhr);
|
||||
}
|
||||
};
|
||||
|
||||
xhr.send(payload);
|
||||
return p;
|
||||
}
|
||||
|
||||
function _ajaxer(method) {
|
||||
return function(url, data, headers) {
|
||||
return ajax(method, url, data, headers);
|
||||
};
|
||||
}
|
||||
|
||||
var promise = {
|
||||
Promise: Promise,
|
||||
join: join,
|
||||
chain: chain,
|
||||
ajax: ajax,
|
||||
get: _ajaxer('GET'),
|
||||
post: _ajaxer('POST'),
|
||||
put: _ajaxer('PUT'),
|
||||
del: _ajaxer('DELETE'),
|
||||
|
||||
/* Error codes */
|
||||
ENOXHR: 1,
|
||||
ETIMEOUT: 2,
|
||||
|
||||
/**
|
||||
* Configuration parameter: time in milliseconds after which a
|
||||
* pending AJAX request is considered unresponsive and is
|
||||
* aborted. Useful to deal with bad connectivity (e.g. on a
|
||||
* mobile network). A 0 value disables AJAX timeouts.
|
||||
*
|
||||
* Aborted requests resolve the promise with a ETIMEOUT error
|
||||
* code.
|
||||
*/
|
||||
ajaxTimeout: 0
|
||||
};
|
||||
|
||||
window.promise = promise;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
/* AMD support */
|
||||
define(function() {
|
||||
return promise;
|
||||
});
|
||||
} else {
|
||||
exports.promise = promise;
|
||||
}
|
||||
})(this);
|
||||
3493
www/common/latex/texlive.lst
Normal file
3493
www/common/latex/texlive.lst
Normal file
File diff suppressed because it is too large
Load Diff
45
www/common/latex/texlive/LICENSE.CTAN
Normal file
45
www/common/latex/texlive/LICENSE.CTAN
Normal file
@ -0,0 +1,45 @@
|
||||
$Id: LICENSE.CTAN 2212 2006-09-28 16:31:42Z karl $
|
||||
|
||||
COPYING CONDITIONS FOR CTAN SNAPSHOT:
|
||||
|
||||
A snapshot of the Comprehensive TeX Archive Network (CTAN) holdings is
|
||||
taken from time to time and distributed on physical media. It may be
|
||||
bundled with the TeX Live system, or distributed separately.
|
||||
|
||||
In any case, the licensing conditions of the packages in the CTAN
|
||||
snapshot vary widely. In particular (and in contrast to TeX Live), not
|
||||
all the software meets free software or open source criteria: some are
|
||||
available only as binaries, others have restrictions on commercial
|
||||
resale, and so on.
|
||||
|
||||
Furthermore, the creators of the CTAN snapshot have explicitly received
|
||||
permission from some authors of software to include their material; this
|
||||
software is in the ctan/nonfree/ subdirectory. (The nonfree area on the
|
||||
CTAN servers, http://www.ctan.org/tex-archive/nonfree, contains much
|
||||
more software that is not included here.) This permission does not
|
||||
extend to any redistributors; you yourself must also contact such
|
||||
authors with regards to your own distribution, or refrain from including
|
||||
such software.
|
||||
|
||||
Thus, when redistributing the CTAN snapshot, you must be very careful
|
||||
that you are not violating any license conditions. Since each situation
|
||||
is different, we cannot offer any general advice.
|
||||
|
||||
To learn redistribution requirements, of course the licensing
|
||||
information within the packages themselves is the final authority. For
|
||||
aggregate information, we suggest checking the TeX Catalogue:
|
||||
http://www.ctan.org/tex-archive/help/Catalogue/catalogue.html (or any
|
||||
CTAN mirror). The Catalogue is also included in the CTAN snapshot in
|
||||
ctan/help/Catalogue, but the online version will have updates.
|
||||
|
||||
You may also find the CTAN Search by License page helpful in this
|
||||
regard: http://tug.ctan.org/cgi-bin/searchByLicense.py
|
||||
|
||||
If you believe any files have been included erroneously, please contact
|
||||
us (references are given below).
|
||||
|
||||
If you have any questions or comments, please contact us.
|
||||
Thanks for your interest in TeX.
|
||||
|
||||
CTAN maintainers mailing list: ctan@dante.de
|
||||
CTAN home page: http://www.ctan.org/
|
||||
111
www/common/latex/texlive/LICENSE.TL
Normal file
111
www/common/latex/texlive/LICENSE.TL
Normal file
@ -0,0 +1,111 @@
|
||||
$Id: LICENSE.TL 22793 2011-06-05 15:38:08Z karl $
|
||||
|
||||
COPYING CONDITIONS FOR TeX Live:
|
||||
|
||||
To the best of our knowledge, all software in the TeX Live distribution
|
||||
is freely redistributable (libre, that is, not necessarily gratis),
|
||||
within the Free Software Foundation's definition and the Debian Free
|
||||
Software Guidelines. Where the two conflict, we generally follow the
|
||||
FSF. If you find any non-free files included, please contact us
|
||||
(references given at the end).
|
||||
|
||||
That said, TeX Live has neither a single copyright holder nor a single
|
||||
license covering its entire contents, since it is a collection of many
|
||||
independent packages. Therefore, you may copy, modify, and/or
|
||||
redistribute software from TeX Live only if you comply with the
|
||||
requirements placed thereon by the owners of the respective packages.
|
||||
|
||||
To most easily learn these requirements, we suggest checking the TeX
|
||||
Catalogue at: http://www.ctan.org/tex-archive/help/Catalogue/ (or any
|
||||
CTAN mirror). Of course the legal statements within the packages
|
||||
themselves are the final authority.
|
||||
|
||||
In some cases, TeX Live is distributed with a snapshot of the CTAN
|
||||
archive, which is entirely independent of and separable from TeX Live
|
||||
itself. (The TeX Collection DVD is one example of this.) Please be
|
||||
aware that the CTAN snapshot contains many files which are *not* freely
|
||||
redistributable; see LICENSE.CTAN for more information.
|
||||
|
||||
|
||||
GUIDELINES FOR REDISTRIBUTION:
|
||||
|
||||
In general, you may redistribute TeX Live, with or without modification,
|
||||
for profit or not, according to the usual free software tenets. Here
|
||||
are some general guidelines for doing this:
|
||||
|
||||
- If you make any changes to the TeX Live distribution or any
|
||||
package it contains, besides complying with any licensing requirements,
|
||||
you must prominently mention such changes in your modified distribution
|
||||
so that users do not take your work for ours, and know to contact you,
|
||||
not us, in case of questions or problems. A new top-level file
|
||||
README.<yourwork> is a good place to describe the general situation.
|
||||
|
||||
- Especially (but not necessarily) if changes or additions are made, we
|
||||
recommend a clearly different title, such as "<your work> DVD, based on
|
||||
TeX Live YYYY", where YYYY is the year of TeX Live you are using. This
|
||||
credits both our work and yours.
|
||||
|
||||
- You absolutely may *not* place your own copyright on the entire
|
||||
distribution, since it is not your work. Statements such as "all rights
|
||||
reserved" and "may not be reproduced" are especially reprehensible,
|
||||
since they are antithetical to the free software principles under which
|
||||
TeX Live is produced.
|
||||
|
||||
- You may use any cover or media label designs that you wish. Such
|
||||
packaging and marketing details are not covered by any TeX Live license.
|
||||
|
||||
- Finally, we make the following requests (not legal requirements):
|
||||
|
||||
a) Acknowledging that TeX Live is developed as a joint effort by all TeX
|
||||
user groups, and encouraging the user/reader to join their user group
|
||||
of choice, as listed on the web page http://tug.org/usergroups.html.
|
||||
|
||||
b) Referencing the TeX Live home page: http://tug.org/texlive/
|
||||
|
||||
Such information may be placed on the label of your media, your cover,
|
||||
and/or in accompanying text (for instance, in the acknowledgements
|
||||
section of a book).
|
||||
|
||||
Finally, although it is again not a requirement, we'd like to invite any
|
||||
redistributors to make a donation to the project, whether cash or
|
||||
in-kind, for example via https://www.tug.org/donate/dev.html. Thanks.
|
||||
|
||||
|
||||
If you have any questions or comments, *please* contact us. In general,
|
||||
we appreciate being given the chance to review any TeX Live-related
|
||||
material in advance of publication, simply to avoid mistakes. It is
|
||||
much better to correct text on a CD label or in a book before thousands
|
||||
of copies are made!
|
||||
|
||||
We are also happy to keep anyone planning a publication informed as to
|
||||
our deadlines and progress. Just let us know. However, be aware that
|
||||
TeX Live is produced entirely by volunteers, and no dates can be
|
||||
guaranteed.
|
||||
|
||||
|
||||
LICENSING FOR NEW PACKAGES:
|
||||
|
||||
Finally, we are often asked what license to use for new work. To be
|
||||
considered for inclusion on TeX Live, a package must use a free software
|
||||
license, such as the LaTeX Project Public License, the GNU General
|
||||
Public License, the modified BSD license, etc. (Please use an existing
|
||||
license instead of making up your own.) Furthermore, all sources must
|
||||
be available, including for documentation files. Please see
|
||||
http://tug.org/texlive/pkgcontrib.html for more information, and other
|
||||
considerations.
|
||||
|
||||
Thanks for your interest in TeX.
|
||||
|
||||
- Karl Berry, for the TeX Live project
|
||||
|
||||
------------------------------------------------------------
|
||||
TeX Live mailing list: http://lists.tug.org/tex-live
|
||||
TeX Live home page: http://tug.org/tex-live/
|
||||
|
||||
The FSF's free software definition: http://www.gnu.org/philosophy/free-sw.html
|
||||
Debian Free Software Guidelines: http://www.debian.org/intro/free
|
||||
FSF commentary on existing licenses:
|
||||
http://www.gnu.org/licenses/license-list.html
|
||||
|
||||
LPPL: http://latex-project.org/lppl.html or texmf-dist/doc/latex/base/lppl.txt
|
||||
LPPL rationale: texmf-dist/doc/latex/base/modguide.pdf
|
||||
4
www/common/latex/texlive/README
Normal file
4
www/common/latex/texlive/README
Normal file
@ -0,0 +1,4 @@
|
||||
For the introductory information to TeX Live, see the directories
|
||||
readme-txt.dir (plain text files) or readme-html.dir/ (HTML files).
|
||||
The material is available in several languages.
|
||||
|
||||
5
www/common/latex/texlive/README.usergroups
Normal file
5
www/common/latex/texlive/README.usergroups
Normal file
@ -0,0 +1,5 @@
|
||||
$Id: README.usergroups 10206 2008-08-09 13:39:09Z karl $
|
||||
|
||||
See http://tug.org/usergroups.html for a list of TeX user groups.
|
||||
Many user groups are active, all over the world.
|
||||
To support TeX Live and TeX in general, please join the user group near you!
|
||||
6
www/common/latex/texlive/profile.input
Normal file
6
www/common/latex/texlive/profile.input
Normal file
@ -0,0 +1,6 @@
|
||||
selected_scheme scheme-basic
|
||||
TEXDIR /home/thunder/emsdk_portable/texlive.js/texlive
|
||||
TEXMFLOCAL /home/thunder/emsdk_portable/texlive.js/texlive/texmf-local
|
||||
TEXMFSYSVAR /home/thunder/emsdk_portable/texlive.js/texlive/texmf-var
|
||||
TEXMFSYSCONFIG /home/thunder/emsdk_portable/texlive.js/texlive/texmf-config
|
||||
TEXMFVAR /home/thunder/emsdk_portable/texlive.js/home/texmf-var
|
||||
9
www/common/latex/texlive/release-texlive.txt
Normal file
9
www/common/latex/texlive/release-texlive.txt
Normal file
@ -0,0 +1,9 @@
|
||||
TeX Live (http://tug.org/texlive) version 2015
|
||||
|
||||
This file is public domain. It is read by install-tl --version,
|
||||
tlmgr --version, and texconfig conf, and a final line appended with
|
||||
the precise version number by tl-update-images during a build.
|
||||
|
||||
The following blank line helps avoid confusing output when
|
||||
used directly from svn, so don't delete it.
|
||||
|
||||
5
www/common/latex/texlive/texmf-config/ls-R
Normal file
5
www/common/latex/texlive/texmf-config/ls-R
Normal file
@ -0,0 +1,5 @@
|
||||
% ls-R -- filename database for kpathsea; do not change this line.
|
||||
./:
|
||||
.:
|
||||
ls-R
|
||||
|
||||
361
www/common/latex/texlive/texmf-dist/bibtex/bib/base/xampl.bib
Normal file
361
www/common/latex/texlive/texmf-dist/bibtex/bib/base/xampl.bib
Normal file
@ -0,0 +1,361 @@
|
||||
% Copyright (C) 1988, 2010 Oren Patashnik.
|
||||
% Unlimited copying and redistribution of this file are permitted if it
|
||||
% is unmodified. Modifications (and their redistribution) are also
|
||||
% permitted, as long as the resulting file is renamed.
|
||||
|
||||
@preamble{ "\newcommand{\noopsort}[1]{} "
|
||||
# "\newcommand{\printfirst}[2]{#1} "
|
||||
# "\newcommand{\singleletter}[1]{#1} "
|
||||
# "\newcommand{\switchargs}[2]{#2#1} " }
|
||||
|
||||
@ARTICLE{article-minimal,
|
||||
author = {L[eslie] A. Aamport},
|
||||
title = {The Gnats and Gnus Document Preparation System},
|
||||
journal = {\mbox{G-Animal's} Journal},
|
||||
year = 1986,
|
||||
}
|
||||
|
||||
@ARTICLE{article-full,
|
||||
author = {L[eslie] A. Aamport},
|
||||
title = {The Gnats and Gnus Document Preparation System},
|
||||
journal = {\mbox{G-Animal's} Journal},
|
||||
year = 1986,
|
||||
volume = 41,
|
||||
number = 7,
|
||||
pages = "73+",
|
||||
month = jul,
|
||||
note = "This is a full ARTICLE entry",
|
||||
}
|
||||
|
||||
The KEY field is here to override the KEY field in the journal being
|
||||
cross referenced (so is the NOTE field, in addition to its imparting
|
||||
information).
|
||||
|
||||
@ARTICLE{article-crossref,
|
||||
crossref = {WHOLE-JOURNAL},
|
||||
key = "",
|
||||
author = {L[eslie] A. Aamport},
|
||||
title = {The Gnats and Gnus Document Preparation System},
|
||||
pages = "73+",
|
||||
note = "This is a cross-referencing ARTICLE entry",
|
||||
}
|
||||
|
||||
@ARTICLE{whole-journal,
|
||||
key = "GAJ",
|
||||
journal = {\mbox{G-Animal's} Journal},
|
||||
year = 1986,
|
||||
volume = 41,
|
||||
number = 7,
|
||||
month = jul,
|
||||
note = {The entire issue is devoted to gnats and gnus
|
||||
(this entry is a cross-referenced ARTICLE (journal))},
|
||||
}
|
||||
|
||||
@INBOOK{inbook-minimal,
|
||||
author = "Donald E. Knuth",
|
||||
title = "Fundamental Algorithms",
|
||||
publisher = "Addison-Wesley",
|
||||
year = "{\noopsort{1973b}}1973",
|
||||
chapter = "1.2",
|
||||
}
|
||||
|
||||
@INBOOK{inbook-full,
|
||||
author = "Donald E. Knuth",
|
||||
title = "Fundamental Algorithms",
|
||||
volume = 1,
|
||||
series = "The Art of Computer Programming",
|
||||
publisher = "Addison-Wesley",
|
||||
address = "Reading, Massachusetts",
|
||||
edition = "Second",
|
||||
month = "10~" # jan,
|
||||
year = "{\noopsort{1973b}}1973",
|
||||
type = "Section",
|
||||
chapter = "1.2",
|
||||
pages = "10--119",
|
||||
note = "This is a full INBOOK entry",
|
||||
}
|
||||
|
||||
@INBOOK{inbook-crossref,
|
||||
crossref = "whole-set",
|
||||
title = "Fundamental Algorithms",
|
||||
volume = 1,
|
||||
series = "The Art of Computer Programming",
|
||||
edition = "Second",
|
||||
year = "{\noopsort{1973b}}1973",
|
||||
type = "Section",
|
||||
chapter = "1.2",
|
||||
note = "This is a cross-referencing INBOOK entry",
|
||||
}
|
||||
|
||||
@BOOK{book-minimal,
|
||||
author = "Donald E. Knuth",
|
||||
title = "Seminumerical Algorithms",
|
||||
publisher = "Addison-Wesley",
|
||||
year = "{\noopsort{1973c}}1981",
|
||||
}
|
||||
|
||||
@BOOK{book-full,
|
||||
author = "Donald E. Knuth",
|
||||
title = "Seminumerical Algorithms",
|
||||
volume = 2,
|
||||
series = "The Art of Computer Programming",
|
||||
publisher = "Addison-Wesley",
|
||||
address = "Reading, Massachusetts",
|
||||
edition = "Second",
|
||||
month = "10~" # jan,
|
||||
year = "{\noopsort{1973c}}1981",
|
||||
note = "This is a full BOOK entry",
|
||||
}
|
||||
|
||||
@BOOK{book-crossref,
|
||||
crossref = "whole-set",
|
||||
title = "Seminumerical Algorithms",
|
||||
volume = 2,
|
||||
series = "The Art of Computer Programming",
|
||||
edition = "Second",
|
||||
year = "{\noopsort{1973c}}1981",
|
||||
note = "This is a cross-referencing BOOK entry",
|
||||
}
|
||||
|
||||
@BOOK{whole-set,
|
||||
author = "Donald E. Knuth",
|
||||
publisher = "Addison-Wesley",
|
||||
title = "The Art of Computer Programming",
|
||||
series = "Four volumes",
|
||||
year = "{\noopsort{1973a}}{\switchargs{--90}{1968}}",
|
||||
note = "Seven volumes planned (this is a cross-referenced set of BOOKs)",
|
||||
}
|
||||
|
||||
@BOOKLET{booklet-minimal,
|
||||
key = "Kn{\printfirst{v}{1987}}",
|
||||
title = "The Programming of Computer Art",
|
||||
}
|
||||
|
||||
@BOOKLET{booklet-full,
|
||||
author = "Jill C. Knvth",
|
||||
title = "The Programming of Computer Art",
|
||||
howpublished = "Vernier Art Center",
|
||||
address = "Stanford, California",
|
||||
month = feb,
|
||||
year = 1988,
|
||||
note = "This is a full BOOKLET entry",
|
||||
}
|
||||
|
||||
@INCOLLECTION{incollection-minimal,
|
||||
author = "Daniel D. Lincoll",
|
||||
title = "Semigroups of Recurrences",
|
||||
booktitle = "High Speed Computer and Algorithm Organization",
|
||||
publisher = "Academic Press",
|
||||
year = 1977,
|
||||
}
|
||||
|
||||
@INCOLLECTION{incollection-full,
|
||||
author = "Daniel D. Lincoll",
|
||||
title = "Semigroups of Recurrences",
|
||||
editor = "David J. Lipcoll and D. H. Lawrie and A. H. Sameh",
|
||||
booktitle = "High Speed Computer and Algorithm Organization",
|
||||
number = 23,
|
||||
series = "Fast Computers",
|
||||
chapter = 3,
|
||||
type = "Part",
|
||||
pages = "179--183",
|
||||
publisher = "Academic Press",
|
||||
address = "New York",
|
||||
edition = "Third",
|
||||
month = sep,
|
||||
year = 1977,
|
||||
note = "This is a full INCOLLECTION entry",
|
||||
}
|
||||
|
||||
@INCOLLECTION{incollection-crossref,
|
||||
crossref = "whole-collection",
|
||||
author = "Daniel D. Lincoll",
|
||||
title = "Semigroups of Recurrences",
|
||||
pages = "179--183",
|
||||
note = "This is a cross-referencing INCOLLECTION entry",
|
||||
}
|
||||
|
||||
@BOOK{whole-collection,
|
||||
editor = "David J. Lipcoll and D. H. Lawrie and A. H. Sameh",
|
||||
title = "High Speed Computer and Algorithm Organization",
|
||||
booktitle = "High Speed Computer and Algorithm Organization",
|
||||
number = 23,
|
||||
series = "Fast Computers",
|
||||
publisher = "Academic Press",
|
||||
address = "New York",
|
||||
edition = "Third",
|
||||
month = sep,
|
||||
year = 1977,
|
||||
note = "This is a cross-referenced BOOK (collection) entry",
|
||||
}
|
||||
|
||||
@MANUAL{manual-minimal,
|
||||
key = "Manmaker",
|
||||
title = "The Definitive Computer Manual",
|
||||
}
|
||||
|
||||
@MANUAL{manual-full,
|
||||
author = "Larry Manmaker",
|
||||
title = "The Definitive Computer Manual",
|
||||
organization = "Chips-R-Us",
|
||||
address = "Silicon Valley",
|
||||
edition = "Silver",
|
||||
month = apr # "-" # may,
|
||||
year = 1986,
|
||||
note = "This is a full MANUAL entry",
|
||||
}
|
||||
|
||||
@MASTERSTHESIS{mastersthesis-minimal,
|
||||
author = "{\'{E}}douard Masterly",
|
||||
title = "Mastering Thesis Writing",
|
||||
school = "Stanford University",
|
||||
year = 1988,
|
||||
}
|
||||
|
||||
@MASTERSTHESIS{mastersthesis-full,
|
||||
author = "{\'{E}}douard Masterly",
|
||||
title = "Mastering Thesis Writing",
|
||||
school = "Stanford University",
|
||||
type = "Master's project",
|
||||
address = "English Department",
|
||||
month = jun # "-" # aug,
|
||||
year = 1988,
|
||||
note = "This is a full MASTERSTHESIS entry",
|
||||
}
|
||||
|
||||
@MISC{misc-minimal,
|
||||
key = "Missilany",
|
||||
note = "This is a minimal MISC entry",
|
||||
}
|
||||
|
||||
@MISC{misc-full,
|
||||
author = "Joe-Bob Missilany",
|
||||
title = "Handing out random pamphlets in airports",
|
||||
howpublished = "Handed out at O'Hare",
|
||||
month = oct,
|
||||
year = 1984,
|
||||
note = "This is a full MISC entry",
|
||||
}
|
||||
|
||||
@STRING{STOC-key = "OX{\singleletter{stoc}}"}
|
||||
|
||||
@STRING{ACM = "The OX Association for Computing Machinery"}
|
||||
|
||||
@STRING{STOC = " Symposium on the Theory of Computing"}
|
||||
|
||||
@INPROCEEDINGS{inproceedings-minimal,
|
||||
author = "Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis",
|
||||
title = "On Notions of Information Transfer in {VLSI} Circuits",
|
||||
booktitle = "Proc. Fifteenth Annual ACM" # STOC,
|
||||
year = 1983,
|
||||
}
|
||||
|
||||
@INPROCEEDINGS{inproceedings-full,
|
||||
author = "Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis",
|
||||
title = "On Notions of Information Transfer in {VLSI} Circuits",
|
||||
editor = "Wizard V. Oz and Mihalis Yannakakis",
|
||||
booktitle = "Proc. Fifteenth Annual ACM" # STOC,
|
||||
number = 17,
|
||||
series = "All ACM Conferences",
|
||||
pages = "133--139",
|
||||
month = mar,
|
||||
year = 1983,
|
||||
address = "Boston",
|
||||
organization = ACM,
|
||||
publisher = "Academic Press",
|
||||
note = "This is a full INPROCEDINGS entry",
|
||||
}
|
||||
|
||||
@INPROCEEDINGS{inproceedings-crossref,
|
||||
crossref = "whole-proceedings",
|
||||
author = "Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis",
|
||||
title = "On Notions of Information Transfer in {VLSI} Circuits",
|
||||
organization = "",
|
||||
pages = "133--139",
|
||||
note = "This is a cross-referencing INPROCEEDINGS entry",
|
||||
}
|
||||
|
||||
@PROCEEDINGS{proceedings-minimal,
|
||||
key = STOC-key,
|
||||
title = "Proc. Fifteenth Annual" # STOC,
|
||||
year = 1983,
|
||||
}
|
||||
|
||||
@PROCEEDINGS{proceedings-full,
|
||||
editor = "Wizard V. Oz and Mihalis Yannakakis",
|
||||
title = "Proc. Fifteenth Annual" # STOC,
|
||||
number = 17,
|
||||
series = "All ACM Conferences",
|
||||
month = mar,
|
||||
year = 1983,
|
||||
address = "Boston",
|
||||
organization = ACM,
|
||||
publisher = "Academic Press",
|
||||
note = "This is a full PROCEEDINGS entry",
|
||||
}
|
||||
|
||||
@PROCEEDINGS{whole-proceedings,
|
||||
key = STOC-key,
|
||||
organization = ACM,
|
||||
title = "Proc. Fifteenth Annual" # STOC,
|
||||
address = "Boston",
|
||||
year = 1983,
|
||||
booktitle = "Proc. Fifteenth Annual ACM" # STOC,
|
||||
note = "This is a cross-referenced PROCEEDINGS",
|
||||
}
|
||||
|
||||
@PHDTHESIS{phdthesis-minimal,
|
||||
author = "F. Phidias Phony-Baloney",
|
||||
title = "Fighting Fire with Fire: Festooning {F}rench Phrases",
|
||||
school = "Fanstord University",
|
||||
year = 1988,
|
||||
}
|
||||
|
||||
@PHDTHESIS{phdthesis-full,
|
||||
author = "F. Phidias Phony-Baloney",
|
||||
title = "Fighting Fire with Fire: Festooning {F}rench Phrases",
|
||||
school = "Fanstord University",
|
||||
type = "{PhD} Dissertation",
|
||||
address = "Department of French",
|
||||
month = jun # "-" # aug,
|
||||
year = 1988,
|
||||
note = "This is a full PHDTHESIS entry",
|
||||
}
|
||||
|
||||
@TECHREPORT{techreport-minimal,
|
||||
author = "Tom Terrific",
|
||||
title = "An {$O(n \log n / \! \log\log n)$} Sorting Algorithm",
|
||||
institution = "Fanstord University",
|
||||
year = 1988,
|
||||
}
|
||||
|
||||
@TECHREPORT{techreport-full,
|
||||
author = "Tom T{\'{e}}rrific",
|
||||
title = "An {$O(n \log n / \! \log\log n)$} Sorting Algorithm",
|
||||
institution = "Fanstord University",
|
||||
type = "Wishful Research Result",
|
||||
number = "7",
|
||||
address = "Computer Science Department, Fanstord, California",
|
||||
month = oct,
|
||||
year = 1988,
|
||||
note = "This is a full TECHREPORT entry",
|
||||
}
|
||||
|
||||
@UNPUBLISHED{unpublished-minimal,
|
||||
author = "Ulrich {\"{U}}nderwood and Ned {\~N}et and Paul {\={P}}ot",
|
||||
title = "Lower Bounds for Wishful Research Results",
|
||||
note = "Talk at Fanstord University (this is a minimal UNPUBLISHED entry)",
|
||||
}
|
||||
|
||||
@UNPUBLISHED{unpublished-full,
|
||||
author = "Ulrich {\"{U}}nderwood and Ned {\~N}et and Paul {\={P}}ot",
|
||||
title = "Lower Bounds for Wishful Research Results",
|
||||
month = nov # ", " # dec,
|
||||
year = 1988,
|
||||
note = "Talk at Fanstord University (this is a full UNPUBLISHED entry)",
|
||||
}
|
||||
|
||||
@MISC{random-note-crossref,
|
||||
key = {Volume-2},
|
||||
note = "Volume~2 is listed under Knuth \cite{book-full}"
|
||||
}
|
||||
@ -0,0 +1,855 @@
|
||||
@manual{oberdiek:accsupp,
|
||||
title={The accsupp package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2010-01-16},
|
||||
version={0.3},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/accsupp.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/accsupp.pdf},
|
||||
}
|
||||
@manual{oberdiek:aliascnt,
|
||||
title={The aliascnt package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2009-09-08},
|
||||
version={1.3},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/aliascnt.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/aliascnt.pdf},
|
||||
}
|
||||
@manual{oberdiek:alphalph,
|
||||
title={The alphalph package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-05-13},
|
||||
version={2.4},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/alphalph.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/alphalph.pdf},
|
||||
}
|
||||
@manual{oberdiek:askinclude,
|
||||
title={The askinclude package},
|
||||
author={Pablo A. Straub and Heiko Oberdiek},
|
||||
date={2011-12-02},
|
||||
version={2.2},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/askinclude.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/askinclude.pdf},
|
||||
}
|
||||
@manual{oberdiek:atbegshi,
|
||||
title={The atbegshi package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-10-05},
|
||||
version={1.16},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/atbegshi.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/atbegshi.pdf},
|
||||
}
|
||||
@manual{oberdiek:atenddvi,
|
||||
title={The atenddvi package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2007-04-17},
|
||||
version={1.1},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/atenddvi.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/atenddvi.pdf},
|
||||
}
|
||||
@manual{oberdiek:attachfile2,
|
||||
title={The attachfile2 package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2012-04-18},
|
||||
version={2.7},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/attachfile2.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/attachfile2.pdf},
|
||||
}
|
||||
@manual{oberdiek:atveryend,
|
||||
title={The atveryend package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-06-30},
|
||||
version={1.8},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/atveryend.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/atveryend.pdf},
|
||||
}
|
||||
@manual{oberdiek:auxhook,
|
||||
title={The auxhook package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-03-04},
|
||||
version={1.3},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/auxhook.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/auxhook.pdf},
|
||||
}
|
||||
@manual{oberdiek:bigintcalc,
|
||||
title={The bigintcalc package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2012-04-08},
|
||||
version={1.3},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/bigintcalc.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/bigintcalc.pdf},
|
||||
}
|
||||
@manual{oberdiek:bitset,
|
||||
title={The bitset package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-01-30},
|
||||
version={1.1},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/bitset.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/bitset.pdf},
|
||||
}
|
||||
@manual{oberdiek:bmpsize,
|
||||
title={The bmpsize package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2009-09-04},
|
||||
version={1.6},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/bmpsize.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/bmpsize.pdf},
|
||||
}
|
||||
@manual{oberdiek:bookmark,
|
||||
title={The bookmark package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-12-02},
|
||||
version={1.24},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/bookmark.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/bookmark.pdf},
|
||||
}
|
||||
@manual{oberdiek:catchfile,
|
||||
title={The catchfile package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-03-01},
|
||||
version={1.6},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/catchfile.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/catchfile.pdf},
|
||||
}
|
||||
@manual{oberdiek:centernot,
|
||||
title={The centernot package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-07-11},
|
||||
version={1.3},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/centernot.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/centernot.pdf},
|
||||
}
|
||||
@manual{oberdiek:chemarr,
|
||||
title={The chemarr package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2006-02-20},
|
||||
version={1.2},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/chemarr.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/chemarr.pdf},
|
||||
}
|
||||
@manual{oberdiek:classlist,
|
||||
title={The classlist package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-10-17},
|
||||
version={1.4},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/classlist.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/classlist.pdf},
|
||||
}
|
||||
@manual{oberdiek:colonequals,
|
||||
title={The colonequals package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2006-08-01},
|
||||
version={1.0},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/colonequals.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/colonequals.pdf},
|
||||
}
|
||||
@manual{oberdiek:dvipscol,
|
||||
title={The dvipscol package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2008-08-11},
|
||||
version={1.2},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/dvipscol.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/dvipscol.pdf},
|
||||
}
|
||||
@manual{oberdiek:embedfile,
|
||||
title={The embedfile package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-04-13},
|
||||
version={2.6},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/embedfile.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/embedfile.pdf},
|
||||
}
|
||||
@manual{oberdiek:engord,
|
||||
title={The engord package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2010-03-01},
|
||||
version={1.8},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/engord.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/engord.pdf},
|
||||
}
|
||||
@manual{oberdiek:enparen,
|
||||
title={The enparen package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2012-01-07},
|
||||
version={1.0},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/enparen.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/enparen.pdf},
|
||||
}
|
||||
@manual{oberdiek:eolgrab,
|
||||
title={The eolgrab package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-01-12},
|
||||
version={1.0},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/eolgrab.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/eolgrab.pdf},
|
||||
}
|
||||
@manual{oberdiek:epstopdf,
|
||||
title={The epstopdf package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2010-02-09},
|
||||
version={2.5},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/epstopdf.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/epstopdf.pdf},
|
||||
}
|
||||
@manual{oberdiek:etexcmds,
|
||||
title={The etexcmds package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-02-16},
|
||||
version={1.5},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/etexcmds.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/etexcmds.pdf},
|
||||
}
|
||||
@manual{oberdiek:fibnum,
|
||||
title={The fibnum package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2012-04-08},
|
||||
version={1.0},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/fibnum.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/fibnum.pdf},
|
||||
}
|
||||
@manual{oberdiek:flags,
|
||||
title={The flags package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2007-09-30},
|
||||
version={0.4},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/flags.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/flags.pdf},
|
||||
}
|
||||
@manual{oberdiek:gettitlestring,
|
||||
title={The gettitlestring package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2010-12-03},
|
||||
version={1.4},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/gettitlestring.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/gettitlestring.pdf},
|
||||
}
|
||||
@manual{oberdiek:grfext,
|
||||
title={The grfext package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2010-08-19},
|
||||
version={1.1},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/grfext.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/grfext.pdf},
|
||||
}
|
||||
@manual{oberdiek:grffile,
|
||||
title={The grffile package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2012-04-05},
|
||||
version={1.16},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/grffile.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/grffile.pdf},
|
||||
}
|
||||
@manual{oberdiek:hobsub,
|
||||
title={The hobsub package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2012-05-28},
|
||||
version={1.13},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/hobsub.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/hobsub.pdf},
|
||||
}
|
||||
@manual{oberdiek:hologo,
|
||||
title={The hologo package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2012-04-26},
|
||||
version={1.10},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/hologo.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/hologo.pdf},
|
||||
}
|
||||
@manual{oberdiek:holtxdoc,
|
||||
title={The holtxdoc package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2012-03-21},
|
||||
version={0.24},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/holtxdoc.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/holtxdoc.pdf},
|
||||
}
|
||||
@manual{oberdiek:hopatch,
|
||||
title={The hopatch package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2012-05-28},
|
||||
version={1.2},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/hopatch.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/hopatch.pdf},
|
||||
}
|
||||
@manual{oberdiek:hycolor,
|
||||
title={The hycolor package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-01-30},
|
||||
version={1.7},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/hycolor.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/hycolor.pdf},
|
||||
}
|
||||
@manual{oberdiek:hypbmsec,
|
||||
title={The hypbmsec package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2007-04-11},
|
||||
version={2.4},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/hypbmsec.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/hypbmsec.pdf},
|
||||
}
|
||||
@manual{oberdiek:hypcap,
|
||||
title={The hypcap package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-02-16},
|
||||
version={1.11},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/hypcap.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/hypcap.pdf},
|
||||
}
|
||||
@manual{oberdiek:hypdestopt,
|
||||
title={The hypdestopt package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-05-13},
|
||||
version={2.3},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/hypdestopt.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/hypdestopt.pdf},
|
||||
}
|
||||
@manual{oberdiek:hypdoc,
|
||||
title={The hypdoc package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-08-19},
|
||||
version={1.11},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/hypdoc.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/hypdoc.pdf},
|
||||
}
|
||||
@manual{oberdiek:hypgotoe,
|
||||
title={The hypgotoe package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2007-10-30},
|
||||
version={0.1},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/hypgotoe.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/hypgotoe.pdf},
|
||||
}
|
||||
@manual{oberdiek:hyphsubst,
|
||||
title={The hyphsubst package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2008-06-09},
|
||||
version={0.2},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/hyphsubst.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/hyphsubst.pdf},
|
||||
}
|
||||
@manual{oberdiek:ifdraft,
|
||||
title={The ifdraft package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2008-08-11},
|
||||
version={1.3},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/ifdraft.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/ifdraft.pdf},
|
||||
}
|
||||
@manual{oberdiek:iflang,
|
||||
title={The iflang package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2007-11-11},
|
||||
version={1.5},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/iflang.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/iflang.pdf},
|
||||
}
|
||||
@manual{oberdiek:ifluatex,
|
||||
title={The ifluatex package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2010-03-01},
|
||||
version={1.3},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/ifluatex.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/ifluatex.pdf},
|
||||
}
|
||||
@manual{oberdiek:ifpdf,
|
||||
title={The ifpdf package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-01-30},
|
||||
version={2.3},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/ifpdf.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/ifpdf.pdf},
|
||||
}
|
||||
@manual{oberdiek:ifvtex,
|
||||
title={The ifvtex package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2010-03-01},
|
||||
version={1.5},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/ifvtex.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/ifvtex.pdf},
|
||||
}
|
||||
@manual{oberdiek:infwarerr,
|
||||
title={The infwarerr package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2010-04-08},
|
||||
version={1.3},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/infwarerr.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/infwarerr.pdf},
|
||||
}
|
||||
@manual{oberdiek:inputenx,
|
||||
title={The inputenx package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-05-27},
|
||||
version={1.10},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/inputenx.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/inputenx.pdf},
|
||||
}
|
||||
@manual{oberdiek:intcalc,
|
||||
title={The intcalc package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2007-09-27},
|
||||
version={1.1},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/intcalc.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/intcalc.pdf},
|
||||
}
|
||||
@manual{oberdiek:kvdefinekeys,
|
||||
title={The kvdefinekeys package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-04-07},
|
||||
version={1.3},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/kvdefinekeys.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/kvdefinekeys.pdf},
|
||||
}
|
||||
@manual{oberdiek:kvoptions,
|
||||
title={The kvoptions package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-06-30},
|
||||
version={3.11},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/kvoptions.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/kvoptions.pdf},
|
||||
}
|
||||
@manual{oberdiek:kvsetkeys,
|
||||
title={The kvsetkeys package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2012-04-25},
|
||||
version={1.16},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/kvsetkeys.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/kvsetkeys.pdf},
|
||||
}
|
||||
@manual{oberdiek:letltxmacro,
|
||||
title={The letltxmacro package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2010-09-02},
|
||||
version={1.4},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/letltxmacro.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/letltxmacro.pdf},
|
||||
}
|
||||
@manual{oberdiek:listingsutf8,
|
||||
title={The listingsutf8 package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-11-10},
|
||||
version={1.2},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/listingsutf8.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/listingsutf8.pdf},
|
||||
}
|
||||
@manual{oberdiek:ltxcmds,
|
||||
title={The ltxcmds package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-11-09},
|
||||
version={1.22},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/ltxcmds.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/ltxcmds.pdf},
|
||||
}
|
||||
@manual{oberdiek:luacolor,
|
||||
title={The luacolor package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-11-01},
|
||||
version={1.8},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/luacolor.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/luacolor.pdf},
|
||||
}
|
||||
@manual{oberdiek:luatex,
|
||||
title={The luatex package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2010-03-09},
|
||||
version={0.4},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/luatex.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/luatex.pdf},
|
||||
}
|
||||
@manual{oberdiek:magicnum,
|
||||
title={The magicnum package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-04-10},
|
||||
version={1.4},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/magicnum.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/magicnum.pdf},
|
||||
}
|
||||
@manual{oberdiek:makerobust,
|
||||
title={The makerobust package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2006-03-18},
|
||||
version={1.0},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/makerobust.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/makerobust.pdf},
|
||||
}
|
||||
@manual{oberdiek:mleftright,
|
||||
title={The mleftright package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2010-09-25},
|
||||
version={1.0},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/mleftright.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/mleftright.pdf},
|
||||
}
|
||||
@manual{oberdiek:pagegrid,
|
||||
title={The pagegrid package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2009-12-04},
|
||||
version={1.4},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/pagegrid.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/pagegrid.pdf},
|
||||
}
|
||||
@manual{oberdiek:pagesel,
|
||||
title={The pagesel package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2008-08-11},
|
||||
version={1.8},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/pagesel.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/pagesel.pdf},
|
||||
}
|
||||
@manual{oberdiek:pdfcol,
|
||||
title={The pdfcol package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2007-12-12},
|
||||
version={1.2},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/pdfcol.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/pdfcol.pdf},
|
||||
}
|
||||
@manual{oberdiek:pdfcolfoot,
|
||||
title={The pdfcolfoot package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2012-01-02},
|
||||
version={1.2},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/pdfcolfoot.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/pdfcolfoot.pdf},
|
||||
}
|
||||
@manual{oberdiek:pdfcolmk,
|
||||
title={The pdfcolmk package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2008-08-11},
|
||||
version={1.2},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/pdfcolmk.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/pdfcolmk.pdf},
|
||||
}
|
||||
@manual{oberdiek:pdfcolparallel,
|
||||
title={The pdfcolparallel package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2010-01-11},
|
||||
version={1.3},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/pdfcolparallel.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/pdfcolparallel.pdf},
|
||||
}
|
||||
@manual{oberdiek:pdfcolparcolumns,
|
||||
title={The pdfcolparcolumns package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2010-01-11},
|
||||
version={1.3},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf},
|
||||
}
|
||||
@manual{oberdiek:pdfcrypt,
|
||||
title={The pdfcrypt package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2007-04-26},
|
||||
version={1.0},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/pdfcrypt.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/pdfcrypt.pdf},
|
||||
}
|
||||
@manual{oberdiek:pdfescape,
|
||||
title={The pdfescape package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-11-25},
|
||||
version={1.13},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/pdfescape.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/pdfescape.pdf},
|
||||
}
|
||||
@manual{oberdiek:pdflscape,
|
||||
title={The pdflscape package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2008-08-11},
|
||||
version={0.10},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/pdflscape.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/pdflscape.pdf},
|
||||
}
|
||||
@manual{oberdiek:pdfrender,
|
||||
title={The pdfrender package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2010-01-28},
|
||||
version={1.2},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/pdfrender.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/pdfrender.pdf},
|
||||
}
|
||||
@manual{oberdiek:pdftexcmds,
|
||||
title={The pdftexcmds package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-11-29},
|
||||
version={0.20},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/pdftexcmds.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/pdftexcmds.pdf},
|
||||
}
|
||||
@manual{oberdiek:picture,
|
||||
title={The picture package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2009-10-11},
|
||||
version={1.3},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/picture.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/picture.pdf},
|
||||
}
|
||||
@manual{oberdiek:pmboxdraw,
|
||||
title={The pmboxdraw package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-03-24},
|
||||
version={1.1},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/pmboxdraw.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/pmboxdraw.pdf},
|
||||
}
|
||||
@manual{oberdiek:protecteddef,
|
||||
title={The protecteddef package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-01-31},
|
||||
version={1.0},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/protecteddef.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/protecteddef.pdf},
|
||||
}
|
||||
@manual{oberdiek:refcount,
|
||||
title={The refcount package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-10-16},
|
||||
version={3.4},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/refcount.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/refcount.pdf},
|
||||
}
|
||||
@manual{oberdiek:rerunfilecheck,
|
||||
title={The rerunfilecheck package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-04-15},
|
||||
version={1.7},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/rerunfilecheck.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/rerunfilecheck.pdf},
|
||||
}
|
||||
@manual{oberdiek:resizegather,
|
||||
title={The resizegather package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2010-03-01},
|
||||
version={1.2},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/resizegather.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/resizegather.pdf},
|
||||
}
|
||||
@manual{oberdiek:rotchiffre,
|
||||
title={The rotchiffre package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2010-11-12},
|
||||
version={1.0},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/rotchiffre.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/rotchiffre.pdf},
|
||||
}
|
||||
@manual{oberdiek:scrindex,
|
||||
title={The scrindex package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2008-08-11},
|
||||
version={1.1},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/scrindex.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/scrindex.pdf},
|
||||
}
|
||||
@manual{oberdiek:selinput,
|
||||
title={The selinput package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2007-09-09},
|
||||
version={1.2},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/selinput.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/selinput.pdf},
|
||||
}
|
||||
@manual{oberdiek:setouterhbox,
|
||||
title={The setouterhbox package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2007-09-09},
|
||||
version={1.7},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/setouterhbox.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/setouterhbox.pdf},
|
||||
}
|
||||
@manual{oberdiek:settobox,
|
||||
title={The settobox package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2008-08-11},
|
||||
version={1.4},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/settobox.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/settobox.pdf},
|
||||
}
|
||||
@manual{oberdiek:soulutf8,
|
||||
title={The soulutf8 package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2007-09-09},
|
||||
version={1.0},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/soulutf8.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/soulutf8.pdf},
|
||||
}
|
||||
@manual{oberdiek:stackrel,
|
||||
title={The stackrel package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2007-11-11},
|
||||
version={1.2},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/stackrel.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/stackrel.pdf},
|
||||
}
|
||||
@manual{oberdiek:stampinclude,
|
||||
title={The stampinclude package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2008-07-14},
|
||||
version={1.0},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/stampinclude.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/stampinclude.pdf},
|
||||
}
|
||||
@manual{oberdiek:stringenc,
|
||||
title={The stringenc package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-12-02},
|
||||
version={1.10},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/stringenc.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/stringenc.pdf},
|
||||
}
|
||||
@manual{oberdiek:tabularht,
|
||||
title={The tabularht package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2007-04-11},
|
||||
version={2.5},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/tabularht.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/tabularht.pdf},
|
||||
}
|
||||
@manual{oberdiek:tabularkv,
|
||||
title={The tabularkv package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2006-02-20},
|
||||
version={1.1},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/tabularkv.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/tabularkv.pdf},
|
||||
}
|
||||
@manual{oberdiek:telprint,
|
||||
title={The telprint package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2008-08-11},
|
||||
version={1.10},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/telprint.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/telprint.pdf},
|
||||
}
|
||||
@manual{oberdiek:thepdfnumber,
|
||||
title={The thepdfnumber package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-11-24},
|
||||
version={1.0},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/thepdfnumber.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/thepdfnumber.pdf},
|
||||
}
|
||||
@manual{oberdiek:transparent,
|
||||
title={The transparent package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2007-01-08},
|
||||
version={1.0},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/transparent.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/transparent.pdf},
|
||||
}
|
||||
@manual{oberdiek:twoopt,
|
||||
title={The twoopt package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2008-08-11},
|
||||
version={1.5},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/twoopt.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/twoopt.pdf},
|
||||
}
|
||||
@manual{oberdiek:uniquecounter,
|
||||
title={The uniquecounter package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2011-01-30},
|
||||
version={1.2},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/uniquecounter.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/uniquecounter.pdf},
|
||||
}
|
||||
@manual{oberdiek:zref,
|
||||
title={The zref package},
|
||||
author={Heiko Oberdiek},
|
||||
date={2012-04-04},
|
||||
version={2.24},
|
||||
eprinttype={ctan},
|
||||
eprint={macros/latex/contrib/oberdiek/zref.pdf},
|
||||
url={http://mirror.ctan.org/macros/latex/contrib/oberdiek/zref.pdf},
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
@book{pdfspec-iso32000-1,
|
||||
author={{Adobe Systems Incorporated}},
|
||||
title={Document management -- Portable document format -- Part 1: PDF 1.7},
|
||||
date={2008-07-01},
|
||||
edition=1,
|
||||
url={http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/PDF32000_2008.pdf},
|
||||
urldate={2011-11-25},
|
||||
}
|
||||
@manual{pdftex-manual,
|
||||
sortname={Han, The Thanh},
|
||||
author={{\hologo{HanTheThanh}} and Rahtz, Sebastian and Henkel, Hartmut
|
||||
and Jackowski, Pawe{\l} and Schr{\"o}der, Martin},
|
||||
title={The {\hologo{pdfTeX}} user manual},
|
||||
version={655 (1.40.11)},
|
||||
date={2010-11-23},
|
||||
url={http://mirror.ctan.org/systems/pdftex/manual/pdftex-a.pdf},
|
||||
urldate={2011-11-29},
|
||||
}
|
||||
@manual{luatex-manual,
|
||||
sortname={LuaTeX, development team},
|
||||
author={{\hologo{LuaTeX}} development team},
|
||||
title={{\hologo{LuaTeX}} Reference},
|
||||
version={beta 0.71.0},
|
||||
date={2011-10-11},
|
||||
url={http://www.luatex.org/svn/trunk/manual/luatexref-t.pdf},
|
||||
urldate={2011-11-29},
|
||||
}
|
||||
1404
www/common/latex/texlive/texmf-dist/bibtex/bst/amscls/amsalpha.bst
Normal file
1404
www/common/latex/texlive/texmf-dist/bibtex/bst/amscls/amsalpha.bst
Normal file
File diff suppressed because it is too large
Load Diff
1255
www/common/latex/texlive/texmf-dist/bibtex/bst/amscls/amsplain.bst
Normal file
1255
www/common/latex/texlive/texmf-dist/bibtex/bst/amscls/amsplain.bst
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1395
www/common/latex/texlive/texmf-dist/bibtex/bst/babelbib/bababbr3.bst
Normal file
1395
www/common/latex/texlive/texmf-dist/bibtex/bst/babelbib/bababbr3.bst
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1389
www/common/latex/texlive/texmf-dist/bibtex/bst/babelbib/bababbrv.bst
Normal file
1389
www/common/latex/texlive/texmf-dist/bibtex/bst/babelbib/bababbrv.bst
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1545
www/common/latex/texlive/texmf-dist/bibtex/bst/babelbib/babalpha.bst
Normal file
1545
www/common/latex/texlive/texmf-dist/bibtex/bst/babelbib/babalpha.bst
Normal file
File diff suppressed because it is too large
Load Diff
1265
www/common/latex/texlive/texmf-dist/bibtex/bst/babelbib/babamspl.bst
Normal file
1265
www/common/latex/texlive/texmf-dist/bibtex/bst/babelbib/babamspl.bst
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1394
www/common/latex/texlive/texmf-dist/bibtex/bst/babelbib/babplai3.bst
Normal file
1394
www/common/latex/texlive/texmf-dist/bibtex/bst/babelbib/babplai3.bst
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1388
www/common/latex/texlive/texmf-dist/bibtex/bst/babelbib/babplain.bst
Normal file
1388
www/common/latex/texlive/texmf-dist/bibtex/bst/babelbib/babplain.bst
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1242
www/common/latex/texlive/texmf-dist/bibtex/bst/babelbib/babunsrt.bst
Normal file
1242
www/common/latex/texlive/texmf-dist/bibtex/bst/babelbib/babunsrt.bst
Normal file
File diff suppressed because it is too large
Load Diff
1097
www/common/latex/texlive/texmf-dist/bibtex/bst/base/abbrv.bst
Normal file
1097
www/common/latex/texlive/texmf-dist/bibtex/bst/base/abbrv.bst
Normal file
File diff suppressed because it is too large
Load Diff
1140
www/common/latex/texlive/texmf-dist/bibtex/bst/base/acm.bst
Normal file
1140
www/common/latex/texlive/texmf-dist/bibtex/bst/base/acm.bst
Normal file
File diff suppressed because it is too large
Load Diff
1257
www/common/latex/texlive/texmf-dist/bibtex/bst/base/alpha.bst
Normal file
1257
www/common/latex/texlive/texmf-dist/bibtex/bst/base/alpha.bst
Normal file
File diff suppressed because it is too large
Load Diff
1105
www/common/latex/texlive/texmf-dist/bibtex/bst/base/apalike.bst
Normal file
1105
www/common/latex/texlive/texmf-dist/bibtex/bst/base/apalike.bst
Normal file
File diff suppressed because it is too large
Load Diff
976
www/common/latex/texlive/texmf-dist/bibtex/bst/base/ieeetr.bst
Normal file
976
www/common/latex/texlive/texmf-dist/bibtex/bst/base/ieeetr.bst
Normal file
@ -0,0 +1,976 @@
|
||||
% Copyright (C) 1985, 1988, 2010 Howard Trickey and Oren Patashnik.
|
||||
% Unlimited copying and redistribution of this file are permitted as long as
|
||||
% it is unmodified. Modifications (and redistribution of modified versions)
|
||||
% are also permitted, but only if the resulting file is renamed.
|
||||
%
|
||||
% IEEE Transactions bibliography style (8-Dec-10 version)
|
||||
% numeric labels, order-of-reference, IEEE abbreviations,
|
||||
% quotes around article titles, commas separate all fields
|
||||
% except after book titles and before "notes". Otherwise,
|
||||
% much like the "plain" family, from which this is adapted.
|
||||
%
|
||||
% History
|
||||
% 9/30/85 (HWT) Original version, by Howard Trickey.
|
||||
% 1/29/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik;
|
||||
% THIS `ieeetr' VERSION DOES NOT WORK WITH BIBTEX 0.98i.
|
||||
% 12/ 8/10 (OP&HWT) Clarify license.
|
||||
|
||||
ENTRY
|
||||
{ address
|
||||
author
|
||||
booktitle
|
||||
chapter
|
||||
edition
|
||||
editor
|
||||
howpublished
|
||||
institution
|
||||
journal
|
||||
key
|
||||
month
|
||||
note
|
||||
number
|
||||
organization
|
||||
pages
|
||||
publisher
|
||||
school
|
||||
series
|
||||
title
|
||||
type
|
||||
volume
|
||||
year
|
||||
}
|
||||
{}
|
||||
{ label }
|
||||
|
||||
INTEGERS { output.state before.all mid.sentence after.quote after.sentence
|
||||
after.quoted.block after.block }
|
||||
|
||||
FUNCTION {init.state.consts}
|
||||
{ #0 'before.all :=
|
||||
#1 'mid.sentence :=
|
||||
#2 'after.quote :=
|
||||
#3 'after.sentence :=
|
||||
#4 'after.quoted.block :=
|
||||
#5 'after.block :=
|
||||
}
|
||||
|
||||
STRINGS { s t }
|
||||
|
||||
FUNCTION {output.nonnull}
|
||||
{ 's :=
|
||||
output.state mid.sentence =
|
||||
{ ", " * write$ }
|
||||
{ output.state after.quote =
|
||||
{ " " * write$ }
|
||||
{ output.state after.block =
|
||||
{ add.period$ write$
|
||||
newline$
|
||||
"\newblock " write$
|
||||
}
|
||||
{ output.state before.all =
|
||||
'write$
|
||||
{ output.state after.quoted.block =
|
||||
{ write$
|
||||
newline$
|
||||
"\newblock " write$
|
||||
}
|
||||
{ add.period$ " " * write$ }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
if$
|
||||
mid.sentence 'output.state :=
|
||||
}
|
||||
if$
|
||||
s
|
||||
}
|
||||
|
||||
FUNCTION {output}
|
||||
{ duplicate$ empty$
|
||||
'pop$
|
||||
'output.nonnull
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {output.check}
|
||||
{ 't :=
|
||||
duplicate$ empty$
|
||||
{ pop$ "empty " t * " in " * cite$ * warning$ }
|
||||
'output.nonnull
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {output.bibitem}
|
||||
{ newline$
|
||||
"\bibitem{" write$
|
||||
cite$ write$
|
||||
"}" write$
|
||||
newline$
|
||||
""
|
||||
before.all 'output.state :=
|
||||
}
|
||||
|
||||
FUNCTION {blank.sep}
|
||||
{ after.quote 'output.state :=
|
||||
}
|
||||
|
||||
FUNCTION {fin.entry}
|
||||
{ output.state after.quoted.block =
|
||||
'skip$
|
||||
'add.period$
|
||||
if$
|
||||
write$
|
||||
newline$
|
||||
}
|
||||
|
||||
FUNCTION {new.block}
|
||||
{ output.state before.all =
|
||||
'skip$
|
||||
{ output.state after.quote =
|
||||
{ after.quoted.block 'output.state := }
|
||||
{ after.block 'output.state := }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {new.sentence}
|
||||
{ output.state after.block =
|
||||
'skip$
|
||||
{ output.state before.all =
|
||||
'skip$
|
||||
{ after.sentence 'output.state := }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {not}
|
||||
{ { #0 }
|
||||
{ #1 }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {and}
|
||||
{ 'skip$
|
||||
{ pop$ #0 }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {or}
|
||||
{ { pop$ #1 }
|
||||
'skip$
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {new.block.checka}
|
||||
{ empty$
|
||||
'skip$
|
||||
'new.block
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {new.block.checkb}
|
||||
{ empty$
|
||||
swap$ empty$
|
||||
and
|
||||
'skip$
|
||||
'new.block
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {new.sentence.checka}
|
||||
{ empty$
|
||||
'skip$
|
||||
'new.sentence
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {field.or.null}
|
||||
{ duplicate$ empty$
|
||||
{ pop$ "" }
|
||||
'skip$
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {emphasize}
|
||||
{ duplicate$ empty$
|
||||
{ pop$ "" }
|
||||
{ "{\em " swap$ * "}" * }
|
||||
if$
|
||||
}
|
||||
|
||||
INTEGERS { nameptr namesleft numnames }
|
||||
|
||||
FUNCTION {format.names}
|
||||
{ 's :=
|
||||
#1 'nameptr :=
|
||||
s num.names$ 'numnames :=
|
||||
numnames 'namesleft :=
|
||||
{ namesleft #0 > }
|
||||
{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
|
||||
nameptr #1 >
|
||||
{ namesleft #1 >
|
||||
{ ", " * t * }
|
||||
{ numnames #2 >
|
||||
{ "," * }
|
||||
'skip$
|
||||
if$
|
||||
t "others" =
|
||||
{ " {\em et~al.}" * }
|
||||
{ " and " * t * }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
't
|
||||
if$
|
||||
nameptr #1 + 'nameptr :=
|
||||
namesleft #1 - 'namesleft :=
|
||||
}
|
||||
while$
|
||||
}
|
||||
|
||||
FUNCTION {format.authors}
|
||||
{ author empty$
|
||||
{ "" }
|
||||
{ author format.names }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.editors}
|
||||
{ editor empty$
|
||||
{ "" }
|
||||
{ editor format.names
|
||||
editor num.names$ #1 >
|
||||
{ ", eds." * }
|
||||
{ ", ed." * }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.title}
|
||||
{ title empty$
|
||||
{ "" }
|
||||
{ "``" title "t" change.case$ * ",''" * }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.title.p}
|
||||
{ title empty$
|
||||
{ "" }
|
||||
{ "``" title "t" change.case$ * ".''" * }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {n.dashify}
|
||||
{ 't :=
|
||||
""
|
||||
{ t empty$ not }
|
||||
{ t #1 #1 substring$ "-" =
|
||||
{ t #1 #2 substring$ "--" = not
|
||||
{ "--" *
|
||||
t #2 global.max$ substring$ 't :=
|
||||
}
|
||||
{ { t #1 #1 substring$ "-" = }
|
||||
{ "-" *
|
||||
t #2 global.max$ substring$ 't :=
|
||||
}
|
||||
while$
|
||||
}
|
||||
if$
|
||||
}
|
||||
{ t #1 #1 substring$ *
|
||||
t #2 global.max$ substring$ 't :=
|
||||
}
|
||||
if$
|
||||
}
|
||||
while$
|
||||
}
|
||||
|
||||
FUNCTION {format.date}
|
||||
{ year empty$
|
||||
{ month empty$
|
||||
{ "" }
|
||||
{ "there's a month but no year in " cite$ * warning$
|
||||
month
|
||||
}
|
||||
if$
|
||||
}
|
||||
{ month empty$
|
||||
'year
|
||||
{ month " " * year * }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.btitle}
|
||||
{ title emphasize
|
||||
}
|
||||
|
||||
FUNCTION {tie.or.space.connect}
|
||||
{ duplicate$ text.length$ #3 <
|
||||
{ "~" }
|
||||
{ " " }
|
||||
if$
|
||||
swap$ * *
|
||||
}
|
||||
|
||||
FUNCTION {either.or.check}
|
||||
{ empty$
|
||||
'pop$
|
||||
{ "can't use both " swap$ * " fields in " * cite$ * warning$ }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.bvolume}
|
||||
{ volume empty$
|
||||
{ "" }
|
||||
{ "vol.~" volume *
|
||||
series empty$
|
||||
'skip$
|
||||
{ " of " * series emphasize * }
|
||||
if$
|
||||
"volume and number" number either.or.check
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.number.series}
|
||||
{ volume empty$
|
||||
{ number empty$
|
||||
{ series field.or.null }
|
||||
{ output.state mid.sentence =
|
||||
{ "no.~" }
|
||||
{ "No.~" }
|
||||
if$
|
||||
number *
|
||||
series empty$
|
||||
{ "there's a number but no series in " cite$ * warning$ }
|
||||
{ " in " * series * }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
{ "" }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.edition}
|
||||
{ edition empty$
|
||||
{ "" }
|
||||
{ edition "l" change.case$ "~ed." * }
|
||||
if$
|
||||
}
|
||||
|
||||
INTEGERS { multiresult }
|
||||
|
||||
FUNCTION {multi.page.check}
|
||||
{ 't :=
|
||||
#0 'multiresult :=
|
||||
{ multiresult not
|
||||
t empty$ not
|
||||
and
|
||||
}
|
||||
{ t #1 #1 substring$
|
||||
duplicate$ "-" =
|
||||
swap$ duplicate$ "," =
|
||||
swap$ "+" =
|
||||
or or
|
||||
{ #1 'multiresult := }
|
||||
{ t #2 global.max$ substring$ 't := }
|
||||
if$
|
||||
}
|
||||
while$
|
||||
multiresult
|
||||
}
|
||||
|
||||
FUNCTION {format.pages}
|
||||
{ pages empty$
|
||||
{ "" }
|
||||
{ pages multi.page.check
|
||||
{ "pp.~" pages n.dashify * }
|
||||
{ "p.~" pages * }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.volume}
|
||||
{ volume empty$
|
||||
{ "" }
|
||||
{ "vol.~" volume * }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.number}
|
||||
{ number empty$
|
||||
{ "" }
|
||||
{ "no.~" number * }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.chapter.pages}
|
||||
{ chapter empty$
|
||||
'format.pages
|
||||
{ type empty$
|
||||
{ "ch.~" chapter * }
|
||||
{ type "l" change.case$ chapter tie.or.space.connect }
|
||||
if$
|
||||
pages empty$
|
||||
'skip$
|
||||
{ ", " * format.pages * }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.in.ed.booktitle}
|
||||
{ booktitle empty$
|
||||
{ "" }
|
||||
{ "in " booktitle emphasize *
|
||||
editor empty$
|
||||
'skip$
|
||||
{ " (" * format.editors * ")" * }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.thesis.type}
|
||||
{ type empty$
|
||||
'skip$
|
||||
{ pop$
|
||||
output.state after.block =
|
||||
{ type "t" change.case$ }
|
||||
{ type "l" change.case$ }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {empty.misc.check}
|
||||
{ author empty$ title empty$ howpublished empty$
|
||||
month empty$ year empty$ note empty$
|
||||
and and and and and
|
||||
{ "all relevant fields are empty in " cite$ * warning$ }
|
||||
'skip$
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.tr.number}
|
||||
{ type empty$
|
||||
{ "Tech. Rep." }
|
||||
'type
|
||||
if$
|
||||
number empty$
|
||||
{ "l" change.case$ }
|
||||
{ number tie.or.space.connect }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.addr.pub}
|
||||
{ publisher empty$
|
||||
{ "" }
|
||||
{ address empty$
|
||||
{ "" }
|
||||
{ address ": " * }
|
||||
if$
|
||||
publisher *
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.paddress}
|
||||
{ address empty$
|
||||
{ "" }
|
||||
{ "(" address * ")" * }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.article.crossref}
|
||||
{ key empty$
|
||||
{ journal empty$
|
||||
{ "need key or journal for " cite$ * " to crossref " * crossref *
|
||||
warning$
|
||||
""
|
||||
}
|
||||
{ "in {\em " journal * "\/}" * }
|
||||
if$
|
||||
}
|
||||
{ "in " key * }
|
||||
if$
|
||||
" \cite{" * crossref * "}" *
|
||||
}
|
||||
|
||||
FUNCTION {format.crossref.editor}
|
||||
{ editor #1 "{vv~}{ll}" format.name$
|
||||
editor num.names$ duplicate$
|
||||
#2 >
|
||||
{ pop$ " {\em et~al.}" * }
|
||||
{ #2 <
|
||||
'skip$
|
||||
{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
|
||||
{ " {\em et~al.}" * }
|
||||
{ " and " * editor #2 "{vv~}{ll}" format.name$ * }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.book.crossref}
|
||||
{ volume empty$
|
||||
{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$
|
||||
"In "
|
||||
}
|
||||
{ "Vol.~" volume *
|
||||
" of " *
|
||||
}
|
||||
if$
|
||||
editor empty$
|
||||
editor field.or.null author field.or.null =
|
||||
or
|
||||
{ key empty$
|
||||
{ series empty$
|
||||
{ "need editor, key, or series for " cite$ * " to crossref " *
|
||||
crossref * warning$
|
||||
"" *
|
||||
}
|
||||
{ "{\em " * series * "\/}" * }
|
||||
if$
|
||||
}
|
||||
{ key * }
|
||||
if$
|
||||
}
|
||||
{ format.crossref.editor * }
|
||||
if$
|
||||
" \cite{" * crossref * "}" *
|
||||
}
|
||||
|
||||
FUNCTION {format.incoll.inproc.crossref}
|
||||
{ editor empty$
|
||||
editor field.or.null author field.or.null =
|
||||
or
|
||||
{ key empty$
|
||||
{ booktitle empty$
|
||||
{ "need editor, key, or booktitle for " cite$ * " to crossref " *
|
||||
crossref * warning$
|
||||
""
|
||||
}
|
||||
{ "in {\em " booktitle * "\/}" * }
|
||||
if$
|
||||
}
|
||||
{ "in " key * }
|
||||
if$
|
||||
}
|
||||
{ "in " format.crossref.editor * }
|
||||
if$
|
||||
" \cite{" * crossref * "}" *
|
||||
}
|
||||
|
||||
FUNCTION {article}
|
||||
{ output.bibitem
|
||||
format.authors "author" output.check
|
||||
format.title "title" output.check
|
||||
blank.sep
|
||||
crossref missing$
|
||||
{ journal emphasize "journal" output.check
|
||||
format.volume output
|
||||
month empty$
|
||||
{ format.number output }
|
||||
'skip$
|
||||
if$
|
||||
format.pages output
|
||||
format.date "year" output.check
|
||||
}
|
||||
{ format.article.crossref output.nonnull
|
||||
format.pages output
|
||||
}
|
||||
if$
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {book}
|
||||
{ output.bibitem
|
||||
author empty$
|
||||
{ format.editors "author and editor" output.check }
|
||||
{ format.authors output.nonnull
|
||||
crossref missing$
|
||||
{ "author and editor" editor either.or.check }
|
||||
'skip$
|
||||
if$
|
||||
}
|
||||
if$
|
||||
format.btitle "title" output.check
|
||||
crossref missing$
|
||||
{ format.bvolume output
|
||||
new.block
|
||||
format.number.series output
|
||||
format.addr.pub "publisher" output.check
|
||||
}
|
||||
{ new.block
|
||||
format.book.crossref output.nonnull
|
||||
}
|
||||
if$
|
||||
format.edition output
|
||||
format.date "year" output.check
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {booklet}
|
||||
{ output.bibitem
|
||||
format.authors output
|
||||
title empty$
|
||||
{ "empty title in " cite$ * warning$
|
||||
howpublished new.sentence.checka
|
||||
}
|
||||
{ howpublished empty$ not
|
||||
address empty$ month empty$ year empty$ and and
|
||||
or
|
||||
{ format.title.p output.nonnull }
|
||||
{ format.title output.nonnull }
|
||||
if$
|
||||
blank.sep
|
||||
}
|
||||
if$
|
||||
howpublished output
|
||||
address output
|
||||
format.date output
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {inbook}
|
||||
{ output.bibitem
|
||||
author empty$
|
||||
{ format.editors "author and editor" output.check }
|
||||
{ format.authors output.nonnull
|
||||
crossref missing$
|
||||
{ "author and editor" editor either.or.check }
|
||||
'skip$
|
||||
if$
|
||||
}
|
||||
if$
|
||||
format.btitle "title" output.check
|
||||
crossref missing$
|
||||
{ format.bvolume output
|
||||
format.chapter.pages "chapter and pages" output.check
|
||||
new.block
|
||||
format.number.series output
|
||||
format.addr.pub "publisher" output.check
|
||||
}
|
||||
{ format.chapter.pages "chapter and pages" output.check
|
||||
new.block
|
||||
format.book.crossref output.nonnull
|
||||
}
|
||||
if$
|
||||
format.edition output
|
||||
format.date "year" output.check
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {incollection}
|
||||
{ output.bibitem
|
||||
format.authors "author" output.check
|
||||
format.title "title" output.check
|
||||
blank.sep
|
||||
crossref missing$
|
||||
{ format.in.ed.booktitle "booktitle" output.check
|
||||
format.bvolume output
|
||||
format.number.series output
|
||||
format.chapter.pages output
|
||||
format.addr.pub "publisher" output.check
|
||||
format.edition output
|
||||
format.date "year" output.check
|
||||
}
|
||||
{ format.incoll.inproc.crossref output.nonnull
|
||||
format.chapter.pages output
|
||||
}
|
||||
if$
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {inproceedings}
|
||||
{ output.bibitem
|
||||
format.authors "author" output.check
|
||||
format.title "title" output.check
|
||||
blank.sep
|
||||
crossref missing$
|
||||
{ format.in.ed.booktitle "booktitle" output.check
|
||||
format.bvolume output
|
||||
format.number.series output
|
||||
format.paddress output
|
||||
format.pages output
|
||||
organization output
|
||||
publisher output
|
||||
format.date "year" output.check
|
||||
}
|
||||
{ format.incoll.inproc.crossref output.nonnull
|
||||
format.pages output
|
||||
}
|
||||
if$
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {conference} { inproceedings }
|
||||
|
||||
FUNCTION {manual}
|
||||
{ output.bibitem
|
||||
author empty$
|
||||
{ organization empty$
|
||||
'skip$
|
||||
{ organization output.nonnull
|
||||
address output
|
||||
}
|
||||
if$
|
||||
}
|
||||
{ format.authors output.nonnull }
|
||||
if$
|
||||
format.btitle "title" output.check
|
||||
author empty$
|
||||
{ organization empty$
|
||||
{ address new.block.checka
|
||||
address output
|
||||
}
|
||||
'skip$
|
||||
if$
|
||||
}
|
||||
{ organization address new.block.checkb
|
||||
organization output
|
||||
address output
|
||||
}
|
||||
if$
|
||||
format.edition output
|
||||
format.date output
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {mastersthesis}
|
||||
{ output.bibitem
|
||||
format.authors "author" output.check
|
||||
format.title "title" output.check
|
||||
blank.sep
|
||||
"Master's thesis" format.thesis.type output.nonnull
|
||||
school "school" output.check
|
||||
address output
|
||||
format.date "year" output.check
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {misc}
|
||||
{ output.bibitem
|
||||
format.authors output
|
||||
title empty$
|
||||
{ howpublished new.sentence.checka }
|
||||
{ howpublished empty$ not
|
||||
month empty$ year empty$ and
|
||||
or
|
||||
{ format.title.p output.nonnull }
|
||||
{ format.title output.nonnull }
|
||||
if$
|
||||
blank.sep
|
||||
}
|
||||
if$
|
||||
howpublished output
|
||||
format.date output
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
empty.misc.check
|
||||
}
|
||||
|
||||
FUNCTION {phdthesis}
|
||||
{ output.bibitem
|
||||
format.authors "author" output.check
|
||||
format.btitle "title" output.check
|
||||
new.block
|
||||
"PhD thesis" format.thesis.type output.nonnull
|
||||
school "school" output.check
|
||||
address output
|
||||
format.date "year" output.check
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {proceedings}
|
||||
{ output.bibitem
|
||||
editor empty$
|
||||
{ organization output }
|
||||
{ format.editors output.nonnull }
|
||||
if$
|
||||
format.btitle "title" output.check
|
||||
format.bvolume output
|
||||
format.number.series output
|
||||
format.paddress output
|
||||
editor empty$
|
||||
'skip$
|
||||
{ organization output }
|
||||
if$
|
||||
publisher output
|
||||
format.date "year" output.check
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {techreport}
|
||||
{ output.bibitem
|
||||
format.authors "author" output.check
|
||||
format.title "title" output.check
|
||||
blank.sep
|
||||
format.tr.number output.nonnull
|
||||
institution "institution" output.check
|
||||
address output
|
||||
format.date "year" output.check
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {unpublished}
|
||||
{ output.bibitem
|
||||
format.authors "author" output.check
|
||||
format.title.p "title" output.check
|
||||
blank.sep
|
||||
note "note" output.check
|
||||
format.date output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {default.type} { misc }
|
||||
|
||||
MACRO {jan} {"Jan."}
|
||||
|
||||
MACRO {feb} {"Feb."}
|
||||
|
||||
MACRO {mar} {"Mar."}
|
||||
|
||||
MACRO {apr} {"Apr."}
|
||||
|
||||
MACRO {may} {"May"}
|
||||
|
||||
MACRO {jun} {"June"}
|
||||
|
||||
MACRO {jul} {"July"}
|
||||
|
||||
MACRO {aug} {"Aug."}
|
||||
|
||||
MACRO {sep} {"Sept."}
|
||||
|
||||
MACRO {oct} {"Oct."}
|
||||
|
||||
MACRO {nov} {"Nov."}
|
||||
|
||||
MACRO {dec} {"Dec."}
|
||||
|
||||
MACRO {acmcs} {"ACM Computing Surveys"}
|
||||
|
||||
MACRO {acta} {"Acta Informatica"}
|
||||
|
||||
MACRO {cacm} {"Communications ACM"}
|
||||
|
||||
MACRO {ibmjrd} {"IBM J. Research and Development"}
|
||||
|
||||
MACRO {ibmsj} {"IBM Systems~J."}
|
||||
|
||||
MACRO {ieeese} {"IEEE Trans. Software Engineering"}
|
||||
|
||||
MACRO {ieeetc} {"IEEE Trans. Computers"}
|
||||
|
||||
MACRO {ieeetcad}
|
||||
{"IEEE Trans. Computer-Aided Design"}
|
||||
|
||||
MACRO {ipl} {"Information Processing Letters"}
|
||||
|
||||
MACRO {jacm} {"J.~ACM"}
|
||||
|
||||
MACRO {jcss} {"J.~Computer and System Sciences"}
|
||||
|
||||
MACRO {scp} {"Science of Computer Programming"}
|
||||
|
||||
MACRO {sicomp} {"SIAM J. Computing"}
|
||||
|
||||
MACRO {tocs} {"ACM Trans. Computer Systems"}
|
||||
|
||||
MACRO {tods} {"ACM Trans. Database Systems"}
|
||||
|
||||
MACRO {tog} {"ACM Trans. Graphics"}
|
||||
|
||||
MACRO {toms} {"ACM Trans. Mathematical Software"}
|
||||
|
||||
MACRO {toois} {"ACM Trans. Office Information Systems"}
|
||||
|
||||
MACRO {toplas} {"ACM Trans. Programming Languages and Systems"}
|
||||
|
||||
MACRO {tcs} {"Theoretical Computer Science"}
|
||||
|
||||
READ
|
||||
|
||||
STRINGS { longest.label }
|
||||
|
||||
INTEGERS { number.label longest.label.width }
|
||||
|
||||
FUNCTION {initialize.longest.label}
|
||||
{ "" 'longest.label :=
|
||||
#1 'number.label :=
|
||||
#0 'longest.label.width :=
|
||||
}
|
||||
|
||||
FUNCTION {longest.label.pass}
|
||||
{ number.label int.to.str$ 'label :=
|
||||
number.label #1 + 'number.label :=
|
||||
label width$ longest.label.width >
|
||||
{ label 'longest.label :=
|
||||
label width$ 'longest.label.width :=
|
||||
}
|
||||
'skip$
|
||||
if$
|
||||
}
|
||||
|
||||
EXECUTE {initialize.longest.label}
|
||||
|
||||
ITERATE {longest.label.pass}
|
||||
|
||||
FUNCTION {begin.bib}
|
||||
{ preamble$ empty$
|
||||
'skip$
|
||||
{ preamble$ write$ newline$ }
|
||||
if$
|
||||
"\begin{thebibliography}{" longest.label * "}" * write$ newline$
|
||||
}
|
||||
|
||||
EXECUTE {begin.bib}
|
||||
|
||||
EXECUTE {init.state.consts}
|
||||
|
||||
ITERATE {call.type$}
|
||||
|
||||
FUNCTION {end.bib}
|
||||
{ newline$
|
||||
"\end{thebibliography}" write$ newline$
|
||||
}
|
||||
|
||||
EXECUTE {end.bib}
|
||||
1097
www/common/latex/texlive/texmf-dist/bibtex/bst/base/plain.bst
Normal file
1097
www/common/latex/texlive/texmf-dist/bibtex/bst/base/plain.bst
Normal file
File diff suppressed because it is too large
Load Diff
1041
www/common/latex/texlive/texmf-dist/bibtex/bst/base/siam.bst
Normal file
1041
www/common/latex/texlive/texmf-dist/bibtex/bst/base/siam.bst
Normal file
File diff suppressed because it is too large
Load Diff
951
www/common/latex/texlive/texmf-dist/bibtex/bst/base/unsrt.bst
Normal file
951
www/common/latex/texlive/texmf-dist/bibtex/bst/base/unsrt.bst
Normal file
@ -0,0 +1,951 @@
|
||||
% BibTeX standard bibliography style `unsrt'
|
||||
% Version 0.99b (8-Dec-10 release) for BibTeX versions 0.99a or later.
|
||||
% Copyright (C) 1984, 1985, 1988, 2010 Howard Trickey and Oren Patashnik.
|
||||
% Unlimited copying and redistribution of this file are permitted as long as
|
||||
% it is unmodified. Modifications (and redistribution of modified versions)
|
||||
% are also permitted, but only if the resulting file is renamed to something
|
||||
% besides btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
|
||||
% This restriction helps ensure that all standard styles are identical.
|
||||
% The file btxbst.doc has the documentation for this style.
|
||||
|
||||
ENTRY
|
||||
{ address
|
||||
author
|
||||
booktitle
|
||||
chapter
|
||||
edition
|
||||
editor
|
||||
howpublished
|
||||
institution
|
||||
journal
|
||||
key
|
||||
month
|
||||
note
|
||||
number
|
||||
organization
|
||||
pages
|
||||
publisher
|
||||
school
|
||||
series
|
||||
title
|
||||
type
|
||||
volume
|
||||
year
|
||||
}
|
||||
{}
|
||||
{ label }
|
||||
|
||||
INTEGERS { output.state before.all mid.sentence after.sentence after.block }
|
||||
|
||||
FUNCTION {init.state.consts}
|
||||
{ #0 'before.all :=
|
||||
#1 'mid.sentence :=
|
||||
#2 'after.sentence :=
|
||||
#3 'after.block :=
|
||||
}
|
||||
|
||||
STRINGS { s t }
|
||||
|
||||
FUNCTION {output.nonnull}
|
||||
{ 's :=
|
||||
output.state mid.sentence =
|
||||
{ ", " * write$ }
|
||||
{ output.state after.block =
|
||||
{ add.period$ write$
|
||||
newline$
|
||||
"\newblock " write$
|
||||
}
|
||||
{ output.state before.all =
|
||||
'write$
|
||||
{ add.period$ " " * write$ }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
mid.sentence 'output.state :=
|
||||
}
|
||||
if$
|
||||
s
|
||||
}
|
||||
|
||||
FUNCTION {output}
|
||||
{ duplicate$ empty$
|
||||
'pop$
|
||||
'output.nonnull
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {output.check}
|
||||
{ 't :=
|
||||
duplicate$ empty$
|
||||
{ pop$ "empty " t * " in " * cite$ * warning$ }
|
||||
'output.nonnull
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {output.bibitem}
|
||||
{ newline$
|
||||
"\bibitem{" write$
|
||||
cite$ write$
|
||||
"}" write$
|
||||
newline$
|
||||
""
|
||||
before.all 'output.state :=
|
||||
}
|
||||
|
||||
FUNCTION {fin.entry}
|
||||
{ add.period$
|
||||
write$
|
||||
newline$
|
||||
}
|
||||
|
||||
FUNCTION {new.block}
|
||||
{ output.state before.all =
|
||||
'skip$
|
||||
{ after.block 'output.state := }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {new.sentence}
|
||||
{ output.state after.block =
|
||||
'skip$
|
||||
{ output.state before.all =
|
||||
'skip$
|
||||
{ after.sentence 'output.state := }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {not}
|
||||
{ { #0 }
|
||||
{ #1 }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {and}
|
||||
{ 'skip$
|
||||
{ pop$ #0 }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {or}
|
||||
{ { pop$ #1 }
|
||||
'skip$
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {new.block.checka}
|
||||
{ empty$
|
||||
'skip$
|
||||
'new.block
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {new.block.checkb}
|
||||
{ empty$
|
||||
swap$ empty$
|
||||
and
|
||||
'skip$
|
||||
'new.block
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {new.sentence.checka}
|
||||
{ empty$
|
||||
'skip$
|
||||
'new.sentence
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {new.sentence.checkb}
|
||||
{ empty$
|
||||
swap$ empty$
|
||||
and
|
||||
'skip$
|
||||
'new.sentence
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {field.or.null}
|
||||
{ duplicate$ empty$
|
||||
{ pop$ "" }
|
||||
'skip$
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {emphasize}
|
||||
{ duplicate$ empty$
|
||||
{ pop$ "" }
|
||||
{ "{\em " swap$ * "}" * }
|
||||
if$
|
||||
}
|
||||
|
||||
INTEGERS { nameptr namesleft numnames }
|
||||
|
||||
FUNCTION {format.names}
|
||||
{ 's :=
|
||||
#1 'nameptr :=
|
||||
s num.names$ 'numnames :=
|
||||
numnames 'namesleft :=
|
||||
{ namesleft #0 > }
|
||||
{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
|
||||
nameptr #1 >
|
||||
{ namesleft #1 >
|
||||
{ ", " * t * }
|
||||
{ numnames #2 >
|
||||
{ "," * }
|
||||
'skip$
|
||||
if$
|
||||
t "others" =
|
||||
{ " et~al." * }
|
||||
{ " and " * t * }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
't
|
||||
if$
|
||||
nameptr #1 + 'nameptr :=
|
||||
namesleft #1 - 'namesleft :=
|
||||
}
|
||||
while$
|
||||
}
|
||||
|
||||
FUNCTION {format.authors}
|
||||
{ author empty$
|
||||
{ "" }
|
||||
{ author format.names }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.editors}
|
||||
{ editor empty$
|
||||
{ "" }
|
||||
{ editor format.names
|
||||
editor num.names$ #1 >
|
||||
{ ", editors" * }
|
||||
{ ", editor" * }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.title}
|
||||
{ title empty$
|
||||
{ "" }
|
||||
{ title "t" change.case$ }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {n.dashify}
|
||||
{ 't :=
|
||||
""
|
||||
{ t empty$ not }
|
||||
{ t #1 #1 substring$ "-" =
|
||||
{ t #1 #2 substring$ "--" = not
|
||||
{ "--" *
|
||||
t #2 global.max$ substring$ 't :=
|
||||
}
|
||||
{ { t #1 #1 substring$ "-" = }
|
||||
{ "-" *
|
||||
t #2 global.max$ substring$ 't :=
|
||||
}
|
||||
while$
|
||||
}
|
||||
if$
|
||||
}
|
||||
{ t #1 #1 substring$ *
|
||||
t #2 global.max$ substring$ 't :=
|
||||
}
|
||||
if$
|
||||
}
|
||||
while$
|
||||
}
|
||||
|
||||
FUNCTION {format.date}
|
||||
{ year empty$
|
||||
{ month empty$
|
||||
{ "" }
|
||||
{ "there's a month but no year in " cite$ * warning$
|
||||
month
|
||||
}
|
||||
if$
|
||||
}
|
||||
{ month empty$
|
||||
'year
|
||||
{ month " " * year * }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.btitle}
|
||||
{ title emphasize
|
||||
}
|
||||
|
||||
FUNCTION {tie.or.space.connect}
|
||||
{ duplicate$ text.length$ #3 <
|
||||
{ "~" }
|
||||
{ " " }
|
||||
if$
|
||||
swap$ * *
|
||||
}
|
||||
|
||||
FUNCTION {either.or.check}
|
||||
{ empty$
|
||||
'pop$
|
||||
{ "can't use both " swap$ * " fields in " * cite$ * warning$ }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.bvolume}
|
||||
{ volume empty$
|
||||
{ "" }
|
||||
{ "volume" volume tie.or.space.connect
|
||||
series empty$
|
||||
'skip$
|
||||
{ " of " * series emphasize * }
|
||||
if$
|
||||
"volume and number" number either.or.check
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.number.series}
|
||||
{ volume empty$
|
||||
{ number empty$
|
||||
{ series field.or.null }
|
||||
{ output.state mid.sentence =
|
||||
{ "number" }
|
||||
{ "Number" }
|
||||
if$
|
||||
number tie.or.space.connect
|
||||
series empty$
|
||||
{ "there's a number but no series in " cite$ * warning$ }
|
||||
{ " in " * series * }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
{ "" }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.edition}
|
||||
{ edition empty$
|
||||
{ "" }
|
||||
{ output.state mid.sentence =
|
||||
{ edition "l" change.case$ " edition" * }
|
||||
{ edition "t" change.case$ " edition" * }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
INTEGERS { multiresult }
|
||||
|
||||
FUNCTION {multi.page.check}
|
||||
{ 't :=
|
||||
#0 'multiresult :=
|
||||
{ multiresult not
|
||||
t empty$ not
|
||||
and
|
||||
}
|
||||
{ t #1 #1 substring$
|
||||
duplicate$ "-" =
|
||||
swap$ duplicate$ "," =
|
||||
swap$ "+" =
|
||||
or or
|
||||
{ #1 'multiresult := }
|
||||
{ t #2 global.max$ substring$ 't := }
|
||||
if$
|
||||
}
|
||||
while$
|
||||
multiresult
|
||||
}
|
||||
|
||||
FUNCTION {format.pages}
|
||||
{ pages empty$
|
||||
{ "" }
|
||||
{ pages multi.page.check
|
||||
{ "pages" pages n.dashify tie.or.space.connect }
|
||||
{ "page" pages tie.or.space.connect }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.vol.num.pages}
|
||||
{ volume field.or.null
|
||||
number empty$
|
||||
'skip$
|
||||
{ "(" number * ")" * *
|
||||
volume empty$
|
||||
{ "there's a number but no volume in " cite$ * warning$ }
|
||||
'skip$
|
||||
if$
|
||||
}
|
||||
if$
|
||||
pages empty$
|
||||
'skip$
|
||||
{ duplicate$ empty$
|
||||
{ pop$ format.pages }
|
||||
{ ":" * pages n.dashify * }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.chapter.pages}
|
||||
{ chapter empty$
|
||||
'format.pages
|
||||
{ type empty$
|
||||
{ "chapter" }
|
||||
{ type "l" change.case$ }
|
||||
if$
|
||||
chapter tie.or.space.connect
|
||||
pages empty$
|
||||
'skip$
|
||||
{ ", " * format.pages * }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.in.ed.booktitle}
|
||||
{ booktitle empty$
|
||||
{ "" }
|
||||
{ editor empty$
|
||||
{ "In " booktitle emphasize * }
|
||||
{ "In " format.editors * ", " * booktitle emphasize * }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {empty.misc.check}
|
||||
{ author empty$ title empty$ howpublished empty$
|
||||
month empty$ year empty$ note empty$
|
||||
and and and and and
|
||||
{ "all relevant fields are empty in " cite$ * warning$ }
|
||||
'skip$
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.thesis.type}
|
||||
{ type empty$
|
||||
'skip$
|
||||
{ pop$
|
||||
type "t" change.case$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.tr.number}
|
||||
{ type empty$
|
||||
{ "Technical Report" }
|
||||
'type
|
||||
if$
|
||||
number empty$
|
||||
{ "t" change.case$ }
|
||||
{ number tie.or.space.connect }
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.article.crossref}
|
||||
{ key empty$
|
||||
{ journal empty$
|
||||
{ "need key or journal for " cite$ * " to crossref " * crossref *
|
||||
warning$
|
||||
""
|
||||
}
|
||||
{ "In {\em " journal * "\/}" * }
|
||||
if$
|
||||
}
|
||||
{ "In " key * }
|
||||
if$
|
||||
" \cite{" * crossref * "}" *
|
||||
}
|
||||
|
||||
FUNCTION {format.crossref.editor}
|
||||
{ editor #1 "{vv~}{ll}" format.name$
|
||||
editor num.names$ duplicate$
|
||||
#2 >
|
||||
{ pop$ " et~al." * }
|
||||
{ #2 <
|
||||
'skip$
|
||||
{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
|
||||
{ " et~al." * }
|
||||
{ " and " * editor #2 "{vv~}{ll}" format.name$ * }
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
if$
|
||||
}
|
||||
|
||||
FUNCTION {format.book.crossref}
|
||||
{ volume empty$
|
||||
{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$
|
||||
"In "
|
||||
}
|
||||
{ "Volume" volume tie.or.space.connect
|
||||
" of " *
|
||||
}
|
||||
if$
|
||||
editor empty$
|
||||
editor field.or.null author field.or.null =
|
||||
or
|
||||
{ key empty$
|
||||
{ series empty$
|
||||
{ "need editor, key, or series for " cite$ * " to crossref " *
|
||||
crossref * warning$
|
||||
"" *
|
||||
}
|
||||
{ "{\em " * series * "\/}" * }
|
||||
if$
|
||||
}
|
||||
{ key * }
|
||||
if$
|
||||
}
|
||||
{ format.crossref.editor * }
|
||||
if$
|
||||
" \cite{" * crossref * "}" *
|
||||
}
|
||||
|
||||
FUNCTION {format.incoll.inproc.crossref}
|
||||
{ editor empty$
|
||||
editor field.or.null author field.or.null =
|
||||
or
|
||||
{ key empty$
|
||||
{ booktitle empty$
|
||||
{ "need editor, key, or booktitle for " cite$ * " to crossref " *
|
||||
crossref * warning$
|
||||
""
|
||||
}
|
||||
{ "In {\em " booktitle * "\/}" * }
|
||||
if$
|
||||
}
|
||||
{ "In " key * }
|
||||
if$
|
||||
}
|
||||
{ "In " format.crossref.editor * }
|
||||
if$
|
||||
" \cite{" * crossref * "}" *
|
||||
}
|
||||
|
||||
FUNCTION {article}
|
||||
{ output.bibitem
|
||||
format.authors "author" output.check
|
||||
new.block
|
||||
format.title "title" output.check
|
||||
new.block
|
||||
crossref missing$
|
||||
{ journal emphasize "journal" output.check
|
||||
format.vol.num.pages output
|
||||
format.date "year" output.check
|
||||
}
|
||||
{ format.article.crossref output.nonnull
|
||||
format.pages output
|
||||
}
|
||||
if$
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {book}
|
||||
{ output.bibitem
|
||||
author empty$
|
||||
{ format.editors "author and editor" output.check }
|
||||
{ format.authors output.nonnull
|
||||
crossref missing$
|
||||
{ "author and editor" editor either.or.check }
|
||||
'skip$
|
||||
if$
|
||||
}
|
||||
if$
|
||||
new.block
|
||||
format.btitle "title" output.check
|
||||
crossref missing$
|
||||
{ format.bvolume output
|
||||
new.block
|
||||
format.number.series output
|
||||
new.sentence
|
||||
publisher "publisher" output.check
|
||||
address output
|
||||
}
|
||||
{ new.block
|
||||
format.book.crossref output.nonnull
|
||||
}
|
||||
if$
|
||||
format.edition output
|
||||
format.date "year" output.check
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {booklet}
|
||||
{ output.bibitem
|
||||
format.authors output
|
||||
new.block
|
||||
format.title "title" output.check
|
||||
howpublished address new.block.checkb
|
||||
howpublished output
|
||||
address output
|
||||
format.date output
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {inbook}
|
||||
{ output.bibitem
|
||||
author empty$
|
||||
{ format.editors "author and editor" output.check }
|
||||
{ format.authors output.nonnull
|
||||
crossref missing$
|
||||
{ "author and editor" editor either.or.check }
|
||||
'skip$
|
||||
if$
|
||||
}
|
||||
if$
|
||||
new.block
|
||||
format.btitle "title" output.check
|
||||
crossref missing$
|
||||
{ format.bvolume output
|
||||
format.chapter.pages "chapter and pages" output.check
|
||||
new.block
|
||||
format.number.series output
|
||||
new.sentence
|
||||
publisher "publisher" output.check
|
||||
address output
|
||||
}
|
||||
{ format.chapter.pages "chapter and pages" output.check
|
||||
new.block
|
||||
format.book.crossref output.nonnull
|
||||
}
|
||||
if$
|
||||
format.edition output
|
||||
format.date "year" output.check
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {incollection}
|
||||
{ output.bibitem
|
||||
format.authors "author" output.check
|
||||
new.block
|
||||
format.title "title" output.check
|
||||
new.block
|
||||
crossref missing$
|
||||
{ format.in.ed.booktitle "booktitle" output.check
|
||||
format.bvolume output
|
||||
format.number.series output
|
||||
format.chapter.pages output
|
||||
new.sentence
|
||||
publisher "publisher" output.check
|
||||
address output
|
||||
format.edition output
|
||||
format.date "year" output.check
|
||||
}
|
||||
{ format.incoll.inproc.crossref output.nonnull
|
||||
format.chapter.pages output
|
||||
}
|
||||
if$
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {inproceedings}
|
||||
{ output.bibitem
|
||||
format.authors "author" output.check
|
||||
new.block
|
||||
format.title "title" output.check
|
||||
new.block
|
||||
crossref missing$
|
||||
{ format.in.ed.booktitle "booktitle" output.check
|
||||
format.bvolume output
|
||||
format.number.series output
|
||||
format.pages output
|
||||
address empty$
|
||||
{ organization publisher new.sentence.checkb
|
||||
organization output
|
||||
publisher output
|
||||
format.date "year" output.check
|
||||
}
|
||||
{ address output.nonnull
|
||||
format.date "year" output.check
|
||||
new.sentence
|
||||
organization output
|
||||
publisher output
|
||||
}
|
||||
if$
|
||||
}
|
||||
{ format.incoll.inproc.crossref output.nonnull
|
||||
format.pages output
|
||||
}
|
||||
if$
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {conference} { inproceedings }
|
||||
|
||||
FUNCTION {manual}
|
||||
{ output.bibitem
|
||||
author empty$
|
||||
{ organization empty$
|
||||
'skip$
|
||||
{ organization output.nonnull
|
||||
address output
|
||||
}
|
||||
if$
|
||||
}
|
||||
{ format.authors output.nonnull }
|
||||
if$
|
||||
new.block
|
||||
format.btitle "title" output.check
|
||||
author empty$
|
||||
{ organization empty$
|
||||
{ address new.block.checka
|
||||
address output
|
||||
}
|
||||
'skip$
|
||||
if$
|
||||
}
|
||||
{ organization address new.block.checkb
|
||||
organization output
|
||||
address output
|
||||
}
|
||||
if$
|
||||
format.edition output
|
||||
format.date output
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {mastersthesis}
|
||||
{ output.bibitem
|
||||
format.authors "author" output.check
|
||||
new.block
|
||||
format.title "title" output.check
|
||||
new.block
|
||||
"Master's thesis" format.thesis.type output.nonnull
|
||||
school "school" output.check
|
||||
address output
|
||||
format.date "year" output.check
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {misc}
|
||||
{ output.bibitem
|
||||
format.authors output
|
||||
title howpublished new.block.checkb
|
||||
format.title output
|
||||
howpublished new.block.checka
|
||||
howpublished output
|
||||
format.date output
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
empty.misc.check
|
||||
}
|
||||
|
||||
FUNCTION {phdthesis}
|
||||
{ output.bibitem
|
||||
format.authors "author" output.check
|
||||
new.block
|
||||
format.btitle "title" output.check
|
||||
new.block
|
||||
"PhD thesis" format.thesis.type output.nonnull
|
||||
school "school" output.check
|
||||
address output
|
||||
format.date "year" output.check
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {proceedings}
|
||||
{ output.bibitem
|
||||
editor empty$
|
||||
{ organization output }
|
||||
{ format.editors output.nonnull }
|
||||
if$
|
||||
new.block
|
||||
format.btitle "title" output.check
|
||||
format.bvolume output
|
||||
format.number.series output
|
||||
address empty$
|
||||
{ editor empty$
|
||||
{ publisher new.sentence.checka }
|
||||
{ organization publisher new.sentence.checkb
|
||||
organization output
|
||||
}
|
||||
if$
|
||||
publisher output
|
||||
format.date "year" output.check
|
||||
}
|
||||
{ address output.nonnull
|
||||
format.date "year" output.check
|
||||
new.sentence
|
||||
editor empty$
|
||||
'skip$
|
||||
{ organization output }
|
||||
if$
|
||||
publisher output
|
||||
}
|
||||
if$
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {techreport}
|
||||
{ output.bibitem
|
||||
format.authors "author" output.check
|
||||
new.block
|
||||
format.title "title" output.check
|
||||
new.block
|
||||
format.tr.number output.nonnull
|
||||
institution "institution" output.check
|
||||
address output
|
||||
format.date "year" output.check
|
||||
new.block
|
||||
note output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {unpublished}
|
||||
{ output.bibitem
|
||||
format.authors "author" output.check
|
||||
new.block
|
||||
format.title "title" output.check
|
||||
new.block
|
||||
note "note" output.check
|
||||
format.date output
|
||||
fin.entry
|
||||
}
|
||||
|
||||
FUNCTION {default.type} { misc }
|
||||
|
||||
MACRO {jan} {"January"}
|
||||
|
||||
MACRO {feb} {"February"}
|
||||
|
||||
MACRO {mar} {"March"}
|
||||
|
||||
MACRO {apr} {"April"}
|
||||
|
||||
MACRO {may} {"May"}
|
||||
|
||||
MACRO {jun} {"June"}
|
||||
|
||||
MACRO {jul} {"July"}
|
||||
|
||||
MACRO {aug} {"August"}
|
||||
|
||||
MACRO {sep} {"September"}
|
||||
|
||||
MACRO {oct} {"October"}
|
||||
|
||||
MACRO {nov} {"November"}
|
||||
|
||||
MACRO {dec} {"December"}
|
||||
|
||||
MACRO {acmcs} {"ACM Computing Surveys"}
|
||||
|
||||
MACRO {acta} {"Acta Informatica"}
|
||||
|
||||
MACRO {cacm} {"Communications of the ACM"}
|
||||
|
||||
MACRO {ibmjrd} {"IBM Journal of Research and Development"}
|
||||
|
||||
MACRO {ibmsj} {"IBM Systems Journal"}
|
||||
|
||||
MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
|
||||
|
||||
MACRO {ieeetc} {"IEEE Transactions on Computers"}
|
||||
|
||||
MACRO {ieeetcad}
|
||||
{"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
|
||||
|
||||
MACRO {ipl} {"Information Processing Letters"}
|
||||
|
||||
MACRO {jacm} {"Journal of the ACM"}
|
||||
|
||||
MACRO {jcss} {"Journal of Computer and System Sciences"}
|
||||
|
||||
MACRO {scp} {"Science of Computer Programming"}
|
||||
|
||||
MACRO {sicomp} {"SIAM Journal on Computing"}
|
||||
|
||||
MACRO {tocs} {"ACM Transactions on Computer Systems"}
|
||||
|
||||
MACRO {tods} {"ACM Transactions on Database Systems"}
|
||||
|
||||
MACRO {tog} {"ACM Transactions on Graphics"}
|
||||
|
||||
MACRO {toms} {"ACM Transactions on Mathematical Software"}
|
||||
|
||||
MACRO {toois} {"ACM Transactions on Office Information Systems"}
|
||||
|
||||
MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
|
||||
|
||||
MACRO {tcs} {"Theoretical Computer Science"}
|
||||
|
||||
READ
|
||||
|
||||
STRINGS { longest.label }
|
||||
|
||||
INTEGERS { number.label longest.label.width }
|
||||
|
||||
FUNCTION {initialize.longest.label}
|
||||
{ "" 'longest.label :=
|
||||
#1 'number.label :=
|
||||
#0 'longest.label.width :=
|
||||
}
|
||||
|
||||
FUNCTION {longest.label.pass}
|
||||
{ number.label int.to.str$ 'label :=
|
||||
number.label #1 + 'number.label :=
|
||||
label width$ longest.label.width >
|
||||
{ label 'longest.label :=
|
||||
label width$ 'longest.label.width :=
|
||||
}
|
||||
'skip$
|
||||
if$
|
||||
}
|
||||
|
||||
EXECUTE {initialize.longest.label}
|
||||
|
||||
ITERATE {longest.label.pass}
|
||||
|
||||
FUNCTION {begin.bib}
|
||||
{ preamble$ empty$
|
||||
'skip$
|
||||
{ preamble$ write$ newline$ }
|
||||
if$
|
||||
"\begin{thebibliography}{" longest.label * "}" * write$ newline$
|
||||
}
|
||||
|
||||
EXECUTE {begin.bib}
|
||||
|
||||
EXECUTE {init.state.consts}
|
||||
|
||||
ITERATE {call.type$}
|
||||
|
||||
FUNCTION {end.bib}
|
||||
{ newline$
|
||||
"\end{thebibliography}" write$ newline$
|
||||
}
|
||||
|
||||
EXECUTE {end.bib}
|
||||
1436
www/common/latex/texlive/texmf-dist/bibtex/bst/natbib/abbrvnat.bst
Normal file
1436
www/common/latex/texlive/texmf-dist/bibtex/bst/natbib/abbrvnat.bst
Normal file
File diff suppressed because it is too large
Load Diff
1436
www/common/latex/texlive/texmf-dist/bibtex/bst/natbib/plainnat.bst
Normal file
1436
www/common/latex/texlive/texmf-dist/bibtex/bst/natbib/plainnat.bst
Normal file
File diff suppressed because it is too large
Load Diff
1322
www/common/latex/texlive/texmf-dist/bibtex/bst/natbib/unsrtnat.bst
Normal file
1322
www/common/latex/texlive/texmf-dist/bibtex/bst/natbib/unsrtnat.bst
Normal file
File diff suppressed because it is too large
Load Diff
226
www/common/latex/texlive/texmf-dist/dvipdfmx/dvipdfmx.cfg
Normal file
226
www/common/latex/texlive/texmf-dist/dvipdfmx/dvipdfmx.cfg
Normal file
@ -0,0 +1,226 @@
|
||||
%% dvipdfmx.cfg for dvipdfmx and xdvipdfmx. (Public domain.)
|
||||
%%
|
||||
%% PDF Version Setting
|
||||
%%
|
||||
%% PDF (minor) version stamp to use in output file.
|
||||
%% This also implies maximal version of PDF file allowed to be included.
|
||||
%% Dvipdfmx does not support 1.0, 1.1, 1.2 since TrueType font embedded
|
||||
%% as CIDFontType2 requires at least version 1.3. Transparent imaging
|
||||
%% model requires version 1.4. So if you want soft-masking support for
|
||||
%% PNG image with alpha channels, you should set version to 4 or higher.
|
||||
%% PDF 1.5 enables object compression.
|
||||
|
||||
V 5
|
||||
|
||||
%% Dvipdfmx Compatibility Flags
|
||||
%%
|
||||
%% 0x0002 Use semi-transparent filling for tpic shading command,
|
||||
%% instead of opaque gray color. (requires PDF 1.4)
|
||||
%% 0x0004 Treat all CIDFont as fixed-pitch font.
|
||||
%% This is only for backward compatibility. Don't use that.
|
||||
%% 0x0008 Do not replace duplicate fontmap entries.
|
||||
%% Dvipdfm's (not 'x') behaviour.
|
||||
%% 0x0010 Do not optimize PDF destinations. Use this if you want to
|
||||
%% refer from other files to destinations in the current file.
|
||||
|
||||
%C 0x0000
|
||||
|
||||
%% PDF Document Settings
|
||||
%%
|
||||
%% Papersize Option:
|
||||
%%
|
||||
%% p papersize-spec
|
||||
%%
|
||||
%% papersize-spec is 'paper-format' or length-pair, e.g., 'a4', 'letter',
|
||||
%% '20cm,30cm'. Recognized unit is 'cm', 'mm', 'bp', 'pt', 'in'.
|
||||
|
||||
p a4
|
||||
|
||||
%% Annotation Box Margin:
|
||||
%%
|
||||
%% g length
|
||||
%%
|
||||
%% Add margin to annotation rectangle created via various \specials. Many
|
||||
%% TeX macro packages set the annotation bounding box equal to the TeX box
|
||||
%% that encloses the material. That's not always what you want.
|
||||
%% Annotations created by pdf:bannot/pdf:eannot is also affected.
|
||||
|
||||
%g 0
|
||||
|
||||
%% Bookmark Open Level:
|
||||
%%
|
||||
%% O integer
|
||||
%%
|
||||
%% Mark bookmark (outline) item as initial state 'open' if the depth
|
||||
%% of that item (from root node) is less than or equal to the integer
|
||||
%% specified with this option.
|
||||
|
||||
O 0
|
||||
|
||||
%% PDF Security (Encryption) Setting
|
||||
%%
|
||||
%% Those options won't take effects unless you use flag 'S'.
|
||||
%%
|
||||
%% Key bits for PDF encryption (40 - 128)
|
||||
|
||||
K 40
|
||||
|
||||
%% Permission flag for PDF encryption: Revision will be 3 if the key size
|
||||
%% is greater than 40 bits.
|
||||
%%
|
||||
%% 0x0004 (Revision 2) Print the document.
|
||||
%% (Revision 3) Print the document (possibly not at the highest quality
|
||||
%% level, depending on whether bit 12[0x0800] is also set).
|
||||
%% 0x0008 Modify the contents of the document by operations other than those
|
||||
%% controlled by bits 6[0x0020], 9[0x0100], and 11[0x0400].
|
||||
%% 0x0010 (Revision 2) Copy or otherwise extract text and graphics from the
|
||||
%% document, including extracting text and graphics (in support of
|
||||
%% accessibility to disabled users or for other purposes).
|
||||
%% (Revision 3) Copy or otherwise extract text and grphics from the
|
||||
%% document by operations other than that controlled by bit 10[0x0200].
|
||||
%% 0x0020 Add or modify text annotations, fill in interactive form fields,
|
||||
%% and, if bit 4[0x0008] is also set, create or modify interactive
|
||||
%% form fields (including signature fields).
|
||||
%%
|
||||
%% (Revision 3 only)
|
||||
%% 0x0100 Fill in existing interactive form fields (including signature
|
||||
%% fields), even if bit 6 is clear.
|
||||
%% 0x0200 Extract text and graphics (in support of accessibility to disabled
|
||||
%% users or for other purposes).
|
||||
%% 0x0400 Assemble the document (insert, rotate, or delete pages and create
|
||||
%% bookmarks or thumbnail images), even if bit 4 is clear.
|
||||
%% 0x0800 Print the document to a representation from which a faithful digital
|
||||
%% copy of the PDF content could be generated. When this bit is clear
|
||||
%% (and bit 3 is set), printing is limited to a low-level representation
|
||||
%% of the appearance, possibly of degraded quality.
|
||||
|
||||
P 0x003C
|
||||
|
||||
%% Image Handler
|
||||
%%
|
||||
%% With 'D' option dvipdfmx may invoke shell command via system()
|
||||
%% function call.
|
||||
%%
|
||||
%% Command-line template for a-to-b conversion:
|
||||
%%
|
||||
%% Supported target format ('b') is currently PDF.
|
||||
%% Percent sign '%' is special character:
|
||||
%%
|
||||
%% %i Input file name (FQPN). Name of file to be converted to PDF.
|
||||
%% %o Output file name (FQPN). Temporary file to store conversion
|
||||
%% result. Removed after inclusion is finished. (regardless of
|
||||
%% success or failure)
|
||||
%% %b The "base" name of the input file, e.g., "foo" instead of
|
||||
%% "foo.eps".
|
||||
%% %v The PDF version to be converted to, e.g. "1.4" for PDF 1.4.
|
||||
%% %% Replaced with single '%'.
|
||||
|
||||
%% Ghostscript (PS-to-PDF and PDF-to-PDF):
|
||||
%%
|
||||
%% ps2pdf is a front-end to gs. For a complete list of options, see
|
||||
%% http://ghostscript.com/doc/current/Ps2pdf.htm#Options
|
||||
%%
|
||||
%% In TeX Live, we use the rungs wrapper instead of ps2pdf, becuse we
|
||||
%% must omit the -dSAFER which ps2pdf specifies: in order for pstricks
|
||||
%% to work with xetex,
|
||||
%% /usr/local/texlive/*/texmf-dist/dvips/pstricks/pstricks.pro (for
|
||||
%% example) needs to be accessed. Also, it is better to use our
|
||||
%% supplied gs on Windows.
|
||||
%%
|
||||
%% Without the -dEPSCROP below, an eps file with negative llx/lly (as
|
||||
%% created by MetaPost, for example) fails. In 2013, changes were made
|
||||
%% to the drivers xetex.def, dvipdfmx.def, etc., to handle non-zero
|
||||
%% llx/lly so we could use it. The file epsf-dvipdfmx.tex is available
|
||||
%% from CTAN/TL/etc. to support plain's epsf.tex.
|
||||
%%
|
||||
%% In 2014, we discovered that -sPAPERSIZE=a0 was needed to support
|
||||
%% pstricks under xetex; otherwise, images were cropped (see thread at
|
||||
%% http://tug.org/pipermail/xetex/2014-November/025664.html).
|
||||
%% Happily, it seems that using both -dEPSCROP and -sPAPERSIZE=a0
|
||||
%% simultaneously works ok. So that's we do below.
|
||||
%%
|
||||
%% By default, gs encodes all images contained in a PS file using
|
||||
%% the lossy DCT (i.e., JPEG) filter. This often leads to inferior
|
||||
%% result (see the discussion at http://electron.mit.edu/~gsteele/pdf/).
|
||||
%% The "-dAutoFilterXXXImages" and "-dXXXImageFilter" options used
|
||||
%% below force all images to be encoded with the lossless Flate (zlib,
|
||||
%% same as PNG) filter. Note that if the PS file already contains DCT
|
||||
%% encoded images (which is possible in PS level 2), then these images
|
||||
%% will also be re-encoded using Flate. To turn the conversion off,
|
||||
%% simply remove the options mentioned above.
|
||||
%%
|
||||
%% Incidentally, especially in TL, more than one dvipdfmx.cfg may be
|
||||
%% extant. You can find the one that is active by running:
|
||||
%% kpsewhich -progname=dvipdfmx -format='other text files' dvipdfmx.cfg
|
||||
%% and control which one is found by setting DVIPDFMXINPUTS.
|
||||
%%
|
||||
D "rungs -q -dNOPAUSE -dBATCH -dEPSCrop -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=%v -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -sOutputFile='%o' '%i' -c quit"
|
||||
|
||||
% other random ps converters people have experimented with.
|
||||
%D "/usr/local/bin/ps2pdf -dEPSCrop '%i' '%o'"
|
||||
%D "/usr/texbin/epstopdf '%i' -o '%o'"
|
||||
%D "/usr/bin/pstopdf '%i' -o '%o'"
|
||||
%
|
||||
%% Frank Siegert's PStill:
|
||||
%D "/usr/local/bin/pstill -c -o '%o' '%i'"
|
||||
%
|
||||
%% Batik + Fop (SVG-to-PDF):
|
||||
%% If you want both PS and SVG, you need to write a script or program
|
||||
%% that selectively invokes converters.
|
||||
%D "java -classpath classpaths -jar /path/to/batik-rasterizer.jar -m application/pdf -d '%o' '%i'"
|
||||
%
|
||||
%% There are no way to directly know suggested size of (raster) images.
|
||||
%% You may want to use %b here, since you can try reading the ebb file
|
||||
%% to see what is natural (physical) size of images.
|
||||
%D "ras2pdf -r 300x300 -b '%b.bb' -o '%o' '%i'"
|
||||
%
|
||||
%% ImageMagick:
|
||||
%% Easiest way to support various file formats.
|
||||
%D "convert '%i' 'epdf:%o'"
|
||||
|
||||
%% Other Options
|
||||
%%
|
||||
%% DPI for PK font creation
|
||||
|
||||
%r 600
|
||||
|
||||
%% Set number of fractional digit kept for various numbers in PDF page
|
||||
%% content output. By setting this to 2 (default), dvipdfmx rounds
|
||||
%% real numbers at 2nd fractional (decimal) digit; e.g., "3.14159" is
|
||||
%% written as "3.14". Increasing this to more than 2 isn't meaningful
|
||||
%% for old Acrobat due to implementation limit of Acrobat.
|
||||
%% Length 0.01 in unscaled coordinate system amount to width of 1 pixel
|
||||
%% in 7200ppi display.
|
||||
|
||||
%d 5
|
||||
|
||||
%% Image cache life in hours
|
||||
%% 0 means erase all old images and leave new images
|
||||
%% -1 means erase all old images and also erase new images
|
||||
%% -2 means ignore image cache
|
||||
%I -2
|
||||
|
||||
%% Font Map Files
|
||||
%%
|
||||
%% teTeX 2.x and TeX Live using updmap (pdfTeX format)
|
||||
f pdftex.map
|
||||
|
||||
%% teTeX 2.x and TeX Live using updmap (DVIPDFM format)
|
||||
%f dvipdfm.map
|
||||
|
||||
%% teTeX 2.x and TeX Live using updmap (DVIPS format)
|
||||
%% MiKTeX 2.2 and 2.3
|
||||
%f psfonts.map
|
||||
|
||||
%% Put additional fontmap files here (usually for Type0 fonts)
|
||||
%f cid-x.map
|
||||
|
||||
% the following file is generated by updmap(-sys) from the
|
||||
% KanjiMap entries in the updmap.cfg file.
|
||||
f kanjix.map
|
||||
% minimal example for Chinese and Korean users
|
||||
% improvements please to tex-live@tug.org
|
||||
f ckx.map
|
||||
|
||||
%% Include other config files
|
||||
%i <filename>
|
||||
46
www/common/latex/texlive/texmf-dist/dvips/base/color.pro
Normal file
46
www/common/latex/texlive/texmf-dist/dvips/base/color.pro
Normal file
@ -0,0 +1,46 @@
|
||||
%!
|
||||
TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop
|
||||
setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll
|
||||
}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def
|
||||
/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{
|
||||
setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{
|
||||
/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch
|
||||
known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC
|
||||
/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC
|
||||
/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0
|
||||
setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0
|
||||
setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61
|
||||
0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC
|
||||
/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0
|
||||
setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87
|
||||
0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{
|
||||
0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{
|
||||
0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC
|
||||
/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0
|
||||
setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0
|
||||
setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90
|
||||
0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC
|
||||
/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0
|
||||
setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0
|
||||
0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{
|
||||
0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{
|
||||
0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC
|
||||
/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0
|
||||
setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC
|
||||
/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0
|
||||
0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1
|
||||
0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11
|
||||
0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0
|
||||
setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0
|
||||
0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC
|
||||
/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0
|
||||
setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0
|
||||
0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0
|
||||
1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC
|
||||
/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0
|
||||
setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{
|
||||
0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor}
|
||||
DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70
|
||||
setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0
|
||||
setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1
|
||||
setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end
|
||||
6
www/common/latex/texlive/texmf-dist/dvips/base/crop.pro
Normal file
6
www/common/latex/texlive/texmf-dist/dvips/base/crop.pro
Normal file
@ -0,0 +1,6 @@
|
||||
%!
|
||||
TeXDict begin/cX 18 def/CM{gsave TR 0 cX neg moveto 0 cX lineto stroke
|
||||
cX neg 0 moveto cX 0 lineto stroke grestore}def end/bop-hook{cX dup TR
|
||||
gsave .3 setlinewidth 0 0 CM vsize cX 2 mul sub dup hsize cX 2 mul sub
|
||||
dup isls{4 2 roll}if 0 CM exch CM 0 exch CM grestore 0 cX -2 mul TR isls
|
||||
{cX -2 mul 0 TR}if}def
|
||||
279
www/common/latex/texlive/texmf-dist/dvips/base/ehandler.ps
Normal file
279
www/common/latex/texlive/texmf-dist/dvips/base/ehandler.ps
Normal file
@ -0,0 +1,279 @@
|
||||
%!PS-Adobe-2.0
|
||||
% This is based on: ehandler.ps -- Downloaded Error Break-page handler
|
||||
% Copyright (C) 1984, 1985, 1986 Adobe Systems Incorporated.
|
||||
% All Rights Reserved.
|
||||
|
||||
% Modifications Copyright (C) 1990, 1991 Y&Y.
|
||||
% print names of dictionaries on dictionary stack
|
||||
% print first few lines of input stream after error
|
||||
% print top of execution stack
|
||||
% make visible offending commands that are control characters
|
||||
% print jobname if it exists
|
||||
% catch errors in error handler and print them
|
||||
% permit overloading (for debugging of error handler)
|
||||
% ignore timeout errors
|
||||
% control hardcopy versus softcopy output
|
||||
% avoid multiple pages with error message
|
||||
|
||||
% NOTE: For hardcopy paper/film output: set showflag true
|
||||
% NOTE: For screen/file output: set printflag true
|
||||
|
||||
0 % exitserver password
|
||||
/$brkpage where
|
||||
% {pop} if false % UNCOMMENT THIS LINE TO PERMIT OVERLOADING
|
||||
{ % ifelse
|
||||
pop pop
|
||||
(Error Handler in place - not loaded again\n)
|
||||
print flush stop
|
||||
}{ % else
|
||||
dup serverdict begin
|
||||
statusdict begin checkpassword { % ifelse
|
||||
(Error Handler downloaded.\n) print flush
|
||||
exitserver
|
||||
}{ % else
|
||||
pop
|
||||
(Bad Password on loading error handler!!!\n)
|
||||
print flush stop
|
||||
} ifelse
|
||||
} ifelse
|
||||
/$brkpage where {pop} { % to allow overloading
|
||||
/$brkpage 64 dict def
|
||||
} ifelse % to allow overloading
|
||||
$brkpage begin
|
||||
/showflag true def % set to true for hardcopy paper/film output
|
||||
/printflag false def % set to true for sending back to screen/file
|
||||
/prnt { % def
|
||||
dup type /stringtype ne {=string cvs} if
|
||||
dup length 1 eq { dup 0 get 32 lt { dup 0 get % new
|
||||
64 add exch pop (control-X) dup 8 4 -1 roll put} if} if % new
|
||||
dup length 6 mul
|
||||
/tx exch def /ty 10 def
|
||||
currentpoint /toy exch def /tox exch def
|
||||
1 setgray newpath
|
||||
tox toy 2 sub moveto
|
||||
0 ty rlineto tx 0 rlineto
|
||||
0 ty neg rlineto
|
||||
closepath showflag{fill}if
|
||||
tox toy moveto 0 setgray
|
||||
showflag{dup show}if printflag{print}{pop}ifelse
|
||||
} bind def
|
||||
/nl { % def
|
||||
currentpoint exch pop lmargin exch moveto
|
||||
0 -10 rmoveto
|
||||
printflag{(\n) print flush}if
|
||||
} def
|
||||
|
||||
/== {/cp 0 def typeprint nl} def
|
||||
/typeprint {
|
||||
dup type dup currentdict exch known {exec}{unknowntype}ifelse
|
||||
} readonly def
|
||||
/lmargin 72 def /rmargin 72 def
|
||||
/tprint { % def
|
||||
dup length cp add rmargin gt {nl /cp 0 def} if
|
||||
dup length cp add /cp exch def
|
||||
prnt
|
||||
} readonly def
|
||||
/cvsprint {=string cvs tprint ( ) tprint} readonly def
|
||||
/unknowntype { % def
|
||||
exch pop cvlit (??) tprint cvsprint
|
||||
} readonly def
|
||||
/integertype {cvsprint} readonly def
|
||||
/realtype {cvsprint} readonly def
|
||||
/booleantype {cvsprint} readonly def
|
||||
/operatortype {(//) tprint cvsprint} readonly def
|
||||
/marktype {pop (-mark- ) tprint} readonly def
|
||||
% /dicttype {pop (-dictionary- ) tprint} readonly def % do more:
|
||||
/dicttype {namedict cvsprint} readonly def
|
||||
/nulltype {pop (-null- ) tprint} readonly def
|
||||
/filetype {pop (-filestream- ) tprint} readonly def
|
||||
/savetype {pop (-savelevel- ) tprint} readonly def
|
||||
/fonttype {pop (-fontid- ) tprint} readonly def
|
||||
/nametype { % def
|
||||
dup xcheck not {(/) tprint} if cvsprint
|
||||
}readonly def
|
||||
/stringtype { % def
|
||||
dup rcheck { % ifelse
|
||||
(\() tprint tprint (\)) tprint
|
||||
}{ % else
|
||||
pop (-string- ) tprint
|
||||
} ifelse
|
||||
} readonly def
|
||||
/arraytype { % def
|
||||
dup rcheck { % ifelse
|
||||
dup xcheck { % ifelse
|
||||
({) tprint {typeprint} forall (}) tprint
|
||||
}{ % else
|
||||
([) tprint {typeprint} forall (]) tprint
|
||||
} ifelse
|
||||
}{ % else
|
||||
pop (-array- ) tprint
|
||||
} ifelse
|
||||
} readonly def
|
||||
/packedarraytype { % def
|
||||
dup rcheck { % ifelse
|
||||
dup xcheck { % ifelse
|
||||
({) tprint {typeprint} forall (}) tprint
|
||||
}{ % else
|
||||
([) tprint {typeprint} forall (]) tprint
|
||||
} ifelse
|
||||
}{ % else
|
||||
pop (-packedarray- ) tprint
|
||||
} ifelse
|
||||
} readonly def
|
||||
/courier /Courier findfont 10 scalefont def
|
||||
/OLDhandleerror where not { % to allow overloading
|
||||
/OLDhandleerror errordict /handleerror get def
|
||||
}{pop} ifelse % to allow overloading
|
||||
end % $brkpage
|
||||
|
||||
% read lines terminated by EITHER newline or return
|
||||
% (to deal with brain-damage of AppleTalk connection)
|
||||
|
||||
/readsafeline{ % def
|
||||
dup length exch 0
|
||||
{ % loop
|
||||
3 index read
|
||||
{ % ifelse
|
||||
dup 10 eq 1 index 13 eq or
|
||||
{ % ifelse
|
||||
pop
|
||||
0 exch getinterval exch pop exch pop
|
||||
true exit % normal exit
|
||||
}{ % ifelse
|
||||
3 index 2 index le
|
||||
{ % ifelse
|
||||
pop pop exch pop exch pop true
|
||||
stop % rangecheck long line
|
||||
}{ % ifelse
|
||||
3 copy put pop 1 add
|
||||
} ifelse
|
||||
} ifelse
|
||||
}{ % ifelse
|
||||
0 exch getinterval exch pop exch pop
|
||||
false exit % EOF exit
|
||||
} ifelse
|
||||
} loop
|
||||
} def
|
||||
|
||||
% Find name for dictionary in tree of dictionaries - ignore font dictionaries
|
||||
% Discard intermediate dictionary info - return first match
|
||||
|
||||
/lookfordict { % name and dict to search
|
||||
dup % save for self reference detection
|
||||
{ % forall
|
||||
dup type /dicttype eq
|
||||
{ % is a dictionary
|
||||
dup 3 index ne
|
||||
{ % not self reference
|
||||
1 index /unknowndict ne
|
||||
{ % not the place we saved
|
||||
dup unknowndict eq
|
||||
{ % found it
|
||||
pop 3 1 roll pop pop true exit % return name and true
|
||||
}{ % not the unknown dict
|
||||
dup rcheck
|
||||
{ % safe to read
|
||||
1 index /FontDirectory ne
|
||||
{ % not Font Directory
|
||||
lookfordict % recurse
|
||||
{ % found it
|
||||
3 1 roll pop pop true exit % return name and true
|
||||
}{
|
||||
0 0 % replace key and value
|
||||
} ifelse % lookfordict
|
||||
} if % FontDirectory
|
||||
} if % safe to read
|
||||
} ifelse % equals unknown
|
||||
} if % place we hid dict
|
||||
} if % self reference
|
||||
} if % is a dictionary
|
||||
pop pop % flush key and value
|
||||
} forall
|
||||
dup true ne {pop pop false} if % flush name and dictionary
|
||||
} readonly def
|
||||
|
||||
/namedict{ % get name for dictionary
|
||||
dup systemdict eq {/systemdict}
|
||||
{/unknowndict exch def % store unknown dictionary
|
||||
/systemdict dup load lookfordict not {/-no-name-} if} ifelse
|
||||
} readonly def
|
||||
|
||||
/handleerror { % put
|
||||
systemdict begin $error begin $brkpage begin
|
||||
newerror { % ifelse
|
||||
errorname /timeout ne {
|
||||
{
|
||||
/newerror false store
|
||||
vmstatus % pop pop
|
||||
3 -1 roll
|
||||
0 ne {grestoreall} if % free up some VM is possible
|
||||
initgraphics courier setfont
|
||||
lmargin 720 moveto
|
||||
exch sub 4096 lt {stop} if % nearly out of VM ?
|
||||
statusdict /jobname known { % if
|
||||
statusdict /jobname get dup type /stringtype eq {
|
||||
nl (JOBNAME: ) prnt
|
||||
prnt nl
|
||||
} {pop} ifelse
|
||||
} if
|
||||
nl (ERROR: ) prnt
|
||||
errorname prnt nl
|
||||
nl (OFFENDING COMMAND: ) prnt
|
||||
/command load prnt
|
||||
$error /ostack known { % if
|
||||
nl nl (OPERAND STACK:) prnt nl nl
|
||||
$error /ostack get aload length {==} repeat
|
||||
} if
|
||||
$error /estack known { % if
|
||||
nl nl (TOP OF EXECUTION STACK:) prnt nl nl
|
||||
$error /estack get aload length
|
||||
true exch
|
||||
{dup {1 index == 1 index type cvlit /filetype eq {not} if} if
|
||||
exch pop} repeat pop % avoid system stuff
|
||||
} if
|
||||
$error /dstack known { % if
|
||||
nl nl (DICTIONARY STACK:) prnt nl nl
|
||||
$error /dstack get aload length {namedict cvx ==} repeat
|
||||
} if
|
||||
systemdict /file known
|
||||
{ % if
|
||||
nl nl (FILE STREAM:) prnt nl nl
|
||||
true 7
|
||||
{ % repeat
|
||||
(%stdin) (r) file =string {readsafeline} stopped
|
||||
{
|
||||
pop (long line:\n) prnt =string prnt nl
|
||||
}{
|
||||
{
|
||||
prnt nl
|
||||
}{
|
||||
prnt nl (EOF) prnt nl nl pop false exit
|
||||
} ifelse
|
||||
} ifelse
|
||||
} repeat
|
||||
{3 {(.) prnt nl} repeat nl} if
|
||||
} if
|
||||
showflag{/#copies 1 def systemdict /showpage get exec}if
|
||||
/newerror true store
|
||||
/OLDhandleerror load end end end exec
|
||||
} stopped {
|
||||
nl nl (VMError (or error in error handler)) prnt nl
|
||||
nl (ERROR: ) prnt %
|
||||
errorname prnt nl %
|
||||
nl (OFFENDING COMMAND: ) prnt
|
||||
/command load prnt nl %
|
||||
showflag{/#copies 1 def systemdict /showpage get exec}if
|
||||
/newerror true store
|
||||
/OLDhandleerror load end end end exec
|
||||
} if %% get some output at least if handler dies
|
||||
} if % ignore timeout
|
||||
}{ % else already in error handler ...
|
||||
end end end
|
||||
%% systemdict /showpage get exec %% get some output if internal error ?
|
||||
} ifelse
|
||||
}
|
||||
dup 0 systemdict put % replace name by actual dict object
|
||||
dup 4 $brkpage put % replace name by dict object
|
||||
bind readonly
|
||||
|
||||
errordict 3 1 roll put % put proc in errordict as /handleerror
|
||||
@ -0,0 +1,4 @@
|
||||
%!
|
||||
/fstore{dup dict exch{dup 4 2 roll put}repeat def}bind def/fshow{gsave
|
||||
72 TeXDict/Resolution get div -72 TeXDict/VResolution get div scale 1
|
||||
DVImag div dup scale get cvx exec show grestore}bind def
|
||||
53
www/common/latex/texlive/texmf-dist/dvips/base/hps.pro
Normal file
53
www/common/latex/texlive/texmf-dist/dvips/base/hps.pro
Normal file
@ -0,0 +1,53 @@
|
||||
%!
|
||||
/HPSdict 20 dict dup begin/braindeaddistill 50 def/rfch{dup length 1 sub
|
||||
1 exch getinterval}bind def/splituri{dup(#)search{exch pop}{()exch}
|
||||
ifelse dup(file:)anchorsearch{pop exch pop 3 -1 roll pop false}{pop 3 -1
|
||||
roll exch pop true}ifelse}bind def/lookuptarget{exch rfch dup
|
||||
/TargetAnchors where{pop TargetAnchors dup 3 -1 roll known{exch get true
|
||||
}{pop(target unknown:)print == false}ifelse}{pop pop
|
||||
(target dictionary unknown\012)print false}ifelse}bind def/savecount 0
|
||||
def/stackstopped{count counttomark sub/savecount exch store stopped
|
||||
count savecount sub 1 sub dup 0 gt{{exch pop}repeat}{pop}ifelse}bind def
|
||||
/tempstring 128 string def/targetvalidate{1 index dup length 127 gt exch
|
||||
tempstring cvs dup(/)search{pop pop pop exch pop true exch}{pop}ifelse
|
||||
token{pop length 0 ne}{true}ifelse or not}bind def/targetdump-hook where
|
||||
{pop}{/targetdump-hook{dup mark exch gsave initmat setmatrix{{mark/Dest
|
||||
4 2 roll targetvalidate{aload pop exch pop/Page 3 1 roll/View exch[exch
|
||||
/FitH exch]/DEST pdfmark}{cleartomark}ifelse}forall}stackstopped pop
|
||||
grestore}bind def}ifelse/baseurl{mark exch 1 dict dup 3 -1 roll/Base
|
||||
exch put/URI exch/DOCVIEW{pdfmark}stackstopped pop}bind def
|
||||
/externalhack systemdict/PDF known def/oldstyle true def/initmat matrix
|
||||
currentmatrix def/actiondict 2 dict dup/Subtype/URI put def
|
||||
/weblinkhandler{dup 3 1 roll mark 4 1 roll/Title 4 1 roll splituri 3 -1
|
||||
roll dup length 0 gt{cvn/Dest exch 4 2 roll}{pop}ifelse{externalhack{
|
||||
/HTTPFile exch}{actiondict dup 3 -1 roll/URI exch put/Action exch}
|
||||
ifelse}{externalhack{/HTTPFile exch}{/File exch/Action/GoToR}ifelse}
|
||||
ifelse counttomark 2 sub -1 roll aload pop/Rect 4 1 roll/Border 3 1 roll
|
||||
/Color exch oldstyle{/LNK}{/Subtype/Link/ANN}ifelse gsave initmat
|
||||
setmatrix{pdfmark}stackstopped grestore}bind def/externalhandler where{
|
||||
pop}{/externalhandler{2 copy{weblinkhandler}exec{/externalhack
|
||||
externalhack not store 2 copy{weblinkhandler}exec{/externalhack
|
||||
externalhack not store/oldstyle false store 2 copy{weblinkhandler}exec{
|
||||
(WARNING: external refs disabled\012)print/externalhandler{pop pop}bind
|
||||
store externalhandler}{pop pop}ifelse}{pop pop/externalhack externalhack
|
||||
not store}ifelse}{pop pop/externalhandler{weblinkhandler pop}bind store}
|
||||
ifelse}bind def}ifelse/pdfmnew{dup type/stringtype eq{externalhandler}{
|
||||
exch dup rfch exch 3 -1 roll lookuptarget{mark 4 1 roll/Title 4 1 roll
|
||||
aload pop exch pop/Page 3 1 roll/View exch[exch/FitH exch]5 -1 roll
|
||||
aload pop/Rect 4 1 roll/Border 3 1 roll/Color exch/LNK gsave initmat
|
||||
setmatrix pdfmark grestore}{pop pop}ifelse}ifelse}bind def/pdfmold{dup
|
||||
type/stringtype eq{externalhandler}{exch dup rfch exch 3 -1 roll
|
||||
lookuptarget{mark 4 1 roll/Title 4 1 roll aload pop exch pop/Page 3 1
|
||||
roll/View exch[exch/FitH exch]5 -1 roll aload pop pop 0 3 getinterval
|
||||
/Rect 3 1 roll/Border exch/LNK gsave initmat setmatrix pdfmark grestore}
|
||||
{pop pop}ifelse}ifelse}bind def/pdfm where{pop}{/pdfm
|
||||
/currentdistillerparams where{pop currentdistillerparams dup
|
||||
/CoreDistVersion known{/CoreDistVersion get}{0}ifelse dup
|
||||
braindeaddistill le{(WARNING: switching to old pdfm because version =)
|
||||
print ==/pdfmold}{pop/pdfmnew}ifelse load}{/pdfmark where{pop{dup type
|
||||
/stringtype eq{externalhandler}{2 copy mark 3 1 roll{pdfmnew}
|
||||
stackstopped{2 copy mark 3 1 roll{pdfmold}stackstopped{
|
||||
(WARNING: pdfm disabled\012)print/pdfm{pop pop}store}{
|
||||
(WARNING: new pdfm failed, switching to old pdfm\012)print/pdfm/pdfmold
|
||||
load store}ifelse}{/pdfm/pdfmnew load store}ifelse pop pop}ifelse}}{{
|
||||
pop pop}}ifelse}ifelse bind def}ifelse end def
|
||||
@ -0,0 +1,19 @@
|
||||
% (This is the file {\tt resolution400.ps} supplied with NeWSprint.)
|
||||
% {\tt simpson@math.psu.edu} only got this work by downloading the code
|
||||
% via an extra header file, i.e., having this in the Dvips config file:
|
||||
%
|
||||
% M sparcptr
|
||||
% D 400
|
||||
% h resolution400.ps
|
||||
%
|
||||
/SetResolution {
|
||||
/setres where {
|
||||
/setres get exec
|
||||
}{
|
||||
pop
|
||||
} ifelse
|
||||
} def
|
||||
%%BeginFeature *SetResolution 400
|
||||
400 SetResolution
|
||||
%%EndFeature
|
||||
%%EndSetup
|
||||
46
www/common/latex/texlive/texmf-dist/dvips/base/special.pro
Normal file
46
www/common/latex/texlive/texmf-dist/dvips/base/special.pro
Normal file
@ -0,0 +1,46 @@
|
||||
%!
|
||||
TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
|
||||
/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
|
||||
/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
|
||||
/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
|
||||
/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
|
||||
X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
|
||||
/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
|
||||
/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
|
||||
{userdict/md get type/dicttype eq{userdict begin md length 10 add md
|
||||
maxlength ge{/md md dup length 20 add dict copy def}if end md begin
|
||||
/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
|
||||
atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
|
||||
itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
|
||||
transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
|
||||
curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
|
||||
pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
|
||||
if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
|
||||
-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
|
||||
get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
|
||||
yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
|
||||
neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
|
||||
noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
|
||||
90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
|
||||
neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
|
||||
1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
|
||||
2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
|
||||
-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
|
||||
TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
|
||||
Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
|
||||
}if 0 setgray}N/@beginspecial{SDict begin/SpecialSave save N gsave
|
||||
normalscale currentpoint TR @SpecialDefaults count/ocount X/dcount
|
||||
countdictstack N}N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto
|
||||
0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale
|
||||
ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}
|
||||
ifelse scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale
|
||||
llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly
|
||||
lineto urx ury lineto llx ury lineto closepath clip}if/showpage{}N
|
||||
/erasepage{}N/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{
|
||||
count ocount sub{pop}repeat countdictstack dcount sub{end}repeat
|
||||
grestore SpecialSave restore end}N/@defspecial{SDict begin}N
|
||||
/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX
|
||||
currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY
|
||||
moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X
|
||||
/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0
|
||||
1 startangle endangle arc savematrix setmatrix}N end
|
||||
45
www/common/latex/texlive/texmf-dist/dvips/base/tex.pro
Normal file
45
www/common/latex/texlive/texmf-dist/dvips/base/tex.pro
Normal file
@ -0,0 +1,45 @@
|
||||
%!
|
||||
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
|
||||
N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
|
||||
mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
|
||||
0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
|
||||
landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
|
||||
mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
|
||||
matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
|
||||
exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
|
||||
statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
|
||||
N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
|
||||
/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
|
||||
/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
|
||||
array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
|
||||
df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
|
||||
definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
|
||||
}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
|
||||
B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
|
||||
1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
|
||||
/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
|
||||
setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
|
||||
restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
|
||||
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
|
||||
}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
|
||||
bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
|
||||
mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
|
||||
SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
|
||||
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
|
||||
1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
|
||||
index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
|
||||
/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3
|
||||
def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
|
||||
rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0
|
||||
N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop
|
||||
false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A
|
||||
length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
|
||||
forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{
|
||||
BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat
|
||||
{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch
|
||||
round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0
|
||||
rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B
|
||||
/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}
|
||||
B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
|
||||
-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{
|
||||
0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
|
||||
57
www/common/latex/texlive/texmf-dist/dvips/base/texc.pro
Normal file
57
www/common/latex/texlive/texmf-dist/dvips/base/texc.pro
Normal file
@ -0,0 +1,57 @@
|
||||
%!
|
||||
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
|
||||
N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
|
||||
mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
|
||||
0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
|
||||
landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
|
||||
mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
|
||||
matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
|
||||
exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
|
||||
statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
|
||||
N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
|
||||
/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
|
||||
/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
|
||||
array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
|
||||
df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
|
||||
definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
|
||||
}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
|
||||
B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
|
||||
1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
|
||||
1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
|
||||
0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
|
||||
sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
|
||||
rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
|
||||
gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
|
||||
/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
|
||||
/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
|
||||
A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
|
||||
get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
|
||||
ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
|
||||
fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
|
||||
{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
|
||||
chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
|
||||
1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
|
||||
forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
|
||||
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
|
||||
}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
|
||||
bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
|
||||
mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
|
||||
SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
|
||||
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
|
||||
1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
|
||||
index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
|
||||
/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3
|
||||
def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
|
||||
rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0
|
||||
N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop
|
||||
false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A
|
||||
length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
|
||||
forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{
|
||||
BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat
|
||||
{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch
|
||||
round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0
|
||||
rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B
|
||||
/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}
|
||||
B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
|
||||
-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{
|
||||
0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
|
||||
14
www/common/latex/texlive/texmf-dist/dvips/base/texps.pro
Normal file
14
www/common/latex/texlive/texmf-dist/dvips/base/texps.pro
Normal file
@ -0,0 +1,14 @@
|
||||
%!
|
||||
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
|
||||
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
|
||||
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
|
||||
ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
|
||||
pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
|
||||
div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
|
||||
/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
|
||||
definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
|
||||
sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
|
||||
mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
|
||||
exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
|
||||
forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
|
||||
end
|
||||
@ -0,0 +1,17 @@
|
||||
%!
|
||||
% Patch by TVZ
|
||||
% Makes dvips files draw rules with stroke rather than fill.
|
||||
% Makes narrow rules more predictable at low resolutions
|
||||
% after distilling to PDF.
|
||||
% May have unknown consequences for very thick rules.
|
||||
% Tested only with dvips 5.85(k).
|
||||
TeXDict begin
|
||||
/QV {
|
||||
gsave newpath /ruleY X /ruleX X
|
||||
Rx Ry gt
|
||||
{ ruleX ruleY Ry 2 div sub moveto Rx 0 rlineto Ry }
|
||||
{ ruleX Rx 2 div add ruleY moveto 0 Ry neg rlineto Rx }
|
||||
ifelse
|
||||
setlinewidth 0 setlinecap stroke grestore
|
||||
} bind def
|
||||
end
|
||||
@ -0,0 +1,2 @@
|
||||
M canonex
|
||||
D 600
|
||||
@ -0,0 +1,3 @@
|
||||
p +bakomaextra.map
|
||||
p +psfonts.cmz
|
||||
p +psfonts.amz
|
||||
@ -0,0 +1,2 @@
|
||||
M canonex
|
||||
D 600
|
||||
@ -0,0 +1,2 @@
|
||||
M cx
|
||||
D 300
|
||||
@ -0,0 +1,2 @@
|
||||
M deskjet
|
||||
D 300
|
||||
@ -0,0 +1,2 @@
|
||||
% The printer offsets the output by this much.
|
||||
O 0pt,0pt
|
||||
@ -0,0 +1,2 @@
|
||||
M epson
|
||||
D 240
|
||||
@ -0,0 +1,2 @@
|
||||
M ibmvga
|
||||
D 110
|
||||
@ -0,0 +1,2 @@
|
||||
M ljfour
|
||||
D 600
|
||||
10
www/common/latex/texlive/texmf-dist/dvips/config/config.luc
Normal file
10
www/common/latex/texlive/texmf-dist/dvips/config/config.luc
Normal file
@ -0,0 +1,10 @@
|
||||
p +hlce.map
|
||||
p +hlcf.map
|
||||
p +hlcn.map
|
||||
p +hlct.map
|
||||
p +hlcw.map
|
||||
p +hlh.map
|
||||
p +hls.map
|
||||
p +hlst.map
|
||||
p +hlx.map
|
||||
p +hlcm.map
|
||||
@ -0,0 +1 @@
|
||||
p +mbn.map
|
||||
@ -0,0 +1 @@
|
||||
p +mga.map
|
||||
@ -0,0 +1,6 @@
|
||||
% config.mirrorprint: Thomas Esser, 1998, public domain.
|
||||
|
||||
% Usage: dvips -Pmirrorprint ...
|
||||
% Purpose: print in a mirrored way
|
||||
|
||||
h mirr.hd
|
||||
@ -0,0 +1,2 @@
|
||||
p +mntz.map
|
||||
p +lscy.map
|
||||
604
www/common/latex/texlive/texmf-dist/dvips/config/config.ps
Normal file
604
www/common/latex/texlive/texmf-dist/dvips/config/config.ps
Normal file
@ -0,0 +1,604 @@
|
||||
% $Id: config.ps 24459 2011-11-02 15:13:04Z preining $
|
||||
% config.ps - configuration file for dvips.
|
||||
% Tomas Rokicki, Thomas Esser, Karl Berry, et al., 1986ff, public domain.
|
||||
|
||||
% Memory available. Download the three-line PostScript file:
|
||||
% %! Hey, we're PostScript
|
||||
% /Times-Roman findfont 30 scalefont setfont 144 432 moveto
|
||||
% vmstatus exch sub 40 string cvs show pop showpage
|
||||
% to determine this number. (It will be the only thing printed.)
|
||||
m 3500000
|
||||
|
||||
% Run securely. z2 disables both shell command execution in
|
||||
% `\special' and config files (via the `E' option) and opening of any
|
||||
% absolute filenames. z1, the default, forbids shell escapes but
|
||||
% allows absolute filenames. z0 allows both. The corresponding
|
||||
% command line options are -R0|-R1|-R2
|
||||
z1
|
||||
|
||||
% How to print, maybe with lp instead lpr, etc. If commented-out, output
|
||||
% will go into a file by default.
|
||||
%o |lpr
|
||||
|
||||
% Default resolution of this device, in dots per inch.
|
||||
D 600
|
||||
X 600
|
||||
Y 600
|
||||
|
||||
% Metafont mode. (This is completely different from the -M
|
||||
% command-line option, which controls whether mktexpk is invoked.)
|
||||
% See ../../metafont/misc/modes.mf for a list of mode names. This mode
|
||||
% and the D number above must agree, or mktexpk will get confused.
|
||||
M ljfour
|
||||
|
||||
% Last resort bitmap sizes.
|
||||
R 300 600
|
||||
|
||||
% Correct printer offset. You can use testpage.tex from the LaTeX
|
||||
% distribution to find these numbers.
|
||||
O 0pt,0pt
|
||||
|
||||
% Bitmap font compression. Results in more compact output files, but
|
||||
% sometimes causes trouble. So the default is disabled. Set Z1 to enable
|
||||
% this feature.
|
||||
Z0
|
||||
|
||||
% Partially download Type 1 fonts by default. Only reason not to do
|
||||
% this is if you encounter bugs. (Please report them to
|
||||
% @email{tex-k@tug.org} if you do.)
|
||||
j
|
||||
|
||||
% This shows how to add your own map file.
|
||||
% Remove the comment and adjust the name:
|
||||
% p +myfonts.map
|
||||
|
||||
% In the past, the a4size and letterSize definitions did not set the
|
||||
% paper size, but we want to set it if we can so that ps2pdf can work
|
||||
% properly. So, a4 and a4size, and letter and letterSize, are made
|
||||
% identical here, and we prefer the a4/letter names -- texconfig uses them.
|
||||
%
|
||||
% In the definitions below, if we have setpagedevice, use that.
|
||||
% Else if we have the a4 resp. letter operator, use that.
|
||||
% Else do nothing to set the page size.
|
||||
%
|
||||
% If you need to have no paper size stuff in the output at all, e.g., if
|
||||
% you are producing a multi-page document for further processing, use
|
||||
% -tnopaper (defined at end). (With a single-page document, you can use -E.)
|
||||
%
|
||||
% emacs-page
|
||||
|
||||
@ a4 210mm 297mm
|
||||
@+ ! %%DocumentPaperSizes: a4
|
||||
@+ %%BeginPaperSize: a4
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [595 842] >> setpagedevice }
|
||||
@+ { /a4 where { pop a4 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ letter 8.5in 11in
|
||||
@+ ! %%DocumentPaperSizes: Letter
|
||||
@+ %%BeginPaperSize: Letter
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [612 792] >> setpagedevice }
|
||||
@+ { /letter where { pop letter } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ a4size 210mm 297mm
|
||||
@+ ! %%DocumentPaperSizes: a4
|
||||
@+ %%BeginPaperSize: a4
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [595 842] >> setpagedevice }
|
||||
@+ { /a4 where { pop a4 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ letterSize 8.5in 11in
|
||||
@+ ! %%DocumentPaperSizes: Letter
|
||||
@+ %%BeginPaperSize: Letter
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [612 792] >> setpagedevice }
|
||||
@+ { /letter where { pop letter } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
% The jacow paper size is the smaller of letter and a4 in both
|
||||
% dimensions, and can therefore hopefully be printed on either paper
|
||||
% size. As far as we know, Volker Schaa first used it for the JACOW
|
||||
% conference proceedings that he produced.
|
||||
@ jacow 210mm 11in
|
||||
@+ ! %%DocumentPaperSizes: jacow
|
||||
@+ %%BeginPaperSize: jacow
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [595 792] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
% The smallbook paper size has been used by the Free Software Foundation
|
||||
% to print manuals for many years, and is part of Texinfo.
|
||||
@ smallbook 7in 9.25in
|
||||
@+ ! %%DocumentPaperSizes: smallbook
|
||||
@+ %%BeginPaperSize: smallbook
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [504 666] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ halfexecutive 133mm 184mm
|
||||
@+ ! %%DocumentPaperSizes: halfexecutive
|
||||
@+ %%BeginPaperSize: halfexecutive
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [378 522] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ halfletter 140mm 216mm
|
||||
@+ ! %%DocumentPaperSizes: halfletter
|
||||
@+ %%BeginPaperSize: halfletter
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [396 612] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ statement 140mm 216mm
|
||||
@+ ! %%DocumentPaperSizes: statement
|
||||
@+ %%BeginPaperSize: statement
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [396 612] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ executive 184mm 267mm
|
||||
@+ ! %%DocumentPaperSizes: executive
|
||||
@+ %%BeginPaperSize: executive
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [522 756] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
% for powerdot
|
||||
@ screen 8.25in 11in
|
||||
@+ ! %%DocumentPaperSizes: Screen
|
||||
@+ %%BeginPaperSize: Screen
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [594 792] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
% a common size for printers (in north america).
|
||||
@ sixbynine 6in 9in
|
||||
@+ ! %%DocumentPaperSizes: SixByNine
|
||||
@+ %%BeginPaperSize: SixByNine
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [432 648] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ quarto 215mm 275mm
|
||||
@+ ! %%DocumentPaperSizes: quarto
|
||||
@+ %%BeginPaperSize: quarto
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [610 780] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ note 216mm 279mm
|
||||
@+ ! %%DocumentPaperSizes: note
|
||||
@+ %%BeginPaperSize: note
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [612 792] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ folio 216mm 330mm
|
||||
@+ ! %%DocumentPaperSizes: folio
|
||||
@+ %%BeginPaperSize: folio
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [612 936] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ legal 8.5in 14in
|
||||
@+ ! %%DocumentPaperSizes: Legal
|
||||
@+ %%BeginPaperSize: Legal
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [612 1008] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ 10x14 10in 14in
|
||||
@+ ! %%DocumentPaperSizes: 10x14
|
||||
@+ %%BeginPaperSize: 10x14
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [720 1008] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ ledger 17in 11in
|
||||
@+ ! %%DocumentPaperSizes: Ledger
|
||||
@+ %%BeginPaperSize: Ledger
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [1224 792] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ tabloid 11in 17in
|
||||
@+ ! %%DocumentPaperSizes: Tabloid
|
||||
@+ %%BeginPaperSize: Tabloid
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [792 1224] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ 11x17 11in 17in
|
||||
@+ ! %%DocumentPaperSizes: 11x17
|
||||
@+ %%BeginPaperSize: 11x17
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [792 1224] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ a0 841mm 1189mm
|
||||
@+ ! %%DocumentPaperSizes: a0
|
||||
@+ %%BeginPaperSize: a0
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [2384 3370] >> setpagedevice }
|
||||
@+ { /a0 where { pop a0 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ a1 594mm 841mm
|
||||
@+ ! %%DocumentPaperSizes: a1
|
||||
@+ %%BeginPaperSize: a1
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [1684 2384] >> setpagedevice }
|
||||
@+ { /a1 where { pop a1 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ a2 420mm 594mm
|
||||
@+ ! %%DocumentPaperSizes: a2
|
||||
@+ %%BeginPaperSize: a2
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [1191 1684] >> setpagedevice }
|
||||
@+ { /a2 where { pop a2 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ a3 297mm 420mm
|
||||
@+ ! %%DocumentPaperSizes: a3
|
||||
@+ %%BeginPaperSize: a3
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [842 1191] >> setpagedevice }
|
||||
@+ { /a3 where { pop a3 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ a5 148mm 210mm
|
||||
@+ ! %%DocumentPaperSizes: a5
|
||||
@+ %%BeginPaperSize: a5
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [420 595] >> setpagedevice }
|
||||
@+ { /a5 where { pop a5 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ a6 105mm 148mm
|
||||
@+ ! %%DocumentPaperSizes: a6
|
||||
@+ %%BeginPaperSize: a6
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [298 420] >> setpagedevice }
|
||||
@+ { /a6 where { pop a6 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ a7 74mm 105mm
|
||||
@+ ! %%DocumentPaperSizes: a7
|
||||
@+ %%BeginPaperSize: a7
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [210 298] >> setpagedevice }
|
||||
@+ { /a7 where { pop a7 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ a8 52mm 74mm
|
||||
@+ ! %%DocumentPaperSizes: a8
|
||||
@+ %%BeginPaperSize: a8
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [147 210] >> setpagedevice }
|
||||
@+ { /a8 where { pop a8 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ a9 37mm 52mm
|
||||
@+ ! %%DocumentPaperSizes: a9
|
||||
@+ %%BeginPaperSize: a9
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [105 147] >> setpagedevice }
|
||||
@+ { /a9 where { pop a9 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ a10 26mm 37mm
|
||||
@+ ! %%DocumentPaperSizes: a10
|
||||
@+ %%BeginPaperSize: a10
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [74 105] >> setpagedevice }
|
||||
@+ { /a10 where { pop a10 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ jisb0 1030mm 1456mm
|
||||
@+ ! %%DocumentPaperSizes: jisb0
|
||||
@+ %%BeginPaperSize: jisb0
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [2920 4127] >> setpagedevice }
|
||||
@+ { /jisb0 where { pop jisb0 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ jisb1 728mm 1030mm
|
||||
@+ ! %%DocumentPaperSizes: jisb1
|
||||
@+ %%BeginPaperSize: jisb1
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [2064 2920] >> setpagedevice }
|
||||
@+ { /jisb1 where { pop jisb1 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ jisb2 515mm 728mm
|
||||
@+ ! %%DocumentPaperSizes: jisb2
|
||||
@+ %%BeginPaperSize: jisb2
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [1460 2064] >> setpagedevice }
|
||||
@+ { /jisb2 where { pop jisb2 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ jisb3 364mm 515mm
|
||||
@+ ! %%DocumentPaperSizes: jisb3
|
||||
@+ %%BeginPaperSize: jisb3
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [1032 1460] >> setpagedevice }
|
||||
@+ { /jisb3 where { pop jisb3 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ jisb4 257mm 364mm
|
||||
@+ ! %%DocumentPaperSizes: jisb4
|
||||
@+ %%BeginPaperSize: jisb4
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [729 1032] >> setpagedevice }
|
||||
@+ { /jisb4 where { pop jisb4 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ jisb5 182mm 257mm
|
||||
@+ ! %%DocumentPaperSizes: jisb5
|
||||
@+ %%BeginPaperSize: jisb5
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [516 729] >> setpagedevice }
|
||||
@+ { /jisb5 where { pop jisb5 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ jisb6 128mm 182mm
|
||||
@+ ! %%DocumentPaperSizes: jisb6
|
||||
@+ %%BeginPaperSize: jisb6
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [363 516] >> setpagedevice }
|
||||
@+ { /jisb6 where { pop jisb6 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ jisb7 91mm 128mm
|
||||
@+ ! %%DocumentPaperSizes: jisb7
|
||||
@+ %%BeginPaperSize: jisb7
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [258 363] >> setpagedevice }
|
||||
@+ { /jisb7 where { pop jisb7 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ jisb8 64mm 91mm
|
||||
@+ ! %%DocumentPaperSizes: jisb8
|
||||
@+ %%BeginPaperSize: jisb8
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [181 258] >> setpagedevice }
|
||||
@+ { /jisb8 where { pop jisb8 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ b0 1000mm 1414mm
|
||||
@+ ! %%DocumentPaperSizes: b0
|
||||
@+ %%BeginPaperSize: b0
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [2835 4008] >> setpagedevice }
|
||||
@+ { /b0 where { pop b0 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ b1 707mm 1000mm
|
||||
@+ ! %%DocumentPaperSizes: b1
|
||||
@+ %%BeginPaperSize: b1
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [2004 2835] >> setpagedevice }
|
||||
@+ { /b1 where { pop b1 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ b2 500mm 707mm
|
||||
@+ ! %%DocumentPaperSizes: b2
|
||||
@+ %%BeginPaperSize: b2
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [1417 2004] >> setpagedevice }
|
||||
@+ { /b2 where { pop b2 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ b3 353mm 500mm
|
||||
@+ ! %%DocumentPaperSizes: b3
|
||||
@+ %%BeginPaperSize: b3
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [1001 1417] >> setpagedevice }
|
||||
@+ { /b3 where { pop b3 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ b4 250mm 353mm
|
||||
@+ ! %%DocumentPaperSizes: b4
|
||||
@+ %%BeginPaperSize: b4
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [709 1001] >> setpagedevice }
|
||||
@+ { /b4 where { pop b4 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ b5 176mm 250mm
|
||||
@+ ! %%DocumentPaperSizes: b5
|
||||
@+ %%BeginPaperSize: b5
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [499 709] >> setpagedevice }
|
||||
@+ { /b5 where { pop b5 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ b6 125mm 176mm
|
||||
@+ ! %%DocumentPaperSizes: b6
|
||||
@+ %%BeginPaperSize: b6
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [354 499] >> setpagedevice }
|
||||
@+ { /b6 where { pop b6 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ c5 162mm 229mm
|
||||
@+ ! %%DocumentPaperSizes: c5
|
||||
@+ %%BeginPaperSize: c5
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [459 649] >> setpagedevice }
|
||||
@+ { /c5 where { pop c5 } if }
|
||||
@+ ifelse
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ DL 110mm 220mm
|
||||
@+ ! %%DocumentPaperSizes: DL
|
||||
@+ %%BeginPaperSize: DL
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [312 624] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ Comm10 105mm 241mm
|
||||
@+ ! %%DocumentPaperSizes: Comm10
|
||||
@+ %%BeginPaperSize: Comm10
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [297 684] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ Monarch 98.4mm 190.5mm
|
||||
@+ ! %%DocumentPaperSizes: Monarch
|
||||
@+ %%BeginPaperSize: Monarch
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [279 540] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ archE 36in 48in
|
||||
@+ ! %%DocumentPaperSizes: archE
|
||||
@+ %%BeginPaperSize: archE
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [2592 3456] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ archD 24in 36in
|
||||
@+ ! %%DocumentPaperSizes: archD
|
||||
@+ %%BeginPaperSize: archD
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [1728 2592] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ archC 18in 24in
|
||||
@+ ! %%DocumentPaperSizes: archC
|
||||
@+ %%BeginPaperSize: archC
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [1296 1728] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ archB 12in 18in
|
||||
@+ ! %%DocumentPaperSizes: archB
|
||||
@+ %%BeginPaperSize: archB
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [864 1296] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ archA 9in 12in
|
||||
@+ ! %%DocumentPaperSizes: archA
|
||||
@+ %%BeginPaperSize: archA
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [648 864] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ flsa 216mm 330.2mm
|
||||
@+ ! %%DocumentPaperSizes: flsa
|
||||
@+ %%BeginPaperSize: flsa
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [612 936] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ flse 216mm 330.2mm
|
||||
@+ ! %%DocumentPaperSizes: flse
|
||||
@+ %%BeginPaperSize: flse
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [612 936] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ csheet 431.8mm 558.8mm
|
||||
@+ ! %%DocumentPaperSizes: csheet
|
||||
@+ %%BeginPaperSize: csheet
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [1224 1584] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ dsheet 558.8mm 863.6mm
|
||||
@+ ! %%DocumentPaperSizes: dsheet
|
||||
@+ %%BeginPaperSize: dsheet
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [1584 2448] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
@ esheet 863.6mm 1117.6mm
|
||||
@+ ! %%DocumentPaperSizes: esheet
|
||||
@+ %%BeginPaperSize: esheet
|
||||
@+ /setpagedevice where
|
||||
@+ { pop << /PageSize [2448 3168] >> setpagedevice }
|
||||
@+ if
|
||||
@+ %%EndPaperSize
|
||||
|
||||
% use -t unknown with a \special{papersize=...} for a nonstandard page size.
|
||||
@ unknown 0in 0in
|
||||
@+ % dvips-unknown
|
||||
@+ statusdict /setpageparams known { hsize vsize 0 1 statusdict begin {
|
||||
@+ setpageparams } stopped end } { true } ifelse { statusdict /setpage known
|
||||
@+ { hsize vsize 1 statusdict begin { setpage } stopped pop end } if } if
|
||||
|
||||
% use -t nopaper to get no paper size stuff in the output at all.
|
||||
% This should remain as the last thing in the file, because the first
|
||||
% 0in 0in entry is chosen when there is nothing better; ordinarily, we
|
||||
% want to that to be "unknown", so that the correct nonstandard paper
|
||||
% size is output, instead of just being omitted.
|
||||
% http://groups.google.com/group/fr.comp.text.tex/browse_thread/thread/1b08961cf9b8a5ab/6b1d0b32443905e3
|
||||
% and mactex mailing list thread from 24 Sep 2009 11:36:26.
|
||||
@ nopaper 0in 0in
|
||||
@+ % dvips-nopaper
|
||||
@ -0,0 +1,2 @@
|
||||
M qms
|
||||
D 300
|
||||
@ -0,0 +1,2 @@
|
||||
M toshiba
|
||||
D 180
|
||||
@ -0,0 +1 @@
|
||||
p +unms.map
|
||||
@ -0,0 +1 @@
|
||||
p +xypic.map
|
||||
2
www/common/latex/texlive/texmf-dist/dvips/config/cx.cfg
Normal file
2
www/common/latex/texlive/texmf-dist/dvips/config/cx.cfg
Normal file
@ -0,0 +1,2 @@
|
||||
M cx
|
||||
D 300
|
||||
@ -0,0 +1,2 @@
|
||||
M deskjet
|
||||
D 300
|
||||
@ -0,0 +1,3 @@
|
||||
M gtfax
|
||||
X 204
|
||||
Y 196
|
||||
@ -0,0 +1,2 @@
|
||||
% The printer offsets the output by this much.
|
||||
O 0pt,0pt
|
||||
@ -0,0 +1,2 @@
|
||||
M epson
|
||||
D 240
|
||||
@ -0,0 +1,2 @@
|
||||
M ibmvga
|
||||
D 110
|
||||
@ -0,0 +1,2 @@
|
||||
M ljfour
|
||||
D 600
|
||||
2
www/common/latex/texlive/texmf-dist/dvips/config/qms.cfg
Normal file
2
www/common/latex/texlive/texmf-dist/dvips/config/qms.cfg
Normal file
@ -0,0 +1,2 @@
|
||||
M qms
|
||||
D 300
|
||||
@ -0,0 +1,2 @@
|
||||
M toshiba
|
||||
D 180
|
||||
346
www/common/latex/texlive/texmf-dist/dvips/gsftopk/render.ps
Normal file
346
www/common/latex/texlive/texmf-dist/dvips/gsftopk/render.ps
Normal file
@ -0,0 +1,346 @@
|
||||
% render.ps - write font bitmaps and metric information to standard output.
|
||||
% Version 1.18.
|
||||
|
||||
% ========================================================================
|
||||
%
|
||||
% Copyright (c) 1993-1998 Paul Vojta
|
||||
%
|
||||
% Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
% of this software and associated documentation files (the "Software"), to
|
||||
% deal in the Software without restriction, including without limitation the
|
||||
% rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
% sell copies of the Software, and to permit persons to whom the Software is
|
||||
% furnished to do so, subject to the following conditions:
|
||||
%
|
||||
% The above copyright notice and this permission notice shall be included in
|
||||
% all copies or substantial portions of the Software.
|
||||
%
|
||||
% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
% PAUL VOJTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
% IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
% CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
%
|
||||
% ========================================================================
|
||||
|
||||
%%%
|
||||
% Usage: gs -DNODISPLAY -q -- render.ps fontname dlstring specinfo dpi
|
||||
% Then, it will read standard input to get:
|
||||
% pointsize
|
||||
% charset
|
||||
|
||||
% Example:
|
||||
% % gs -DNODISPLAY -q -- render.ps Helvetica "(phvr.gsf) run" \
|
||||
% > ".5 ExtendFont" 300
|
||||
% GS> 10
|
||||
% GS> 97 98 99
|
||||
|
||||
/TeXDict currentdict def % needed by dotlessj.pro
|
||||
|
||||
%%
|
||||
%
|
||||
% Standard file definitions
|
||||
|
||||
/.stdin where { pop } { /.stdin (%stdin) (r) file def } ifelse
|
||||
|
||||
/bad-stdout false def
|
||||
/.stdout where
|
||||
{ pop }
|
||||
{ { /.stdout (%stdout) (w) file def } stopped
|
||||
{ /bad-stdout true def }
|
||||
if
|
||||
} ifelse
|
||||
|
||||
/bad-stderr false def
|
||||
/.stderr where
|
||||
{ pop }
|
||||
{ { /.stderr (%stderr) (w) file def } stopped
|
||||
{ /bad-stderr true def }
|
||||
if
|
||||
} ifelse
|
||||
|
||||
%%
|
||||
%
|
||||
% Define some routines first
|
||||
|
||||
% (string) fatal -
|
||||
% Print string to stderr and quit.
|
||||
|
||||
/fatal
|
||||
bad-stderr
|
||||
{{
|
||||
(\nrender.ps: ) exch concatstrings
|
||||
print flush 1 .quit
|
||||
}}
|
||||
{{
|
||||
(\nrender.ps: ) exch concatstrings
|
||||
.stderr exch writestring .stderr flushfile 1 .quit
|
||||
}}
|
||||
ifelse
|
||||
bind def
|
||||
|
||||
% (string) brun -
|
||||
% Load a font in .pfb format.
|
||||
|
||||
/brun
|
||||
{
|
||||
(r) file false /PFBDecode filter cvx exec
|
||||
}
|
||||
bind def
|
||||
|
||||
% (string) ttload font
|
||||
% Load a TrueType font (and leave it on the stack).
|
||||
|
||||
/ttload
|
||||
{
|
||||
FontOnStack
|
||||
{
|
||||
(Cannot load more than one TrueType font!\n) fatal
|
||||
} if
|
||||
(r) file .loadttfont
|
||||
/FontOnStack true def
|
||||
}
|
||||
bind def
|
||||
|
||||
/FontOnStack false def
|
||||
|
||||
% (exec) getbbox -
|
||||
% Get bounding box of the executable object and save it in char-urx,
|
||||
% char-ury, etc.
|
||||
|
||||
/getbbox
|
||||
{
|
||||
gsave
|
||||
nulldevice
|
||||
erasepage
|
||||
newpath
|
||||
exec
|
||||
pathbbox % returns llx lly urx ury
|
||||
/char-ury exch ceiling cvi def
|
||||
/char-urx exch ceiling cvi def
|
||||
/char-lly exch floor cvi def
|
||||
/char-llx exch floor cvi def
|
||||
grestore
|
||||
}
|
||||
bind def
|
||||
|
||||
% - drawfontbbox -
|
||||
% Draw the font's bbox.
|
||||
|
||||
/drawfontbbox
|
||||
{
|
||||
currentfont /FontBBox get
|
||||
dup dup 0 get exch 1 get currentfont /FontMatrix get transform moveto
|
||||
dup dup 0 get exch 3 get currentfont /FontMatrix get transform lineto
|
||||
dup dup 2 get exch 1 get currentfont /FontMatrix get transform lineto
|
||||
dup 2 get exch 3 get currentfont /FontMatrix get transform lineto
|
||||
}
|
||||
bind def
|
||||
|
||||
% (exec) mkbboxdev -
|
||||
% Get bounding box of the executable object and make a device a few
|
||||
% pixels larger on each side. If pathbbox fails for the object,
|
||||
% then use the font's bbox.
|
||||
|
||||
/mkbboxdev
|
||||
{
|
||||
getbbox
|
||||
|
||||
char-llx char-urx sub round 0 eq char-lly char-ury sub round 0 eq or
|
||||
{
|
||||
{drawfontbbox} getbbox
|
||||
}
|
||||
if
|
||||
|
||||
matrix
|
||||
char-urx char-llx sub 4 add % width
|
||||
dup /width exch def
|
||||
char-ury char-lly sub 4 add % height
|
||||
dup /height exch def
|
||||
<ff 00>
|
||||
makeimagedevice setdevice
|
||||
2 char-llx sub 2 char-lly sub translate
|
||||
}
|
||||
bind def
|
||||
|
||||
%%
|
||||
%
|
||||
% These may be called by the "specinfo" string.
|
||||
|
||||
/usefontbbox false def
|
||||
|
||||
% These do things to a transformation array; called by entries in psfonts.map.
|
||||
%
|
||||
/ObliqueSlant {dup sin exch cos div neg} bind def
|
||||
/SlantFont {font-size mul add} def
|
||||
/ExtendFont {3 -1 roll mul exch} def
|
||||
/ReEncodeFont {/Encoding exch def} def
|
||||
|
||||
% Define writeppmfile, if it's not provided, or if the symbol .stdout is not
|
||||
% available.
|
||||
|
||||
/our-writeppmfile
|
||||
|
||||
bad-stdout
|
||||
systemdict /writeppmfile known not
|
||||
or
|
||||
{{
|
||||
(P4\n) print
|
||||
width =string cvs print
|
||||
( ) print
|
||||
height =string cvs print
|
||||
(\n) print
|
||||
|
||||
width 7 add 8 div cvi string
|
||||
0 1 height 1 sub
|
||||
{
|
||||
currentdevice exch 2 index copyscanlines
|
||||
print
|
||||
}
|
||||
for
|
||||
pop % discard string
|
||||
}}
|
||||
{{
|
||||
.stdout currentdevice writeppmfile
|
||||
}}
|
||||
ifelse
|
||||
def
|
||||
|
||||
|
||||
%%
|
||||
%
|
||||
% Main program begins now. Just interpret it.
|
||||
|
||||
% Get arguments.
|
||||
|
||||
shellarguments not
|
||||
{
|
||||
(You must provide arguments to the shell!\n) fatal
|
||||
}
|
||||
if
|
||||
|
||||
/dpi exch cvr def
|
||||
/specinfo exch def
|
||||
/dlstring exch def
|
||||
/fontname exch def
|
||||
|
||||
% Return the gs version number to the calling program.
|
||||
|
||||
(V ) print revision =
|
||||
|
||||
% Open the font.
|
||||
|
||||
dlstring () ne
|
||||
{
|
||||
dlstring cvx exec
|
||||
}
|
||||
if
|
||||
|
||||
FontOnStack not
|
||||
{
|
||||
Fontmap fontname cvn known % Or: fontname cvn /Font resourcestatus?
|
||||
{
|
||||
fontname cvlit findfont
|
||||
}
|
||||
{
|
||||
FontDirectory fontname cvn known
|
||||
{
|
||||
fontname cvlit findfont
|
||||
}
|
||||
{
|
||||
revision 341 lt
|
||||
{
|
||||
/defaultfontname fontname cvlit def
|
||||
}
|
||||
if
|
||||
|
||||
{ fontname cvlit findfont } stopped
|
||||
{
|
||||
(font ) fontname concatstrings
|
||||
( is not defined.\n) concatstrings
|
||||
fatal
|
||||
}
|
||||
if
|
||||
}
|
||||
ifelse
|
||||
}
|
||||
ifelse
|
||||
}
|
||||
if
|
||||
|
||||
% Get arguments from stdin. Just leave the character list on the stack.
|
||||
|
||||
/font-size
|
||||
.stdin 20 string readline pop cvr % get pointsize
|
||||
72.27 div dpi mul % let's work in (TeX) points
|
||||
def
|
||||
[ .stdin 1024 string readline pop cvx exec ] % character list
|
||||
|
||||
% Define the font, and make it current.
|
||||
|
||||
% Get the font.
|
||||
exch
|
||||
% Copy over the font dictionary to make it writable;
|
||||
% this makes ReEncodeFont easier, and is needed for dotless j processing.
|
||||
dup length 1 add dict begin
|
||||
{1 index /FID ne {def}{pop pop} ifelse} forall
|
||||
% Now do the transformations specified in psfonts.map.
|
||||
[ font-size 0 specinfo cvx exec 0 exch font-size 0 0 ]
|
||||
% End the current dictionary, and make it a font.
|
||||
/TargetFont currentdict end definefont
|
||||
% Apply the tranformation matrix and make the font current.
|
||||
exch makefont dup /TargetFont exch def setfont
|
||||
|
||||
% If the font's bounding box is zero, then do not use it.
|
||||
|
||||
usefontbbox
|
||||
{ currentfont /FontBBox get
|
||||
true exch {0 eq and} forall
|
||||
{/usefontbbox false def}if
|
||||
}
|
||||
if
|
||||
|
||||
% If we are to use the font's bounding box, then get it and transform it.
|
||||
|
||||
usefontbbox
|
||||
{
|
||||
{drawfontbbox} mkbboxdev
|
||||
}
|
||||
if
|
||||
|
||||
% Begin loop over characters.
|
||||
|
||||
{
|
||||
/charno exch def
|
||||
/charstring 1 string dup 0 charno put def
|
||||
/charwidth charstring stringwidth pop def
|
||||
|
||||
% Get the character's bounding box. This also makes the device.
|
||||
usefontbbox not
|
||||
{
|
||||
{ 0 0 moveto charstring true charpath } mkbboxdev
|
||||
}
|
||||
if
|
||||
|
||||
% Print the metric info.
|
||||
(#^ ) print
|
||||
charno =string cvs print
|
||||
( ) print
|
||||
char-llx =string cvs print
|
||||
( ) print
|
||||
char-lly =string cvs print
|
||||
( ) print
|
||||
char-urx =string cvs print
|
||||
( ) print
|
||||
char-ury =string cvs print
|
||||
( ) print
|
||||
charwidth =string cvs print
|
||||
(\n) print
|
||||
|
||||
% Now write the bitmap.
|
||||
erasepage 0 0 moveto
|
||||
charstring show
|
||||
our-writeppmfile
|
||||
}
|
||||
forall
|
||||
138
www/common/latex/texlive/texmf-dist/dvips/pspicture/pspicture.ps
Normal file
138
www/common/latex/texlive/texmf-dist/dvips/pspicture/pspicture.ps
Normal file
@ -0,0 +1,138 @@
|
||||
%!
|
||||
%%
|
||||
%% Source File `pspicture.dtx'.
|
||||
%% Copyright (C) 1992 1999 David Carlisle
|
||||
%% This file may be distributed under the terms of the LPPL.
|
||||
%% See 00readme.txt for details.
|
||||
%%
|
||||
|
||||
|
||||
|
||||
|
||||
/!BP{
|
||||
72 72.27 div dup scale
|
||||
}def
|
||||
/!A{
|
||||
newpath
|
||||
0 0 moveto
|
||||
dup neg dup .4 mul rlineto
|
||||
.8 mul 0 exch rlineto
|
||||
closepath
|
||||
fill
|
||||
} def
|
||||
/!V{
|
||||
!BP
|
||||
/!X exch def
|
||||
/!y exch def
|
||||
/!x exch def
|
||||
newpath
|
||||
0 0 moveto
|
||||
!x 0 eq {0 !y 0 lt {!X neg}{!X} ifelse}
|
||||
{!x 0 lt {!X neg}{!X}ifelse !X !y mul !x abs div} ifelse
|
||||
lineto
|
||||
setlinewidth % @wholewidth
|
||||
currentpoint
|
||||
stroke
|
||||
translate
|
||||
!y !x atan
|
||||
rotate
|
||||
!A % @arrowlength
|
||||
}def
|
||||
/!L{
|
||||
!BP
|
||||
/!X exch def
|
||||
/!y exch def
|
||||
/!x exch def
|
||||
newpath
|
||||
0 0 moveto
|
||||
!x 0 eq {0 !y 0 lt {!X neg}{!X} ifelse}
|
||||
{!x 0 lt {!X neg}{!X}ifelse !X !y mul !x abs div} ifelse
|
||||
lineto
|
||||
setlinewidth % @wholewidth
|
||||
stroke
|
||||
}def
|
||||
/!C{
|
||||
!BP
|
||||
0 0 3 2 roll
|
||||
2 div 0 360 arc
|
||||
setlinewidth % @wholewidth
|
||||
stroke
|
||||
}def
|
||||
/!D{
|
||||
!BP
|
||||
0 0 3 2 roll
|
||||
2 div 0 360 arc fill
|
||||
}def
|
||||
/!O{
|
||||
!BP
|
||||
/!y exch 2 div def
|
||||
/!x exch 2 div def
|
||||
/!r exch !x !y
|
||||
2 copy gt {exch} if pop
|
||||
2 copy gt {exch} if pop
|
||||
def
|
||||
setlinewidth % @wholewidth
|
||||
1 eq
|
||||
{newpath
|
||||
!x neg 0 moveto
|
||||
!x neg !y 0 !y !r arcto 4 {pop} repeat
|
||||
0 !y lineto
|
||||
stroke}if
|
||||
1 eq
|
||||
{newpath
|
||||
!x 0 moveto
|
||||
!x !y 0 !y !r arcto 4 {pop} repeat
|
||||
0 !y lineto
|
||||
stroke}if
|
||||
1 eq
|
||||
{newpath
|
||||
!x neg 0 moveto
|
||||
!x neg !y neg 0 !y neg !r arcto 4 {pop} repeat
|
||||
0 !y neg lineto
|
||||
stroke}if
|
||||
1 eq
|
||||
{newpath
|
||||
!x 0 moveto
|
||||
!x !y neg 0 !y neg !r arcto 4 {pop} repeat
|
||||
0 !y neg lineto
|
||||
stroke}if
|
||||
}def
|
||||
/!V2{
|
||||
!BP
|
||||
2 copy exch
|
||||
atan
|
||||
/a exch def
|
||||
2 copy
|
||||
newpath
|
||||
0 0 moveto
|
||||
lineto % <x*unitlength> <y*unitlength>
|
||||
3 2 roll
|
||||
setlinewidth % @wholewidth
|
||||
stroke
|
||||
translate % <x*unitlength> <y*unitlength>
|
||||
a rotate
|
||||
!A % @arrowlength
|
||||
}def
|
||||
/!L2{
|
||||
!BP
|
||||
newpath
|
||||
0 0 moveto
|
||||
lineto % <x*unitlength> <y*unitlength>
|
||||
setlinewidth % @wholewidth
|
||||
stroke
|
||||
}def
|
||||
/!C2{
|
||||
!BP
|
||||
/!s exch def
|
||||
/!y exch def
|
||||
/!x exch def
|
||||
newpath
|
||||
0 0 moveto
|
||||
0 0
|
||||
!x 2 div !y 10 div !s mul add
|
||||
!y 2 div !x 10 div !s mul sub
|
||||
!x !y
|
||||
curveto
|
||||
setlinewidth % @wholewidth
|
||||
stroke
|
||||
}def
|
||||
@ -0,0 +1,11 @@
|
||||
% Thomas Esser, 2002, public domain.
|
||||
|
||||
% Usage: dvips -Pbuiltin35 ...
|
||||
%
|
||||
% Purpose: set up dvips to consider the base 35 PostScript fonts as
|
||||
% provided by your ps interpreter or printer, that is,
|
||||
% do not download them.
|
||||
%
|
||||
% The default behavior of downloads with dvips is set in updmap.cfg.
|
||||
|
||||
p +builtin35.map
|
||||
@ -0,0 +1,9 @@
|
||||
% Thomas Esser, 1998, public domain.
|
||||
|
||||
% Usage: dvips -Pdfaxhigh ...
|
||||
% Purpose: set up dvips' resolution to be optimal for a G3 fax at high
|
||||
% resolution (204x196)
|
||||
|
||||
M gtfax
|
||||
X 204
|
||||
Y 196
|
||||
@ -0,0 +1,9 @@
|
||||
% Thomas Esser, 1998, public domain.
|
||||
|
||||
% Usage: dvips -Pdfaxlo ...
|
||||
% Purpose: set up dvips' resolution to be optimal for a G3 fax at low
|
||||
% resolution (204x98)
|
||||
|
||||
M gtfaxlo
|
||||
X 204
|
||||
Y 98
|
||||
@ -0,0 +1,11 @@
|
||||
% Thomas Esser, 2002, public domain.
|
||||
|
||||
% Usage: dvips -Pdownload35 ...
|
||||
% Purpose: set up dvips to download the "base 35" laserwriter fonts
|
||||
% with your document.
|
||||
|
||||
% This file can be used to change the behaviour of dvips if the default
|
||||
% of dvips is to consider the "base 35" as build in of the ps interpreter
|
||||
% or printer. This default behaviour of dvips can be set by the updmap tool.
|
||||
|
||||
p +download35.map
|
||||
@ -0,0 +1,6 @@
|
||||
% Thomas Esser, 2002, public domain.
|
||||
|
||||
% Usage: this file is implicitly used by gsftopk. We set up all available
|
||||
% type 1 fonts for gsftopk by using psfonts_t1.map.
|
||||
|
||||
p +psfonts_t1.map
|
||||
@ -0,0 +1,9 @@
|
||||
% $Id: config.maxmem 29709 2013-04-07 17:28:46Z karl $
|
||||
% Public domain.
|
||||
|
||||
% Set Dvips' idea of available printiner memory to (effectively)
|
||||
% infinite, to disable Dvips breaking the output into sections. Only
|
||||
% works with dvips 5.993 (TeX Live 2013) and later. See the `Headers
|
||||
% and memory usage' node in the manual.
|
||||
%
|
||||
m -1
|
||||
@ -0,0 +1,6 @@
|
||||
% Thomas Esser, 2002, public domain.
|
||||
|
||||
% Usage: dvips -Poutline
|
||||
% Purpose: set up all available type 1 fonts for use with dvips.
|
||||
|
||||
p psfonts_t1.map
|
||||
43
www/common/latex/texlive/texmf-dist/dvips/tetex/config.pdf
Normal file
43
www/common/latex/texlive/texmf-dist/dvips/tetex/config.pdf
Normal file
@ -0,0 +1,43 @@
|
||||
% This is a config file for dvips, meant to produce PostScript optimized
|
||||
% for distilling to PDF. Created 12 Apr 1999 by Timothy van Zandt, later
|
||||
% modified te (papersize, o line).
|
||||
% Public domain.
|
||||
|
||||
% Memory available: The default for Distiller 3.0x is 8meg.
|
||||
% Reduce to be on safe side:
|
||||
|
||||
m 6000000
|
||||
|
||||
% Default is to save output as file.
|
||||
% If possible, change this so that it pipes output to distiller.
|
||||
% If not, use command line ``-o file'' option to change name
|
||||
% of output file.
|
||||
|
||||
o
|
||||
|
||||
% Default resolution. Attempt to make `resolution independent'.
|
||||
% Resolution set to 8000dpi (could be as high as 10000).
|
||||
|
||||
D 8000
|
||||
|
||||
% Use outline fonts, not bitmaps.
|
||||
|
||||
p psfonts_t1.map
|
||||
|
||||
% Last resort sizes.
|
||||
% If you accidentally include a bitmapped pk font, it will probably go
|
||||
% at 600dpi.
|
||||
|
||||
R 300 600
|
||||
|
||||
% Partial Type1 font downloading. This will happen by default. Uncomment
|
||||
% this is you want to download entire fonts, which is not recommended.
|
||||
|
||||
% j0
|
||||
|
||||
% Switching algorithm for drawing rules. texc.pro is loaded by default,
|
||||
% but the h tex.pro is need so that it comes before the patch. See
|
||||
% below for more details.
|
||||
|
||||
h tex.pro
|
||||
h alt-rule.pro
|
||||
@ -0,0 +1,6 @@
|
||||
% Thomas Esser, 2002, public domain.
|
||||
|
||||
% Usage: dvips -Ppk ...
|
||||
% Purpose: instruct dvips to prefer bitmap fonts over type 1 fonts.
|
||||
|
||||
p psfonts_pk.map
|
||||
10
www/common/latex/texlive/texmf-dist/dvips/tetex/config.www
Normal file
10
www/common/latex/texlive/texmf-dist/dvips/tetex/config.www
Normal file
@ -0,0 +1,10 @@
|
||||
% Thomas Esser, 1998, 2002, public domain.
|
||||
|
||||
% Usage: dvips -Pwww
|
||||
% Purpose: create ps files "for the web". Output is send to a file and
|
||||
% not to any printer. Outline fonts are used whenever available
|
||||
% since we do not know at which resolution the user will print
|
||||
% out output file.
|
||||
|
||||
o
|
||||
p psfonts_t1.map
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user