version 1.4, 2008/04/01 10:45:44
|
version 1.5, 2008/04/09 10:24:32
|
Line 837 my %entities = {
|
Line 837 my %entities = {
|
8863 => '\\ensuremath\{\\boxminus\}', |
8863 => '\\ensuremath\{\\boxminus\}', |
8864 => '\\ensuremath\{\\boxtimes\}', |
8864 => '\\ensuremath\{\\boxtimes\}', |
8865 => '\\ensuremath\{\\boxdot\}', |
8865 => '\\ensuremath\{\\boxdot\}', |
|
'vdash' => '\\ensuremath\{\\vdash\}', |
|
8866 => '\\ensuremath\{\\vdash\}', |
|
'dashv' => '\\ensuremath\{\\dashv\}', |
|
8867 => '\\ensuremath\{\\dashv\}', |
|
'perp' => '\\ensuremath\{\\perp\}', |
|
8869 => '\\ensuremath\{\\perp\}', |
|
8871 => '\\ensuremath\{\\models\}', |
|
8872 => '\\ensuremath\{\\vDash\}', |
|
8873 => '\\ensuremath\{\\Vdash\}', |
|
8874 => '\\ensuremath\{\\Vvdash\}', |
|
8876 => '\\ensuremath\{\\nvdash\}', |
|
8877 => '\\ensuremath\{\\nvDash\}', |
|
8878 => '\\ensuremath\{\\nVdash\}', |
|
8880 => '\\ensuremath\{\\prec\}', |
|
8881 => '\\ensuremath\{\\succ\}', |
|
8882 => '\\ensuremath\{\\vartriangleleft\}', |
|
8883 => '\\ensuremath\{\\vartriangleright\}', |
|
8884 => '\\ensuremath\{\\trianglelefteq\}', |
|
8885 => '\\ensuremath\{\\trianglerighteq\}', |
|
8891 => '\\ensuremath\{\\veebar\}', |
|
8896 => '\\ensuremath\{\\land\}', |
|
8897 => '\\ensuremath\{\\lor\}', |
|
8898 => '\\ensuremath\{\\cap\}', |
|
8899 => '\\ensuremath\{\\cup\}', |
|
8900 => '\\ensuremath\{\\diamond\}', |
|
'sdot' => '\\ensuremath\{\\cdot\}', |
|
8901 => '\\ensuremath\{\\cdot\}', |
|
8902 => '\\ensuremath\{\\star\}', |
|
8903 => '\\ensuremath\{\\divideontimes\}', |
|
8904 => '\\ensuremath\{\\bowtie\}', |
|
8905 => '\\ensuremath\{\\ltimes\}', |
|
8906 => '\\ensuremath\{\\rtimes\}', |
|
8907 => '\\ensuremath\{\\leftthreetimes\}', |
|
8908 => '\\ensuremath\{\\rightthreetimes\}', |
|
8909 => '\\ensuremath\{\\simeq\}', |
|
8910 => '\\ensuremath\{\\curlyvee\}', |
|
8911 => '\\ensuremath\{\\curlywedge\}', |
|
8912 => '\\ensuremath\{\\Subset\}', |
|
8913 => '\\ensuremath\{\\Supset\}', |
|
8914 => '\\ensuremath\{\\Cap\}', |
|
8915 => '\\ensuremath\{\\Cup\}', |
|
8916 => '\\ensuremath\{\\pitchfork\}', |
|
8918 => '\\ensuremath\{\\lessdot\}', |
|
8919 => '\\ensuremath\{\\gtrdot\}', |
|
8920 => '\\ensuremath\{\\lll\}', |
|
8921 => '\\ensuremath\{\\ggg\}', |
|
8922 => '\\ensuremath\{\\gtreqless\}', |
|
8923 => '\\ensuremath\{\\lesseqgtr\}', |
|
8924 => '\\ensuremath\{\\eqslantless\}', |
|
8925 => '\\ensuremath\{\\eqslantgtr\}', |
|
8926 => '\\ensuremath\{\\curlyeqprec\}', |
|
8927 => '\\ensuremath\{\\curlyeqsucc\}', |
|
8928 => '\\ensuremath\{\\not\\preccurlyeq\}', |
|
8929 => '\\ensuremath\{\\not\\succurlyeq\}', |
|
8930 => '\\ensuremath\{\\not\\sqsupseteq\}', |
|
8931 => '\\ensuremath\{\\not\\sqsubseteq\}', |
|
8938 => '\\ensuremath\{\\not\\vartriangleleft\}', |
|
8939 => '\\ensuremath\{\\not\vartriangleright\}', |
|
8940 => '\\ensuremath\{\\not\trianglelefteq\}', |
|
8941 => '\\ensuremath\{\\not\trianglerighteq\}', |
|
8942 => '\\ensuremath\{\\vdots\}', |
|
8960 => '\\ensuremath\{\\varnothing\}', |
|
'lceil' => '\\ensuremath\{\\lceil\}', |
|
8968 => '\\ensuremath\{\\lceil\}', |
|
'rceil' => '\\ensuremath\{\\rceil\}', |
|
8969 => '\\ensuremath\{\\rceil\}', |
|
'lfloor' => '\\ensuremath\{\\lfloor\}', |
|
8970 => '\\ensuremath\{\\lfloor\}', |
|
'rfloor' => '\\ensuremath\{\\rfloor}', |
|
8971 => '\\ensuremath\{\\rfloor}', |
|
'lang' => '\\ensuremath\{\\langle\}', |
|
9001 => '\\ensuremath\{\\langle\}', |
|
'rang' => '\\ensuremath\{\\rangle\}', |
|
9002 => '\\ensuremath\{\\rangle\}', |
|
'loz' => '\\ensuremath\{\\lozenge\}', |
|
9674 => '\\ensuremath\{\\lozenge\}', |
|
'spades' => '\\ensuremath\{\\spadesuit\}', |
|
9824 => '\\ensuremath\{\\spadesuit\}', |
|
9825 => '\\ensuremath\{\\heartsuit\}', |
|
9826 => '\\ensuremath\{\\diamondsuit\}', |
|
'clubs' => '\\ensuremath\{\\clubsuit\}', |
|
9827 => '\\ensuremath\{\\clubsuit\}', |
|
'diams' => '\\ensuremath\{\\blacklozenge\}', |
|
9830 => '\\ensuremath\{\\blacklozenge\}' |
|
|
}; |
}; |
|
|
Line 850 my %entities = {
|
Line 930 my %entities = {
|
# This allows us to support, to some extent, any entity for which |
# This allows us to support, to some extent, any entity for which |
# dvipdf can find a gylph (given that LaTeX is now UTF-8 clean). |
# dvipdf can find a gylph (given that LaTeX is now UTF-8 clean). |
# |
# |
|
# Parameters: |
|
# unicode - The unicode for the character. This is assumed to |
|
# be a decimal value |
|
# Returns: |
|
# The UTF-8 equiavalent of the value. |
|
# |
sub entity_to_utf8 { |
sub entity_to_utf8 { |
|
my ($unicode) = @_; |
|
|
|
return pack("U", $unicode); |
} |
} |
|
|
|
|
Line 861 sub entity_to_utf8 {
|
Line 950 sub entity_to_utf8 {
|
# to UTF-8 which should display as long as dvipdf can find the |
# to UTF-8 which should display as long as dvipdf can find the |
# appropriate glyph. |
# appropriate glyph. |
# |
# |
|
# The entity is assumed to have already had the |
|
# &# ; or & ; removed |
|
# |
|
# Parameters: |
|
# entity - Name of entity to convert. |
|
# Returns: |
|
# One of the following: |
|
# - Latex string that produces the entity. |
|
# - UTF-8 equivalent of a numeric entity for which we don't have a latex string. |
|
# - ' ' for text entities for which there's no latex equivalent. |
|
# |
sub entity_to_latex { |
sub entity_to_latex { |
|
my ($entity) = @_; |
|
|
|
# Try to look up the entity (text or numeric) in the hash: |
|
|
|
my $latex = $entities{$entity}; |
|
if ($latex) { |
|
return $latex; |
|
} |
|
# If the text is purely numeric we can do the UTF-8 conversion: |
|
|
|
if ($entity =~ /^\d$/) { |
|
return &entity_to_utf8($entity); |
|
} |
|
# Can't do the conversion ... |
|
|
|
return " "; |
|
} |
|
|
|
# |
|
# Convert all the entities in a string. |
|
# We locate all the entities, pass them into entity_to_latex and |
|
# and replace occurences in the input string. |
|
# The assumption is that there are few entities in any string/document |
|
# so this looping is not too bad. The advantage of looping vs. regexping is |
|
# that we now can use lookup tables for the translation in entity_to_latex above. |
|
# |
|
# Parameters: |
|
# input - Input string/document |
|
# Returns |
|
# input with entities replaced by latexable stuff (UTF-8 encodings or |
|
# latex control strings to produce the entity. |
|
# |
|
# |
|
sub replace_entities { |
|
my ($input) = @_; |
} |
} |
|
|