You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
171 lines
5.1 KiB
171 lines
5.1 KiB
% Copyright (C) 2011 by Yossi Gil yogi@cs.technion.ac.il
|
|
% ---------------------------------------------------------------------------
|
|
% This work may be distributed and/or modified under the conditions of the
|
|
% LaTeX Project Public License (LPPL), either version 1.3 of this license or (at your
|
|
% option) any later version. The latest version of this license is in
|
|
% http://www.latex-project.org/lppl.txt and version 1.3 or later is part of all
|
|
% distributions of LaTeX version 2005/12/01 or later.
|
|
%
|
|
% This work has the LPPL maintenance status `maintained'.
|
|
%
|
|
% The Current Maintainer of this work is Yossi Gil
|
|
%
|
|
% This work consists of the files unisugar.tex and unisugar.sty and the derived
|
|
% file unisugar.pdf
|
|
\NeedsTeXFormat{LaTeX2e}
|
|
|
|
\newcommand\date@unisugar{2011/05/07}
|
|
\newcommand\version@unisugar{V 0.92}
|
|
\newcommand\author@unisugar{Yossi Gil}
|
|
\newcommand\mail@unisugar{yogi@cs.technion.ac.il}
|
|
\newcommand\signature@unisugar{%
|
|
unisugar \version@unisugar{} by
|
|
\author@unisugar{} \mail@unisugar
|
|
}
|
|
|
|
\ProvidesPackage{unisugar}[\date@unisugar{} \signature@unisugar:
|
|
Selected Unicode characters (e.g., ⌘, ␣, •, ⏎, ¶, and §)
|
|
employed in some very common LaTeX commands.
|
|
]
|
|
|
|
\PackageInfo{unisugar}{This is unisugar, \signature@unisugar}
|
|
|
|
\RequirePackage{ifxetex}
|
|
\typeout{This is the unisugar package}
|
|
\providecommand\discardNextChar[1]{}
|
|
|
|
\providecommand*{\toEolnCommand}[2]{%
|
|
\newcommand*{#1}{%
|
|
\begingroup
|
|
\escapechar=`\\%
|
|
\catcode\endlinechar=\active
|
|
\csname\string#1\endcsname
|
|
}%
|
|
\begingroup%
|
|
\escapechar=`\\%
|
|
\lccode`\~=\endlinechar
|
|
\lowercase{%
|
|
\expandafter\endgroup
|
|
\expandafter\def\csname\string#1\endcsname##1~%
|
|
}{\endgroup#2\space}%
|
|
}
|
|
|
|
\toEolnCommand\toEolnSection{\section{#1}}
|
|
\toEolnCommand\toEolnSubsection{\subsection{#1}}
|
|
\toEolnCommand\toEolnSubsubsection{\subsubsection{#1}}
|
|
\toEolnCommand\toEolnParagraph{\paragraph{#1}}
|
|
\toEolnCommand\toEolnSubparagraph{\subparagraph{#1}}
|
|
|
|
\ifxetex
|
|
\relax
|
|
\else
|
|
\PackageWarning{You should be LaTeXing your file with "xelatex \jobname"
|
|
to enjoy this package fully}
|
|
\endinput
|
|
\fi
|
|
|
|
% ⌘: U+2318 PLACE OF INTEREST SIGN (also command key), is used as a direction
|
|
% neutral escape character. Makes it possible to use the command key
|
|
% character as a command prefix. Useful in particular with right-to-left texts,
|
|
% in which the familiar, yet directionally non-neutral, backslash may be a bit confusing.
|
|
\catcode"2318=11
|
|
\edef\⌘{⌘}
|
|
\catcode"2318=0
|
|
|
|
% ␣: U+2423 OPEN BOX, a visual space is allowed as a legitimate character in
|
|
% control sequences, whereby eliminating the need for ugly juxtaposing of words.
|
|
\catcode"2423=11
|
|
\edef\␣{␣}
|
|
|
|
|
|
% …: U+2026 HORIZONTAL ELLIPSIS, will serve as a sugar nickname for \ldots.
|
|
⌘catcode"2026=⌘active
|
|
⌘newcommand…{⌘ldots}
|
|
|
|
% •: U+2022 BULLET (black small circle), a sugared alias for ⌘item.
|
|
⌘catcode"2022=11
|
|
⌘edef⌘•{•}
|
|
⌘catcode"2022=⌘active
|
|
⌘newcommand•{⌘item}
|
|
|
|
% ⏎: U+23CE RETURN SYMBOL, a sugared nickname for \\
|
|
⌘catcode"23CE=11
|
|
⌘edef\⏎{⏎}
|
|
⌘catcode"23CE=⌘active
|
|
⌘newcommand⏎{\\}
|
|
|
|
% ⌖: U+2316 POSITION INDICATOR, is an alias for LaTeX's \label command.
|
|
⌘catcode"2316=11
|
|
⌘edef\⌖{⌖}
|
|
⌘catcode"2316=⌘active
|
|
⌘newcommand⌖[1]{⌘label{#1}}
|
|
|
|
% ☝: U+261D WHITE UP POINTING INDEX, is an alias LaTeX's \ref command.
|
|
⌘catcode"261D=11
|
|
⌘edef\☝{☝}
|
|
⌘catcode"261D=⌘active
|
|
⌘newcommand☝[1]{⌘ref{#1}}
|
|
|
|
% ¶: U+00B6 PILCROW SIGN, will serve as a sugar nickname for ⌘paragraph, using
|
|
% the remainder of the line as the paragraph's title. Further, ¶¶, that is two
|
|
% successive occurrences of the pilcrow sign, shall serve as a sugared nickname
|
|
% for ⌘subparagraph, employing the remainder of the text on the current line as
|
|
% the subparagraph's title.
|
|
⌘catcode"B6=11
|
|
⌘edef\¶{¶}
|
|
⌘catcode"B6=⌘active
|
|
⌘newcommand¶{⌘paragraph␣sugar}
|
|
|
|
\newcommand\paragraph␣sugar{%
|
|
\@ifnextchar¶{%
|
|
\expandafter
|
|
\toEolnSubparagraph
|
|
\discardNextChar
|
|
}{%
|
|
\toEolnParagraph
|
|
}%
|
|
}
|
|
|
|
% §: U+00A7 SECTION SIGN, will serve as a sugar nickname for ⌘section, using
|
|
% the remainder of the line as the section's title. Further, §§, that is two
|
|
% successive occurrences of this Unicode code point, shall serve as a sugared
|
|
% nickname for ⌘subsection, employing the remainder of the text on the current
|
|
% line as the subsection's title. Even further, §§§, three successive
|
|
% occurrences shall serve as a sugared nickname for ⌘subsubsection, employing
|
|
% again, the remainder of text on the line as the subsubsection's title.
|
|
%
|
|
⌘catcode"A7=11
|
|
⌘edef\§{§}
|
|
⌘catcode"A7=⌘active
|
|
⌘newcommand§{⌘section␣sugar}
|
|
⌘newcommand⌘section␣sugar{%
|
|
\@ifnextchar§{% Two or more § were found.
|
|
\expandafter
|
|
\sub␣or␣subsub␣section
|
|
\discardNextChar
|
|
}{% Single § found.
|
|
\toEolnSection
|
|
}%
|
|
}
|
|
|
|
\newcommand*\sub␣or␣subsub␣section{%
|
|
\@ifnextchar§{%
|
|
\expandafter
|
|
\toEolnSubsubsection
|
|
\discardNextChar
|
|
}{%
|
|
\toEolnSubsection
|
|
}%
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|