uczynić tekst niewidocznym

Sep 16 2020

Mam rękopis, który wykładam przy użyciu zeszytu zajęć.

Teraz, jeśli chodzi o nauczanie na odległość, chcę przedefiniować niektóre środowiska (takie jak dowód), tak aby uzyskać luki w próbach w prezentacji, które mogę wypełnić odręcznie.

Prawdopodobnie jedną z możliwości byłoby po prostu wybranie białego koloru tekstu w tych środowiskach. Jednak tekst pozostaje na stronie do kopiowania i wklejania. I może być irytujące, jeśli napiszę odręcznie tekst, a niewidoczne znaki w tle przeszkadzają. Inną wadą byłoby to, że gdyby mój tekst zawierał \textcolor{red}{redly emphasized}tekst, nie zniknąłby:

\documentclass{scrbook}
\usepackage{color}
\usepackage{xcolor}
\usepackage{amsthm,amsfonts,amssymb}

\begin{document}
\begin{proof}
  \textcolor{red}{This} is important
\end{proof}

\begin{proof}
  \color{white}
  \textcolor{red}{This} is important
\end{proof}
\end{document}

Numeracja nie powinna zależeć od tego, czy dowody i ich zawartość są ukryte, czy nie.

Zastanawiałem się, czy byłaby możliwość, aby dokonać manipulacji czcionką, tak aby zamiast znaków PDF do pliku PDF były wstawiane tylko puste (i niewidoczne) pola z rozmiarem znaku. W ten sposób numeracja pozostanie nienaruszona, a tekstu nie będzie można skopiować.

dzięki, sven

Odpowiedzi

2 DanielN Sep 19 2020 at 19:35

Możesz przekształcić dowody w niewidoczny tekst za pomocą tcolorboxpakietu. W poniższym przykładzie żółty kolor tła podkreśla miejsce, w którym tekst staje się niewidoczny.

To jest oryginalny dokument (z widocznym tekstem).

W kodzie znajdziesz definicję pola, onoffboxktóre zależy od opcjonalnego argumentu; jeśli jest puste, tekst w polu jest widoczny. Jeśli nie jest pusty, tekst jest niewidoczny.

Środowisko onoffproofjest definiowane przy użyciu zwykłego proofi onoffbox. Dziedziczy argument tego ostatniego.

\documentclass[11pt, a4paper]{article}
\usepackage{amsmath, amsthm}
\usepackage{tcolorbox}
\tcbuselibrary{skins,breakable}
\usepackage{ifthen}

\usepackage{lipsum}

\newtheorem{pro}{Proposition}

\newenvironment{onoffbox}[1][]{%
  \ifthenelse{\equal{#1}{}}{\def\onoff{visible}}{\def\onoff{invisible}}
  \tcolorbox[%
  empty,
  \onoff,
  parbox=false,
  noparskip,
  enhanced,
  breakable,
  frame hidden, % default frame hidden
  boxrule=0pt, % default frame hidden
  colback=white, % yellow,
  left=-.5ex, right=-.5ex,
  before skip=0ex plus 2pt,
  after skip=1ex plus 2pt]
}{\endtcolorbox}

\newenvironment{onoffproof}[1][]{%
  \begin{onoffbox}[#1]\begin{proof}}{\end{proof}\end{onoffbox}}

\title{Using tcolorbox package for invisible text}
\begin{document}
\maketitle


\lipsum[1-2]

\begin{pro}
 $b^2+c^2=a^2$ 
\end{pro}
\begin{onoffproof}[off]
  It seems that {\color{red}this is an important result}.
  \lipsum[3-4]
  This is the end of our test.
\end{onoffproof}

\lipsum[5-7]
\end{document}