Gibt es eine Möglichkeit, Text in der Ausrichtungsumgebung zu „phantomisieren“?
Ich habe folgenden Code:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
\phantom
{
a & = b \\
& = c
}
\end{align*}
\end{document}
Wenn das Argument des Phantom-Befehls ein Tabulatorzeichen enthält, wird die Kompilierung anscheinend abgebrochen. Ich habe versucht, den Text innerhalb der Align-Umgebung als leeren Text erscheinen zu lassen. Interessanterweise funktioniert Phantom, wenn ich eine Cases-Umgebung mit dem Tabulatorzeichen darin habe und es die Cases-Umgebung umgibt.
Danke.
Antwort1
Wenn Sie die Tabulatorausrichtung &
vor "verbergen" align
, funktioniert sie nicht wie erwartet. Dies liegt nur daran, dass &
als Teil des Arguments für gelesen wird \phantom
, von dem nichts über &
und seine Verwendung bekannt ist. Daher müssen Sie entweder die \phantom
auf die ausgerichteten Komponenten verteilen oder einen ganz anderen Ansatz verwenden:
\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\begin{document}
\begin{align*}
a & = b + c \\
\phantom{a} & \phantom{{} = b} + c \\ % Hides some components of above line
& = d + e \\
& \phantom{{}= d} + e % Hides some components of above line
\end{align*}
\end{document}
Im obigen Beispiel wurden einige Komponenten unberührt gelassen, um anzuzeigen, dass bei der Verwendung manchmal eine Abstandskorrektur erforderlich ist \phantom
(z. B. beim Ausblenden der Beziehung =
).
Der Grund, warum \phantom
rund eingesamte cases
Struktur funktioniert, liegt daran, dass das Tabulatorausrichtungszeichen in der Umgebung vergraben ist, wo es Sinn ergibt.
Antwort2
Dies ist eine alte Frage, aber ich dachte, dass zukünftige Suchende diese Alternative zu schätzen wissen könnten, die in komplexen Situationen viel einfacher ist, als die Phantome über die Tabulatoren aufzuteilen. Sie verwendet pgf
, das für diesen Zweck \pgfsys@begininvisible
und hat \pgfsys@endinvisible
.
\documentclass{article}
\usepackage{pgf}
\usepackage{amsmath}
\makeatletter
\newcommand\pgfinvisible{\pgfsys@begininvisible}
\newcommand\pgfshown{\pgfsys@endinvisible}
\makeatother
\begin{document}
\begin{align*}
a & = b + c \\
\pgfinvisible a & = b\pgfshown + c \\ % Hides some components of above line
& = d + e \\
\pgfinvisible & = d\pgfshown + e % Hides some components of above line
\end{align*}
\end{document}
Dies ist der Mechanismus, derBeamer-Overlay-SystemVerwendet.
Tatsächlich kann man dies um die gesamte align*
Umgebung herum platzieren, was nicht funktioniert \phantom
und was der Fragesteller ursprünglich wollte. Dann muss man vorsichtig sein, wenn man zusätzlichen vertikalen Raum einführt.
Ich sollte hier hinzufügen, dass dadurch der Text offenbar nicht aus der PDF-Datei entfernt wird (soweit ich weiß, wird er irgendwo verschoben, wo er nicht auf der Seite erscheint). Dies ist also kein geeigneter Ansatz für die Redaktion.
Antwort3
textcolor
Mit Weiß ist es wahrscheinlich einfacher zu verwenden :
\textcolor{white}{sometext}
Sie benötigen das color
Paket.