Transform existing text into blind text or gibberish keeping format (wireframing)
Thanks to @ChristianHupfer (use other font, e.g. Cyrillic) and @JohnKormylo (suggesting "Redacted" font) and @jfbu (to give an example), I came up with this near perfect solution. I also learn that this is called "wireframing" in graphics design.
It handles 95% of the problem, the remaining bit is to redefine the includegraphics
command and perhaps make the text non-copyable (if that is possible at all Is it possible to produce a PDF with un-copyable text?).
Instruction:
1) Install the Redacted font https://github.com/christiannaths/Redacted-Font
2) Use Lualatex and add this to your document
\usepackage{fontspec}
\setmainfont[
ExternalLocation={./},
BoldFont={redacted-script-bold.ttf},
ItalicFont={redacted-script-light.ttf},
BoldItalicFont={redacted-script-bold.ttf} % or use pretty names if it works for you
]{redacted-script-regular.ttf} % Redacted Script
\setsansfont[ExternalLocation={./}]{redacted-script-regular.ttf} % Redacted
\usepackage{unicode-math}
\setmathfont[range=\mathup/{num}]{redacted-script-regular.ttf}
\setmathfont[range=\mathrm]{redacted-script-regular.ttf}
\setmathfont[range=\mathit]{redacted-script-light.ttf}
\setmathfont[range=\mathbf]{redacted-script-bold.ttf}
Some ideas also taken from: http://bryanwweber.com/writing/personal/2014/03/25/using-the-same-font-for-numbers-in-math-mode-in-latex/
NB: Unfortunately, I never managed to use a system font with space in its name to work with setmainfont
(it can never find it), so I had to put the files in the same directory and call them by filename (let me know if you know how to do this right).
The results is very nice:
Version 2 (make italic distinguishable from upright letters)
Redacted font is too slanted and there is no "italic" variant, so I gave negative slant for regular variant and positive slant for italic. (also AutoFakeBold
didn't work here).
\usepackage{fontspec}
\setmainfont[
ExternalLocation={./}, FakeSlant=-0.5, AutoFakeSlant=0.5,
BoldFont={redacted-script-bold.ttf},
% ItalicFont={redacted-script-light.ttf},
BoldItalicFont={redacted-script-bold.ttf} % or use pretty names if it works for you
]{redacted-script-regular.ttf} % Redacted Script
\setsansfont[ExternalLocation={./}, FakeSlant=-0.5]{redacted-script-regular.ttf} % Redacted
\usepackage{unicode-math}
\setmathfont[range=\mathup/{num}]{redacted-script-regular.ttf}
\setmathfont[range=\mathrm]{redacted-script-regular.ttf}
\setmathfont[range=\mathit]{redacted-script-light.ttf}
\setmathfont[range=\mathbf]{redacted-script-bold.ttf}
\setmathfont[range={"2032}]{redacted-script-regular.ttf} %solve unicode-math "prime" bug: https://tex.stackexchange.com/questions/208988/prime-gives-undefined-control-sequence-in-xelatex-with-unicode-math
%
Just for fun:
\documentclass{article}
\usepackage{linearb}
\usepackage{lipsum}
\begin{document}
\small
\textlinb{\lipsum[1-3]}
\end{document}
Based on the idea suggested in comments by Christian Hupfer to change fonts. Of course, reverse engineering is feasible easily. And maths is not handled (one could add use of package mathastext and this could even be used for Greek letters ; and one could take additional steps for large symbols too).
I use blindtext
package only to get some kind of document.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{blindtext}
% copy this to real situation
\renewcommand\encodingdefault{U}
\renewcommand\rmdefault{pzd}
\renewcommand\sfdefault{pzd}
\renewcommand\ttdefault{pzd}
\begin{document}
\blinddocument
\end{document}