/usr/share/perl5/LaTeXML/Package/units.sty.ltxml is in latexml 0.8.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | # -*- mode: Perl -*-
# /=====================================================================\ #
# | units | #
# | Implementation for LaTeXML | #
# |=====================================================================| #
# | Part of LaTeXML: | #
# | Public domain software, produced as part of work done by the | #
# | United States Government & not subject to copyright in the US. | #
# |---------------------------------------------------------------------| #
# | Bruce Miller <bruce.miller@nist.gov> #_# | #
# | http://dlmf.nist.gov/LaTeXML/ (o o) | #
# \=========================================================ooo==U==ooo=/ #
package LaTeXML::Package::Pool;
use strict;
use warnings;
use LaTeXML::Package;
# RequirePackage('ifthen');
RequirePackage('nicefrac');
# in text mode, should be plain text, but let's be consistent putting it in math with text font.
DefMacro('\unit [] {}',
'\ifx.#1.\else#1\ltx@units@spacing\fi'
. '\lx@units@assertunits{\ifmmode\mathrm{#2}\else $\nf@mathcopytextfont #2$\fi}');
DefMacro('\unitfrac [] {}{}',
'\ifx.#1.\else#1\ltx@units@spacing\fi'
. '\lx@units@assertunits{\ifmmode\nicefrac[\mathrm]{#2}{#3}\else\nicefrac{#2}{#3}\fi}');
DefConstructor('\lx@units@assertunits{}', '#1',
afterConstruct => sub {
my ($document) = @_;
units_assert_units($document, $document->getNode); },
reversion => '#1');
# Try to force some semantics of unit-ness down to the math tokens!
sub units_assert_units {
my ($document, $node) = @_;
my $qname = $document->getNodeQName($node);
if (($qname eq 'ltx:XMTok') && (($node->getAttribute('role') || 'UNKNOWN') eq 'UNKNOWN')) {
$node->setAttribute(role => 'ID');
$document->addClass($node, 'ltx_unit'); }
elsif ($qname) {
map { units_assert_units($document, $_) } element_nodes($node); }
return; }
DeclareOption('tight', sub { Let('\ltx@units@spacing', '\,'); });
DeclareOption('loose', sub { Let('\ltx@units@spacing', '~'); });
ExecuteOptions('tight');
ProcessOptions();
#======================================================================
1;
|