28

I can't see any situation where I would want to compile a dvi file. Therefore I'd like to have latexmk default to giving me a pdf via pdflatex, so I don't have to type -pdf every time. I've tried adding the following to my latexmkrc file without success:

$print='pdf';

$pdflatex = 'pdflatex --shell-escape %O %S';

and even

$pdf=1

I'm on windows, so I can't just add it to my alias file. Is there a way to set up latexmk to make me a pdf unless I specify otherwise?

  • 5
    $pdf_mode = 1; !? – hpekristiansen Jul 8 '13 at 22:34
  • @Hans-PeterE.Kristiansen Yep, that was it. Want to make that an answer? For the record: I feel dumb for missing that in the manual. – Canageek Jul 8 '13 at 22:36
  • 1
    If you add -synctex=1' after %O %S, you can use forward and inverse search in your pdf viewer if it has that feature. – dustin Jul 8 '13 at 22:49
  • Noob question, but a couple of hours of Googling has led me nowhere: What do %O, %S and %B signify here? – Thriveth Jan 25 at 15:06
1

On Windows, latexmk looks for the file .latexmkrc in the directory specified by the USERPROFILE environment variable. This usually is C:\Users\[user name]\

If you add:

$pdf_mode = 1;

to this file, latexmk will default to create a PDF file.

23

You need $pdf_mode = 1; to enable pdf mode. The manual says it is the same as the option:

...

Equivalent to the -pdf-, -pdf, -pdfdvi, -pdfps options.

As of 17 August 2016, latexmk follows the XDG Base Directory Specification and looks for its configuration file in $XDG_CONFIG_HOME/latexmk/latexmkrc (or $HOME/.config/latexmk/latexmkrc if the $XDG_CONFIG_HOME environment variable is empty or unset). It will also check $HOME/.latexmkrc for compatibility with older versions.


Here is my complete .latexmkrc file:

$recorder = 1;
$pdf_mode = 1;
$bibtex_use = 2;
$pdflatex = "pdflatex --shell-escape %O %S";
$pdf_previewer = "start open -a preview %O %S";

add_cus_dep('glo', 'gls', 0, 'run_makeglossaries');
add_cus_dep('acn', 'acr', 0, 'run_makeglossaries');

sub run_makeglossaries {
  if ( $silent ) {
    system "makeglossaries -q '$_[0]'";
  }
  else {
    system "makeglossaries '$_[0]'";
  };
}

push @generated_exts, 'glo', 'gls', 'glg';
push @generated_exts, 'acn', 'acr', 'alg';
$clean_ext .= ' %R.ist %R.xdy';

For more latexmk example_rcfiles and extra-scripts :

http://ctan.org/tex-archive/support/latexmk/example_rcfiles

http://ctan.org/tex-archive/support/latexmk/extra-scripts

  • Dumb question: What is the Home directory on Windows? – Canageek Mar 19 '15 at 19:27
  • @Canageek: I do not know. Juan A. Navarro wrote this, but I agree. I only have bad childhood memories of trying to use windows for anything other than games and fun. The best solution(seen from my perspective) would be to install Linux(Ubuntu,...), OSX or some other Unix. I guess that this solution is too extreme for most windows users. – hpekristiansen Mar 19 '15 at 20:54
  • 1
    It would be, as a lot of software I need for work only runs on Windows, and my home P.C. is for gaming. – Canageek Mar 22 '15 at 23:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.