summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/easyfloats/doc/preamble/pdfstring.tex
blob: 0a94b3d720624a0ecd97a49e2ca044bf2405d907 (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
% !TeX root = ../easyfloats.tex

% Copyright © 2020 E. Zöllner
% Alternatively to the terms of the LPPL, at your choice,
% you can redistribute and/or modify this file under the
% terms of the Do What The Fuck You Want To Public License, Version 2,
% as published by Sam Hocevar. See http://www.wtfpl.net/about/.

% Redefines \cmd so that it can be used in a pdf string,
% e.g. in \section{...}.
% Please note that additionally to the restrictions
% named in the ltxdoc documentation you cannot use \cmd{\ }.
% That is a bug in ltxdoc and unrelated to pdf strings.
%
% This must be loaded last, after all other modifications
% to the \cmd macro.

\let\PdfstringOriginalCmd=\cmd
\renewcommand{\cmd}[1]{%
	\texorpdfstring
		{\PdfstringOriginalCmd{#1}}
		{\expandafter\PdfstringCmd\string#1\relax}%
}

\def\PdfstringCmd#1#2#3\relax{%
	\textbackslash
	\ifnum\noexpand`\\=\noexpand`#2
		\textbackslash
	\else\ifnum\noexpand`\%=\noexpand`#2
		\%%
	\else
		#2%
	\fi\fi
	#3%
}