Difference between revisions of "Mac OS X"

From Inkscape Wiki
Jump to navigation Jump to search
m (→‎Installing Inkscape: Added LaTex specific solution for invoking Inkscape from command line.)
m (→‎LaTex Specific Solution: Slight modification to match referenced document exactly.)
Line 52: Line 52:
   {inkscape -z -D --file=#1.svg %
   {inkscape -z -D --file=#1.svg %
   --export-pdf=#1.pdf}%
   --export-pdf=#1.pdf}%
   \includegraphics{#1.pdf}%
   \input{#1.pdf_tex}%
  }
  }
to use the full Inkscape path. This is necessary when compiling LaTex through editors that don't see the aliases defined in `~/.profile`. The necessary preamble commands are then:
to use the full Inkscape path. This is necessary when compiling LaTex through editors that don't see the aliases defined in `~/.profile`. The necessary preamble commands are then:
Line 65: Line 65:
   {/Applications/Inkscape.app/Contents/Resources/bin/inkscape -z -D --file=#1.svg %
   {/Applications/Inkscape.app/Contents/Resources/bin/inkscape -z -D --file=#1.svg %
   --export-pdf=#1.pdf}%
   --export-pdf=#1.pdf}%
   \includegraphics{#1.pdf}%
   \input{#1.pdf_tex}%
  }
  }



Revision as of 11:24, 4 April 2014

This page is added as mini-TOC of Mac information on this Wiki, and a scratch pad for Mac stuff awaiting a home of its own.

Installing Inkscape

Inkscape for Mac OS X is an X client: it runs under the X Windows System. You will need an X Windows Server installed for it to work. For 10.4.x users, X11 can be installed from your installation DVD. For 10.3.x users, you can get Apple's X Server, or use XDarwin.

Since version 0.43, the Inkscape deliverable has been a disk image with a properly packaged Mac OS X Bundle -- Inkscape.app. You can simply drag the Inkscape icon to where is most convenient for you, usually your Applications folder or possibly your Desktop. This hardly warrants the grandiose title or style of "installing", but it does mean that un-installing is simple and complete -- just drag the icon to the Trash when you are finished with Inkscape and no longer want it.

From version 0.44, the disk image will have an alias to your system-wide Applications folder, allowing you to very easily drop the Inkscape icon into the most useful place for it, and open that folder so that you can start Inkscape.

Otherwise start Inkscape by double clicking one of its documents and it will thereafter be available to you in the Dock and from the "Recent Items" menu-item.

Inkscape command line

For many purposes you may need to execute Inkscape from the command line. For example within a LaTeX document you can update the pdf and pdf_tex files with your maths with the following command (see InkscapePDFLaTeX.pdf):

inkscape -z -D --file=image.svg --export-pdf=image.pdf --export-latex

The Inkscape script is supposed to change to Inkscape's Resources directory

cd /Applications/Inkscape.app/Contents/Resources/bin 

in order to get the correct environments for Inkscape as well as for native (Apple) Python.

But if you simply made a symbolic link to /usr/local/bin (which is in your PATH) with:

sudo ln -s /Applications/Inkscape.app/Contents/Resources/bin/inkscape /usr/local/bin

the command invoked by the default Inkscape script (0.48.1):

$ dirname $0

might not move to Inkscape's Resources directory but to /usr/local/bin.

From a terminal, even if

$ which inkscape

refers to /usr/local/bin/inkscape, a command like:

$ inkscape -z -D --file=image.svg --export-pdf=image.pdf --export-latex

may work while:

$ /usr/local/bin/inkscape -z -D --file=image.svg --export-pdf=image.pdf --export-latex

may not work because of a different interpretation of $0 and dirname. Tricky and unsolved in the general case...

Alias Solution

The following can be added to your `~/.profile` file to create an alias that is expanded into the full Inkscape path:

 alias inkscape="/Applications/Inkscape.app/Contents/Resources/bin/inkscape"

You must reload your profile to see the changes:

 $ source ~/.profile

LaTex Specific Solution

For the specific case of updating the pdf and pdf_tex files from LaTex by invoking Inkscape from command line (see InkscapePDFLaTeX.pdf), the easiest solution might be to alter the necessary LaTex preamble commands from:

\newcommand{\executeiffilenewer}[3]{%
 \ifnum\pdfstrcmp{\pdffilemoddate{#1}}%
 {\pdffilemoddate{#2}}>0%
 {\immediate\write18{#3}}\fi%
}

\newcommand{\includesvg}[1]{%
 \executeiffilenewer{#1.svg}{#1.pdf}%
 {inkscape -z -D --file=#1.svg %
 --export-pdf=#1.pdf}%
 \input{#1.pdf_tex}%
}

to use the full Inkscape path. This is necessary when compiling LaTex through editors that don't see the aliases defined in `~/.profile`. The necessary preamble commands are then:

\newcommand{\executeiffilenewer}[3]{%
 \ifnum\pdfstrcmp{\pdffilemoddate{#1}}%
 {\pdffilemoddate{#2}}>0%
 {\immediate\write18{#3}}\fi%
}

\newcommand{\includesvg}[1]{%
 \executeiffilenewer{#1.svg}{#1.pdf}%
 {/Applications/Inkscape.app/Contents/Resources/bin/inkscape -z -D --file=#1.svg %
 --export-pdf=#1.pdf}%
 \input{#1.pdf_tex}%
}

See

Links