By default, MiKTeX is set up for all users to the folder

C:\Program Files\MiKTeX 2.9
However, packages added on-the-fly go to the folder


(in case of Windows 7) specific for the current user.

As to me, it was the origin for subtle errors when I tried to update my MiKTeX installation. Going to Start, All Programs, MiKTeX 2.9, the menu shows Maintenance and Maintenance (Admin) as submenus. I thought I could ignore Maintenance and only use the Update (Admin) utility from Maintenance (Admin). It appeared however that the packages installed on-the-fly are not updated by Update (Admin). As a result, updated packages sometimes conflicted with non-updated packages. This especially is a pity since experimental packages, such as l3kernel, l3packages, fontspec, polyglossia, unicode-math, sometimes conflict even if they are all updated [I have this case right now!].

So my question is: What is the best practice for installing and using MiKTeX?

I am the only user on all my computers, but I used to accept the default method of installing MiKTeX (for all users) since once I tried to install MiKTeX in the for me only mode but met some troubles (don't remember exactly which ones).

  • 1
    I would say the best practice is to install an entire distribution (and forego an on-the-fly or as-needed installation): (i) I doubt whether it will slow down compilation when searching for the few packages that you may use (out of everything); (ii) Hardware space nowadays is not a concern any more compared to pre-2000's (say); and (iii) Most people have enough bandwidth to accommodate a full installation without additional expenses with their service provider. The aforementioned items even hold throughout the lifetime of the distribution. – Werner Sep 27 '11 at 5:19
  • 1
    @Werner: I would agree with you if more than 2000 LaTeX packages available to the date be in equally supported state. Many packages do the same, eg, caption, caption2, xcaption. Thus, installing only packages on my choice give me feeling (perhaps, deceptive) that I keep my appartment clean. – Igor Kotelnikov Sep 27 '11 at 5:30
  • Well played. My desk is pretty cluttered as is. :-| – Werner Sep 27 '11 at 5:32
  • Please don't use blockquote markup for emphasis. Use bold or italic instead, if you deem it necessary. We like to keep markup semantic here, just like in LaTeX itself. – doncherry Sep 27 '11 at 8:13
  • I went over your question and tried to improve it in some respects, hope you don't mind. As usual, feel free to revert any of my edits if you disagree with them. Furthermore, I'd still be interested in an answer to my comment on Ulrike's answer below. – doncherry Nov 15 '11 at 17:58

If you choose "Install missing packages on-the-fly: Ask me first", MiKTeX will ask you each time whether a package should be installed for all users or only for you. That way you can install all packages into the main MiKTeX admin folder. enter image description here

  • 1
    This doesn't work for me. When the "Package Installation" dialog box comes up, the only option under "The package will be installed for:" is my own user name. I imagine this has something to do with permissions: When I'm running MiKTeX as a local user, how would I have permission to install the package in the texmf tree where I don't have write permission? – Ari Brodsky Jul 2 '13 at 6:04

I'm always installing a basic MiKTeX in my user account "only for me". This works fine even if the user account has only restricted rights. There is no need to give this user admin rights or something similar. I simply log-in in the user account and install MiKTeX. Naturally the main texmf tree must be installed in a folder where the user account has the right to write.

Imho a single user installation is the best for a lot of people. Many don't understand that in a multi user installation user settings can overwrite admin settings and that quite often you must manage your installation as admin and as user. About 90% of problems with map-files e.g. are due to misunderstandings regarding user/admin settings.

I'm using the basic installation because it is faster (some packages like cm-super can take a lot time to install), when I upgrade I prefer to import all the other packages from the previous MiKTeX on my machine. Also there is less danger that the download or installation fails if the connection breaks or if one package is defective. At last: a basic installation keeps the list of packages in the update manager short as I see only updates for package I actually use.

  • 1
    What about selection of languages? Recent versions of basic setup are preconfigured to take all available languages. I suspect that this makes the compilation slower though the effect might be negligible on moderm computers. – Igor Kotelnikov Sep 27 '11 at 10:55
  • I personally have selected only a few languages. I don't see any reason to blow up my formats with a lot of patterns I never use even if it doesn't slow down compilation (which I don't know). – Ulrike Fischer Sep 27 '11 at 11:13
  • 1
    What address you are installing MiKTeX into? MikTeX installer does not provide default address when installing in the "for me only" mode. If you are taking C:\Program Folder (default for admin mode) then Admin utilities (Settings, Package manager, Update) run properly only if you right click corresponding Start menus and choose Run as Administrator. If you are taking some address outside C:\Program Folder this increases security risk since Windows specially cares C:\Program Folder to prevent occasional deletion or invection of executables inside that folder. – Igor Kotelnikov Oct 2 '11 at 5:49
  • I'm normally using a non-standard folder. Something like D:\miktex. – Ulrike Fischer Oct 2 '11 at 15:14
  • If you use C:\Program Folder and you're required to run the maintenance programs as an admin, you can right-click the tools in the start menu (e.g. "Update"), choose "Properties", "Compatability" and check "Run as Administrator". This only has to be done once. I strongly suggest switching to Ulrike's answer as the accepted answer, unless there's a specific reason you still prefer Ignasi's solution, which would be good to hear. – doncherry Oct 11 '11 at 12:36

I mainly use Update(Admin) but from time to time use the package manager to clean installed on-fly packages from my user folder and install again as admin user those which I want to keep.

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.