Software Engineer

Author: Matthias Schoettle (Page 6 of 8)

Reducing file size of a PDF on Mac OS

The file size of PDFs can become quite large, especially when scanning documents or documents containing images. Instead of sending large files, it is almost always recommended to reduce the file size. To do that, there are several ways. For example, there is an app called PDF Squeezer in the Mac App Store (€3.59 or $3.99).

The same functionality can be achieved using Quartz filters in the ColorSync Utility. There is already one called “Reduce File Size” but it might lead to a blurry PDF. You can copy this filter and adjust the settings. However, I found custom filters in the Apple Support Community that work quite well.

  • Download the filters and unpack them.
  • Move the filters to ~/Library/Filters
  • Open your PDF with ColorSync Utility
  • In the bottom, choose the appropriate filter. There are several options starting with Reduce to …
  • Click Apply
  • If you are satisfied with the result, save the file under a different file name (File > Save As).

Alternatively, you can place them into /Library/PDF Services/ instead. Besides the fact that the filters will be available to all system users, when exporting PDFs in Preview, you can select a filter directly in the dropdown under Quartz Filters.

If the filters don’t work perfectly for your use, you can adjust the settings within the ColorSync Utility.

The original creator of the filters to be credited seems to be Jerome Colas according to this GitHub repository.

Update December 2017: Uploaded the zip file to my own server, since the original link became unavailable.

LyX: Installing unknown document classes

If you either received a LyX file that uses a document class unknown to your LyX installation or you would like to create a document using one of the options in the settings dialog, you need to install that document class.

This description is for Mac OS based on the latest version of MacTeX (as of May 28th 2012 this is MacTeX-2011), but should work with any version.

First, you should find out where the document class package should be put. In a previous version, I mentioned to put it in /usr/local/texlive/<version>/texmf-dist/tex/latex/ but this approach is not recommended, because it makes it only available for the current version. There are two better options that allow you to install a new version and keep all your custom packages: You can either make it available to all users or just your user.

  • All users: /usr/local/texlive/texmf-local/tex/latex/
  • Just you: Run kpsewhich -var-value=TEXMFHOME in Terminal. This will show you your personal TEXMF home directory (e.g., ~/Library/texmf). In case it doesn’t exist, you need to create it, as well as the sub-directories, to get the path ~/Library/texmf/tex/latex/

Now that you know where to put it, follow these steps:

  1. Download the desired document class package.
  2. Put the folder with the downloaded document class package into the path retrieved above. You can use Finder to do that. In Finder go to Go > Go to Folder and type in the path. You need to authenticate yourself in order to do that.
  3. In Terminal execute the following command: sudo texhash
    You will be required to enter your password.
    In case texhash cannot be found you have to go to /usr/local/texlive/<version>/texmf-dist/bin/ and execute sudo ./texhash
    Note: You can make sure it worked by executing kpsewhich classname.cls which will give you the path to that package class.
  4. In LyX do Reconfigure (in the menu bar LyX > Reconfigure)
  5. Restart LyX and the document class should be available now

On Windows (using MikTeX) this should work quite easy using the MikTeX Package Manager.

Update 28.03.2013: Fixed path to LaTeX packages (Thanks, Mathias!)
Update 05.04.2013: Updated description with better location for custom document classes.

PostgreSQL accepts any or no password when connecting

When connecting to the database with the postgres user I realized it accepts any password or no password even though the user has a password set. I don’t know if this happens also when using the installer to install PostgreSQL, in my case I used initdb to set it up. I remember it mentioned something regarding “trust” after setting it up but didn’t take much notice until I realized it accepts any password.

In pg_hba.conf it adds all local connections to be trusted which means connecting from the same host doesn’t need to authenticate.

host    all             all             127.0.0.1/32            trust

If you don’t like that just change it to another method, for example md5.

Using multiple SVN clients with the svn+ssh protocol and a putty profile

When trying to access a SVN repository using the svn+ssh protocol with TortoiseSVN it might happen that the password prompt shows up endless times. One suggested solution is to set up a profile in putty and use a private key for authentication for ssh there. Then in TortoiseSVN the host name just has to be changed to the name of the profile, e.g. svn+ssh://username@puttyProfileName/path/to/repo.

This works well until trying to reuse the stored SVN information of your local working copy in another client, for example your IDE. In my case I am using Eclipse with the Subclipse plug-in and my first approach didn’t work with Subclipse, which meant I couldn’t do any team actions from Eclipse when the projects where checked out using TortoiseSVN. If you are only using either of them it works fine.

The solution is quite simple: Rename the putty profile to the actual hostname and use the regular URL for the repository. That’s it. If you’ve used the putty profile name before just use relocate in TortoiseSVN to change the repository URL. TortoiseSVN will then still use the putty profile with the private key to authenticate. Other clients like Subclipse see it as an actual hostname and are able to use that.

« Older posts Newer posts »

© 2024 Matthias Schoettle

Theme by Anders NorenUp ↑