I'm new to LaTeX, investigating using it for some work projects. I'm using MiKTeX on Windows. My employer's locked-down network blocks the application's automatic installation function. I can take my laptop home and successfully install from there, but if I need a package in the middle of the day I'm stuck.

I am able to access the CTAN website and download the package files (.dtx or .ins?), but I don't know what do do with them. How can I do a manual package installation?


8 Answers 8


Firstly, check README files, available documentation of the package, perhaps the beginning of the .dtx file to get installation information.

Installing a package available as dtx/ins bundle:

  • Download the content of the package directory. dtx is the extension of a documented source file, ins is the extension of an installation file. Put this in a temporary directory.

  • If there's nothing differently written in a README file run LaTeX (or TeX) on the .ins file. This is best done using the command prompt (latex packagename.ins), but you may use your TeX editor in LaTeX/DVI-LaTeX mode or what it is called there. This would usually produce one or more files ending with .sty, perhaps some additional files. As you now have cls or sty files or the like, the remaining steps are the same like in the next alternative way:

Installing sty or cls files:

  • Create a new directory with the package name in your local texmf directory structure, see also Create a local texmf tree in MiKTeX. Why not to choose the main MiKTeX texmf tree see in Purpose of local texmf trees.

  • Copy the package files (*.sty, *.cls etc.) into this directory.

  • Make the new package known to MiKTeX: refresh the MiKTeX filename database. To do this, click "Start/ Programs/ MiKTeX 2.x/ Maintenance/ Settings" (or similar) to get to the MiKTeX options, click the button "Refresh FNDB". The installation is complete.

  • If you did not download the documentation already, you could get it by running pdfLaTeX or LaTeX on the .dtx file. Compile twice to get correct references.

Obtaining and installing packaged universal archives:

Perhaps you could get a file with the extension .tds.zip. Such files are archives fitting to your TeX directory structure. Open it, check the content structure. You could extract it to the right place. Also here, as after any installation, refresh the MiKTeX filename database.

Installing a font package

Installing a font package, especially for Type1 fonts, requires additonal steps. See Manual font installation.

Links with further information:

A different and very effective way, using a local repository:

(works only for all in the MiKTeX package repository available packages)

  • Use the MiKTeX net installer to download the complete MiKTeX repository to a USB drive.

  • On a MiKTeX system, choose this directory as the local package repository in the package manager.

  • Use this local repository for installation and updates.

  • You may update that local repository later using the net installer: it loads the database from the server, compares and downloads new or updated packages.

  • 2
    this looks like a great answer! I'm not ready to call it "answered" as I haven't been able to successfully follow the process yet. I'd been able to get all the packages I'm immediately needing from home. Semi-randomly choosing other packages to install leads to dependencies on other missing packages that seems like a goose chase. Some packages, like "epsf", seem to come directly with .sty files instead of .ins. I'm assuming I just copy those in place? It doesn't seem to be recognized as installed...
    – mbmcavoy
    Commented Aug 23, 2010 at 18:08
  • 2
    Copying .sty files would be sufficient. To get them recognized click "Refresh FNDB" or run mktexlsr or texhash at the command prompt. I'm not sure if the package manager shows them afterwards as installed but TeX would know about them.
    – Stefan Kottwitz
    Commented Aug 23, 2010 at 18:14
  • 12
    If you put packages in the main tree C:\Program Files\MiKTeX 2.8\texmf\tex\latex\packagename you must update the FNDB in admin mode if you have a multiuser setup. But my advice is to use the trees UserData, CommonData or even better a dedicated local tree for such additions. Packages in the main tree could get lost if one update to miktex 2.9. while one can easily attach a local tree to a new miktex version. The package manager will never show packages installed manually. And the update manager will ignore them too. Commented Aug 29, 2010 at 17:22
  • 4
    See my answer here tex.stackexchange.com/questions/1137/… Commented Jun 6, 2011 at 22:28
  • 1
    @StefanKottwitz: Thanks for your comprehensive answer. Can you please explain what you mean by your line (For tds.zip file struture)..."Also here, as after any installation, refresh the MiKTeX filename database...How is this refreshing done? Commented Jun 11, 2014 at 17:38

You can set up a local packages repository on your computer.

You need an internet access to download the MikTex packages.

My problem is that I can't succeed in setting up the internet proxy setup of MikTex in my system, so I have tried today the following solution with MikTex 2.9 and it worked with no problems; the on-the-fly package installation worked well too.

  1. Create the folder, for example c:\miktex_pkgs
  2. Copy the following file to the folder c:\miktex_pkgs (If you do not copy the files you will probably get some errors from MikTex. See http://bruceyf.wordpress.com/2008/05/07/miktexs-secret-local-package-repository/ for the details):





  1. You can copy any packages you may need from http://www.ctan.org/tex-archive/systems/win32/miktex/tm/packages to your local folder c:\miktex_pkgs

  2. At this point you have two options.

  • Update your MikTex system: from the Windows Start menu -> Programs -> Miktex 2.9 -> Maintenance (Admin) -> launch the program "Settings (Admin)"

    Go to the tab "Package repository" and choose the folder c:\miktex_pkgs

    Install packages...

  • Open a command prompt and navigate to c:\miktex_pkgs

    Use mpm.exe --install {name} to install packages. The {name} does not include any of the extensions (.cab, .tar.lzma, .tar.bz2, etc.).

  • 1
    This task is simplified by the »MiKTeX Net Installer«. It lets you download a complete MiKTeX System to a folder of your choice (including the database files). You can also keep this folder up to date by the installer and use it for updates to the system. Commented Apr 19, 2011 at 18:30
  • Thank you. My access to internet is via a proxy, have you ever try the "MiKTeX Net Installer" with a proxy? Commented Apr 19, 2011 at 18:36
  • No. So you have to try on your own. But you can determine the connection settings and insert a proxy. Commented Apr 20, 2011 at 8:25
  • The links you gave didn't work for me, but I'm found the needed files here: ftp.uni-erlangen.de/mirrors/CTAN/systems/win32/miktex/tm/… both miktex-zzdb1-2.9.tar.lzma and miktex-zzdb2-2.9.tar.lzma are there, and you don't need the readme file
    – Adi Ro
    Commented Oct 31, 2016 at 8:01
  • @AlessandroJacopson, Is there a link to download all packages at once? Thank You.
    – Royi
    Commented Dec 4, 2016 at 6:44

This is a simple and straightforward answer that worked for me.

As an example I'll take the listofitems package of CTAN and Miktex 2.9. We suppose the package is not available in the Miktex Package Manager, otherwise it can be directly installed with the manager.

  1. Create a local directory where you are gonna have all your manually installed packages. For example: C:\myextrapackages\tex\latex (the tex\latex folder and subfolder must be there, if not Miktex won't accept the directory as S. Kottwitz said above, but myextrapackage can be any path you choose.)
  2. Add the directory C:\myextrapackages\ to Miktex. Procedure: go to Miktex Settings -> select the tab Roots -> and click on the Add Button (more details here)
    Note: See that we have left out the \tex\latex folders from the added path. If you try to add the full path C:\myextrapackages\tex\latex to Miktex you may get an error.
  3. Download the .zip file with the package (in our case listofitems.zip available on the CTAN page)
  4. Unpack the contents of the .zip package file in a package folder with the same name (in our case listofitems.zip is unpacked in the folder listofitems).
  5. Copy the package folder into your already new added directory. (in this example the final result is the directory C:\myextrapackages\tex\latex\listofitems with all the unpacked files inside)

In the future, if you download more packages, you skip steps 1. and 2. And follow steps 3 through 5 using your available local directory (in this case C:\myextrapackages\tex\latex)

  1. Create a folder in your computer (for example, C:\MyUsepackage).

  2. Download the following two files at here.
    You might need to wait a minute for loading the list if you visit this website first time. Thanks for this post.

  3. Put these two files into the folder you created.

  4. Start->All Programs->MiKTeX 2.9->Maintenance (Admin)->Settings (Admin). Don't use "Search programs and files". It's an idiot!
    enter image description here enter image description here

  5. Switch to the "Packages" label and press "Change" button.
    enter image description here

  6. Select "Packages shall be installed from a directory" and browse the folder you created.
    enter image description here enter image description here

  7. Wait a minute.
    enter image description here

  8. Now you just download the usepackages you need from the archive and place them in the folder C:\MyUsepackage. They are all xxx.tar.lzma files. You don't have to extract them if you use WinEdt. It will do that when it is compiling your tex file.

  9. Note that sometime the usepackage you included has a different name from the xxx.tar.lzma file. You can know the xxx.tar.lzma file's name in the warning message. enter image description here


Have you tried to log into your admin account and then - using the shortcuts in the start menu - to go to the package-manager? There you can manually search for the packages which you access using the \usepackage-command and install them by simply clicking onto the plus on the top left. Important note: Always open the package manager using a right click and choose "Open as admin".

For me this always works out...

  • 2
    The keyword of the question is manually.
    – percusse
    Commented Jul 9, 2015 at 9:44
  • Do you mean to use the Windows admin account? I do have admin privileges, but the problem in this case isn't that I don't have rights on my PC, but that the network firewalls were blocking the automatic installer, I could download packages manually, but could not figure out how to install so I could use them.
    – mbmcavoy
    Commented Jul 9, 2015 at 20:39

I give here my small personal contribution concerning manual installation of packages in MiKTeX (Windows).

As I find very annoying when there is an error 503 or 404 with the internet connection when trying to install a package (package manager - network update).

My environments:

My whole work is done in the great Debian Linux environment. In fact I rarely use Windows because of its alarming security holes and vulnerabilities. When there is no Debian Linux available and I am unfortunately forced to use Windows, then I do my Latex work using the USBTEX (Miktex + Texmaker) in Windows environment.

I download the target package from the CTAN repository.

The package xifthen is used as an example.

In Windows:

Directories used:

All the work is done in a USB stick. USBTEX is installed in this USB stick in the directory:


My work directory:


How to install a new package from CTAN if the internet connection is not working or I am getting server connection errors 404 or 503:

  1. MiKTeX - Missing package error during Texmaker compilation: error: LaTeX Error: Filexifthen.sty' not found.`

  2. Using your browser download package xifthen.tar.lzma from: http://www.ctan.org/tex-archive/systems/win32/miktex/tm/packages

  3. Using 7-zip open the archive xifthen.tar.lzma and enter xifthen.tar.lzma\xifthen.tar\texmf\

  4. Copy (just select all and drag) all directories like:




    when asked if "Do you still want to merge this folder" answer "Yes" and if asked to replace files say "Copy and Replace" to replace the old files.

  5. Then run (Windows double click and after give administrator user/password):


    In menu: General> click on "Refresh FRDB" to add the copied files to database. The files will look as newly installed.

  6. Now you can compile again in Texmaker (>tools>quick build). There will be no error concerning this missing package.

  7. Please follow the same procedure to install other missing packages.

I hope it will help other users who are having problems with missing packages and would like to perform a manual package installation in MiKTeX (Windows).


A similar yet a little bit different way than Alessandro Jacopson's answer is the following:

  1. Use the miktex setting (user and/or admin) program installed with the basic MikTex distribution to set "Install missing packages on-the-fly" to "Ask me first".
  2. Create a miktex local repository as in Alessandro Jacopson's answer, i.e., create a folder with appropriate name, then place

    miktex-zzdb1-2.9.tar.lzma miktex-zzdb2-2.9.tar.lzma

from CTAN in the folder.

  1. Compile a .tex file. If anything used in the file is missing, a dialog window will prompt up to ask you if you'd like to install the first missing package.

  2. Go to CTAN and download said package into the local repository where you have put miktex-zzdb1-2.9.tar.lzma and miktex-zzdb2-2.9.tar.lzma.

  3. Choose your local repository in the dialog window from step 3. Then click install in the dialog window.

  4. Repeat steps 4-5, if any other packages are missing.

This way, you could install needed packages on-the-fly, even on a computer that can only access Internet via a navigator. There is also no need to download everything from CTAN which can be a little challenging to do, if internet access is very limited. Potentially you may need to install quite a few packages, but every package only needs to be installed once. The steps for installing on-the-fly are also relatively short.

I have had to do this a few times, since my company uses a proxy script to control internet access, and MikTex does not allow this kind of proxy.

One thing that you need to look out for is that the two files miktex-zzdbxxxxxx are sometimes updated, and therefore your local repository wouldn't work any more. So if the trick worked before, and suddenly stopped working, it's probably because you have to update (manually download) these two files again.


Quick and Dirty Complete Install

At home. Download the latest standalone setup from miktexsetup-*.zip and extract it on your flash drive, say D: drive.

The download packages on your USB flash drive in D:\latexpacks with:

D:\miktexsetup_standalone.exe --verbose --local-package-repository=D:\latexpacks --package-set=complete download 

At the office. Install from your local repo with:

D:\miktexsetup_standalone.exe --verbose --local-package-repository=D:\latexpacks --package-set=complete install 

Smaller Setups

The complete installation is huge, so you can replace essential or basic in the --package-set=complete argument above. At this point you might need a package, which is not in the essential or basic set, but still you do not want to download the complete set. Head on CTAN repository and manually download the individual package/s to your USB D:\latexpacks at home. Once at the office, use the MiKTeX mpm.exe utility (should be already in your PATH) to install your package list (say a0poster and a4wide packages):

mpm.exe --repository=D:\latexpacks --install=a0poster,a4wide

Notes be aware of the --admin switch and other option for both mpm and miktexsetup_standalone utilities.

Portable MiKTeX

The Portable Edition could be what you are looking for. A distro that can run straight from your USB stick. Of course, because its folder is portable, nothing prevents you to move it on your desktop for extra speed and back on the stick when home updates are needed.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .