diff options
Diffstat (limited to 'Master')
-rwxr-xr-x | Master/bin/win32/latexindent.exe | bin | 5578613 -> 6282737 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/support/latexindent/appendices.tex | 32 | ||||
-rw-r--r-- | Master/texmf-dist/doc/support/latexindent/latexindent.pdf | bin | 524530 -> 525320 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/support/latexindent/latexindent.tex | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/support/latexindent/sec-how-to-use.tex | 2 | ||||
-rw-r--r-- | Master/texmf-dist/scripts/latexindent/LatexIndent/AlignmentAtAmpersand.pm | 38 | ||||
-rw-r--r-- | Master/texmf-dist/scripts/latexindent/LatexIndent/Document.pm | 2 | ||||
-rw-r--r-- | Master/texmf-dist/scripts/latexindent/LatexIndent/FileExtension.pm | 5 | ||||
-rw-r--r-- | Master/texmf-dist/scripts/latexindent/LatexIndent/LogFile.pm | 6 |
9 files changed, 62 insertions, 25 deletions
diff --git a/Master/bin/win32/latexindent.exe b/Master/bin/win32/latexindent.exe Binary files differindex 8a36fba70ad..a9b2f0c07ee 100755 --- a/Master/bin/win32/latexindent.exe +++ b/Master/bin/win32/latexindent.exe diff --git a/Master/texmf-dist/doc/support/latexindent/appendices.tex b/Master/texmf-dist/doc/support/latexindent/appendices.tex index cc77004e45b..bd011ec388b 100644 --- a/Master/texmf-dist/doc/support/latexindent/appendices.tex +++ b/Master/texmf-dist/doc/support/latexindent/appendices.tex @@ -6,20 +6,24 @@ need to install the missing modules. \begin{cmhlistings}[language=Perl]{\texttt{helloworld.pl}}{lst:helloworld} - #!/usr/bin/perl - - use strict; - use warnings; - use FindBin; - use YAML::Tiny; - use File::Copy; - use File::Basename; - use File::HomeDir; - use Getopt::Long; - use Data::Dumper; - - print "hello world"; - exit; +#!/usr/bin/perl + +use strict; +use warnings; +use utf8; +use PerlIO::encoding; +use Unicode::GCString; +use open ':std', ':encoding(UTF-8)'; +use FindBin; +use YAML::Tiny; +use File::Copy; +use File::Basename; +use File::HomeDir; +use Getopt::Long; +use Data::Dumper; + +print "hello world"; +exit; \end{cmhlistings} My default installation on Ubuntu 12.04 did \emph{not} come with all of these modules as standard, but Strawberry Perl for Windows \cite{strawberryperl} diff --git a/Master/texmf-dist/doc/support/latexindent/latexindent.pdf b/Master/texmf-dist/doc/support/latexindent/latexindent.pdf Binary files differindex 7c912e4b0fa..03ca111bc3a 100644 --- a/Master/texmf-dist/doc/support/latexindent/latexindent.pdf +++ b/Master/texmf-dist/doc/support/latexindent/latexindent.pdf diff --git a/Master/texmf-dist/doc/support/latexindent/latexindent.tex b/Master/texmf-dist/doc/support/latexindent/latexindent.tex index b31a22b7141..4a1a4163254 100644 --- a/Master/texmf-dist/doc/support/latexindent/latexindent.tex +++ b/Master/texmf-dist/doc/support/latexindent/latexindent.tex @@ -407,7 +407,7 @@ sharp corners, enhanced, overlay={\node[anchor=north east,outer sep=2pt] at ([xshift=3cm,yshift=4mm]frame.north east) {\includegraphics[width=3cm]{logo}}; }] - \centering\ttfamily\bfseries latexindent.pl\\[1cm] Version 3.0 + \centering\ttfamily\bfseries latexindent.pl\\[1cm] Version 3.0.1 \end{tcolorbox} } \author{Chris Hughes \thanks{and contributors! See \vref{sec:contributors}. For diff --git a/Master/texmf-dist/doc/support/latexindent/sec-how-to-use.tex b/Master/texmf-dist/doc/support/latexindent/sec-how-to-use.tex index 8e76e5d8fbf..90b6d8222c9 100644 --- a/Master/texmf-dist/doc/support/latexindent/sec-how-to-use.tex +++ b/Master/texmf-dist/doc/support/latexindent/sec-how-to-use.tex @@ -217,7 +217,7 @@ latexindent.pl myfile \documentclass{article} ... \end{cmhlistings} -%(*@@*) arara: indent: { modifylinebreaks: yes } + %(*@@*) arara: indent: { modifylinebreaks: yes } Hopefully the use of these rules is fairly self-explanatory, but for completeness \cref{tab:orbsandswitches} shows the relationship between \texttt{arara} directive arguments and the diff --git a/Master/texmf-dist/scripts/latexindent/LatexIndent/AlignmentAtAmpersand.pm b/Master/texmf-dist/scripts/latexindent/LatexIndent/AlignmentAtAmpersand.pm index 3f86cffd10f..195909ac280 100644 --- a/Master/texmf-dist/scripts/latexindent/LatexIndent/AlignmentAtAmpersand.pm +++ b/Master/texmf-dist/scripts/latexindent/LatexIndent/AlignmentAtAmpersand.pm @@ -16,12 +16,14 @@ package LatexIndent::AlignmentAtAmpersand; # For all communication, please visit: https://github.com/cmhughes/latexindent.pl use strict; use warnings; +use utf8; +use Unicode::GCString; +use Data::Dumper; +use Exporter qw/import/; use LatexIndent::TrailingComments qw/$trailingCommentRegExp/; use LatexIndent::Switches qw/$is_t_switch_active $is_tt_switch_active/; use LatexIndent::GetYamlSettings qw/%masterSettings/; use LatexIndent::Tokens qw/%tokens/; -use Data::Dumper; -use Exporter qw/import/; our @ISA = "LatexIndent::Document"; # class inheritance, Programming Perl, pg 321 our @EXPORT_OK = qw/align_at_ampersand find_aligned_block/; our $alignmentBlockCounter; @@ -170,10 +172,13 @@ sub align_at_ampersand{ $column .= ($column =~ m/\\$/ ? " ": q()); # store the column size - $columnSizes[$columnCount] = length($column) if(length($column)>$columnSizes[$columnCount]); + # reference: http://www.perl.com/pub/2012/05/perlunicook-unicode-column-width-for-printing.html + my $gcs = Unicode::GCString->new($column); + my $columnWidth = $gcs->columns(); + $columnSizes[$columnCount] = $columnWidth if($columnWidth > $columnSizes[$columnCount]); # put the row back together, using " " if the column is empty - $strippedRow .= ($columnCount>0 ? "&" : q() ).(length($column)>0 ? $column: " "); + $strippedRow .= ($columnCount>0 ? "&" : q() ).($columnWidth > 0 ? $column: " "); # move on to the next column $columnCount++; @@ -217,8 +222,31 @@ sub align_at_ampersand{ # finally, reformat the body foreach(@formattedBody){ if(${$_}{format} and ${$_}{row} !~ m/^\h*$/){ + + my $columnCount=0; + my $tmpRow = q(); + foreach my $column (split(/(?<!\\)&/,${$_}{row})){ + # grab the column width + my $gcs = Unicode::GCString->new($column); + my $columnWidth = $gcs->columns(); + + # reset the padding + my $padding = q(); + if($columnWidth < $columnSizes[$columnCount]){ + $padding = " " x ($columnSizes[$columnCount] - $columnWidth); + } + $tmpRow .= $column.$padding." & "; + $columnCount++; + } + + # remove the final & + $tmpRow =~ s/\s&\s$/ /; + + # replace the row with the formatted row + ${$_}{row} = $tmpRow; + # format the row, and put the trailing \\ and trailing comments back into the row - ${$_}{row} = sprintf($fmtstring,split(/(?<!\\)&/,${$_}{row})).(${$_}{endPiece} ? ${$_}{endPiece} :q() ).(${$_}{trailingComment}? ${$_}{trailingComment} : q() ); + ${$_}{row} .= (${$_}{endPiece} ? ${$_}{endPiece} :q() ).(${$_}{trailingComment}? ${$_}{trailingComment} : q() ); # possibly remove space ahead of \\ ${$_}{row} =~ s/\h*\\\\/\\\\/ if(!${$self}{alignDoubleBackSlash}); diff --git a/Master/texmf-dist/scripts/latexindent/LatexIndent/Document.pm b/Master/texmf-dist/scripts/latexindent/LatexIndent/Document.pm index 7c951ec7995..1872f181c86 100644 --- a/Master/texmf-dist/scripts/latexindent/LatexIndent/Document.pm +++ b/Master/texmf-dist/scripts/latexindent/LatexIndent/Document.pm @@ -17,6 +17,8 @@ package LatexIndent::Document; use strict; use warnings; use Data::Dumper; +use utf8; +use open ':std', ':encoding(UTF-8)'; # gain access to subroutines in the following modules use LatexIndent::Switches qw/storeSwitches %switches $is_m_switch_active $is_t_switch_active $is_tt_switch_active/; diff --git a/Master/texmf-dist/scripts/latexindent/LatexIndent/FileExtension.pm b/Master/texmf-dist/scripts/latexindent/LatexIndent/FileExtension.pm index 8dcb66dd80c..131c5c011eb 100644 --- a/Master/texmf-dist/scripts/latexindent/LatexIndent/FileExtension.pm +++ b/Master/texmf-dist/scripts/latexindent/LatexIndent/FileExtension.pm @@ -16,9 +16,12 @@ package LatexIndent::FileExtension; # For all communication, please visit: https://github.com/cmhughes/latexindent.pl use strict; use warnings; -use LatexIndent::GetYamlSettings qw/%masterSettings/; +use utf8; +use PerlIO::encoding; +use open ':std', ':encoding(UTF-8)'; use File::Basename; # to get the filename and directory path use Exporter qw/import/; +use LatexIndent::GetYamlSettings qw/%masterSettings/; our @EXPORT_OK = qw/file_extension_check/; sub file_extension_check{ diff --git a/Master/texmf-dist/scripts/latexindent/LatexIndent/LogFile.pm b/Master/texmf-dist/scripts/latexindent/LatexIndent/LogFile.pm index 89cffa58a81..01528ed965a 100644 --- a/Master/texmf-dist/scripts/latexindent/LatexIndent/LogFile.pm +++ b/Master/texmf-dist/scripts/latexindent/LatexIndent/LogFile.pm @@ -41,7 +41,7 @@ sub processSwitches{ my $self = shift; # details of the script to log file - $self->logger("$FindBin::Script version 3.0, a script to indent .tex files",'heading'); + $self->logger("$FindBin::Script version 3.0.1, a script to indent .tex files",'heading'); $self->logger("$FindBin::Script lives here: $FindBin::RealBin/"); # time the script is used @@ -50,7 +50,7 @@ sub processSwitches{ if(scalar(@ARGV) < 1 or $switches{showhelp}) { print <<ENDQUOTE -latexindent.pl version 3.0 +latexindent.pl version 3.0.1 usage: latexindent.pl [options] [file][.tex|.sty|.cls|.bib|...] -h, --help help (see the documentation for detailed instructions and examples) @@ -118,7 +118,7 @@ ENDQUOTE # output location of modules if($FindBin::Script eq 'latexindent.pl' or ($FindBin::Script eq 'latexindent.exe' and $switches{trace} )) { - my @listOfModules = ('FindBin', 'YAML::Tiny', 'File::Copy', 'File::Basename', 'Getopt::Long','File::HomeDir'); + my @listOfModules = ('FindBin', 'YAML::Tiny', 'File::Copy', 'File::Basename', 'Getopt::Long','File::HomeDir','Unicode::GCString'); $self->logger("Perl modules are being loaded from the following directories:",'heading'); foreach my $moduleName (@listOfModules) { (my $file = $moduleName) =~ s|::|/|g; |