From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

#!/usr/bin/perl
# $Id: latex-encode 28 2012-08-30 20:00:09Z andrew $
use strict;
my ($list_packages, $help, $man);
GetOptions('packages' => \$list_packages,
'help|?' => \$help,
'man' => \$man)
or pod2usage(2);
pod2usage(1) if $help;
pod2usage(-exitstatus => 0, -verbose => 2) if $man;
if ($list_packages) {
my $text = join(qr{}, <>);
my $packages = {};
latex_encode($text, $packages);
foreach my $package (sort keys %$packages) {
print "$package\n";
}
}
else {
while (<>) {
print latex_encode($_);
}
}
__END__
=head1 NAME
latex-encode - LaTeX-encode data
=head1 USAGE
latex-encode [options] <utf8-file >latex-file
=head1 OPTIONS
=over 4
=item C<-packages|-p>
rather than output the LaTeX-encoded version of the input, C<latex-encode> outputs a list
of the LaTeX packages that are required to typeset the encoded version of the input, one
package per line
=item C<-help|?>
output a help string
=item C<-man>
display the man page for latex-encode
=back
=head1 DESCRIPTION
This script converts utf-8 characters in its input to their LaTeX encodings using the
C<LaTeX::Encode> module, unless the C<-packages> option is given, in which case it outputs
a list of the LaTeX packages required to typeset the encoded bersion of the input.
=head1 DIAGNOSTICS
=head1 EXIT STATUS
=head1 CONFIGURATION
=head1 DEPENDENCIES
=head1 INCOMPATIBILITIES
=head1 BUGS AND LIMITATIONS
=head1 AUTHOR
Andrew Ford E<lt>a.ford@ford-mason.co.ukE<gt>
=head1 COPYRIGHT AND LICENSE
Copyright (C) 2012 Andrew Ford. All Rights Reserved.
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
=cut