1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%% Digits \0\1\2\3\4\5\6\7\8\9
%% Exclamation \! Double quote \" Hash (number) \#
%% Dollar \$ Percent \% Ampersand \&
%% Acute accent \' Left paren \( Right paren \)
%% Asterisk \* Plus \+ Comma \,
%% Minus \- Point \. Solidus \/
%% Colon \: Semicolon \; Less than \<
%% Equals \= Greater than \> Question mark \?
%% Commercial at \@ Left bracket \[ Backslash \\
%% Right bracket \] Circumflex \^ Underscore \_
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
%\iffalse
%
% (c) copyright 2021 A Syropoulos
%
% This program can be redistributed and/or modified under the
% terms of the LaTeX Project Public License Distributed from
% http://www.latex-project.org/lppl.txt; either
% version 1.3c of the License, or any later version.
%
% This work has the LPPL maintenance status `maintained'.
%
% Please report errors or suggestions for improvement to
%
% Apostolos Syropoulos (asyropoulos@yahoo.com)
%
%\fi
% \CheckSum{15}
% \iffalse This is a Metacomment
%
%<xesoul, >\ProvidesFile{xesoul.sty}
%
%<xesoul, > [2021/02/23 v1.0 Package `xesoul.sty']
%
% \begin{macrocode}
%<*driver>
\documentclass{ltxdoc}
\GetFileInfo{xesoul.drv}
\usepackage{xltxtra}
\usepackage{hyperref}
\begin{document}
\setmainfont[Mapping=tex-text,Script=Greek,
SmallCapsFeatures={Contextuals=Alternate}]{Universal Modern}
\setmonofont{UM Typewriter}
\setsansfont[Mapping=tex-text]{GFS Neohellenic}
\DocInput{xesoul.dtx}
\end{document}
%</driver>
% \end{macrocode}
% \fi
%\StopEventually{}
%\MakeShortVerb{\|}
%\title{\textsf{xesoul}: Using the \textsf{soul} package with \XeLaTeX}
%\author{Apostolos Syropoulos\\
% Xanthi, Greece\\
% \texttt{asyropoulos@yahoo.com}}
% \date{2021/02/23}
%\maketitle
% \begin{abstract}
% This is a small package that allows users to successfully use the \textsf{soul} package
% when preparing documents with \XeLaTeX.
%\end{abstract}
%
%\section{Introduction}
%
% While I was trying to underline Greek text using the |\ul| command of the \textsf{soul} package with \XeLaTeX,
% I discovered that this is not possible. I was getting several errors and the output was looking terrible.
% I did not know what was wrong. I did a Google search and I found that another user had the same problem.
% He posted his case to the \XeTeX\ mailing list and Ulrike Fischer helped him and gave a solution to the problem.
% However, since the solution is not part of the \textsf{soul} package, I thought it would be a good idea to create
% a new package that would solve the problem.
%
% \section{The Implementation}
%
% The code of the package is very simple. It loads the \textsf{soul} package and then it sets the |\SOUL@tt|
% font to be a Unicode encoded font. The most natural choice is to use a font that is included in every
% distribution of \TeX{live}. Thus the package uses the freemono font. If for some reason the font is not available
% in your installtion, then you can download it from the following URL:
% \begin{center}
% \href{https://fontmeme.com/fonts/freemono-font/}{https://fontmeme.com/fonts/freemono-font/}
% \end{center}
% Since the \textsf{soul} package uses the |\SOUL@ttwidth| variable, we need to reset it. Now one can use
% the \textsf{soul} package with no problem.
% \begin{macrocode}
%<*xesoul>
\RequirePackage{iftex}
\ifXeTeX
\RequirePackage{soul}
\font\SOUL@tt="[FreeMono.ttf]"
\setbox\z@\hbox{\SOUL@tt-}
\SOUL@ttwidth\wd\z@
\else
\typeout{The `xesoul' package can be used only with XeLaTeX.}
\fi
%</xesoul>
% \end{macrocode}
%
% \Finale
|