[OS X TeX] Macintouch report on TeX versus Word

Peter Dyballa Peter_Dyballa at Web.DE
Sat Jan 24 19:14:10 EST 2009


Am 24.01.2009 um 03:26 schrieb Jason Davies:

> Finally -- people have mentioned switching to XeTeX. How easy is  
> that for someone who knows only some fairly basic LaTeX?


It's easy. On MS PCs you need to find a utility that gives you the  
font names, on Linux you need libfontconfig and the command line  
utilities fc-cache/fc-list/fc-match or use another application to  
retrieve font names, and on Mac OS X the Font Book application can  
give you the names. Then you just swap the LaTeX preamble with a  
XeLaTeX preamble (maybe you need to switch from babel to polyglossia,  
which I have not tried yet) and start to write and save in UTF-8. Or  
UTF-16. (Both are *text* encodings. The font encoding is simply named  
Unicode.) Ahh, there is a bug: XeTeX or the xdvipdfmx output driver  
do not follow the settings done with the geometry package,  
particularly in landscape or in non-letter or non-ISO A4 formats –  
or for books. Even Adobe products fall into this pit. There are  
differences in the way the PDF information fields are filled – if  
you want to do it with \special's; the consistent way is \hypersetup 
{}. Ah, before I forget: not all PSTricks work; maybe TikZ/PGF  
(beamer) too only works partly.

Here is the template of a preamble that works both for LaTeX  
(producing PDF or DVI, maybe the latter needs a bit more regard, but  
I gave it up so long ago…) and for XeLaTeX (correct my font choices,  
the usual suspects Times, Helvetica, & Courier can be OK):


%%!TEX TS-program=xelatex	-*- mode: LaTeX; coding: utf-8; -*-
%%!TEX encoding=UTF-8 Unicode
%
%	Time-stamp: <2009-01-25 01:07:18 pete>
%
\documentclass[a4paper,11pt]{article}
\usepackage{ifpdf,ifxetex,graphicx}
%\usepackage[ngerman]{babel}
\usepackage 
[landscape,nohead,ignoreheadfoot,right=3.75mm,bottom=12.5mm,top=8.75mm,n 
omarginpar,verbose]{geometry}
\usepackage[svgnames]{xcolor}
\def\author{Peter Dyballa}
\def\Schlagworte{LaTeX, XeLaTeX, UTF-8, geometry, hyperref}
\ifxetex
   \def\title{Wörtér mït Ümläûtèñ}				% Does not translate in  
pdfTeX!
   \def\Betreff{Ȟÿṗéṛŗèḟ ŧêşẗ ẘïťĥ  
ăčçëńṭṣ}			% Does not translate in pdfTeX!
\else
   \def\title{W\"ort\'er m\"it \"Uml\"a\^ut\`e\~n}
   \def\Betreff{H\"yp\'err\`ef t\^est w\'ith ac\c{c}\"e\'nts}	% OK  
for PDFDocEncoding, but not the next!
%  \def\Betreff{\v{H}\"y\.p\'e\d{r}\c{r}\`ef \b{t}\^e\c{s}\"t \r{w}\'i 
\v{t}\^h \u{a}\v{c}\c{c}\"e\'n\.t\.s}
\fi
%U\usepackage[unicode,colorlinks,breaklinks,bookmarks,
%U	pdfauthor={\author},pdftitle={\title},pdfsubject= 
{\Betreff},pdfkeywords={\Schlagworte}]{hyperref}
\usepackage[colorlinks,breaklinks,bookmarks,pdfauthor={\author},debug] 
{hyperref}
\pdfstringdef{\Titel}{\title}
\pdfstringdef{\Subjekt}{\Betreff}
\pdfstringdef{\Keywords}{\Schlagworte}
\hypersetup{
     pdftitle=\Titel,
     pdfsubject=\Subjekt,
     pdfkeywords=\Keywords
   }
\ifxetex
      \immediate\write16{==We're with XeTeX==}
   \usepackage[no-math]{fontspec}
   \usepackage{xltxtra,xunicode}
   \defaultfontfeatures{Mapping=tex-text}
%  \setmainfont{Lucida Bright}
   \setromanfont{Lucida Bright}
   \setsansfont{Lucida Sans}
   \setmonofont{Lucida Sans Typewriter}
%  \newfontface\textsl[RawFeature={slant=0.194}]{Lucida Bright}
%    \DeclareGraphicsExtensions{.pdf,.png,.jpeg,.bmp,.eps}		% formats  
with xdvipdfmx
%    \DeclareGraphicsExtensions{.mac,.pict,.psd,.sgi,.tga,.tif,.gif}	 
% additionally with xdv2pdf, less eps!
%    \special{pdf: docinfo <<
%	/Keywords	(\Schlagworte)
%	/Subject	(\Subjekt)
%       /Title		(\Titel)
%        >>}
\else
   \immediate\write16{==We're without XeTeX==}
   \ifpdf
     \immediate\write16{==\jobname: Bonjour, PDF!==}
     \usepackage{cmap}
%    \DeclareGraphicsExtensions{.pdf,.png,.jpeg}			% in pdfTeX  
allowed graphics formats
     \usepackage[activate={true,nocompatibility}]{microtype}
%    \usepackage[protrusion=true,expansion=true]{microtype}
     \usepackage{lucida}
     \makeatletter							% following code needs hyperref
     \@ifundefined{pdffilemoddate}{%
        \PackageError{sourcetime}{%
          pdfTeX >= 1.30.0 required%
        }%
        \let\pdffilemoddate\@gobble
     }{}%
     \newcommand*{\SourceFile}[1]{%
       \edef\@SourceFileDate{\pdffilemoddate{#1}}%
       % empty in case of errors, but don't harm in next comparison
       \ifnum\pdfstrcmp{\@SourceFileDate}{\@CurrentSourceFileDate}>0 %
         \let\@CurrentSourceFileDate\@SourceFileDate
         \expandafter\@ParseDate\@SourceFileDate\@nil
         \hypersetup{%
           pdfcreationdate={\@SourceFileDate},%
           pdfmoddate={\@SourceFileDate}%
         }%
         \PackageInfo{sourcetime}{%
           Using file `#1'%
         }%
       \fi
     }
     \newcommand*{\@CurrentSourceFileDate}{}
     \expandafter\def\expandafter\@ParseDate\detokenize{D:} 
#1#2#3#4#5#6#7#8{%
       \year=#1#2#3#4\relax
       \month=#5#6\relax
       \day=#7#8\relax
       \@ParseTime
     }
     \def\@ParseTime #1#2#3#4#5\@nil{%
       \time=\numexpr #1#2 * 60 + #3#4\relax
     }
     \makeatother
     \SourceFile{\jobname.tex}
%    \pdfinfo
%      {
%	/Title		(An UTF-8 LaTeX Example)
%	/Author		(Peter Dyballa)
%	/Subject	(ISO Latin-1 and ISO Latin-9 characters)
%	/Keywords	(LaTeX, UTF8, ISO, Latin-1, Latin-2, Latin-9, ISO 8859,  
LICR)
%    }
   \else
     \immediate\write16{==¡Hola \jobname: DVI!==}
%    \DeclareGraphicsExtensions{.ps,.eps}				% in dvips allowed  
graphics formats
     \usepackage[protrusion=true,expansion=false]{microtype}
     \usepackage{times}
   \fi
   \usepackage[utf8x]{inputenc}
%  \usepackage[utf8]{inputenc}
   \usepackage[full]{textcomp}
%  \usepackage[LUC,T1]{fontenc}
   \usepackage[T1]{fontenc}						% other font encodings: T2A, T2B,  
T2C, X2, LCY, OT2 (LY1, T5)
   %%%%\renewcommand{\sfdefault}{pag}
   %%%%\renewcommand{\rmdefault}{ppl}
   %%%%\renewcommand{\ttdefault}{pcr}
   \makeatletter
   \newcommand*\TeX at logo@spacing[6]{%
     \def\xxt at kern@Te{#1}%
     \def\xxt at kern@eX{#2}%
     \def\xxt at lower@e{#3}%
     \def\xxt at kern@La{#4}%
     \def\xxt at kern@aT{#5}%
     \def\xxt at kern@eL{#6}%
   }
   \DeclareRobustCommand\XeTeX{%						make a bit of XeTeX available  
outside ...
     \leavevmode
     \smash{%
       X\lower\xxt at lower@e
       \hbox{\kern\xxt at kern@eX
         \setbox0=\hbox{E}\dimen0=\ht0\advance\dimen0by\dp0%
         \reflectbox{E}%
      }\kern\xxt at kern@Te\TeX}}%
   \DeclareRobustCommand\XeLaTeX{%
     \leavevmode
     \smash{%
       X\lower\xxt at lower@e
       \hbox{\kern\xxt at kern@eX
         \setbox0=\hbox{E}\dimen0=\ht0\advance\dimen0by\dp0\relax
         \reflectbox{E}%
     }\kern\xxt at kern@eL\LaTeX}}
   \TeX at logo@spacing{-0.15em}{-0.125em}{0.5ex}{-0.36em}{-0.12em} 
{-0.13em}
   \makeatother
\fi

\begin{document}
Some example text ...
\end{document}

%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:


--
Greetings

   Pete

Government is actually the worst failure of civilized man. There has  
never been a really good one, and even those that are most tolerable  
are arbitrary, cruel, grasping and unintelligent.
				– H. L. Mencken






More information about the MacOSX-TeX mailing list