[XeTeX] XeTeX Digest, Vol 54, Issue 3

Peter Dyballa Peter_Dyballa at Web.DE
Wed Sep 3 23:35:46 CEST 2008


Am 03.09.2008 um 20:57 schrieb Richard Cobbe:

> Do you find this useful for applications other than testing or
> experimenting with the various (La)TeX engines?

Yes! It combines useful default settings. When they're united in one  
file I don't need to search that much. It also shows how to  
distinguish between different LaTeX engines.

I am not sure yet whether the \def's for recyclable data is a good  
idea. 8-bit characters are a problem since they're recorded in the  
file as UTF-8, i.e., a set of three 8-bit characters. This can cause  
problems when used in preamble or body. Since I don't understand this  
I need more and better tests.

%% -*- mode: LaTeX; coding: utf-8; -*-
\documentclass[a4paper,11pt]{article}
\usepackage{ifpdf,ifxetex,graphicx}
\usepackage[ngerman]{babel}
\def\author{Me!}							% central place for
\def\title{Pretty Useful Article}					% recyclable data
\def\Betreff{A word with an \"Umlaut}					% \<accent> style needed
\def\Schlagworte{key, word}
%%%%%%%%%%%%%%%%%%%%%%%% XeTeX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%
\ifxetex
      \immediate\write16{==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}
%    \DeclareGraphicsExtensions{.pdf,.png,.jpeg,.bmp}			% formats  
with xdvipdfmx
%    \DeclareGraphicsExtensions{.mac,.pict,.psd,.sgi,.tga,.tif,.gif}	 
% additionally with xdv2pdf
%   \usepackage[unicode]{hyperref}
     \usepackage[unicode,pdftitle={\title},pdfauthor={\author}] 
{hyperref}
     \pdfstringdef{\Subjekt}{\Betreff}					% "translation" needed
%    \hypersetup{pdfauthor={Of course me!}}
     \special{pdf: docinfo <<
	/Keywords	(\Schlagworte)
	/Subject	(\Subjekt)
         >>}
\else
   \immediate\write16{==XeTeX nyet==}
   \usepackage[utf8]{inputenc}
%%%%%%%%%%%%%%%%%%%%%%%% pdfTeX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%
   \ifpdf
     \immediate\write16{==\jobname: Bonjour, PDF!==}
     \usepackage{cmap}
%    \DeclareGraphicsExtensions{.pdf,.png,.jpeg}			% allowed graphics  
formats
     \usepackage[activate={true,nocompatibility}]{microtype}
%    \usepackage[protrusion=true,expansion=true]{microtype}
     \usepackage{lucida}
%    \usepackage[unicode]{hyperref}
     \usepackage[unicode,pdftitle={\title},pdfauthor={\author}] 
{hyperref}
     \pdfstringdef{\Angabe}{\Schlagworte}				% "translate" non-ASCII
     \pdfstringdef{\Subjekt}{\Betreff}					% characters
     \pdfinfo
       { /Keywords	(\Angabe)
	/Subject	(\Subjekt)
     }
     \makeatletter
     \@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}
   \else
%%%%%%%%%%%%%%%%%%%%%%%% DVI LaTeX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%
     \immediate\write16{==¡Hola \jobname: DVI!==}
%    \DeclareGraphicsExtensions{.ps,.eps}		% allowed graphics formats
     \usepackage[protrusion=true,expansion=false]{microtype}
     \usepackage{times}
   \fi
%%%%%%%%%%%%%%%%%%%%%%%% non-XeTeX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%
   \usepackage[T1]{fontenc}
   \usepackage[full]{textcomp}
   \usepackage[portrait,nohead]{geometry}
   %%%%\renewcommand{\sfdefault}{pag}
   %%%%\renewcommand{\rmdefault}{ppl}
   %%%%\renewcommand{\ttdefault}{mcr}
   \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{%
     \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

%\nofiles
%\listfiles
%\enlargethispage{5cm}
%\thispagestyle{empty}

\begin{document}

   At least some well-known text: \Betreff!

\end{document}


--
Greetings

   Pete

Don't force it; get a larger hammer.
				– Anthony's Law of Force



More information about the XeTeX mailing list