diff options
author | Karl Berry <karl@freefriends.org> | 2018-06-03 21:20:15 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-06-03 21:20:15 +0000 |
commit | c6d56047fce75536865d1d9977258f654bacee4e (patch) | |
tree | c7d2a8ea86b47ec0d2184985aa17190afbece11b /Master/texmf-dist/source/lualatex/lualatex-truncate/lualatex-truncate.dtx | |
parent | 83495ceb0c238dbda8e2c21a65a590e12e4f9340 (diff) |
lualatex-truncate (3jun18)
git-svn-id: svn://tug.org/texlive/trunk@47915 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/lualatex/lualatex-truncate/lualatex-truncate.dtx')
-rw-r--r-- | Master/texmf-dist/source/lualatex/lualatex-truncate/lualatex-truncate.dtx | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/lualatex/lualatex-truncate/lualatex-truncate.dtx b/Master/texmf-dist/source/lualatex/lualatex-truncate/lualatex-truncate.dtx new file mode 100644 index 00000000000..69ad4b80885 --- /dev/null +++ b/Master/texmf-dist/source/lualatex/lualatex-truncate/lualatex-truncate.dtx @@ -0,0 +1,135 @@ +%\iffalse +%<*package> +%% \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 \~} +%</package> +%\fi +%\iffalse +% Doc-Source file to use with LaTeX2e +% Copyright (C) 2018 Sebastian Friedl +% +% This work is subject to the LaTeX Project Public License, Version 1.3c or -- at +% your option -- any later version of this license. +% The work consists of the files lualatex-truncate.dtx, lualatex-truncate.ins, +% lualatex-truncate-doc.dtx and the derived file lualatex-truncate.sty +% +% This work has the LPPL maintenance status 'maintained'. +% Current maintainer of the work is Sebastian Friedl. +%\fi +% +% +% +% \subsubsection*{Initialization} +% Identify the package and require \LaTeXe: +% \begin{macrocode} +\ProvidesPackage{lualatex-truncate}% + [2018/06/03 v1.0 LuaLaTeX wrapper for the truncate package] +\NeedsTeXFormat{LaTeX2e} +% \end{macrocode} +% +% +% +% \subsubsection*{Internal variables} +% This internal variable is used to remember whether \enquote{hacking} the hyphenation character (i.e.~"\prehyphenchar") is required: +% \begin{macrocode} +\newif\if@lualtxtruncate@hackhyphen +\@lualtxtruncate@hackhyphenfalse +% \end{macrocode} +% +% +% +% \subsubsection*{Package options} +% The \opt{breakwords} and \opt{breakall} options require the hyphanation character to be hidden. +% Therefore, we remember to \enquote{hack} the hyphen character before passing these options +% to the original \sty{truncate} package: +% \begin{macrocode} +\DeclareOption{breakwords}{% + \@lualtxtruncate@hackhyphentrue + \PassOptionsToPackage{breakwords}{truncate}} +\DeclareOption{breakall}{% + \@lualtxtruncate@hackhyphentrue + \PassOptionsToPackage{breakall}{truncate}} +% \end{macrocode} +% +% \smallskip +% Pass all other options (\opt{hyphenate} and \opt{fit}) directly to the \sty{truncate} package: +% \begin{macrocode} +\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{truncate}} +% \end{macrocode} +% +% \smallskip +% Process all options passed to \sty{lualatex-truncate}: +% \begin{macrocode} +\ProcessOptions +% \end{macrocode} +% +% +% +% \subsubsection*{Loading the \sty{truncate} package} +% Load the \sty{truncate} package. Required package options have already been passed on. +% \begin{macrocode} +\RequirePackage{truncate} +% \end{macrocode} +% +% +% +% \subsubsection*{If the document is not compiled via \hologo{LuaLaTeX}\dots} +% Don't wrap anything if the document isn't compiled by \hologo{LuaLaTeX}: +% \begin{macrocode} +\RequirePackage{iftex} +\ifLuaTeX\else% + \PackageWarningNoLine{lualatex-truncate}% + {Whoops! You don't want to use LuaLaTeX?}% + \endinput% +\fi% +% \end{macrocode} +% +% +% +% \subsubsection*{Constructing the wrapper} +% \begin{macro}{\lualtxtruncate@truncate} +% Remember the original "\truncate" command's definition. +% Since "\truncate" provides an optional argument, "\LetLtxMacro" has to be used +% instead of the primitive "\let" command: +% \begin{macrocode} +\RequirePackage{letltxmacro} +\LetLtxMacro\lualtxtruncate@truncate\truncate +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\truncate} +% Construct the wrapper by redefining the "\truncate" command +% and -- if necessary -- modifying "\prehyphenchar": +% \begin{macrocode} +\renewcommand{\truncate}[3][\TruncateMarker]{% + \if@lualtxtruncate@hackhyphen% + \prehyphenchar=0% + \fi% + \lualtxtruncate@truncate[#1]{#2}{#3}% + \if@lualtxtruncate@hackhyphen% + \prehyphenchar=`\-% + \fi% +} +% \end{macrocode} +% \end{macro} +% +% +% +% \subsubsection*{Famous last words} +% Enough code for this package. "\endinput". +% \begin{macrocode} +\endinput +% \end{macrocode} |