// Copyright: Matthias Steffens 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_refbase_latex.inc.php // Repository: $HeadURL: file:///svn/p/refbase/code/branches/bleeding-edge/includes/transtab_refbase_latex.inc.php $ // Author(s): Matthias Steffens // // Created: 28-May-06, 17:01 // Modified: $Date: 2008-10-30 17:19:48 +0000 (Thu, 30 Oct 2008) $ // $Author: msteffens $ // $Revision: 1288 $ // Search & replace patterns for conversion from refbase markup to LaTeX markup & entities. Converts refbase fontshape markup (italic, bold) into // LaTeX commands of the 'textcomp' package, super- and subscript as well as greek letters get converted into the respective commands in math mode. // You may need to adopt the LaTeX markup to suit your individual needs. // Search & replace patterns must be specified as perl-style regular expression and search patterns must include the leading & trailing slashes. global $patternModifiers; // defined in 'transtab_unicode_charset.inc.php' and 'transtab_latin1_charset.inc.php' $transtab_refbase_latex = array( "/([{}])/" => '\\\\\\1', // escaping of curly brackets has to be done as the first action so that conversion is only applied to field contents and doesn't mess with the generated LaTeX code "/__(?!_)(.+?)__/" => '\\1', // underline is currently removed; instead, you could use '\\ul{\\1}' which requires '\usepackage{soul}'; the pattern for underline (__...__) must come before the one for italic (_..._) "/_(.+?)_/" => '\\textit{\\1}', // or use '\\it{\\1}' "/\\*\\*(.+?)\\*\\*/" => '\\textbf{\\1}', // or use '\\bf{\\1}' "/\\[super:(.+?)\\]/i" => '$^{\\1}$', // or use '\\textsuperscript{\\1}' "/\\[sub:(.+?)\\]/i" => '$_{\\1}$', // or use '\\textsubscript{\\1}' if defined in your package "/\\[permil\\]/" => '{\\textperthousand}', "/\\[infinity\\]/" => '$\\infty$', "/\\[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$', "/\\[omicron\\]/" => '$o$', "/\\[pi\\]/" => '$\\pi$', "/\\[rho\\]/" => '$\\rho$', "/\\[sigmaf\\]/" => '$\\varsigma$', "/\\[sigma\\]/" => '$\\sigma$', "/\\[tau\\]/" => '$\\tau$', "/\\[upsilon\\]/" => '$\\upsilon$', "/\\[phi\\]/" => '$\\phi$', "/\\[chi\\]/" => '$\\chi$', "/\\[psi\\]/" => '$\\psi$', "/\\[omega\\]/" => '$\\omega$', "/\\[Alpha\\]/" => '$A$', "/\\[Beta\\]/" => '$B$', "/\\[Gamma\\]/" => '$\\Gamma$', "/\\[Delta\\]/" => '$\\Delta$', "/\\[Epsilon\\]/" => '$E$', "/\\[Zeta\\]/" => '$Z$', "/\\[Eta\\]/" => '$H$', "/\\[Theta\\]/" => '$\\Theta$', "/\\[Iota\\]/" => '$I$', "/\\[Kappa\\]/" => '$K$', "/\\[Lambda\\]/" => '$\\Lambda$', "/\\[Mu\\]/" => '$M$', "/\\[Nu\\]/" => '$N$', "/\\[Xi\\]/" => '$\\Xi$', "/\\[Omicron\\]/" => '$O$', "/\\[Pi\\]/" => '$\\Pi$', "/\\[Rho\\]/" => '$R$', "/\\[Sigma\\]/" => '$\\Sigma$', "/\\[Tau\\]/" => '$T$', "/\\[Upsilon\\]/" => '$\\Upsilon$', "/\\[Phi\\]/" => '$\\Phi$', "/\\[Chi\\]/" => '$X$', "/\\[Psi\\]/" => '$\\Psi$', "/\\[Omega\\]/" => '$\\Omega$', "/\"(.+?)\"/" => '{\\textquotedblleft}\\1{\\textquotedblright}', "/ +- +/" => " -- ", // "/–/$patternModifiers" => "--" // Note that for UTF-8 based systems, '$patternModifiers' contains the "u" (PCRE_UTF8) pattern modifier which should cause PHP/PCRE // to treat pattern strings as UTF-8 (otherwise this conversion pattern would garble UTF-8 characters such as "Ö"). However, the // "–" character still seems to cause PREG compilation errors on some UTF8-based systems, which is why the line has been commented // out (it should work fine for a latin1-based system, though). ); ?>