[OS X TeX] path name
Ross Moore
ross at ics.mq.edu.au
Sat Nov 19 01:02:50 CET 2005
Hi Peter, Friedrich, and others,
What a great thread this has turned out to be.
On 19/11/2005, at 4:54 AM, Peter Dyballa wrote:
>
> Am 18.11.2005 um 17:42 schrieb Friedrich Vosberg:
>
>> Can this code convert umlauts in \jobname too?
>>
>
> May be this way: echo "\jobname" | iconv -f UTF-8-MAC -t
> ISO-8859-15 ...
>
> But you see: you have to 'outsource' the conversion anymway ...
>
>
> Since iconv seems to work quite nice for you: can you try it with
> all the non-US ASCII characters? In one name, for example. Just to
> find the limits. Once they're known early they can't surprise you
> and maybe some means against it can be found ...
Here are some tips from my own explorations, guided by these ideas.
This works fine for me:
%% filename hällö.tex
%%
\documentclass{ltxdoc}
\usepackage{xspace}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{palatino}
\begingroup
\let\\\relax
\immediate\write18{%
pwd | iconv -f UTF-8-MAC -t ISO-8859-1 |
awk -F'\\n' '{print "\\gdef\\directorypath{" $1 "\\xspace}"}' >
tmpdatei.tex
}
\immediate\write18{%
echo "\jobname" | iconv -f UTF-8-MAC -t ISO-8859-1 |
awk -F'\\n' '{print "\\gdef\\thisfile{" $1 "\\xspace}"}' >
tmpfilei.tex
}
\catcode `\_ 12
\input{tmpdatei.tex}
\input{tmpfilei.tex}
\endgroup
\begin{document}
%\show\directorypath
%\show\thisfile
\directorypath
\thisfile
\end{document}
Some remarks:
1. The input-encoding could be [latin15] or any other, but then
you would make
the target (-t) of the iconv conversion commands match.
2. This also works with [utf8] but beware that you may still need
a conversion:
iconv -f UTF-8-MAC -t UTF-8
This is because for filenames, the Mac OS uses "combining
umlaut" at ^^cc^^88
e.g. the filename is: ha^^cc^^88llo^^cc^^88.tex
rather than the (cleaner ?) h^^e4ll^^f6.tex
\usepackage[utf8]{inputenc} handles the latter form, but not
the former.
3. My directory path has an _ in a filename.
This explains the need to \catcode `\_ 12 before reading
tmpdatei.tex .
You need this inside a \begingroup ... \endgroup , which also
has the \input
commands. This means that the TeX assignments need to be done
with the
(global) \gdef command, rather than LaTeX's \newcommand .
Other special characters (e.g. $ % ^ ~ @ # & ) in your file/
directory names
may be handled similarly. ( Braces { } are slightly trickier to
handle.)
4. You can un-comment the \show commands, to see (in the Console
window)
what you will be getting, before typesetting it.
And a word of warning.
Make sure that your inputenc.sty package and support files are
quite recent.
There have been significant changes since 2002, especially to UTF-8
support.
If \usepackage[utf8]{inputenc} causes ucs.sty to load, then it is
definitely
time to update.
>
> --
> Mit friedvollen Grüßen
>
> Pete
Hope this helps,
Ross
>
> Es ist in Chicago verboten, dort zu essen, wo es gerade brennt.
>
------------------------------------------------------------------------
Ross Moore ross at maths.mq.edu.au
Mathematics Department office: E7A-419
Macquarie University tel: +61 +2 9850 8955
Sydney, Australia 2109 fax: +61 +2 9850 8114
------------------------------------------------------------------------
------------------------- Info --------------------------
Mac-TeX Website: http://www.esm.psu.edu/mac-tex/
& FAQ: http://latex.yauh.de/faq/
TeX FAQ: http://www.tex.ac.uk/faq
List Archive: http://tug.org/pipermail/macostex-archives/
More information about the macostex-archives
mailing list