You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

128 lines
7.3 KiB

<?php
// Project: Web Reference Database (refbase) <http://www.refbase.net>
// Copyright: Matthias Steffens <mailto:refbase@extracts.de> and the file's
// original author(s).
//
// This code is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY. Please see the GNU General Public
// License for more details.
//
// File: ./includes/transtab_bibtex_refbase.inc.php
// Repository: $HeadURL: file:///svn/p/refbase/code/branches/bleeding-edge/includes/transtab_bibtex_refbase.inc.php $
// Author(s): Matthias Steffens <mailto:refbase@extracts.de>
//
// Created: 10-Aug-06, 21:00
// Modified: $Date: 2008-07-30 14:16:35 +0000 (Wed, 30 Jul 2008) $
// $Author: msteffens $
// $Revision: 1182 $
// Search & replace patterns for conversion from LaTeX/BibTeX markup & entities to refbase markup. Converts LaTeX fontshape markup (italic, bold, underline)
// into appropriate refbase commands, super- and subscript as well as greek letters in math mode get converted into the respective refbase commands.
// You may need to adopt the LaTeX markup to suit your individual needs.
// Notes: - search & replace patterns must be specified as perl-style regular expression and search patterns must include the leading & trailing slashes
$transtab_bibtex_refbase = array(
'/\\\\(?:ul|hl|uuline|uwave)\\{(.+?)\\}/i' => "__\\1__",
'/\\\\(?:text)?it\\{(.+?)\\}/i' => "_\\1_",
'/\\\\(?:text)?bf\\{(.+?)\\}/i' => "**\\1**",
'/((\\$\\^\\{.+?\\}\\$|\\\\textsuperscript\\{.+?\\}|\\{\\\\text(one|two|three)superior\\})+)/ie' => "bibtexSuperScriptToRefbase('\\1')", // function 'bibtexSuperScriptToRefbase()' will convert LaTeX/BibTeX superscript markup to appropriate refbase markup
'/((\\$\\_\\{.+?\\}\\$|\\\\textsubscript\\{.+?\\})+)/ie' => "bibtexSubScriptToRefbase('\\1')", // function 'bibtexSubScriptToRefbase()' will convert LaTeX/BibTeX subscript markup to appropriate refbase markup
'/\\{\\\\textperthousand\\}/' => "[permil]",
'/\\$\\\\infty\\$/' => "[infinity]",
'/\\$\\\\alpha\\$/' => "[alpha]",
'/\\$\\\\beta\\$/' => "[beta]",
'/\\$\\\\gamma\\$/' => "[gamma]",
'/\\$\\\\delta\\$/' => "[delta]",
'/\\$\\\\epsilon\\$/' => "[epsilon]",
'/\\$\\\\zeta\\$/' => "[zeta]",
'/\\$\\\\eta\\$/' => "[eta]",
'/\\$\\\\theta\\$/' => "[theta]",
'/\\$\\\\iota\\$/' => "[iota]",
'/\\$\\\\kappa\\$/' => "[kappa]",
'/\\$\\\\lambda\\$/' => "[lambda]",
'/\\$\\\\mu\\$/' => "[mu]",
'/\\$\\\\nu\\$/' => "[nu]",
'/\\$\\\\xi\\$/' => "[xi]",
'/\\$o\\$/' => "[omicron]",
'/\\$\\\\pi\\$/' => "[pi]",
'/\\$\\\\rho\\$/' => "[rho]",
'/\\$\\\\varsigma\\$/' => "[sigmaf]",
'/\\$\\\\sigma\\$/' => "[sigma]",
'/\\$\\\\tau\\$/' => "[tau]",
'/\\$\\\\upsilon\\$/' => "[upsilon]",
'/\\$\\\\phi\\$/' => "[phi]",
'/\\$\\\\chi\\$/' => "[chi]",
'/\\$\\\\psi\\$/' => "[psi]",
'/\\$\\\\omega\\$/' => "[omega]",
'/\\$A\\$/' => "[Alpha]",
'/\\$B\\$/' => "[Beta]",
'/\\$\\\\Gamma\\$/' => "[Gamma]",
'/\\$\\\\Delta\\$/' => "[Delta]",
'/\\$E\\$/' => "[Epsilon]",
'/\\$Z\\$/' => "[Zeta]",
'/\\$H\\$/' => "[Eta]",
'/\\$\\\\Theta\\$/' => "[Theta]",
'/\\$I\\$/' => "[Iota]",
'/\\$K\\$/' => "[Kappa]",
'/\\$\\\\Lambda\\$/' => "[Lambda]",
'/\\$M\\$/' => "[Mu]",
'/\\$N\\$/' => "[Nu]",
'/\\$\\\\Xi\\$/' => "[Xi]",
'/\\$O\\$/' => "[Omicron]",
'/\\$\\\\Pi\\$/' => "[Pi]",
'/\\$R\\$/' => "[Rho]",
'/\\$\\\\Sigma\\$/' => "[Sigma]",
'/\\$T\\$/' => "[Tau]",
'/\\$\\\\Upsilon\\$/' => "[Upsilon]",
'/\\$\\\\Phi\\$/' => "[Phi]",
'/\\$X\\$/' => "[Chi]",
'/\\$\\\\Psi\\$/' => "[Psi]",
'/\\$\\\\Omega\\$/' => "[Omega]",
'/^opt(?=(URL|LOCATION|NOTE|KEYWORDS)=)/mi' => ""
);
$bibtexSuperScriptSearchReplaceActionsArray = array(
"/\\$\\^\\{(.+?)\\}\\$/" => '\\1',
"/\\\\textsuperscript\\{(.+?)\\}/i" => '\\1',
"/\\{\\\\textonesuperior\\}/i" => '1', // (superscript one)
"/\\{\\\\texttwosuperior\\}/i" => '2', // (superscript two)
"/\\{\\\\textthreesuperior\\}/i" => '3' // (superscript three)
);
$bibtexSubScriptSearchReplaceActionsArray = array(
"/\\$\\_\\{(.+?)\\}\\$/" => '\\1',
"/\\\\textsubscript\\{(.+?)\\}/i" => '\\1'
);
// --------------------------------------------------------------------
// Converts LaTeX/BibTeX superscript markup to appropriate refbase markup:
function bibtexSuperScriptToRefbase($sourceString)
{
global $bibtexSuperScriptSearchReplaceActionsArray;
$sourceString = searchReplaceText($bibtexSuperScriptSearchReplaceActionsArray, $sourceString, true); // function 'searchReplaceText()' is defined in 'include.inc.php'
return "[super:" . $sourceString . "]";
}
// --------------------------------------------------------------------
// Converts LaTeX/BibTeX subscript markup to appropriate refbase markup:
function bibtexSubScriptToRefbase($sourceString)
{
global $bibtexSubScriptSearchReplaceActionsArray;
$sourceString = searchReplaceText($bibtexSubScriptSearchReplaceActionsArray, $sourceString, true); // function 'searchReplaceText()' is defined in 'include.inc.php'
return "[sub:" . $sourceString . "]";
}
?>