diff options
Diffstat (limited to 'support/latexmk/example_rcfiles/fix-aux.latexmkrc')
-rw-r--r-- | support/latexmk/example_rcfiles/fix-aux.latexmkrc | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/support/latexmk/example_rcfiles/fix-aux.latexmkrc b/support/latexmk/example_rcfiles/fix-aux.latexmkrc deleted file mode 100644 index abcee8e9f2..0000000000 --- a/support/latexmk/example_rcfiles/fix-aux.latexmkrc +++ /dev/null @@ -1,110 +0,0 @@ -# This shows how to implement the use of different values for $aux_dir and -# $out_dir when the latex (etc) engines don't support the -aux-directory -# option. (Of the standard distributions, MiKTeX supports -aux-directory, -# but TeXLive does not.) - -# !!!IMPORTANT: THIS CONFIGURATION IS NO LONGER NECESSARY. From V. 4.74b onwards, -# latexmk can handle the aux_dir isssue itself --- see the documentation on the -# $emulate_aux variable. - - -foreach my $cmd ('latex', 'lualatex', 'pdflatex', 'xelatex' ) { - ${$cmd} = "internal latex_fix_aux $cmd %O %S"; -} -$xelatex =~ s/%O/-no-pdf %O/; - - -#--------------------------- - -sub latex_fix_aux { - # Fudge to allow use of -aux_directory option with non-MiKTeX system. - # This subroutine is called to do a compilation by one of latex, pdflatex, - # etc. It's arguments are the command name, and the command-line arguments, - # including possible uses of the options -aux-directory, -output-directory. - # Functioning: - # 1. Obtain the values of the aux and output directories from the options - # on the command line, with appropriate defaults if one or both options - # is not used. - # 2. Change the command line (a) to avoid the use of the -aux-directory - # option, and (b) to use the -output-directory to get all output - # sent to the intended aux-directory. If neither an -aux-directory - # nor an -output-directory option is used, no change is made to the - # command line. - # 3. Run the command. - # 4. If the aux and output directories are different, move any of the dvi, - # fls, pdf, ps and synctex.gz files that are present in the intended aux - # directory to the intended output directory. - # N.B. It might seem more appropriate to keep the fls file in the aux - # directory. But MiKTeX puts it in the output directory, so we must do - # the same to copy its behavior. - # It might also seem appropriate for an xdv file to go in the output - # directory, like a dvi file. But xelatex under MiKTeX puts it in the - # aux directory, so we must copy that behavior. - - my @move_exts = ('dvi', 'fls', 'pdf', 'ps', 'synctex.gz' ); - - # Determine aux and output directories from command line: - my $auxD = ''; - my $outD = ''; - foreach (@_) { - if ( /^-{1,2}aux-directory=(.*)$/ ) { - $auxD = $1; - } - elsif ( /^-{1,2}output-directory=(.*)$/ ) { - $outD = $1; - } - } - if ( $outD eq '' ) { $outD = '.'; } - if ( $auxD eq '' ) { $auxD = $outD; } - -# Construct modified command line, with at most one occurrence of -output-directory - my @args_act = (); - my $set_outD = 0; - foreach (@_) { - if ( /^-{1,2}(aux|output)-directory=.*$/ ) { - if ( ! $set_outD ) { - push @args_act, "-output-directory=$auxD"; - $set_outD = 1; - } - } - else { - push @args_act, $_; - } - } - -# Construct strings for aux and output directories that are suitable -# for prepending to a file name, so that they have any necessary -# directory separators: - my $outD1 = $outD; - my $auxD1 = $auxD; - foreach ( $auxD1, $outD1 ) { - # Append directory separator '/', but only for a non-empty name - # that isn't simple an MSWin drive name. - if ( ($_ ne '') && ! m([\\/\:]$) ) { - $_ .= '/'; - } - # Clean up by removing any sequence of './'. These refer to - # current directory. - while ( s[^\.\/][] ) {} - } - - print "Running: '@args_act'\n"; - my $ret = system @args_act; - if ($auxD ne $outD) { - print "Move @move_exts files from '$auxD' to '$outD'\n"; - # Use copy and unlink, not rename, since some viewers appear to keep the - # viewed file open. So if rename were used, such viewers would see the - # old version of the file, rather than the new one. With copy, the - # contents of the old file are normally overwritten by the new contents. - # - # In addition, copy works across file system boundaries, but rename - # doesn't. - foreach my $ext (@move_exts) { - copy "$auxD1$root_filename.$ext", "$outD1$root_filename.$ext"; - unlink "$auxD1$root_filename.$ext"; - } - } - return $ret; -} - -#--------------------------- |