summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/uspace/uspace.tex
blob: b46a4f7b0134786e42eb86395a7febc53ae2c639 (plain)
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
\documentclass[paper=B5,DIV=calc,parskip=half]{scrartcl}
\usepackage{ifluatex}
\ifluatex
\usepackage{luatex85}
\fi

\usepackage{fontspec}
%\defaultfontfeatures{Ligatures={TeX,Common},Scale=MatchLowercase}
\setmainfont[]{Charis SIL}
\setsansfont[Ligatures={TeX,Common}, Scale=MatchLowercase]{TeX Gyre Heros}
\setmonofont[Ligatures=,Scale=MatchLowercase]{DejaVu Sans Mono}

\usepackage{listings}
\usepackage{enumitem}
%\usepackage{enumitem-zref}
\usepackage{polyglossia}
\setmainlanguage[]{english}

\usepackage{uspace}
\usepackage[autostyle]{csquotes}

\author{Václav Haisman\texorpdfstring{%
    \\{\small\href{mailto:vhaisman+uspace@gmail.com?subject=[uspace]}{vhaisman@gmail.com}}}{}}
\date{\today}
\title{\texttt{uspace} user manual}
\subtitle{v0.04}

\usepackage{xcolor}
\usepackage{multicol}
\usepackage{microtype}
\usepackage{metalogo}
\usepackage{hologo}

\PassOptionsToPackage{unicode}{hyperref}
\usepackage{bookmark}
\hypersetup{
  colorlinks,
  linkcolor={red!50!black},
  citecolor={blue!50!black},
  urlcolor={blue!80!black},
  breaklinks=true}
\urlstyle{same}  % don't use monospace font for urls

\setlength{\emergencystretch}{3em}  % prevent overfull lines

\lstdefinestyle{myLatexStyle}{
  language=[LaTeX]{Tex},
  basicstyle=\ttfamily
}

\lstset{style=myLatexStyle}

\newcommand{\zwsp}{\textsc{zero width space}}
\newcommand{\nnbsp}{\textsc{narrow no-break space}}
\newcommand{\nbsp}{\textsc{non-breaking space}}
\newcommand{\shy}{\textsc{soft hyphen}}
\newcommand{\enquad}{\textsc{en quad}}
\newcommand{\enspaceC}{\textsc{en space}}
\newcommand{\emquad}{\textsc{em quad}}
\newcommand{\emspaceC}{\textsc{em space}}
\newcommand{\threePerEm}{\textsc{three-per-em space}}
\newcommand{\fourPerEm}{\textsc{four-per-em space}}
\newcommand{\sixPerEm}{\textsc{six-per-em space}}
\newcommand{\figuresp}{\textsc{figure space}}
\newcommand{\punctsp}{\textsc{punctuation space}}
\newcommand{\thinsp}{\textsc{thin space}}
\newcommand{\hairsp}{\textsc{hair space}}
\newcommand{\linesep}{\textsc{line separator}}
\newcommand{\nel}{\textsc{next line (nel)}}
\newcommand{\parasep}{\textsc{paragraph separator}}

\begin{document}
\begin{titlepage}
  \maketitle
\end{titlepage}

\tableofcontents

\section{Introduction}%
%
This \LaTeX{} package gives useful meaning to various Unicode space
characters so that they fulfill their intended function when used in \LaTeX{}
source. It uses \lstinline|\newunicodechar| macro to do it. Its source is
hosted on GitHub in
\texttt{\href{https://github.com/wilx/project-uspace}{wilx/project-uspace}}
repository.

Here is a list of the implemented characters
and their implementations:\nobreak%
\begin{labeling}[\quad]{\nnbsp{} (\texttt{U+202F})}
\item[\zwsp{} (\texttt{U+200B})] \lstinline|\hspace{0pt}|
\item[\nnbsp{} (\texttt{U+202F})] \lstinline|\leavevmode\,|
\item[\nbsp{\footnotemark[1]} (\texttt{U+00A0})] \lstinline|~|
\item[\shy{\footnotemark[1]} (\texttt{U+00AD})] \lstinline|\-|
\item[\emquad{\footnotemark[2]} (\texttt{U+2001})] \lstinline|\quad|
\item[\emspaceC{\footnotemark[2]} (\texttt{U+2001})] \lstinline|\quad|
\item[\enquad{\footnotemark[3]} (\texttt{U+2000})] \lstinline|\enskip|
\item[\enspaceC{\footnotemark[3]} (\texttt{U+2000})] \lstinline|\enskip|
\item[\threePerEm{} (\texttt{U+2004})] \lstinline|\hspace{0.33333em}|
\item[\fourPerEm{} (\texttt{U+2005})] \lstinline|\hspace{0.25em}|
\item[\sixPerEm{} (\texttt{U+2006})] \lstinline|\hspace{0.16667em}|
\item[\figuresp{} (\texttt{U+2007})] \lstinline|\leavevmode\hphantom{0}|
\item[\punctsp{} (\texttt{U+2008})] \lstinline|\hspace{\fontcharwd \font `\,}|
\item[\thinsp{} (\texttt{U+2009})] \lstinline|\leavevmode\allowbreak\,|
\item[\hairsp{} (\texttt{U+200A})] \lstinline|\hspace{0.08333em}|
\item[\linesep{} (\texttt{U+2028})] \lstinline|\newline|
\item[\nel{} (\texttt{U+0085})] \lstinline|\newline|
\item[\parasep{} (\texttt{U+2029})] \lstinline|\csname par\endcsname|
\end{labeling}
\footnotetext[1]{This already defined for \hologo{pdfLaTeX} because we use
  \lstinline|inputenc| with \lstinline|utf8| option when compiling with
  \hologo{pdfLaTeX}, therefore this is only defined for \LuaLaTeX{} and
  \XeLaTeX{}.}
\footnotetext[2]{According to Unicode, these two are canonically
  equivalent. See \url{http://unicode.org/notes/tn5/}
  for explanation of the term.}
\footnotetext[3]{These two are also canonically equivalent. See previous
  footnote.}


\section{History}%
%
This package would not be what it is without help and comments from people of
\href{http://chat.stackexchange.com/rooms/41/tex-latex-and-friends}{\TeX{},
  \LaTeX{} and Friends} StackExchange chat room and the
\href{http://tex.stackexchange.com/}{\TeX.SE} site itself.

\begin{description}[style=nextline, labelwidth=4.5em, leftmargin=!,
  labelindent=0em]
  \item[\texttt{v0.04}] Add implementation for \linesep{}, \nel{}
    and \parasep{}.
  \item[\texttt{v0.03}] Change implementation for \punctsp{} and \thinsp{} to
    fix issues with line wrapping when using these characters.
  \item[\texttt{v0.02}] Round lengths to five digits after decimal
    point. List also Unicode code point values beside character names.
  \item[\texttt{v0.01}] First published version of this package.
\end{description}

\end{document}